software.xdev.mockserver.openapi.mock-server-openapi-embedded-model.yaml Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of core Show documentation
Show all versions of core Show documentation
MockServer NeoLight Core
openapi: 3.0.0
servers:
- url: 'http://localhost:1080/'
- url: 'https://localhost:1080/'
info:
title: MockServer API
version: 5.15.x
description: >-
MockServer enables easy mocking of any system you integrate with via HTTP or HTTPS with clients written in Java, JavaScript and Ruby and a simple REST API (as shown below).
MockServer Proxy is a proxy that introspects all proxied traffic including encrypted SSL traffic and supports Port Forwarding, Web Proxying (i.e. HTTP proxy), HTTPS Tunneling Proxying (using HTTP CONNECT) and SOCKS Proxying (i.e. dynamic port forwarding).
Both MockServer and the MockServer Proxy record all received requests so that it is possible to verify exactly what requests have been sent by the system under test.
license:
url: 'https://github.com/mock-server/mockserver/blob/master/LICENSE.md'
name: Apache 2.0
tags:
- name: expectation
description: Create or update expectations - updates if the id matches an existing expectations (only supported by MockServer)
- name: verify
description: Verify requests (both MockServer & MockServer Proxy)
- name: control
description: Manage state or process (both MockServer & MockServer Proxy)
paths:
/mockserver/expectation:
put:
tags:
- expectation
summary: create expectation
responses:
'201':
description: expectations created
content:
application/json:
schema:
description: "list of upserted expectations"
type: array
additionalProperties: false
items:
$ref: "#/components/schemas/Expectation"
'400':
description: incorrect request format
'406':
description: invalid expectation
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Expectations"
description: expectation(s) to create
required: true
/mockserver/openapi:
put:
tags:
- expectation
summary: create expectations from OpenAPI or Swagger
responses:
'201':
description: expectations created
content:
application/json:
schema:
description: "list of upserted expectations"
type: array
additionalProperties: false
items:
$ref: "#/components/schemas/Expectation"
'400':
description: incorrect request format
'406':
description: invalid expectation
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/OpenAPIExpectations"
description: expectation(s) to create
required: true
/mockserver/clear:
put:
tags:
- control
summary: clears expectations and recorded requests that match the request matcher
responses:
'200':
description: expectations and recorded requests cleared
'400':
description: incorrect request format
parameters:
- in: query
name: type
schema:
type: string
enum: [ "all", "log", "expectations" ]
default: "all"
required: false
description: specifies the type of information to clear, default if not specified is "all", supported values are "all", "log", "expectations"
requestBody:
content:
application/json:
schema:
oneOf:
- $ref: "#/components/schemas/RequestDefinition"
- $ref: "#/components/schemas/ExpectationId"
description: request used to match expectations and record requests to clear
/mockserver/reset:
put:
tags:
- control
summary: clears all expectations and recorded requests
responses:
'200':
description: expectations and recorded requests cleared
/mockserver/retrieve:
put:
tags:
- control
summary: retrieve recorded requests, active expectations, recorded expectations or log messages
parameters:
- in: query
name: format
schema:
type: string
enum: [ "java", "json", "log_entries" ]
required: false
description: changes response format, default if not specified is "json", supported values are "java", "json", "log_entries"
- in: query
name: type
schema:
type: string
enum: [ "logs", "requests", "request_responses", "recorded_expectations", "active_expectations" ]
required: false
description: specifies the type of object that is retrieve, default if not specified is "requests", supported values are "logs", "requests", "recorded_expectations", "active_expectations"
responses:
'200':
description: recorded requests or active expectations returned
content:
application/json:
schema:
oneOf:
- type: array
additionalProperties: false
items:
$ref: "#/components/schemas/Expectation"
- type: array
additionalProperties: false
items:
$ref: "#/components/schemas/HttpRequest"
- type: array
additionalProperties: false
items:
$ref: "#/components/schemas/HttpRequestAndHttpResponse"
application/java:
schema:
type: string
description: Java code for the list of either Expectations or HttpResponses
text/plain:
schema:
type: string
description: List of recorded log messages
'400':
description: incorrect request format
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/RequestDefinition"
description: >-
request used to match which recorded requests, expectations or log messages to return, an empty body matches all requests, expectations or log messages
/mockserver/verify:
put:
tags:
- verify
summary: verify a request has been received a specific number of times
responses:
'202':
description: matching request has been received specified number of times
'400':
description: incorrect request format
'406':
description: request has not been received specified numbers of times
content:
text/plain:
schema:
type: string
description: 'JUnit expected:<...> but was:<...> format'
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Verification"
description: request matcher and the number of times to match
required: true
/mockserver/verifySequence:
put:
tags:
- verify
summary: verify a sequence of request has been received in the specific order
responses:
'202':
description: request sequence has been received in specified order
'400':
description: incorrect request format
'406':
description: request sequence has not been received in specified order
content:
text/plain:
schema:
type: string
description: 'JUnit expected:<...> but was:<...> format'
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/VerificationSequence"
description: the sequence of requests matchers
required: true
/mockserver/status:
put:
tags:
- control
summary: return listening ports
responses:
'200':
description: MockServer is running and listening on the listed ports
content:
application/json:
schema:
$ref: "#/components/schemas/Ports"
/mockserver/bind:
put:
tags:
- control
summary: bind additional listening ports
description: only supported on Netty version
responses:
'200':
description: >-
listening on additional requested ports, note: the response ony
contains ports added for the request, to list all ports use /status
content:
application/json:
schema:
$ref: "#/components/schemas/Ports"
'400':
description: incorrect request format
'406':
description: >-
unable to bind to ports (i.e. already bound or JVM process doesn't
have permission)
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Ports"
description: >-
list of ports to bind to, where 0 indicates dynamically bind to any
available port
required: true
/mockserver/stop:
put:
tags:
- control
summary: stop running process
description: only supported on Netty version
responses:
'200':
description: MockServer process is stopping
components:
schemas:
Expectations:
description: "list of expectations"
oneOf:
- $ref: "#/components/schemas/Expectation"
- type: array
additionalProperties: false
items:
$ref: "#/components/schemas/Expectation"
Expectation:
description: "expectation"
type: object
additionalProperties: false
properties:
id:
type: string
priority:
type: integer
httpRequest:
$ref: "#/components/schemas/RequestDefinition"
httpResponse:
$ref: "#/components/schemas/HttpResponse"
httpResponseTemplate:
$ref: "#/components/schemas/HttpTemplate"
httpResponseClassCallback:
$ref: "#/components/schemas/HttpClassCallback"
httpResponseObjectCallback:
$ref: "#/components/schemas/HttpObjectCallback"
httpForward:
$ref: "#/components/schemas/HttpForward"
httpForwardTemplate:
$ref: "#/components/schemas/HttpTemplate"
httpForwardClassCallback:
$ref: "#/components/schemas/HttpClassCallback"
httpForwardObjectCallback:
$ref: "#/components/schemas/HttpObjectCallback"
httpOverrideForwardedRequest:
$ref: "#/components/schemas/HttpOverrideForwardedRequest"
httpError:
$ref: "#/components/schemas/HttpError"
times:
$ref: "#/components/schemas/Times"
timeToLive:
$ref: "#/components/schemas/TimeToLive"
oneOf:
- required:
- httpResponse
- required:
- httpResponseTemplate
- required:
- httpResponseClassCallback
- required:
- httpResponseObjectCallback
- required:
- httpForward
- required:
- httpForwardTemplate
- required:
- httpForwardClassCallback
- required:
- httpForwardObjectCallback
- required:
- httpOverrideForwardedRequest
- required:
- httpError
ExpectationId:
description: "pointer to existing expectation"
type: object
additionalProperties: false
properties:
id:
type: string
required:
- id
OpenAPIExpectations:
description: "list of open api expectations"
oneOf:
- $ref: "#/components/schemas/OpenAPIExpectation"
- type: array
additionalProperties: false
items:
$ref: "#/components/schemas/OpenAPIExpectation"
OpenAPIExpectation:
description: "open api or swagger expectation"
type: object
additionalProperties: false
properties:
specUrlOrPayload:
anyOf:
- type: string
- type: object
operationsAndResponses:
type: object
additionalProperties:
type: string
required:
- specUrlOrPayload
RequestDefinition:
description: "request definition"
oneOf:
- $ref: "#/components/schemas/HttpRequest"
- $ref: "#/components/schemas/OpenAPIDefinition"
HttpRequest:
description: "request properties matcher"
type: object
additionalProperties: false
properties:
secure:
type: boolean
keepAlive:
type: boolean
method:
$ref: "#/components/schemas/StringOrJsonSchema"
path:
$ref: "#/components/schemas/StringOrJsonSchema"
pathParameters:
$ref: "#/components/schemas/KeyToMultiValue"
queryStringParameters:
$ref: "#/components/schemas/KeyToMultiValue"
body:
$ref: "#/components/schemas/Body"
headers:
$ref: "#/components/schemas/KeyToMultiValue"
cookies:
$ref: "#/components/schemas/KeyToValue"
socketAddress:
$ref: "#/components/schemas/SocketAddress"
protocol:
$ref: "#/components/schemas/Protocol"
OpenAPIDefinition:
description: "open api or swagger request matcher"
type: object
additionalProperties: false
properties:
specUrlOrPayload:
type: string
operationId:
type: string
HttpResponse:
description: "response to return"
type: object
additionalProperties: false
properties:
delay:
$ref: "#/components/schemas/Delay"
body:
$ref: "#/components/schemas/BodyWithContentType"
cookies:
$ref: "#/components/schemas/KeyToValue"
connectionOptions:
$ref: "#/components/schemas/ConnectionOptions"
headers:
$ref: "#/components/schemas/KeyToMultiValue"
statusCode:
type: integer
reasonPhrase:
type: string
HttpTemplate:
description: "template to generate response / request"
type: object
additionalProperties: false
properties:
delay:
$ref: "#/components/schemas/Delay"
templateType:
enum:
- VELOCITY
- JAVASCRIPT
- MUSTACHE
template:
type: string
HttpForward:
description: "host and port to forward to"
type: object
additionalProperties: false
properties:
delay:
$ref: "#/components/schemas/Delay"
host:
type: string
port:
type: integer
scheme:
enum:
- HTTP
- HTTPS
HttpClassCallback:
description: "class callback"
type: object
additionalProperties: false
properties:
delay:
$ref: "#/components/schemas/Delay"
callbackClass:
type: string
HttpObjectCallback:
description: "object / method callback"
type: object
additionalProperties: false
properties:
delay:
$ref: "#/components/schemas/Delay"
clientId:
type: string
responseCallback:
type: boolean
HttpOverrideForwardedRequest:
description: "override forwarded request"
oneOf:
- type: object
additionalProperties: false
properties:
delay:
"$ref": "#/components/schemas/Delay"
requestOverride:
"$ref": "#/components/schemas/HttpRequest"
requestModifier:
type: object
additionalProperties: false
properties:
path:
type: object
additionalProperties: false
properties:
regex:
type: string
substitution:
type: string
queryStringParameters:
type: object
additionalProperties: false
properties:
add:
"$ref": "#/components/schemas/KeyToMultiValue"
replace:
"$ref": "#/components/schemas/KeyToMultiValue"
remove:
type: array
additionalProperties: false
items:
type: string
headers:
type: object
additionalProperties: false
properties:
add:
"$ref": "#/components/schemas/KeyToMultiValue"
replace:
"$ref": "#/components/schemas/KeyToMultiValue"
remove:
type: array
additionalProperties: false
items:
type: string
cookies:
type: object
additionalProperties: false
properties:
add:
"$ref": "#/components/schemas/KeyToValue"
replace:
"$ref": "#/components/schemas/KeyToValue"
remove:
type: array
additionalProperties: false
items:
type: string
responseOverride:
"$ref": "#/components/schemas/HttpResponse"
responseModifier:
type: object
additionalProperties: false
properties:
headers:
type: object
additionalProperties: false
properties:
add:
"$ref": "#/components/schemas/KeyToMultiValue"
replace:
"$ref": "#/components/schemas/KeyToMultiValue"
remove:
type: array
additionalProperties: false
items:
type: string
cookies:
type: object
additionalProperties: false
properties:
add:
"$ref": "#/components/schemas/KeyToValue"
replace:
"$ref": "#/components/schemas/KeyToValue"
remove:
type: array
additionalProperties: false
items:
type: string
- type: object
additionalProperties: false
properties:
delay:
"$ref": "#/components/schemas/Delay"
httpRequest:
"$ref": "#/components/schemas/HttpRequest"
httpResponse:
"$ref": "#/components/schemas/HttpResponse"
HttpError:
description: "error behaviour"
type: object
additionalProperties: false
properties:
delay:
$ref: "#/components/schemas/Delay"
dropConnection:
type: boolean
responseBytes:
type: string
Times:
description: "number of responses"
type: object
additionalProperties: false
properties:
remainingTimes:
type: integer
unlimited:
type: boolean
TimeToLive:
description: "time expectation is valid for"
type: object
additionalProperties: false
properties:
timeUnit:
enum:
- DAYS
- HOURS
- MINUTES
- SECONDS
- MILLISECONDS
- MICROSECONDS
- NANOSECONDS
timeToLive:
type: integer
unlimited:
type: boolean
KeyToMultiValue:
oneOf:
- type: array
additionalProperties: false
items:
type: object
additionalProperties: false
properties:
name:
type: string
values:
type: array
additionalProperties: false
items:
type: string
- type: object
additionalProperties: true
properties:
keyMatchStyle:
type: string
enum:
- MATCHING_KEY
- SUB_SET
default: SUB_SET
# patternProperties:
# "^(?!keyMatchStyle)\\S+$":
# oneOf:
# - type: array
# additionalProperties: false
# items:
# $ref: "#/components/schemas/StringOrJsonSchema"
# - type: object
# additionalProperties: false
# properties:
# parameterStyle:
# type: string
# enum:
# - SIMPLE
# - SIMPLE_EXPLODED
# - LABEL
# - LABEL_EXPLODED
# - MATRIX
# - MATRIX_EXPLODED
# - FORM_EXPLODED
# - FORM
# - SPACE_DELIMITED_EXPLODED
# - SPACE_DELIMITED
# - PIPE_DELIMITED_EXPLODED
# - PIPE_DELIMITED
# - DEEP_OBJECT
# default: ''
# values:
# type: array
# additionalProperties: false
# items:
# $ref: "#/components/schemas/StringOrJsonSchema"
KeyToValue:
oneOf:
- type: array
additionalProperties: false
items:
type: object
properties:
name:
type: string
value:
type: string
- type: object
additionalProperties: true
# patternProperties:
# "^\\S+$":
# $ref: "#/components/schemas/StringOrJsonSchema"
StringOrJsonSchema:
description: "string value that can be support nottable, optional or a json schema"
oneOf:
- type: string
- type: object
additionalProperties: false
properties:
not:
type: boolean
optional:
type: boolean
value:
type: string
schema:
$ref: http://json-schema.org/draft-04/schema
parameterStyle:
type: string
enum:
- SIMPLE
- SIMPLE_EXPLODED
- LABEL
- LABEL_EXPLODED
- MATRIX
- MATRIX_EXPLODED
- FORM_EXPLODED
- FORM
- SPACE_DELIMITED_EXPLODED
- SPACE_DELIMITED
- PIPE_DELIMITED_EXPLODED
- PIPE_DELIMITED
- DEEP_OBJECT
SocketAddress:
description: "remote address to send request to, only used for request overrides"
type: object
additionalProperties: false
properties:
host:
type: string
port:
type: integer
scheme:
enum:
- HTTP
- HTTPS
Protocol:
description: "protocol matcher"
enum:
- HTTP_1_1
- HTTP_2
Body:
description: "request body matcher"
anyOf:
- type: object
description: "binary body matcher"
additionalProperties: false
properties:
not:
type: boolean
type:
enum:
- BINARY
base64Bytes:
type: string
contentType:
type: string
- type: object
description: "json body matcher"
additionalProperties: false
properties:
not:
type: boolean
type:
enum:
- JSON
json:
type: string
contentType:
type: string
matchType:
enum:
- STRICT
- ONLY_MATCHING_FIELDS
- type: object
description: "json matching fields body matcher"
additionalProperties: true
- type: object
description: "json schema body matcher"
additionalProperties: false
properties:
not:
type: boolean
type:
enum:
- JSON_SCHEMA
jsonSchema:
$ref: http://json-schema.org/draft-04/schema
- type: object
description: "JSON path body matcher"
additionalProperties: false
properties:
not:
type: boolean
type:
enum:
- JSON_PATH
jsonPath:
type: string
- type: object
description: "parameter body matcher"
additionalProperties: false
properties:
not:
type: boolean
type:
enum:
- PARAMETERS
parameters:
$ref: "#/components/schemas/KeyToMultiValue"
- type: object
description: "regex body matcher"
additionalProperties: false
properties:
not:
type: boolean
type:
enum:
- REGEX
regex:
type: string
- type: object
description: "string body matcher"
additionalProperties: false
properties:
not:
type: boolean
type:
enum:
- STRING
string:
type: string
contentType:
type: string
subString:
type: boolean
- type: string
description: "substring body matcher"
- type: object
description: "xml body matcher"
additionalProperties: false
properties:
not:
type: boolean
type:
enum:
- XML
xml:
type: string
contentType:
type: string
- type: object
description: "xml schema body matcher"
additionalProperties: false
properties:
not:
type: boolean
type:
enum:
- XML_SCHEMA
xmlSchema:
type: string
- type: object
description: "xpath body matcher"
additionalProperties: false
properties:
not:
type: boolean
type:
enum:
- XPATH
xpath:
type: string
BodyWithContentType:
description: "response body"
anyOf:
- type: object
description: "binary response body"
additionalProperties: false
properties:
not:
type: boolean
type:
enum:
- BINARY
base64Bytes:
type: string
contentType:
type: string
- type: object
description: "json response body"
additionalProperties: false
properties:
not:
type: boolean
type:
enum:
- JSON
json:
type: string
contentType:
type: string
- type: object
description: "json response body"
additionalProperties: true
- type: object
description: "string response body"
additionalProperties: false
properties:
not:
type: boolean
type:
enum:
- STRING
string:
type: string
contentType:
type: string
- type: string
description: "string response body"
- type: object
description: "xml response body"
additionalProperties: false
properties:
not:
type: boolean
type:
enum:
- XML
xml:
type: string
contentType:
type: string
Delay:
description: "response delay"
type: object
additionalProperties: false
properties:
timeUnit:
type: string
value:
type: integer
ConnectionOptions:
description: "connection options"
type: object
additionalProperties: false
properties:
suppressContentLengthHeader:
type: boolean
contentLengthHeaderOverride:
type: integer
suppressConnectionHeader:
type: boolean
chunkSize:
type: integer
keepAliveOverride:
type: boolean
closeSocket:
type: boolean
closeSocketDelay:
$ref: "#/components/schemas/Delay"
Verification:
description: "verification"
type: object
additionalProperties: false
properties:
expectationId:
$ref: "#/components/schemas/ExpectationId"
httpRequest:
$ref: "#/components/schemas/RequestDefinition"
times:
$ref: "#/components/schemas/VerificationTimes"
maximumNumberOfRequestToReturnInVerificationFailure:
type: integer
oneOf:
- required:
- expectationId
- required:
- httpRequest
VerificationTimes:
description: "number of request to verify"
type: object
additionalProperties: false
properties:
atLeast:
type: integer
atMost:
type: integer
VerificationSequence:
description: "verification sequence"
type: object
additionalProperties: false
properties:
expectationIds:
type: array
additionalProperties: false
items:
$ref: "#/components/schemas/ExpectationId"
httpRequests:
type: array
items:
$ref: "#/components/schemas/RequestDefinition"
maximumNumberOfRequestToReturnInVerificationFailure:
type: integer
oneOf:
- required:
- expectationIds
- required:
- httpRequests
Ports:
description: "list of ports"
type: object
additionalProperties: false
properties:
ports:
items:
type: number
type: array
HttpRequestAndHttpResponse:
description: "request and response"
type: object
additionalProperties: false
properties:
httpRequest:
$ref: "#/components/schemas/HttpRequest"
httpResponse:
$ref: "#/components/schemas/HttpResponse"
timestamp:
type: string