UNPKG

@microsoft.azure/autorest.testserver

Version:

This project contains a set of OpenAPI definitions and a server implementing the corresponding API. Use this to test compliance of AutoRest generators.

1,556 lines 38.3 kB
{ "swagger": "2.0", "info": { "title": "AutoRest Swagger BAT XML Service", "description": "Test Infrastructure for AutoRest Swagger BAT", "version": "1.0.0" }, "host": "localhost:3000", "schemes": [ "http" ], "produces": [ "application/xml" ], "consumes": [ "application/xml" ], "paths": { "/xml/complex-type-ref-no-meta": { "get": { "operationId": "xml_getComplexTypeRefNoMeta", "description": "Get a complex type that has a ref to a complex type with no XML node", "tags": [ "XML Operations" ], "responses": { "200": { "description": "The empty list.", "schema": { "$ref": "#/definitions/RootWithRefAndNoMeta" } } } }, "put": { "operationId": "xml_putComplexTypeRefNoMeta", "description": "Puts a complex type that has a ref to a complex type with no XML node", "tags": [ "XML Operations" ], "parameters": [ { "name": "model", "in": "body", "schema": { "$ref": "#/definitions/RootWithRefAndNoMeta" }, "required": true } ], "responses": { "201": { "description": "Indicates success." } } } }, "/xml/complex-type-ref-with-meta": { "get": { "operationId": "xml_getComplexTypeRefWithMeta", "description": "Get a complex type that has a ref to a complex type with XML node", "tags": [ "XML Operations" ], "responses": { "200": { "description": "The empty list.", "schema": { "$ref": "#/definitions/RootWithRefAndMeta" } } } }, "put": { "operationId": "xml_putComplexTypeRefWithMeta", "description": "Puts a complex type that has a ref to a complex type with XML node", "tags": [ "XML Operations" ], "parameters": [ { "name": "model", "in": "body", "schema": { "$ref": "#/definitions/RootWithRefAndMeta" }, "required": true } ], "responses": { "201": { "description": "Indicates success." } } } }, "/xml/simple": { "get": { "operationId": "xml_getSimple", "description": "Get a simple XML document", "tags": [ "XML Operations" ], "responses": { "200": { "description": "The simple XML document", "schema": { "$ref": "#/definitions/Slideshow" } }, "default": { "description": "Unexpected error", "schema": { "$ref": "#/definitions/Error" } } } }, "put": { "operationId": "xml_putSimple", "description": "Put a simple XML document", "tags": [ "XML Operations" ], "parameters": [ { "name": "slideshow", "in": "body", "schema": { "$ref": "#/definitions/Slideshow" }, "required": true } ], "responses": { "201": { "description": "Indicates success" }, "default": { "description": "Unexpected error", "schema": { "$ref": "#/definitions/Error" } } } } }, "/xml/wrapped-lists": { "get": { "operationId": "xml_getWrappedLists", "description": "Get an XML document with multiple wrapped lists", "tags": [ "XML Operations" ], "responses": { "200": { "description": "The XML document with multiple wrapped lists", "schema": { "$ref": "#/definitions/AppleBarrel" } } } }, "put": { "operationId": "xml_putWrappedLists", "description": "Put an XML document with multiple wrapped lists", "tags": [ "XML Operations" ], "parameters": [ { "name": "wrappedLists", "in": "body", "schema": { "$ref": "#/definitions/AppleBarrel" }, "required": true } ], "responses": { "201": { "description": "Indicates success" }, "default": { "description": "Unexpected error", "schema": { "$ref": "#/definitions/Error" } } } } }, "/xml/headers": { "get": { "operationId": "xml_getHeaders", "description": "Get strongly-typed response headers.", "tags": [ "XML Operations" ], "responses": { "200": { "description": "The response header.", "headers": { "Custom-Header": { "description": "A custom response header.", "type": "string" } } } } } }, "/xml/empty-list": { "get": { "operationId": "xml_getEmptyList", "description": "Get an empty list.", "tags": [ "XML Operations" ], "responses": { "200": { "description": "The empty list.", "schema": { "$ref": "#/definitions/Slideshow" } } } }, "put": { "operationId": "xml_putEmptyList", "description": "Puts an empty list.", "tags": [ "XML Operations" ], "parameters": [ { "name": "slideshow", "in": "body", "schema": { "$ref": "#/definitions/Slideshow" }, "required": true } ], "responses": { "201": { "description": "Indicates success." } } } }, "/xml/empty-wrapped-lists": { "get": { "operationId": "xml_getEmptyWrappedLists", "description": "Gets some empty wrapped lists.", "tags": [ "XML Operations" ], "responses": { "200": { "description": "The empty lists.", "schema": { "$ref": "#/definitions/AppleBarrel" } } } }, "put": { "operationId": "xml_putEmptyWrappedLists", "description": "Puts some empty wrapped lists.", "tags": [ "XML Operations" ], "parameters": [ { "name": "appleBarrel", "in": "body", "schema": { "$ref": "#/definitions/AppleBarrel" }, "required": true } ], "responses": { "201": { "description": "Indicates success." } } } }, "/xml/root-list": { "get": { "operationId": "xml_getRootList", "description": "Gets a list as the root element.", "tags": [ "XML Operations" ], "responses": { "200": { "description": "The root list.", "schema": { "type": "array", "xml": { "name": "bananas" }, "items": { "$ref": "#/definitions/Banana" } } } } }, "put": { "operationId": "xml_putRootList", "description": "Puts a list as the root element.", "tags": [ "XML Operations" ], "parameters": [ { "name": "bananas", "in": "body", "schema": { "type": "array", "xml": { "name": "bananas", "wrapped": true }, "items": { "$ref": "#/definitions/Banana" } }, "required": true } ], "responses": { "201": { "description": "Indicates success." } } } }, "/xml/root-list-single-item": { "get": { "operationId": "xml_getRootListSingleItem", "description": "Gets a list with a single item.", "tags": [ "XML Operations" ], "responses": { "200": { "description": "The root list.", "schema": { "type": "array", "xml": { "name": "bananas" }, "items": { "$ref": "#/definitions/Banana" } } } } }, "put": { "operationId": "xml_putRootListSingleItem", "description": "Puts a list with a single item.", "tags": [ "XML Operations" ], "parameters": [ { "name": "bananas", "in": "body", "schema": { "type": "array", "xml": { "name": "bananas", "wrapped": true }, "items": { "$ref": "#/definitions/Banana" } }, "required": true } ], "responses": { "201": { "description": "Indicates success." } } } }, "/xml/empty-root-list": { "get": { "operationId": "xml_getEmptyRootList", "description": "Gets an empty list as the root element.", "tags": [ "XML Operations" ], "responses": { "200": { "description": "The root list.", "schema": { "type": "array", "xml": { "name": "bananas" }, "items": { "$ref": "#/definitions/Banana" } } } } }, "put": { "operationId": "xml_putEmptyRootList", "description": "Puts an empty list as the root element.", "tags": [ "XML Operations" ], "parameters": [ { "name": "bananas", "in": "body", "schema": { "type": "array", "xml": { "name": "bananas", "wrapped": true }, "items": { "$ref": "#/definitions/Banana" } }, "required": true } ], "responses": { "201": { "description": "Indicates success." } } } }, "/xml/empty-child-element": { "get": { "operationId": "xml_getEmptyChildElement", "description": "Gets an XML document with an empty child element.", "tags": [ "XML Operations" ], "responses": { "200": { "description": "The unknown banana.", "schema": { "$ref": "#/definitions/Banana" } } } }, "put": { "operationId": "xml_putEmptyChildElement", "description": "Puts a value with an empty child element.", "tags": [ "XML Operations" ], "parameters": [ { "name": "banana", "in": "body", "schema": { "$ref": "#/definitions/Banana" }, "required": true } ], "responses": { "201": { "description": "Indicates success." } } } }, "/xml/?comp=list": { "get": { "operationId": "xml_listContainers", "description": "Lists containers in a storage account.", "tags": [ "XML Operations" ], "parameters": [ { "name": "comp", "in": "query", "type": "string", "enum": [ "list" ], "required": true } ], "responses": { "200": { "description": "A list of containers.", "schema": { "$ref": "#/definitions/ListContainersResponse" } } } } }, "/xml/?comp=properties&restype=service": { "get": { "operationId": "xml_getServiceProperties", "description": "Gets storage service properties.", "tags": [ "XML Operations" ], "parameters": [ { "name": "comp", "in": "query", "type": "string", "enum": [ "properties" ], "required": true }, { "name": "restype", "in": "query", "type": "string", "enum": [ "service" ], "required": true } ], "responses": { "200": { "description": "The storage service properties.", "schema": { "$ref": "#/definitions/StorageServiceProperties" } } } }, "put": { "operationId": "xml_putServiceProperties", "description": "Puts storage service properties.", "tags": [ "XML Operations" ], "parameters": [ { "name": "comp", "in": "query", "type": "string", "enum": [ "properties" ], "required": true }, { "name": "restype", "in": "query", "type": "string", "enum": [ "service" ], "required": true }, { "name": "properties", "in": "body", "schema": { "$ref": "#/definitions/StorageServiceProperties" }, "required": true } ], "responses": { "201": { "description": "Indicates success." } } } }, "/xml/mycontainer?comp=acl&restype=container": { "get": { "operationId": "xml_getAcls", "description": "Gets storage ACLs for a container.", "tags": [ "XML Operations" ], "parameters": [ { "name": "comp", "in": "query", "type": "string", "enum": [ "acl" ], "required": true }, { "name": "restype", "in": "query", "type": "string", "enum": [ "container" ], "required": true } ], "responses": { "200": { "description": "The storage ACLs.", "schema": { "$ref": "#/definitions/SignedIdentifiers" } } } }, "put": { "operationId": "xml_putAcls", "description": "Puts storage ACLs for a container.", "tags": [ "XML Operations" ], "parameters": [ { "name": "comp", "in": "query", "type": "string", "enum": [ "acl" ], "required": true }, { "name": "restype", "in": "query", "type": "string", "enum": [ "container" ], "required": true }, { "name": "properties", "in": "body", "schema": { "$ref": "#/definitions/SignedIdentifiers" }, "required": true } ], "responses": { "201": { "description": "Indicates success." } } } }, "/xml/mycontainer?comp=list&restype=container": { "get": { "operationId": "xml_listBlobs", "description": "Lists blobs in a storage container.", "tags": [ "XML Operations" ], "parameters": [ { "name": "comp", "in": "query", "type": "string", "enum": [ "list" ], "required": true }, { "name": "restype", "in": "query", "type": "string", "enum": [ "container" ], "required": true } ], "responses": { "200": { "description": "A list of containers.", "schema": { "$ref": "#/definitions/ListBlobsResponse" } } } } }, "/xml/jsoninput": { "put": { "operationId": "xml_jsonInput", "consumes":[ "application/json" ], "description": "A Swagger with XML that has one operation that takes JSON as input. You need to send the ID number 42", "tags": [ "XML Operations" ], "parameters": [ { "name": "properties", "in": "body", "schema": { "$ref": "#/definitions/JSONInput" }, "required": true } ], "responses": { "200": { "description": "Indicates success." } } } }, "/xml/jsonoutput": { "get": { "operationId": "xml_jsonOutput", "produces":[ "application/json" ], "description": "A Swagger with XML that has one operation that returns JSON. ID number 42", "tags": [ "XML Operations" ], "responses": { "200": { "description": "Indicates success.", "schema": { "$ref": "#/definitions/JSONOutput" } } } } } }, "definitions": { "JSONInput": { "properties": { "id": { "type": "integer" } } }, "JSONOutput": { "properties": { "id": { "type": "integer" } } }, "Error": { "properties": { "status": { "type": "integer", "format": "int32" }, "message": { "type": "string" } } }, "Slide": { "type": "object", "description": "A slide in a slideshow", "properties": { "type": { "type": "string", "xml": { "attribute": true } }, "title": { "type": "string" }, "items": { "type": "array", "items": { "type": "string", "xml": { "name": "item" } } } }, "xml": { "name": "slide" } }, "Slideshow": { "type": "object", "description": "Data about a slideshow", "xml": { "name": "slideshow" }, "properties": { "title": { "type": "string", "xml": { "attribute": true } }, "date": { "type": "string", "xml": { "attribute": true } }, "author": { "type": "string", "xml": { "attribute": true } }, "slides": { "type": "array", "items": { "$ref": "#/definitions/Slide" } } } }, "AppleBarrel": { "type": "object", "description": "A barrel of apples.", "properties": { "GoodApples": { "type": "array", "items": { "type": "string", "xml": { "name": "Apple" } }, "xml": { "wrapped": true } }, "BadApples": { "type": "array", "items": { "type": "string", "xml": { "name": "Apple" } }, "xml": { "wrapped": true } } } }, "Banana": { "type": "object", "description": "A banana.", "properties": { "name": { "type": "string", "xml": { "name": "name" } }, "flavor": { "type": "string", "xml": { "name": "flavor" } }, "expiration": { "description": "The time at which you should reconsider eating this banana", "type": "string", "format": "date-time", "xml": { "name": "expiration" } } }, "xml": { "name": "banana" } }, "Container": { "type": "object", "required": [ "Name", "Properties" ], "description": "An Azure Storage container", "properties": { "Name": { "type": "string" }, "Properties": { "$ref": "#/definitions/ContainerProperties" }, "Metadata": { "$ref": "#/definitions/Metadata" } } }, "ContainerProperties": { "type": "object", "required": [ "Last-Modified", "Etag" ], "description": "Properties of a container", "properties": { "Last-Modified": { "type": "string", "format": "date-time-rfc1123" }, "Etag": { "type": "string", "format": "etag" }, "LeaseStatus": { "$ref": "#/definitions/LeaseStatus" }, "LeaseState": { "$ref": "#/definitions/LeaseState" }, "LeaseDuration": { "$ref": "#/definitions/LeaseDuration" }, "PublicAccess": { "$ref": "#/definitions/PublicAccessType" } } }, "ListContainersResponse": { "xml": { "name": "EnumerationResults" }, "description": "An enumeration of containers", "type": "object", "required": [ "ServiceEndpoint", "Prefix", "MaxResults", "NextMarker" ], "properties": { "ServiceEndpoint": { "type": "string", "xml": { "attribute": true } }, "Prefix": { "type": "string" }, "Marker": { "type": "string" }, "MaxResults": { "type": "integer" }, "Containers": { "xml": { "wrapped": true }, "type": "array", "items": { "$ref": "#/definitions/Container" } }, "NextMarker": { "type": "string" } } }, "CorsRule": { "description": "CORS is an HTTP feature that enables a web application running under one domain to access resources in another domain. Web browsers implement a security restriction known as same-origin policy that prevents a web page from calling APIs in a different domain; CORS provides a secure way to allow one domain (the origin domain) to call APIs in another domain", "type": "object", "required": [ "AllowedOrigins", "AllowedMethods", "AllowedHeaders", "ExposedHeaders", "MaxAgeInSeconds" ], "properties": { "AllowedOrigins": { "description": "The origin domains that are permitted to make a request against the storage service via CORS. The origin domain is the domain from which the request originates. Note that the origin must be an exact case-sensitive match with the origin that the user age sends to the service. You can also use the wildcard character '*' to allow all origin domains to make requests via CORS.", "type": "string" }, "AllowedMethods": { "description": "The methods (HTTP request verbs) that the origin domain may use for a CORS request. (comma separated)", "type": "string" }, "AllowedHeaders": { "description": "the request headers that the origin domain may specify on the CORS request.", "type": "string" }, "ExposedHeaders": { "description": "The response headers that may be sent in the response to the CORS request and exposed by the browser to the request issuer", "type": "string" }, "MaxAgeInSeconds": { "description": "The maximum amount time that a browser should cache the preflight OPTIONS request.", "type": "integer", "minimum": 0 } }, "xml": { "name": "CorsRule" } }, "Blob": { "description": "An Azure Storage blob", "type": "object", "required": [ "Name", "Deleted", "Snapshot", "Properties" ], "properties": { "Name": { "type": "string" }, "Deleted": { "type": "boolean" }, "Snapshot": { "type": "string" }, "Properties": { "$ref": "#/definitions/BlobProperties" }, "Metadata": { "$ref": "#/definitions/Metadata" } }, "xml": { "name": "Blob" } }, "BlobProperties": { "description": "Properties of a blob", "type": "object", "required": [ "Etag", "Last-Modified" ], "properties": { "Last-Modified": { "type": "string", "format": "date-time-rfc1123" }, "Etag": { "type": "string", "format": "etag" }, "Content-Length": { "type": "integer", "format": "int64", "description": "Size in bytes" }, "Content-Type": { "type": "string" }, "Content-Encoding": { "type": "string" }, "Content-Language": { "type": "string" }, "Content-MD5": { "type": "string" }, "Content-Disposition": { "type": "string" }, "Cache-Control": { "type": "string" }, "x-ms-blob-sequence-number": { "x-ms-client-name": "blobSequenceNumber", "type": "integer" }, "BlobType": { "type": "string", "enum": [ "BlockBlob", "PageBlob", "AppendBlob" ], "x-ms-enum": { "name": "BlobType", "modelAsString": false } }, "LeaseStatus": { "$ref": "#/definitions/LeaseStatus" }, "LeaseState": { "$ref": "#/definitions/LeaseState" }, "LeaseDuration": { "$ref": "#/definitions/LeaseDuration" }, "CopyId": { "type": "string" }, "CopyStatus": { "$ref": "#/definitions/CopyStatus" }, "CopySource": { "type": "string" }, "CopyProgress": { "type": "string" }, "CopyCompletionTime": { "type": "string", "format": "date-time-rfc1123" }, "CopyStatusDescription": { "type": "string" }, "ServerEncrypted": { "type": "boolean" }, "IncrementalCopy": { "type": "boolean" }, "DestinationSnapshot": { "type": "string" }, "DeletedTime": { "type": "string", "format": "date-time-rfc1123" }, "RemainingRetentionDays": { "type": "integer" }, "AccessTier": { "$ref": "#/definitions/AccessTier" }, "AccessTierInferred": { "type": "boolean" }, "ArchiveStatus": { "$ref": "#/definitions/ArchiveStatus" } } }, "Logging": { "description": "Azure Analytics Logging settings.", "type": "object", "required": [ "Version", "Delete", "Read", "Write", "RetentionPolicy" ], "properties": { "Version": { "description": "The version of Storage Analytics to configure.", "type": "string" }, "Delete": { "description": "Indicates whether all delete requests should be logged.", "type": "boolean" }, "Read": { "description": "Indicates whether all read requests should be logged.", "type": "boolean" }, "Write": { "description": "Indicates whether all write requests should be logged.", "type": "boolean" }, "RetentionPolicy": { "$ref": "#/definitions/RetentionPolicy" } } }, "Metadata": { "type": "object", "additionalProperties": { "type": "string" } }, "Metrics": { "description": "", "required": [ "Enabled" ], "properties": { "Version": { "description": "The version of Storage Analytics to configure.", "type": "string" }, "Enabled": { "description": "Indicates whether metrics are enabled for the Blob service.", "type": "boolean" }, "IncludeAPIs": { "description": "Indicates whether metrics should generate summary statistics for called API operations.", "type": "boolean" }, "RetentionPolicy": { "$ref": "#/definitions/RetentionPolicy" } } }, "ListBlobsResponse": { "xml": { "name": "EnumerationResults" }, "description": "An enumeration of blobs", "type": "object", "required": [ "ContainerName", "Prefix", "Marker", "MaxResults", "Delimiter", "Blobs", "NextMarker" ], "properties": { "ServiceEndpoint": { "type": "string", "xml": { "attribute": true } }, "ContainerName": { "type": "string", "xml": { "attribute": true } }, "Prefix": { "type": "string" }, "Marker": { "type": "string" }, "MaxResults": { "type": "integer" }, "Delimiter": { "type": "string" }, "Blobs": { "$ref": "#/definitions/Blobs" }, "NextMarker": { "type": "string" } } }, "Blobs": { "type": "object", "properties": { "BlobPrefix": { "type": "array", "items": { "$ref": "#/definitions/BlobPrefix" } }, "Blob": { "type": "array", "items": { "$ref": "#/definitions/Blob" } } } }, "BlobPrefix": { "type": "object", "required": [ "Name" ], "properties": { "Name": { "type": "string" } } }, "PublicAccessType": { "type": "string", "enum": [ "container", "blob" ], "x-ms-enum": { "name": "PublicAccessType", "modelAsString": true } }, "CopyStatus": { "type": "string", "enum": [ "pending", "success", "aborted", "failed" ], "x-ms-enum": { "name": "CopyStatusType", "modelAsString": false } }, "LeaseDuration": { "type": "string", "enum": [ "infinite", "fixed" ], "x-ms-enum": { "name": "LeaseDurationType", "modelAsString": false } }, "LeaseState": { "type": "string", "enum": [ "available", "leased", "expired", "breaking", "broken" ], "x-ms-enum": { "name": "LeaseStateType", "modelAsString": false } }, "LeaseStatus": { "type": "string", "enum": [ "locked", "unlocked" ], "x-ms-enum": { "name": "LeaseStatusType", "modelAsString": false } }, "AccessPolicy": { "type": "object", "required": [ "Start", "Expiry", "Permission" ], "description": "An Access policy", "properties": { "Start": { "description": "the date-time the policy is active", "type": "string", "format": "date-time" }, "Expiry": { "description": "the date-time the policy expires", "type": "string", "format": "date-time" }, "Permission": { "description": "the permissions for the acl policy", "type": "string" } } }, "AccessTier": { "type": "string", "enum": [ "P4", "P6", "P10", "P20", "P30", "P40", "P50", "Hot", "Cool", "Archive" ], "x-ms-enum": { "name": "AccessTier", "modelAsString": true } }, "ArchiveStatus": { "type": "string", "enum": [ "rehydrate-pending-to-hot", "rehydrate-pending-to-cool" ], "x-ms-enum": { "name": "ArchiveStatus", "modelAsString": true } }, "RetentionPolicy": { "description": "the retention policy", "type": "object", "required": [ "Enabled" ], "properties": { "Enabled": { "description": "Indicates whether a retention policy is enabled for the storage service", "type": "boolean" }, "Days": { "description": "Indicates the number of days that metrics or logging or soft-deleted data should be retained. All data older than this value will be deleted", "type": "integer", "minimum": 1 } } }, "SignedIdentifier": { "description": "signed identifier", "type": "object", "required": [ "Id", "AccessPolicy" ], "properties": { "Id": { "type": "string", "description": "a unique id" }, "AccessPolicy": { "description": "The access policy", "$ref": "#/definitions/AccessPolicy" } }, "xml": { "name": "SignedIdentifier" } }, "SignedIdentifiers": { "description": "a collection of signed identifiers", "type": "array", "items": { "$ref": "#/definitions/SignedIdentifier" }, "xml": { "wrapped": true, "name": "SignedIdentifiers" } }, "StorageServiceProperties": { "description": "Storage Service Properties.", "type": "object", "properties": { "Logging": { "description": "Azure Analytics Logging settings", "$ref": "#/definitions/Logging" }, "HourMetrics": { "description": "A summary of request statistics grouped by API in hourly aggregates for blobs", "$ref": "#/definitions/Metrics" }, "MinuteMetrics": { "description": "a summary of request statistics grouped by API in minute aggregates for blobs", "$ref": "#/definitions/Metrics" }, "Cors": { "description": "The set of CORS rules.", "type": "array", "items": { "$ref": "#/definitions/CorsRule" }, "xml": { "wrapped": true } }, "DefaultServiceVersion": { "description": "The default version to use for requests to the Blob service if an incoming request's version is not specified. Possible values include version 2008-10-27 and all more recent versions", "type": "string" }, "DeleteRetentionPolicy": { "description": "The Delete Retention Policy for the service", "$ref": "#/definitions/RetentionPolicy" } } }, "ComplexTypeNoMeta": { "description": "I am a complex type with no XML node", "type": "object", "properties":{ "ID": { "description": "The id of the res", "type": "string" } } }, "ComplexTypeWithMeta": { "description": "I am a complex type with XML node", "type": "object", "properties":{ "ID": { "description": "The id of the res", "type": "string" } }, "xml": { "name": "XMLComplexTypeWithMeta" } }, "RootWithRefAndNoMeta": { "description": "I am root, and I ref a model with no meta", "type": "object", "properties":{ "RefToModel": { "description": "XML will use RefToModel", "$ref": "#/definitions/ComplexTypeNoMeta" }, "Something": { "description": "Something else (just to avoid flattening)", "type": "string" } } }, "RootWithRefAndMeta": { "description": "I am root, and I ref a model WITH meta", "type": "object", "properties":{ "RefToModel": { "description": "XML will use XMLComplexTypeWithMeta", "$ref": "#/definitions/ComplexTypeWithMeta" }, "Something": { "description": "Something else (just to avoid flattening)", "type": "string" } } } } }