@autorest/codemodel
Version:
AutoRest code model library
1,828 lines (1,820 loc) • 60.9 kB
YAML
type: object
description: the model that contains all the information required to generate a service api
$schema: http://json-schema.org/draft-07/schema#
additionalProperties: false
definitions:
AADTokenSecurityScheme:
type: object
additionalProperties: false
allOf:
- $ref: '#/definitions/SecurityScheme'
properties:
scopes:
type: array
items:
type: string
required:
- scopes
- type
APIKeySecurityScheme:
type: object
additionalProperties: false
properties:
name:
type: string
type:
type: string
const: apiKey
description:
type: string
in:
$ref: '#/definitions/ParameterLocation'
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
required:
- in
- name
- type
AllSchemaTypes:
type: string
description: all schema types
enum:
- any
- any-object
- arm-id
- array
- binary
- boolean
- byte-array
- char
- choice
- conditional
- constant
- credential
- date
- date-time
- dictionary
- duration
- flag
- group
- integer
- not
- number
- object
- odata-query
- or
- sealed-choice
- sealed-conditional
- string
- time
- unixtime
- uri
- uuid
- xor
AnyObjectSchema:
type: object
additionalProperties: false
allOf:
- $ref: '#/definitions/Schema'
required:
- language
- protocol
- type
AnySchema:
type: object
additionalProperties: false
allOf:
- $ref: '#/definitions/Schema'
required:
- language
- protocol
- type
ApiVersion:
type: object
description: |-
- since API version formats range from
Azure ARM API date style (2018-01-01) to semver (1.2.3)
and virtually any other text, this value tends to be an
opaque string with the possibility of a modifier to indicate
that it is a range.
options:
- prepend a dash or append a plus to indicate a range
(ie, '2018-01-01+' or '-2019-01-01', or '1.0+' )
- semver-range style (ie, '^1.0.0' or '~1.0.0' )
additionalProperties: false
properties:
range:
type: string
enum:
- +
- '-'
version:
type: string
description: the actual api version string used in the API
required:
- version
ApiVersions:
type: array
description: a collection of api versions
items:
$ref: '#/definitions/ApiVersion'
ArmIdSchema:
type: object
description: a schema that represents a Uuid value
additionalProperties: false
allOf:
- $ref: '#/definitions/PrimitiveSchema'
required:
- language
- protocol
- type
ArraySchema:
type: object
description: a Schema that represents and array of values
additionalProperties: false
allOf:
- $ref: '#/definitions/ValueSchema'
properties:
elementType:
description: elementType of the array
$ref: '#/definitions/Schema'
maxItems:
type: number
description: maximum number of elements in the array
minItems:
type: number
description: minimum number of elements in the array
nullableItems:
type: boolean
description: if elements in the array should be nullable
uniqueItems:
type: boolean
description: if the elements in the array should be unique
required:
- elementType
- language
- protocol
- type
AuthorizationCodeOAuthFlow:
type: object
additionalProperties: false
properties:
authorizationUrl:
type: string
description: an URI
refreshUrl:
type: string
description: an URI
scopes:
$ref: '#/definitions/Record<string,string>'
tokenUrl:
type: string
description: an URI
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
required:
- authorizationUrl
- scopes
- tokenUrl
AzureKeySecurityScheme:
type: object
additionalProperties: false
allOf:
- $ref: '#/definitions/SecurityScheme'
properties:
headerName:
type: string
required:
- headerName
- type
BearerHTTPSecurityScheme:
type: object
additionalProperties: false
properties:
type:
type: string
const: http
description:
type: string
bearerFormat:
type: string
scheme:
type: string
const: bearer
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
required:
- scheme
- type
BinaryResponse:
type: object
description: a response where the content should be treated as a binary instead of a value or object
additionalProperties: false
allOf:
- $ref: '#/definitions/Response'
properties:
binary:
type: boolean
description: indicates that this response is a binary stream
const: true
required:
- binary
- language
- protocol
BinarySchema:
type: object
additionalProperties: false
allOf:
- $ref: '#/definitions/Schema'
required:
- language
- protocol
- type
BooleanSchema:
type: object
description: a schema that represents a boolean value
additionalProperties: false
allOf:
- $ref: '#/definitions/PrimitiveSchema'
required:
- language
- protocol
- type
ByteArraySchema:
type: object
description: a schema that represents a ByteArray value
additionalProperties: false
allOf:
- $ref: '#/definitions/ValueSchema'
properties:
format:
type: string
description: date-time format
enum:
- base64url
- byte
required:
- format
- language
- protocol
- type
CSharpLanguage:
type: object
additionalProperties: false
CharSchema:
type: object
description: a schema that represents a Char value
additionalProperties: false
allOf:
- $ref: '#/definitions/PrimitiveSchema'
required:
- language
- protocol
- type
ChoiceSchema:
type: object
description: a schema that represents a choice of several values (ie, an 'enum')
additionalProperties: false
allOf:
- $ref: '#/definitions/ValueSchema'
properties:
choiceType:
description: the primitive type for the choices
$ref: '#/definitions/PrimitiveSchema'
choices:
type: array
description: the possible choices for in the set
items:
$ref: '#/definitions/ChoiceValue'
required:
- choiceType
- choices
- language
- protocol
- type
ChoiceValue:
type: object
description: an individual choice in a ChoiceSchema
additionalProperties: false
properties:
value:
type:
- string
- number
- boolean
description: the actual value
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
language:
description: per-language information for this value
$ref: '#/definitions/Languages'
required:
- language
- value
ClientCredentialsFlow:
type: object
additionalProperties: false
properties:
refreshUrl:
type: string
description: an URI
scopes:
$ref: '#/definitions/Record<string,string>'
tokenUrl:
type: string
description: an URI
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
required:
- scopes
- tokenUrl
ComplexSchema:
type: object
description: schema types that can be objects
additionalProperties: false
allOf:
- $ref: '#/definitions/Schema'
required:
- language
- protocol
- type
CompoundSchemaTypes:
type: string
description: |-
Compound schemas are used to construct complex objects or offer choices of a set of schemas.
(ie, allOf, anyOf, oneOf )
enum:
- or
- xor
ConditionalSchema:
type: object
description: a schema that represents a value dependent on another
additionalProperties: false
allOf:
- $ref: '#/definitions/ValueSchema'
properties:
conditionalType:
description: the primitive type for the conditional
$ref: '#/definitions/PrimitiveSchema'
conditions:
type: array
description: the possible conditinal values
items:
$ref: '#/definitions/ConditionalValue'
sourceValue:
description: the source value that drives the target value (property or parameter)
$ref: '#/definitions/Value'
required:
- conditionalType
- conditions
- language
- protocol
- sourceValue
- type
ConditionalValue:
type: object
description: an individual value in a ConditionalSchema
additionalProperties: false
properties:
source:
type:
- string
- number
- boolean
description: the actual value
target:
type:
- string
- number
- boolean
description: the actual value
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
language:
description: per-language information for this value
$ref: '#/definitions/Languages'
required:
- language
- source
- target
ConstantSchema:
type: object
description: a schema that represents a constant value
additionalProperties: false
allOf:
- $ref: '#/definitions/Schema'
properties:
value:
description: the actual constant value
$ref: '#/definitions/ConstantValue'
valueType:
description: the schema type of the constant value (ie, StringSchema, NumberSchema, etc)
$ref: '#/definitions/Schema'
required:
- language
- protocol
- type
- value
- valueType
ConstantType:
type: object
additionalProperties: false
properties:
type:
description: the schema type
$ref: '#/definitions/AllSchemaTypes'
apiVersions:
type: array
description: API versions that this applies to. Undefined means all versions
items:
$ref: '#/definitions/ApiVersion'
defaultValue:
description: If the value isn't sent on the wire, the service will assume this
deprecated:
description: Represent the deprecation information if api is deprecated.
default: undefined
$ref: '#/definitions/Deprecation'
example:
description: example information
externalDocs:
description: External Documentation Links
$ref: '#/definitions/ExternalDocumentation'
origin:
type: string
description: where did this aspect come from (jsonpath or 'modelerfour:<soemthing>')
serialization:
description: per-serialization information for this Schema
$ref: '#/definitions/SerializationFormats'
summary:
type: string
description: a short description
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
language:
description: per-language information for Schema
$ref: '#/definitions/Languages'
protocol:
description: per-protocol information for this aspect
$ref: '#/definitions/Protocols'
required:
- language
- protocol
- type
ConstantValue:
type: object
description: a container for the actual constant value
additionalProperties: false
properties:
value:
description: the actual constant value to use
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
language:
description: per-language information for this value
$ref: '#/definitions/Languages'
required:
- value
Contact:
type: object
description: contact information
additionalProperties: false
properties:
name:
type: string
email:
type: string
url:
type: string
description: an URI
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
CredentialSchema:
type: object
description: a schema that represents a Credential value
additionalProperties: false
allOf:
- $ref: '#/definitions/PrimitiveSchema'
properties:
maxLength:
type: number
description: the maximum length of the string
minLength:
type: number
description: the minimum length of the string
pattern:
type: string
description: a regular expression that the string must be validated against
required:
- language
- protocol
- type
DateSchema:
type: object
description: a schema that represents a Date value
additionalProperties: false
allOf:
- $ref: '#/definitions/PrimitiveSchema'
required:
- language
- protocol
- type
DateTimeSchema:
type: object
description: a schema that represents a DateTime value
additionalProperties: false
allOf:
- $ref: '#/definitions/PrimitiveSchema'
properties:
format:
type: string
description: date-time format
enum:
- date-time
- date-time-rfc1123
required:
- format
- language
- protocol
- type
Default:
type: string
description: A catch-all for all un-handled response codes.
const: default
Deprecation:
type: object
description: Represent information about a deprecation
additionalProperties: false
properties:
reason:
type: string
description: Reason why this was deprecated.
DictionarySchema:
type: object
description: a schema that represents a key-value collection
additionalProperties: false
allOf:
- $ref: '#/definitions/ComplexSchema'
properties:
elementType:
description: the element type of the dictionary. (Keys are always strings)
$ref: '#/definitions/Schema'
nullableItems:
type: boolean
description: if elements in the dictionary should be nullable
required:
- elementType
- language
- protocol
- type
Discriminator:
type: object
additionalProperties: false
properties:
all:
$ref: '#/definitions/Record<string,ComplexSchema>'
immediate:
$ref: '#/definitions/Record<string,ComplexSchema>'
property:
$ref: '#/definitions/Property'
required:
- all
- immediate
- property
DurationSchema:
type: object
description: a schema that represents a Duration value
additionalProperties: false
allOf:
- $ref: '#/definitions/PrimitiveSchema'
required:
- language
- protocol
- type
Example:
type: object
description: example data [UNFINISHED]
additionalProperties: false
properties:
description:
type: string
externalValue:
type: string
description: an URI
summary:
type: string
Extensions:
type: object
description: A dictionary of open-ended 'x-*' extensions propogated from the original source document.
additionalProperties: false
properties:
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
ExternalDocumentation:
type: object
description: a reference to external documentation
additionalProperties: false
properties:
description:
type: string
url:
type: string
description: an URI
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
required:
- url
FlagSchema:
type: object
additionalProperties: false
allOf:
- $ref: '#/definitions/ValueSchema'
properties:
choices:
type: array
description: the possible choices for in the set
items:
$ref: '#/definitions/FlagValue'
required:
- choices
- language
- protocol
- type
FlagValue:
type: object
additionalProperties: false
properties:
value:
type: number
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
language:
description: per-language information for this value
$ref: '#/definitions/Languages'
required:
- language
- value
GroupProperty:
type: object
additionalProperties: false
allOf:
- $ref: '#/definitions/Property'
properties:
originalParameter:
type: array
items:
$ref: '#/definitions/Parameter'
required:
- language
- originalParameter
- protocol
- schema
- serializedName
GroupSchema:
type: object
additionalProperties: false
allOf:
- $ref: '#/definitions/Schema'
- $ref: '#/definitions/SchemaUsage'
properties:
properties:
type: array
items:
$ref: '#/definitions/GroupProperty'
required:
- language
- protocol
- type
HTTPSecurityScheme:
anyOf:
- $ref: '#/definitions/BearerHTTPSecurityScheme'
- $ref: '#/definitions/NonBearerHTTPSecurityScheme'
HttpBinaryRequest:
type: object
additionalProperties: false
allOf:
- $ref: '#/definitions/HttpWithBodyRequest'
properties:
binary:
type: boolean
const: true
required:
- binary
- knownMediaType
- mediaTypes
- method
- path
- uri
HttpBinaryResponse:
type: object
additionalProperties: false
allOf:
- $ref: '#/definitions/HttpResponse'
properties:
binary:
type: boolean
description: binary responses
const: true
required:
- binary
- statusCodes
HttpHeader:
type: object
additionalProperties: false
properties:
schema:
$ref: '#/definitions/Schema'
header:
type: string
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
language:
$ref: '#/definitions/Languages'
required:
- header
- language
- schema
HttpMethod:
type: string
description: standard HTTP protocol methods
enum:
- get
- put
- post
- delete
- options
- head
- patch
- trace
HttpModel:
type: object
description: code model metadata for HTTP protocol
additionalProperties: false
allOf:
- $ref: '#/definitions/Protocol'
properties:
security:
type: array
description: a collection of security requirements for the service
items:
$ref: '#/definitions/SecurityRequirement'
HttpMultipartRequest:
type: object
additionalProperties: false
allOf:
- $ref: '#/definitions/HttpWithBodyRequest'
properties:
multipart:
type: boolean
description: |-
indicates that the HTTP Request should be a multipart request
ie, that it has multiple requests in a single request.
const: true
required:
- knownMediaType
- mediaTypes
- method
- multipart
- path
- uri
HttpParameter:
type: object
description: extended metadata for HTTP operation parameters
additionalProperties: false
allOf:
- $ref: '#/definitions/Protocol'
properties:
explode:
type: boolean
description: when set, 'form' style parameters generate separate parameters for each value of an array.
in:
type: string
description: the location that this parameter is placed in the http request
enum:
- body
- cookie
- header
- none
- path
- query
- uri
- virtual
skipUriEncoding:
type: boolean
description: when set, this indicates that the content of the parameter should not be subject to URI encoding rules.
style:
description: the Serialization Style used for the parameter.
$ref: '#/definitions/SerializationStyle'
required:
- in
HttpRequest:
type: object
description: HTTP operation protocol data
additionalProperties: false
allOf:
- $ref: '#/definitions/Protocol'
properties:
path:
type: string
description: |-
A relative path to an individual endpoint.
The field name MUST begin with a slash.
The path is appended (no relative URL resolution) to the expanded URL from the Server Object's url field in order to construct the full URL.
Path templating is allowed.
When matching URLs, concrete (non-templated) paths would be matched before their templated counterparts.
method:
description: the HTTP Method used to process this operation
$ref: '#/definitions/HttpMethod'
uri:
type: string
description: the base URI template for the operation. This will be a template that has Uri parameters to craft the base url to use.
required:
- method
- path
- uri
HttpResponse:
type: object
additionalProperties: false
allOf:
- $ref: '#/definitions/Protocol'
properties:
headerGroups:
type: array
description: sets of HTTP headers grouped together into a single schema
items:
$ref: '#/definitions/GroupSchema'
headers:
type: array
description: content returned by the service in the HTTP headers
items:
$ref: '#/definitions/HttpHeader'
knownMediaType:
description: canonical response type (ie, 'json').
$ref: '#/definitions/KnownMediaType'
mediaTypes:
type: array
description: The possible media types that this response MUST match one of.
items:
type: string
statusCodes:
type: array
description: the possible HTTP status codes that this response MUST match one of.
items:
$ref: '#/definitions/StatusCode'
required:
- statusCodes
HttpWithBodyRequest:
type: object
additionalProperties: false
allOf:
- $ref: '#/definitions/HttpRequest'
properties:
knownMediaType:
description: a normalized value for the media type (ie, distills down to a well-known moniker (ie, 'json'))
$ref: '#/definitions/KnownMediaType'
mediaTypes:
type: array
description: must contain at least one media type to send for the body
items:
type: string
required:
- knownMediaType
- mediaTypes
- method
- path
- uri
ImplementationLocation:
type: string
enum:
- Method
- Client
- Context
ImplicitOAuthFlow:
type: object
additionalProperties: false
properties:
authorizationUrl:
type: string
description: an URI
refreshUrl:
type: string
description: an URI
scopes:
$ref: '#/definitions/Record<string,string>'
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
required:
- authorizationUrl
- scopes
Info:
type: object
description: code model information
additionalProperties: false
properties:
description:
type: string
description: a text description of the service
contact:
description: contact information for the service
$ref: '#/definitions/Contact'
externalDocs:
description: External Documentation
$ref: '#/definitions/ExternalDocumentation'
license:
description: license information for th service
$ref: '#/definitions/License'
termsOfService:
type: string
description: an uri to the terms of service specified to access the service
title:
type: string
description: the title of this service.
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
required:
- title
KeySecurityScheme:
type: object
additionalProperties: false
allOf:
- $ref: '#/definitions/SecurityScheme'
properties:
name:
type: string
in:
type: string
const: header
required:
- in
- name
- type
KnownMediaType:
type: string
enum:
- json
- xml
- form
- binary
- multipart
- text
- unknown
Language:
type: object
description: the bare-minimum fields for per-language metadata on a given aspect
additionalProperties:
type: object
properties:
name:
type: string
description: name used in actual implementation
description:
type: string
description: description text - describes this node.
required:
- description
- name
Languages:
type: object
description: custom extensible metadata for individual language generators
additionalProperties: false
properties:
default:
$ref: '#/definitions/Language'
c:
$ref: '#/definitions/Language'
cpp:
$ref: '#/definitions/Language'
csharp:
$ref: '#/definitions/Language'
go:
$ref: '#/definitions/Language'
java:
$ref: '#/definitions/Language'
javascript:
$ref: '#/definitions/Language'
objectivec:
$ref: '#/definitions/Language'
powershell:
$ref: '#/definitions/Language'
python:
$ref: '#/definitions/Language'
ruby:
$ref: '#/definitions/Language'
sputnik:
$ref: '#/definitions/Language'
swift:
$ref: '#/definitions/Language'
typescript:
$ref: '#/definitions/Language'
required:
- default
License:
type: object
description: license information
additionalProperties: false
properties:
name:
type: string
description: the nameof the license
url:
type: string
description: an uri pointing to the full license text
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
required:
- name
Metadata:
type: object
description: common pattern for Metadata on aspects
additionalProperties: false
properties:
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
language:
description: per-language information for this aspect
$ref: '#/definitions/Languages'
protocol:
description: per-protocol information for this aspect
$ref: '#/definitions/Protocols'
required:
- language
- protocol
NonBearerHTTPSecurityScheme:
type: object
additionalProperties: false
properties:
type:
type: string
const: http
description:
type: string
scheme:
type: string
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
required:
- scheme
- type
NotSchema:
type: object
description: a NOT relationship between schemas
additionalProperties: false
allOf:
- $ref: '#/definitions/Schema'
properties:
not:
description: the schema that this may not be.
$ref: '#/definitions/Schema'
required:
- language
- not
- protocol
- type
NumberSchema:
type: object
description: a Schema that represents a Number value
additionalProperties: false
allOf:
- $ref: '#/definitions/PrimitiveSchema'
properties:
exclusiveMaximum:
type: boolean
description: if present, the value must be lower than maximum
exclusiveMinimum:
type: boolean
description: if present, the value must be higher than minimum
maximum:
type: number
description: if present, the value must be lower than or equal to this (unless exclusiveMaximum is true)
minimum:
type: number
description: if present, the value must be highter than or equal to this (unless exclusiveMinimum is true)
multipleOf:
type: number
description: if present, the number must be an exact multiple of this value
precision:
type: number
description: precision (# of bits?) of the number
required:
- language
- precision
- protocol
- type
OAuth2SecurityScheme:
type: object
additionalProperties: false
allOf:
- $ref: '#/definitions/SecurityScheme'
properties:
scopes:
type: array
items:
type: string
required:
- scopes
- type
OAuthFlows:
type: object
additionalProperties: false
properties:
authorizationCode:
$ref: '#/definitions/AuthorizationCodeOAuthFlow'
clientCredentials:
$ref: '#/definitions/ClientCredentialsFlow'
implicit:
$ref: '#/definitions/ImplicitOAuthFlow'
password:
$ref: '#/definitions/PasswordOAuthFlow'
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
ODataQuerySchema:
type: object
description: a schema that represents a ODataQuery value
additionalProperties: false
allOf:
- $ref: '#/definitions/Schema'
required:
- language
- protocol
- type
ObjectSchema:
type: object
description: a schema that represents a type with child properties.
additionalProperties: false
allOf:
- $ref: '#/definitions/ComplexSchema'
- $ref: '#/definitions/SchemaUsage'
properties:
children:
$ref: '#/definitions/Relations'
discriminator:
description: the property of the polymorphic descriminator for this type, if there is one
$ref: '#/definitions/Discriminator'
discriminatorValue:
type: string
maxProperties:
type: number
description: maximum number of properties permitted
minProperties:
type: number
description: minimum number of properties permitted
parents:
$ref: '#/definitions/Relations'
properties:
type: array
description: the collection of properties that are in this object
items:
$ref: '#/definitions/Property'
required:
- language
- protocol
- type
ObjectSchemaTypes:
type: string
description: schema types that can be objects
enum:
- dictionary
- object
- or
OpenIdConnectSecurityScheme:
type: object
additionalProperties: false
properties:
type:
type: string
const: openIdConnect
description:
type: string
openIdConnectUrl:
type: string
description: an URI
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
required:
- openIdConnectUrl
- type
Operation:
type: object
description: represents a single callable endpoint with a discrete set of inputs, and any number of output possibilities (responses or exceptions)
additionalProperties: false
properties:
operationId:
type: string
description: |-
Original Operation ID if present.
This can be used to identify the original id of an operation before it is styled.
THIS IS NOT the name of the operation that should be used in the generator. Use `.language.default.name` for this
apiVersions:
type: array
description: API versions that this applies to. Undefined means all versions
items:
$ref: '#/definitions/ApiVersion'
deprecated:
description: Represent the deprecation information if api is deprecated.
default: undefined
$ref: '#/definitions/Deprecation'
exceptions:
type: array
description: responses that indicate a failed call
items:
$ref: '#/definitions/Response'
externalDocs:
description: External Documentation Links
$ref: '#/definitions/ExternalDocumentation'
origin:
type: string
description: where did this aspect come from (jsonpath or 'modelerfour:<soemthing>')
parameters:
type: array
description: common parameters when there are multiple requests
items:
$ref: '#/definitions/Parameter'
profile:
description: the apiVersion to use for a given profile name
$ref: '#/definitions/Record<string,ApiVersion>'
requestMediaTypes:
description: Mapping of all the content types available for this operation to the coresponding request.
$ref: '#/definitions/Record<string,Request>'
requests:
type: array
description: the different possibilities to build the request.
items:
$ref: '#/definitions/Request'
responses:
type: array
description: responses that indicate a successful call
items:
$ref: '#/definitions/Response'
signatureParameters:
type: array
description: a common filtered list of parameters that is (assumably) the actual method signature parameters
items:
$ref: '#/definitions/Parameter'
specialHeaders:
type: array
description: |-
List of headers that parameters should not handle as parameters but with special logic.
See https://github.com/Azure/autorest/tree/main/packages/extensions/modelerfour for configuration `skip-special-headers` to exclude headers.
items:
type: string
summary:
type: string
description: a short description
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
language:
description: per-language information for this aspect
$ref: '#/definitions/Languages'
protocol:
description: per-protocol information for this aspect
$ref: '#/definitions/Protocols'
required:
- language
- protocol
OperationGroup:
type: object
description: an operation group represents a container around set of operations
additionalProperties: false
allOf:
- $ref: '#/definitions/Metadata'
properties:
$key:
type: string
operations:
type: array
items:
$ref: '#/definitions/Operation'
required:
- $key
- language
- operations
- protocol
OrSchema:
type: object
description: an OR relationship between several schemas
additionalProperties: false
allOf:
- $ref: '#/definitions/ComplexSchema'
properties:
anyOf:
type: array
description: the set of schemas that this schema is composed of. Every schema is optional
items:
$ref: '#/definitions/ComplexSchema'
required:
- anyOf
- language
- protocol
- type
Parameter:
type: object
description: a definition of an discrete input for an operation
additionalProperties: false
allOf:
- $ref: '#/definitions/Value'
properties:
flattened:
type: boolean
description: When a parameter is flattened, it will be left in the list, but marked hidden (so, don't generate those!)
groupedBy:
description: When a parameter is grouped into another, this will tell where the parameter got grouped into.
$ref: '#/definitions/Parameter'
implementation:
description: suggested implementation location for this parameter
$ref: '#/definitions/ImplementationLocation'
isPartialBody:
type: boolean
description: If this parameter is only part of the body request(for multipart and form bodies.)
required:
- language
- protocol
- schema
ParameterLocation:
type: string
description: the location that this parameter is placed in the http request
enum:
- query
- header
- cookie
- path
- body
- uri
- virtual
- none
PasswordOAuthFlow:
type: object
additionalProperties: false
properties:
refreshUrl:
type: string
description: an URI
scopes:
$ref: '#/definitions/Record<string,string>'
tokenUrl:
type: string
description: an URI
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
required:
- scopes
- tokenUrl
PathEncodingStyle:
type: string
enum:
- label
- matrix
- simple
PrimitiveSchema:
type: object
description: Schema types that are primitive language values
additionalProperties: false
allOf:
- $ref: '#/definitions/ValueSchema'
required:
- language
- protocol
- type
PrimitiveSchemaTypes:
type: string
description: Schema types that are primitive language values
enum:
- arm-id
- boolean
- char
- credential
- date
- date-time
- duration
- integer
- number
- string
- time
- unixtime
- uri
- uuid
Property:
type: object
description: a property is a child value in an object
additionalProperties: false
allOf:
- $ref: '#/definitions/Value'
properties:
flattenedNames:
type: array
description: |-
when a property is flattened, the property will be the set of serialized names to get to that target property.
If flattenedName is present, then this property is a flattened property.
(ie, ['properties','name'] )
items:
type: string
isDiscriminator:
type: boolean
description: if this property is used as a discriminator for a polymorphic type
readOnly:
type: boolean
description: if the property is marked read-only (ie, not intended to be sent to the service)
serializedName:
type: string
description: the wire name of this property
required:
- language
- protocol
- schema
- serializedName
Protocol:
type: object
description: the bare-minimum fields for per-protocol metadata on a given aspect
additionalProperties: false
Protocols:
type: object
description: custom extensible metadata for individual protocols (ie, HTTP, etc)
additionalProperties: false
properties:
amqp:
$ref: '#/definitions/Protocol'
jsonrpc:
$ref: '#/definitions/Protocol'
mqtt:
$ref: '#/definitions/Protocol'
http:
$ref: '#/definitions/Protocol'
QueryEncodingStyle:
type: string
enum:
- deepObject
- form
- pipeDelimited
- spaceDelimited
Record<string,ApiVersion>:
type: object
additionalProperties: false
Record<string,ComplexSchema>:
type: object
additionalProperties:
$ref: '#/definitions/ComplexSchema'
Record<string,Request>:
type: object
additionalProperties: false
Record<string,any>:
type: object
additionalProperties:
type: object
Record<string,string>:
type: object
additionalProperties:
type: string
Relations:
type: object
additionalProperties: false
properties:
all:
type: array
items:
$ref: '#/definitions/ComplexSchema'
immediate:
type: array
items:
$ref: '#/definitions/ComplexSchema'
required:
- all
- immediate
Request:
type: object
additionalProperties: false
allOf:
- $ref: '#/definitions/Metadata'
properties:
parameters:
type: array
description: the parameter inputs to the operation
items:
$ref: '#/definitions/Parameter'
signatureParameters:
type: array
description: a filtered list of parameters that is (assumably) the actual method signature parameters
items:
$ref: '#/definitions/Parameter'
required:
- language
- protocol
Response:
type: object
description: a response from a service.
additionalProperties: false
allOf:
- $ref: '#/definitions/Metadata'
required:
- language
- protocol
Schema:
type: object
additionalProperties: false
properties:
type:
description: the schema type
$ref: '#/definitions/AllSchemaTypes'
apiVersions:
type: array
description: API versions that this applies to. Undefined means all versions
items:
$ref: '#/definitions/ApiVersion'
defaultValue:
description: If the value isn't sent on the wire, the service will assume this
deprecated:
description: Represent the deprecation information if api is deprecated.
default: undefined
$ref: '#/definitions/Deprecation'
example:
description: example information
externalDocs:
description: External Documentation Links
$ref: '#/definitions/ExternalDocumentation'
origin:
type: string
description: where did this aspect come from (jsonpath or 'modelerfour:<soemthing>')
serialization:
description: per-serialization information for this Schema
$ref: '#/definitions/SerializationFormats'
summary:
type: string
description: a short description
extensions:
description: additional metadata extensions dictionary
$ref: '#/definitions/Record<string,any>'
language:
description: per-language information for Schema
$ref: '#/definitions/Languages'
protocol:
description: per-protocol information for this aspect
$ref: '#/definitions/Protocols'
required:
- language
- protocol
- type
SchemaContext:
type: string
enum:
- input
- output
- exception
SchemaResponse:
type: object
description: a response that should be deserialized into a result of type(schema)
additionalProperties: false
allOf:
- $ref: '#/definitions/Response'
properties:
schema:
description: the content returned by the service for a given operaiton
$ref: '#/definitions/Schema'
nullable:
type: boolean
description: indicates whether the response can be 'null'
required:
- language
- protocol
- schema
SchemaType:
type: string
description: possible schema types that indicate the type of schema.
enum:
- array
- dictionary
- boolean
- integer
- number
- object
- string
- unixtime
- byte-array
- binary
- char
- date
- time
- date-time
- duration
- uuid
- uri
- arm-id
- credential
- odata-query
- any
- any-object
- choice
- sealed-choice
- conditional
- sealed-conditional
- flag
- constant
- or
- xor
- not
- unknown
- group
SchemaUsage:
type: object
additionalProperties: false
properties:
serializationFormats:
type: array
description: Known media types in which this schema can be serialized
items:
$ref: '#/definitions/KnownMediaType'
usage:
type: array
description: contexts in which the schema is used
items:
$ref: '#/definitions/SchemaContext'
Schemas:
type: object
description: the full set of schemas for a given service, categorized into convenient collections
additionalProperties: false
properties:
any:
type: array
items:
$ref: '#/definitions/AnySchema'
anyObjects:
type: array
items:
$ref: '#/definitions/AnyObjectSchema'
armIds:
type: array
description: an URI of some kind
items:
$ref: '#/definitions/ArmIdSchema'
arrays:
type: array
description: a collection of items
items:
$ref: '#/definitions/ArraySchema'
binaries:
type: array
items:
$ref: '#/definitions/BinarySchema'
booleans:
type: array
description: a true or false value
items:
$ref: '#/definitions/BooleanSchema'
byteArrays:
type: array
description: ByteArray -- an array of bytes
items:
$ref: '#/definitions/ByteArraySchema'
chars:
type: array
description: a single character
items:
$ref: '#/definitions/CharSchema'
choices:
type: array
description: |-
- this is essentially can be thought of as an 'enum'
that is a choice between one of several items, but an unspecified value is permitted.
items:
$ref: '#/definitions/ChoiceSchema'
conditionals:
type: array
description: ie, when 'profile' is 'production', use '2018-01-01' for apiversion
items:
$ref: '#/definitions/ConditionalSchema'
constants:
type: array
description: a constant value
items:
$ref: '#/definitions/ConstantSchema'
credentials:
type: array
description: a password or credential
items:
$ref: '#/definitions/CredentialSchema'
dateTimes:
type: array
description: a DateTime
items:
$ref: '#/definitions/DateTimeSchema'
dates:
type: array
description: a Date
items:
$ref: '#/definitions/DateSchema'
dictionaries:
type: array
description: an associative array (ie, dictionary, hashtable, etc)
items:
$ref: '#/definitions/DictionarySchema'
durations:
type: array
description: a Duration
items:
$ref: '#/definitions/DurationSchema'
flags:
type: array
items:
$ref: '#/definitions/FlagSchema'
groups:
type: array
items:
$ref: '#/definitions/GroupSchema'
numbers:
type: array
description: a number value
items:
$ref: '#/definitions/NumberSchema'
objects:
type: array
description: an object of some type
items:
$ref: '#/definitions/ObjectSchema'
odataQueries:
type: array
description: OData Query
items:
$ref: '#/definitions/ODataQuerySchema'
ors:
type: array
items:
$ref: '#/definitions/OrSchema'
sealedChoices:
type: array
description: |-
- this is essentially can be thought of as an 'enum'
that is a choice between one of several items, but an unknown value is not allowed.
items:
$ref: '#/definitions/SealedChoiceSchema'
sealedConditionals:
type: array
items:
$ref: '#/definitions/SealedConditionalSchema'
streams:
type: array
items:
$ref: '#/definitions/Schema'
strings:
type: array
description: a string of characters
items:
$ref: '#/definitions/StringSchema'
times:
type: array
description: a time
items:
$ref: '#/definitions/TimeSchema'
unixtimes:
type: array
description: UnixTime
items:
$ref: '#/definitions/UnixTimeSchema'
unknowns:
type: array
description: |-
it's possible that we just may make this an error
in representation.
items:
$ref: '#/definitions/Schema'
uris:
type: array
description: an URI of some kind
items:
$ref: '#/definitions/UriSchema'
uuids:
type: array
description: a universally unique identifier
items:
$ref: '#/definitions/UuidSchema'
xors:
type: array
items:
$ref: '#/definitions/XorSchema'
Scheme:
type: string
const: bearer
SealedChoiceSchema:
type: object
description: a schema that represents a choice of several values (ie, an 'enum')
additionalProperties: false
allOf:
- $ref: '#/definitions/ValueSchema'
properties: