redoc/demo/openapi.yaml

1833 lines
65 KiB
YAML

openapi: 3.0.0
servers:
- url: //petstore.swagger.io/v2
description: Default server
- url: //petstore.swagger.io/sandbox
description: Sandbox server
info:
description: |
This is a sample server Petstore server.
You can find out more about Swagger at
[http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/).
For this sample, you can use the api key `special-key` to test the authorization filters.
# Introduction
This API is documented in **OpenAPI format** and is based on
[Petstore sample](http://petstore.swagger.io/) provided by [swagger.io](http://swagger.io) team.
It was **extended** to illustrate features of [generator-openapi-repo](https://github.com/Rebilly/generator-openapi-repo)
tool and [ReDoc](https://github.com/Redocly/redoc) documentation. In addition to standard
OpenAPI syntax we use a few [vendor extensions](https://github.com/Redocly/redoc/blob/main/docs/redoc-vendor-extensions.md).
# OpenAPI Specification
This API is documented in **OpenAPI format** and is based on
[Petstore sample](http://petstore.swagger.io/) provided by [swagger.io](http://swagger.io) team.
It was **extended** to illustrate features of [generator-openapi-repo](https://github.com/Rebilly/generator-openapi-repo)
tool and [ReDoc](https://github.com/Redocly/redoc) documentation. In addition to standard
OpenAPI syntax we use a few [vendor extensions](https://github.com/Redocly/redoc/blob/main/docs/redoc-vendor-extensions.md).
# Cross-Origin Resource Sharing
This API features Cross-Origin Resource Sharing (CORS) implemented in compliance with [W3C spec](https://www.w3.org/TR/cors/).
And that allows cross-domain communication from the browser.
All responses have a wildcard same-origin which makes them completely public and accessible to everyone, including any code on any site.
# Authentication
Petstore offers two forms of authentication:
- API Key
- OAuth2
OAuth2 - an open protocol to allow secure authorization in a simple
and standard method from web, mobile and desktop applications.
<!-- ReDoc-Inject: <security-definitions> -->
version: 1.1.0
title: Swagger Petstore
termsOfService: 'http://swagger.io/terms/'
contact:
name: API Support
email: apiteam@swagger.io
url: https://github.com/Redocly/redoc
x-logo:
url: 'https://redocly.github.io/redoc/petstore-logo.png'
altText: Petstore logo
license:
name: Apache 2.0
url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
externalDocs:
description: Find out how to create Github repo for your OpenAPI spec.
url: 'https://github.com/Rebilly/generator-openapi-repo'
tags:
- name: pet
description: Everything about your Pets
- name: Tn Option
description: Everything about your TN Options
- name: store
description: Access to Petstore orders
- name: user
description: Operations about user
- name: pet_model
x-displayName: The Pet Model
description: |
<SchemaDefinition schemaRef="#/components/schemas/Pet" />
- name: store_model
x-displayName: The Order Model
description: |
<SchemaDefinition schemaRef="#/components/schemas/Order" exampleRef="#/components/examples/Order" showReadOnly={true} showWriteOnly={true} />
x-tagGroups:
- name: General
tags:
- pet
- store
- Tn Option
- name: User Management
tags:
- user
- name: Models
tags:
- pet_model
- store_model
security:
- {}
paths:
/pet:
parameters:
- name: Accept-Language
in: header
description: 'The language you prefer for messages. Supported values are en-AU, en-CA, en-GB, en-US'
example: en-US
required: false
schema:
type: string
default: en-AU
- name: cookieParam
in: cookie
description: Some cookie
required: true
schema:
type: integer
format: int64
post:
tags:
- pet
summary: Add a new pet to the store
description: Add new pet to the store inventory.
operationId: addPet
x-badges:
- name: Global
type: global
responses:
'405':
description: Invalid input
security:
- petstore_auth:
- 'write:pets'
- 'read:pets'
x-codeSamples:
- lang: 'C#'
source: |
PetStore.v1.Pet pet = new PetStore.v1.Pet();
pet.setApiKey("your api key");
pet.petType = PetStore.v1.Pet.TYPE_DOG;
pet.name = "Rex";
// set other fields
PetStoreResponse response = pet.create();
if (response.statusCode == HttpStatusCode.Created)
{
// Successfully created
}
else
{
// Something wrong -- check response for errors
Console.WriteLine(response.getRawResponse());
}
- lang: PHP
source: |
$form = new \PetStore\Entities\Pet();
$form->setPetType("Dog");
$form->setName("Rex");
// set other fields
try {
$pet = $client->pets()->create($form);
} catch (UnprocessableEntityException $e) {
var_dump($e->getErrors());
}
requestBody:
$ref: '#/components/requestBodies/Pet'
put:
tags:
- pet
summary: Update an existing pet
description: ''
operationId: updatePet
x-badges:
- name: US Only
type: usonly
responses:
'400':
description: Invalid ID supplied
'404':
description: Pet not found
'405':
description: Validation exception
security:
- petstore_auth:
- 'write:pets'
- 'read:pets'
x-codeSamples:
- lang: PHP
source: |
$form = new \PetStore\Entities\Pet();
$form->setPetId(1);
$form->setPetType("Dog");
$form->setName("Rex");
// set other fields
try {
$pet = $client->pets()->update($form);
} catch (UnprocessableEntityException $e) {
var_dump($e->getErrors());
}
requestBody:
$ref: '#/components/requestBodies/Pet'
'/accounts/{accountId}/tnoptions/{orderid}/history':
get:
description: Retrieve the history information associated with an order.
operationId: GetOrderHistory
x-badges:
- name: Success
type: success
parameters:
- description: ''
in: path
name: orderid
required: true
schema:
type: string
responses:
'200':
content:
application/xml:
examples:
application/xml:
value: |-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<OrderHistoryWrapper>
<OrderHistory>
<OrderDate>2020-09-17T08:56:39.607Z</OrderDate>
<Note>Order has been received by the system.</Note>
<Author>admin</Author>
<Status>received</Status>
</OrderHistory>
<OrderHistory>
<OrderDate>2020-09-17T08:56:39.743Z</OrderDate>
<Note>Order processing has started.</Note>
<Author>admin</Author>
<Status>processing</Status>
</OrderHistory>
<OrderHistory>
<OrderDate>2020-09-17T08:56:39.820Z</OrderDate>
<Note>Order is complete.</Note>
<Author>admin</Author>
<Status>complete</Status>
</OrderHistory>
</OrderHistoryWrapper>
description: >-
The history payload is a set of history records, each of which
contains: <table style="text-align: left; width: 80%;" border="1"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>OrderDate</td>
<td>The date that the order history event happened</td></tr><tr><td>Status</td><td>The new state of the TN Option order - RECEIVED, PROCESSING, COMPLETE, PARTIAL, FAILED</td></tr><tr><td>Note</td><td>A Note or additional information included with the state change</td></tr><tr><td>Author</td><td>The user id that implemented the state change</td></tr></tbody></table></p>
'404':
content:
application/xml: {}
description: Not found. The order id does not exist in the system.
summary: Retrieve TN Option order history
tags:
- Tn Option
'/accounts/{accountId}/tnoptions':
get:
description: >-
Retrieve a list of the TN Option orders that are associated with the
account. A maximum of 1,000 orders can be retrieved per request. If no
date range or specific query parameter (marked by <b>*</b> below) is
provided, the order results will be limited to the last two years.
operationId: GetTnOptionOrders
x-badges:
- name: 1st Badge
type: warning
- name: 2nd Badge
type: experimental
parameters:
- description: The status of the TN Option order being searched for.
example: PROCESSING
in: query
name: status
required: false
schema:
items:
type: string
type: array
- description: <b>*</b> A Telephone Number (TN) that is referenced in the order.
example: '9199918388'
in: query
name: tn
required: false
schema:
type: string
- description: >-
<b>*</b> The Customer Order ID is an ID assigned by the account
owner to provide a reference number for the TN Option order.
example: ABCCorp12345
in: query
name: customerOrderId
required: false
schema:
type: string
- description: >-
For Date-based searches, the starting date of a date range
(inclusive) that will be used to find TN Option Orders that were
modified within the date range. It is in the form yyyy-MM-dd.
example: '2013-10-22'
in: query
name: modifiedDateFrom
required: false
schema:
type: string
- description: >-
For Date-based searches, the ending date of a date range (inclusive)
that will be used to find TN Option Orders that were modified within
the date range. It is in the form yyyy-MM-dd.
example: '2013-10-25'
in: query
name: modifiedDateTo
required: false
schema:
type: string
- description: >-
Checks the order's creation date against this value. Orders that
have a creation date after this date will be included. Format is
yyyy-MM-dd.
example: '2013-10-22'
in: query
name: createdDateFrom
required: false
schema:
type: string
- description: >-
Checks the order's creation date against this value. Orders that
have a creation date before this date will be included. Format is
yyyy-MM-dd.
example: '2013-10-25'
in: query
name: createdDateTo
required: false
schema:
type: string
- description: >-
Checks the order's last modified date against this value. Orders
that have a modification date after this date will be included.
Format is yyyy-MM-dd.
example: '2013-10-25'
in: query
name: lastModifiedAfter
required: false
schema:
type: string
- description: >-
This is the user-name of the user that last modified the TN Option
Order.
example: smckinnon
in: query
name: lastModifiedBy
required: false
schema:
type: string
- description: >-
<b>*</b> This search parameter represents the internal Bandwidth
Dashboard API ID that has been assigned to the TN Option Order. This
parameter is the first few characters of the internal ID - the
entire ID does not need to be specified.
example: ed1c0bed-e2
in: query
name: orderIdFragment
required: false
schema:
type: string
- description: >-
If set to true, a list of order details will be displayed instead
the summary information.
in: query
name: orderDetails
required: false
schema:
type: boolean
responses:
'200':
content:
application/xml:
examples:
example:
value: |-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TnOptionOrderReportResponse>
<TnOptionOrders>
<TotalCount>2</TotalCount>
<TnOptionOrderSummary>
<accountId>14</accountId>
<CountOfTNs>2</CountOfTNs>
<userId>jbm</userId>
<lastModifiedDate>2016-01-15T12:01:14.363Z</lastModifiedDate>
<OrderDate>2016-01-15T12:01:14.324Z</OrderDate>
<OrderType>tn_option</OrderType>
<OrderStatus>FAILED</OrderStatus>
<OrderId>ddbdc72e-dc27-490c-904e-d0c11291b095</OrderId>
</TnOptionOrderSummary>
<TnOptionOrderSummary>
<accountId>14</accountId>
<CountOfTNs>3</CountOfTNs>
<userId>jbm</userId>
<lastModifiedDate>2016-01-15T11:22:58.969Z</lastModifiedDate>
<OrderDate>2016-01-15T11:22:58.789Z</OrderDate>
<OrderType>tn_option</OrderType>
<OrderStatus>COMPLETE</OrderStatus>
<OrderId>409033ee-88ec-43e3-85f3-538f30733963</OrderId>
</TnOptionOrderSummary>
</TnOptionOrders>
<!-- OR -->
<TnOptionOrders>
<TotalCount>2</TotalCount>
<TnOptionOrder>
<OrderCreateDate>2016-01-15T12:01:14.324Z</OrderCreateDate>
<AccountId>14</AccountId>
<CreatedByUser>jbm</CreatedByUser>
<OrderId>ddbdc72e-dc27-490c-904e-d0c11291b095</OrderId>
<LastModifiedDate>2016-01-15T12:01:14.363Z</LastModifiedDate>
<ProcessingStatus>FAILED</ProcessingStatus>
<TnOptionGroups>
<TnOptionGroup>
<NumberFormat>10digit</NumberFormat>
<RPIDFormat>10digit</RPIDFormat>
<RewriteUser>testUser1</RewriteUser>
<CallForward>6042661720</CallForward>
<CallingNameDisplay>on</CallingNameDisplay>
<Protected>true</Protected>
<Sms>on</Sms>
<FinalDestinationURI>sip:+12345678901@1.2.3.4:5060</FinalDestinationURI>
<TelephoneNumbers>
<TelephoneNumber>2018551020</TelephoneNumber>
</TelephoneNumbers>
</TnOptionGroup>
<TnOptionGroup>
<CallingNameDisplay>off</CallingNameDisplay>
<Protected>false</Protected>
<Sms>off</Sms>
<TelephoneNumbers>
<TelephoneNumber>2018551025</TelephoneNumber>
</TelephoneNumbers>
</TnOptionGroup>
</TnOptionGroups>
<ErrorList>
<Error>
<Code>5076</Code>
<Description>Telephone number is not available.</Description>
<TelephoneNumber>2018551025</TelephoneNumber>
</Error>
<Error>
<Code>5076</Code>
<Description>Telephone number is not available.</Description>
<TelephoneNumber>2018551020</TelephoneNumber>
</Error>
</ErrorList>
</TnOptionOrder>
<TnOptionOrder>
<OrderCreateDate>2016-01-15T11:22:58.789Z</OrderCreateDate>
<AccountId>14</AccountId>
<CreatedByUser>jbm</CreatedByUser>
<OrderId>409033ee-88ec-43e3-85f3-538f30733963</OrderId>
<LastModifiedDate>2016-01-15T11:22:58.969Z</LastModifiedDate>
<ProcessingStatus>COMPLETE</ProcessingStatus>
<TnOptionGroups>
<TnOptionGroup>
<CallingNameDisplay>on</CallingNameDisplay>
<TelephoneNumbers>
<TelephoneNumber>2174101601</TelephoneNumber>
</TelephoneNumbers>
</TnOptionGroup>
<TnOptionGroup>
<CallingNameDisplay>off</CallingNameDisplay>
<TelephoneNumbers>
<TelephoneNumber>2174101602</TelephoneNumber>
</TelephoneNumbers>
</TnOptionGroup>
<TnOptionGroup>
<CallingNameDisplay>systemdefault</CallingNameDisplay>
<TelephoneNumbers>
<TelephoneNumber>2174101603</TelephoneNumber>
</TelephoneNumbers>
</TnOptionGroup>
</TnOptionGroups>
<ErrorList/>
</TnOptionOrder>
</TnOptionOrders>
</TnOptionOrderReportResponse>
description: >-
The descriptive payload for the TN Option Orders query provides a
broad range of information about the TN Option Orders found by the
query, including the data associated with the order, the state of
the order, and details about the order if it was successful.
'404':
content:
application/xml: {}
description: >
Not Found. If any errors are found in the processing of the query
string a 404 will be returned. Note that parameters that are not
recognized are not considered errors, and are just ignored.
summary: Retrieve list TN Option orders
tags:
- Tn Option
post:
description: >-
Create TN Option order to assign line features to the telephone
number.<br><br>Attribute description:<ul><li>for A2pSettings
attribute</li><table style="text-align: left; width: 80%;" border="1"
cellpadding="2" cellspacing="0"><tbody><tr><th>Number
attribute</th><th>Action value</th><th>Description of
action</th></tr><tr><td>LongCode</td><td><i>systemDefault</i></td><td>Removes
the per-TN A2P attributes, and it reverts to the Location/SIP Peer
characteristics. Any values for Class or Campaign ID are not
valid</td></tr><tr><td>LongCode</td><td><i>asSpecified</i></td><td>Sets
the message class and campaign ID - this is the default if
unspecified</td></tr><tr><td>LongCode</td><td><i>off</i></td><td>Will
set the TN as a 'P' TN. Any values for Class or Campaign ID are not
valid</td></tr><tr><td>LongCode</td><td><i>delete</i></td><td>Will
delete the campaign ID from TN. Any values for Class or Campaign ID are
not valid</td></tr><tr><td>LongCode</td><td><i>unchanged</i></td><td>Do
nothing with respect to
A2P</td></tr><tr><td>TollFree</td><td><i>systemDefault</i></td><td>Removes
the per-TN A2P attributes, and it reverts to the Location/SIP Peer
characteristics. Any values for Class or Campaign ID are not
valid</td></tr><tr><td>TollFree</td><td><i>asSpecified</i></td><td>Sets
the message class and campaign ID - this is the default if
unspecified</td></tr><tr><td>TollFree</td><td><i>off</i></td><td>If the
Togglz value is set to 'on' this is invalid for Toll Free telephone
numbers. Any values for Class or Campaign ID in the payload are invalid.
If the Togglz value is set to off this behaves like and A2P TN, where
the characteristics of the TNs is set to
'P'</td></tr><tr><td>TollFree</td><td><i>unchanged</i></td><td>Do
nothing with respect to A2P</td></tr></tbody></table><li>for Origination
Route plan attribute</li><table style="text-align: left; width: 80%;"
border="1" cellpadding="2" cellspacing="0"><tbody><tr><th>Action
value</th><th>Description of
action</th></tr><tr><td>asSpecified</td><td>Creates/updates the
origination route plan for the TN with route plan details provided in
the request </td></tr><tr><td>off</td><td>Removes the origination route
plan for the TN. Route list is the request must be
empty</td></tr><tr><td>unchanged</td><td>Doesn't update/create the
origination route plan, even when route plan details exist in the
request</td></tr></tbody></table><ul><li> Origination route plan is
validated against CallForward and RewriteUser</li><ul><li
type="square">Route plan and CallForward cannot co-exist. Order is
accepted but will respond with error messages on GET.</li><li
type="square">Route plan and RewriteUser cannot co-exist. Order is
accepted but will respond with error messages on
GET.</li></ul></ul><li>for Pindrop Enabled attribute</li><table
style="text-align: left; width: 80%;" border="1" cellpadding="2"
cellspacing="0"><tbody><tr><th>Action value</th><th>Description of
action</th></tr><tr><td>true</td><td>Enables Pindrop integration on each
phone number in the option
group</td></tr><tr><td>false</td><td>Explicitly disables Pindrop
integration on each phone number in the option
group</td></tr></tbody></table><li>for other attribute</li><ul><li
type="square"> <i>systemDefault</i> - implies that the element profile
value should be removed so that the TN changes back to the default
system behavior;</li><li type="square"> <i>unchanged</i> - the value
should remain unchanged - implies a read before write model.</li><li
type="square"><u>Leaving the element out of the payload is equivalent to
<i>unchanged</i>.</u></li></ul></ul>
operationId: CreateTnOptionOrder
requestBody:
content:
application/xml:
examples:
example:
value: |-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TnOptionOrder>
<CustomerOrderId>TnOptionOrder1</CustomerOrderId>
<TnOptionGroups>
<TnOptionGroup>
<NumberFormat>10digit</NumberFormat>
<RPIDFormat>10digit</RPIDFormat>
<RewriteUser>testUser1</RewriteUser>
<CallForward>6042661720</CallForward>
<CallingNameDisplay>on</CallingNameDisplay>
<PortOutPasscode>a1b2c3</PortOutPasscode>
<Protected>true</Protected>
<Sms>on</Sms>
<FinalDestinationURI>sip:+12345678901@1.2.3.4:5060</FinalDestinationURI>
<A2pSettings>
<MessageClass>M</MessageClass>
<CampaignId>campaignId010</CampaignId>
<Action>asSpecified</Action>
</A2pSettings>
<TelephoneNumbers>
<TelephoneNumber>2018551020</TelephoneNumber>
</TelephoneNumbers>
</TnOptionGroup>
<TnOptionGroup>
<CallingNameDisplay>off</CallingNameDisplay>
<Protected>false</Protected>
<Sms>off</Sms>
<OriginationRoutePlan>
<Route>
<Endpoint>6105552502</Endpoint>
<Priority>1</Priority>
<Weight>100</Weight>
</Route>
<Route>
<Endpoint>sip:clarkkent@dailyplanet.com</Endpoint>
<Priority>2</Priority>
<Weight>100</Weight>
</Route>
<Route>
<Endpoint>192.168.20.21</Endpoint>
<Priority>3</Priority>
<Weight>50</Weight>
</Route>
<Route>
<Endpoint>7075552509</Endpoint>
<Priority>3</Priority>
<Weight>50</Weight>
</Route>
<Route>
<Endpoint>myhost.bandwidth.example</Endpoint>
<Priority>4</Priority>
<Weight>100</Weight>
</Route>
<Action>asSpecified</Action>
</OriginationRoutePlan>
<TelephoneNumbers>
<TelephoneNumber>2018551025</TelephoneNumber>
</TelephoneNumbers>
</TnOptionGroup>
<TnOptionGroup>
<PindropEnabled>true</PindropEnabled>
<TelephoneNumbers>
<TelephoneNumber>2018551026</TelephoneNumber>
</TelephoneNumbers>
</TnOptionGroup>
</TnOptionGroups>
</TnOptionOrder>
responses:
'201':
content:
application/xml:
examples:
example:
value: |-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TnOptionOrderResponse>
<TnOptionOrder>
<OrderCreateDate>2016-01-15T12:01:14.324Z</OrderCreateDate>
<AccountId>14</AccountId>
<CreatedByUser>jbm</CreatedByUser>
<OrderId>ddbdc72e-dc27-490c-904e-d0c11291b095</OrderId>
<LastModifiedDate>2016-01-15T12:01:14.324Z</LastModifiedDate>
<ProcessingStatus>RECEIVED</ProcessingStatus>
<TnOptionGroups>
<TnOptionGroup>
<NumberFormat>10digit</NumberFormat>
<RPIDFormat>10digit</RPIDFormat>
<RewriteUser>testUser1</RewriteUser>
<CallForward>6042661720</CallForward>
<CallingNameDisplay>on</CallingNameDisplay>
<Protected>true</Protected>
<Sms>on</Sms>
<TelephoneNumbers>
<TelephoneNumber>2018551020</TelephoneNumber>
</TelephoneNumbers>
</TnOptionGroup>
<TnOptionGroup>
<CallingNameDisplay>off</CallingNameDisplay>
<Protected>false</Protected>
<Sms>off</Sms>
<TelephoneNumbers>
<TelephoneNumber>2018551025</TelephoneNumber>
</TelephoneNumbers>
</TnOptionGroup>
</TnOptionGroups>
<ErrorList/>
</TnOptionOrder>
</TnOptionOrderResponse>
description: Created
'400':
content:
application/xml:
examples:
example:
value: |-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TnOptionOrderResponse>
<ResponseStatus>
<ErrorCode>5081</ErrorCode>
<Description>Number Format 'wrong' is invalid.</Description>
</ResponseStatus>
</TnOptionOrderResponse>
description: >-
Bad Request A 400 response Indicates that the order could not be
created. Error text and an error code will be provided in the
ErrorList element.
'409':
content:
application/xml:
examples:
example:
value: |-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TnOptionOrderResponse>
<ResponseStatus>
<ErrorCode>5200</ErrorCode>
<Description>Origination route plan is not enabled for the account.</Description>
</ResponseStatus>
</TnOptionOrderResponse>
description: >-
Conflict. Error text and an error code will be provided in the
ErrorList element.
summary: Create TN Option order
tags:
- Tn Option
'/accounts/{accountId}/tnoptions/{orderid}':
get:
description: Retrieve information about a TN Option Order with specified ID.
operationId: GetTnOptionOrder
parameters:
- description: ''
in: path
name: orderid
required: true
schema:
type: string
responses:
'200':
content:
application/xml:
examples:
example:
value: |-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TnOptionOrder>
<OrderCreateDate>2016-01-15T11:22:58.789Z</OrderCreateDate>
<AccountId>14</AccountId>
<CreatedByUser>jbm</CreatedByUser>
<OrderId>409033ee-88ec-43e3-85f3-538f30733963</OrderId>
<LastModifiedDate>2016-01-15T11:22:58.969Z</LastModifiedDate>
<ProcessingStatus>COMPLETE</ProcessingStatus>
<TnOptionGroups>
<TnOptionGroup>
<CallingNameDisplay>on</CallingNameDisplay>
<Sms>on</Sms>
<TelephoneNumbers>
<TelephoneNumber>2174101601</TelephoneNumber>
</TelephoneNumbers>
</TnOptionGroup>
<TnOptionGroup>
<CallingNameDisplay>off</CallingNameDisplay>
<TelephoneNumbers>
<TelephoneNumber>2174101602</TelephoneNumber>
</TelephoneNumbers>
</TnOptionGroup>
<TnOptionGroup>
<CallingNameDisplay>systemdefault</CallingNameDisplay>
<FinalDestinationURI>sip:+12345678901@1.2.3.4:5060</FinalDestinationURI>
<TelephoneNumbers>
<TelephoneNumber>2174101603</TelephoneNumber>
</TelephoneNumbers>
</TnOptionGroup>
</TnOptionGroups>
<ErrorList/>
<Warnings>
<Warning>
<TelephoneNumber>2174101601</TelephoneNumber>
<Description>SMS is already Enabled or number is in processing.</Description>
</Warning>
</Warnings>
</TnOptionOrder>
description: >-
The descriptive payload for the TN Option Orders query provides a
broad range of information about the TN Option Order identified in
the URL. Included amongst the information is: <ul><li>ErrorList -
the errors discovered with codes and explanations</li><li>Warnings -
the warnings discovered with
explanations</li><li>ProcessingStatus(RECEIVED, PROCESSING,
COMPLETE, PARTIAL, FAILED) - the overall status of the
order</li></ul>
'404':
content:
application/xml:
examples:
example:
value: |-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TnOptionOrderReportResponse>
<ResponseStatus>
<Description>The resource does not exist</Description>
</ResponseStatus>
</TnOptionOrderReportResponse>
description: Not found. The order id does not exist in the system.
summary: Retrieve TN Option order
tags:
- Tn Option
'/pet/{petId}':
get:
tags:
- pet
summary: Find pet by ID
description: Returns a single pet
operationId: getPetById
parameters:
- name: petId
in: path
description: ID of pet to return
required: true
deprecated: true
schema:
type: integer
format: int64
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Pet'
application/xml:
schema:
$ref: '#/components/schemas/Pet'
'400':
description: Invalid ID supplied
'404':
description: Pet not found
security:
- api_key: []
post:
tags:
- pet
summary: Updates a pet in the store with form data
description: ''
operationId: updatePetWithForm
parameters:
- name: petId
in: path
description: ID of pet that needs to be updated
required: true
schema:
type: integer
format: int64
responses:
'405':
description: Invalid input
security:
- petstore_auth:
- 'write:pets'
- 'read:pets'
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
name:
description: Updated name of the pet
type: string
status:
description: Updated status of the pet
type: string
delete:
tags:
- pet
summary: Deletes a pet
description: ''
operationId: deletePet
parameters:
- name: api_key
in: header
required: false
schema:
type: string
example: 'Bearer <TOKEN>'
- name: petId
in: path
description: Pet id to delete
required: true
schema:
type: integer
format: int64
responses:
'400':
description: Invalid pet value
security:
- petstore_auth:
- 'write:pets'
- 'read:pets'
'/pet/{petId}/uploadImage':
post:
tags:
- pet
summary: uploads an image
description: ''
operationId: uploadFile
parameters:
- name: petId
in: path
description: ID of pet to update
required: true
schema:
type: integer
format: int64
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/ApiResponse'
security:
- petstore_auth:
- 'write:pets'
- 'read:pets'
requestBody:
content:
application/octet-stream:
schema:
type: string
format: binary
/pet/findByStatus:
get:
tags:
- pet
summary: Finds Pets by status
description: Multiple status values can be provided with comma separated strings
operationId: findPetsByStatus
parameters:
- name: status
in: query
description: Status values that need to be considered for filter
required: true
style: form
schema:
type: array
minItems: 1
maxItems: 3
items:
type: string
enum:
- available
- pending
- sold
default: available
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
application/xml:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
'400':
description: Invalid status value
security:
- petstore_auth:
- 'write:pets'
- 'read:pets'
/pet/findByTags:
get:
tags:
- pet
summary: Finds Pets by tags
description: >-
Multiple tags can be provided with comma separated strings. Use tag1,
tag2, tag3 for testing.
operationId: findPetsByTags
deprecated: true
parameters:
- name: tags
in: query
description: Tags to filter by
required: true
style: form
schema:
type: array
items:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Pet'
application/xml:
schema:
type: array
maxItems: 999
items:
maxItems: 111
$ref: '#/components/schemas/Pet'
'400':
description: Invalid tag value
security:
- petstore_auth:
- 'write:pets'
- 'read:pets'
/store/inventory:
get:
tags:
- store
summary: Returns pet inventories by status
description: Returns a map of status codes to quantities
operationId: getInventory
responses:
'200':
description: successful operation
content:
application/json:
schema:
type: object
minProperties: 2
additionalProperties:
type: integer
format: int32
security:
- api_key: []
/store/order:
post:
tags:
- store
summary: Place an order for a pet
description: ''
operationId: placeOrder
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
application/xml:
schema:
$ref: '#/components/schemas/Order'
'400':
description: Invalid Order
content:
application/json:
example:
status: 400
message: 'Invalid Order'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
description: order placed for purchasing the pet
required: true
'/store/order/{orderId}':
get:
tags:
- store
summary: Find purchase order by ID
description: >-
For valid response try integer IDs with value <= 5 or > 10. Other values
will generated exceptions
operationId: getOrderById
parameters:
- name: orderId
in: path
description: ID of pet that needs to be fetched
required: true
schema:
type: integer
format: int64
minimum: 1
maximum: 5
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
application/xml:
schema:
$ref: '#/components/schemas/Order'
'400':
description: Invalid ID supplied
'404':
description: Order not found
delete:
tags:
- store
summary: Delete purchase order by ID
description: >-
For valid response try integer IDs with value < 1000. Anything above
1000 or nonintegers will generate API errors
operationId: deleteOrder
parameters:
- name: orderId
in: path
description: ID of the order that needs to be deleted
required: true
schema:
type: string
minimum: 1
responses:
'400':
description: Invalid ID supplied
'404':
description: Order not found
/store/subscribe:
post:
tags:
- store
summary: Subscribe to the Store events
description: Add subscription for a store events
requestBody:
content:
application/json:
schema:
type: object
properties:
callbackUrl:
type: string
format: uri
description: This URL will be called by the server when the desired event will occur
example: https://myserver.com/send/callback/here
eventName:
type: string
description: Event name for the subscription
enum:
- orderInProgress
- orderShipped
- orderDelivered
example: orderInProgress
required:
- callbackUrl
- eventName
responses:
'201':
description: Subscription added
content:
application/json:
schema:
type: object
properties:
subscriptionId:
type: string
example: AAA-123-BBB-456
callbacks:
orderInProgress:
'{$request.body#/callbackUrl}?event={$request.body#/eventName}':
servers:
- url: //callback-url.path-level/v1
description: Path level server 1
- url: //callback-url.path-level/v2
description: Path level server 2
post:
summary: Order in Progress (Summary)
description: A callback triggered every time an Order is updated status to "inProgress" (Description)
externalDocs:
description: Find out more
url: 'https://more-details.com/demo'
requestBody:
content:
application/json:
schema:
type: object
properties:
orderId:
type: string
example: '123'
timestamp:
type: string
format: date-time
example: '2018-10-19T16:46:45Z'
status:
type: string
example: 'inProgress'
application/xml:
schema:
type: object
properties:
orderId:
type: string
example: '123'
example: |
<?xml version="1.0" encoding="UTF-8"?>
<root>
<orderId>123</orderId>
<status>inProgress</status>
<timestamp>2018-10-19T16:46:45Z</timestamp>
</root>
responses:
'200':
description: Callback successfully processed and no retries will be performed
content:
application/json:
schema:
type: object
properties:
someProp:
type: string
example: '123'
'299':
description: Response for cancelling subscription
'500':
description: Callback processing failed and retries will be performed
x-codeSamples:
- lang: 'C#'
source: |
PetStore.v1.Pet pet = new PetStore.v1.Pet();
pet.setApiKey("your api key");
pet.petType = PetStore.v1.Pet.TYPE_DOG;
pet.name = "Rex";
// set other fields
PetStoreResponse response = pet.create();
if (response.statusCode == HttpStatusCode.Created)
{
// Successfully created
}
else
{
// Something wrong -- check response for errors
Console.WriteLine(response.getRawResponse());
}
- lang: PHP
source: |
$form = new \PetStore\Entities\Pet();
$form->setPetType("Dog");
$form->setName("Rex");
// set other fields
try {
$pet = $client->pets()->create($form);
} catch (UnprocessableEntityException $e) {
var_dump($e->getErrors());
}
put:
description: Order in Progress (Only Description)
servers:
- url: //callback-url.operation-level/v1
description: Operation level server 1 (Operation override)
- url: //callback-url.operation-level/v2
description: Operation level server 2 (Operation override)
requestBody:
content:
application/json:
schema:
type: object
properties:
orderId:
type: string
example: '123'
timestamp:
type: string
format: date-time
example: '2018-10-19T16:46:45Z'
status:
type: string
example: 'inProgress'
application/xml:
schema:
type: object
properties:
orderId:
type: string
example: '123'
example: |
<?xml version="1.0" encoding="UTF-8"?>
<root>
<orderId>123</orderId>
<status>inProgress</status>
<timestamp>2018-10-19T16:46:45Z</timestamp>
</root>
responses:
'200':
description: Callback successfully processed and no retries will be performed
content:
application/json:
schema:
type: object
properties:
someProp:
type: string
example: '123'
orderShipped:
'{$request.body#/callbackUrl}?event={$request.body#/eventName}':
post:
description: |
Very long description
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis
nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in
culpa qui officia deserunt mollit anim id est laborum.
requestBody:
content:
application/json:
schema:
type: object
properties:
orderId:
type: string
example: '123'
timestamp:
type: string
format: date-time
example: '2018-10-19T16:46:45Z'
estimatedDeliveryDate:
type: string
format: date-time
example: '2018-11-11T16:00:00Z'
responses:
'200':
description: Callback successfully processed and no retries will be performed
orderDelivered:
'http://notificationServer.com?url={$request.body#/callbackUrl}&event={$request.body#/eventName}':
post:
deprecated: true
summary: Order delivered
description: A callback triggered every time an Order is delivered to the recipient
requestBody:
content:
application/json:
schema:
type: object
properties:
orderId:
type: string
example: '123'
timestamp:
type: string
format: date-time
example: '2018-10-19T16:46:45Z'
responses:
'200':
description: Callback successfully processed and no retries will be performed
/user:
post:
tags:
- user
summary: Create user
description: This can only be done by the logged in user.
operationId: createUser
responses:
default:
description: successful operation
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: Created user object
required: true
'/user/{username}':
get:
tags:
- user
summary: Get user by user name
description: ''
operationId: getUserByName
parameters:
- name: username
in: path
description: 'The name that needs to be fetched. Use user1 for testing. '
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/User'
application/xml:
schema:
$ref: '#/components/schemas/User'
'400':
description: Invalid username supplied
'404':
description: User not found
put:
tags:
- user
summary: Updated user
description: This can only be done by the logged in user.
operationId: updateUser
parameters:
- name: username
in: path
description: name that need to be deleted
required: true
schema:
type: string
responses:
'400':
description: Invalid user supplied
'404':
description: User not found
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/User'
description: Updated user object
required: true
delete:
tags:
- user
summary: Delete user
description: This can only be done by the logged in user.
operationId: deleteUser
parameters:
- name: username
in: path
description: The name that needs to be deleted
required: true
schema:
type: string
responses:
'400':
description: Invalid username supplied
'404':
description: User not found
/user/createWithArray:
post:
tags:
- user
summary: Creates list of users with given input array
description: ''
operationId: createUsersWithArrayInput
responses:
default:
description: successful operation
requestBody:
$ref: '#/components/requestBodies/UserArray'
/user/createWithList:
post:
tags:
- user
summary: Creates list of users with given input array
description: ''
operationId: createUsersWithListInput
responses:
default:
description: successful operation
requestBody:
$ref: '#/components/requestBodies/UserArray'
/user/login:
get:
tags:
- user
summary: Logs user into the system
description: ''
operationId: loginUser
parameters:
- name: username
in: query
description: The user name for login
required: true
schema:
type: string
- name: password
in: query
description: The password for login in clear text
required: true
schema:
type: string
responses:
'200':
description: successful operation
headers:
X-Rate-Limit:
description: calls per hour allowed by the user
schema:
type: integer
format: int32
X-Expires-After:
description: date in UTC when token expires
schema:
type: string
format: date-time
content:
application/json:
schema:
type: string
examples:
response:
value: OK
application/xml:
schema:
type: string
examples:
response:
value: <Message> OK </Message>
text/plain:
examples:
response:
value: OK
'400':
description: Invalid username/password supplied
/user/logout:
get:
tags:
- user
summary: Logs out current logged in user session
description: ''
operationId: logoutUser
responses:
default:
description: successful operation
components:
schemas:
ApiResponse:
type: object
properties:
code:
type: integer
format: int32
type:
type: string
message:
type: string
Cat:
'x-tags': ['pet']
description: A representation of a cat
allOf:
- $ref: '#/components/schemas/Pet'
- type: object
properties:
huntingSkill:
type: string
description: The measured skill for hunting
default: lazy
example: adventurous
enum:
- clueless
- lazy
- adventurous
- aggressive
required:
- huntingSkill
Category:
type: object
properties:
id:
description: Category ID
allOf:
- $ref: '#/components/schemas/Id'
name:
description: Category name
type: string
minLength: 1
sub:
description: Test Sub Category
type: object
properties:
prop1:
type: string
description: Dumb Property
xml:
name: Category
Dog:
description: A representation of a dog
allOf:
- $ref: '#/components/schemas/Pet'
- type: object
properties:
packSize:
type: integer
format: int32
description: The size of the pack the dog is from
default: 1
minimum: 1
required:
- packSize
HoneyBee:
description: A representation of a honey bee
allOf:
- $ref: '#/components/schemas/Pet'
- type: object
properties:
honeyPerDay:
type: number
description: Average amount of honey produced per day in ounces
example: 3.14
multipleOf: .01
required:
- honeyPerDay
Id:
type: integer
format: int64
readOnly: true
Order:
type: object
properties:
id:
description: Order ID
allOf:
- $ref: '#/components/schemas/Id'
petId:
description: Pet ID
allOf:
- $ref: '#/components/schemas/Id'
quantity:
type: integer
format: int32
minimum: 1
default: 1
shipDate:
description: Estimated ship date
type: string
format: date-time
status:
type: string
description: Order Status
enum:
- placed
- approved
- delivered
complete:
description: Indicates whenever order was completed or not
type: boolean
default: false
readOnly: true
requestId:
description: Unique Request Id
type: string
writeOnly: true
xml:
name: Order
Pet:
type: object
required:
- name
- photoUrls
discriminator:
propertyName: petType
mapping:
cat: '#/components/schemas/Cat'
dog: '#/components/schemas/Dog'
bee: '#/components/schemas/HoneyBee'
properties:
id:
externalDocs:
description: 'Find more info here'
url: 'https://example.com'
description: Pet ID
allOf:
- $ref: '#/components/schemas/Id'
category:
description: Categories this pet belongs to
allOf:
- $ref: '#/components/schemas/Category'
name:
description: The name given to a pet
type: string
example: Guru
photoUrls:
description: The list of URL to a cute photos featuring pet
type: array
default: []
maxItems: 20
xml:
name: photoUrl
wrapped: true
items:
type: string
format: url
friend:
allOf:
- $ref: '#/components/schemas/Pet'
tags:
description: Tags attached to the pet
type: array
minItems: 1
xml:
name: tag
wrapped: true
items:
$ref: '#/components/schemas/Tag'
status:
type: string
description: Pet status in the store
enum:
- available
- pending
- sold
petType:
description: Type of a pet
type: string
xml:
name: Pet
Tag:
type: object
properties:
id:
description: Tag ID
allOf:
- $ref: '#/components/schemas/Id'
name:
description: Tag name
type: string
minLength: 1
xml:
name: Tag
User:
type: object
properties:
id:
$ref: '#/components/schemas/Id'
pet:
oneOf:
- $ref: '#/components/schemas/Pet'
- $ref: '#/components/schemas/Tag'
username:
description: User supplied username
type: string
minLength: 4
example: John78
firstName:
description: User first name
type: string
minLength: 1
example: John
lastName:
description: User last name
type: string
minLength: 1
example: Smith
email:
description: User email address
type: string
format: email
example: john.smith@example.com
password:
type: string
description: >-
User password, MUST contain a mix of upper and lower case letters,
as well as digits
format: password
minLength: 8
pattern: '/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/'
example: drowssaP123
phone:
description: User phone number in international format
type: string
pattern: '/^\+(?:[0-9]-?){6,14}[0-9]$/'
example: +1-202-555-0192
userStatus:
description: User status
type: integer
format: int32
addresses:
type: array
minItems: 0
maxLength: 10
items:
- type: object
properties:
city:
type: string
minLength: 0
country:
type: string
minLength: 0
street:
description: includes build/apartment number
type: string
minLength: 0
- type: number
additionalItems:
type: string
xml:
name: User
requestBodies:
Pet:
content:
application/json:
schema:
allOf:
- description: My Pet
title: Pettie
- $ref: '#/components/schemas/Pet'
application/xml:
schema:
type: 'object'
properties:
name:
type: string
description: hooray
default: []
description: Pet object that needs to be added to the store
required: true
UserArray:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
description: List of user object
required: true
securitySchemes:
petstore_auth:
description: |
Get access to data while protecting your account credentials.
OAuth2 is also a safer and more secure way to give you access.
type: oauth2
flows:
implicit:
authorizationUrl: 'http://petstore.swagger.io/api/oauth/dialog'
scopes:
'write:pets': modify pets in your account
'read:pets': read your pets
api_key:
description: >
For this sample, you can use the api key `special-key` to test the
authorization filters.
type: apiKey
name: api_key
in: header
examples:
Order:
value:
quantity: 1
shipDate: '2018-10-19T16:46:45Z'
status: placed
complete: false
x-webhooks:
newPet:
post:
summary: New pet
description: Information about a new pet in the systems
operationId: newPet
tags:
- pet
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Pet'
responses:
'200':
description: Return a 200 status to indicate that the data was received successfully