--- swagger: "2.0" info: description: "This spec is mainly for testing Petstore server and contains fake\ \ endpoints, models. Please do not use this for any other purpose. Special characters:\ \ \" \\" version: "1.0.0" title: "Swagger Petstore" termsOfService: "http://swagger.io/terms/" contact: email: "apiteam@swagger.io" license: name: "Apache-2.0" url: "http://www.apache.org/licenses/LICENSE-2.0.html" host: "petstore.swagger.io:80" basePath: "/v2" tags: - name: "pet" description: "Everything about your Pets" externalDocs: description: "Find out more" url: "http://swagger.io" - name: "store" description: "Access to Petstore orders" - name: "user" description: "Operations about user" externalDocs: description: "Find out more about our store" url: "http://swagger.io" schemes: - "http" paths: /pet: post: tags: - "pet" summary: "Add a new pet to the store" description: "" operationId: "addPet" consumes: - "application/json" - "application/xml" produces: - "application/xml" - "application/json" parameters: - in: "body" name: "body" description: "Pet object that needs to be added to the store" required: true schema: $ref: "#/definitions/Pet" responses: 405: description: "Invalid input" security: - petstore_auth: - "write:pets" - "read:pets" put: tags: - "pet" summary: "Update an existing pet" description: "" operationId: "updatePet" consumes: - "application/json" - "application/xml" produces: - "application/xml" - "application/json" parameters: - in: "body" name: "body" description: "Pet object that needs to be added to the store" required: true schema: $ref: "#/definitions/Pet" responses: 400: description: "Invalid ID supplied" 404: description: "Pet not found" 405: description: "Validation exception" security: - petstore_auth: - "write:pets" - "read:pets" /pet/findByStatus: get: tags: - "pet" summary: "Finds Pets by status" description: "Multiple status values can be provided with comma separated strings" operationId: "findPetsByStatus" produces: - "application/xml" - "application/json" parameters: - name: "status" in: "query" description: "Status values that need to be considered for filter" required: true type: "array" items: type: "string" enum: - "available" - "pending" - "sold" default: "available" collectionFormat: "csv" responses: 200: description: "successful operation" schema: type: "array" items: $ref: "#/definitions/Pet" 400: description: "Invalid status value" security: - petstore_auth: - "write:pets" - "read:pets" /pet/findByTags: get: tags: - "pet" summary: "Finds Pets by tags" description: "Multiple tags can be provided with comma separated strings. Use\ \ tag1, tag2, tag3 for testing." operationId: "findPetsByTags" produces: - "application/xml" - "application/json" parameters: - name: "tags" in: "query" description: "Tags to filter by" required: true type: "array" items: type: "string" collectionFormat: "csv" responses: 200: description: "successful operation" schema: type: "array" items: $ref: "#/definitions/Pet" 400: description: "Invalid tag value" security: - petstore_auth: - "write:pets" - "read:pets" deprecated: true /pet/{petId}: get: tags: - "pet" summary: "Find pet by ID" description: "Returns a single pet" operationId: "getPetById" produces: - "application/xml" - "application/json" parameters: - name: "petId" in: "path" description: "ID of pet to return" required: true type: "integer" format: "int64" responses: 200: description: "successful operation" schema: $ref: "#/definitions/Pet" 400: description: "Invalid ID supplied" 404: description: "Pet not found" security: - api_key: [] post: tags: - "pet" summary: "Updates a pet in the store with form data" description: "" operationId: "updatePetWithForm" consumes: - "application/x-www-form-urlencoded" produces: - "application/xml" - "application/json" parameters: - name: "petId" in: "path" description: "ID of pet that needs to be updated" required: true type: "integer" format: "int64" - name: "name" in: "formData" description: "Updated name of the pet" required: false type: "string" - name: "status" in: "formData" description: "Updated status of the pet" required: false type: "string" responses: 405: description: "Invalid input" security: - petstore_auth: - "write:pets" - "read:pets" delete: tags: - "pet" summary: "Deletes a pet" description: "" operationId: "deletePet" produces: - "application/xml" - "application/json" parameters: - name: "api_key" in: "header" required: false type: "string" - name: "petId" in: "path" description: "Pet id to delete" required: true type: "integer" format: "int64" responses: 400: description: "Invalid pet value" security: - petstore_auth: - "write:pets" - "read:pets" /pet/{petId}/uploadImage: post: tags: - "pet" summary: "uploads an image" description: "" operationId: "uploadFile" consumes: - "multipart/form-data" produces: - "application/json" parameters: - name: "petId" in: "path" description: "ID of pet to update" required: true type: "integer" format: "int64" - name: "additionalMetadata" in: "formData" description: "Additional data to pass to server" required: false type: "string" - name: "file" in: "formData" description: "file to upload" required: false type: "file" responses: 200: description: "successful operation" schema: $ref: "#/definitions/ApiResponse" security: - petstore_auth: - "write:pets" - "read:pets" /store/inventory: get: tags: - "store" summary: "Returns pet inventories by status" description: "Returns a map of status codes to quantities" operationId: "getInventory" produces: - "application/json" parameters: [] responses: 200: description: "successful operation" schema: type: "object" additionalProperties: type: "integer" format: "int32" security: - api_key: [] /store/order: post: tags: - "store" summary: "Place an order for a pet" description: "" operationId: "placeOrder" produces: - "application/xml" - "application/json" parameters: - in: "body" name: "body" description: "order placed for purchasing the pet" required: true schema: $ref: "#/definitions/Order" responses: 200: description: "successful operation" schema: $ref: "#/definitions/Order" 400: description: "Invalid Order" /store/order/{order_id}: get: tags: - "store" summary: "Find purchase order by ID" description: "For valid response try integer IDs with value <= 5 or > 10. Other\ \ values will generated exceptions" operationId: "getOrderById" produces: - "application/xml" - "application/json" parameters: - name: "order_id" in: "path" description: "ID of pet that needs to be fetched" required: true type: "integer" maximum: 5 minimum: 1 format: "int64" responses: 200: description: "successful operation" schema: $ref: "#/definitions/Order" 400: description: "Invalid ID supplied" 404: description: "Order not found" delete: tags: - "store" summary: "Delete purchase order by ID" description: "For valid response try integer IDs with value < 1000. Anything\ \ above 1000 or nonintegers will generate API errors" operationId: "deleteOrder" produces: - "application/xml" - "application/json" parameters: - name: "order_id" in: "path" description: "ID of the order that needs to be deleted" required: true type: "string" responses: 400: description: "Invalid ID supplied" 404: description: "Order not found" /user: post: tags: - "user" summary: "Create user" description: "This can only be done by the logged in user." operationId: "createUser" produces: - "application/xml" - "application/json" parameters: - in: "body" name: "body" description: "Created user object" required: true schema: $ref: "#/definitions/User" responses: default: description: "successful operation" /user/createWithArray: post: tags: - "user" summary: "Creates list of users with given input array" description: "" operationId: "createUsersWithArrayInput" produces: - "application/xml" - "application/json" parameters: - in: "body" name: "body" description: "List of user object" required: true schema: type: "array" items: $ref: "#/definitions/User" responses: default: description: "successful operation" /user/createWithList: post: tags: - "user" summary: "Creates list of users with given input array" description: "" operationId: "createUsersWithListInput" produces: - "application/xml" - "application/json" parameters: - in: "body" name: "body" description: "List of user object" required: true schema: type: "array" items: $ref: "#/definitions/User" responses: default: description: "successful operation" /user/login: get: tags: - "user" summary: "Logs user into the system" description: "" operationId: "loginUser" produces: - "application/xml" - "application/json" parameters: - name: "username" in: "query" description: "The user name for login" required: true type: "string" - name: "password" in: "query" description: "The password for login in clear text" required: true type: "string" responses: 200: description: "successful operation" schema: type: "string" headers: X-Rate-Limit: type: "integer" format: "int32" description: "calls per hour allowed by the user" X-Expires-After: type: "string" format: "date-time" description: "date in UTC when toekn expires" 400: description: "Invalid username/password supplied" /user/logout: get: tags: - "user" summary: "Logs out current logged in user session" description: "" operationId: "logoutUser" produces: - "application/xml" - "application/json" parameters: [] responses: default: description: "successful operation" /user/{username}: get: tags: - "user" summary: "Get user by user name" description: "" operationId: "getUserByName" produces: - "application/xml" - "application/json" parameters: - name: "username" in: "path" description: "The name that needs to be fetched. Use user1 for testing. " required: true type: "string" responses: 200: description: "successful operation" schema: $ref: "#/definitions/User" 400: description: "Invalid username supplied" 404: description: "User not found" put: tags: - "user" summary: "Updated user" description: "This can only be done by the logged in user." operationId: "updateUser" produces: - "application/xml" - "application/json" parameters: - name: "username" in: "path" description: "name that need to be deleted" required: true type: "string" - in: "body" name: "body" description: "Updated user object" required: true schema: $ref: "#/definitions/User" responses: 400: description: "Invalid user supplied" 404: description: "User not found" delete: tags: - "user" summary: "Delete user" description: "This can only be done by the logged in user." operationId: "deleteUser" produces: - "application/xml" - "application/json" parameters: - name: "username" in: "path" description: "The name that needs to be deleted" required: true type: "string" responses: 400: description: "Invalid username supplied" 404: description: "User not found" /fake_classname_test: patch: tags: - "fake_classname_tags 123#$%^" summary: "To test class name in snake case" operationId: "testClassname" consumes: - "application/json" produces: - "application/json" parameters: - in: "body" name: "body" description: "client model" required: true schema: $ref: "#/definitions/Client" responses: 200: description: "successful operation" schema: $ref: "#/definitions/Client" security: - api_key_query: [] /fake: get: tags: - "fake" summary: "To test enum parameters" description: "To test enum parameters" operationId: "testEnumParameters" consumes: - "*/*" produces: - "*/*" parameters: - name: "enum_form_string_array" in: "formData" description: "Form parameter enum test (string array)" required: false type: "array" items: type: "string" enum: - ">" - "$" default: "$" - name: "enum_form_string" in: "formData" description: "Form parameter enum test (string)" required: false type: "string" default: "-efg" enum: - "_abc" - "-efg" - "(xyz)" - name: "enum_header_string_array" in: "header" description: "Header parameter enum test (string array)" required: false type: "array" items: type: "string" enum: - ">" - "$" default: "$" - name: "enum_header_string" in: "header" description: "Header parameter enum test (string)" required: false type: "string" default: "-efg" enum: - "_abc" - "-efg" - "(xyz)" - name: "enum_query_string_array" in: "query" description: "Query parameter enum test (string array)" required: false type: "array" items: type: "string" enum: - ">" - "$" default: "$" - name: "enum_query_string" in: "query" description: "Query parameter enum test (string)" required: false type: "string" default: "-efg" enum: - "_abc" - "-efg" - "(xyz)" - name: "enum_query_integer" in: "query" description: "Query parameter enum test (double)" required: false type: "integer" format: "int32" enum: - 1 - -2 - name: "enum_query_double" in: "formData" description: "Query parameter enum test (double)" required: false type: "number" format: "double" enum: - 1.1 - -1.2 responses: 400: description: "Invalid request" 404: description: "Not found" post: tags: - "fake" summary: "Fake endpoint for testing various parameters\n假端點\n偽のエンドポイント\n가짜 엔\ 드 포인트\n" description: "Fake endpoint for testing various parameters\n假端點\n偽のエンドポイント\n\ 가짜 엔드 포인트\n" operationId: "testEndpointParameters" consumes: - "application/xml; charset=utf-8" - "application/json; charset=utf-8" produces: - "application/xml; charset=utf-8" - "application/json; charset=utf-8" parameters: - name: "integer" in: "formData" description: "None" required: false type: "integer" maximum: 100 minimum: 10 - name: "int32" in: "formData" description: "None" required: false type: "integer" maximum: 200 minimum: 20 format: "int32" - name: "int64" in: "formData" description: "None" required: false type: "integer" format: "int64" - name: "number" in: "formData" description: "None" required: true type: "number" maximum: 543.2 minimum: 32.1 - name: "float" in: "formData" description: "None" required: false type: "number" maximum: 987.6 format: "float" - name: "double" in: "formData" description: "None" required: true type: "number" maximum: 123.4 minimum: 67.8 format: "double" - name: "string" in: "formData" description: "None" required: false type: "string" pattern: "/[a-z]/i" - name: "pattern_without_delimiter" in: "formData" description: "None" required: true type: "string" pattern: "^[A-Z].*" - name: "byte" in: "formData" description: "None" required: true type: "string" format: "byte" - name: "binary" in: "formData" description: "None" required: false type: "string" format: "binary" - name: "date" in: "formData" description: "None" required: false type: "string" format: "date" - name: "dateTime" in: "formData" description: "None" required: false type: "string" format: "date-time" - name: "password" in: "formData" description: "None" required: false type: "string" maxLength: 64 minLength: 10 format: "password" - name: "callback" in: "formData" description: "None" required: false type: "string" responses: 400: description: "Invalid username supplied" 404: description: "User not found" security: - http_basic_test: [] patch: tags: - "fake" summary: "To test \"client\" model" description: "To test \"client\" model" operationId: "testClientModel" consumes: - "application/json" produces: - "application/json" parameters: - in: "body" name: "body" description: "client model" required: true schema: $ref: "#/definitions/Client" responses: 200: description: "successful operation" schema: $ref: "#/definitions/Client" /fake/outer/number: post: tags: - "fake" description: "Test serialization of outer number types" operationId: "fakeOuterNumberSerialize" parameters: - in: "body" name: "body" description: "Input number as post body" required: false schema: $ref: "#/definitions/OuterNumber" responses: 200: description: "Output number" schema: $ref: "#/definitions/OuterNumber" /fake/outer/string: post: tags: - "fake" description: "Test serialization of outer string types" operationId: "fakeOuterStringSerialize" parameters: - in: "body" name: "body" description: "Input string as post body" required: false schema: $ref: "#/definitions/OuterString" responses: 200: description: "Output string" schema: $ref: "#/definitions/OuterString" /fake/outer/boolean: post: tags: - "fake" description: "Test serialization of outer boolean types" operationId: "fakeOuterBooleanSerialize" parameters: - in: "body" name: "body" description: "Input boolean as post body" required: false schema: $ref: "#/definitions/OuterBoolean" responses: 200: description: "Output boolean" schema: $ref: "#/definitions/OuterBoolean" /fake/outer/composite: post: tags: - "fake" description: "Test serialization of object with outer number type" operationId: "fakeOuterCompositeSerialize" parameters: - in: "body" name: "body" description: "Input composite as post body" required: false schema: $ref: "#/definitions/OuterComposite" responses: 200: description: "Output composite" schema: $ref: "#/definitions/OuterComposite" /fake/jsonFormData: get: tags: - "fake" summary: "test json serialization of form data" description: "" operationId: "testJsonFormData" consumes: - "application/json" parameters: - name: "param" in: "formData" description: "field1" required: true type: "string" - name: "param2" in: "formData" description: "field2" required: true type: "string" responses: 200: description: "successful operation" /fake/inline-additionalProperties: post: tags: - "fake" summary: "test inline additionalProperties" description: "" operationId: "testInlineAdditionalProperties" consumes: - "application/json" parameters: - in: "body" name: "param" description: "request body" required: true schema: type: "object" additionalProperties: type: "string" responses: 200: description: "successful operation" /another-fake/dummy: patch: tags: - "$another-fake?" summary: "To test special tags" description: "To test special tags" operationId: "test_special_tags" consumes: - "application/json" produces: - "application/json" parameters: - in: "body" name: "body" description: "client model" required: true schema: $ref: "#/definitions/Client" responses: 200: description: "successful operation" schema: $ref: "#/definitions/Client" securityDefinitions: petstore_auth: type: "oauth2" authorizationUrl: "http://petstore.swagger.io/api/oauth/dialog" flow: "implicit" scopes: write:pets: "modify pets in your account" read:pets: "read your pets" api_key: type: "apiKey" name: "api_key" in: "header" api_key_query: type: "apiKey" name: "api_key_query" in: "query" http_basic_test: type: "basic" definitions: Order: type: "object" properties: id: type: "integer" format: "int64" x-dataType: "Integer" petId: type: "integer" format: "int64" x-dataType: "Integer" quantity: type: "integer" format: "int32" x-dataType: "Int" shipDate: type: "string" format: "date-time" x-dataType: "DateTime" status: type: "string" description: "Order Status" enum: - "placed" - "approved" - "delivered" x-dataType: "E'Status" complete: type: "boolean" default: false x-dataType: "Bool" example: petId: 6 quantity: 1 id: 0 shipDate: "2000-01-23T04:56:07.000+00:00" complete: false status: "placed" xml: name: "Order" x-mimeTypes: - "MimeJSON" - "MimeXML" Category: type: "object" properties: id: type: "integer" format: "int64" x-dataType: "Integer" name: type: "string" x-dataType: "Text" example: name: "name" id: 6 xml: name: "Category" User: type: "object" properties: id: type: "integer" format: "int64" x-is-unique: true x-dataType: "Integer" username: type: "string" x-dataType: "Text" firstName: type: "string" x-dataType: "Text" lastName: type: "string" x-dataType: "Text" email: type: "string" x-dataType: "Text" password: type: "string" x-dataType: "Text" phone: type: "string" x-dataType: "Text" userStatus: type: "integer" format: "int32" description: "User Status" x-dataType: "Int" example: firstName: "firstName" lastName: "lastName" password: "password" userStatus: 6 phone: "phone" id: 0 email: "email" username: "username" xml: name: "User" x-mimeTypes: - "MimeJSON" - "MimeXML" Tag: type: "object" properties: id: type: "integer" format: "int64" x-dataType: "Integer" name: type: "string" x-dataType: "Text" example: name: "name" id: 1 xml: name: "Tag" Pet: type: "object" required: - "name" - "photoUrls" properties: id: type: "integer" format: "int64" x-is-unique: true x-dataType: "Integer" category: $ref: "#/definitions/Category" x-dataType: "Category" name: type: "string" example: "doggie" x-dataType: "Text" photoUrls: type: "array" xml: name: "photoUrl" wrapped: true items: type: "string" x-dataType: "[Text]" tags: type: "array" xml: name: "tag" wrapped: true items: $ref: "#/definitions/Tag" x-dataType: "[Tag]" status: type: "string" description: "pet status in the store" enum: - "available" - "pending" - "sold" x-dataType: "E'Status2" example: photoUrls: - "photoUrls" - "photoUrls" name: "doggie" id: 0 category: name: "name" id: 6 tags: - name: "name" id: 1 - name: "name" id: 1 status: "available" xml: name: "Pet" x-mimeTypes: - "MimeJSON" - "MimeXML" ApiResponse: type: "object" properties: code: type: "integer" format: "int32" x-dataType: "Int" type: type: "string" x-dataType: "Text" message: type: "string" x-dataType: "Text" example: code: 0 type: "type" message: "message" $special[model.name]: properties: $special[property.name]: type: "integer" format: "int64" x-dataType: "Integer" xml: name: "$special[model.name]" Return: properties: return: type: "integer" format: "int32" x-dataType: "Int" description: "Model for testing reserved words" xml: name: "Return" Name: required: - "name" properties: name: type: "integer" format: "int32" x-dataType: "Int" snake_case: type: "integer" format: "int32" readOnly: true x-dataType: "Int" property: type: "string" x-dataType: "Text" 123Number: type: "integer" readOnly: true x-dataType: "Int" description: "Model for testing model name same as property name" xml: name: "Name" 200_response: properties: name: type: "integer" format: "int32" x-dataType: "Int" class: type: "string" x-dataType: "Text" description: "Model for testing model name starting with number" xml: name: "Name" ClassModel: properties: _class: type: "string" x-dataType: "Text" description: "Model for testing model with \"_class\" property" Dog: allOf: - $ref: "#/definitions/Animal" - type: "object" properties: breed: type: "string" x-dataType: "Text" Cat: allOf: - $ref: "#/definitions/Animal" - type: "object" properties: declawed: type: "boolean" x-dataType: "Bool" Animal: type: "object" required: - "className" discriminator: "className" properties: className: type: "string" x-dataType: "Text" color: type: "string" default: "red" x-dataType: "Text" AnimalFarm: type: "array" items: $ref: "#/definitions/Animal" format_test: type: "object" required: - "byte" - "date" - "number" - "password" properties: integer: type: "integer" minimum: 10 maximum: 100 x-dataType: "Int" int32: type: "integer" format: "int32" minimum: 20 maximum: 200 x-dataType: "Int" int64: type: "integer" format: "int64" x-dataType: "Integer" number: type: "number" minimum: 32.1 maximum: 543.2 x-dataType: "Double" float: type: "number" format: "float" minimum: 54.3 maximum: 987.6 x-dataType: "Float" double: type: "number" format: "double" minimum: 67.8 maximum: 123.4 x-dataType: "Double" string: type: "string" pattern: "/[a-z]/i" x-dataType: "Text" byte: type: "string" format: "byte" pattern: "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$" x-dataType: "ByteArray" binary: type: "string" format: "binary" x-dataType: "Binary" date: type: "string" format: "date" x-dataType: "Date" dateTime: type: "string" format: "date-time" x-dataType: "DateTime" uuid: type: "string" format: "uuid" x-dataType: "Text" password: type: "string" format: "password" minLength: 10 maxLength: 64 x-dataType: "Text" EnumClass: type: "string" enum: - "_abc" - "-efg" - "(xyz)" default: "-efg" Enum_Test: type: "object" properties: enum_string: type: "string" enum: - "UPPER" - "lower" - "" x-dataType: "E'EnumString" enum_integer: type: "integer" format: "int32" enum: - 1 - -1 x-dataType: "E'EnumInteger" enum_number: type: "number" format: "double" enum: - 1.1 - -1.2 x-dataType: "E'EnumNumber" outerEnum: $ref: "#/definitions/OuterEnum" x-dataType: "OuterEnum" AdditionalPropertiesClass: type: "object" properties: map_property: type: "object" additionalProperties: type: "string" x-dataType: "(Map.Map String Text)" map_of_map_property: type: "object" additionalProperties: type: "object" additionalProperties: type: "string" x-dataType: "(Map.Map String (Map.Map String Text))" MixedPropertiesAndAdditionalPropertiesClass: type: "object" properties: uuid: type: "string" format: "uuid" x-dataType: "Text" dateTime: type: "string" format: "date-time" x-dataType: "DateTime" map: type: "object" additionalProperties: $ref: "#/definitions/Animal" x-dataType: "(Map.Map String Animal)" List: type: "object" properties: 123-list: type: "string" x-dataType: "Text" Client: type: "object" properties: client: type: "string" x-dataType: "Text" example: client: "client" x-mimeTypes: - "MimeJSON" ReadOnlyFirst: type: "object" properties: bar: type: "string" readOnly: true x-dataType: "Text" baz: type: "string" x-dataType: "Text" hasOnlyReadOnly: type: "object" properties: bar: type: "string" readOnly: true x-dataType: "Text" foo: type: "string" readOnly: true x-dataType: "Text" Capitalization: type: "object" properties: smallCamel: type: "string" x-dataType: "Text" CapitalCamel: type: "string" x-dataType: "Text" small_Snake: type: "string" x-dataType: "Text" Capital_Snake: type: "string" x-dataType: "Text" SCA_ETH_Flow_Points: type: "string" x-dataType: "Text" ATT_NAME: type: "string" description: "Name of the pet\n" x-dataType: "Text" MapTest: type: "object" properties: map_map_of_string: type: "object" additionalProperties: type: "object" additionalProperties: type: "string" x-dataType: "(Map.Map String (Map.Map String Text))" map_of_enum_string: type: "object" additionalProperties: type: "string" enum: - "UPPER" - "lower" x-dataType: "(Map.Map String E'Inner)" ArrayTest: type: "object" properties: array_of_string: type: "array" items: type: "string" x-dataType: "[Text]" array_array_of_integer: type: "array" items: type: "array" items: type: "integer" format: "int64" x-dataType: "[[Integer]]" array_array_of_model: type: "array" items: type: "array" items: $ref: "#/definitions/ReadOnlyFirst" x-dataType: "[[ReadOnlyFirst]]" NumberOnly: type: "object" properties: JustNumber: type: "number" x-dataType: "Double" ArrayOfNumberOnly: type: "object" properties: ArrayNumber: type: "array" items: type: "number" x-dataType: "[Double]" ArrayOfArrayOfNumberOnly: type: "object" properties: ArrayArrayNumber: type: "array" items: type: "array" items: type: "number" x-dataType: "[[Double]]" EnumArrays: type: "object" properties: just_symbol: type: "string" enum: - ">=" - "$" x-dataType: "E'JustSymbol" array_enum: type: "array" items: type: "string" enum: - "fish" - "crab" x-dataType: "[E'ArrayEnum]" OuterEnum: type: "string" enum: - "placed" - "approved" - "delivered" OuterComposite: type: "object" properties: my_number: $ref: "#/definitions/OuterNumber" x-dataType: "OuterNumber" my_string: $ref: "#/definitions/OuterString" x-dataType: "OuterString" my_boolean: $ref: "#/definitions/OuterBoolean" x-dataType: "OuterBoolean" example: my_string: {} my_number: {} my_boolean: {} OuterNumber: type: "number" x-dataType: "Double" OuterString: type: "string" x-dataType: "Text" OuterBoolean: type: "boolean" x-dataType: "Bool" externalDocs: description: "Find out more about Swagger" url: "http://swagger.io"