diff --git a/NOTES.md b/NOTES.md index 94cda99..ebaec18 100644 --- a/NOTES.md +++ b/NOTES.md @@ -22,6 +22,55 @@ However, it means that `id` is optional in responses. If we put `id` in the `required` section, it will require it in the requests also? (NOT SURE) Also, it's possible to make `readOnly` and `writeOnly` true at the same time, which makes no sense. +Also, it's possible to make `readOnly` or `writeOnly` false, which makes no impact but creates more options to confuse people. + +One more issue with `readOnly` and `writeOnly` when we want to reuse schemas. +Let's imagine we have a component named `OrderStatus`, but in a specific place we want it to be read-only. +If we compose it with `allOf`, it's not obvious if it takes effect since `allOf` don't merge subschemas, only validates against all of them: + +```yaml +schema: + orderStatus: + allOf: + - $ref: '#/components/schemas/OrderStatus' + - readOnly: true +``` + +Actually, in Redoc, it does render as read-only, but it's not guaranteed that all tools will interpret it the same way. +To really make it read-only, we have to make an ugly workaround (because `allOf` is not intended for this purpose) like this: + +```yaml +schemas: + Order: + ... + orderStatus: + allOf: + - $ref: '#/components/schemas/OrderStatus' + readOnly: true +``` + +Since X-Type keeps type description separate from OpenAPI modifiers, it's as easy as using `$omit` alongside `$ref`: + +```yaml +requestBody: + content: + application/json: + x-type: + $ref: '#/components/x-types/Order' + $omit: + - orderStatus +``` + + --- diff --git a/applications/__tests__/__snapshots__/e2e-bundle.test.js.snap b/applications/__tests__/__snapshots__/e2e-bundle.test.js.snap index 49f7312..8bf7039 100644 --- a/applications/__tests__/__snapshots__/e2e-bundle.test.js.snap +++ b/applications/__tests__/__snapshots__/e2e-bundle.test.js.snap @@ -145,6 +145,33 @@ components: - 42.1 $literal:$record: $literal:number string: $record + schemas: + Foo: + type: number + Bar: + type: object + properties: + somekey: + anyOf: + - type: boolean + enum: + - true + - type: number + enum: + - 42.1 + $record: + type: string + enum: + - number + string: + type: string + enum: + - $record + required: + - somekey + - $record + - string + additionalProperties: false " `; @@ -249,6 +276,18 @@ components: ReferencedAgain: string $descriptions: ReferencedAgain: Referenced inside the ref. + schemas: + Referenced: + type: string + NestedReferenced: + type: object + properties: + ReferencedAgain: + description: Referenced inside the ref. + type: string + required: + - ReferencedAgain + additionalProperties: false " `; @@ -353,24 +392,6 @@ paths: $omit: - password components: - schemas: - User: - type: object - properties: - id: - type: integer - readOnly: true - name: - type: string - password: - type: string - writeOnly: true - createdAt: - $ref: '#/components/schemas/Date' - Date: - type: string - format: date-time - readOnly: true x-types: User: id: number::integer @@ -552,6 +573,52 @@ components: best_friend: - $ref: '#/components/x-types/Person' - undefined + schemas: + Person: + type: object + properties: + name: + type: string + age: + type: number + best_friend: + type: object + properties: + name: + type: string + age: + type: number + best_friend: + type: object + properties: + name: + type: string + age: + type: number + best_friend: + type: object + properties: + name: + type: string + age: + type: number + best_friend: {} + required: + - name + - age + additionalProperties: false + required: + - name + - age + additionalProperties: false + required: + - name + - age + additionalProperties: false + required: + - name + - age + additionalProperties: false " `; @@ -629,200 +696,117 @@ components: - friend: - $ref: '#/components/x-types/ReadonlyUser' - null -" -`; - -exports[`bundle > openapi with discriminators converted to schemas 1`] = ` -"openapi: 3.1.0 -info: - title: Test - version: 1.0.0 -paths: - /test: - get: - responses: - '200': - description: Test discriminators. - content: - application/inheritance+json: - x-type: - bukh: string - vidh: number - $discriminator: - propertyName: bukh - mapping: - glagol: '#/components/schemas/Glagol' - dobro: '#/components/schemas/Dobro' - schema: - type: object - properties: - bukh: - type: string - vidh: - type: number - required: - - bukh - - vidh - additionalProperties: false - discriminator: - propertyName: bukh - mapping: - glagol: '#/components/schemas/Glagol' - dobro: '#/components/schemas/Dobro' - examples: - Correct: - value: - bukh: glagol - vidh: 1 - specificToGlagol: false - Incorrect: - value: - bukh: dobro - application/polymorphism+json: - x-type: - - $ref: '#/components/x-types/H' - - mhslite: - - boolean - - undefined - kako: for_mhslite - discriminator: - - for test - - undefined - schema: - anyOf: - - type: object - properties: - ludh: - type: number - kako: - type: string - enum: - - for_H - required: - - kako - additionalProperties: false - - type: object - properties: - mhslite: - type: boolean - kako: - type: string - enum: - - for_mhslite - discriminator: - type: string - enum: - - for test - required: - - kako - additionalProperties: false - examples: - Correct: - value: - kako: for_H - ludh: 1 - Incorrect: - value: - kako: wrong -components: schemas: - Az: + User: type: object properties: - bukh: + name: type: string - vidh: - type: number - discriminator: - propertyName: bukh - mapping: - glagol: '#/components/schemas/Glagol' - dobro: '#/components/schemas/Dobro' - Glagol: - allOf: - - $ref: '#/components/schemas/Az' - - type: object - properties: - specificToGlagol: - type: boolean - Dobro: - allOf: - - $ref: '#/components/schemas/Az' - - type: object - properties: - specificToDobro: - type: integer - discriminator: - type: string - enum: - - for test - Zelo: - oneOf: - - $ref: '#/components/schemas/H' - - type: object - properties: - mhslite: - type: boolean - kako: - type: string - enum: - - for_mhslite - discriminator: - type: string - enum: - - for test - required: - - kako - discriminator: - propertyName: kako - H: + password: + type: string + friend: + anyOf: + - type: object + properties: + name: + type: string + password: + type: string + friend: + anyOf: + - type: object + properties: + name: + type: string + password: + type: string + friend: + anyOf: + - type: object + properties: + name: + type: string + password: + type: string + friend: + anyOf: + - {} + - type: 'null' + required: + - name + - password + - friend + additionalProperties: false + - type: 'null' + required: + - name + - password + - friend + additionalProperties: false + - type: 'null' + required: + - name + - password + - friend + additionalProperties: false + - type: 'null' + required: + - name + - password + - friend + additionalProperties: false + ReadonlyUser: type: object properties: - ludh: - type: number - kako: + name: type: string - enum: - - for_H + friend: + anyOf: + - type: object + properties: + name: + type: string + friend: + anyOf: + - type: object + properties: + name: + type: string + friend: + anyOf: + - type: object + properties: + name: + type: string + friend: + anyOf: + - {} + - type: 'null' + required: + - name + - friend + additionalProperties: false + - type: 'null' + required: + - name + - friend + additionalProperties: false + - type: 'null' + required: + - name + - friend + additionalProperties: false + - type: 'null' required: - - kako - x-types: - Az: - bukh: string - vidh: number - $discriminator: - propertyName: bukh - mapping: - glagol: '#/components/schemas/Glagol' - dobro: '#/components/schemas/Dobro' - Glagol: - $and: - - $ref: '#/components/x-types/Az' - - specificToGlagol: boolean - Dobro: - $and: - - $ref: '#/components/x-types/Az' - - specificToDobro: number::integer - discriminator: for test - Zelo: - - $ref: '#/components/x-types/H' - - mhslite: - - boolean - - undefined - kako: for_mhslite - discriminator: - - for test - - undefined - H: - ludh: - - number - - undefined - kako: for_H + - name + - friend + additionalProperties: false " `; exports[`bundle > openapi with discriminators converted to x-types 1`] = ` -"openapi: 3.1.0 +"# Already an x-type $ref: #/components/x-types/Base_Az +openapi: 3.1.0 info: title: Test version: 1.0.0 @@ -857,85 +841,24 @@ paths: x-type: $ref: '#/components/x-types/Zelo' components: - schemas: - Az: - type: object - properties: - bukh: - type: string - vidh: - type: number - discriminator: - propertyName: bukh - mapping: - glagol: '#/components/schemas/Glagol' - dobro: '#/components/schemas/Dobro' - Glagol: - allOf: - - $ref: '#/components/schemas/Az' - - type: object - properties: - specificToGlagol: - type: boolean - Dobro: - allOf: - - $ref: '#/components/schemas/Az' - - type: object - properties: - specificToDobro: - type: integer - discriminator: - type: string - enum: - - for test - Zelo: - oneOf: - - $ref: '#/components/schemas/H' - - type: object - properties: - mhslite: - type: boolean - kako: - type: string - enum: - - for_mhslite - discriminator: - type: string - enum: - - for test - required: - - kako - discriminator: - propertyName: kako - H: - type: object - properties: - ludh: - type: number - kako: - type: string - enum: - - for_H - required: - - kako x-types: - Az: - bukh: string - vidh: number - $discriminator: - propertyName: bukh - mapping: - glagol: '#/components/schemas/Glagol' - dobro: '#/components/schemas/Dobro' Glagol: $and: - - $ref: '#/components/x-types/Az' + - $ref: '#/components/x-types/Base_Az' - specificToGlagol: boolean + - bukh: glagol + Az: + - $ref: '#/components/x-types/Glagol' + - $ref: '#/components/x-types/Dobro' + Base_Az: + bukh: string + vidh: number Dobro: $and: - - $ref: '#/components/x-types/Az' + - $ref: '#/components/x-types/Base_Az' - specificToDobro: number::integer discriminator: for test + - bukh: dobro Zelo: - $ref: '#/components/x-types/H' - mhslite: @@ -1029,6 +952,21 @@ components: id: number::integer name: string password: string + schemas: + User: + type: object + properties: + id: + type: integer + name: + type: string + password: + type: string + required: + - id + - name + - password + additionalProperties: false " `; @@ -1115,6 +1053,18 @@ components: $and: - foo: boolean - bar: number + schemas: + CorrectAnd: + type: object + properties: + foo: + type: boolean + bar: + type: number + required: + - foo + - bar + additionalProperties: false " `; @@ -1227,6 +1177,19 @@ components: $array: - az - bukh + schemas: + Foo: + type: string + enum: + - az + - bukh + Bar: + type: array + items: + type: string + enum: + - az + - bukh " `; @@ -1330,6 +1293,7 @@ components: example: true schema: type: string + schemas: {} " `; @@ -1418,5 +1382,15 @@ components: Conditional: - vidh - undefined + schemas: + Or: + type: string + enum: + - az + - bukh + Conditional: + type: string + enum: + - vidh " `; diff --git a/applications/__tests__/__snapshots__/e2e-lint.test.js.snap b/applications/__tests__/__snapshots__/e2e-lint.test.js.snap index b951cfc..c25c25d 100644 --- a/applications/__tests__/__snapshots__/e2e-lint.test.js.snap +++ b/applications/__tests__/__snapshots__/e2e-lint.test.js.snap @@ -398,6 +398,7 @@ run \`redocly lint --generate-ignore-file\` to add all problems to the ignore fi exports[`lint > openapi with circular refs 1`] = ` "validating applications/resources/openapi-with-circular-refs.yaml... WARNING! Circular reference detected: #/components/x-types/Person +WARNING! Circular reference detected: #/components/x-types/Person [1] applications/resources/openapi-with-circular-refs.yaml:26:26 at #/paths/~1test/get/responses/200/content/application~1json/examples/Incorrect/value/age Example value must conform to the schema: \`age\` property type must be number. diff --git a/applications/__tests__/e2e-bundle.test.js b/applications/__tests__/e2e-bundle.test.js index 72f9686..de2609b 100644 --- a/applications/__tests__/e2e-bundle.test.js +++ b/applications/__tests__/e2e-bundle.test.js @@ -4,105 +4,105 @@ import {runCommand} from './e2e-utils' describe('bundle', () => { test('bundle and translate x-type to schema (for regular $ref objects)', () => { const {stdout} = runCommand( - 'redocly bundle applications/resources/openapi.yaml --config=applications/x-redocly.yaml' + 'redocly bundle applications/resources/openapi.yaml --config=applications/x-type.redocly.yaml' ) expect(stdout).toMatchSnapshot() }) test('do not add schemas if there is no x-type', () => { const {stdout} = runCommand( - 'redocly bundle applications/resources/openapi-without-x-types.yaml --config=applications/x-redocly.yaml' + 'redocly bundle applications/resources/openapi-without-x-types.yaml --config=applications/x-type.redocly.yaml' ) expect(stdout).toMatchSnapshot() }) test('resolve different type of $refs on different levels and ignore wrong $refs (with --force) when bundling', () => { const {stdout} = runCommand( - 'redocly bundle applications/resources/openapi-with-refs.yaml --force --config=applications/x-redocly.yaml' + 'redocly bundle applications/resources/openapi-with-refs.yaml --force --config=applications/x-type.redocly.yaml' ) expect(stdout).toMatchSnapshot() }) test('do not bundle an openapi with type never', () => { const {stderr} = runCommand( - 'redocly bundle applications/resources/openapi-never.yaml --config=applications/x-redocly.yaml' + 'redocly bundle applications/resources/openapi-never.yaml --config=applications/x-type.redocly.yaml' ) expect(stderr).toMatchSnapshot() }) test('resolve and translate $ands', () => { const {stdout} = runCommand( - 'redocly bundle applications/resources/openapi-and.yaml --config=applications/x-redocly.yaml' + 'redocly bundle applications/resources/openapi-and.yaml --config=applications/x-type.redocly.yaml' ) expect(stdout).toMatchSnapshot() }) test('translate x-type to schema inside parameters', () => { const {stdout} = runCommand( - 'redocly bundle applications/resources/openapi-with-x-types-inside-parameters.yaml --config=applications/x-redocly.yaml' + 'redocly bundle applications/resources/openapi-with-x-types-inside-parameters.yaml --config=applications/x-type.redocly.yaml' ) expect(stdout).toMatchSnapshot() }) test('translate x-types inside ORs', () => { const {stdout} = runCommand( - 'redocly bundle applications/resources/openapi-or.yaml --config=applications/x-redocly.yaml' + 'redocly bundle applications/resources/openapi-or.yaml --config=applications/x-type.redocly.yaml' ) expect(stdout).toMatchSnapshot() }) test('translate string and number formats', () => { const {stdout} = runCommand( - 'redocly bundle applications/resources/openapi-type-formats.yaml --config=applications/x-redocly.yaml' + 'redocly bundle applications/resources/openapi-type-formats.yaml --config=applications/x-type.redocly.yaml' ) expect(stdout).toMatchSnapshot() }) test('distributivity in x-types', () => { const {stdout} = runCommand( - 'redocly bundle applications/resources/openapi-with-nested-ors-in-ands.yaml --config=applications/x-redocly.yaml' + 'redocly bundle applications/resources/openapi-with-nested-ors-in-ands.yaml --config=applications/x-type.redocly.yaml' ) expect(stdout).toMatchSnapshot() }) test('replace existing schemas', () => { const {stdout: notPreserved} = runCommand( - 'redocly bundle applications/resources/openapi-with-schema.yaml --config=applications/x-redocly.yaml' + 'redocly bundle applications/resources/openapi-with-schema.yaml --config=applications/x-type.redocly.yaml' ) expect(notPreserved).toMatchSnapshot() }) test('descriptions in x-types', () => { const {stdout} = runCommand( - 'redocly bundle applications/resources/openapi-with-descriptions.yaml --config=applications/x-redocly.yaml' + 'redocly bundle applications/resources/openapi-with-descriptions.yaml --config=applications/x-type.redocly.yaml' ) expect(stdout).toMatchSnapshot() }) test('generate x-types from JSON Schemas (petstore)', () => { const {stdout: toXTypes} = runCommand( - 'redocly bundle applications/resources/pets.yaml --config=applications/generate-x-types-redocly.yaml' + 'redocly bundle applications/resources/pets.yaml --config=applications/generate-x-types.redocly.yaml' ) expect(toXTypes).toMatchFileSnapshot('file-snapshots/pets-to-x-types.yaml') }) test('generate x-types from JSON Schemas (readOnly and writeOnly)', () => { const {stdout} = runCommand( - 'redocly bundle applications/resources/openapi-from-readonly-writeonly-to-omit.yaml --config=applications/generate-x-types-redocly.yaml' + 'redocly bundle applications/resources/openapi-from-readonly-writeonly-to-omit.yaml --config=applications/generate-x-types.redocly.yaml' ) expect(stdout).toMatchSnapshot() }) test('openapi with circular refs to writeOnly', () => { const {stdout} = runCommand( - 'redocly bundle applications/resources/openapi-writeonly-circular.yaml --config=applications/x-redocly.yaml' + 'redocly bundle applications/resources/openapi-writeonly-circular.yaml --config=applications/x-type.redocly.yaml' ) expect(stdout).toMatchSnapshot() }) test('openapi with omitting fields', () => { const {stdout} = runCommand( - 'redocly bundle applications/resources/openapi-omit.yaml --config=applications/x-redocly.yaml' + 'redocly bundle applications/resources/openapi-omit.yaml --config=applications/x-type.redocly.yaml' ) // FIXME: the $omit field merges directly into the resolved object. this may cause issues if $ref is not an object expect(stdout).toMatchSnapshot() @@ -110,35 +110,28 @@ describe('bundle', () => { test('openapi with $-prefixed fields', () => { const {stdout} = runCommand( - 'redocly bundle applications/resources/openapi-dollar-prefixed-fields.yaml --config=applications/x-redocly.yaml' + 'redocly bundle applications/resources/openapi-dollar-prefixed-fields.yaml --config=applications/x-type.redocly.yaml' ) expect(stdout).toMatchSnapshot() }) test('openapi with $and and $description', () => { const {stdout} = runCommand( - 'redocly bundle applications/resources/openapi-and-with-descriptions.yaml --config=applications/x-redocly.yaml' - ) - expect(stdout).toMatchSnapshot() - }) - - test('openapi with discriminators converted to schemas', () => { - const {stdout} = runCommand( - 'redocly bundle applications/resources/openapi-with-discriminators.yaml --config=applications/x-redocly.yaml' + 'redocly bundle applications/resources/openapi-and-with-descriptions.yaml --config=applications/x-type.redocly.yaml' ) expect(stdout).toMatchSnapshot() }) test('openapi with discriminators converted to x-types', () => { const {stdout} = runCommand( - 'redocly bundle applications/resources/openapi-with-discriminators.yaml --config=applications/generate-x-types-redocly.yaml' + 'redocly bundle applications/resources/openapi-with-discriminators.yaml --config=applications/generate-x-types.redocly.yaml' ) expect(stdout).toMatchSnapshot() }) test('openapi with circular refs converted to schemas', () => { const {stdout} = runCommand( - 'redocly bundle applications/resources/openapi-with-circular-refs.yaml --config=applications/x-redocly.yaml' + 'redocly bundle applications/resources/openapi-with-circular-refs.yaml --config=applications/x-type.redocly.yaml' ) expect(stdout).toMatchSnapshot() }) diff --git a/applications/__tests__/e2e-lint.test.js b/applications/__tests__/e2e-lint.test.js index 389c2a7..ae4a617 100644 --- a/applications/__tests__/e2e-lint.test.js +++ b/applications/__tests__/e2e-lint.test.js @@ -4,84 +4,84 @@ import {runCommand, stripCWD} from './e2e-utils' describe('lint', () => { test('general openapi case (using preprocessors to transform)', () => { const {stderr} = runCommand( - 'redocly lint applications/resources/openapi.yaml --config=applications/x-redocly.yaml' + 'redocly lint applications/resources/openapi.yaml --config=applications/x-type.redocly.yaml' ) expect(stderr).toMatchSnapshot() }) test('openapi with mixed types', () => { const {stderr} = runCommand( - 'redocly lint applications/resources/openapi-mixed-types.yaml --config=applications/x-redocly.yaml' + 'redocly lint applications/resources/openapi-mixed-types.yaml --config=applications/x-type.redocly.yaml' ) expect(stripCWD(stderr)).toMatchSnapshot() }) test('openapi that contains wrong and correct $ands', () => { const {stderr} = runCommand( - 'redocly lint applications/resources/openapi-and.yaml --config=applications/x-redocly.yaml' + 'redocly lint applications/resources/openapi-and.yaml --config=applications/x-type.redocly.yaml' ) expect(stripCWD(stderr)).toMatchSnapshot() }) test('openapi with x-types inside parameters', () => { const {stderr} = runCommand( - 'redocly lint applications/resources/openapi-with-x-types-inside-parameters.yaml --config=applications/x-redocly.yaml' + 'redocly lint applications/resources/openapi-with-x-types-inside-parameters.yaml --config=applications/x-type.redocly.yaml' ) expect(stderr).toMatchSnapshot() }) test('openapi with ORs (including nested and referenced)', () => { const {stderr} = runCommand( - 'redocly lint applications/resources/openapi-or.yaml --config=applications/x-redocly.yaml' + 'redocly lint applications/resources/openapi-or.yaml --config=applications/x-type.redocly.yaml' ) expect(stderr).toMatchSnapshot() }) test('distribytivity in x-types', () => { const {stderr} = runCommand( - 'redocly lint applications/resources/openapi-with-nested-ors-in-ands.yaml --config=applications/x-redocly.yaml' + 'redocly lint applications/resources/openapi-with-nested-ors-in-ands.yaml --config=applications/x-type.redocly.yaml' ) expect(stderr).toMatchSnapshot() }) test('x-type described with x-type itself', () => { const {stderr} = runCommand( - 'redocly lint applications/resources/x-types-described-with-x-type.yaml --config=applications/x-redocly.yaml' + 'redocly lint applications/resources/x-types-described-with-x-type.yaml --config=applications/x-type.redocly.yaml' ) expect(stripCWD(stderr)).toMatchSnapshot() }) test('openapi with external $refs', () => { const {stderr} = runCommand( - 'redocly lint applications/resources/openapi-with-external-refs.yaml --config=applications/x-redocly.yaml' + 'redocly lint applications/resources/openapi-with-external-refs.yaml --config=applications/x-type.redocly.yaml' ) expect(stripCWD(stderr)).toMatchSnapshot() }) test('openapi with omitting fields', () => { const {stderr} = runCommand( - 'redocly lint applications/resources/openapi-omit.yaml --config=applications/x-redocly.yaml' + 'redocly lint applications/resources/openapi-omit.yaml --config=applications/x-type.redocly.yaml' ) expect(stripCWD(stderr)).toMatchSnapshot() }) test('openapi with $and and $description', () => { const {stderr} = runCommand( - 'redocly lint applications/resources/openapi-and-with-descriptions.yaml --config=applications/x-redocly.yaml' + 'redocly lint applications/resources/openapi-and-with-descriptions.yaml --config=applications/x-type.redocly.yaml' ) expect(stripCWD(stderr)).toMatchSnapshot() }) test('openapi with circular refs', () => { const {stderr} = runCommand( - 'redocly lint applications/resources/openapi-with-circular-refs.yaml --config=applications/x-redocly.yaml' + 'redocly lint applications/resources/openapi-with-circular-refs.yaml --config=applications/x-type.redocly.yaml' ) expect(stripCWD(stderr)).toMatchSnapshot() }) test('openapi with redundant key in $descriptions', () => { const {stdout: stderr} = runCommand( - 'redocly lint applications/resources/openapi-with-redundant-description.yaml --config=applications/x-redocly.yaml 2>&1' + 'redocly lint applications/resources/openapi-with-redundant-description.yaml --config=applications/x-type.redocly.yaml 2>&1' ) expect(stripCWD(stderr)).toMatchSnapshot() }) diff --git a/applications/__tests__/file-snapshots/pets-back-to-schemas.yaml b/applications/__tests__/file-snapshots/pets-back-to-schemas.yaml index d20a318..90d5351 100644 --- a/applications/__tests__/file-snapshots/pets-back-to-schemas.yaml +++ b/applications/__tests__/file-snapshots/pets-back-to-schemas.yaml @@ -78,16 +78,15 @@ paths: description: The language you prefer for messages. Supported values are en-AU, en-CA, en-GB, en-US example: en-US required: false - x-type: string schema: type: string - name: cookieParam in: cookie description: Some cookie required: true - x-type: number::integer schema: type: integer + format: int64 post: tags: - pet @@ -177,100 +176,108 @@ paths: description: ID of pet to return required: true deprecated: true - x-type: number::integer schema: type: integer + format: int64 responses: '200': description: successful operation content: application/json: - x-type: - id: - - $ref: '#/components/x-types/Id' - - undefined - category: - - $ref: '#/components/x-types/Category' - - undefined - name: string - photoUrls: - $array: string::url - friend: - - $ref: '#/components/x-types/Pet' - - undefined - tags: - - $array: - $ref: '#/components/x-types/Tag' - - undefined - status: - - - available - - pending - - sold - - undefined - petType: - - string - - undefined - $discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - $descriptions: - id: Pet ID - category: Categories this pet belongs to - name: The name given to a pet - photoUrls: The list of URL to a cute photos featuring pet - tags: Tags attached to the pet - status: Pet status in the store - petType: Type of a pet schema: - type: object - properties: - id: - description: Pet ID - type: integer - category: - description: Categories this pet belongs to - type: object + anyOf: + - type: object properties: id: - description: Category ID + description: Pet ID type: integer - name: - description: Category name - type: string - minLength: 1 - sub: - description: Test Sub Category + format: int64 + category: + description: Categories this pet belongs to type: object properties: - prop1: - description: Dumb Property + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false required: - - prop1 + - id + - name + - sub additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive required: - - id - name - - sub + - photoUrls + - huntingSkill additionalProperties: false - name: - description: The name given to a pet - type: string - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - items: - type: string - format: url - friend: - type: object + - type: object properties: id: description: Pet ID type: integer + format: int64 category: description: Categories this pet belongs to type: object @@ -278,6 +285,7 @@ paths: id: description: Category ID type: integer + format: int64 name: description: Category name type: string @@ -306,85 +314,90 @@ paths: items: type: string format: url - friend: + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to type: object properties: id: - description: Pet ID + description: Category ID type: integer - category: - description: Categories this pet belongs to + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category type: object properties: - id: - description: Category ID - type: integer - name: - description: Category name + prop1: + description: Dumb Property type: string - minLength: 1 - sub: - description: Test Sub Category - type: object - properties: - prop1: - description: Dumb Property - type: string - required: - - prop1 - additionalProperties: false required: - - id - - name - - sub + - prop1 additionalProperties: false - name: - description: The name given to a pet - type: string - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - items: - type: string - format: url - friend: {} - tags: - description: Tags attached to the pet - type: array - items: - type: object - properties: - id: - description: Tag ID - type: integer - name: - description: Tag name - type: string - minLength: 1 - required: - - id - - name - additionalProperties: false - status: - description: Pet status in the store - type: string - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string required: + - id - name - - photoUrls + - sub additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} tags: description: Tags attached to the pet type: array @@ -394,6 +407,7 @@ paths: id: description: Tag ID type: integer + format: int64 name: description: Tag name type: string @@ -412,53 +426,16 @@ paths: petType: description: Type of a pet type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number required: - name - photoUrls + - honeyPerDay additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - tags: - description: Tags attached to the pet - type: array - items: - type: object - properties: - id: - description: Tag ID - type: integer - name: - description: Tag name - type: string - minLength: 1 - required: - - id - - name - additionalProperties: false - status: - description: Pet status in the store - type: string - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string - required: - - name - - photoUrls - additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' '400': description: Invalid ID supplied '404': @@ -476,9 +453,9 @@ paths: in: path description: ID of pet that needs to be updated required: true - x-type: number::integer schema: type: integer + format: int64 responses: '405': description: Invalid input @@ -489,12 +466,6 @@ paths: requestBody: content: application/x-www-form-urlencoded: - x-type: - name: string - status: string - $descriptions: - name: Updated name of the pet - status: Updated status of the pet schema: type: object properties: @@ -519,16 +490,15 @@ paths: in: header required: false example: Bearer - x-type: string schema: type: string - name: petId in: path description: Pet id to delete required: true - x-type: number::integer schema: type: integer + format: int64 responses: '400': description: Invalid pet value @@ -548,23 +518,20 @@ paths: in: path description: ID of pet to update required: true - x-type: number::integer schema: type: integer + format: int64 responses: '200': description: successful operation content: application/json: - x-type: - code: number::integer - type: string - message: string schema: type: object properties: code: type: integer + format: int32 type: type: string message: @@ -581,7 +548,6 @@ paths: requestBody: content: application/octet-stream: - x-type: string::binary schema: type: string format: binary @@ -598,11 +564,6 @@ paths: description: Status values that need to be considered for filter required: true style: form - x-type: - $array: - - available - - pending - - sold schema: type: array items: @@ -616,95 +577,16 @@ paths: description: successful operation content: application/json: - x-type: - $array: - id: - - $ref: '#/components/x-types/Id' - - undefined - category: - - $ref: '#/components/x-types/Category' - - undefined - name: string - photoUrls: - $array: string::url - friend: - - $ref: '#/components/x-types/Pet' - - undefined - tags: - - $array: - $ref: '#/components/x-types/Tag' - - undefined - status: - - - available - - pending - - sold - - undefined - petType: - - string - - undefined - $discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - $descriptions: - id: Pet ID - category: Categories this pet belongs to - name: The name given to a pet - photoUrls: The list of URL to a cute photos featuring pet - tags: Tags attached to the pet - status: Pet status in the store - petType: Type of a pet schema: type: array items: - type: object - properties: - id: - description: Pet ID - type: integer - category: - description: Categories this pet belongs to - type: object - properties: - id: - description: Category ID - type: integer - name: - description: Category name - type: string - minLength: 1 - sub: - description: Test Sub Category - type: object - properties: - prop1: - description: Dumb Property - type: string - required: - - prop1 - additionalProperties: false - required: - - id - - name - - sub - additionalProperties: false - name: - description: The name given to a pet - type: string - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - items: - type: string - format: url - friend: - type: object + anyOf: + - type: object properties: id: description: Pet ID type: integer + format: int64 category: description: Categories this pet belongs to type: object @@ -712,6 +594,7 @@ paths: id: description: Category ID type: integer + format: int64 name: description: Category name type: string @@ -740,85 +623,7 @@ paths: items: type: string format: url - friend: - type: object - properties: - id: - description: Pet ID - type: integer - category: - description: Categories this pet belongs to - type: object - properties: - id: - description: Category ID - type: integer - name: - description: Category name - type: string - minLength: 1 - sub: - description: Test Sub Category - type: object - properties: - prop1: - description: Dumb Property - type: string - required: - - prop1 - additionalProperties: false - required: - - id - - name - - sub - additionalProperties: false - name: - description: The name given to a pet - type: string - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - items: - type: string - format: url - friend: {} - tags: - description: Tags attached to the pet - type: array - items: - type: object - properties: - id: - description: Tag ID - type: integer - name: - description: Tag name - type: string - minLength: 1 - required: - - id - - name - additionalProperties: false - status: - description: Pet status in the store - type: string - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string - required: - - name - - photoUrls - additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' + friend: {} tags: description: Tags attached to the pet type: array @@ -828,6 +633,7 @@ paths: id: description: Tag ID type: integer + format: int64 name: description: Tag name type: string @@ -846,173 +652,27 @@ paths: petType: description: Type of a pet type: string - required: - - name - - photoUrls - additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - tags: - description: Tags attached to the pet - type: array - items: - type: object - properties: - id: - description: Tag ID - type: integer - name: - description: Tag name - type: string - minLength: 1 - required: - - id - - name - additionalProperties: false - status: - description: Pet status in the store - type: string - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string - required: - - name - - photoUrls - additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - '400': - description: Invalid status value - security: - - petstore_auth: - - write:pets - - read:pets - /GETCustomers/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 - deprecated: true - parameters: - - name: tags - in: query - description: Tags to filter by - required: true - style: form - x-type: - $array: string - schema: - type: array - items: - type: string - responses: - '200': - description: successful operation - content: - application/json: - x-type: - $array: - id: - - $ref: '#/components/x-types/Id' - - undefined - category: - - $ref: '#/components/x-types/Category' - - undefined - name: string - photoUrls: - $array: string::url - friend: - - $ref: '#/components/x-types/Pet' - - undefined - tags: - - $array: - $ref: '#/components/x-types/Tag' - - undefined - status: - - - available - - pending - - sold - - undefined - petType: - - string - - undefined - $discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - $descriptions: - id: Pet ID - category: Categories this pet belongs to - name: The name given to a pet - photoUrls: The list of URL to a cute photos featuring pet - tags: Tags attached to the pet - status: Pet status in the store - petType: Type of a pet - schema: - type: array - items: - type: object - properties: - id: - description: Pet ID - type: integer - category: - description: Categories this pet belongs to - type: object - properties: - id: - description: Category ID - type: integer - name: - description: Category name + enum: + - cat + huntingSkill: + description: The measured skill for hunting type: string - minLength: 1 - sub: - description: Test Sub Category - type: object - properties: - prop1: - description: Dumb Property - type: string - required: - - prop1 - additionalProperties: false + enum: + - clueless + - lazy + - adventurous + - aggressive required: - - id - name - - sub + - photoUrls + - huntingSkill additionalProperties: false - name: - description: The name given to a pet - type: string - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - items: - type: string - format: url - friend: - type: object + - type: object properties: id: description: Pet ID type: integer + format: int64 category: description: Categories this pet belongs to type: object @@ -1020,6 +680,7 @@ paths: id: description: Category ID type: integer + format: int64 name: description: Category name type: string @@ -1048,85 +709,90 @@ paths: items: type: string format: url - friend: - type: object - properties: - id: - description: Pet ID - type: integer - category: - description: Categories this pet belongs to - type: object - properties: - id: - description: Category ID - type: integer - name: - description: Category name + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property type: string - minLength: 1 - sub: - description: Test Sub Category - type: object - properties: - prop1: - description: Dumb Property - type: string - required: - - prop1 - additionalProperties: false required: - - id - - name - - sub + - prop1 additionalProperties: false - name: - description: The name given to a pet - type: string - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - items: - type: string - format: url - friend: {} - tags: - description: Tags attached to the pet - type: array - items: - type: object - properties: - id: - description: Tag ID - type: integer - name: - description: Tag name - type: string - minLength: 1 - required: - - id - - name - additionalProperties: false - status: - description: Pet status in the store - type: string - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string required: + - id - name - - photoUrls + - sub additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} tags: description: Tags attached to the pet type: array @@ -1136,6 +802,7 @@ paths: id: description: Tag ID type: integer + format: int64 name: description: Tag name type: string @@ -1154,602 +821,149 @@ paths: petType: description: Type of a pet type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number required: - name - photoUrls + - honeyPerDay additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - tags: - description: Tags attached to the pet - type: array - items: - type: object - properties: - id: - description: Tag ID - type: integer - name: - description: Tag name - type: string - minLength: 1 - required: - - id - - name - additionalProperties: false - status: - description: Pet status in the store - type: string - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string - required: - - name - - photoUrls - additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' '400': - description: Invalid tag value + description: Invalid status value security: - petstore_auth: - write:pets - read:pets - /store/inventory: + /GETCustomers/findByTags: get: tags: - - store - summary: Returns pet inventories by status - description: Returns a map of status codes to quantities - operationId: getInventory - responses: - '200': - description: successful operation - content: - application/json: - x-type: - $record: number::integer - schema: - type: object - properties: {} - required: [] - additionalProperties: - type: integer - security: - - api_key: [] - /store/order: - post: - tags: - - store - summary: Place an order for a pet - description: '' - operationId: placeOrder + - pet + summary: Finds Pets by tags + description: Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. + operationId: findPetsByTags + deprecated: true + parameters: + - name: tags + in: query + description: Tags to filter by + required: true + style: form + schema: + type: array + items: + type: string responses: '200': description: successful operation content: application/json: - x-type: - $omit: - - requestId - id: number::integer - petId: number::integer - quantity: number::integer::min(1) - shipDate: string::date-time - status: - - placed - - approved - - delivered - complete: boolean - requestId: string - $descriptions: - id: Order ID - petId: Pet ID - shipDate: Estimated ship date - status: Order Status - complete: Indicates whenever order was completed or not - requestId: Unique Request Id schema: - type: object - properties: - id: - description: Order ID - type: integer - petId: - description: Pet ID - type: integer - quantity: - type: integer - minimum: 1 - shipDate: - description: Estimated ship date - type: string - format: date-time - status: - description: Order Status - type: string - enum: - - placed - - approved - - delivered - complete: - description: Indicates whenever order was completed or not - type: boolean - required: - - id - - petId - - quantity - - shipDate - - status - - complete - additionalProperties: false - '400': - description: Invalid Order - content: - application/json: - example: - status: 400 - message: Invalid Order - requestBody: - content: - application/json: - x-type: - $omit: - - id - - petId - - complete - id: number::integer - petId: number::integer - quantity: number::integer::min(1) - shipDate: string::date-time - status: - - placed - - approved - - delivered - complete: boolean - requestId: string - $descriptions: - id: Order ID - petId: Pet ID - shipDate: Estimated ship date - status: Order Status - complete: Indicates whenever order was completed or not - requestId: Unique Request Id - schema: - type: object - properties: - quantity: - type: integer - minimum: 1 - shipDate: - description: Estimated ship date - type: string - format: date-time - status: - description: Order Status - type: string - enum: - - placed - - approved - - delivered - requestId: - description: Unique Request Id - type: string - required: - - quantity - - shipDate - - status - - requestId - additionalProperties: false - description: order placed for purchasing the pet - required: true - /store/order/{orderId}: - 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 - parameters: - - name: orderId - in: path - description: ID of pet that needs to be fetched - required: true - x-type: number::integer::min(1)::max(5) - schema: - type: integer - minimum: 1 - maximum: 5 - responses: - '200': - description: successful operation - content: - application/json: - x-type: - $omit: - - requestId - id: number::integer - petId: number::integer - quantity: number::integer::min(1) - shipDate: string::date-time - status: - - placed - - approved - - delivered - complete: boolean - requestId: string - $descriptions: - id: Order ID - petId: Pet ID - shipDate: Estimated ship date - status: Order Status - complete: Indicates whenever order was completed or not - requestId: Unique Request Id - schema: - type: object - properties: - id: - description: Order ID - type: integer - petId: - description: Pet ID - type: integer - quantity: - type: integer - minimum: 1 - shipDate: - description: Estimated ship date - type: string - format: date-time - status: - description: Order Status - type: string - enum: - - placed - - approved - - delivered - complete: - description: Indicates whenever order was completed or not - type: boolean - required: - - id - - petId - - quantity - - shipDate - - status - - complete - additionalProperties: false - '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 - parameters: - - name: orderId - in: path - description: ID of the order that needs to be deleted - required: true - x-type: string::min(1) - schema: - type: string - minLength: 1 - responses: - '400': - description: Invalid ID supplied - '404': - description: Order not found - /store/subscribe: - post: - tags: - - store - summary: Subscribe to the Store events - description: Add subscription for a store events - requestBody: - content: - application/json: - x-type: - callbackUrl: string::uri - eventName: - - orderInProgress - - orderShipped - - orderDelivered - $descriptions: - callbackUrl: This URL will be called by the server when the desired event will occur - eventName: Event name for the subscription - schema: - type: object - properties: - callbackUrl: - description: This URL will be called by the server when the desired event will occur - type: string - format: uri - eventName: - description: Event name for the subscription - type: string - enum: - - orderInProgress - - orderShipped - - orderDelivered - required: - - callbackUrl - - eventName - additionalProperties: false - responses: - '201': - description: Subscription added - content: - application/json: - x-type: - subscriptionId: string - schema: - type: object - properties: - subscriptionId: - type: string - required: - - subscriptionId - additionalProperties: false - callbacks: - orderInProgress: - '{$request.body#/callbackUrl}?event={$request.body#/eventName}': - servers: - - url: //callback-url.path-level/v1 - description: Path level server 1 - - url: //callback-url.path-level/v2 - description: Path level server 2 - post: - summary: Order in Progress (Summary) - description: A callback triggered every time an Order is updated status to "inProgress" (Description) - externalDocs: - description: Find out more - url: https://more-details.com/demo - requestBody: - content: - application/json: - x-type: - orderId: string - timestamp: string::date-time - status: string - schema: - type: object + type: array + items: + anyOf: + - type: object properties: - orderId: - type: string - timestamp: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet type: string - format: date-time + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting type: string + enum: + - clueless + - lazy + - adventurous + - aggressive required: - - orderId - - timestamp - - status + - name + - photoUrls + - huntingSkill additionalProperties: false - responses: - '200': - description: Callback successfully processed and no retries will be performed - content: - application/json: - x-type: - someProp: string - schema: - type: object - properties: - someProp: - type: string - required: - - someProp - additionalProperties: false - '299': - description: Response for cancelling subscription - '500': - description: Callback processing failed and retries will be performed - x-codeSamples: - - lang: C# - source: | - PetStore.v1.Pet pet = new PetStore.v1.Pet(); - pet.setApiKey("your api key"); - pet.petType = PetStore.v1.Pet.TYPE_DOG; - pet.name = "Rex"; - // set other fields - PetStoreResponse response = pet.create(); - if (response.statusCode == HttpStatusCode.Created) - { - // Successfully created - } - else - { - // Something wrong -- check response for errors - Console.WriteLine(response.getRawResponse()); - } - - lang: PHP - source: | - $form = new \PetStore\Entities\Pet(); - $form->setPetType("Dog"); - $form->setName("Rex"); - // set other fields - try { - $pet = $client->pets()->create($form); - } catch (UnprocessableEntityException $e) { - var_dump($e->getErrors()); - } - put: - description: Order in Progress (Only Description) - servers: - - url: //callback-url.operation-level/v1 - description: Operation level server 1 (Operation override) - - url: //callback-url.operation-level/v2 - description: Operation level server 2 (Operation override) - requestBody: - content: - application/json: - x-type: - orderId: string - timestamp: string::date-time - status: string - schema: - type: object - properties: - orderId: - type: string - timestamp: - type: string - format: date-time - status: - type: string - required: - - orderId - - timestamp - - status - additionalProperties: false - responses: - '200': - description: Callback successfully processed and no retries will be performed - content: - application/json: - x-type: - someProp: string - schema: - type: object - properties: - someProp: - type: string - required: - - someProp - additionalProperties: false - orderShipped: - '{$request.body#/callbackUrl}?event={$request.body#/eventName}': - post: - description: | - Very long description - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor - incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis - nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. - Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu - fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in - culpa qui officia deserunt mollit anim id est laborum. - requestBody: - content: - application/json: - x-type: - orderId: string - timestamp: string::date-time - estimatedDeliveryDate: string::date-time - schema: - type: object - properties: - orderId: - type: string - timestamp: - type: string - format: date-time - estimatedDeliveryDate: - type: string - format: date-time - required: - - orderId - - timestamp - - estimatedDeliveryDate - additionalProperties: false - responses: - '200': - description: Callback successfully processed and no retries will be performed - orderDelivered: - http://notificationServer.com?url={$request.body#/callbackUrl}&event={$request.body#/eventName}: - post: - deprecated: true - summary: Order delivered - description: A callback triggered every time an Order is delivered to the recipient - requestBody: - content: - application/json: - x-type: - orderId: string - timestamp: string::date-time - schema: - type: object - properties: - orderId: - type: string - timestamp: - type: string - format: date-time - required: - - orderId - - timestamp - additionalProperties: false - responses: - '200': - description: Callback successfully processed and no retries will be performed - /user: - post: - tags: - - user - summary: Create user - description: This can only be done by the logged in user. - operationId: createUser - responses: - default: - description: successful operation - requestBody: - content: - application/json: - x-type: - $omit: - - id - id: number::integer - pet: - - $ref: '#/components/x-types/Pet' - - $ref: '#/components/x-types/Tag' - username: string::min(4) - firstName: string::min(1) - lastName: string::min(1) - email: string::email - password: string::password::pattern(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/)::min(8) - phone: string::pattern(/^\+(?:[0-9]-?){6,14}[0-9]$/) - userStatus: number::integer - $descriptions: - username: User supplied username - firstName: User first name - lastName: User last name - email: User email address - password: User password, MUST contain a mix of upper and lower case letters, as well as digits - phone: User phone number in international format - userStatus: User status - schema: - type: object - properties: - pet: - anyOf: - type: object properties: - id: # wrong, should be omitted in requests + id: description: Pet ID type: integer + format: int64 category: description: Categories this pet belongs to type: object properties: - id: # wrong, should be omitted + id: description: Category ID type: integer + format: int64 name: description: Category name type: string @@ -1765,7 +979,7 @@ paths: - prop1 additionalProperties: false required: - - id # wrong, should be omitted + - id - name - sub additionalProperties: false @@ -1778,178 +992,106 @@ paths: items: type: string format: url - friend: + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to type: object properties: - id: # wrong, should be omitted - description: Pet ID + id: + description: Category ID type: integer - category: - description: Categories this pet belongs to + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category type: object properties: - id: # wrong, should be omitted - description: Category ID - type: integer - name: - description: Category name + prop1: + description: Dumb Property type: string - minLength: 1 - sub: - description: Test Sub Category - type: object - properties: - prop1: - description: Dumb Property - type: string - required: - - prop1 - additionalProperties: false required: - - id # wrong, should be omitted - - name - - sub + - prop1 additionalProperties: false - name: - description: The name given to a pet - type: string - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - items: - type: string - format: url - friend: - type: object - properties: - id: # wrong, should be omitted - description: Pet ID - type: integer - category: - description: Categories this pet belongs to - type: object - properties: - id: # wrong, should be omitted - description: Category ID - type: integer - name: - description: Category name - type: string - minLength: 1 - sub: - description: Test Sub Category - type: object - properties: - prop1: - description: Dumb Property - type: string - required: - - prop1 - additionalProperties: false - required: - - id # wrong, should be omitted - - name - - sub - additionalProperties: false - name: - description: The name given to a pet - type: string - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - items: - type: string - format: url - friend: {} - tags: - description: Tags attached to the pet - type: array - items: - type: object - properties: - id: # wrong, should be omitted - description: Tag ID - type: integer - name: - description: Tag name - type: string - minLength: 1 - required: - - id # wrong, should be omitted - - name - additionalProperties: false - status: - description: Pet status in the store - type: string - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string - required: - - name - - photoUrls - additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - tags: - description: Tags attached to the pet - type: array - items: - type: object - properties: - id: # wrong, should be omitted - description: Tag ID - type: integer - name: - description: Tag name - type: string - minLength: 1 - required: - - id # wrong, should be omitted - - name - additionalProperties: false - status: - description: Pet status in the store - type: string - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string - required: - - name - - photoUrls - additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - tags: - description: Tags attached to the pet - type: array - items: - type: object - properties: - id: # wrong, should be omitted - description: Tag ID - type: integer - name: - description: Tag name + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name type: string minLength: 1 required: - - id # wrong, should be omitted + - id - name additionalProperties: false status: @@ -1962,452 +1104,439 @@ paths: petType: description: Type of a pet type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number required: - name - photoUrls + - honeyPerDay additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - - type: object - properties: - id: # wrong, should be omitted - description: Tag ID - type: integer - name: - description: Tag name - type: string - minLength: 1 - required: - - id # wrong, should be omitted - - name - additionalProperties: false - username: - description: User supplied username - type: string - minLength: 4 - firstName: - description: User first name - type: string - minLength: 1 - lastName: - description: User last name - type: string - minLength: 1 - email: - description: User email address - type: string - format: email - password: - description: User password, MUST contain a mix of upper and lower case letters, as well as digits - type: string - format: password - pattern: /(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/ - minLength: 8 - phone: - description: User phone number in international format - type: string - pattern: /^\+(?:[0-9]-?){6,14}[0-9]$/ - userStatus: - description: User status - type: integer - required: - - pet - - username - - firstName - - lastName - - email - - password - - phone - - userStatus - additionalProperties: false - description: Created user object - required: true - /user/{username}: + '400': + description: Invalid tag value + security: + - petstore_auth: + - write:pets + - read:pets + /store/inventory: get: tags: - - user - summary: Get user by user name + - store + summary: Returns pet inventories by status + description: Returns a map of status codes to quantities + operationId: getInventory + responses: + '200': + description: successful operation + content: + application/json: + schema: + type: object + properties: {} + required: [] + additionalProperties: + type: integer + format: int32 + security: + - api_key: [] + /store/order: + post: + tags: + - store + summary: Place an order for a pet description: '' - operationId: getUserByName - parameters: - - name: username - in: path - description: 'The name that needs to be fetched. Use user1 for testing. ' - required: true - x-type: string - schema: - type: string + operationId: placeOrder responses: '200': description: successful operation content: application/json: - x-type: - id: number::integer - pet: - - $ref: '#/components/x-types/Pet' - - $ref: '#/components/x-types/Tag' - username: string::min(4) - firstName: string::min(1) - lastName: string::min(1) - email: string::email - password: string::password::pattern(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/)::min(8) - phone: string::pattern(/^\+(?:[0-9]-?){6,14}[0-9]$/) - userStatus: number::integer - $descriptions: - username: User supplied username - firstName: User first name - lastName: User last name - email: User email address - password: User password, MUST contain a mix of upper and lower case letters, as well as digits - phone: User phone number in international format - userStatus: User status schema: type: object properties: id: + description: Order ID type: integer - pet: - anyOf: - - type: object - properties: - id: - description: Pet ID - type: integer - category: - description: Categories this pet belongs to - type: object - properties: - id: - description: Category ID - type: integer - name: - description: Category name - type: string - minLength: 1 - sub: - description: Test Sub Category - type: object - properties: - prop1: - description: Dumb Property - type: string - required: - - prop1 - additionalProperties: false - required: - - id - - name - - sub - additionalProperties: false - name: - description: The name given to a pet - type: string - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - items: - type: string - format: url - friend: - type: object - properties: - id: - description: Pet ID - type: integer - category: - description: Categories this pet belongs to - type: object - properties: - id: - description: Category ID - type: integer - name: - description: Category name - type: string - minLength: 1 - sub: - description: Test Sub Category - type: object - properties: - prop1: - description: Dumb Property - type: string - required: - - prop1 - additionalProperties: false - required: - - id - - name - - sub - additionalProperties: false - name: - description: The name given to a pet - type: string - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - items: - type: string - format: url - friend: - type: object - properties: - id: - description: Pet ID - type: integer - category: - description: Categories this pet belongs to - type: object - properties: - id: - description: Category ID - type: integer - name: - description: Category name - type: string - minLength: 1 - sub: - description: Test Sub Category - type: object - properties: - prop1: - description: Dumb Property - type: string - required: - - prop1 - additionalProperties: false - required: - - id - - name - - sub - additionalProperties: false - name: - description: The name given to a pet - type: string - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - items: - type: string - format: url - friend: {} - tags: - description: Tags attached to the pet - type: array - items: - type: object - properties: - id: - description: Tag ID - type: integer - name: - description: Tag name - type: string - minLength: 1 - required: - - id - - name - additionalProperties: false - status: - description: Pet status in the store - type: string - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string - required: - - name - - photoUrls - additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - tags: - description: Tags attached to the pet - type: array - items: - type: object - properties: - id: - description: Tag ID - type: integer - name: - description: Tag name - type: string - minLength: 1 - required: - - id - - name - additionalProperties: false - status: - description: Pet status in the store - type: string - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string - required: - - name - - photoUrls - additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - tags: - description: Tags attached to the pet - type: array - items: - type: object - properties: - id: - description: Tag ID - type: integer - name: - description: Tag name - type: string - minLength: 1 - required: - - id - - name - additionalProperties: false - status: - description: Pet status in the store - type: string - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string - required: - - name - - photoUrls - additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - - type: object - properties: - id: - description: Tag ID - type: integer - name: - description: Tag name - type: string - minLength: 1 - required: - - id - - name - additionalProperties: false - username: - description: User supplied username - type: string - minLength: 4 - firstName: - description: User first name - type: string - minLength: 1 - lastName: - description: User last name + format: int64 + petId: + description: Pet ID + type: integer + format: int64 + quantity: + type: integer + format: int32 + minimum: 1 + shipDate: + description: Estimated ship date type: string - minLength: 1 - email: - description: User email address + format: date-time + status: + description: Order Status type: string - format: email - password: - description: User password, MUST contain a mix of upper and lower case letters, as well as digits + enum: + - placed + - approved + - delivered + complete: + description: Indicates whenever order was completed or not + type: boolean + required: + - id + - petId + - quantity + - shipDate + - status + - complete + additionalProperties: false + '400': + description: Invalid Order + content: + application/json: + example: + status: 400 + message: Invalid Order + requestBody: + content: + application/json: + schema: + type: object + properties: + quantity: + type: integer + format: int32 + minimum: 1 + shipDate: + description: Estimated ship date + type: string + format: date-time + status: + description: Order Status + type: string + enum: + - placed + - approved + - delivered + requestId: + description: Unique Request Id + type: string + required: + - quantity + - shipDate + - status + - requestId + additionalProperties: false + description: order placed for purchasing the pet + required: true + /store/order/{orderId}: + 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 + parameters: + - name: orderId + in: path + description: ID of pet that needs to be fetched + required: true + schema: + type: integer + format: int64 + minimum: 1 + maximum: 5 + responses: + '200': + description: successful operation + content: + application/json: + schema: + type: object + properties: + id: + description: Order ID + type: integer + format: int64 + petId: + description: Pet ID + type: integer + format: int64 + quantity: + type: integer + format: int32 + minimum: 1 + shipDate: + description: Estimated ship date type: string - format: password - pattern: /(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/ - minLength: 8 - phone: - description: User phone number in international format + format: date-time + status: + description: Order Status type: string - pattern: /^\+(?:[0-9]-?){6,14}[0-9]$/ - userStatus: - description: User status - type: integer + enum: + - placed + - approved + - delivered + complete: + description: Indicates whenever order was completed or not + type: boolean required: - id - - pet - - username - - firstName - - lastName - - email - - password - - phone - - userStatus + - petId + - quantity + - shipDate + - status + - complete additionalProperties: false '400': - description: Invalid username supplied + description: Invalid ID supplied '404': - description: User not found - put: + description: Order not found + delete: tags: - - user - summary: Updated user - description: This can only be done by the logged in user. - operationId: updateUser + - 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 parameters: - - name: username + - name: orderId in: path - description: name that need to be deleted + description: ID of the order that needs to be deleted required: true - x-type: string schema: type: string + minLength: 1 responses: '400': - description: Invalid user supplied + description: Invalid ID supplied '404': - description: User not found + description: Order not found + /store/subscribe: + post: + tags: + - store + summary: Subscribe to the Store events + description: Add subscription for a store events + requestBody: + content: + application/json: + schema: + type: object + properties: + callbackUrl: + description: This URL will be called by the server when the desired event will occur + type: string + format: uri + eventName: + description: Event name for the subscription + type: string + enum: + - orderInProgress + - orderShipped + - orderDelivered + required: + - callbackUrl + - eventName + additionalProperties: false + responses: + '201': + description: Subscription added + content: + application/json: + schema: + type: object + properties: + subscriptionId: + type: string + required: + - subscriptionId + additionalProperties: false + callbacks: + orderInProgress: + '{$request.body#/callbackUrl}?event={$request.body#/eventName}': + servers: + - url: //callback-url.path-level/v1 + description: Path level server 1 + - url: //callback-url.path-level/v2 + description: Path level server 2 + post: + summary: Order in Progress (Summary) + description: A callback triggered every time an Order is updated status to "inProgress" (Description) + externalDocs: + description: Find out more + url: https://more-details.com/demo + requestBody: + content: + application/json: + schema: + type: object + properties: + orderId: + type: string + timestamp: + type: string + format: date-time + status: + type: string + required: + - orderId + - timestamp + - status + additionalProperties: false + responses: + '200': + description: Callback successfully processed and no retries will be performed + content: + application/json: + schema: + type: object + properties: + someProp: + type: string + required: + - someProp + additionalProperties: false + '299': + description: Response for cancelling subscription + '500': + description: Callback processing failed and retries will be performed + x-codeSamples: + - lang: C# + source: | + PetStore.v1.Pet pet = new PetStore.v1.Pet(); + pet.setApiKey("your api key"); + pet.petType = PetStore.v1.Pet.TYPE_DOG; + pet.name = "Rex"; + // set other fields + PetStoreResponse response = pet.create(); + if (response.statusCode == HttpStatusCode.Created) + { + // Successfully created + } + else + { + // Something wrong -- check response for errors + Console.WriteLine(response.getRawResponse()); + } + - lang: PHP + source: | + $form = new \PetStore\Entities\Pet(); + $form->setPetType("Dog"); + $form->setName("Rex"); + // set other fields + try { + $pet = $client->pets()->create($form); + } catch (UnprocessableEntityException $e) { + var_dump($e->getErrors()); + } + put: + description: Order in Progress (Only Description) + servers: + - url: //callback-url.operation-level/v1 + description: Operation level server 1 (Operation override) + - url: //callback-url.operation-level/v2 + description: Operation level server 2 (Operation override) + requestBody: + content: + application/json: + schema: + type: object + properties: + orderId: + type: string + timestamp: + type: string + format: date-time + status: + type: string + required: + - orderId + - timestamp + - status + additionalProperties: false + responses: + '200': + description: Callback successfully processed and no retries will be performed + content: + application/json: + schema: + type: object + properties: + someProp: + type: string + required: + - someProp + additionalProperties: false + orderShipped: + '{$request.body#/callbackUrl}?event={$request.body#/eventName}': + post: + description: | + Very long description + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor + incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis + nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. + Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu + fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in + culpa qui officia deserunt mollit anim id est laborum. + requestBody: + content: + application/json: + schema: + type: object + properties: + orderId: + type: string + timestamp: + type: string + format: date-time + estimatedDeliveryDate: + type: string + format: date-time + required: + - orderId + - timestamp + - estimatedDeliveryDate + additionalProperties: false + responses: + '200': + description: Callback successfully processed and no retries will be performed + orderDelivered: + http://notificationServer.com?url={$request.body#/callbackUrl}&event={$request.body#/eventName}: + post: + deprecated: true + summary: Order delivered + description: A callback triggered every time an Order is delivered to the recipient + requestBody: + content: + application/json: + schema: + type: object + properties: + orderId: + type: string + timestamp: + type: string + format: date-time + required: + - orderId + - timestamp + additionalProperties: false + responses: + '200': + description: Callback successfully processed and no retries will be performed + /user: + post: + tags: + - user + summary: Create user + description: This can only be done by the logged in user. + operationId: createUser + responses: + default: + description: successful operation requestBody: content: application/json: - x-type: - $omit: - - id - id: number::integer - pet: - - $ref: '#/components/x-types/Pet' - - $ref: '#/components/x-types/Tag' - username: string::min(4) - firstName: string::min(1) - lastName: string::min(1) - email: string::email - password: string::password::pattern(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/)::min(8) - phone: string::pattern(/^\+(?:[0-9]-?){6,14}[0-9]$/) - userStatus: number::integer - $descriptions: - username: User supplied username - firstName: User first name - lastName: User last name - email: User email address - password: User password, MUST contain a mix of upper and lower case letters, as well as digits - phone: User phone number in international format - userStatus: User status schema: type: object properties: @@ -2415,16 +1544,18 @@ paths: anyOf: - type: object properties: - id: # wrong, should be omitted + id: description: Pet ID type: integer + format: int64 category: description: Categories this pet belongs to type: object properties: - id: # wrong, should be omitted + id: description: Category ID type: integer + format: int64 name: description: Category name type: string @@ -2440,7 +1571,7 @@ paths: - prop1 additionalProperties: false required: - - id # wrong, should be omitted + - id - name - sub additionalProperties: false @@ -2453,178 +1584,192 @@ paths: items: type: string format: url - friend: - type: object - properties: - id: # wrong, should be omitted - description: Pet ID - type: integer - category: - description: Categories this pet belongs to - type: object - properties: - id: # wrong, should be omitted - description: Category ID - type: integer - name: - description: Category name - type: string - minLength: 1 - sub: - description: Test Sub Category - type: object - properties: - prop1: - description: Dumb Property - type: string - required: - - prop1 - additionalProperties: false + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string required: - - id # wrong, should be omitted - - name - - sub + - prop1 additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 name: - description: The name given to a pet + description: Category name type: string - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - items: - type: string - format: url - friend: + minLength: 1 + sub: + description: Test Sub Category type: object properties: - id: # wrong, should be omitted - description: Pet ID - type: integer - category: - description: Categories this pet belongs to - type: object - properties: - id: # wrong, should be omitted - description: Category ID - type: integer - name: - description: Category name - type: string - minLength: 1 - sub: - description: Test Sub Category - type: object - properties: - prop1: - description: Dumb Property - type: string - required: - - prop1 - additionalProperties: false - required: - - id # wrong, should be omitted - - name - - sub - additionalProperties: false - name: - description: The name given to a pet - type: string - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - items: - type: string - format: url - friend: {} - tags: - description: Tags attached to the pet - type: array - items: - type: object - properties: - id: # wrong, should be omitted - description: Tag ID - type: integer - name: - description: Tag name - type: string - minLength: 1 - required: - - id # wrong, should be omitted - - name - additionalProperties: false - status: - description: Pet status in the store - type: string - enum: - - available - - pending - - sold - petType: - description: Type of a pet + prop1: + description: Dumb Property type: string required: - - name - - photoUrls + - prop1 additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - tags: - description: Tags attached to the pet - type: array - items: - type: object - properties: - id: # wrong, should be omitted - description: Tag ID - type: integer - name: - description: Tag name - type: string - minLength: 1 - required: - - id # wrong, should be omitted - - name - additionalProperties: false - status: - description: Pet status in the store - type: string - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string required: + - id - name - - photoUrls + - sub additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} tags: description: Tags attached to the pet type: array items: type: object properties: - id: # wrong, should be omitted + id: description: Tag ID type: integer + format: int64 name: description: Tag name type: string minLength: 1 required: - - id # wrong, should be omitted + - id - name additionalProperties: false status: @@ -2637,27 +1782,28 @@ paths: petType: description: Type of a pet type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number required: - name - photoUrls + - honeyPerDay additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - type: object properties: - id: # wrong, should be omitted + id: description: Tag ID type: integer + format: int64 name: description: Tag name type: string minLength: 1 required: - - id # wrong, should be omitted + - id - name additionalProperties: false username: @@ -2689,6 +1835,7 @@ paths: userStatus: description: User status type: integer + format: int32 required: - pet - username @@ -2699,337 +1846,291 @@ paths: - phone - userStatus additionalProperties: false - description: Updated user object + description: Created user object required: true - delete: + /user/{username}: + get: tags: - user - summary: Delete user - description: This can only be done by the logged in user. - operationId: deleteUser + summary: Get user by user name + description: '' + operationId: getUserByName parameters: - name: username in: path - description: The name that needs to be deleted + description: 'The name that needs to be fetched. Use user1 for testing. ' required: true - x-type: string - schema: - type: string - responses: - '400': - description: Invalid username supplied - '404': - description: User not found - /user/createWithArray: - post: - tags: - - user - summary: Creates list of users with given input array - description: '' - operationId: createUsersWithArrayInput - responses: - default: - description: successful operation - requestBody: - $ref: '#/components/requestBodies/UserArray' - /user/createWithList: - post: - tags: - - user - summary: Creates list of users with given input array - description: '' - operationId: createUsersWithListInput - responses: - default: - description: successful operation - requestBody: - $ref: '#/components/requestBodies/UserArray' - /user/login: - get: - tags: - - user - summary: Logs user into the system - description: '' - operationId: loginUser - parameters: - - name: username - in: query - description: The user name for login - required: true - x-type: string - schema: - type: string - - name: password - in: query - description: The password for login in clear text - required: true - x-type: string schema: type: string responses: '200': description: successful operation - headers: - X-Rate-Limit: - description: calls per hour allowed by the user - schema: - type: integer - format: int32 - X-Expires-After: - description: date in UTC when token expires - schema: - type: string - format: date-time content: application/json: - examples: - response: - value: OK - x-type: string - schema: - type: string - application/xml: - examples: - response: - value: OK - x-type: string schema: - type: string - text/plain: - examples: - response: - value: OK - '400': - description: Invalid username/password supplied - /user/logout: - get: - tags: - - user - summary: Logs out current logged in user session - description: '' - operationId: logoutUser - responses: - default: - description: successful operation -x-webhooks: - newPet: - post: - summary: New pet - description: Information about a new pet in the systems - operationId: newPet - tags: - - pet - requestBody: - content: - application/json: - x-type: - $omit: - - id - id: - - $ref: '#/components/x-types/Id' - - undefined - category: - - $ref: '#/components/x-types/Category' - - undefined - name: string - photoUrls: - $array: string::url - friend: - - $ref: '#/components/x-types/Pet' - - undefined - tags: - - $array: - $ref: '#/components/x-types/Tag' - - undefined - status: - - - available - - pending - - sold - - undefined - petType: - - string - - undefined - $discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - $descriptions: - id: Pet ID - category: Categories this pet belongs to - name: The name given to a pet - photoUrls: The list of URL to a cute photos featuring pet - tags: Tags attached to the pet - status: Pet status in the store - petType: Type of a pet - schema: - type: object - properties: - category: - description: Categories this pet belongs to - type: object - properties: - id: # wrong, should be omitted - description: Category ID - type: integer - name: - description: Category name - type: string - minLength: 1 - sub: - description: Test Sub Category - type: object - properties: - prop1: - description: Dumb Property - type: string - required: - - prop1 - additionalProperties: false - required: - - id # wrong, should be omitted - - name - - sub - additionalProperties: false - name: - description: The name given to a pet - type: string - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - items: - type: string - format: url - friend: - type: object - properties: - id: # wrong, should be omitted - description: Pet ID - type: integer - category: - description: Categories this pet belongs to - type: object - properties: - id: # wrong, should be omitted - description: Category ID - type: integer - name: - description: Category name - type: string - minLength: 1 - sub: - description: Test Sub Category - type: object - properties: - prop1: - description: Dumb Property - type: string - required: - - prop1 - additionalProperties: false - required: - - id # wrong, should be omitted - - name - - sub - additionalProperties: false - name: - description: The name given to a pet - type: string - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - items: - type: string - format: url - friend: - type: object - properties: - id: # wrong, should be omitted - description: Pet ID - type: integer - category: - description: Categories this pet belongs to - type: object - properties: - id: # wrong, should be omitted - description: Category ID - type: integer - name: - description: Category name - type: string - minLength: 1 - sub: - description: Test Sub Category - type: object - properties: - prop1: - description: Dumb Property - type: string - required: - - prop1 - additionalProperties: false - required: - - id # wrong, should be omitted - - name - - sub - additionalProperties: false - name: - description: The name given to a pet - type: string - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - items: - type: string - format: url - friend: {} - tags: - description: Tags attached to the pet - type: array - items: + type: object + properties: + id: + type: integer + format: int64 + pet: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to type: object properties: - id: # wrong, should be omitted - description: Tag ID + id: + description: Category ID type: integer + format: int64 name: - description: Tag name + description: Category name type: string minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false required: - - id # wrong, should be omitted + - id - name + - sub additionalProperties: false - status: - description: Pet status in the store - type: string - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string - required: - - name - - photoUrls - additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - tags: - description: Tags attached to the pet - type: array - items: - type: object + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + - type: object properties: - id: # wrong, should be omitted + id: description: Tag ID type: integer + format: int64 name: description: Tag name type: string @@ -3038,628 +2139,16706 @@ x-webhooks: - id - name additionalProperties: false - status: - description: Pet status in the store - type: string - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string - required: - - name - - photoUrls - additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - tags: - description: Tags attached to the pet - type: array - items: - type: object - properties: - id: # wrong, should be omitted - description: Tag ID - type: integer - name: - description: Tag name - type: string - minLength: 1 - required: - - id - - name - additionalProperties: false - status: - description: Pet status in the store - type: string - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string - required: - - name - - photoUrls - additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - responses: - '200': - description: Return a 200 status to indicate that the data was received successfully -components: - schemas: - ApiResponse: - type: object - properties: - code: - type: integer - format: int32 - type: - type: string - message: - type: string - Cat: - description: A representation of a cat - allOf: - - $ref: '#/components/schemas/Pet' - - type: object - properties: - huntingSkill: - type: string - description: The measured skill for hunting - default: lazy - example: adventurous - enum: - - clueless - - lazy - - adventurous - - aggressive - required: - - huntingSkill - Category: - type: object - properties: - id: - description: Category ID - allOf: - - $ref: '#/components/schemas/Id' - name: - description: Category name - type: string - minLength: 1 - sub: - description: Test Sub Category - type: object - properties: - prop1: - type: string - description: Dumb Property - xml: - name: Category - Dog: - description: A representation of a dog - allOf: - - $ref: '#/components/schemas/Pet' - - type: object - properties: - packSize: - type: integer - format: int32 - description: The size of the pack the dog is from - default: 1 - minimum: 1 - required: - - packSize - HoneyBee: - description: A representation of a honey bee - allOf: - - $ref: '#/components/schemas/Pet' - - type: object - properties: - honeyPerDay: - type: number - description: Average amount of honey produced per day in ounces - example: 3.14 - multipleOf: 0.01 - required: - - honeyPerDay - Id: - type: integer - format: int64 - readOnly: true - Order: - type: object - properties: - id: - description: Order ID - allOf: - - $ref: '#/components/schemas/Id' - petId: - description: Pet ID - allOf: - - $ref: '#/components/schemas/Id' - quantity: - type: integer - format: int32 - minimum: 1 - default: 1 - shipDate: - description: Estimated ship date - type: string - format: date-time - status: - type: string - description: Order Status - enum: - - placed - - approved - - delivered - complete: - description: Indicates whenever order was completed or not - type: boolean - default: false - readOnly: true - requestId: - description: Unique Request Id - type: string - writeOnly: true - xml: - name: Order - Pet: - type: object - required: - - name - - photoUrls - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - properties: - id: - externalDocs: - description: Find more info here - url: https://example.com - description: Pet ID - allOf: - - $ref: '#/components/schemas/Id' - category: - description: Categories this pet belongs to - allOf: - - $ref: '#/components/schemas/Category' - name: - description: The name given to a pet - type: string - example: Guru - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - maxItems: 20 - xml: - name: photoUrl - wrapped: true - items: - type: string - format: url - friend: - allOf: - - $ref: '#/components/schemas/Pet' - tags: - description: Tags attached to the pet - type: array - minItems: 1 - xml: - name: tag - wrapped: true - items: - $ref: '#/components/schemas/Tag' - status: - type: string - description: Pet status in the store - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string - xml: - name: Pet - Tag: - type: object - properties: - id: - description: Tag ID - allOf: - - $ref: '#/components/schemas/Id' - name: - description: Tag name - type: string - minLength: 1 - xml: - name: Tag - User: - type: object - properties: - id: - $ref: '#/components/schemas/Id' - pet: - oneOf: - - $ref: '#/components/schemas/Pet' - - $ref: '#/components/schemas/Tag' - username: - description: User supplied username - type: string - minLength: 4 - example: John78 - firstName: - description: User first name - type: string - minLength: 1 - example: John - lastName: - description: User last name - type: string - minLength: 1 - example: Smith - email: - description: User email address - type: string - format: email - example: john.smith@example.com - password: - type: string - description: User password, MUST contain a mix of upper and lower case letters, as well as digits - format: password - minLength: 8 - pattern: /(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/ - example: drowssaP123 - phone: - description: User phone number in international format - type: string - pattern: /^\+(?:[0-9]-?){6,14}[0-9]$/ - example: +1-202-555-0192 - userStatus: - description: User status - type: integer - format: int32 - xml: - name: User - requestBodies: - Pet: - content: - application/json: - x-type: - $omit: - - id - id: - - $ref: '#/components/x-types/Id' - - undefined - category: - - $ref: '#/components/x-types/Category' - - undefined - name: string - photoUrls: - $array: string::url - friend: - - $ref: '#/components/x-types/Pet' - - undefined - tags: - - $array: - $ref: '#/components/x-types/Tag' - - undefined - status: - - - available - - pending - - sold - - undefined - petType: - - string - - undefined - $discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - $descriptions: - id: Pet ID - category: Categories this pet belongs to - name: The name given to a pet - photoUrls: The list of URL to a cute photos featuring pet - tags: Tags attached to the pet - status: Pet status in the store - petType: Type of a pet - schema: - type: object - properties: - category: - description: Categories this pet belongs to - type: object - properties: - id: # wrong, should be omitted - description: Category ID - type: integer - name: - description: Category name + username: + description: User supplied username + type: string + minLength: 4 + firstName: + description: User first name type: string minLength: 1 - sub: - description: Test Sub Category - type: object - properties: - prop1: - description: Dumb Property - type: string - required: - - prop1 - additionalProperties: false + lastName: + description: User last name + type: string + minLength: 1 + email: + description: User email address + type: string + format: email + password: + description: User password, MUST contain a mix of upper and lower case letters, as well as digits + type: string + format: password + pattern: /(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/ + minLength: 8 + phone: + description: User phone number in international format + type: string + pattern: /^\+(?:[0-9]-?){6,14}[0-9]$/ + userStatus: + description: User status + type: integer + format: int32 required: - id - - name - - sub + - pet + - username + - firstName + - lastName + - email + - password + - phone + - userStatus additionalProperties: false - name: - description: The name given to a pet - type: string - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - items: - type: string - format: url - friend: - type: object - properties: - id: # wrong, should be omitted - description: Pet ID - type: integer - category: - description: Categories this pet belongs to - type: object - properties: - id: # wrong, should be omitted - description: Category ID - type: integer - name: - description: Category name - type: string - minLength: 1 - sub: - description: Test Sub Category - type: object - properties: - prop1: - description: Dumb Property - type: string - required: - - prop1 - additionalProperties: false - required: - - id - - name - - sub - additionalProperties: false - name: + '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 + parameters: + - name: username + in: path + description: name that need to be deleted + required: true + schema: + type: string + responses: + '400': + description: Invalid user supplied + '404': + description: User not found + requestBody: + content: + application/json: + schema: + type: object + properties: + pet: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + - type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + username: + description: User supplied username + type: string + minLength: 4 + firstName: + description: User first name + type: string + minLength: 1 + lastName: + description: User last name + type: string + minLength: 1 + email: + description: User email address + type: string + format: email + password: + description: User password, MUST contain a mix of upper and lower case letters, as well as digits + type: string + format: password + pattern: /(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/ + minLength: 8 + phone: + description: User phone number in international format + type: string + pattern: /^\+(?:[0-9]-?){6,14}[0-9]$/ + userStatus: + description: User status + type: integer + format: int32 + required: + - pet + - username + - firstName + - lastName + - email + - password + - phone + - userStatus + additionalProperties: false + description: Updated user object + required: true + delete: + tags: + - user + summary: Delete user + description: This can only be done by the logged in user. + operationId: deleteUser + parameters: + - name: username + in: path + description: The name that needs to be deleted + required: true + schema: + type: string + responses: + '400': + description: Invalid username supplied + '404': + description: User not found + /user/createWithArray: + post: + tags: + - user + summary: Creates list of users with given input array + description: '' + operationId: createUsersWithArrayInput + responses: + default: + description: successful operation + requestBody: + $ref: '#/components/requestBodies/UserArray' + /user/createWithList: + post: + tags: + - user + summary: Creates list of users with given input array + description: '' + operationId: createUsersWithListInput + responses: + default: + description: successful operation + requestBody: + $ref: '#/components/requestBodies/UserArray' + /user/login: + get: + tags: + - user + summary: Logs user into the system + description: '' + operationId: loginUser + parameters: + - name: username + in: query + description: The user name for login + required: true + schema: + type: string + - name: password + in: query + description: The password for login in clear text + required: true + schema: + type: string + responses: + '200': + description: successful operation + headers: + X-Rate-Limit: + description: calls per hour allowed by the user + schema: + type: integer + format: int32 + X-Expires-After: + description: date in UTC when token expires + schema: + type: string + format: date-time + content: + application/json: + examples: + response: + value: OK + schema: + type: string + application/xml: + examples: + response: + value: OK + schema: + type: string + text/plain: + examples: + response: + value: OK + '400': + description: Invalid username/password supplied + /user/logout: + get: + tags: + - user + summary: Logs out current logged in user session + description: '' + operationId: logoutUser + responses: + default: + description: successful operation +x-webhooks: + newPet: + post: + summary: New pet + description: Information about a new pet in the systems + operationId: newPet + tags: + - pet + requestBody: + content: + application/json: + schema: + anyOf: + - type: object + properties: + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + responses: + '200': + description: Return a 200 status to indicate that the data was received successfully +components: + requestBodies: + Pet: + content: + application/json: + schema: + anyOf: + - type: object + properties: + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: description: The name given to a pet type: string - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - items: + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + UserArray: + content: + application/json: + schema: + type: array + items: + type: object + properties: + pet: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + - type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + username: + description: User supplied username + type: string + minLength: 4 + firstName: + description: User first name + type: string + minLength: 1 + lastName: + description: User last name + type: string + minLength: 1 + email: + description: User email address + type: string + format: email + password: + description: User password, MUST contain a mix of upper and lower case letters, as well as digits + type: string + format: password + pattern: /(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/ + minLength: 8 + phone: + description: User phone number in international format + type: string + pattern: /^\+(?:[0-9]-?){6,14}[0-9]$/ + userStatus: + description: User status + type: integer + format: int32 + required: + - pet + - username + - firstName + - lastName + - email + - password + - phone + - userStatus + additionalProperties: false + description: List of user object + required: true + securitySchemes: + petstore_auth: + description: | + Get access to data while protecting your account credentials. + OAuth2 is also a safer and more secure way to give you access. + type: oauth2 + flows: + implicit: + authorizationUrl: http://petstore.swagger.io/api/oauth/dialog + scopes: + write:pets: modify pets in your account + read:pets: read your pets + api_key: + description: | + For this sample, you can use the api key `special-key` to test the authorization filters. + type: apiKey + name: api_key + in: header + examples: + Order: + value: + quantity: 1 + shipDate: '2018-10-19T16:46:45Z' + status: placed + complete: false + schemas: + ApiResponse: + type: object + properties: + code: + type: integer + format: int32 + type: + type: string + message: + type: string + required: + - code + - type + - message + additionalProperties: false + Cat: + type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + Category: + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + Dog: + type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + HoneyBee: + type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + Id: + type: integer + format: int64 + Order: + type: object + properties: + id: + description: Order ID + type: integer + format: int64 + petId: + description: Pet ID + type: integer + format: int64 + quantity: + type: integer + format: int32 + minimum: 1 + shipDate: + description: Estimated ship date + type: string + format: date-time + status: + description: Order Status + type: string + enum: + - placed + - approved + - delivered + complete: + description: Indicates whenever order was completed or not + type: boolean + requestId: + description: Unique Request Id + type: string + required: + - id + - petId + - quantity + - shipDate + - status + - complete + - requestId + additionalProperties: false + Pet: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - {} + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - {} + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - type: object + properties: + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + petType: + type: string + enum: + - bee + required: + - honeyPerDay + - petType + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + petType: + type: string + enum: + - cat + required: + - huntingSkill + - petType + additionalProperties: false + - type: object + properties: + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + petType: + type: string + enum: + - dog + required: + - packSize + - petType + additionalProperties: false + - {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + Base_Pet: + type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + required: + - name + - photoUrls + additionalProperties: false + Tag: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + User: + type: object + properties: + id: + type: integer + format: int64 + pet: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name type: string - format: url - friend: + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: type: object properties: - id: # wrong, should be omitted - description: Pet ID + id: + description: Tag ID type: integer - category: - description: Categories this pet belongs to - type: object - properties: - id: # wrong, should be omitted - description: Category ID - type: integer - name: - description: Category name + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: type: string - minLength: 1 - sub: - description: Test Sub Category + format: url + friend: + anyOf: + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 + required: + - name + - photoUrls + - packSize + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + tags: + description: Tags attached to the pet + type: array + items: type: object properties: - prop1: - description: Dumb Property + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name type: string + minLength: 1 required: - - prop1 + - id + - name additionalProperties: false - required: - - id - - name - - sub - additionalProperties: false - name: - description: The name given to a pet - type: string - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - items: + status: + description: Pet status in the store type: string - format: url - friend: {} - tags: - description: Tags attached to the pet - type: array - items: - type: object - properties: - id: # wrong, should be omitted - description: Tag ID - type: integer - name: - description: Tag name - type: string - minLength: 1 - required: - - id - - name - additionalProperties: false - status: - description: Pet status in the store - type: string - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string - required: - - name - - photoUrls - additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - tags: - description: Tags attached to the pet - type: array - items: - type: object - properties: - id: # wrong, should be omitted - description: Tag ID - type: integer - name: - description: Tag name + enum: + - available + - pending + - sold + petType: + description: Type of a pet type: string - minLength: 1 + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 required: - - id - name + - photoUrls + - packSize additionalProperties: false - status: - description: Pet status in the store - type: string - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string - required: - - name - - photoUrls - additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - tags: - description: Tags attached to the pet - type: array - items: - type: object - properties: - id: # wrong, should be omitted - description: Tag ID - type: integer - name: - description: Tag name - type: string - minLength: 1 - required: - - id - - name - additionalProperties: false - status: - description: Pet status in the store - type: string - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string - required: - - name - - photoUrls - additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - UserArray: - content: - application/json: - x-type: - $array: - $omit: - - id - id: number::integer - pet: - - $ref: '#/components/x-types/Pet' - - $ref: '#/components/x-types/Tag' - username: string::min(4) - firstName: string::min(1) - lastName: string::min(1) - email: string::email - password: string::password::pattern(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/)::min(8) - phone: string::pattern(/^\+(?:[0-9]-?){6,14}[0-9]$/) - userStatus: number::integer - $descriptions: - username: User supplied username - firstName: User first name - lastName: User last name - email: User email address - password: User password, MUST contain a mix of upper and lower case letters, as well as digits - phone: User phone number in international format - userStatus: User status - schema: - type: array - items: - type: object - properties: - pet: - anyOf: - type: object properties: - id: # wrong, should be omitted + id: description: Pet ID type: integer + format: int64 category: description: Categories this pet belongs to type: object properties: - id: # wrong, should be omitted + id: description: Category ID type: integer + format: int64 name: description: Category name type: string @@ -3689,59 +18868,190 @@ components: type: string format: url friend: - type: object - properties: - id: # wrong, should be omitted - description: Pet ID - type: integer - category: - description: Categories this pet belongs to - type: object + anyOf: + - type: object properties: - id: # wrong, should be omitted - description: Category ID + id: + description: Pet ID type: integer + format: int64 + category: + description: Categories this pet belongs to + type: object + properties: + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name + type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false + required: + - id + - name + - sub + additionalProperties: false name: - description: Category name + description: The name given to a pet type: string - minLength: 1 - sub: - description: Test Sub Category + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - cat + huntingSkill: + description: The measured skill for hunting + type: string + enum: + - clueless + - lazy + - adventurous + - aggressive + required: + - name + - photoUrls + - huntingSkill + additionalProperties: false + - type: object + properties: + id: + description: Pet ID + type: integer + format: int64 + category: + description: Categories this pet belongs to type: object properties: - prop1: - description: Dumb Property + id: + description: Category ID + type: integer + format: int64 + name: + description: Category name type: string + minLength: 1 + sub: + description: Test Sub Category + type: object + properties: + prop1: + description: Dumb Property + type: string + required: + - prop1 + additionalProperties: false required: - - prop1 + - id + - name + - sub additionalProperties: false + name: + description: The name given to a pet + type: string + photoUrls: + description: The list of URL to a cute photos featuring pet + type: array + items: + type: string + format: url + friend: {} + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store + type: string + enum: + - available + - pending + - sold + petType: + description: Type of a pet + type: string + enum: + - dog + packSize: + description: The size of the pack the dog is from + type: integer + format: int32 + minimum: 1 required: - - id - name - - sub + - photoUrls + - packSize additionalProperties: false - name: - description: The name given to a pet - type: string - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - items: - type: string - format: url - friend: - type: object + - type: object properties: - id: # wrong, should be omitted + id: description: Pet ID type: integer + format: int64 category: description: Categories this pet belongs to type: object properties: - id: # wrong, should be omitted + id: description: Category ID type: integer + format: int64 name: description: Category name type: string @@ -3777,9 +19087,10 @@ components: items: type: object properties: - id: # wrong, should be omitted + id: description: Tag ID type: integer + format: int64 name: description: Tag name type: string @@ -3798,62 +19109,26 @@ components: petType: description: Type of a pet type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number required: - name - photoUrls + - honeyPerDay additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - tags: - description: Tags attached to the pet - type: array - items: - type: object - properties: - id: # wrong, should be omitted - description: Tag ID - type: integer - name: - description: Tag name - type: string - minLength: 1 - required: - - id - - name - additionalProperties: false - status: - description: Pet status in the store - type: string - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string - required: - - name - - photoUrls - additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' tags: description: Tags attached to the pet type: array items: type: object properties: - id: # wrong, should be omitted + id: description: Tag ID type: integer + format: int64 name: description: Tag name type: string @@ -3872,217 +19147,109 @@ components: petType: description: Type of a pet type: string + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number required: - name - photoUrls + - honeyPerDay additionalProperties: false - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - - type: object - properties: - id: # wrong, should be omitted - description: Tag ID - type: integer - name: - description: Tag name - type: string - minLength: 1 - required: - - id - - name - additionalProperties: false - username: - description: User supplied username + tags: + description: Tags attached to the pet + type: array + items: + type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name + type: string + minLength: 1 + required: + - id + - name + additionalProperties: false + status: + description: Pet status in the store type: string - minLength: 4 - firstName: - description: User first name + enum: + - available + - pending + - sold + petType: + description: Type of a pet type: string - minLength: 1 - lastName: - description: User last name + enum: + - bee + honeyPerDay: + description: Average amount of honey produced per day in ounces + type: number + required: + - name + - photoUrls + - honeyPerDay + additionalProperties: false + - type: object + properties: + id: + description: Tag ID + type: integer + format: int64 + name: + description: Tag name type: string minLength: 1 - email: - description: User email address - type: string - format: email - password: - description: User password, MUST contain a mix of upper and lower case letters, as well as digits - type: string - format: password - pattern: /(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/ - minLength: 8 - phone: - description: User phone number in international format - type: string - pattern: /^\+(?:[0-9]-?){6,14}[0-9]$/ - userStatus: - description: User status - type: integer required: - - pet - - username - - firstName - - lastName - - email - - password - - phone - - userStatus + - id + - name additionalProperties: false - description: List of user object - required: true - securitySchemes: - petstore_auth: - description: | - Get access to data while protecting your account credentials. - OAuth2 is also a safer and more secure way to give you access. - type: oauth2 - flows: - implicit: - authorizationUrl: http://petstore.swagger.io/api/oauth/dialog - scopes: - write:pets: modify pets in your account - read:pets: read your pets - api_key: - description: | - For this sample, you can use the api key `special-key` to test the authorization filters. - type: apiKey - name: api_key - in: header - examples: - Order: - value: - quantity: 1 - shipDate: '2018-10-19T16:46:45Z' - status: placed - complete: false - x-types: - ApiResponse: - code: number::integer - type: string - message: string - Cat: - $and: - - $ref: '#/components/x-types/Pet' - - huntingSkill: - - clueless - - lazy - - adventurous - - aggressive - $descriptions: - huntingSkill: The measured skill for hunting - Category: - id: number::integer - name: string::min(1) - sub: - prop1: string - $descriptions: - prop1: Dumb Property - $descriptions: - id: Category ID - name: Category name - sub: Test Sub Category - Dog: - $and: - - $ref: '#/components/x-types/Pet' - - packSize: number::integer::min(1) - $descriptions: - packSize: The size of the pack the dog is from - HoneyBee: - $and: - - $ref: '#/components/x-types/Pet' - - honeyPerDay: number - $descriptions: - honeyPerDay: Average amount of honey produced per day in ounces - Id: number::integer - Order: - id: number::integer - petId: number::integer - quantity: number::integer::min(1) - shipDate: string::date-time - status: - - placed - - approved - - delivered - complete: boolean - requestId: string - $descriptions: - id: Order ID - petId: Pet ID - shipDate: Estimated ship date - status: Order Status - complete: Indicates whenever order was completed or not - requestId: Unique Request Id - Pet: - id: - - $ref: '#/components/x-types/Id' - - undefined - category: - - $ref: '#/components/x-types/Category' - - undefined - name: string - photoUrls: - $array: string::url - friend: - - $ref: '#/components/x-types/Pet' - - undefined - tags: - - $array: - $ref: '#/components/x-types/Tag' - - undefined - status: - - - available - - pending - - sold - - undefined - petType: - - string - - undefined - $discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - $descriptions: - id: Pet ID - category: Categories this pet belongs to - name: The name given to a pet - photoUrls: The list of URL to a cute photos featuring pet - tags: Tags attached to the pet - status: Pet status in the store - petType: Type of a pet - Tag: - id: number::integer - name: string::min(1) - $descriptions: - id: Tag ID - name: Tag name - User: - id: number::integer - pet: - - $ref: '#/components/x-types/Pet' - - $ref: '#/components/x-types/Tag' - username: string::min(4) - firstName: string::min(1) - lastName: string::min(1) - email: string::email - password: string::password::pattern(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/)::min(8) - phone: string::pattern(/^\+(?:[0-9]-?){6,14}[0-9]$/) - userStatus: number::integer - $descriptions: - username: User supplied username - firstName: User first name - lastName: User last name - email: User email address - password: User password, MUST contain a mix of upper and lower case letters, as well as digits - phone: User phone number in international format - userStatus: User status + username: + description: User supplied username + type: string + minLength: 4 + firstName: + description: User first name + type: string + minLength: 1 + lastName: + description: User last name + type: string + minLength: 1 + email: + description: User email address + type: string + format: email + password: + description: User password, MUST contain a mix of upper and lower case letters, as well as digits + type: string + format: password + pattern: /(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/ + minLength: 8 + phone: + description: User phone number in international format + type: string + pattern: /^\+(?:[0-9]-?){6,14}[0-9]$/ + userStatus: + description: User status + type: integer + format: int32 + required: + - id + - pet + - username + - firstName + - lastName + - email + - password + - phone + - userStatus + additionalProperties: false x-tagGroups: - name: General tags: diff --git a/applications/__tests__/file-snapshots/pets-to-x-types.yaml b/applications/__tests__/file-snapshots/pets-to-x-types.yaml index feeb700..1167367 100644 --- a/applications/__tests__/file-snapshots/pets-to-x-types.yaml +++ b/applications/__tests__/file-snapshots/pets-to-x-types.yaml @@ -83,7 +83,7 @@ paths: in: cookie description: Some cookie required: true - x-type: number::integer + x-type: number::int64 post: tags: - pet @@ -173,7 +173,7 @@ paths: description: ID of pet to return required: true deprecated: true - x-type: number::integer + x-type: number::int64 responses: '200': description: successful operation @@ -198,7 +198,7 @@ paths: in: path description: ID of pet that needs to be updated required: true - x-type: number::integer + x-type: number::int64 responses: '405': description: Invalid input @@ -231,7 +231,7 @@ paths: in: path description: Pet id to delete required: true - x-type: number::integer + x-type: number::int64 responses: '400': description: Invalid pet value @@ -251,7 +251,7 @@ paths: in: path description: ID of pet to update required: true - x-type: number::integer + x-type: number::int64 responses: '200': description: successful operation @@ -342,7 +342,7 @@ paths: content: application/json: x-type: - $record: number::integer + $record: number::int32 security: - api_key: [] /store/order: @@ -391,7 +391,7 @@ paths: in: path description: ID of pet that needs to be fetched required: true - x-type: number::integer::min(1)::max(5) + x-type: number::int64::min(1)::max(5) responses: '200': description: successful operation @@ -753,245 +753,6 @@ x-webhooks: '200': description: Return a 200 status to indicate that the data was received successfully components: - schemas: - ApiResponse: - type: object - properties: - code: - type: integer - format: int32 - type: - type: string - message: - type: string - Cat: - description: A representation of a cat - allOf: - - $ref: '#/components/schemas/Pet' - - type: object - properties: - huntingSkill: - type: string - description: The measured skill for hunting - default: lazy - example: adventurous - enum: - - clueless - - lazy - - adventurous - - aggressive - required: - - huntingSkill - Category: - type: object - properties: - id: - description: Category ID - allOf: - - $ref: '#/components/schemas/Id' - name: - description: Category name - type: string - minLength: 1 - sub: - description: Test Sub Category - type: object - properties: - prop1: - type: string - description: Dumb Property - xml: - name: Category - Dog: - description: A representation of a dog - allOf: - - $ref: '#/components/schemas/Pet' - - type: object - properties: - packSize: - type: integer - format: int32 - description: The size of the pack the dog is from - default: 1 - minimum: 1 - required: - - packSize - HoneyBee: - description: A representation of a honey bee - allOf: - - $ref: '#/components/schemas/Pet' - - type: object - properties: - honeyPerDay: - type: number - description: Average amount of honey produced per day in ounces - example: 3.14 - multipleOf: 0.01 - required: - - honeyPerDay - Id: - type: integer - format: int64 - readOnly: true - Order: - type: object - properties: - id: - description: Order ID - allOf: - - $ref: '#/components/schemas/Id' - petId: - description: Pet ID - allOf: - - $ref: '#/components/schemas/Id' - quantity: - type: integer - format: int32 - minimum: 1 - default: 1 - shipDate: - description: Estimated ship date - type: string - format: date-time - status: - type: string - description: Order Status - enum: - - placed - - approved - - delivered - complete: - description: Indicates whenever order was completed or not - type: boolean - default: false - readOnly: true - requestId: - description: Unique Request Id - type: string - writeOnly: true - xml: - name: Order - Pet: - type: object - required: - - name - - photoUrls - discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - properties: - id: - externalDocs: - description: Find more info here - url: https://example.com - description: Pet ID - allOf: - - $ref: '#/components/schemas/Id' - category: - description: Categories this pet belongs to - allOf: - - $ref: '#/components/schemas/Category' - name: - description: The name given to a pet - type: string - example: Guru - photoUrls: - description: The list of URL to a cute photos featuring pet - type: array - maxItems: 20 - xml: - name: photoUrl - wrapped: true - items: - type: string - format: url - friend: - allOf: - - $ref: '#/components/schemas/Pet' - tags: - description: Tags attached to the pet - type: array - minItems: 1 - xml: - name: tag - wrapped: true - items: - $ref: '#/components/schemas/Tag' - status: - type: string - description: Pet status in the store - enum: - - available - - pending - - sold - petType: - description: Type of a pet - type: string - xml: - name: Pet - Tag: - type: object - properties: - id: - description: Tag ID - allOf: - - $ref: '#/components/schemas/Id' - name: - description: Tag name - type: string - minLength: 1 - xml: - name: Tag - User: - type: object - properties: - id: - $ref: '#/components/schemas/Id' - pet: - oneOf: - - $ref: '#/components/schemas/Pet' - - $ref: '#/components/schemas/Tag' - username: - description: User supplied username - type: string - minLength: 4 - example: John78 - firstName: - description: User first name - type: string - minLength: 1 - example: John - lastName: - description: User last name - type: string - minLength: 1 - example: Smith - email: - description: User email address - type: string - format: email - example: john.smith@example.com - password: - type: string - description: User password, MUST contain a mix of upper and lower case letters, as well as digits - format: password - minLength: 8 - pattern: /(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/ - example: drowssaP123 - phone: - description: User phone number in international format - type: string - pattern: /^\+(?:[0-9]-?){6,14}[0-9]$/ - example: +1-202-555-0192 - userStatus: - description: User status - type: integer - format: int32 - xml: - name: User requestBodies: Pet: content: @@ -1037,12 +798,12 @@ components: complete: false x-types: ApiResponse: - code: number::integer + code: number::int32 type: string message: string Cat: $and: - - $ref: '#/components/x-types/Pet' + - $ref: '#/components/x-types/Base_Pet' - huntingSkill: - clueless - lazy @@ -1050,8 +811,9 @@ components: - aggressive $descriptions: huntingSkill: The measured skill for hunting + - petType: cat Category: - id: number::integer + id: number::int64 name: string::min(1) sub: prop1: string @@ -1063,21 +825,23 @@ components: sub: Test Sub Category Dog: $and: - - $ref: '#/components/x-types/Pet' - - packSize: number::integer::min(1) + - $ref: '#/components/x-types/Base_Pet' + - packSize: number::int32::min(1) $descriptions: packSize: The size of the pack the dog is from + - petType: dog HoneyBee: $and: - - $ref: '#/components/x-types/Pet' + - $ref: '#/components/x-types/Base_Pet' - honeyPerDay: number $descriptions: honeyPerDay: Average amount of honey produced per day in ounces - Id: number::integer + - petType: bee + Id: number::int64 Order: - id: number::integer - petId: number::integer - quantity: number::integer::min(1) + id: number::int64 + petId: number::int64 + quantity: number::int32::min(1) shipDate: string::date-time status: - placed @@ -1093,6 +857,10 @@ components: complete: Indicates whenever order was completed or not requestId: Unique Request Id Pet: + - $ref: '#/components/x-types/Cat' + - $ref: '#/components/x-types/Dog' + - $ref: '#/components/x-types/HoneyBee' + Base_Pet: id: - $ref: '#/components/x-types/Id' - undefined @@ -1117,12 +885,6 @@ components: petType: - string - undefined - $discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' $descriptions: id: Pet ID category: Categories this pet belongs to @@ -1132,13 +894,13 @@ components: status: Pet status in the store petType: Type of a pet Tag: - id: number::integer + id: number::int64 name: string::min(1) $descriptions: id: Tag ID name: Tag name User: - id: number::integer + id: number::int64 pet: - $ref: '#/components/x-types/Pet' - $ref: '#/components/x-types/Tag' @@ -1148,7 +910,7 @@ components: email: string::email password: string::password::pattern(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/)::min(8) phone: string::pattern(/^\+(?:[0-9]-?){6,14}[0-9]$/) - userStatus: number::integer + userStatus: number::int32 $descriptions: username: User supplied username firstName: User first name diff --git a/applications/__tests__/json-schema-adapter.test.js b/applications/__tests__/json-schema-adapter.test.js new file mode 100644 index 0000000..6ae5266 --- /dev/null +++ b/applications/__tests__/json-schema-adapter.test.js @@ -0,0 +1,80 @@ +import {describe, expect, test} from 'vitest' +import {translateJSONSchemaToXType} from '../json-schema-adapter.js' + +describe('json-schema-adapter', () => { + test('primitives', () => { + expect(translateJSONSchemaToXType({type: 'null'}, {})).toEqual(null) + expect(translateJSONSchemaToXType({type: 'string'}, {})).toEqual('string') + expect(translateJSONSchemaToXType({type: 'integer'}, {})).toEqual( + 'number::integer' + ) + expect( + translateJSONSchemaToXType( + {type: 'string', format: 'email', minLength: 5}, + {} + ) + ).toEqual('string::email::min(5)') + expect( + translateJSONSchemaToXType( + {type: 'number', minimum: 0, exclusiveMaximum: 100}, + {} + ) + ).toEqual('number::min(0)::x-max(100)') + }) + + test('escapes reserved keywords in enum/const', () => { + expect( + translateJSONSchemaToXType({type: 'string', enum: ['string']}, {}) + ).toEqual('$literal:string') + expect( + translateJSONSchemaToXType( + {type: 'string', enum: ['string', 'foo', 'number']}, + {} + ) + ).toEqual(['$literal:string', 'foo', '$literal:number']) + expect( + translateJSONSchemaToXType({type: 'string', const: 'boolean'}, {}) + ).toEqual('$literal:boolean') + }) + + test('objects and arrays', () => { + expect(translateJSONSchemaToXType({type: 'object'}, {})).toEqual({ + $record: 'any', + }) + expect( + translateJSONSchemaToXType( + {type: 'object', properties: {id: {type: 'number'}}, required: ['id']}, + {} + ) + ).toEqual({id: 'number'}) + expect( + translateJSONSchemaToXType( + {type: 'object', properties: {$x: {type: 'string'}}, required: ['$x']}, + {} + ) + ).toEqual({'$literal:$x': 'string'}) + expect( + translateJSONSchemaToXType({type: 'array', items: {type: 'string'}}, {}) + ).toEqual({$array: 'string'}) + }) + + test('composition', () => { + expect( + translateJSONSchemaToXType( + { + allOf: [ + {type: 'object', properties: {foo: {type: 'string'}}}, + {type: 'object', properties: {bar: {type: 'number'}}}, + ], + }, + {} + ) + ).toEqual({$and: [{foo: 'string'}, {bar: 'number'}]}) + expect( + translateJSONSchemaToXType( + {oneOf: [{type: 'string'}, {type: 'number'}]}, + {} + ) + ).toEqual(['string', 'number']) + }) +}) diff --git a/applications/generate-flat-schemas.redocly.yaml b/applications/generate-flat-schemas.redocly.yaml new file mode 100644 index 0000000..c980f1b --- /dev/null +++ b/applications/generate-flat-schemas.redocly.yaml @@ -0,0 +1,10 @@ +extends: + - x-types/all + +plugins: + - x-types-plugin.js + +preprocessors: + x-types/generate-named-schemas: on + x-types/generate-schemas: + depth: 1 diff --git a/applications/generate-x-types-redocly.yaml b/applications/generate-x-types.redocly.yaml similarity index 87% rename from applications/generate-x-types-redocly.yaml rename to applications/generate-x-types.redocly.yaml index 5a092c8..5cf936d 100644 --- a/applications/generate-x-types-redocly.yaml +++ b/applications/generate-x-types.redocly.yaml @@ -10,3 +10,4 @@ preprocessors: decorators: x-types/generate-x-types: {} + x-types/remove-schemas: on diff --git a/applications/json-schema-adapter.js b/applications/json-schema-adapter.js index 7c899fe..ab483f3 100644 --- a/applications/json-schema-adapter.js +++ b/applications/json-schema-adapter.js @@ -2,6 +2,17 @@ import {isRef} from '@redocly/openapi-core' import {isPlainObject, isEmptyObject} from '@redocly/openapi-core/lib/utils.js' +import {RESERVED_KEYWORDS} from './x-types-utils.js' + +const escapeReserved = value => { + if (Array.isArray(value)) { + return value.map(escapeReserved) + } + if (RESERVED_KEYWORDS.includes(value)) { + return `$literal:${value}` + } + return value +} export function translateJSONSchemaToXType(schema, ctx) { if (schema.type === 'null') { @@ -16,14 +27,21 @@ export function translateJSONSchemaToXType(schema, ctx) { ) { if (schema.enum) { if (schema.enum.length === 1) { - return schema.enum[0] + return escapeReserved(schema.enum[0]) } - return schema.enum + return escapeReserved(schema.enum) + } + if (schema.const) { + return escapeReserved(schema.const) } let t = schema.type if (schema.type === 'integer') { - t = 'number::integer' + if (schema.format !== undefined) { + t = `number::${schema.format}` + } else { + t = 'number::integer' + } } if ( schema.format && @@ -32,14 +50,26 @@ export function translateJSONSchemaToXType(schema, ctx) { ) { t += `::${schema.format}` } - if (schema.pattern) { + if (schema.pattern !== undefined) { t += `::pattern(${schema.pattern})` } - if (schema.minimum || schema.minLength) { - t += `::min(${schema.minimum || schema.minLength})` + if (schema.minimum !== undefined) { + t += `::min(${schema.minimum})` } - if (schema.maximum || schema.maxLength) { - t += `::max(${schema.maximum || schema.maxLength})` + if (schema.maximum !== undefined) { + t += `::max(${schema.maximum})` + } + if (schema.exclusiveMinimum !== undefined) { + t += `::x-min(${schema.exclusiveMinimum})` + } + if (schema.exclusiveMaximum !== undefined) { + t += `::x-max(${schema.exclusiveMaximum})` + } + if (schema.minLength !== undefined) { + t += `::min(${schema.minLength})` + } + if (schema.maxLength !== undefined) { + t += `::max(${schema.maxLength})` } return t @@ -102,7 +132,7 @@ export function translateJSONSchemaToXType(schema, ctx) { $omit, } } else if (schema.$ref.startsWith('#/components/x-types/')) { - console.log('Already a x-type $ref:', schema.$ref) + console.log('# Already an x-type $ref:', schema.$ref) return schema } @@ -162,6 +192,13 @@ export function translateJSONSchemaToXType(schema, ctx) { } function extractObjectLikeNode(schema, ctx) { + // Handle arrays + if (isPlainObject(schema.items)) { + const $array = translateJSONSchemaToXType(schema.items, ctx) + return {$array} + } + + // Handle objects const properties = {} const $descriptions = {} for (const [name, property] of Object.entries(schema.properties || {})) { @@ -190,25 +227,30 @@ function extractObjectLikeNode(schema, ctx) { ) } - let items - if (isPlainObject(schema.items)) { - items = translateJSONSchemaToXType(schema.items, ctx) + if (!isEmptyObject($descriptions)) { + properties.$descriptions = $descriptions } - // Add the discriminator as it is + // Handle discriminator 🐒 if (isPlainObject(schema.discriminator)) { - properties['$discriminator'] = schema.discriminator - } + const {propertyName, mapping} = schema.discriminator + if (!schema.oneOf && !schema.anyOf && isPlainObject(mapping)) { + // handle implicit discriminator usage with allOf + const $or = Object.values(mapping).map($ref => + translateJSONSchemaToXType({$ref}, ctx) + ) - if (!isEmptyObject($descriptions)) { - properties.$descriptions = $descriptions + $or._mapping = mapping + $or._propertyName = propertyName + $or._baseObject = properties + $or._componentName = ctx.key + return $or + } } + if (!isEmptyObject(properties)) { return properties } - if (items) { - return {$array: items} - } throw new Error('Invalid object-like schema') } diff --git a/applications/remove-x-types.redocly.yaml b/applications/remove-x-types.redocly.yaml new file mode 100644 index 0000000..b4e0dc6 --- /dev/null +++ b/applications/remove-x-types.redocly.yaml @@ -0,0 +1,8 @@ +extends: + - x-types/all + +plugins: + - x-types-plugin.js + +decorators: + x-types/remove-x-types: {} diff --git a/applications/resources/openapi-with-discriminators.yaml b/applications/resources/openapi-with-discriminators.yaml index e19f31f..c39f350 100644 --- a/applications/resources/openapi-with-discriminators.yaml +++ b/applications/resources/openapi-with-discriminators.yaml @@ -39,7 +39,14 @@ paths: kako: wrong components: schemas: - Az: + Glagol: + allOf: + - $ref: '#/components/schemas/Az' + - type: object + properties: + specificToGlagol: + type: boolean + Az: # moved between Glagol and Dobro to cover cases when the discriminated sub-schemas could be above or below the discriminator itself type: object properties: bukh: @@ -51,13 +58,6 @@ components: mapping: glagol: '#/components/schemas/Glagol' dobro: '#/components/schemas/Dobro' - Glagol: - allOf: - - $ref: '#/components/schemas/Az' - - type: object - properties: - specificToGlagol: - type: boolean Dobro: allOf: - $ref: '#/components/schemas/Az' @@ -99,35 +99,3 @@ components: - for_H required: - kako - x-types: - Az: - bukh: string - vidh: number - $discriminator: - propertyName: bukh - mapping: - glagol: '#/components/schemas/Glagol' - dobro: '#/components/schemas/Dobro' - Glagol: - $and: - - $ref: '#/components/x-types/Az' - - specificToGlagol: boolean - Dobro: - $and: - - $ref: '#/components/x-types/Az' - - specificToDobro: number::integer - discriminator: for test - Zelo: - - $ref: '#/components/x-types/H' - - mhslite: - - boolean - - undefined - kako: for_mhslite - discriminator: - - for test - - undefined - H: - ludh: - - number - - undefined - kako: for_H diff --git a/applications/resources/pets.yaml b/applications/resources/pets.yaml index 7aa0376..fa467f5 100644 --- a/applications/resources/pets.yaml +++ b/applications/resources/pets.yaml @@ -81,7 +81,6 @@ paths: schema: type: string default: en-AU - x-type: string - name: cookieParam in: cookie description: Some cookie @@ -89,7 +88,6 @@ paths: schema: type: integer format: int64 - x-type: number::integer post: tags: - pet @@ -182,7 +180,6 @@ paths: schema: type: integer format: int64 - x-type: number::integer responses: '200': description: successful operation @@ -190,9 +187,6 @@ paths: application/json: schema: $ref: '#/components/schemas/Pet' - x-type: - $ref: '#/components/x-types/Pet' - '400': description: Invalid ID supplied '404': @@ -213,7 +207,6 @@ paths: schema: type: integer format: int64 - x-type: number::integer responses: '405': description: Invalid input @@ -233,12 +226,6 @@ paths: status: description: Updated status of the pet type: string - x-type: - name: string - status: string - $descriptions: - name: Updated name of the pet - status: Updated status of the pet delete: tags: - pet @@ -251,7 +238,6 @@ paths: required: false schema: type: string - x-type: string example: Bearer - name: petId in: path @@ -260,7 +246,6 @@ paths: schema: type: integer format: int64 - x-type: number::integer responses: '400': description: Invalid pet value @@ -283,7 +268,6 @@ paths: schema: type: integer format: int64 - x-type: number::integer responses: '200': description: successful operation @@ -291,8 +275,6 @@ paths: application/json: schema: $ref: '#/components/schemas/ApiResponse' - x-type: - $ref: '#/components/x-types/ApiResponse' security: - petstore_auth: - write:pets @@ -303,7 +285,6 @@ paths: schema: type: string format: binary - x-type: string::binary /pet/findByStatusPut: get: tags: @@ -328,11 +309,6 @@ paths: - pending - sold default: available - x-type: - $array: - - available - - pending - - sold responses: '200': description: successful operation @@ -342,9 +318,6 @@ paths: type: array items: $ref: '#/components/schemas/Pet' - x-type: - $array: - $ref: '#/components/x-types/Pet' '400': description: Invalid status value security: @@ -369,8 +342,6 @@ paths: type: array items: type: string - x-type: - $array: string responses: '200': description: successful operation @@ -380,9 +351,6 @@ paths: type: array items: $ref: '#/components/schemas/Pet' - x-type: - $array: - $ref: '#/components/x-types/Pet' '400': description: Invalid tag value security: @@ -406,8 +374,6 @@ paths: additionalProperties: type: integer format: int32 - x-type: - $record: number::integer security: - api_key: [] /store/order: @@ -424,10 +390,6 @@ paths: application/json: schema: $ref: '#/components/schemas/Order' - x-type: - $ref: '#/components/x-types/Order' - $omit: - - requestId '400': description: Invalid Order content: @@ -440,12 +402,6 @@ paths: application/json: schema: $ref: '#/components/schemas/Order' - x-type: - $ref: '#/components/x-types/Order' - $omit: - - id - - petId - - complete description: order placed for purchasing the pet required: true /store/order/{orderId}: @@ -465,7 +421,6 @@ paths: format: int64 minimum: 1 maximum: 5 - x-type: number::integer::min(1)::max(5) responses: '200': description: successful operation @@ -473,10 +428,6 @@ paths: application/json: schema: $ref: '#/components/schemas/Order' - x-type: - $ref: '#/components/x-types/Order' - $omit: - - requestId '400': description: Invalid ID supplied '404': @@ -495,7 +446,6 @@ paths: schema: type: string minimum: 1 - x-type: string::min(1) responses: '400': description: Invalid ID supplied @@ -529,15 +479,6 @@ paths: required: - callbackUrl - eventName - x-type: - callbackUrl: string::uri - eventName: - - orderInProgress - - orderShipped - - orderDelivered - $descriptions: - callbackUrl: This URL will be called by the server when the desired event will occur - eventName: Event name for the subscription responses: '201': description: Subscription added @@ -549,8 +490,6 @@ paths: subscriptionId: type: string example: AAA-123-BBB-456 - x-type: - subscriptionId: string callbacks: orderInProgress: '{$request.body#/callbackUrl}?event={$request.body#/eventName}': @@ -581,10 +520,6 @@ paths: status: type: string example: inProgress - x-type: - orderId: string - timestamp: string::date-time - status: string responses: '200': description: Callback successfully processed and no retries will be performed @@ -596,11 +531,6 @@ paths: someProp: type: string example: '123' - x-type: - someProp: string - $descriptions: - someProp: | - Example: `123` '299': description: Response for cancelling subscription '500': @@ -657,10 +587,6 @@ paths: status: type: string example: inProgress - x-type: - orderId: string - timestamp: string::date-time - status: string responses: '200': description: Callback successfully processed and no retries will be performed @@ -672,8 +598,6 @@ paths: someProp: type: string example: '123' - x-type: - someProp: string orderShipped: '{$request.body#/callbackUrl}?event={$request.body#/eventName}': post: @@ -702,10 +626,6 @@ paths: type: string format: date-time example: '2018-11-11T16:00:00Z' - x-type: - orderId: string - timestamp: string::date-time - estimatedDeliveryDate: string::date-time responses: '200': description: Callback successfully processed and no retries will be performed @@ -728,9 +648,6 @@ paths: type: string format: date-time example: '2018-10-19T16:46:45Z' - x-type: - orderId: string - timestamp: string::date-time responses: '200': description: Callback successfully processed and no retries will be performed @@ -749,8 +666,6 @@ paths: application/json: schema: $ref: '#/components/schemas/User' - x-type: - $ref: '#/components/x-types/WriteonlyUser' description: Created user object required: true /user/{username}: @@ -767,7 +682,6 @@ paths: required: true schema: type: string - x-type: string responses: '200': description: successful operation @@ -775,8 +689,6 @@ paths: application/json: schema: $ref: '#/components/schemas/User' - x-type: - $ref: '#/components/x-types/User' '400': description: Invalid username supplied '404': @@ -794,7 +706,6 @@ paths: required: true schema: type: string - x-type: string responses: '400': description: Invalid user supplied @@ -805,8 +716,6 @@ paths: application/json: schema: $ref: '#/components/schemas/User' - x-type: - $ref: '#/components/x-types/WriteonlyUser' description: Updated user object required: true delete: @@ -822,7 +731,6 @@ paths: required: true schema: type: string - x-type: string responses: '400': description: Invalid username supplied @@ -866,14 +774,12 @@ paths: required: true schema: type: string - x-type: string - name: password in: query description: The password for login in clear text required: true schema: type: string - x-type: string responses: '200': description: successful operation @@ -895,14 +801,12 @@ paths: examples: response: value: OK - x-type: string application/xml: schema: type: string examples: response: value: OK - x-type: string text/plain: examples: response: @@ -932,8 +836,6 @@ x-webhooks: application/json: schema: $ref: '#/components/schemas/Pet' - x-type: - $ref: '#/components/x-types/WriteonlyPet' responses: '200': description: Return a 200 status to indicate that the data was received successfully @@ -1183,8 +1085,6 @@ components: application/json: schema: $ref: '#/components/schemas/Pet' - x-type: - $ref: '#/components/x-types/WriteonlyPet' UserArray: content: application/json: @@ -1192,9 +1092,6 @@ components: type: array items: $ref: '#/components/schemas/User' - x-type: - $array: - $ref: '#/components/x-types/WriteonlyUser' description: List of user object required: true securitySchemes: @@ -1222,154 +1119,6 @@ components: shipDate: '2018-10-19T16:46:45Z' status: placed complete: false - x-types: - ApiResponse: - code: number::integer - type: string - message: string - Cat: - $and: - - $ref: '#/components/x-types/Pet' - - huntingSkill: - - clueless - - lazy - - adventurous - - aggressive - $descriptions: - huntingSkill: The measured skill for hunting - Category: - id: number::integer - name: string::min(1) - sub: - prop1: string - $descriptions: - prop1: Dumb Property - $descriptions: - id: Category ID - name: Category name - sub: Test Sub Category - Dog: - $and: - - $ref: '#/components/x-types/Pet' - - packSize: number::integer::min(1) - $descriptions: - packSize: The size of the pack the dog is from - HoneyBee: - $and: - - $ref: '#/components/x-types/Pet' - - honeyPerDay: number - $descriptions: - honeyPerDay: Average amount of honey produced per day in ounces - Id: number::integer # Read-only - Order: - id: number::integer # Read-only - petId: number::integer # Read-only - quantity: number::integer::min(1) - shipDate: string::date-time - status: - - placed - - approved - - delivered - complete: boolean # Read-only - requestId: string # Write-only - $descriptions: - id: Order ID - petId: Pet ID - shipDate: Estimated ship date - status: Order Status - complete: Indicates whenever order was completed or not - requestId: Unique Request Id - Pet: - id: # Read-only - - $ref: '#/components/x-types/Id' - - undefined - category: - - $ref: '#/components/x-types/Category' - - undefined - name: string - photoUrls: - $array: string::url - friend: - - $ref: '#/components/x-types/Pet' - - undefined - tags: - - $array: - $ref: '#/components/x-types/Tag' - - undefined - status: - - - available - - pending - - sold - - undefined - petType: - - string - - undefined - $discriminator: - propertyName: petType - mapping: - cat: '#/components/schemas/Cat' - dog: '#/components/schemas/Dog' - bee: '#/components/schemas/HoneyBee' - $descriptions: - id: Pet ID - category: Categories this pet belongs to - name: The name given to a pet - photoUrls: The list of URL to a cute photos featuring pet - tags: Tags attached to the pet - status: Pet status in the store - petType: Type of a pet - WriteonlyPet: - $and: - - $ref: '#/components/x-types/Pet' - $omit: - - id - - friend # TODO: is it required to omit? - - tags # TODO: is it required to omit? - - friend: - - $ref: '#/components/x-types/WriteonlyPet' - - undefined - tags: - - $array: - $ref: '#/components/x-types/WriteonlyTag' - - undefined - Tag: - id: number::integer # Read-only - name: string::min(1) - $descriptions: - id: Tag ID - name: Tag name - WriteonlyTag: - $ref: '#/components/x-types/Tag' - $omit: id - User: - id: number::integer # Read-only - pet: - - $ref: '#/components/x-types/Pet' - - $ref: '#/components/x-types/Tag' - username: string::min(4) - firstName: string::min(1) - lastName: string::min(1) - email: string::email - password: string::password::pattern(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/)::min(8) - phone: string::pattern(/^\+(?:[0-9]-?){6,14}[0-9]$/) - userStatus: number::integer - $descriptions: - username: User supplied username - firstName: User first name - lastName: User last name - email: User email address - password: User password, MUST contain a mix of upper and lower case letters, as well as digits - phone: User phone number in international format - userStatus: User status - WriteonlyUser: - $and: - - $ref: '#/components/x-types/User' - $omit: - - id - - pet - - pet: - - $ref: '#/components/x-types/WriteonlyPet' - - $ref: '#/components/x-types/WriteonlyTag' x-tagGroups: - name: General tags: diff --git a/applications/x-redocly.yaml b/applications/x-type.redocly.yaml similarity index 86% rename from applications/x-redocly.yaml rename to applications/x-type.redocly.yaml index 70dc399..371678f 100644 --- a/applications/x-redocly.yaml +++ b/applications/x-type.redocly.yaml @@ -11,4 +11,5 @@ plugins: - x-types-plugin.js preprocessors: + x-types/generate-named-schemas: on x-types/generate-schemas: on diff --git a/applications/x-types-adapter.js b/applications/x-types-adapter.js index 79c3c2a..cadc837 100644 --- a/applications/x-types-adapter.js +++ b/applications/x-types-adapter.js @@ -11,8 +11,8 @@ const SUFFIXES = { [/^byte$/, () => ({format: 'byte'})], [/^password$/, () => ({format: 'password'})], [/^uri$/, () => ({format: 'uri'})], + [/^uri-reference$/, () => ({format: 'uri-reference'})], [/^url$/, () => ({format: 'url'})], - [/^uuid$/, () => ({format: 'uuid'})], [/^pattern\((?.+)\)$/, match => ({pattern: match?.groups?.value})], [ @@ -26,6 +26,8 @@ const SUFFIXES = { ], number: [ [/^integer$/, () => ({type: 'integer'})], + [/^int32$/, () => ({type: 'integer', format: 'int32'})], + [/^int64$/, () => ({type: 'integer', format: 'int64'})], [/^min\((?[0-9]+)\)$/, match => ({minimum: +match?.groups?.value})], [/^max\((?[0-9]+)\)$/, match => ({maximum: +match?.groups?.value})], [ @@ -75,7 +77,7 @@ export const translateXTypeToSchema = xType => { return {type: 'string', ...modifiers} } - throw new Error(`Unsupported string format: ${xType}.`) + console.error(`Unsupported string format: ${xType}.`) } if (xType === 'number') { @@ -96,7 +98,7 @@ export const translateXTypeToSchema = xType => { return {type: 'number', ...modifiers} } - throw new Error(`Unsupported number format: ${xType}.`) + console.error(`Unsupported number format: ${xType}.`) } if (xType === 'boolean') { @@ -172,7 +174,7 @@ export const translateXTypeToSchema = xType => { let properties = {} let patternProperties = {} let required = [] - const {$record, $descriptions, $discriminator, ...props} = xType + const {$record, $descriptions, ...props} = xType const additionalProperties = typeof $record === 'undefined' ? false : translateXTypeToSchema($record) @@ -215,7 +217,6 @@ export const translateXTypeToSchema = xType => { required, additionalProperties, ...(isNotEmptyObject(patternProperties) && {patternProperties}), - ...($discriminator && {discriminator: $discriminator}), } } diff --git a/applications/x-types-decorators.js b/applications/x-types-decorators.js index 611ccd0..a80a5ce 100644 --- a/applications/x-types-decorators.js +++ b/applications/x-types-decorators.js @@ -2,6 +2,34 @@ import {cleanupSchema} from './x-types-utils.js' import {translateXTypeToSchema} from './x-types-adapter.js' import {resolveAndMerge} from './x-types-resolver.js' import {translateJSONSchemaToXType} from './json-schema-adapter.js' +import {isRef} from '@redocly/openapi-core' + +export const generateNamedSchemas = opts => { + const namedSchemas = {} + return { + Components: { + enter(components, ctx) { + const xTypes = components['x-types'] || {} + for (const key in xTypes) { + const xType = xTypes[key] + + const resolvedXType = resolveAndMerge(xType, { + ...ctx, + _circularRefsMaxDepth: opts?.depth, + }) + const schema = cleanupSchema(translateXTypeToSchema(resolvedXType)) + namedSchemas[key] = schema + } + }, + leave(components) { + components['schemas'] = { + ...components['schemas'], + ...namedSchemas, + } + }, + }, + } +} export const generateSchemas = opts => { return { @@ -62,15 +90,65 @@ export const generateSchemas = opts => { // TODO: WIP export const generateNamedXTypes = opts => { const namedXTypes = {} + let rootComponents return { Components: { leave(components, ctx) { components['x-types'] = namedXTypes }, + enter(components, ctx) { + rootComponents = components + }, NamedSchemas: { Schema: { enter(schema, ctx) { namedXTypes[ctx.key] = translateJSONSchemaToXType(schema, ctx) + const mapping = namedXTypes[ctx.key]._mapping + const propertyName = namedXTypes[ctx.key]._propertyName + + if (!mapping || !propertyName) { + return // Skip if there's no discriminator mapping or propertyName + } + + namedXTypes['Base_' + ctx.key] = namedXTypes[ctx.key]._baseObject + for (const [discriminatorValue, $ref] of Object.entries(mapping)) { + const componentName = $ref.split('/').at(-1) + + const schemaComponent = rootComponents.schemas[componentName] + if (Array.isArray(schemaComponent?.allOf)) { + for (const item of schemaComponent.allOf) { + if ( + isRef(item) && + item.$ref === '#/components/schemas/' + ctx.key + ) { + item.$ref = '#/components/x-types/Base_' + ctx.key + } + } + // Inject discriminator property into the schema component + schemaComponent.allOf.push({ + type: 'object', + properties: { + [propertyName]: {type: 'string', const: discriminatorValue}, + }, + }) + } + + const xTypeComponent = namedXTypes[componentName] + if (Array.isArray(xTypeComponent?.$and)) { + for (const item of xTypeComponent.$and) { + if ( + isRef(item) && + item.$ref === '#/components/x-types/' + ctx.key + ) { + item.$ref = '#/components/x-types/Base_' + ctx.key + } + } + // Inject discriminator property into the x-type component + xTypeComponent.$and.push({ + [propertyName]: discriminatorValue, + }) + } + } }, }, }, @@ -158,3 +236,13 @@ export const removeXTypes = opts => { }, } } + +export const removeSchemas = opts => { + return { + Components: { + enter(components) { + delete components['schemas'] + }, + }, + } +} diff --git a/applications/x-types-plugin.js b/applications/x-types-plugin.js index 42d0b1e..04e5166 100644 --- a/applications/x-types-plugin.js +++ b/applications/x-types-plugin.js @@ -1,9 +1,11 @@ import {isRef} from '@redocly/openapi-core/lib/ref-utils.js' import { generateSchemas, + generateNamedSchemas, generateXTypes, generateNamedXTypes, removeXTypes, + removeSchemas, } from './x-types-decorators.js' import {noRefNeighbors, noUndefinedDescriptions} from './x-types-rules.js' import {isObject} from './x-types-utils.js' @@ -96,7 +98,9 @@ export default () => ({ decorators: { oas3: { 'remove-x-types': removeXTypes, + 'remove-schemas': removeSchemas, 'generate-schemas': generateSchemas, + 'generate-named-schemas': generateNamedSchemas, 'generate-x-types': generateXTypes, 'generate-named-x-types': generateNamedXTypes, }, diff --git a/applications/x-types-resolver.js b/applications/x-types-resolver.js index 1db3c23..796b079 100644 --- a/applications/x-types-resolver.js +++ b/applications/x-types-resolver.js @@ -2,18 +2,20 @@ import {isRef} from '@redocly/openapi-core/lib/ref-utils.js' import {isObject, mergeAll} from './x-types-utils.js' const omit = (maybeObj, keys) => { - if (!isObject(maybeObj)) { - console.error( - `Cannot omit keys (${keys.join(', ')}) from non-object: ${JSON.stringify(maybeObj)}.` - ) - return maybeObj + if (isObject(maybeObj)) { + const obj = {...maybeObj} + for (const key of keys) { + delete obj[key] + } + return obj + } else if (Array.isArray(maybeObj)) { + return maybeObj.map(item => omit(item, keys)) } - const obj = {...maybeObj} - for (const key of keys) { - delete obj[key] - } - return obj + console.error( + `Cannot omit keys (${keys.join(', ')}) from non-object: ${JSON.stringify(maybeObj)}.` + ) + return maybeObj } export const resolveAndMerge = (xType, ctx, parents = []) => { diff --git a/applications/x-types-utils.js b/applications/x-types-utils.js index 5328e76..a74b935 100644 --- a/applications/x-types-utils.js +++ b/applications/x-types-utils.js @@ -1,3 +1,11 @@ +export const RESERVED_KEYWORDS = [ + 'string', + 'number', + 'boolean', + 'any', + 'undefined', +] + export const isObject = obj => obj && typeof obj === 'object' && !Array.isArray(obj) @@ -34,11 +42,39 @@ const deepMergeTwo = (first, second) => { if (second === 'any') { return first } + if (first === second) { return first } + if (first === 'undefined' || second === 'undefined') { + return 'undefined' + } + + if (Array.isArray(first) && (isObject(second) || isPrimitive(second))) { + return first.map(item => deepMergeTwo(item, second)) + } + if (Array.isArray(second) && (isObject(first) || isPrimitive(first))) { + return second.map(item => deepMergeTwo(first, item)) + } + if (isPrimitive(first) || isPrimitive(second)) { + // Handle strings + if ( + first === 'string' && + typeof second === 'string' && + !RESERVED_KEYWORDS.includes(second) + ) { + return second + } + if ( + second === 'string' && + typeof first === 'string' && + !RESERVED_KEYWORDS.includes(first) + ) { + return first + } + console.error( `ERROR! Merging primitives is not allowed: '${first}' & '${second}'.` ) @@ -60,13 +96,7 @@ const deepMergeTwo = (first, second) => { return mergeAll(...second.$and, first) } - if (Array.isArray(first) && isObject(second)) { - return first.map(item => deepMergeTwo(item, second)) - } - if (isObject(first) && Array.isArray(second)) { - return second.map(item => deepMergeTwo(item, first)) - } - + // TODO: investigate if it's still needed if (Array.isArray(first) && Array.isArray(second)) { return product(first, second).map(([a, b]) => deepMergeTwo(a, b)) } diff --git a/extensions.md b/extensions.md index 443eddc..4c63c1e 100644 --- a/extensions.md +++ b/extensions.md @@ -67,12 +67,14 @@ It must be an object at the same level as the fields it describes, mapping field Descriptions are propagated to the OpenAPI schema as the `description` fields of the corresponding properties. + diff --git a/package-lock.json b/package-lock.json index 3cee340..b9d38a1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "json-x-type", - "version": "0.2.0", + "version": "0.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "json-x-type", - "version": "0.2.0", + "version": "0.3.0", "license": "ISC", "devDependencies": { "@hyperjump/json-schema": "^1.9.9", @@ -1398,6 +1398,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1521,7 +1522,6 @@ "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.4.tgz", "integrity": "sha512-r+mCJ7zXgXElgR4IRC+fkvNCeoaavWBs6EdCso5Tbcf+iEMKzBU/His60lt34WEZ9vlb8wDkZvQGcVI5GwkfoQ==", "dev": true, - "peer": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -1542,7 +1542,6 @@ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, - "peer": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -1631,8 +1630,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true, - "peer": true + "dev": true }, "node_modules/brace-expansion": { "version": "2.0.2", @@ -1776,7 +1774,6 @@ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", "dev": true, - "peer": true, "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", @@ -1798,7 +1795,6 @@ "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", "dev": true, - "peer": true, "dependencies": { "boolbase": "^1.0.0", "css-select": "^5.1.0", @@ -1901,8 +1897,7 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/concat-map": { "version": "0.0.1", @@ -1925,6 +1920,7 @@ "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==", "dev": true, "hasInstallScript": true, + "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" @@ -1958,7 +1954,6 @@ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dev": true, - "peer": true, "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", @@ -1986,7 +1981,6 @@ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, - "peer": true, "engines": { "node": ">= 6" }, @@ -2150,8 +2144,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/doctrine": { "version": "3.0.0", @@ -2170,7 +2163,6 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dev": true, - "peer": true, "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -2190,15 +2182,13 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ], - "peer": true + ] }, "node_modules/domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dev": true, - "peer": true, "dependencies": { "domelementtype": "^2.3.0" }, @@ -2224,7 +2214,6 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dev": true, - "peer": true, "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -2260,7 +2249,6 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, - "peer": true, "engines": { "node": ">=0.12" }, @@ -2379,8 +2367,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/es-define-property": { "version": "1.0.1", @@ -2435,7 +2422,6 @@ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, - "peer": true, "dependencies": { "hasown": "^2.0.0" } @@ -2528,6 +2514,7 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -3244,7 +3231,6 @@ "resolved": "https://registry.npmjs.org/html-element-map/-/html-element-map-1.3.1.tgz", "integrity": "sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==", "dev": true, - "peer": true, "dependencies": { "array.prototype.filter": "^1.0.0", "call-bind": "^1.0.2" @@ -3271,7 +3257,6 @@ "url": "https://github.com/sponsors/fb55" } ], - "peer": true, "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", @@ -3606,8 +3591,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", "integrity": "sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/is-symbol": { "version": "1.0.4", @@ -3846,15 +3830,13 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz", "integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==", - "dev": true, - "peer": true + "dev": true }, "node_modules/lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/lodash.isequal": { "version": "4.5.0", @@ -4051,6 +4033,7 @@ "resolved": "https://registry.npmjs.org/mobx/-/mobx-6.13.0.tgz", "integrity": "sha512-1laWODrBWmB7mDJ8EClCjUQTyLwJ0ydJgE4FtK7t9r3JnjXgc9OhmYs2P4RtHrY1co5+4T6cKP2UswX2SU29mA==", "dev": true, + "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/mobx" @@ -4110,8 +4093,7 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", - "dev": true, - "peer": true + "dev": true }, "node_modules/ms": { "version": "2.1.2", @@ -4149,7 +4131,6 @@ "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz", "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==", "dev": true, - "peer": true, "dependencies": { "commander": "^2.19.0", "moo": "^0.5.0", @@ -4255,7 +4236,6 @@ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, - "peer": true, "dependencies": { "boolbase": "^1.0.0" }, @@ -4402,7 +4382,6 @@ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", "dev": true, - "peer": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -4417,7 +4396,6 @@ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, - "peer": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -4556,7 +4534,6 @@ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, - "peer": true, "dependencies": { "entities": "^4.4.0" }, @@ -4569,7 +4546,6 @@ "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", "dev": true, - "peer": true, "dependencies": { "domhandler": "^5.0.2", "parse5": "^7.0.0" @@ -4637,8 +4613,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true, - "peer": true + "dev": true }, "node_modules/picocolors": { "version": "1.1.1", @@ -4847,7 +4822,6 @@ "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", "dev": true, - "peer": true, "dependencies": { "performance-now": "^2.1.0" } @@ -4856,15 +4830,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==", - "dev": true, - "peer": true + "dev": true }, "node_modules/randexp": { "version": "0.4.6", "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", "dev": true, - "peer": true, "dependencies": { "discontinuous-range": "1.0.0", "ret": "~0.1.10" @@ -4887,6 +4859,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "dev": true, + "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -4899,6 +4872,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "dev": true, + "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -5065,7 +5039,6 @@ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true, - "peer": true, "engines": { "node": ">=0.12" } @@ -5142,7 +5115,6 @@ "resolved": "https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz", "integrity": "sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA==", "dev": true, - "peer": true, "dependencies": { "lodash.flattendeep": "^4.4.0", "nearley": "^2.7.10" @@ -5602,6 +5574,7 @@ "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.11.tgz", "integrity": "sha512-Ui0jXPzbp1phYij90h12ksljKGqF8ncGx+pjrNPsSPhbUUjWT2tD1FwGo2LF6USCnbrsIhNngDfodhxbegfEOA==", "dev": true, + "peer": true, "dependencies": { "@emotion/is-prop-valid": "1.2.2", "@emotion/unitless": "0.8.1", @@ -6079,6 +6052,7 @@ "integrity": "sha512-Ljb1cnSJSivGN0LqXd/zmDbWEM0RNNg2t1QW/XUhYl/qPqyu7CsqeWtqQXHVaJsecLPuDoak2oJcZN2QoRIOag==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@vitest/expect": "1.6.1", "@vitest/runner": "1.6.1", diff --git a/package.json b/package.json index 5a30223..39e0b50 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "json-x-type", - "version": "0.2.3", + "version": "0.3.0", "type": "module", "description": "JSON X-Type is a JSON data type type notation with an emphasis on being intuitive to write and easy to read.", "scripts": { @@ -8,8 +8,10 @@ "test": "vitest run --coverage", "prettier:check": "npx prettier --check \"**/*.{js,html,yaml,css,md,json}\"", "prettier": "npx prettier --write \"**/*.{js,html,yaml,css,md,json}\"", - "pets:to-x-types": "redocly bundle applications/resources/pets.yaml --config ./applications/generate-x-types-redocly.yaml -o applications/__tests__/file-snapshots/pets-to-x-types.yaml", - "pets:back-to-schemas": "redocly bundle applications/__tests__/file-snapshots/pets-to-x-types.yaml --config ./applications/x-redocly.yaml -o applications/__tests__/file-snapshots/pets-back-to-schemas.yaml" + "pets:to-x-types": "redocly bundle applications/resources/pets.yaml --config ./applications/generate-x-types.redocly.yaml -o applications/__tests__/file-snapshots/pets-to-x-types.yaml", + "pets:back-to-schemas": "redocly bundle applications/__tests__/file-snapshots/pets-to-x-types.yaml --config ./applications/generate-flat-schemas.redocly.yaml -o applications/__tests__/file-snapshots/pets-back-to-schemas.yaml && redocly bundle applications/__tests__/file-snapshots/pets-back-to-schemas.yaml --config ./applications/remove-x-types.redocly.yaml -o applications/__tests__/file-snapshots/pets-back-to-schemas.yaml", + "cafe:to-x-types": "redocly bundle applications/resources/cafe.yaml --config ./applications/generate-x-types.redocly.yaml -o applications/resources/cafe.x-type.yaml", + "cafe:back-to-schemas": "redocly bundle applications/resources/cafe.x-type.yaml --config ./applications/generate-flat-schemas.redocly.yaml -o applications/resources/cafe.yaml && redocly bundle applications/resources/cafe.yaml --config ./applications/remove-x-types.redocly.yaml -o applications/resources/cafe.yaml" }, "repository": { "type": "git", diff --git a/redocly.yaml b/redocly.yaml index 8550f27..0ba8732 100644 --- a/redocly.yaml +++ b/redocly.yaml @@ -1 +1 @@ -$ref: applications/x-redocly.yaml +$ref: applications/x-type.redocly.yaml