greenmail-standalone.2.1.0.source-code.greenmail-openapi.yml Maven / Gradle / Ivy
---
openapi: "3.0.0"
info:
version: "${project.version}"
title: GreenMail OpenAPI
description: RESTful API for GreenMail
license:
name: Apache 2.0
url: "https://www.apache.org/licenses/LICENSE-2.0.html"
paths:
/api/configuration:
get:
description: Gets current GreenMail configuration
operationId: get_configuration
responses:
'200':
description: Current configuration
content:
application/json:
schema:
$ref: "#/components/schemas/Configuration"
default:
description: Unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
/api/user:
get:
description: Gets current GreenMail users
operationId: get_all_user
responses:
'200':
description: List of users
content:
application/json:
schema:
$ref: "#/components/schemas/Users"
default:
description: Unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
post:
description: Creates a new GreenMail users
operationId: create_user
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- email
- login
- password
properties:
email:
type: string
login:
type: string
password:
type: string
responses:
'200':
description: Newly created user
content:
application/json:
schema:
$ref: "#/components/schemas/User"
default:
description: Unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
/api/user/{emailOrId}:
parameters:
- in: path
name: emailOrId
description: Either user login or user email as identifier
required: true
schema:
type: string
delete:
description: Deletes given GreenMail user
operationId: delete_user
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: "#/components/schemas/SuccessResponse"
'400':
description: User not found
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
/api/user/{emailOrId}/messages/{folderName}:
parameters:
- in: path
name: emailOrId
description: Either user login or user email as identifier
required: true
schema:
type: string
- in: path
name: folderName
description: Mail folder (defaults to INBOX)
required: false
schema:
type: string
get:
description: Gets the messages for given user and folder
operationId: get_user_messages
responses:
'200':
description: List of messages
content:
application/json:
schema:
$ref: "#/components/schemas/Messages"
default:
description: Unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
/api/service/readiness:
get:
description: Checks GreenMail readiness (if service up and available)
operationId: readiness
responses:
'200':
description: Service is ready
content:
application/json:
schema:
$ref: "#/components/schemas/SuccessResponse"
'503':
description: Service is not ready
content:
application/json:
schema:
$ref: "#/components/schemas/SuccessResponse"
default:
description: Unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
/api/service/reset:
post:
description: Restarts GreenMail using current configuration.
operationId: reset
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: "#/components/schemas/SuccessResponse"
default:
description: Unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
/api/mail/purge:
post:
description: Purges all mails
operationId: purge
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: "#/components/schemas/SuccessResponse"
default:
description: Unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
components:
schemas:
Configuration:
type: object
properties:
defaultHostname:
type: string
portOffset:
type: integer
format: int32
serverSetups:
type: array
items:
$ref: "#/components/schemas/ServerSetup"
required:
- serviceConfigurations
Users:
type: "array"
description: Configured users for authentication
items:
$ref: "#/components/schemas/User"
User:
type: object
required:
- login
- email
properties:
login:
type: string
email:
type: string
Messages:
type: "array"
description: List of messages
items:
$ref: "#/components/schemas/Message"
Message:
type: object
required:
- uid
- contentType
- mimeMessage
properties:
uid:
type: number
messageId:
type: string
subject:
type: string
contentType:
type: string
mimeMessage:
type: string
ServerSetup:
type: object
properties:
port:
description: Service port
type: integer
format: int32
address:
description: Service address
type: string
protocol:
description: Service protocol for receiving or sending emails.
type: string
enum:
- pop3
- pop3s
- imap
- imaps
- smtp
- smtps
isSecure:
description: Flag if secure transport (TLS) should be enabled
type: boolean
readTimeout:
description: Service socket read timeout in ms
type: integer
format: int32
writeTimeout:
description: Service socket write timeout in ms
type: integer
format: int32
connectionTimeout:
description: Service socket connection timeout in ms
type: integer
format: int32
serverStartupTimeout:
description: Service startup timeout in ms
type: integer
format: int32
isDynamicPort:
description: Flag if port should be automatically determined
type: boolean
required:
- address
- port
- protocol
- isSecure
ErrorResponse:
properties:
message:
type: string
required:
- message
SuccessResponse:
properties:
message:
type: string
required:
- message