UNPKG

@autorest/codemodel

Version:
1,828 lines (1,820 loc) 60.9 kB
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: