{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "definitions": {
    "ApiVersion": {
      "description": "- since API version formats range from\nAzure ARM API date style (2018-01-01) to semver (1.2.3)\nand virtually any other text, this value tends to be an\nopaque string with the possibility of a modifier to indicate\nthat it is a range.\n\noptions:\n- prepend a dash or append a plus to indicate a range\n(ie, '2018-01-01+' or '-2019-01-01', or '1.0+' )\n\n- semver-range style (ie, '^1.0.0' or '~1.0.0' )",
      "type": "object",
      "properties": {
        "version": {
          "description": "the actual api version string used in the API",
          "type": "string"
        },
        "range": {
          "enum": [
            "+",
            "-"
          ],
          "type": "string"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "version"
      ]
    },
    "ApiVersions": {
      "description": "a collection of api versions",
      "type": "array",
      "items": {
        "$ref": "./master.json#/definitions/ApiVersion"
      }
    },
    "Deprecation": {
      "description": "Represent information about a deprecation",
      "type": "object",
      "properties": {
        "reason": {
          "description": "Reason why this was deprecated.",
          "type": "string"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false
    },
    "Extensions": {
      "description": "A dictionary of open-ended 'x-*' extensions propogated from the original source document.",
      "type": "object",
      "properties": {
        "extensions": {
          "$ref": "./master.json#/definitions/Record<string,any>",
          "description": "additional metadata extensions dictionary"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false
    },
    "uri": {
      "description": "an URI",
      "type": "string"
    },
    "ExternalDocumentation": {
      "description": "a reference to external documentation",
      "type": "object",
      "properties": {
        "description": {
          "type": "string"
        },
        "url": {
          "description": "an URI",
          "type": "string"
        },
        "extensions": {
          "$ref": "./master.json#/definitions/Record<string,any>",
          "description": "additional metadata extensions dictionary"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "url"
      ]
    },
    "Languages": {
      "description": "custom extensible metadata for individual language generators",
      "type": "object",
      "properties": {
        "default": {
          "$ref": "./master.json#/definitions/Language"
        },
        "csharp": {
          "$ref": "./master.json#/definitions/Language"
        },
        "python": {
          "$ref": "./master.json#/definitions/Language"
        },
        "ruby": {
          "$ref": "./master.json#/definitions/Language"
        },
        "go": {
          "$ref": "./master.json#/definitions/Language"
        },
        "typescript": {
          "$ref": "./master.json#/definitions/Language"
        },
        "javascript": {
          "$ref": "./master.json#/definitions/Language"
        },
        "powershell": {
          "$ref": "./master.json#/definitions/Language"
        },
        "java": {
          "$ref": "./master.json#/definitions/Language"
        },
        "c": {
          "$ref": "./master.json#/definitions/Language"
        },
        "cpp": {
          "$ref": "./master.json#/definitions/Language"
        },
        "swift": {
          "$ref": "./master.json#/definitions/Language"
        },
        "objectivec": {
          "$ref": "./master.json#/definitions/Language"
        },
        "sputnik": {
          "$ref": "./master.json#/definitions/Language"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "default"
      ]
    },
    "Protocols": {
      "description": "custom extensible metadata for individual protocols (ie, HTTP, etc)",
      "type": "object",
      "properties": {
        "http": {
          "$ref": "./master.json#/definitions/Protocol"
        },
        "amqp": {
          "$ref": "./master.json#/definitions/Protocol"
        },
        "mqtt": {
          "$ref": "./master.json#/definitions/Protocol"
        },
        "jsonrpc": {
          "$ref": "./master.json#/definitions/Protocol"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false
    },
    "Metadata": {
      "description": "common pattern for Metadata on aspects",
      "type": "object",
      "properties": {
        "language": {
          "$ref": "./master.json#/definitions/Languages",
          "description": "per-language information for this aspect"
        },
        "protocol": {
          "$ref": "./master.json#/definitions/Protocols",
          "description": "per-protocol information for this aspect"
        },
        "extensions": {
          "$ref": "./master.json#/definitions/Record<string,any>",
          "description": "additional metadata extensions dictionary"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "language",
        "protocol"
      ]
    },
    "Language": {
      "description": "the bare-minimum fields for per-language metadata on a given aspect",
      "type": "object",
      "properties": {
        "name": {
          "description": "name used in actual implementation",
          "type": "string"
        },
        "description": {
          "description": "description text - describes this node.",
          "type": "string"
        }
      },
      "defaultProperties": [],
      "additionalProperties": {
        "type": "object"
      },
      "required": [
        "description",
        "name"
      ]
    },
    "CSharpLanguage": {
      "type": "object",
      "defaultProperties": [],
      "additionalProperties": false
    },
    "Protocol": {
      "description": "the bare-minimum fields for per-protocol metadata on a given aspect",
      "type": "object",
      "defaultProperties": [],
      "additionalProperties": false
    },
    "email": {
      "type": "string"
    },
    "Contact": {
      "description": "contact information",
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "url": {
          "description": "an URI",
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "extensions": {
          "$ref": "./master.json#/definitions/Record<string,any>",
          "description": "additional metadata extensions dictionary"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false
    },
    "License": {
      "description": "license information",
      "type": "object",
      "properties": {
        "name": {
          "description": "the nameof the license",
          "type": "string"
        },
        "url": {
          "description": "an uri pointing to the full license text",
          "type": "string"
        },
        "extensions": {
          "$ref": "./master.json#/definitions/Record<string,any>",
          "description": "additional metadata extensions dictionary"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "name"
      ]
    },
    "Info": {
      "description": "code model information",
      "type": "object",
      "properties": {
        "title": {
          "description": "the title of this service.",
          "type": "string"
        },
        "description": {
          "description": "a text description of the service",
          "type": "string"
        },
        "termsOfService": {
          "description": "an uri to the terms of service specified to access the service",
          "type": "string"
        },
        "contact": {
          "$ref": "./master.json#/definitions/Contact",
          "description": "contact information for the service"
        },
        "license": {
          "$ref": "./master.json#/definitions/License",
          "description": "license information for th service"
        },
        "externalDocs": {
          "$ref": "./master.json#/definitions/ExternalDocumentation",
          "description": "External Documentation"
        },
        "extensions": {
          "$ref": "./master.json#/definitions/Record<string,any>",
          "description": "additional metadata extensions dictionary"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "title"
      ]
    },
    "XmlSerlializationFormat": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "namespace": {
          "type": "string"
        },
        "prefix": {
          "type": "string"
        },
        "attribute": {
          "type": "boolean"
        },
        "wrapped": {
          "type": "boolean"
        },
        "text": {
          "type": "boolean"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "attribute",
        "text",
        "wrapped"
      ],
      "allOf": [
        {
          "$ref": "./master.json#/definitions/SerializationFormat"
        }
      ]
    },
    "SerializationFormats": {
      "description": "custom extensible metadata for individual serialization formats",
      "type": "object",
      "properties": {
        "json": {
          "$ref": "./master.json#/definitions/SerializationFormat"
        },
        "xml": {
          "$ref": "./master.json#/definitions/XmlSerlializationFormat"
        },
        "protobuf": {
          "$ref": "./master.json#/definitions/SerializationFormat"
        },
        "binary": {
          "$ref": "./master.json#/definitions/SerializationFormat"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false
    },
    "SerializationFormat": {
      "type": "object",
      "properties": {
        "extensions": {
          "$ref": "./master.json#/definitions/Record<string,any>",
          "description": "additional metadata extensions dictionary"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false
    },
    "Value": {
      "description": "common base interface for properties, parameters and the like.",
      "type": "object",
      "properties": {
        "schema": {
          "$ref": "./schemas.json#/definitions/Schema",
          "description": "the schema of this Value"
        },
        "required": {
          "description": "if the value is marked 'required'.",
          "type": "boolean"
        },
        "nullable": {
          "description": "can null be passed in instead",
          "type": "boolean"
        },
        "assumedValue": {
          "description": "the value that the remote will assume if this value is not present"
        },
        "clientDefaultValue": {
          "description": "the value that the client should provide if the consumer doesn't provide one"
        },
        "summary": {
          "description": "a short description",
          "type": "string"
        },
        "apiVersions": {
          "description": "API versions that this applies to. Undefined means all versions",
          "type": "array",
          "items": {
            "$ref": "./master.json#/definitions/ApiVersion"
          }
        },
        "deprecated": {
          "$ref": "./master.json#/definitions/Deprecation",
          "description": "Represent the deprecation information if api is deprecated.",
          "default": "undefined"
        },
        "origin": {
          "description": "where did this aspect come from (jsonpath or 'modelerfour:<soemthing>')",
          "type": "string"
        },
        "externalDocs": {
          "$ref": "./master.json#/definitions/ExternalDocumentation",
          "description": "External Documentation Links"
        },
        "language": {
          "$ref": "./master.json#/definitions/Languages",
          "description": "per-language information for this aspect"
        },
        "protocol": {
          "$ref": "./master.json#/definitions/Protocols",
          "description": "per-protocol information for this aspect"
        },
        "extensions": {
          "$ref": "./master.json#/definitions/Record<string,any>",
          "description": "additional metadata extensions dictionary"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "language",
        "protocol",
        "schema"
      ]
    },
    "Property": {
      "description": "a property is a child value in an object",
      "type": "object",
      "properties": {
        "readOnly": {
          "description": "if the property is marked read-only (ie, not intended to be sent to the service)",
          "type": "boolean"
        },
        "serializedName": {
          "description": "the wire name of this property",
          "type": "string"
        },
        "flattenedNames": {
          "description": "when a property is flattened, the property will be the set of serialized names to get to that target property.\n\nIf flattenedName is present, then this property is a flattened property.\n\n(ie, ['properties','name'] )",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "isDiscriminator": {
          "description": "if this property is used as a discriminator for a polymorphic type",
          "type": "boolean"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "language",
        "protocol",
        "schema",
        "serializedName"
      ],
      "allOf": [
        {
          "$ref": "./master.json#/definitions/Value"
        }
      ]
    },
    "Parameter": {
      "description": "a definition of an discrete input for an operation",
      "type": "object",
      "properties": {
        "implementation": {
          "$ref": "./enums.json#/definitions/ImplementationLocation",
          "description": "suggested implementation location for this parameter"
        },
        "flattened": {
          "description": "When a parameter is flattened, it will be left in the list, but marked hidden (so, don't generate those!)",
          "type": "boolean"
        },
        "groupedBy": {
          "$ref": "./master.json#/definitions/Parameter",
          "description": "When a parameter is grouped into another, this will tell where the parameter got grouped into."
        },
        "isPartialBody": {
          "description": "If this parameter is only part of the body request(for multipart and form bodies.)",
          "type": "boolean"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "language",
        "protocol",
        "schema"
      ],
      "allOf": [
        {
          "$ref": "./master.json#/definitions/Value"
        }
      ]
    },
    "VirtualParameter": {
      "type": "object",
      "properties": {
        "originalParameter": {
          "$ref": "./master.json#/definitions/Parameter",
          "description": "the original body parameter that this parameter is in effect replacing"
        },
        "pathToProperty": {
          "description": "if this parameter is for a nested property, this is the path of properties it takes to get there",
          "type": "array",
          "items": {
            "$ref": "./master.json#/definitions/Property"
          }
        },
        "targetProperty": {
          "$ref": "./master.json#/definitions/Property",
          "description": "the target property this virtual parameter represents"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "language",
        "originalParameter",
        "pathToProperty",
        "protocol",
        "schema",
        "targetProperty"
      ],
      "allOf": [
        {
          "$ref": "./master.json#/definitions/Parameter"
        }
      ]
    },
    "BinaryResponse": {
      "description": "a response where the content should be treated as a binary instead of a value or object",
      "type": "object",
      "properties": {
        "binary": {
          "description": "indicates that this response is a binary stream",
          "type": "boolean",
          "const": true
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "binary",
        "language",
        "protocol"
      ],
      "allOf": [
        {
          "$ref": "./master.json#/definitions/Response"
        }
      ]
    },
    "SchemaResponse": {
      "description": "a response that should be deserialized into a result of type(schema)",
      "type": "object",
      "properties": {
        "schema": {
          "$ref": "./schemas.json#/definitions/Schema",
          "description": "the content returned by the service for a given operaiton"
        },
        "nullable": {
          "description": "indicates whether the response can be 'null'",
          "type": "boolean"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "language",
        "protocol",
        "schema"
      ],
      "allOf": [
        {
          "$ref": "./master.json#/definitions/Response"
        }
      ]
    },
    "Operation": {
      "description": "represents a single callable endpoint with a discrete set of inputs, and any number of output possibilities (responses or exceptions)",
      "type": "object",
      "properties": {
        "operationId": {
          "description": "Original Operation ID if present.\nThis can be used to identify the original id of an operation before it is styled.\nTHIS IS NOT the name of the operation that should be used in the generator. Use `.language.default.name` for this",
          "type": "string"
        },
        "parameters": {
          "description": "common parameters when there are multiple requests",
          "type": "array",
          "items": {
            "$ref": "./master.json#/definitions/Parameter"
          }
        },
        "signatureParameters": {
          "description": "a common filtered list of parameters that is (assumably) the actual method signature parameters",
          "type": "array",
          "items": {
            "$ref": "./master.json#/definitions/Parameter"
          }
        },
        "requestMediaTypes": {
          "$ref": "./master.json#/definitions/Record<string,Request>",
          "description": "Mapping of all the content types available for this operation to the coresponding request."
        },
        "specialHeaders": {
          "description": "List of headers that parameters should not handle as parameters but with special logic.\nSee https://github.com/Azure/autorest/tree/main/packages/extensions/modelerfour for configuration `skip-special-headers` to exclude headers.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "requests": {
          "description": "the different possibilities to build the request.",
          "type": "array",
          "items": {
            "$ref": "./master.json#/definitions/Request"
          }
        },
        "responses": {
          "description": "responses that indicate a successful call",
          "type": "array",
          "items": {
            "$ref": "./master.json#/definitions/Response"
          }
        },
        "exceptions": {
          "description": "responses that indicate a failed call",
          "type": "array",
          "items": {
            "$ref": "./master.json#/definitions/Response"
          }
        },
        "profile": {
          "$ref": "./master.json#/definitions/Record<string,ApiVersion>",
          "description": "the apiVersion to use for a given profile name"
        },
        "summary": {
          "description": "a short description",
          "type": "string"
        },
        "apiVersions": {
          "description": "API versions that this applies to. Undefined means all versions",
          "type": "array",
          "items": {
            "$ref": "./master.json#/definitions/ApiVersion"
          }
        },
        "deprecated": {
          "$ref": "./master.json#/definitions/Deprecation",
          "description": "Represent the deprecation information if api is deprecated.",
          "default": "undefined"
        },
        "origin": {
          "description": "where did this aspect come from (jsonpath or 'modelerfour:<soemthing>')",
          "type": "string"
        },
        "externalDocs": {
          "$ref": "./master.json#/definitions/ExternalDocumentation",
          "description": "External Documentation Links"
        },
        "language": {
          "$ref": "./master.json#/definitions/Languages",
          "description": "per-language information for this aspect"
        },
        "protocol": {
          "$ref": "./master.json#/definitions/Protocols",
          "description": "per-protocol information for this aspect"
        },
        "extensions": {
          "$ref": "./master.json#/definitions/Record<string,any>",
          "description": "additional metadata extensions dictionary"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "language",
        "protocol"
      ]
    },
    "OperationGroup": {
      "description": "an operation group represents a container around set of operations",
      "type": "object",
      "properties": {
        "$key": {
          "type": "string"
        },
        "operations": {
          "type": "array",
          "items": {
            "$ref": "./master.json#/definitions/Operation"
          }
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "$key",
        "language",
        "operations",
        "protocol"
      ],
      "allOf": [
        {
          "$ref": "./master.json#/definitions/Metadata"
        }
      ]
    },
    "ConditionalValue": {
      "description": "an individual value in a ConditionalSchema",
      "type": "object",
      "properties": {
        "language": {
          "$ref": "./master.json#/definitions/Languages",
          "description": "per-language information for this value"
        },
        "target": {
          "description": "the actual value",
          "type": [
            "string",
            "number",
            "boolean"
          ]
        },
        "source": {
          "description": "the actual value",
          "type": [
            "string",
            "number",
            "boolean"
          ]
        },
        "extensions": {
          "$ref": "./master.json#/definitions/Record<string,any>",
          "description": "additional metadata extensions dictionary"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "language",
        "source",
        "target"
      ]
    },
    "FlagValue": {
      "type": "object",
      "properties": {
        "language": {
          "$ref": "./master.json#/definitions/Languages",
          "description": "per-language information for this value"
        },
        "value": {
          "type": "number"
        },
        "extensions": {
          "$ref": "./master.json#/definitions/Record<string,any>",
          "description": "additional metadata extensions dictionary"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "language",
        "value"
      ]
    },
    "SchemaUsage": {
      "type": "object",
      "properties": {
        "usage": {
          "description": "contexts in which the schema is used",
          "type": "array",
          "items": {
            "$ref": "./schemas.json#/definitions/SchemaContext"
          }
        },
        "serializationFormats": {
          "description": "Known media types in which this schema can be serialized",
          "type": "array",
          "items": {
            "$ref": "./enums.json#/definitions/KnownMediaType"
          }
        }
      },
      "defaultProperties": [],
      "additionalProperties": false
    },
    "Relations": {
      "type": "object",
      "properties": {
        "immediate": {
          "type": "array",
          "items": {
            "$ref": "./schemas.json#/definitions/ComplexSchema"
          }
        },
        "all": {
          "type": "array",
          "items": {
            "$ref": "./schemas.json#/definitions/ComplexSchema"
          }
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "all",
        "immediate"
      ]
    },
    "Discriminator": {
      "type": "object",
      "properties": {
        "property": {
          "$ref": "./master.json#/definitions/Property"
        },
        "immediate": {
          "$ref": "./master.json#/definitions/Record<string,ComplexSchema>"
        },
        "all": {
          "$ref": "./master.json#/definitions/Record<string,ComplexSchema>"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "all",
        "immediate",
        "property"
      ]
    },
    "GroupProperty": {
      "type": "object",
      "properties": {
        "originalParameter": {
          "type": "array",
          "items": {
            "$ref": "./master.json#/definitions/Parameter"
          }
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "language",
        "originalParameter",
        "protocol",
        "schema",
        "serializedName"
      ],
      "allOf": [
        {
          "$ref": "./master.json#/definitions/Property"
        }
      ]
    },
    "Security": {
      "description": "The security information for the API surface",
      "type": "object",
      "properties": {
        "authenticationRequired": {
          "description": "indicates that the API surface requires authentication",
          "type": "boolean"
        },
        "schemes": {
          "items": {
            "type": "SecuritySchemeFull"
          },
          "type": "array"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "authenticationRequired",
        "schemes"
      ]
    },
    "KeySecurityScheme": {
      "type": "object",
      "properties": {
        "in": {
          "type": "string",
          "const": "header"
        },
        "name": {
          "type": "string"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "in",
        "name",
        "type"
      ],
      "allOf": [
        {
          "$ref": "./http.json#/definitions/SecurityScheme"
        }
      ]
    },
    "ValueOrFactory": {
      "anyOf": [
        {
          "$ref": "./master.json#/definitions/ApiVersion"
        },
        {
          "type": "object",
          "defaultProperties": [],
          "additionalProperties": false
        }
      ]
    },
    "Example": {
      "description": "example data [UNFINISHED]",
      "type": "object",
      "properties": {
        "summary": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "value": {},
        "externalValue": {
          "description": "an URI",
          "type": "string"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false
    },
    "AADTokenSecurityScheme": {
      "type": "object",
      "properties": {
        "scopes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "scopes",
        "type"
      ],
      "allOf": [
        {
          "$ref": "./http.json#/definitions/SecurityScheme"
        }
      ]
    },
    "AzureKeySecurityScheme": {
      "type": "object",
      "properties": {
        "headerName": {
          "type": "string"
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "headerName",
        "type"
      ],
      "allOf": [
        {
          "$ref": "./http.json#/definitions/SecurityScheme"
        }
      ]
    },
    "Scheme": {
      "type": "string",
      "const": "bearer"
    },
    "Default": {
      "description": "A catch-all for all un-handled response codes.",
      "type": "string",
      "const": "default"
    },
    "Record<string,any>": {
      "type": "object",
      "defaultProperties": [],
      "additionalProperties": {
        "type": "object"
      }
    },
    "Record<string,Request>": {
      "type": "object",
      "defaultProperties": [],
      "additionalProperties": false
    },
    "Request": {
      "type": "object",
      "properties": {
        "parameters": {
          "description": "the parameter inputs to the operation",
          "type": "array",
          "items": {
            "$ref": "./master.json#/definitions/Parameter"
          }
        },
        "signatureParameters": {
          "description": "a filtered list of parameters that is (assumably) the actual method signature parameters",
          "type": "array",
          "items": {
            "$ref": "./master.json#/definitions/Parameter"
          }
        }
      },
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "language",
        "protocol"
      ],
      "allOf": [
        {
          "$ref": "./master.json#/definitions/Metadata"
        }
      ]
    },
    "Response": {
      "description": "a response from a service.",
      "type": "object",
      "properties": {},
      "defaultProperties": [],
      "additionalProperties": false,
      "required": [
        "language",
        "protocol"
      ],
      "allOf": [
        {
          "$ref": "./master.json#/definitions/Metadata"
        }
      ]
    },
    "Record<string,ApiVersion>": {
      "type": "object",
      "defaultProperties": [],
      "additionalProperties": false
    },
    "Record<string,ComplexSchema>": {
      "type": "object",
      "defaultProperties": [],
      "additionalProperties": {
        "$ref": "./schemas.json#/definitions/ComplexSchema"
      }
    },
    "Record<string,string>": {
      "type": "object",
      "defaultProperties": [],
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "description": "the model that contains all the information required to generate a service api",
  "type": "object",
  "properties": {
    "info": {
      "$ref": "./master.json#/definitions/Info",
      "description": "Code model information"
    },
    "schemas": {
      "$ref": "./schemas.json#/definitions/Schemas",
      "description": "All schemas for the model"
    },
    "operationGroups": {
      "description": "All operations",
      "type": "array",
      "items": {
        "$ref": "./master.json#/definitions/OperationGroup"
      }
    },
    "globalParameters": {
      "description": "all global parameters (ie, ImplementationLocation = client )",
      "type": "array",
      "items": {
        "$ref": "./master.json#/definitions/Parameter"
      }
    },
    "security": {
      "$ref": "./master.json#/definitions/Security"
    },
    "language": {
      "$ref": "./master.json#/definitions/Languages",
      "description": "per-language information for this aspect"
    },
    "protocol": {
      "$ref": "./master.json#/definitions/Protocols",
      "description": "per-protocol information for this aspect"
    },
    "extensions": {
      "$ref": "./master.json#/definitions/Record<string,any>",
      "description": "additional metadata extensions dictionary"
    }
  },
  "defaultProperties": [],
  "additionalProperties": false,
  "required": [
    "info",
    "language",
    "operationGroups",
    "protocol",
    "schemas",
    "security"
  ],
  "title": "CodeModel"
}