diff --git a/.spectral.yml b/.spectral.yml index 8bf57417..8feb9553 100644 --- a/.spectral.yml +++ b/.spectral.yml @@ -48,7 +48,9 @@ rules: content-type: description: |- - Requests and responses **MUST** all use the content type of `application/vnd.api+json`. + JSON payloads in requests and responses **MUST** use the content type of `application/vnd.api+json`. + + Non-JSON media types can be used for endpoints that do not exchange JSON:API documents. **Invalid Examples:** ```yaml @@ -76,7 +78,7 @@ rules: Related specification information can be found [here](https://jsonapi.org/format/1.1/#content-negotiation-servers). documentationUrl: https://jsonapi.org/format/1.1/#content-negotiation - message: Use application/vnd.api+json for all request and response bodies. + message: Use application/vnd.api+json for JSON request and response bodies. severity: error given: - $.paths..requestBody.content @@ -85,7 +87,7 @@ rules: field: "@key" function: pattern functionOptions: - match: ^application/vnd\.api\+json;? + notMatch: ^(?!application/vnd\.api\+json(?:\s*;.*)?$)[^/]+/(?:[^;]+\+json|json)(?:\s*;.*)?$ 406-response-code: description: |- Servers **MUST** describe response code **406** paths in case of invalid `Accept` values. diff --git a/dist/ruleset.d.mts b/dist/ruleset.d.mts index 5948a3da..9f3aff16 100644 --- a/dist/ruleset.d.mts +++ b/dist/ruleset.d.mts @@ -28,7 +28,7 @@ declare const _default: { field: string; function: _stoplight_spectral_core.RulesetFunctionWithValidator; functionOptions: { - match: string; + notMatch: string; }; }; }; diff --git a/dist/ruleset.d.ts b/dist/ruleset.d.ts index 5948a3da..9f3aff16 100644 --- a/dist/ruleset.d.ts +++ b/dist/ruleset.d.ts @@ -28,7 +28,7 @@ declare const _default: { field: string; function: _stoplight_spectral_core.RulesetFunctionWithValidator; functionOptions: { - match: string; + notMatch: string; }; }; }; diff --git a/dist/ruleset.js b/dist/ruleset.js index ae471dab..15464a12 100644 --- a/dist/ruleset.js +++ b/dist/ruleset.js @@ -521,7 +521,9 @@ This ruleset can be found on GitHub: [spectral-jsonapi](https://github.com/phils rules: { "content-type": { description: ` -Requests and responses **MUST** all use the content type of \`application/vnd.api+json\`. +JSON payloads in requests and responses **MUST** use the content type of \`application/vnd.api+json\`. + +Non-JSON media types can be used for endpoints that do not exchange JSON:API documents. **Invalid Examples:** \`\`\`yaml @@ -549,14 +551,14 @@ responses: Related specification information can be found [here](https://jsonapi.org/format/1.1/#content-negotiation-servers).`, documentationUrl: "https://jsonapi.org/format/1.1/#content-negotiation", - message: "Use application/vnd.api+json for all request and response bodies.", + message: "Use application/vnd.api+json for JSON request and response bodies.", severity: DiagnosticSeverity.Error, given: ["$.paths..requestBody.content", "$.paths..responses..content"], then: { field: "@key", function: import_spectral_functions.pattern, functionOptions: { - match: "^application/vnd\\.api\\+json;?" + notMatch: "^(?!application/vnd\\.api\\+json(?:\\s*;.*)?$)[^/]+/(?:[^;]+\\+json|json)(?:\\s*;.*)?$" } } }, diff --git a/dist/ruleset.js.map b/dist/ruleset.js.map index ff8ee453..1ab29a16 100644 --- a/dist/ruleset.js.map +++ b/dist/ruleset.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/ruleset.ts","../node_modules/@stoplight/types/dist/index.mjs"],"sourcesContent":["import {\n defined,\n enumeration,\n truthy,\n falsy,\n pattern,\n schema,\n} from \"@stoplight/spectral-functions\";\nimport { oas3 } from \"@stoplight/spectral-formats\";\nimport { DiagnosticSeverity } from \"@stoplight/types\";\n\nconst relationshipPropertiesSchema = {\n type: \"object\",\n anyOf: [\n { required: [\"links\"] },\n { required: [\"data\"] },\n { required: [\"meta\"] },\n ],\n properties: {\n links: {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"object\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n ],\n },\n properties: {\n type: \"object\",\n anyOf: [{ required: [\"self\"] }, { required: [\"related\"] }],\n properties: {\n self: {\n type: \"object\",\n },\n related: {\n type: \"object\",\n },\n },\n },\n },\n },\n data: {\n type: \"object\",\n anyOf: [\n {\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\", \"array\", \"null\"],\n },\n },\n },\n {\n properties: {\n type: {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"object\", \"array\", \"null\"],\n },\n },\n },\n },\n {\n properties: {\n oneOf: {\n type: \"array\",\n minItems: 1,\n },\n },\n },\n ],\n },\n meta: {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"object\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n ],\n },\n },\n },\n },\n additionalProperties: false,\n};\n\nconst relationshipSchemaRuleSchema = {\n type: \"object\",\n anyOf: [\n {\n required: [\"properties\"],\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"object\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n ],\n },\n properties: relationshipPropertiesSchema,\n },\n },\n {\n required: [\"allOf\"],\n properties: {\n allOf: {\n type: \"array\",\n minItems: 1,\n contains: {\n type: \"object\",\n required: [\"properties\"],\n properties: {\n properties: relationshipPropertiesSchema,\n },\n },\n },\n },\n },\n ],\n};\n\nconst relationshipDataEntrySchema = {\n type: \"object\",\n properties: {\n id: {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"string\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n ],\n },\n },\n },\n type: {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"string\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n ],\n },\n },\n },\n meta: {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"object\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n ],\n },\n },\n },\n },\n};\n\nconst relationshipDataSchemaRuleSchema = {\n anyOf: [\n relationshipDataEntrySchema,\n {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"array\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"array\"],\n },\n },\n ],\n },\n items: relationshipDataEntrySchema,\n },\n },\n ],\n};\n\nconst resourceObjectIdLeafSchema = {\n anyOf: [\n {\n type: \"object\",\n required: [\"$ref\"],\n properties: {\n $ref: {\n type: \"string\",\n },\n },\n },\n {\n type: \"object\",\n required: [\"properties\"],\n properties: {\n properties: {\n type: \"object\",\n required: [\"id\"],\n },\n },\n },\n {\n type: \"object\",\n required: [\"allOf\"],\n properties: {\n allOf: {\n type: \"array\",\n minItems: 1,\n contains: {\n anyOf: [\n {\n type: \"object\",\n required: [\"properties\"],\n properties: {\n properties: {\n type: \"object\",\n required: [\"id\"],\n },\n },\n },\n {\n type: \"object\",\n required: [\"$ref\"],\n properties: {\n $ref: {\n type: \"string\",\n },\n },\n },\n ],\n },\n },\n },\n },\n ],\n};\n\nconst resourceObjectIdOptOutSchema = {\n type: \"object\",\n required: [\"x-jsonapi-virtual-resource\"],\n properties: {\n \"x-jsonapi-virtual-resource\": {\n const: true,\n },\n },\n};\n\nconst resourceObjectIdRuleSchema = {\n anyOf: [\n resourceObjectIdOptOutSchema,\n resourceObjectIdLeafSchema,\n {\n type: \"object\",\n required: [\"items\"],\n properties: {\n items: {\n anyOf: [\n resourceObjectIdOptOutSchema,\n resourceObjectIdLeafSchema,\n {\n type: \"object\",\n required: [\"anyOf\"],\n properties: {\n anyOf: {\n type: \"array\",\n minItems: 1,\n items: {\n anyOf: [\n resourceObjectIdOptOutSchema,\n resourceObjectIdLeafSchema,\n ],\n },\n },\n },\n },\n {\n type: \"object\",\n required: [\"oneOf\"],\n properties: {\n oneOf: {\n type: \"array\",\n minItems: 1,\n items: {\n anyOf: [\n resourceObjectIdOptOutSchema,\n resourceObjectIdLeafSchema,\n ],\n },\n },\n },\n },\n ],\n },\n },\n },\n {\n type: \"object\",\n required: [\"anyOf\"],\n properties: {\n anyOf: {\n type: \"array\",\n minItems: 1,\n items: {\n anyOf: [resourceObjectIdOptOutSchema, resourceObjectIdLeafSchema],\n },\n },\n },\n },\n {\n type: \"object\",\n required: [\"oneOf\"],\n properties: {\n oneOf: {\n type: \"array\",\n minItems: 1,\n items: {\n anyOf: [resourceObjectIdOptOutSchema, resourceObjectIdLeafSchema],\n },\n },\n },\n },\n ],\n};\n\nconst schemaFirstError = (...args: Parameters) => {\n const result = schema(...args);\n\n if (result instanceof Promise) {\n return result.then((errors) =>\n Array.isArray(errors) && errors.length > 0 ? [errors[0]] : errors,\n );\n }\n\n return Array.isArray(result) && result.length > 0 ? [result[0]] : result;\n};\n\nexport default {\n description: `# [{json:api}](https://jsonapi.org/) - [v1.1](https://jsonapi.org/format/1.1/)\n\nJSON:API is a media format for building APIs in JSON, that covers how clients and servers should communicate to minimize both the number of requests and the amount of data transmitted between clients and servers. \n\nJSON:API requires use of the JSON:API media type \\`application/vnd.api+json\\` for exchanging data.\n\nThis ruleset can be found on GitHub: [spectral-jsonapi](https://github.com/philsturgeon/spectral-jsonapi)`,\n formats: [oas3],\n aliases: {\n AllContentSchemas: [\"$.paths..content['application/vnd.api+json'].schema\"],\n ResourceObjects: [\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data.properties\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data.allOf[*].properties\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data.items.properties\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data.items.allOf[*].properties\",\n \"$.paths..content[application/vnd.api+json].schema.properties.included.items.properties\",\n \"$.paths..content[application/vnd.api+json].schema.properties.included.items.allOf[*].properties\",\n \"$.paths..patch.requestBody.content[application/vnd.api+json].schema.properties.data.properties\",\n \"$.paths..patch.requestBody.content[application/vnd.api+json].schema.properties.data.allOf[*].properties\",\n ],\n POSTResourceObjects: [\n \"$.paths..post.requestBody.content[application/vnd.api+json].schema.properties.data.properties\",\n \"$.paths..post.requestBody.content[application/vnd.api+json].schema.properties.data.allOf[*].properties\",\n ],\n LinkObjects: [\"#AllContentSchemas..properties[links]\"],\n MetaObjects: [\"#AllContentSchemas..properties[meta]\"],\n Relationships: [\"#AllContentSchemas..properties[relationships]\"],\n RelationshipData: [\"#Relationships..data\"],\n POSTRelationships: [\n \"$.paths..post.requestBody.content[application/vnd.api+json].schema.properties.data.properties[relationships].properties[*]\",\n \"$.paths..post.requestBody.content[application/vnd.api+json].schema.properties.data.allOf[*].properties[relationships].properties[*]\",\n ],\n PATCHRelationships: [\n \"$.paths..patch.requestBody.content[application/vnd.api+json].schema.properties.data.properties[relationships].properties[*]\",\n \"$.paths..patch.requestBody.content[application/vnd.api+json].schema.properties.data.allOf[*].properties[relationships].properties[*]\",\n ],\n ErrorObjects: [\n \"$.paths..responses[default,400,500].content[application/vnd.api+json].schema.properties.errors.items.properties\",\n \"$.paths..responses[default,400,500].content[application/vnd.api+json].schema.properties.errors.items.allOf[*].properties\",\n \"$.paths..responses[?(@property > '400' && @property < '600')].content[application/vnd.api+json].schema.properties.errors.items.properties\",\n \"$.paths..responses[?(@property > '400' && @property < '600')].content[application/vnd.api+json].schema.properties.errors.items.allOf[*].properties\",\n ],\n },\n rules: {\n \"content-type\": {\n description: `\nRequests and responses **MUST** all use the content type of \\`application/vnd.api+json\\`.\n\n**Invalid Examples:**\n\\`\\`\\`yaml\nrequestBody:\n content:\n application/json\n\nresponses:\n '200':\n content:\n application/json\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\nrequestBody:\n content:\n application/vnd.api+json\n\nresponses:\n '200':\n content:\n application/vnd.api+json\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#content-negotiation-servers).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#content-negotiation\",\n message:\n \"Use application/vnd.api+json for all request and response bodies.\",\n severity: DiagnosticSeverity.Error,\n given: [\"$.paths..requestBody.content\", \"$.paths..responses..content\"],\n then: {\n field: \"@key\",\n function: pattern,\n functionOptions: {\n match: \"^application/vnd\\\\.api\\\\+json;?\",\n },\n },\n },\n \"406-response-code\": {\n description: `Servers **MUST** describe response code **406** paths in case of invalid \\`Accept\\` values.\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n '406':\n $ref: '#/components/responses/406Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#content-negotiation-servers).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#content-negotiation-servers\",\n message: \"Document a 406 response for invalid Accept headers.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths..responses\",\n then: {\n field: \"406\",\n function: truthy,\n },\n },\n \"415-response-code\": {\n description: `Servers **MUST** describe response code **415** on \\`POST\\` or \\`PATCH\\` paths in case of invalid \\`Content-Type\\` values.\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n '415':\n $ref: '#/components/responses/415Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#content-negotiation-servers).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#content-negotiation-servers\",\n message:\n \"Document a 415 response for invalid Content-Type headers on POST and PATCH.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][post,patch].responses\",\n then: {\n field: \"415\",\n function: truthy,\n },\n },\n \"top-level-json-object\": {\n description: `A JSON object **MUST** be at the root of every JSON:API request/response body containing data.\n\n**Valid Example:**\n\\`\\`\\`yaml\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-top-level).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-top-level\",\n message: \"Request and response bodies must have a top-level JSON object.\",\n severity: DiagnosticSeverity.Error,\n given: \"#AllContentSchemas\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n },\n \"top-level-json-properties\": {\n description: `Root JSON object **MUST** follow the jsonapi schema.\n\n**Schema Rules:**\n- **MUST** contain at least one of: \\`data\\`, \\`errors\\`, \\`meta\\` properties\n- \\`data\\` and \\`errors\\` **MAY NOT** coexist in the same document\n- **MAY** contain: \\`jsonapi\\`, \\`links\\`, \\`included\\`\n- if \\`included\\` exists, \\`data\\` is **REQUIRED**\n\n**Invalid Examples:**\n\\`\\`\\`yaml\ntype: object\nproperties:\n data:\n type: object\n errors:\n type: array\ntype: object\nproperties:\n links:\n type: object\n included:\n type: array\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\ntype: object\nproperties:\n jsonapi:\n type: object\n links:\n type: object\n meta:\n type: object\n data:\n type: object\n included:\n type: array\ntype: object\nproperties:\n errors:\n type: array\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-top-level).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-top-level\",\n message:\n \"Top-level documents must include data, errors, or meta and follow JSON:API member rules.\",\n severity: DiagnosticSeverity.Error,\n given: \"#AllContentSchemas\",\n then: {\n field: \"properties\",\n function: schema,\n functionOptions: {\n schema: {\n type: \"object\",\n anyOf: [\n {\n required: [\"data\"],\n },\n {\n required: [\"errors\"],\n },\n {\n required: [\"meta\"],\n },\n ],\n not: {\n anyOf: [\n {\n required: [\"data\", \"errors\"],\n },\n ],\n },\n dependentRequired: {\n included: [\"data\"],\n },\n properties: {\n data: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\", \"array\", \"null\"],\n },\n },\n },\n errors: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"array\"],\n },\n },\n },\n meta: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n },\n jsonapi: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n },\n links: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n },\n included: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"array\"],\n },\n },\n },\n },\n },\n },\n },\n },\n \"resource-object-properties\": {\n description: `Verify allowed properties in Resource Objects\n\n**Allowed properties:** \\`id\\`, \\`type\\`, \\`attributes\\`, \\`relationships\\`, \\`links\\`, and \\`meta\\`.\n\n**Invalid Example:**\n\\`\\`\\`yaml\ntype: object\nproperties:\n id:\n type: string\n format: uri\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - resources\n name:\n type: string\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\n - attributes\n - relationships\nproperties:\n id:\n type: string\n format: uri\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - resources\n attributes:\n type: object\n relationships:\n type: object\n meta:\n type: object\n links:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-objects).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-objects\",\n message:\n \"Resource objects may only use id, type, attributes, relationships, links, and meta.\",\n severity: DiagnosticSeverity.Error,\n given: [\"#ResourceObjects\", \"#POSTResourceObjects\"],\n then: [\n {\n field: \"type\",\n function: truthy,\n },\n {\n field: \"@key\",\n function: enumeration,\n functionOptions: {\n values: [\n \"id\",\n \"type\",\n \"attributes\",\n \"relationships\",\n \"links\",\n \"meta\",\n ],\n },\n },\n ],\n },\n \"resource-object-id-required\": {\n description: `Verify \\`id\\` property exists in Resource Object (except POST requestBody)\n\nSet \\`x-jsonapi-virtual-resource: true\\` on a resource schema to opt out when the resource is intentionally non-standard (for example, ephemeral computed resources that do not have stable IDs).\n\n**Valid Example:**\n\\`\\`\\`yaml\n# path..responses...\n# path.patch.requestBody...\n\ntype: object\nrequired:\n - id\n - type\nproperties:\n id:\n type: string\n format: uuid\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n meta:\n type: object\n\\`\\`\\`\n**NOTE:** Currently this rule triggers against \\`allOf\\` structures unless all items have \\`id\\`. Until this is corrected it is set as a warning.\n\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-objects).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-objects\",\n message: \"Resource objects should include an id property.\",\n severity: DiagnosticSeverity.Warning,\n resolved: true,\n given: [\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data[?(@property === 'type' && @ === 'object')]^\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data[?(@property === '$ref')]^\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data[?(@property === 'allOf')]^\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data[?(@property === 'anyOf')]^\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data[?(@property === 'oneOf')]^\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data.items\",\n \"$.paths..content[application/vnd.api+json].schema.properties.included.items\",\n ],\n then: {\n function: schemaFirstError,\n functionOptions: {\n dialect: \"draft2020-12\",\n allErrors: false,\n schema: resourceObjectIdRuleSchema,\n },\n },\n },\n \"resource-object-property-types\": {\n description: `\\`id\\` and \\`type\\` **MUST** be of type \\`string\\`\n\n**Invalid Example:**\n\\`\\`\\`yaml\ntype: object\nproperties:\n id:\n type: number\n type:\n type: string\n enum:\n - resources\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\nproperties:\n id:\n type: string\n format: uri\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - resources\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-identification).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-identification\",\n message: \"Resource object id and type must both be strings.\",\n severity: DiagnosticSeverity.Error,\n given: [\n \"#ResourceObjects.id\",\n \"#ResourceObjects.type\",\n \"#POSTResourceObjects.type\",\n ],\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n },\n \"resource-object-reserved-fields\": {\n description: `\\`id\\` and \\`type\\` **MUST NOT** exist in \\`attributes\\` or \\`relationships\\`\n\n**Invalid Example:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\n - attributes\nproperties:\n id:\n type: string\n format: uri\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - resources\n attributes:\n type: object\n properties:\n id:\n type: number\n type:\n type: string\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\n - attributes\nproperties:\n id:\n type: string\n format: uri\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - resources\n attributes:\n type: object\n properties:\n name:\n type: string\n descrpition:\n type: string\n meta:\n type: object\n links:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-fields).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-fields\",\n message: \"Do not define id or type inside attributes or relationships.\",\n severity: DiagnosticSeverity.Error,\n given:\n \"#AllContentSchemas..properties[attributes,relationships].properties[?(@.deprecated!=true)]~\",\n then: {\n function: pattern,\n functionOptions: {\n notMatch: \"^(id|type)$\",\n },\n },\n },\n \"attributes-object-type\": {\n description: `\\`attributes\\` property **MUST** be an \\`object\\`\n\n**Invalid Examples:**\n\\`\\`\\`yaml\n# data (Resource Object)\n# ... \nproperties:\n attributes:\n type: array \n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\n# data (Resource Object)\n# ... \nproperties:\n attributes:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-attributes).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-attributes\",\n message: \"attributes must be an object.\",\n severity: DiagnosticSeverity.Error,\n given: \"#AllContentSchemas..properties[attributes]\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n },\n \"attributes-object-properties\": {\n description: `\\`attributes\\` object **MUST NOT** contain a \\`relationships\\` or \\`links\\` property\n\n**Invalid Example:**\n\\`\\`\\`yaml\n# data (Resource Object)\n# ... \nproperties:\n attributes:\n type: object\n required:\n - name\n properties:\n name:\n type: string\n example: do-hickey\n description:\n type: string\n example: thing that does stuff\n links:\n type: array\n items:\n type: string\n relationships:\n type: array\n items:\n type: string\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\n# data (Resource Object)\n# ... \nproperties:\n attributes:\n type: object\n required:\n - name\n properties:\n name:\n type: string\n example: do-hickey\n description:\n type: string\n example: thing that does stuff\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-attributes).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-attributes\",\n message: \"attributes must not contain links or relationships.\",\n severity: DiagnosticSeverity.Error,\n given: \"#AllContentSchemas..properties[attributes]..properties\",\n then: [\n {\n field: \"relationships\",\n function: falsy,\n },\n {\n field: \"links\",\n function: falsy,\n },\n ],\n },\n \"attributes-object-foreign-keys\": {\n description: `Foreign Keys **SHOULD NOT** appear in \\`attributes\\`. **RECOMMEND** using \\`relationships\\`\n\nAlthough has-one foreign keys (e.g. author_id) are often stored internally alongside other information to be represented in a resource object, these keys **SHOULD NOT** appear as attributes.\n\nForeign keys are supported through the use of [relationships](https://jsonapi.org/format/1.1/#document-resource-object-relationships) and [related resource links](https://jsonapi.org/format/1.1/#document-resource-object-related-resource-links).\n\n**Example:** Use relationship primary data rather than foreign key.\n\\`\\`\\`yaml\ntype: object\nproperties:\n id:\n type: string\n format: uuid\n type:\n type: string\n enum:\n - widgets\n attributes:\n type: object\n required:\n - name\n properties:\n account_id:\n type: string\n name:\n type: string\n example: do-hickey\n description:\n type: string\n example: thing that does stuff\n relationships:\n type: object\n properties:\n manufacturer: #<------ a widget has a relationship with a manufacturer\n type: object\n required:\n - links\n - data\n properties:\n data:\n type: object\n properties:\n id: #<---------- primary/foreign key value\n type: string\n format: uuid\n type:\n type: string\n enum:\n - businesses\n\\`\\`\\`\n**NOTE:** This would normally be a severity of \\`hint\\`, though this can be missed visually in vscode. Until this changes it will be a severity of \\`info\\`.\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-attributes).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-attributes\",\n message:\n \"attributes should not include *_id foreign keys; model links with relationships.\",\n severity: DiagnosticSeverity.Information,\n given: \"#AllContentSchemas..properties[attributes]..properties[*]~\",\n then: {\n function: pattern,\n functionOptions: {\n notMatch: \".*_id$\",\n },\n },\n },\n \"relationships-object-type\": {\n description: `relationships **MUST** be an \\`object\\`\n\n**Invalid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: array\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-relationships).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-relationships\",\n\n severity: DiagnosticSeverity.Error,\n given: \"#Relationships\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n resolved: true,\n },\n \"relationship-schema\": {\n description: `relationship object **MUST** follow the schema\n\n**Schema Rules:**\n- **MUST** contain at least one of: \\`links\\`,\\`data\\`,\\`meta\\`\n- \\`links\\` object **MUST** contain at least one of: \\`self\\`, \\`related\\`\n- \\`data\\` **MAY** be \\`null\\`, single or array of resource identifiers\n- \\`meta\\` **MUST** be an \\`object\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\n'relationshipNameSingle':\n type: object\n required: [links, data]\n properties:\n links:\n type: object\n required: [self, related]\n properties:\n self:\n $ref: '#/components/schemas/Link'\n example: http://api.domain.com/v1/myResources/{id}/relationships/manufacturers\n related:\n type: string\n example: http://api.domain.com/v1/manufacturers/{id}\n data:\n type: object\n required: [id, type]\n properties:\n id:\n type: string\n format: uuid\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - 'relationshipNamePlural'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-relationships).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-relationships\",\n message:\n \"Each relationship object must include links, data, or meta, and match JSON:API structure.\",\n severity: DiagnosticSeverity.Error,\n given: \"#Relationships.properties[*]\",\n then: {\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: relationshipSchemaRuleSchema,\n },\n },\n },\n \"relationship-data-properties\": {\n description: `relationship \\`data\\` **MAY** only contain: \\`id\\`, \\`type\\` and \\`meta\\`\n \n **Invalid Example:**\n \\`\\`\\`yaml\n type: object\n required:\n - id\n - type\n properties:\n id:\n type: string\n format: uuid\n example: 2357c52f-6c78-4747-8106-e185c08143aa\n type:\n type: string\n attributes:\n type: object\n meta:\n type: object\n \\`\\`\\`\n\n **Valid Example:**\n \\`\\`\\`yaml\n type: object\n required:\n - id\n - type\n properties:\n id:\n type: string\n format: uuid\n example: 2357c52f-6c78-4747-8106-e185c08143aa\n type:\n type: string\n meta:\n type: object\n \\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-identifier-objects).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-identifier-objects\",\n message: \"Relationship data may only include id, type, and meta.\",\n severity: DiagnosticSeverity.Error,\n given: [\n \"#RelationshipData.properties\",\n \"#RelationshipData.allOf[*].properties\",\n \"#RelationshipData.items.properties\",\n \"#RelationshipData.items.allOf[*].properties\",\n ],\n then: {\n field: \"@key\",\n function: enumeration,\n functionOptions: {\n values: [\"id\", \"type\", \"meta\"],\n },\n },\n },\n \"relationship-data-schema\": {\n description: `relationship data items **MUST** follow schema\n\n**Schema Rules:**\n- \\`id\\` **MUST** be a \\`string\\`\n- \\`type\\` **MUST** be a \\`string\\`\n- \\`meta\\` **MUST** be an \\`object\\`\n\n**Invalid Examples:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\nproperties:\n id:\n type: number\n type:\n type: number\n meta:\n type: object\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\nproperties:\n id:\n type: string\n format: uuid\n example: 2357c52f-6c78-4747-8106-e185c08143aa\n type:\n type: string\n meta:\n type: object \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-identifier-objects).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-identifier-objects\",\n message:\n \"Relationship data entries must match the resource identifier schema.\",\n severity: DiagnosticSeverity.Error,\n given: [\n \"#RelationshipData.properties\",\n \"#RelationshipData.allOf[0].properties\",\n \"#RelationshipData.items.properties\",\n \"#RelationshipData.items.allOf[0].properties\",\n ],\n then: {\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: relationshipDataSchemaRuleSchema,\n },\n },\n },\n \"meta-object\": {\n description: `\\`meta\\` property **MUST** be of type \\`object\\`\n\n**Invalid Examples:**\n\\`\\`\\`yaml\nproperties:\n meta:\n type: string \n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nproperties:\n meta:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-meta).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-meta\",\n message: \"meta must be an object.\",\n severity: DiagnosticSeverity.Error,\n given: \"#MetaObjects\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n },\n \"links-object\": {\n description: `\\`links\\` property **MUST** be an \\`object\\`\n\n**Invalid Examples:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: array \n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-links).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-links\",\n message: \"links must be an object.\",\n severity: DiagnosticSeverity.Error,\n given: \"#LinkObjects\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n },\n \"links-object-schema\": {\n description: `A link **MUST** be represented as either a \\`string\\` containing the link's URL or an \\`object\\`.\n\n**Invalid Examples:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: object\n properties:\n self:\n type: number\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: object\n properties:\n self:\n oneOf:\n - type: string\n format: uri\n - type: object\n required:\n - href\n properties:\n href:\n type: string\n format: uri\n meta:\n type: object \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-links).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-links\",\n message: \"Each link value must be a string URL or a link object.\",\n severity: DiagnosticSeverity.Error,\n given: \"#LinkObjects.properties[*]..[?(@property === 'type')]^\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\", \"object\"],\n },\n },\n },\n \"links-object-schema-properties\": {\n description: `objects contained within a \\`links\\` object **MUST** contain \\`href\\` (string) and **MAY** contain \\`meta\\`\n\nA link **MUST** be represented as either a \\`string\\` containing the link's URL or an \\`object\\`.\n\n**Invalid Examples:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: object\n properties:\n self:\n oneOf:\n - type: string\n format: uri\n - type: object\n properties:\n url:\n type: string\n format: uri\n meta:\n type: object \n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: object\n properties:\n self:\n oneOf:\n - type: string\n format: uri\n - type: object\n required:\n - href\n properties:\n href:\n type: string\n format: uri\n meta:\n type: object \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-links).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-links\",\n message:\n \"Link objects may only contain href and meta, and must include href.\",\n severity: DiagnosticSeverity.Error,\n given: \"#LinkObjects.properties..properties\",\n then: [\n {\n field: \"@key\",\n function: enumeration,\n functionOptions: {\n values: [\"href\", \"meta\"],\n },\n },\n {\n field: \"href\",\n function: truthy,\n },\n {\n field: \"href.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n ],\n },\n \"jsonapi-object\": {\n description: `\\`jsonapi\\` object **MUST** match schema\n\n**Schema Rules:**\n- \\`jsonapi\\` **MUST** be an \\`object\\`\n- **MUST** contain \\`string\\` \\`version\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nproperties:\n jsonapi:\n type: object\n properties:\n version:\n type: string\n example: '1.0'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-jsonapi-object).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-jsonapi-object\",\n message: \"jsonapi must be an object with a string version.\",\n severity: DiagnosticSeverity.Error,\n given: \"#AllContentSchemas..properties[?(@property === 'jsonapi')]\",\n then: [\n {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n {\n field: \"properties[*]~\",\n function: enumeration,\n functionOptions: {\n values: [\"version\"],\n },\n },\n {\n field: \"properties.version\",\n function: truthy,\n },\n {\n field: \"properties.version.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n ],\n },\n \"get-200-response-code\": {\n description: `\\`GET\\` requests **MUST** support response code 200\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /tickets/{id}:\n get:\n responses:\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /tickets/{id}:\n get:\n responses:\n '200':\n $ref: '#/components/responses/Ticket'\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-resources-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#fetching-resources-responses\",\n message: \"GET operations must define a 200 response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][get].responses\",\n then: {\n field: \"200\",\n function: truthy,\n },\n },\n \"get-404-response-code\": {\n description: `\\`GET\\` requests to single resource endpoints **MUST** support response code 404\n\nPer the JSON:API specification, a server MUST respond with 404 Not Found when\nprocessing a request to fetch a single resource that does not exist.\n\nSingle resource endpoints are identified by a path parameter (e.g. \\`{id}\\`).\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /tickets/{id}:\n get:\n responses:\n '200':\n $ref: '#/components/responses/Ticket'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\npaths:\n /tickets/{id}:\n get:\n responses:\n '200':\n $ref: '#/components/responses/Ticket'\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-resources-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#fetching-resources-responses\",\n message: \"Single-resource GET operations must define a 404 response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[?(@property.match(/\\{[^}]+\\}/))][get].responses\",\n then: {\n field: \"404\",\n function: truthy,\n },\n },\n \"400-response-code\": {\n description: `Servers **MUST** document and support response code **400** for all paths\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n '400':\n $ref: '#/components/responses/400Error'\n\\`\\`\\``,\n message: \"Document a 400 response for every operation.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths..responses\",\n then: {\n field: \"400\",\n function: truthy,\n },\n },\n \"include-parameter\": {\n description: `\\`include\\` query param **MUST** be a string array (csv)\n\n**Valid Example:**\n\\`\\`\\`yaml\nname: include\ndescription: csv formatted parameter of relationship names to include in response\nin: query\nstyle: form\nexplode: false\nschema:\ntype: array\nitems:\n type: string\nexample: [\"ratings\",\"comments.author\"]\n\\`\\`\\`\nExample query string: \\`/articles/1?include=comments.author,ratings\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-includes).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#fetching-includes\",\n message: \"include must be a query parameter using CSV array style.\",\n severity: DiagnosticSeverity.Error,\n given:\n \"$.paths..parameters[*][?(@property === 'name' && @ === 'include')]^\",\n then: [\n {\n field: \"in\",\n function: enumeration,\n functionOptions: {\n values: [\"query\"],\n },\n },\n {\n field: \"style\",\n function: truthy,\n },\n {\n field: \"style\",\n function: enumeration,\n functionOptions: {\n values: [\"form\"],\n },\n },\n {\n field: \"explode\",\n function: defined,\n },\n {\n field: \"explode\",\n function: falsy,\n },\n {\n field: \"schema\",\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"array\"],\n },\n items: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n },\n },\n },\n },\n },\n ],\n },\n \"fields-parameter\": {\n description: `\\`fields\\` query param **MUST** be a \\`deepObject\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nname: fields\ndescription: schema for 'fields' query parameter\nin: query\nschema:\n type: object\nstyle: deepObject\nexample:\n people: \"name\"\n articles: \"title,body\"\n\\`\\`\\`\nExample query string: \\`/articles?fields[articles]=title,body&fields[people]=name\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-sparse-fieldsets).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#fetching-sparse-fieldsets\",\n message: \"fields must be a query parameter using deepObject style.\",\n severity: DiagnosticSeverity.Error,\n given:\n \"$.paths..parameters[*][?(@property === 'name' && @ === 'fields')]^\",\n then: [\n {\n field: \"in\",\n function: enumeration,\n functionOptions: {\n values: [\"query\"],\n },\n },\n {\n field: \"style\",\n function: truthy,\n },\n {\n field: \"style\",\n function: enumeration,\n functionOptions: {\n values: [\"deepObject\"],\n },\n },\n {\n field: \"schema\",\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n },\n },\n },\n ],\n },\n \"sort-parameter\": {\n description: `\\`sort\\` query param **MUST** be a string array (csv)\n\n**Valid Example:**\n\\`\\`\\`yaml\nname: sort\ndescription: csv formatted parameter of fields to sort by\nin: query\nstyle: form\nexplode: false\nschema:\n type: array\n items:\n type: string\nexample: [\"-age\",\"name\"]\n\\`\\`\\`\nExample query string: \\`/people?sort=-age,name\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-sorting).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#fetching-sorting\",\n message: \"sort must be a query parameter using CSV array style.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths..parameters[*][?(@property === 'name' && @ === 'sort')]^\",\n then: [\n {\n field: \"in\",\n function: enumeration,\n functionOptions: {\n values: [\"query\"],\n },\n },\n {\n field: \"style\",\n function: truthy,\n },\n {\n field: \"style\",\n function: enumeration,\n functionOptions: {\n values: [\"form\"],\n },\n },\n {\n field: \"explode\",\n function: defined,\n },\n {\n field: \"explode\",\n function: falsy,\n },\n {\n field: \"schema\",\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"array\"],\n },\n items: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n },\n },\n },\n },\n },\n ],\n },\n \"page-parameter\": {\n description: `\\`page\\` query param **MUST** follow schema\n\n**Schema Rules:**\n- **MUST** be type \\`object\\`\n- **MUST** be style \\`deepObject\\`\n- contents depend on strategy:\n - cursor: \\`string\\` \\`cursor\\` and \\`int32\\` \\`limit\\`\n - offset: \\`int32\\` \\`offset\\` and \\`int32\\` \\`limit\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\nname: page\ndescription: Paging parameter, cursor based.\nin: query\nschema:\n type: object\n required: [\"cursor\",\"limit\"]\n properties:\n cursor:\n type: string\n limit:\n type: integer\n format: int32\nstyle: deepObject\n\nname: page\ndescription: Paging parameter, offset based.\nin: query\nschema:\n type: object\n required: [\"offset\",\"limit\"]\n properties:\n cursor:\n type: integer\n format: int32\n limit:\n type: integer\n format: int32\nstyle: deepObject\n\\`\\`\\`\nExample query string:\n- \\`/myResources?page[cursor]=fdsJ34lkjSfjsdfk&page[limit]=10\\`\n- \\`/myResources?page[offset]=2&page[limit]=10\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-pagination).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#fetching-pagination\",\n message:\n \"page must be a deepObject query parameter that matches the pagination schema.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths..parameters[*][?(@property === 'name' && @ === 'page')]^\",\n then: [\n {\n field: \"in\",\n function: enumeration,\n functionOptions: {\n values: [\"query\"],\n },\n },\n {\n field: \"style\",\n function: truthy,\n },\n {\n field: \"style\",\n function: enumeration,\n functionOptions: {\n values: [\"deepObject\"],\n },\n },\n {\n field: \"schema\",\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\"],\n },\n properties: {\n type: \"object\",\n additionalProperties: false,\n properties: {\n cursor: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n },\n offset: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"integer\"],\n },\n format: {\n type: \"string\",\n enum: [\"int32\"],\n },\n minimum: {\n type: \"integer\",\n minimum: 0,\n },\n },\n },\n limit: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"integer\"],\n },\n format: {\n type: \"string\",\n enum: [\"int32\"],\n },\n },\n },\n },\n },\n },\n },\n },\n },\n ],\n },\n \"post-requests-single-object\": {\n description: `POST requests **MUST** only contain a single resource object\n\n**Invalid Example:**\n\\`\\`\\`yaml\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n required:\n - data\n properties:\n data:\n type: array\n items: \n $ref: '#/components/schemas/MyResourcePostObject'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n required:\n - data\n properties:\n data:\n $ref: '#/components/schemas/MyResourcePostObject'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#crud-creating\",\n message:\n \"POST request data must be a single resource object, not an array.\",\n severity: DiagnosticSeverity.Error,\n given:\n \"$.paths..post.requestBody.content[application/vnd.api+json].schema.properties.data[?(@property==='type' && @ === 'array')]\",\n then: {\n function: falsy,\n },\n },\n \"post-relationships\": {\n description: `If relationships exist in POST request, \\`data\\` is REQUIRED\n\n**Invalid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: object\n properties:\n manufacturer:\n type: object\n properties:\n links:\n type: object\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: object\n properties:\n manufacturer:\n type: object\n properties:\n data:\n type: object\n links:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#crud-creating\",\n message: \"If POST relationships are present, they must include data.\",\n severity: DiagnosticSeverity.Error,\n given: \"#POSTRelationships\",\n then: {\n field: \"required\",\n function: schema,\n functionOptions: {\n schema: {\n type: \"array\",\n items: {\n type: \"string\",\n anyOf: [\n {\n enum: [\"data\"],\n },\n {\n enum: [\"data\", \"links\", \"meta\"],\n },\n ],\n },\n },\n },\n },\n },\n \"403-response-code\": {\n description: `Servers **MUST** document and support response code **403** for all paths\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n '403':\n $ref: '#/components/responses/403Error'\n\\`\\`\\``,\n message: \"Document a 403 response for every operation.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths..responses\",\n then: {\n field: \"403\",\n function: truthy,\n },\n },\n \"201-response-location-header\": {\n description: `A POST 201 response **SHOULD** return a \\`Location\\` header identifying the location of the newly created resource.\n\n**Valid Example:**\n\\`\\`\\`yaml\nheaders:\n Location:\n schema:\n type: string\n format: uri\n example: 'http://example.com/photos/550e8400-e29b-41d4-a716-446655440000'\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-creating-responses\",\n message: \"POST 201 responses should include a Location header.\",\n severity: DiagnosticSeverity.Information,\n given: \"$.paths[*][post].responses.201.headers\",\n then: {\n field: \"Location\",\n function: defined,\n },\n },\n \"post-201-response\": {\n description: `A POST 201 response **MUST** return a document that contains the resource as primary data.\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-creating-responses\",\n message:\n \"POST 201 responses should include primary resource data using keys data, meta, jsonapi, or links.\",\n severity: DiagnosticSeverity.Information,\n given:\n \"$.paths[*][post].responses.201.content[application/vnd.api+json].schema\",\n then: {\n field: \"required\",\n function: schema,\n functionOptions: {\n schema: {\n type: \"array\",\n items: {\n type: \"string\",\n enum: [\"data\", \"meta\", \"jsonapi\", \"links\"],\n },\n },\n },\n },\n },\n \"post-2xx-response-codes\": {\n description: `\\`POST\\` requests **MUST** support one Of the following 2xx codes: 201, 202 or 204\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '201':\n $ref: '#/components/responses/MyResource_Single'\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources:\n post:\n responses:\n '202':\n description: Accepted.\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources:\n post:\n responses:\n '204':\n description: Successful Operation. No Content.\n '404':\n $ref: '#/components/responses/404Error' \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-creating-responses\",\n message:\n \"POST operations must define at least one success response: 201, 202, or 204.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][post].responses\",\n then: {\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n anyOf: [\n {\n required: [\"201\"],\n },\n {\n required: [\"202\"],\n },\n {\n required: [\"204\"],\n },\n ],\n },\n },\n },\n },\n \"post-409-response-code\": {\n description: `\\`POST\\` requests **MUST** document and support response code 409\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '201':\n $ref: '#/components/responses/MyResource_Single'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '201':\n $ref: '#/components/responses/MyResource_Single'\n '409':\n $ref: '#/components/responses/409Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-creating-responses\",\n message: \"POST operations must define a 409 conflict response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][post].responses\",\n then: {\n field: \"409\",\n function: truthy,\n },\n },\n \"post-409-response\": {\n description: `POST 409 response **SHOULD** return \\`source\\` property to identify conflict\n\n**Example:**\n\\`\\`\\`yaml\n# Example showing use of source in error object.\n\ntype: array\nmaxItems:1\nitems:\n type: object\n properties:\n id:\n type: string\n status:\n type: string\n const: 409\n title:\n type: string\n const: Conflict\n source:\n type: object\n properties:\n pointer:\n oneOf:\n - type: string\n format: json-pointer\n example: /data/attributes/id\n - type: array\n items:\n type: string\n format: json-pointer\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-creating-responses\",\n message:\n \"POST 409 responses should include source to explain the conflict.\",\n severity: DiagnosticSeverity.Information,\n given:\n \"$.paths[*][post].responses[409].content['application/vnd.api+json'].schema.properties\",\n then: {\n field: \"source\",\n function: truthy,\n },\n },\n \"put-disallowed\": {\n description: `\\`PUT\\` verb is not allowed in jsonapi, use \\`PATCH\\` instead.\n\n**Invalid Example:**\n\\`\\`\\`yaml\n/myResources/{id}:\n put:\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\n/myResources/{id}:\n patch:\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#crud-updating\",\n message: \"PUT is not allowed by JSON:API; use PATCH.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][put]\",\n then: [\n {\n function: falsy,\n },\n ],\n },\n \"patch-requests-single-object\": {\n description: `PATCH requests **MUST** only contain a single resource object\n\n**Invalid Example:**\n\\`\\`\\`yaml\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n required:\n - data\n properties:\n data:\n type: array\n items: \n $ref: '#/components/schemas/MyResourcePostObject'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n required:\n - data\n properties:\n data:\n $ref: '#/components/schemas/MyResourcePostObject'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#crud-creating\",\n message:\n \"PATCH request data must be a single resource object, not an array.\",\n severity: DiagnosticSeverity.Error,\n given:\n \"$.paths..patch.requestBody.content[application/vnd.api+json].schema.properties.data[?(@property==='type' && @ === 'array')]\",\n then: {\n function: falsy,\n },\n },\n \"patch-relationships\": {\n description: `If relationships exist in PATCH request, \\`data\\` is REQUIRED\n\n**Invalid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: object\n properties:\n manufacturer:\n type: object\n properties:\n links:\n type: object\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: object\n properties:\n manufacturer:\n type: object\n properties:\n data:\n type: object\n links:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating-resource-relationships).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#crud-creating\",\n message: \"If PATCH relationships are present, they must include data.\",\n severity: DiagnosticSeverity.Error,\n given: \"#PATCHRelationships\",\n then: {\n field: \"required\",\n function: schema,\n functionOptions: {\n schema: {\n type: \"array\",\n items: {\n type: \"string\",\n anyOf: [\n {\n enum: [\"data\"],\n },\n {\n enum: [\"data\", \"links\", \"meta\"],\n },\n ],\n },\n },\n },\n },\n },\n \"patch-2xx-response-codes\": {\n description: `\\`PATCH\\` requests **MUST** support at least one of the following 2xx codes: 200, 202 or 204\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Single'\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources/{id}:\n patch:\n responses:\n '202':\n description: Accepted.\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources/{id}:\n patch:\n responses:\n '204':\n description: Successful Operation. No Content.\n '404':\n $ref: '#/components/responses/404Error' \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-updating-responses\",\n message:\n \"PATCH operations must define at least one success response: 200, 202, or 204.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][patch].responses\",\n then: {\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n anyOf: [\n {\n required: [\"200\"],\n },\n {\n required: [\"202\"],\n },\n {\n required: [\"204\"],\n },\n ],\n },\n },\n },\n },\n \"patch-404-response-code\": {\n description: `\\`PATCH\\` requests **MUST** support response code 404\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Single'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Single'\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-updating-responses\",\n message: \"PATCH operations must define a 404 response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][patch].responses\",\n then: {\n field: \"404\",\n function: truthy,\n },\n },\n \"patch-409-response-code\": {\n description: `\\`PATCH\\` requests **MUST** document and support response code 409\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Single'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Single'\n '409':\n $ref: '#/components/responses/409Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-updating-responses\",\n message: \"PATCH operations must define a 409 conflict response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][patch].responses\",\n then: {\n field: \"409\",\n function: truthy,\n },\n },\n \"patch-409-response\": {\n description: `PATCH 409 response **SHOULD** return \\`source\\` property to identify conflict\n\n**Example:**\n\\`\\`\\`yaml\n# Example showing use of source in error object.\n# Examples describe a conflict between the {id} parameter and the id field in the request body.\n\ntype: array\nitems:\n type: object\n properties:\n id:\n type: string\n status:\n type: string\n enum:\n - 409\n title:\n type: string\n enum:\n - Conflict\n source:\n type: object\n properties:\n pointer:\n oneOf:\n - type: string\n format: json-pointer\n example: /data/attributes/id\n - type: array\n items:\n type: string\n format: json-pointer\n parameter:\n type: string\n example: id\nmaxItems:1\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-updating-responses\",\n message:\n \"PATCH 409 responses should include source to explain the conflict.\",\n severity: DiagnosticSeverity.Information,\n given: \"$.paths[*][patch].responses\",\n then: {\n field: \"409\",\n function: falsy,\n },\n },\n \"delete-2xx-response-codes\": {\n description: `\\`DELETE\\` requests **MUST** support at least one of the following 2xx codes: 200, 202, or 204\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n delete:\n responses:\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n delete:\n responses:\n '200':\n $ref: '#/components/responses/delete_meta_data'\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources/{id}:\n delete:\n responses:\n '202':\n description: Accepted.\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources/{id}:\n delete:\n responses:\n '204':\n description: Successful Operation. No Content.\n '404':\n $ref: '#/components/responses/404Error' \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-deleting-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-deleting-responses\",\n message:\n \"DELETE operations must define at least one success response: 200, 202, or 204.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][delete].responses\",\n then: {\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n anyOf: [\n {\n required: [\"200\"],\n },\n {\n required: [\"202\"],\n },\n {\n required: [\"204\"],\n },\n ],\n },\n },\n },\n },\n \"delete-404-response-code\": {\n description: `\\`DELETE\\` requests **MUST** support response code 404\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n delete:\n responses:\n '204':\n description: Successful Operation. No Content.\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n delete:\n responses:\n '204':\n description: Successful Operation. No Content.\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-deleting-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-deleting-responses\",\n message: \"DELETE operations must define a 404 response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][delete].responses\",\n then: {\n field: \"404\",\n function: truthy,\n },\n },\n \"error-object-schema\": {\n description: `error objects **MUST** follow schema\n\n**Schema Rules:**\n- **MAY** contain the following fields: \\`id\\`,\\`links\\`,\\`status\\`,\\`code\\`,\\`title\\`,\\`detail\\`,\\`source\\`,\\`meta\\`\n- \\`id\\`,\\`status\\`,\\`code\\`,\\`title\\`,\\`detail\\` **MUST** be an \\`object\\`\n- \\`links\\`,\\`source\\`,\\`meta\\` **MUST** be an \\`object\\`\n\n**Valid Example:** Using all fields\n\\`\\`\\`yaml\ntype: object\ndescription: JSON:API Error Object\nproperties:\n id:\n type: string\n description: a unique identifier for this particular occurrence of the problem\n links:\n type: object\n description: links that lead to further detail about the particular occurrence of the problem\n properties:\n about:\n $ref: '#/components/schemas/Link'\n status:\n type: string\n description: the HTTP status code applicable to this problem\n code:\n type: string\n description: an application-specific error code\n title:\n type: string\n description: a human-readable summary specific of the problem. Usually the http status friendly name.\n detail:\n type: string\n description: a human-readable explanation specific to this occurrence of the problem\n source:\n type: object\n description: an object containing references to the source of the error\n properties:\n pointer:\n description: a JSON Pointer [RFC6901] to the associated entity in the request document\n oneOf:\n - type: string\n format: json-pointer\n - type: array\n items:\n type: string\n format: json-pointer\n parameter:\n description: a string indicating which URI query parameter caused the error\n type: string\n meta:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#error-objects).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#error-objects\",\n message: \"Error objects must follow the JSON:API error object schema.\",\n severity: DiagnosticSeverity.Error,\n given: \"#ErrorObjects\",\n then: [\n {\n field: \"@key\",\n function: enumeration,\n functionOptions: {\n values: [\n \"id\",\n \"links\",\n \"status\",\n \"code\",\n \"title\",\n \"detail\",\n \"source\",\n \"meta\",\n ],\n },\n },\n {\n field: \"links.type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n {\n field: \"source.type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n {\n field: \"meta.type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n {\n field: \"status.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n {\n field: \"code.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n {\n field: \"title.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n {\n field: \"detail.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n ],\n },\n \"error-object-links\": {\n description: `error object \\`links\\` property **MUST** contain an \\`about\\` link.\n\n**Invalid Example:**\n\\`\\`\\`yaml\n# Error Object\n# ...\nlinks:\n type: object\n description: links that lead to further detail about the particular occurrence of the problem\n properties:\n self:\n $ref: '#/components/schemas/Link'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\n# Error Object\n# ...\nlinks:\n type: object\n description: links that lead to further detail about the particular occurrence of the problem\n properties:\n about:\n $ref: '#/components/schemas/Link'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#error-objects).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#error-objects\",\n message: \"Error object links must include about.\",\n severity: DiagnosticSeverity.Error,\n given: \"#ErrorObjects.links.properties\",\n then: [\n {\n field: \"about\",\n function: truthy,\n },\n ],\n },\n \"error-object-source-schema\": {\n description: `error object \\`source\\` **MUST** follow schema\n\n**Schema Rules:**\n- \\`source\\` **MUST** be an \\`object\\`\n- **MUST** contain at least one of: \\`pointer\\` or \\`parameter\\`\n- \\`parameter\\` **MUST** be a \\`string\\`\n- \\`pointer\\` **MUST** be a single json-pointer[[RFC6901]](https://tools.ietf.org/html/rfc6901) string or array of json-pointer strings\n\n**Valid Example:**\n\\`\\`\\`yaml\ntype: object\ndescription: an object containing references to the source of the error\nproperties:\n pointer:\n description: a JSON Pointer [RFC6901] to the associated entity in the request document\n oneOf:\n - type: string\n format: json-pointer\n - type: array\n items:\n type: string\n format: json-pointer\n parameter:\n description: a string indicating which URI query parameter caused the error\n type: string\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#error-objects).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#error-objects\",\n message:\n \"Error object source must include pointer or parameter and match schema.\",\n severity: DiagnosticSeverity.Error,\n given: \"#ErrorObjects.source\",\n then: {\n field: \"properties\",\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n properties: {\n parameter: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n },\n pointer: {\n type: \"object\",\n properties: {\n oneOf: {\n type: \"array\",\n items: {\n oneOf: [\n {\n type: \"object\",\n required: [\"type\", \"format\"],\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n format: {\n type: \"string\",\n enum: [\"json-pointer\"],\n },\n },\n },\n {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"array\"],\n },\n items: {\n type: \"object\",\n required: [\"type\", \"format\"],\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n format: {\n type: \"string\",\n enum: [\"json-pointer\"],\n },\n },\n },\n },\n },\n ],\n },\n },\n },\n },\n },\n },\n },\n },\n },\n },\n};\n","var HttpOperationSecurityDeclarationTypes;\n(function (HttpOperationSecurityDeclarationTypes) {\n /** Indicates that the operation has no security declarations. */\n HttpOperationSecurityDeclarationTypes[\"None\"] = \"none\";\n /** Indicates that the operation has explicit security declarations. */\n HttpOperationSecurityDeclarationTypes[\"Declared\"] = \"declared\";\n /** Indicates that the operation inherits its security declarations from the service. */\n HttpOperationSecurityDeclarationTypes[\"InheritedFromService\"] = \"inheritedFromService\";\n})(HttpOperationSecurityDeclarationTypes || (HttpOperationSecurityDeclarationTypes = {}));\nvar HttpParamStyles;\n(function (HttpParamStyles) {\n /** Used when OAS2 type !== array */\n HttpParamStyles[\"Unspecified\"] = \"unspecified\";\n /**\n * OAS 3.x style simple\n * OAS 2 collectionFormat csv\n */\n HttpParamStyles[\"Simple\"] = \"simple\";\n /**\n * OAS 3.x style matrix\n * OAS 2 collectionFormat no support\n */\n HttpParamStyles[\"Matrix\"] = \"matrix\";\n /**\n * OAS 3.x style label\n * OAS 2 collectionFormat no support\n */\n HttpParamStyles[\"Label\"] = \"label\";\n /**\n * OAS 3.x style form\n * OAS 2 collectionFormat\n * * csv, when explode === false\n * * multi, when explode === true\n */\n HttpParamStyles[\"Form\"] = \"form\";\n /**\n * OAS 3.x no support\n * OAS 2 collectionFormat csv when explode === undefined\n */\n HttpParamStyles[\"CommaDelimited\"] = \"commaDelimited\";\n /**\n * OAS 3.x style spaceDelimited\n * OAS 2 collectionFormat ssv\n */\n HttpParamStyles[\"SpaceDelimited\"] = \"spaceDelimited\";\n /**\n * OAS 3.x style spaceDelimited\n * OAS 2 collectionFormat pipes\n */\n HttpParamStyles[\"PipeDelimited\"] = \"pipeDelimited\";\n /**\n * OAS 3.x style deepObject\n * OAS 2 collectionFormat no support\n */\n HttpParamStyles[\"DeepObject\"] = \"deepObject\";\n /**\n * OAS 3.x style no support\n * OAS 2 collectionFormat tsv\n */\n HttpParamStyles[\"TabDelimited\"] = \"tabDelimited\";\n})(HttpParamStyles || (HttpParamStyles = {}));\n\n/**\n * Represents the severity of diagnostics.\n */\nvar DiagnosticSeverity;\n(function (DiagnosticSeverity) {\n /**\n * Something not allowed by the rules of a language or other means.\n */\n DiagnosticSeverity[DiagnosticSeverity[\"Error\"] = 0] = \"Error\";\n /**\n * Something suspicious but allowed.\n */\n DiagnosticSeverity[DiagnosticSeverity[\"Warning\"] = 1] = \"Warning\";\n /**\n * Something to inform about but not a problem.\n */\n DiagnosticSeverity[DiagnosticSeverity[\"Information\"] = 2] = \"Information\";\n /**\n * Something to hint to a better way of doing it, like proposing\n * a refactoring.\n */\n DiagnosticSeverity[DiagnosticSeverity[\"Hint\"] = 3] = \"Hint\";\n})(DiagnosticSeverity || (DiagnosticSeverity = {}));\n\n/**\n * Stoplight node types\n */\nvar NodeType;\n(function (NodeType) {\n NodeType[\"Article\"] = \"article\";\n NodeType[\"HttpService\"] = \"http_service\";\n NodeType[\"HttpServer\"] = \"http_server\";\n NodeType[\"HttpOperation\"] = \"http_operation\";\n NodeType[\"HttpCallback\"] = \"http_callback\";\n NodeType[\"HttpWebhook\"] = \"http_webhook\";\n NodeType[\"Model\"] = \"model\";\n NodeType[\"Generic\"] = \"generic\";\n NodeType[\"Unknown\"] = \"unknown\";\n NodeType[\"TableOfContents\"] = \"table_of_contents\";\n NodeType[\"SpectralRuleset\"] = \"spectral_ruleset\";\n NodeType[\"Styleguide\"] = \"styleguide\";\n NodeType[\"Image\"] = \"image\";\n NodeType[\"StoplightResolutions\"] = \"stoplight_resolutions\";\n NodeType[\"StoplightOverride\"] = \"stoplight_override\";\n})(NodeType || (NodeType = {}));\n/**\n * Node data formats\n */\nvar NodeFormat;\n(function (NodeFormat) {\n NodeFormat[\"Json\"] = \"json\";\n NodeFormat[\"Markdown\"] = \"markdown\";\n NodeFormat[\"Yaml\"] = \"yaml\";\n NodeFormat[\"Javascript\"] = \"javascript\";\n NodeFormat[\"Apng\"] = \"apng\";\n NodeFormat[\"Avif\"] = \"avif\";\n NodeFormat[\"Bmp\"] = \"bmp\";\n NodeFormat[\"Gif\"] = \"gif\";\n NodeFormat[\"Jpeg\"] = \"jpeg\";\n NodeFormat[\"Png\"] = \"png\";\n NodeFormat[\"Svg\"] = \"svg\";\n NodeFormat[\"Webp\"] = \"webp\";\n})(NodeFormat || (NodeFormat = {}));\n\nexport { DiagnosticSeverity, HttpOperationSecurityDeclarationTypes, HttpParamStyles, NodeFormat, NodeType };\n"],"mappings":"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","names":["HttpOperationSecurityDeclarationTypes","HttpParamStyles","DiagnosticSeverity","NodeType","NodeFormat"]} \ No newline at end of file +{"version":3,"sources":["../src/ruleset.ts","../node_modules/@stoplight/types/dist/index.mjs"],"sourcesContent":["import {\n defined,\n enumeration,\n truthy,\n falsy,\n pattern,\n schema,\n} from \"@stoplight/spectral-functions\";\nimport { oas3 } from \"@stoplight/spectral-formats\";\nimport { DiagnosticSeverity } from \"@stoplight/types\";\n\nconst relationshipPropertiesSchema = {\n type: \"object\",\n anyOf: [\n { required: [\"links\"] },\n { required: [\"data\"] },\n { required: [\"meta\"] },\n ],\n properties: {\n links: {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"object\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n ],\n },\n properties: {\n type: \"object\",\n anyOf: [{ required: [\"self\"] }, { required: [\"related\"] }],\n properties: {\n self: {\n type: \"object\",\n },\n related: {\n type: \"object\",\n },\n },\n },\n },\n },\n data: {\n type: \"object\",\n anyOf: [\n {\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\", \"array\", \"null\"],\n },\n },\n },\n {\n properties: {\n type: {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"object\", \"array\", \"null\"],\n },\n },\n },\n },\n {\n properties: {\n oneOf: {\n type: \"array\",\n minItems: 1,\n },\n },\n },\n ],\n },\n meta: {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"object\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n ],\n },\n },\n },\n },\n additionalProperties: false,\n};\n\nconst relationshipSchemaRuleSchema = {\n type: \"object\",\n anyOf: [\n {\n required: [\"properties\"],\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"object\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n ],\n },\n properties: relationshipPropertiesSchema,\n },\n },\n {\n required: [\"allOf\"],\n properties: {\n allOf: {\n type: \"array\",\n minItems: 1,\n contains: {\n type: \"object\",\n required: [\"properties\"],\n properties: {\n properties: relationshipPropertiesSchema,\n },\n },\n },\n },\n },\n ],\n};\n\nconst relationshipDataEntrySchema = {\n type: \"object\",\n properties: {\n id: {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"string\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n ],\n },\n },\n },\n type: {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"string\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n ],\n },\n },\n },\n meta: {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"object\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n ],\n },\n },\n },\n },\n};\n\nconst relationshipDataSchemaRuleSchema = {\n anyOf: [\n relationshipDataEntrySchema,\n {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"array\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"array\"],\n },\n },\n ],\n },\n items: relationshipDataEntrySchema,\n },\n },\n ],\n};\n\nconst resourceObjectIdLeafSchema = {\n anyOf: [\n {\n type: \"object\",\n required: [\"$ref\"],\n properties: {\n $ref: {\n type: \"string\",\n },\n },\n },\n {\n type: \"object\",\n required: [\"properties\"],\n properties: {\n properties: {\n type: \"object\",\n required: [\"id\"],\n },\n },\n },\n {\n type: \"object\",\n required: [\"allOf\"],\n properties: {\n allOf: {\n type: \"array\",\n minItems: 1,\n contains: {\n anyOf: [\n {\n type: \"object\",\n required: [\"properties\"],\n properties: {\n properties: {\n type: \"object\",\n required: [\"id\"],\n },\n },\n },\n {\n type: \"object\",\n required: [\"$ref\"],\n properties: {\n $ref: {\n type: \"string\",\n },\n },\n },\n ],\n },\n },\n },\n },\n ],\n};\n\nconst resourceObjectIdOptOutSchema = {\n type: \"object\",\n required: [\"x-jsonapi-virtual-resource\"],\n properties: {\n \"x-jsonapi-virtual-resource\": {\n const: true,\n },\n },\n};\n\nconst resourceObjectIdRuleSchema = {\n anyOf: [\n resourceObjectIdOptOutSchema,\n resourceObjectIdLeafSchema,\n {\n type: \"object\",\n required: [\"items\"],\n properties: {\n items: {\n anyOf: [\n resourceObjectIdOptOutSchema,\n resourceObjectIdLeafSchema,\n {\n type: \"object\",\n required: [\"anyOf\"],\n properties: {\n anyOf: {\n type: \"array\",\n minItems: 1,\n items: {\n anyOf: [\n resourceObjectIdOptOutSchema,\n resourceObjectIdLeafSchema,\n ],\n },\n },\n },\n },\n {\n type: \"object\",\n required: [\"oneOf\"],\n properties: {\n oneOf: {\n type: \"array\",\n minItems: 1,\n items: {\n anyOf: [\n resourceObjectIdOptOutSchema,\n resourceObjectIdLeafSchema,\n ],\n },\n },\n },\n },\n ],\n },\n },\n },\n {\n type: \"object\",\n required: [\"anyOf\"],\n properties: {\n anyOf: {\n type: \"array\",\n minItems: 1,\n items: {\n anyOf: [resourceObjectIdOptOutSchema, resourceObjectIdLeafSchema],\n },\n },\n },\n },\n {\n type: \"object\",\n required: [\"oneOf\"],\n properties: {\n oneOf: {\n type: \"array\",\n minItems: 1,\n items: {\n anyOf: [resourceObjectIdOptOutSchema, resourceObjectIdLeafSchema],\n },\n },\n },\n },\n ],\n};\n\nconst schemaFirstError = (...args: Parameters) => {\n const result = schema(...args);\n\n if (result instanceof Promise) {\n return result.then((errors) =>\n Array.isArray(errors) && errors.length > 0 ? [errors[0]] : errors,\n );\n }\n\n return Array.isArray(result) && result.length > 0 ? [result[0]] : result;\n};\n\nexport default {\n description: `# [{json:api}](https://jsonapi.org/) - [v1.1](https://jsonapi.org/format/1.1/)\n\nJSON:API is a media format for building APIs in JSON, that covers how clients and servers should communicate to minimize both the number of requests and the amount of data transmitted between clients and servers. \n\nJSON:API requires use of the JSON:API media type \\`application/vnd.api+json\\` for exchanging data.\n\nThis ruleset can be found on GitHub: [spectral-jsonapi](https://github.com/philsturgeon/spectral-jsonapi)`,\n formats: [oas3],\n aliases: {\n AllContentSchemas: [\"$.paths..content['application/vnd.api+json'].schema\"],\n ResourceObjects: [\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data.properties\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data.allOf[*].properties\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data.items.properties\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data.items.allOf[*].properties\",\n \"$.paths..content[application/vnd.api+json].schema.properties.included.items.properties\",\n \"$.paths..content[application/vnd.api+json].schema.properties.included.items.allOf[*].properties\",\n \"$.paths..patch.requestBody.content[application/vnd.api+json].schema.properties.data.properties\",\n \"$.paths..patch.requestBody.content[application/vnd.api+json].schema.properties.data.allOf[*].properties\",\n ],\n POSTResourceObjects: [\n \"$.paths..post.requestBody.content[application/vnd.api+json].schema.properties.data.properties\",\n \"$.paths..post.requestBody.content[application/vnd.api+json].schema.properties.data.allOf[*].properties\",\n ],\n LinkObjects: [\"#AllContentSchemas..properties[links]\"],\n MetaObjects: [\"#AllContentSchemas..properties[meta]\"],\n Relationships: [\"#AllContentSchemas..properties[relationships]\"],\n RelationshipData: [\"#Relationships..data\"],\n POSTRelationships: [\n \"$.paths..post.requestBody.content[application/vnd.api+json].schema.properties.data.properties[relationships].properties[*]\",\n \"$.paths..post.requestBody.content[application/vnd.api+json].schema.properties.data.allOf[*].properties[relationships].properties[*]\",\n ],\n PATCHRelationships: [\n \"$.paths..patch.requestBody.content[application/vnd.api+json].schema.properties.data.properties[relationships].properties[*]\",\n \"$.paths..patch.requestBody.content[application/vnd.api+json].schema.properties.data.allOf[*].properties[relationships].properties[*]\",\n ],\n ErrorObjects: [\n \"$.paths..responses[default,400,500].content[application/vnd.api+json].schema.properties.errors.items.properties\",\n \"$.paths..responses[default,400,500].content[application/vnd.api+json].schema.properties.errors.items.allOf[*].properties\",\n \"$.paths..responses[?(@property > '400' && @property < '600')].content[application/vnd.api+json].schema.properties.errors.items.properties\",\n \"$.paths..responses[?(@property > '400' && @property < '600')].content[application/vnd.api+json].schema.properties.errors.items.allOf[*].properties\",\n ],\n },\n rules: {\n \"content-type\": {\n description: `\nJSON payloads in requests and responses **MUST** use the content type of \\`application/vnd.api+json\\`.\n\nNon-JSON media types can be used for endpoints that do not exchange JSON:API documents.\n\n**Invalid Examples:**\n\\`\\`\\`yaml\nrequestBody:\n content:\n application/json\n\nresponses:\n '200':\n content:\n application/json\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\nrequestBody:\n content:\n application/vnd.api+json\n\nresponses:\n '200':\n content:\n application/vnd.api+json\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#content-negotiation-servers).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#content-negotiation\",\n message:\n \"Use application/vnd.api+json for JSON request and response bodies.\",\n severity: DiagnosticSeverity.Error,\n given: [\"$.paths..requestBody.content\", \"$.paths..responses..content\"],\n then: {\n field: \"@key\",\n function: pattern,\n functionOptions: {\n notMatch:\n \"^(?!application/vnd\\\\.api\\\\+json(?:\\\\s*;.*)?$)[^/]+/(?:[^;]+\\\\+json|json)(?:\\\\s*;.*)?$\",\n },\n },\n },\n \"406-response-code\": {\n description: `Servers **MUST** describe response code **406** paths in case of invalid \\`Accept\\` values.\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n '406':\n $ref: '#/components/responses/406Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#content-negotiation-servers).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#content-negotiation-servers\",\n message: \"Document a 406 response for invalid Accept headers.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths..responses\",\n then: {\n field: \"406\",\n function: truthy,\n },\n },\n \"415-response-code\": {\n description: `Servers **MUST** describe response code **415** on \\`POST\\` or \\`PATCH\\` paths in case of invalid \\`Content-Type\\` values.\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n '415':\n $ref: '#/components/responses/415Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#content-negotiation-servers).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#content-negotiation-servers\",\n message:\n \"Document a 415 response for invalid Content-Type headers on POST and PATCH.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][post,patch].responses\",\n then: {\n field: \"415\",\n function: truthy,\n },\n },\n \"top-level-json-object\": {\n description: `A JSON object **MUST** be at the root of every JSON:API request/response body containing data.\n\n**Valid Example:**\n\\`\\`\\`yaml\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-top-level).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-top-level\",\n message: \"Request and response bodies must have a top-level JSON object.\",\n severity: DiagnosticSeverity.Error,\n given: \"#AllContentSchemas\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n },\n \"top-level-json-properties\": {\n description: `Root JSON object **MUST** follow the jsonapi schema.\n\n**Schema Rules:**\n- **MUST** contain at least one of: \\`data\\`, \\`errors\\`, \\`meta\\` properties\n- \\`data\\` and \\`errors\\` **MAY NOT** coexist in the same document\n- **MAY** contain: \\`jsonapi\\`, \\`links\\`, \\`included\\`\n- if \\`included\\` exists, \\`data\\` is **REQUIRED**\n\n**Invalid Examples:**\n\\`\\`\\`yaml\ntype: object\nproperties:\n data:\n type: object\n errors:\n type: array\ntype: object\nproperties:\n links:\n type: object\n included:\n type: array\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\ntype: object\nproperties:\n jsonapi:\n type: object\n links:\n type: object\n meta:\n type: object\n data:\n type: object\n included:\n type: array\ntype: object\nproperties:\n errors:\n type: array\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-top-level).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-top-level\",\n message:\n \"Top-level documents must include data, errors, or meta and follow JSON:API member rules.\",\n severity: DiagnosticSeverity.Error,\n given: \"#AllContentSchemas\",\n then: {\n field: \"properties\",\n function: schema,\n functionOptions: {\n schema: {\n type: \"object\",\n anyOf: [\n {\n required: [\"data\"],\n },\n {\n required: [\"errors\"],\n },\n {\n required: [\"meta\"],\n },\n ],\n not: {\n anyOf: [\n {\n required: [\"data\", \"errors\"],\n },\n ],\n },\n dependentRequired: {\n included: [\"data\"],\n },\n properties: {\n data: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\", \"array\", \"null\"],\n },\n },\n },\n errors: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"array\"],\n },\n },\n },\n meta: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n },\n jsonapi: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n },\n links: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n },\n included: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"array\"],\n },\n },\n },\n },\n },\n },\n },\n },\n \"resource-object-properties\": {\n description: `Verify allowed properties in Resource Objects\n\n**Allowed properties:** \\`id\\`, \\`type\\`, \\`attributes\\`, \\`relationships\\`, \\`links\\`, and \\`meta\\`.\n\n**Invalid Example:**\n\\`\\`\\`yaml\ntype: object\nproperties:\n id:\n type: string\n format: uri\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - resources\n name:\n type: string\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\n - attributes\n - relationships\nproperties:\n id:\n type: string\n format: uri\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - resources\n attributes:\n type: object\n relationships:\n type: object\n meta:\n type: object\n links:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-objects).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-objects\",\n message:\n \"Resource objects may only use id, type, attributes, relationships, links, and meta.\",\n severity: DiagnosticSeverity.Error,\n given: [\"#ResourceObjects\", \"#POSTResourceObjects\"],\n then: [\n {\n field: \"type\",\n function: truthy,\n },\n {\n field: \"@key\",\n function: enumeration,\n functionOptions: {\n values: [\n \"id\",\n \"type\",\n \"attributes\",\n \"relationships\",\n \"links\",\n \"meta\",\n ],\n },\n },\n ],\n },\n \"resource-object-id-required\": {\n description: `Verify \\`id\\` property exists in Resource Object (except POST requestBody)\n\nSet \\`x-jsonapi-virtual-resource: true\\` on a resource schema to opt out when the resource is intentionally non-standard (for example, ephemeral computed resources that do not have stable IDs).\n\n**Valid Example:**\n\\`\\`\\`yaml\n# path..responses...\n# path.patch.requestBody...\n\ntype: object\nrequired:\n - id\n - type\nproperties:\n id:\n type: string\n format: uuid\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n meta:\n type: object\n\\`\\`\\`\n**NOTE:** Currently this rule triggers against \\`allOf\\` structures unless all items have \\`id\\`. Until this is corrected it is set as a warning.\n\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-objects).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-objects\",\n message: \"Resource objects should include an id property.\",\n severity: DiagnosticSeverity.Warning,\n resolved: true,\n given: [\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data[?(@property === 'type' && @ === 'object')]^\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data[?(@property === '$ref')]^\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data[?(@property === 'allOf')]^\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data[?(@property === 'anyOf')]^\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data[?(@property === 'oneOf')]^\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data.items\",\n \"$.paths..content[application/vnd.api+json].schema.properties.included.items\",\n ],\n then: {\n function: schemaFirstError,\n functionOptions: {\n dialect: \"draft2020-12\",\n allErrors: false,\n schema: resourceObjectIdRuleSchema,\n },\n },\n },\n \"resource-object-property-types\": {\n description: `\\`id\\` and \\`type\\` **MUST** be of type \\`string\\`\n\n**Invalid Example:**\n\\`\\`\\`yaml\ntype: object\nproperties:\n id:\n type: number\n type:\n type: string\n enum:\n - resources\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\nproperties:\n id:\n type: string\n format: uri\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - resources\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-identification).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-identification\",\n message: \"Resource object id and type must both be strings.\",\n severity: DiagnosticSeverity.Error,\n given: [\n \"#ResourceObjects.id\",\n \"#ResourceObjects.type\",\n \"#POSTResourceObjects.type\",\n ],\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n },\n \"resource-object-reserved-fields\": {\n description: `\\`id\\` and \\`type\\` **MUST NOT** exist in \\`attributes\\` or \\`relationships\\`\n\n**Invalid Example:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\n - attributes\nproperties:\n id:\n type: string\n format: uri\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - resources\n attributes:\n type: object\n properties:\n id:\n type: number\n type:\n type: string\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\n - attributes\nproperties:\n id:\n type: string\n format: uri\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - resources\n attributes:\n type: object\n properties:\n name:\n type: string\n descrpition:\n type: string\n meta:\n type: object\n links:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-fields).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-fields\",\n message: \"Do not define id or type inside attributes or relationships.\",\n severity: DiagnosticSeverity.Error,\n given:\n \"#AllContentSchemas..properties[attributes,relationships].properties[?(@.deprecated!=true)]~\",\n then: {\n function: pattern,\n functionOptions: {\n notMatch: \"^(id|type)$\",\n },\n },\n },\n \"attributes-object-type\": {\n description: `\\`attributes\\` property **MUST** be an \\`object\\`\n\n**Invalid Examples:**\n\\`\\`\\`yaml\n# data (Resource Object)\n# ... \nproperties:\n attributes:\n type: array \n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\n# data (Resource Object)\n# ... \nproperties:\n attributes:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-attributes).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-attributes\",\n message: \"attributes must be an object.\",\n severity: DiagnosticSeverity.Error,\n given: \"#AllContentSchemas..properties[attributes]\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n },\n \"attributes-object-properties\": {\n description: `\\`attributes\\` object **MUST NOT** contain a \\`relationships\\` or \\`links\\` property\n\n**Invalid Example:**\n\\`\\`\\`yaml\n# data (Resource Object)\n# ... \nproperties:\n attributes:\n type: object\n required:\n - name\n properties:\n name:\n type: string\n example: do-hickey\n description:\n type: string\n example: thing that does stuff\n links:\n type: array\n items:\n type: string\n relationships:\n type: array\n items:\n type: string\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\n# data (Resource Object)\n# ... \nproperties:\n attributes:\n type: object\n required:\n - name\n properties:\n name:\n type: string\n example: do-hickey\n description:\n type: string\n example: thing that does stuff\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-attributes).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-attributes\",\n message: \"attributes must not contain links or relationships.\",\n severity: DiagnosticSeverity.Error,\n given: \"#AllContentSchemas..properties[attributes]..properties\",\n then: [\n {\n field: \"relationships\",\n function: falsy,\n },\n {\n field: \"links\",\n function: falsy,\n },\n ],\n },\n \"attributes-object-foreign-keys\": {\n description: `Foreign Keys **SHOULD NOT** appear in \\`attributes\\`. **RECOMMEND** using \\`relationships\\`\n\nAlthough has-one foreign keys (e.g. author_id) are often stored internally alongside other information to be represented in a resource object, these keys **SHOULD NOT** appear as attributes.\n\nForeign keys are supported through the use of [relationships](https://jsonapi.org/format/1.1/#document-resource-object-relationships) and [related resource links](https://jsonapi.org/format/1.1/#document-resource-object-related-resource-links).\n\n**Example:** Use relationship primary data rather than foreign key.\n\\`\\`\\`yaml\ntype: object\nproperties:\n id:\n type: string\n format: uuid\n type:\n type: string\n enum:\n - widgets\n attributes:\n type: object\n required:\n - name\n properties:\n account_id:\n type: string\n name:\n type: string\n example: do-hickey\n description:\n type: string\n example: thing that does stuff\n relationships:\n type: object\n properties:\n manufacturer: #<------ a widget has a relationship with a manufacturer\n type: object\n required:\n - links\n - data\n properties:\n data:\n type: object\n properties:\n id: #<---------- primary/foreign key value\n type: string\n format: uuid\n type:\n type: string\n enum:\n - businesses\n\\`\\`\\`\n**NOTE:** This would normally be a severity of \\`hint\\`, though this can be missed visually in vscode. Until this changes it will be a severity of \\`info\\`.\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-attributes).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-attributes\",\n message:\n \"attributes should not include *_id foreign keys; model links with relationships.\",\n severity: DiagnosticSeverity.Information,\n given: \"#AllContentSchemas..properties[attributes]..properties[*]~\",\n then: {\n function: pattern,\n functionOptions: {\n notMatch: \".*_id$\",\n },\n },\n },\n \"relationships-object-type\": {\n description: `relationships **MUST** be an \\`object\\`\n\n**Invalid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: array\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-relationships).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-relationships\",\n\n severity: DiagnosticSeverity.Error,\n given: \"#Relationships\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n resolved: true,\n },\n \"relationship-schema\": {\n description: `relationship object **MUST** follow the schema\n\n**Schema Rules:**\n- **MUST** contain at least one of: \\`links\\`,\\`data\\`,\\`meta\\`\n- \\`links\\` object **MUST** contain at least one of: \\`self\\`, \\`related\\`\n- \\`data\\` **MAY** be \\`null\\`, single or array of resource identifiers\n- \\`meta\\` **MUST** be an \\`object\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\n'relationshipNameSingle':\n type: object\n required: [links, data]\n properties:\n links:\n type: object\n required: [self, related]\n properties:\n self:\n $ref: '#/components/schemas/Link'\n example: http://api.domain.com/v1/myResources/{id}/relationships/manufacturers\n related:\n type: string\n example: http://api.domain.com/v1/manufacturers/{id}\n data:\n type: object\n required: [id, type]\n properties:\n id:\n type: string\n format: uuid\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - 'relationshipNamePlural'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-relationships).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-relationships\",\n message:\n \"Each relationship object must include links, data, or meta, and match JSON:API structure.\",\n severity: DiagnosticSeverity.Error,\n given: \"#Relationships.properties[*]\",\n then: {\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: relationshipSchemaRuleSchema,\n },\n },\n },\n \"relationship-data-properties\": {\n description: `relationship \\`data\\` **MAY** only contain: \\`id\\`, \\`type\\` and \\`meta\\`\n \n **Invalid Example:**\n \\`\\`\\`yaml\n type: object\n required:\n - id\n - type\n properties:\n id:\n type: string\n format: uuid\n example: 2357c52f-6c78-4747-8106-e185c08143aa\n type:\n type: string\n attributes:\n type: object\n meta:\n type: object\n \\`\\`\\`\n\n **Valid Example:**\n \\`\\`\\`yaml\n type: object\n required:\n - id\n - type\n properties:\n id:\n type: string\n format: uuid\n example: 2357c52f-6c78-4747-8106-e185c08143aa\n type:\n type: string\n meta:\n type: object\n \\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-identifier-objects).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-identifier-objects\",\n message: \"Relationship data may only include id, type, and meta.\",\n severity: DiagnosticSeverity.Error,\n given: [\n \"#RelationshipData.properties\",\n \"#RelationshipData.allOf[*].properties\",\n \"#RelationshipData.items.properties\",\n \"#RelationshipData.items.allOf[*].properties\",\n ],\n then: {\n field: \"@key\",\n function: enumeration,\n functionOptions: {\n values: [\"id\", \"type\", \"meta\"],\n },\n },\n },\n \"relationship-data-schema\": {\n description: `relationship data items **MUST** follow schema\n\n**Schema Rules:**\n- \\`id\\` **MUST** be a \\`string\\`\n- \\`type\\` **MUST** be a \\`string\\`\n- \\`meta\\` **MUST** be an \\`object\\`\n\n**Invalid Examples:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\nproperties:\n id:\n type: number\n type:\n type: number\n meta:\n type: object\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\nproperties:\n id:\n type: string\n format: uuid\n example: 2357c52f-6c78-4747-8106-e185c08143aa\n type:\n type: string\n meta:\n type: object \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-identifier-objects).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-identifier-objects\",\n message:\n \"Relationship data entries must match the resource identifier schema.\",\n severity: DiagnosticSeverity.Error,\n given: [\n \"#RelationshipData.properties\",\n \"#RelationshipData.allOf[0].properties\",\n \"#RelationshipData.items.properties\",\n \"#RelationshipData.items.allOf[0].properties\",\n ],\n then: {\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: relationshipDataSchemaRuleSchema,\n },\n },\n },\n \"meta-object\": {\n description: `\\`meta\\` property **MUST** be of type \\`object\\`\n\n**Invalid Examples:**\n\\`\\`\\`yaml\nproperties:\n meta:\n type: string \n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nproperties:\n meta:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-meta).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-meta\",\n message: \"meta must be an object.\",\n severity: DiagnosticSeverity.Error,\n given: \"#MetaObjects\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n },\n \"links-object\": {\n description: `\\`links\\` property **MUST** be an \\`object\\`\n\n**Invalid Examples:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: array \n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-links).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-links\",\n message: \"links must be an object.\",\n severity: DiagnosticSeverity.Error,\n given: \"#LinkObjects\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n },\n \"links-object-schema\": {\n description: `A link **MUST** be represented as either a \\`string\\` containing the link's URL or an \\`object\\`.\n\n**Invalid Examples:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: object\n properties:\n self:\n type: number\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: object\n properties:\n self:\n oneOf:\n - type: string\n format: uri\n - type: object\n required:\n - href\n properties:\n href:\n type: string\n format: uri\n meta:\n type: object \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-links).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-links\",\n message: \"Each link value must be a string URL or a link object.\",\n severity: DiagnosticSeverity.Error,\n given: \"#LinkObjects.properties[*]..[?(@property === 'type')]^\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\", \"object\"],\n },\n },\n },\n \"links-object-schema-properties\": {\n description: `objects contained within a \\`links\\` object **MUST** contain \\`href\\` (string) and **MAY** contain \\`meta\\`\n\nA link **MUST** be represented as either a \\`string\\` containing the link's URL or an \\`object\\`.\n\n**Invalid Examples:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: object\n properties:\n self:\n oneOf:\n - type: string\n format: uri\n - type: object\n properties:\n url:\n type: string\n format: uri\n meta:\n type: object \n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: object\n properties:\n self:\n oneOf:\n - type: string\n format: uri\n - type: object\n required:\n - href\n properties:\n href:\n type: string\n format: uri\n meta:\n type: object \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-links).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-links\",\n message:\n \"Link objects may only contain href and meta, and must include href.\",\n severity: DiagnosticSeverity.Error,\n given: \"#LinkObjects.properties..properties\",\n then: [\n {\n field: \"@key\",\n function: enumeration,\n functionOptions: {\n values: [\"href\", \"meta\"],\n },\n },\n {\n field: \"href\",\n function: truthy,\n },\n {\n field: \"href.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n ],\n },\n \"jsonapi-object\": {\n description: `\\`jsonapi\\` object **MUST** match schema\n\n**Schema Rules:**\n- \\`jsonapi\\` **MUST** be an \\`object\\`\n- **MUST** contain \\`string\\` \\`version\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nproperties:\n jsonapi:\n type: object\n properties:\n version:\n type: string\n example: '1.0'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-jsonapi-object).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-jsonapi-object\",\n message: \"jsonapi must be an object with a string version.\",\n severity: DiagnosticSeverity.Error,\n given: \"#AllContentSchemas..properties[?(@property === 'jsonapi')]\",\n then: [\n {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n {\n field: \"properties[*]~\",\n function: enumeration,\n functionOptions: {\n values: [\"version\"],\n },\n },\n {\n field: \"properties.version\",\n function: truthy,\n },\n {\n field: \"properties.version.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n ],\n },\n \"get-200-response-code\": {\n description: `\\`GET\\` requests **MUST** support response code 200\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /tickets/{id}:\n get:\n responses:\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /tickets/{id}:\n get:\n responses:\n '200':\n $ref: '#/components/responses/Ticket'\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-resources-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#fetching-resources-responses\",\n message: \"GET operations must define a 200 response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][get].responses\",\n then: {\n field: \"200\",\n function: truthy,\n },\n },\n \"get-404-response-code\": {\n description: `\\`GET\\` requests to single resource endpoints **MUST** support response code 404\n\nPer the JSON:API specification, a server MUST respond with 404 Not Found when\nprocessing a request to fetch a single resource that does not exist.\n\nSingle resource endpoints are identified by a path parameter (e.g. \\`{id}\\`).\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /tickets/{id}:\n get:\n responses:\n '200':\n $ref: '#/components/responses/Ticket'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\npaths:\n /tickets/{id}:\n get:\n responses:\n '200':\n $ref: '#/components/responses/Ticket'\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-resources-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#fetching-resources-responses\",\n message: \"Single-resource GET operations must define a 404 response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[?(@property.match(/\\{[^}]+\\}/))][get].responses\",\n then: {\n field: \"404\",\n function: truthy,\n },\n },\n \"400-response-code\": {\n description: `Servers **MUST** document and support response code **400** for all paths\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n '400':\n $ref: '#/components/responses/400Error'\n\\`\\`\\``,\n message: \"Document a 400 response for every operation.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths..responses\",\n then: {\n field: \"400\",\n function: truthy,\n },\n },\n \"include-parameter\": {\n description: `\\`include\\` query param **MUST** be a string array (csv)\n\n**Valid Example:**\n\\`\\`\\`yaml\nname: include\ndescription: csv formatted parameter of relationship names to include in response\nin: query\nstyle: form\nexplode: false\nschema:\ntype: array\nitems:\n type: string\nexample: [\"ratings\",\"comments.author\"]\n\\`\\`\\`\nExample query string: \\`/articles/1?include=comments.author,ratings\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-includes).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#fetching-includes\",\n message: \"include must be a query parameter using CSV array style.\",\n severity: DiagnosticSeverity.Error,\n given:\n \"$.paths..parameters[*][?(@property === 'name' && @ === 'include')]^\",\n then: [\n {\n field: \"in\",\n function: enumeration,\n functionOptions: {\n values: [\"query\"],\n },\n },\n {\n field: \"style\",\n function: truthy,\n },\n {\n field: \"style\",\n function: enumeration,\n functionOptions: {\n values: [\"form\"],\n },\n },\n {\n field: \"explode\",\n function: defined,\n },\n {\n field: \"explode\",\n function: falsy,\n },\n {\n field: \"schema\",\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"array\"],\n },\n items: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n },\n },\n },\n },\n },\n ],\n },\n \"fields-parameter\": {\n description: `\\`fields\\` query param **MUST** be a \\`deepObject\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nname: fields\ndescription: schema for 'fields' query parameter\nin: query\nschema:\n type: object\nstyle: deepObject\nexample:\n people: \"name\"\n articles: \"title,body\"\n\\`\\`\\`\nExample query string: \\`/articles?fields[articles]=title,body&fields[people]=name\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-sparse-fieldsets).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#fetching-sparse-fieldsets\",\n message: \"fields must be a query parameter using deepObject style.\",\n severity: DiagnosticSeverity.Error,\n given:\n \"$.paths..parameters[*][?(@property === 'name' && @ === 'fields')]^\",\n then: [\n {\n field: \"in\",\n function: enumeration,\n functionOptions: {\n values: [\"query\"],\n },\n },\n {\n field: \"style\",\n function: truthy,\n },\n {\n field: \"style\",\n function: enumeration,\n functionOptions: {\n values: [\"deepObject\"],\n },\n },\n {\n field: \"schema\",\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n },\n },\n },\n ],\n },\n \"sort-parameter\": {\n description: `\\`sort\\` query param **MUST** be a string array (csv)\n\n**Valid Example:**\n\\`\\`\\`yaml\nname: sort\ndescription: csv formatted parameter of fields to sort by\nin: query\nstyle: form\nexplode: false\nschema:\n type: array\n items:\n type: string\nexample: [\"-age\",\"name\"]\n\\`\\`\\`\nExample query string: \\`/people?sort=-age,name\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-sorting).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#fetching-sorting\",\n message: \"sort must be a query parameter using CSV array style.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths..parameters[*][?(@property === 'name' && @ === 'sort')]^\",\n then: [\n {\n field: \"in\",\n function: enumeration,\n functionOptions: {\n values: [\"query\"],\n },\n },\n {\n field: \"style\",\n function: truthy,\n },\n {\n field: \"style\",\n function: enumeration,\n functionOptions: {\n values: [\"form\"],\n },\n },\n {\n field: \"explode\",\n function: defined,\n },\n {\n field: \"explode\",\n function: falsy,\n },\n {\n field: \"schema\",\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"array\"],\n },\n items: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n },\n },\n },\n },\n },\n ],\n },\n \"page-parameter\": {\n description: `\\`page\\` query param **MUST** follow schema\n\n**Schema Rules:**\n- **MUST** be type \\`object\\`\n- **MUST** be style \\`deepObject\\`\n- contents depend on strategy:\n - cursor: \\`string\\` \\`cursor\\` and \\`int32\\` \\`limit\\`\n - offset: \\`int32\\` \\`offset\\` and \\`int32\\` \\`limit\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\nname: page\ndescription: Paging parameter, cursor based.\nin: query\nschema:\n type: object\n required: [\"cursor\",\"limit\"]\n properties:\n cursor:\n type: string\n limit:\n type: integer\n format: int32\nstyle: deepObject\n\nname: page\ndescription: Paging parameter, offset based.\nin: query\nschema:\n type: object\n required: [\"offset\",\"limit\"]\n properties:\n cursor:\n type: integer\n format: int32\n limit:\n type: integer\n format: int32\nstyle: deepObject\n\\`\\`\\`\nExample query string:\n- \\`/myResources?page[cursor]=fdsJ34lkjSfjsdfk&page[limit]=10\\`\n- \\`/myResources?page[offset]=2&page[limit]=10\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-pagination).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#fetching-pagination\",\n message:\n \"page must be a deepObject query parameter that matches the pagination schema.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths..parameters[*][?(@property === 'name' && @ === 'page')]^\",\n then: [\n {\n field: \"in\",\n function: enumeration,\n functionOptions: {\n values: [\"query\"],\n },\n },\n {\n field: \"style\",\n function: truthy,\n },\n {\n field: \"style\",\n function: enumeration,\n functionOptions: {\n values: [\"deepObject\"],\n },\n },\n {\n field: \"schema\",\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\"],\n },\n properties: {\n type: \"object\",\n additionalProperties: false,\n properties: {\n cursor: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n },\n offset: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"integer\"],\n },\n format: {\n type: \"string\",\n enum: [\"int32\"],\n },\n minimum: {\n type: \"integer\",\n minimum: 0,\n },\n },\n },\n limit: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"integer\"],\n },\n format: {\n type: \"string\",\n enum: [\"int32\"],\n },\n },\n },\n },\n },\n },\n },\n },\n },\n ],\n },\n \"post-requests-single-object\": {\n description: `POST requests **MUST** only contain a single resource object\n\n**Invalid Example:**\n\\`\\`\\`yaml\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n required:\n - data\n properties:\n data:\n type: array\n items: \n $ref: '#/components/schemas/MyResourcePostObject'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n required:\n - data\n properties:\n data:\n $ref: '#/components/schemas/MyResourcePostObject'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#crud-creating\",\n message:\n \"POST request data must be a single resource object, not an array.\",\n severity: DiagnosticSeverity.Error,\n given:\n \"$.paths..post.requestBody.content[application/vnd.api+json].schema.properties.data[?(@property==='type' && @ === 'array')]\",\n then: {\n function: falsy,\n },\n },\n \"post-relationships\": {\n description: `If relationships exist in POST request, \\`data\\` is REQUIRED\n\n**Invalid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: object\n properties:\n manufacturer:\n type: object\n properties:\n links:\n type: object\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: object\n properties:\n manufacturer:\n type: object\n properties:\n data:\n type: object\n links:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#crud-creating\",\n message: \"If POST relationships are present, they must include data.\",\n severity: DiagnosticSeverity.Error,\n given: \"#POSTRelationships\",\n then: {\n field: \"required\",\n function: schema,\n functionOptions: {\n schema: {\n type: \"array\",\n items: {\n type: \"string\",\n anyOf: [\n {\n enum: [\"data\"],\n },\n {\n enum: [\"data\", \"links\", \"meta\"],\n },\n ],\n },\n },\n },\n },\n },\n \"403-response-code\": {\n description: `Servers **MUST** document and support response code **403** for all paths\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n '403':\n $ref: '#/components/responses/403Error'\n\\`\\`\\``,\n message: \"Document a 403 response for every operation.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths..responses\",\n then: {\n field: \"403\",\n function: truthy,\n },\n },\n \"201-response-location-header\": {\n description: `A POST 201 response **SHOULD** return a \\`Location\\` header identifying the location of the newly created resource.\n\n**Valid Example:**\n\\`\\`\\`yaml\nheaders:\n Location:\n schema:\n type: string\n format: uri\n example: 'http://example.com/photos/550e8400-e29b-41d4-a716-446655440000'\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-creating-responses\",\n message: \"POST 201 responses should include a Location header.\",\n severity: DiagnosticSeverity.Information,\n given: \"$.paths[*][post].responses.201.headers\",\n then: {\n field: \"Location\",\n function: defined,\n },\n },\n \"post-201-response\": {\n description: `A POST 201 response **MUST** return a document that contains the resource as primary data.\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-creating-responses\",\n message:\n \"POST 201 responses should include primary resource data using keys data, meta, jsonapi, or links.\",\n severity: DiagnosticSeverity.Information,\n given:\n \"$.paths[*][post].responses.201.content[application/vnd.api+json].schema\",\n then: {\n field: \"required\",\n function: schema,\n functionOptions: {\n schema: {\n type: \"array\",\n items: {\n type: \"string\",\n enum: [\"data\", \"meta\", \"jsonapi\", \"links\"],\n },\n },\n },\n },\n },\n \"post-2xx-response-codes\": {\n description: `\\`POST\\` requests **MUST** support one Of the following 2xx codes: 201, 202 or 204\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '201':\n $ref: '#/components/responses/MyResource_Single'\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources:\n post:\n responses:\n '202':\n description: Accepted.\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources:\n post:\n responses:\n '204':\n description: Successful Operation. No Content.\n '404':\n $ref: '#/components/responses/404Error' \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-creating-responses\",\n message:\n \"POST operations must define at least one success response: 201, 202, or 204.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][post].responses\",\n then: {\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n anyOf: [\n {\n required: [\"201\"],\n },\n {\n required: [\"202\"],\n },\n {\n required: [\"204\"],\n },\n ],\n },\n },\n },\n },\n \"post-409-response-code\": {\n description: `\\`POST\\` requests **MUST** document and support response code 409\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '201':\n $ref: '#/components/responses/MyResource_Single'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '201':\n $ref: '#/components/responses/MyResource_Single'\n '409':\n $ref: '#/components/responses/409Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-creating-responses\",\n message: \"POST operations must define a 409 conflict response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][post].responses\",\n then: {\n field: \"409\",\n function: truthy,\n },\n },\n \"post-409-response\": {\n description: `POST 409 response **SHOULD** return \\`source\\` property to identify conflict\n\n**Example:**\n\\`\\`\\`yaml\n# Example showing use of source in error object.\n\ntype: array\nmaxItems:1\nitems:\n type: object\n properties:\n id:\n type: string\n status:\n type: string\n const: 409\n title:\n type: string\n const: Conflict\n source:\n type: object\n properties:\n pointer:\n oneOf:\n - type: string\n format: json-pointer\n example: /data/attributes/id\n - type: array\n items:\n type: string\n format: json-pointer\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-creating-responses\",\n message:\n \"POST 409 responses should include source to explain the conflict.\",\n severity: DiagnosticSeverity.Information,\n given:\n \"$.paths[*][post].responses[409].content['application/vnd.api+json'].schema.properties\",\n then: {\n field: \"source\",\n function: truthy,\n },\n },\n \"put-disallowed\": {\n description: `\\`PUT\\` verb is not allowed in jsonapi, use \\`PATCH\\` instead.\n\n**Invalid Example:**\n\\`\\`\\`yaml\n/myResources/{id}:\n put:\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\n/myResources/{id}:\n patch:\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#crud-updating\",\n message: \"PUT is not allowed by JSON:API; use PATCH.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][put]\",\n then: [\n {\n function: falsy,\n },\n ],\n },\n \"patch-requests-single-object\": {\n description: `PATCH requests **MUST** only contain a single resource object\n\n**Invalid Example:**\n\\`\\`\\`yaml\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n required:\n - data\n properties:\n data:\n type: array\n items: \n $ref: '#/components/schemas/MyResourcePostObject'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n required:\n - data\n properties:\n data:\n $ref: '#/components/schemas/MyResourcePostObject'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#crud-creating\",\n message:\n \"PATCH request data must be a single resource object, not an array.\",\n severity: DiagnosticSeverity.Error,\n given:\n \"$.paths..patch.requestBody.content[application/vnd.api+json].schema.properties.data[?(@property==='type' && @ === 'array')]\",\n then: {\n function: falsy,\n },\n },\n \"patch-relationships\": {\n description: `If relationships exist in PATCH request, \\`data\\` is REQUIRED\n\n**Invalid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: object\n properties:\n manufacturer:\n type: object\n properties:\n links:\n type: object\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: object\n properties:\n manufacturer:\n type: object\n properties:\n data:\n type: object\n links:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating-resource-relationships).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#crud-creating\",\n message: \"If PATCH relationships are present, they must include data.\",\n severity: DiagnosticSeverity.Error,\n given: \"#PATCHRelationships\",\n then: {\n field: \"required\",\n function: schema,\n functionOptions: {\n schema: {\n type: \"array\",\n items: {\n type: \"string\",\n anyOf: [\n {\n enum: [\"data\"],\n },\n {\n enum: [\"data\", \"links\", \"meta\"],\n },\n ],\n },\n },\n },\n },\n },\n \"patch-2xx-response-codes\": {\n description: `\\`PATCH\\` requests **MUST** support at least one of the following 2xx codes: 200, 202 or 204\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Single'\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources/{id}:\n patch:\n responses:\n '202':\n description: Accepted.\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources/{id}:\n patch:\n responses:\n '204':\n description: Successful Operation. No Content.\n '404':\n $ref: '#/components/responses/404Error' \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-updating-responses\",\n message:\n \"PATCH operations must define at least one success response: 200, 202, or 204.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][patch].responses\",\n then: {\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n anyOf: [\n {\n required: [\"200\"],\n },\n {\n required: [\"202\"],\n },\n {\n required: [\"204\"],\n },\n ],\n },\n },\n },\n },\n \"patch-404-response-code\": {\n description: `\\`PATCH\\` requests **MUST** support response code 404\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Single'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Single'\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-updating-responses\",\n message: \"PATCH operations must define a 404 response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][patch].responses\",\n then: {\n field: \"404\",\n function: truthy,\n },\n },\n \"patch-409-response-code\": {\n description: `\\`PATCH\\` requests **MUST** document and support response code 409\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Single'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Single'\n '409':\n $ref: '#/components/responses/409Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-updating-responses\",\n message: \"PATCH operations must define a 409 conflict response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][patch].responses\",\n then: {\n field: \"409\",\n function: truthy,\n },\n },\n \"patch-409-response\": {\n description: `PATCH 409 response **SHOULD** return \\`source\\` property to identify conflict\n\n**Example:**\n\\`\\`\\`yaml\n# Example showing use of source in error object.\n# Examples describe a conflict between the {id} parameter and the id field in the request body.\n\ntype: array\nitems:\n type: object\n properties:\n id:\n type: string\n status:\n type: string\n enum:\n - 409\n title:\n type: string\n enum:\n - Conflict\n source:\n type: object\n properties:\n pointer:\n oneOf:\n - type: string\n format: json-pointer\n example: /data/attributes/id\n - type: array\n items:\n type: string\n format: json-pointer\n parameter:\n type: string\n example: id\nmaxItems:1\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-updating-responses\",\n message:\n \"PATCH 409 responses should include source to explain the conflict.\",\n severity: DiagnosticSeverity.Information,\n given: \"$.paths[*][patch].responses\",\n then: {\n field: \"409\",\n function: falsy,\n },\n },\n \"delete-2xx-response-codes\": {\n description: `\\`DELETE\\` requests **MUST** support at least one of the following 2xx codes: 200, 202, or 204\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n delete:\n responses:\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n delete:\n responses:\n '200':\n $ref: '#/components/responses/delete_meta_data'\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources/{id}:\n delete:\n responses:\n '202':\n description: Accepted.\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources/{id}:\n delete:\n responses:\n '204':\n description: Successful Operation. No Content.\n '404':\n $ref: '#/components/responses/404Error' \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-deleting-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-deleting-responses\",\n message:\n \"DELETE operations must define at least one success response: 200, 202, or 204.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][delete].responses\",\n then: {\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n anyOf: [\n {\n required: [\"200\"],\n },\n {\n required: [\"202\"],\n },\n {\n required: [\"204\"],\n },\n ],\n },\n },\n },\n },\n \"delete-404-response-code\": {\n description: `\\`DELETE\\` requests **MUST** support response code 404\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n delete:\n responses:\n '204':\n description: Successful Operation. No Content.\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n delete:\n responses:\n '204':\n description: Successful Operation. No Content.\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-deleting-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-deleting-responses\",\n message: \"DELETE operations must define a 404 response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][delete].responses\",\n then: {\n field: \"404\",\n function: truthy,\n },\n },\n \"error-object-schema\": {\n description: `error objects **MUST** follow schema\n\n**Schema Rules:**\n- **MAY** contain the following fields: \\`id\\`,\\`links\\`,\\`status\\`,\\`code\\`,\\`title\\`,\\`detail\\`,\\`source\\`,\\`meta\\`\n- \\`id\\`,\\`status\\`,\\`code\\`,\\`title\\`,\\`detail\\` **MUST** be an \\`object\\`\n- \\`links\\`,\\`source\\`,\\`meta\\` **MUST** be an \\`object\\`\n\n**Valid Example:** Using all fields\n\\`\\`\\`yaml\ntype: object\ndescription: JSON:API Error Object\nproperties:\n id:\n type: string\n description: a unique identifier for this particular occurrence of the problem\n links:\n type: object\n description: links that lead to further detail about the particular occurrence of the problem\n properties:\n about:\n $ref: '#/components/schemas/Link'\n status:\n type: string\n description: the HTTP status code applicable to this problem\n code:\n type: string\n description: an application-specific error code\n title:\n type: string\n description: a human-readable summary specific of the problem. Usually the http status friendly name.\n detail:\n type: string\n description: a human-readable explanation specific to this occurrence of the problem\n source:\n type: object\n description: an object containing references to the source of the error\n properties:\n pointer:\n description: a JSON Pointer [RFC6901] to the associated entity in the request document\n oneOf:\n - type: string\n format: json-pointer\n - type: array\n items:\n type: string\n format: json-pointer\n parameter:\n description: a string indicating which URI query parameter caused the error\n type: string\n meta:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#error-objects).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#error-objects\",\n message: \"Error objects must follow the JSON:API error object schema.\",\n severity: DiagnosticSeverity.Error,\n given: \"#ErrorObjects\",\n then: [\n {\n field: \"@key\",\n function: enumeration,\n functionOptions: {\n values: [\n \"id\",\n \"links\",\n \"status\",\n \"code\",\n \"title\",\n \"detail\",\n \"source\",\n \"meta\",\n ],\n },\n },\n {\n field: \"links.type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n {\n field: \"source.type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n {\n field: \"meta.type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n {\n field: \"status.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n {\n field: \"code.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n {\n field: \"title.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n {\n field: \"detail.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n ],\n },\n \"error-object-links\": {\n description: `error object \\`links\\` property **MUST** contain an \\`about\\` link.\n\n**Invalid Example:**\n\\`\\`\\`yaml\n# Error Object\n# ...\nlinks:\n type: object\n description: links that lead to further detail about the particular occurrence of the problem\n properties:\n self:\n $ref: '#/components/schemas/Link'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\n# Error Object\n# ...\nlinks:\n type: object\n description: links that lead to further detail about the particular occurrence of the problem\n properties:\n about:\n $ref: '#/components/schemas/Link'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#error-objects).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#error-objects\",\n message: \"Error object links must include about.\",\n severity: DiagnosticSeverity.Error,\n given: \"#ErrorObjects.links.properties\",\n then: [\n {\n field: \"about\",\n function: truthy,\n },\n ],\n },\n \"error-object-source-schema\": {\n description: `error object \\`source\\` **MUST** follow schema\n\n**Schema Rules:**\n- \\`source\\` **MUST** be an \\`object\\`\n- **MUST** contain at least one of: \\`pointer\\` or \\`parameter\\`\n- \\`parameter\\` **MUST** be a \\`string\\`\n- \\`pointer\\` **MUST** be a single json-pointer[[RFC6901]](https://tools.ietf.org/html/rfc6901) string or array of json-pointer strings\n\n**Valid Example:**\n\\`\\`\\`yaml\ntype: object\ndescription: an object containing references to the source of the error\nproperties:\n pointer:\n description: a JSON Pointer [RFC6901] to the associated entity in the request document\n oneOf:\n - type: string\n format: json-pointer\n - type: array\n items:\n type: string\n format: json-pointer\n parameter:\n description: a string indicating which URI query parameter caused the error\n type: string\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#error-objects).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#error-objects\",\n message:\n \"Error object source must include pointer or parameter and match schema.\",\n severity: DiagnosticSeverity.Error,\n given: \"#ErrorObjects.source\",\n then: {\n field: \"properties\",\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n properties: {\n parameter: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n },\n pointer: {\n type: \"object\",\n properties: {\n oneOf: {\n type: \"array\",\n items: {\n oneOf: [\n {\n type: \"object\",\n required: [\"type\", \"format\"],\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n format: {\n type: \"string\",\n enum: [\"json-pointer\"],\n },\n },\n },\n {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"array\"],\n },\n items: {\n type: \"object\",\n required: [\"type\", \"format\"],\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n format: {\n type: \"string\",\n enum: [\"json-pointer\"],\n },\n },\n },\n },\n },\n ],\n },\n },\n },\n },\n },\n },\n },\n },\n },\n },\n};\n","var HttpOperationSecurityDeclarationTypes;\n(function (HttpOperationSecurityDeclarationTypes) {\n /** Indicates that the operation has no security declarations. */\n HttpOperationSecurityDeclarationTypes[\"None\"] = \"none\";\n /** Indicates that the operation has explicit security declarations. */\n HttpOperationSecurityDeclarationTypes[\"Declared\"] = \"declared\";\n /** Indicates that the operation inherits its security declarations from the service. */\n HttpOperationSecurityDeclarationTypes[\"InheritedFromService\"] = \"inheritedFromService\";\n})(HttpOperationSecurityDeclarationTypes || (HttpOperationSecurityDeclarationTypes = {}));\nvar HttpParamStyles;\n(function (HttpParamStyles) {\n /** Used when OAS2 type !== array */\n HttpParamStyles[\"Unspecified\"] = \"unspecified\";\n /**\n * OAS 3.x style simple\n * OAS 2 collectionFormat csv\n */\n HttpParamStyles[\"Simple\"] = \"simple\";\n /**\n * OAS 3.x style matrix\n * OAS 2 collectionFormat no support\n */\n HttpParamStyles[\"Matrix\"] = \"matrix\";\n /**\n * OAS 3.x style label\n * OAS 2 collectionFormat no support\n */\n HttpParamStyles[\"Label\"] = \"label\";\n /**\n * OAS 3.x style form\n * OAS 2 collectionFormat\n * * csv, when explode === false\n * * multi, when explode === true\n */\n HttpParamStyles[\"Form\"] = \"form\";\n /**\n * OAS 3.x no support\n * OAS 2 collectionFormat csv when explode === undefined\n */\n HttpParamStyles[\"CommaDelimited\"] = \"commaDelimited\";\n /**\n * OAS 3.x style spaceDelimited\n * OAS 2 collectionFormat ssv\n */\n HttpParamStyles[\"SpaceDelimited\"] = \"spaceDelimited\";\n /**\n * OAS 3.x style spaceDelimited\n * OAS 2 collectionFormat pipes\n */\n HttpParamStyles[\"PipeDelimited\"] = \"pipeDelimited\";\n /**\n * OAS 3.x style deepObject\n * OAS 2 collectionFormat no support\n */\n HttpParamStyles[\"DeepObject\"] = \"deepObject\";\n /**\n * OAS 3.x style no support\n * OAS 2 collectionFormat tsv\n */\n HttpParamStyles[\"TabDelimited\"] = \"tabDelimited\";\n})(HttpParamStyles || (HttpParamStyles = {}));\n\n/**\n * Represents the severity of diagnostics.\n */\nvar DiagnosticSeverity;\n(function (DiagnosticSeverity) {\n /**\n * Something not allowed by the rules of a language or other means.\n */\n DiagnosticSeverity[DiagnosticSeverity[\"Error\"] = 0] = \"Error\";\n /**\n * Something suspicious but allowed.\n */\n DiagnosticSeverity[DiagnosticSeverity[\"Warning\"] = 1] = \"Warning\";\n /**\n * Something to inform about but not a problem.\n */\n DiagnosticSeverity[DiagnosticSeverity[\"Information\"] = 2] = \"Information\";\n /**\n * Something to hint to a better way of doing it, like proposing\n * a refactoring.\n */\n DiagnosticSeverity[DiagnosticSeverity[\"Hint\"] = 3] = \"Hint\";\n})(DiagnosticSeverity || (DiagnosticSeverity = {}));\n\n/**\n * Stoplight node types\n */\nvar NodeType;\n(function (NodeType) {\n NodeType[\"Article\"] = \"article\";\n NodeType[\"HttpService\"] = \"http_service\";\n NodeType[\"HttpServer\"] = \"http_server\";\n NodeType[\"HttpOperation\"] = \"http_operation\";\n NodeType[\"HttpCallback\"] = \"http_callback\";\n NodeType[\"HttpWebhook\"] = \"http_webhook\";\n NodeType[\"Model\"] = \"model\";\n NodeType[\"Generic\"] = \"generic\";\n NodeType[\"Unknown\"] = \"unknown\";\n NodeType[\"TableOfContents\"] = \"table_of_contents\";\n NodeType[\"SpectralRuleset\"] = \"spectral_ruleset\";\n NodeType[\"Styleguide\"] = \"styleguide\";\n NodeType[\"Image\"] = \"image\";\n NodeType[\"StoplightResolutions\"] = \"stoplight_resolutions\";\n NodeType[\"StoplightOverride\"] = \"stoplight_override\";\n})(NodeType || (NodeType = {}));\n/**\n * Node data formats\n */\nvar NodeFormat;\n(function (NodeFormat) {\n NodeFormat[\"Json\"] = \"json\";\n NodeFormat[\"Markdown\"] = \"markdown\";\n NodeFormat[\"Yaml\"] = \"yaml\";\n NodeFormat[\"Javascript\"] = \"javascript\";\n NodeFormat[\"Apng\"] = \"apng\";\n NodeFormat[\"Avif\"] = \"avif\";\n NodeFormat[\"Bmp\"] = \"bmp\";\n NodeFormat[\"Gif\"] = \"gif\";\n NodeFormat[\"Jpeg\"] = \"jpeg\";\n NodeFormat[\"Png\"] = \"png\";\n NodeFormat[\"Svg\"] = \"svg\";\n NodeFormat[\"Webp\"] = \"webp\";\n})(NodeFormat || (NodeFormat = {}));\n\nexport { DiagnosticSeverity, HttpOperationSecurityDeclarationTypes, HttpParamStyles, NodeFormat, NodeType };\n"],"mappings":"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","names":["HttpOperationSecurityDeclarationTypes","HttpParamStyles","DiagnosticSeverity","NodeType","NodeFormat"]} \ No newline at end of file diff --git a/dist/ruleset.mjs b/dist/ruleset.mjs index 6696c883..c1745a9b 100644 --- a/dist/ruleset.mjs +++ b/dist/ruleset.mjs @@ -504,7 +504,9 @@ This ruleset can be found on GitHub: [spectral-jsonapi](https://github.com/phils rules: { "content-type": { description: ` -Requests and responses **MUST** all use the content type of \`application/vnd.api+json\`. +JSON payloads in requests and responses **MUST** use the content type of \`application/vnd.api+json\`. + +Non-JSON media types can be used for endpoints that do not exchange JSON:API documents. **Invalid Examples:** \`\`\`yaml @@ -532,14 +534,14 @@ responses: Related specification information can be found [here](https://jsonapi.org/format/1.1/#content-negotiation-servers).`, documentationUrl: "https://jsonapi.org/format/1.1/#content-negotiation", - message: "Use application/vnd.api+json for all request and response bodies.", + message: "Use application/vnd.api+json for JSON request and response bodies.", severity: DiagnosticSeverity.Error, given: ["$.paths..requestBody.content", "$.paths..responses..content"], then: { field: "@key", function: pattern, functionOptions: { - match: "^application/vnd\\.api\\+json;?" + notMatch: "^(?!application/vnd\\.api\\+json(?:\\s*;.*)?$)[^/]+/(?:[^;]+\\+json|json)(?:\\s*;.*)?$" } } }, diff --git a/dist/ruleset.mjs.map b/dist/ruleset.mjs.map index b1338f5c..a0976423 100644 --- a/dist/ruleset.mjs.map +++ b/dist/ruleset.mjs.map @@ -1 +1 @@ -{"version":3,"sources":["../src/ruleset.ts","../node_modules/@stoplight/types/dist/index.mjs"],"sourcesContent":["import {\n defined,\n enumeration,\n truthy,\n falsy,\n pattern,\n schema,\n} from \"@stoplight/spectral-functions\";\nimport { oas3 } from \"@stoplight/spectral-formats\";\nimport { DiagnosticSeverity } from \"@stoplight/types\";\n\nconst relationshipPropertiesSchema = {\n type: \"object\",\n anyOf: [\n { required: [\"links\"] },\n { required: [\"data\"] },\n { required: [\"meta\"] },\n ],\n properties: {\n links: {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"object\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n ],\n },\n properties: {\n type: \"object\",\n anyOf: [{ required: [\"self\"] }, { required: [\"related\"] }],\n properties: {\n self: {\n type: \"object\",\n },\n related: {\n type: \"object\",\n },\n },\n },\n },\n },\n data: {\n type: \"object\",\n anyOf: [\n {\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\", \"array\", \"null\"],\n },\n },\n },\n {\n properties: {\n type: {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"object\", \"array\", \"null\"],\n },\n },\n },\n },\n {\n properties: {\n oneOf: {\n type: \"array\",\n minItems: 1,\n },\n },\n },\n ],\n },\n meta: {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"object\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n ],\n },\n },\n },\n },\n additionalProperties: false,\n};\n\nconst relationshipSchemaRuleSchema = {\n type: \"object\",\n anyOf: [\n {\n required: [\"properties\"],\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"object\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n ],\n },\n properties: relationshipPropertiesSchema,\n },\n },\n {\n required: [\"allOf\"],\n properties: {\n allOf: {\n type: \"array\",\n minItems: 1,\n contains: {\n type: \"object\",\n required: [\"properties\"],\n properties: {\n properties: relationshipPropertiesSchema,\n },\n },\n },\n },\n },\n ],\n};\n\nconst relationshipDataEntrySchema = {\n type: \"object\",\n properties: {\n id: {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"string\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n ],\n },\n },\n },\n type: {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"string\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n ],\n },\n },\n },\n meta: {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"object\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n ],\n },\n },\n },\n },\n};\n\nconst relationshipDataSchemaRuleSchema = {\n anyOf: [\n relationshipDataEntrySchema,\n {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"array\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"array\"],\n },\n },\n ],\n },\n items: relationshipDataEntrySchema,\n },\n },\n ],\n};\n\nconst resourceObjectIdLeafSchema = {\n anyOf: [\n {\n type: \"object\",\n required: [\"$ref\"],\n properties: {\n $ref: {\n type: \"string\",\n },\n },\n },\n {\n type: \"object\",\n required: [\"properties\"],\n properties: {\n properties: {\n type: \"object\",\n required: [\"id\"],\n },\n },\n },\n {\n type: \"object\",\n required: [\"allOf\"],\n properties: {\n allOf: {\n type: \"array\",\n minItems: 1,\n contains: {\n anyOf: [\n {\n type: \"object\",\n required: [\"properties\"],\n properties: {\n properties: {\n type: \"object\",\n required: [\"id\"],\n },\n },\n },\n {\n type: \"object\",\n required: [\"$ref\"],\n properties: {\n $ref: {\n type: \"string\",\n },\n },\n },\n ],\n },\n },\n },\n },\n ],\n};\n\nconst resourceObjectIdOptOutSchema = {\n type: \"object\",\n required: [\"x-jsonapi-virtual-resource\"],\n properties: {\n \"x-jsonapi-virtual-resource\": {\n const: true,\n },\n },\n};\n\nconst resourceObjectIdRuleSchema = {\n anyOf: [\n resourceObjectIdOptOutSchema,\n resourceObjectIdLeafSchema,\n {\n type: \"object\",\n required: [\"items\"],\n properties: {\n items: {\n anyOf: [\n resourceObjectIdOptOutSchema,\n resourceObjectIdLeafSchema,\n {\n type: \"object\",\n required: [\"anyOf\"],\n properties: {\n anyOf: {\n type: \"array\",\n minItems: 1,\n items: {\n anyOf: [\n resourceObjectIdOptOutSchema,\n resourceObjectIdLeafSchema,\n ],\n },\n },\n },\n },\n {\n type: \"object\",\n required: [\"oneOf\"],\n properties: {\n oneOf: {\n type: \"array\",\n minItems: 1,\n items: {\n anyOf: [\n resourceObjectIdOptOutSchema,\n resourceObjectIdLeafSchema,\n ],\n },\n },\n },\n },\n ],\n },\n },\n },\n {\n type: \"object\",\n required: [\"anyOf\"],\n properties: {\n anyOf: {\n type: \"array\",\n minItems: 1,\n items: {\n anyOf: [resourceObjectIdOptOutSchema, resourceObjectIdLeafSchema],\n },\n },\n },\n },\n {\n type: \"object\",\n required: [\"oneOf\"],\n properties: {\n oneOf: {\n type: \"array\",\n minItems: 1,\n items: {\n anyOf: [resourceObjectIdOptOutSchema, resourceObjectIdLeafSchema],\n },\n },\n },\n },\n ],\n};\n\nconst schemaFirstError = (...args: Parameters) => {\n const result = schema(...args);\n\n if (result instanceof Promise) {\n return result.then((errors) =>\n Array.isArray(errors) && errors.length > 0 ? [errors[0]] : errors,\n );\n }\n\n return Array.isArray(result) && result.length > 0 ? [result[0]] : result;\n};\n\nexport default {\n description: `# [{json:api}](https://jsonapi.org/) - [v1.1](https://jsonapi.org/format/1.1/)\n\nJSON:API is a media format for building APIs in JSON, that covers how clients and servers should communicate to minimize both the number of requests and the amount of data transmitted between clients and servers. \n\nJSON:API requires use of the JSON:API media type \\`application/vnd.api+json\\` for exchanging data.\n\nThis ruleset can be found on GitHub: [spectral-jsonapi](https://github.com/philsturgeon/spectral-jsonapi)`,\n formats: [oas3],\n aliases: {\n AllContentSchemas: [\"$.paths..content['application/vnd.api+json'].schema\"],\n ResourceObjects: [\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data.properties\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data.allOf[*].properties\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data.items.properties\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data.items.allOf[*].properties\",\n \"$.paths..content[application/vnd.api+json].schema.properties.included.items.properties\",\n \"$.paths..content[application/vnd.api+json].schema.properties.included.items.allOf[*].properties\",\n \"$.paths..patch.requestBody.content[application/vnd.api+json].schema.properties.data.properties\",\n \"$.paths..patch.requestBody.content[application/vnd.api+json].schema.properties.data.allOf[*].properties\",\n ],\n POSTResourceObjects: [\n \"$.paths..post.requestBody.content[application/vnd.api+json].schema.properties.data.properties\",\n \"$.paths..post.requestBody.content[application/vnd.api+json].schema.properties.data.allOf[*].properties\",\n ],\n LinkObjects: [\"#AllContentSchemas..properties[links]\"],\n MetaObjects: [\"#AllContentSchemas..properties[meta]\"],\n Relationships: [\"#AllContentSchemas..properties[relationships]\"],\n RelationshipData: [\"#Relationships..data\"],\n POSTRelationships: [\n \"$.paths..post.requestBody.content[application/vnd.api+json].schema.properties.data.properties[relationships].properties[*]\",\n \"$.paths..post.requestBody.content[application/vnd.api+json].schema.properties.data.allOf[*].properties[relationships].properties[*]\",\n ],\n PATCHRelationships: [\n \"$.paths..patch.requestBody.content[application/vnd.api+json].schema.properties.data.properties[relationships].properties[*]\",\n \"$.paths..patch.requestBody.content[application/vnd.api+json].schema.properties.data.allOf[*].properties[relationships].properties[*]\",\n ],\n ErrorObjects: [\n \"$.paths..responses[default,400,500].content[application/vnd.api+json].schema.properties.errors.items.properties\",\n \"$.paths..responses[default,400,500].content[application/vnd.api+json].schema.properties.errors.items.allOf[*].properties\",\n \"$.paths..responses[?(@property > '400' && @property < '600')].content[application/vnd.api+json].schema.properties.errors.items.properties\",\n \"$.paths..responses[?(@property > '400' && @property < '600')].content[application/vnd.api+json].schema.properties.errors.items.allOf[*].properties\",\n ],\n },\n rules: {\n \"content-type\": {\n description: `\nRequests and responses **MUST** all use the content type of \\`application/vnd.api+json\\`.\n\n**Invalid Examples:**\n\\`\\`\\`yaml\nrequestBody:\n content:\n application/json\n\nresponses:\n '200':\n content:\n application/json\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\nrequestBody:\n content:\n application/vnd.api+json\n\nresponses:\n '200':\n content:\n application/vnd.api+json\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#content-negotiation-servers).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#content-negotiation\",\n message:\n \"Use application/vnd.api+json for all request and response bodies.\",\n severity: DiagnosticSeverity.Error,\n given: [\"$.paths..requestBody.content\", \"$.paths..responses..content\"],\n then: {\n field: \"@key\",\n function: pattern,\n functionOptions: {\n match: \"^application/vnd\\\\.api\\\\+json;?\",\n },\n },\n },\n \"406-response-code\": {\n description: `Servers **MUST** describe response code **406** paths in case of invalid \\`Accept\\` values.\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n '406':\n $ref: '#/components/responses/406Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#content-negotiation-servers).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#content-negotiation-servers\",\n message: \"Document a 406 response for invalid Accept headers.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths..responses\",\n then: {\n field: \"406\",\n function: truthy,\n },\n },\n \"415-response-code\": {\n description: `Servers **MUST** describe response code **415** on \\`POST\\` or \\`PATCH\\` paths in case of invalid \\`Content-Type\\` values.\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n '415':\n $ref: '#/components/responses/415Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#content-negotiation-servers).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#content-negotiation-servers\",\n message:\n \"Document a 415 response for invalid Content-Type headers on POST and PATCH.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][post,patch].responses\",\n then: {\n field: \"415\",\n function: truthy,\n },\n },\n \"top-level-json-object\": {\n description: `A JSON object **MUST** be at the root of every JSON:API request/response body containing data.\n\n**Valid Example:**\n\\`\\`\\`yaml\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-top-level).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-top-level\",\n message: \"Request and response bodies must have a top-level JSON object.\",\n severity: DiagnosticSeverity.Error,\n given: \"#AllContentSchemas\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n },\n \"top-level-json-properties\": {\n description: `Root JSON object **MUST** follow the jsonapi schema.\n\n**Schema Rules:**\n- **MUST** contain at least one of: \\`data\\`, \\`errors\\`, \\`meta\\` properties\n- \\`data\\` and \\`errors\\` **MAY NOT** coexist in the same document\n- **MAY** contain: \\`jsonapi\\`, \\`links\\`, \\`included\\`\n- if \\`included\\` exists, \\`data\\` is **REQUIRED**\n\n**Invalid Examples:**\n\\`\\`\\`yaml\ntype: object\nproperties:\n data:\n type: object\n errors:\n type: array\ntype: object\nproperties:\n links:\n type: object\n included:\n type: array\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\ntype: object\nproperties:\n jsonapi:\n type: object\n links:\n type: object\n meta:\n type: object\n data:\n type: object\n included:\n type: array\ntype: object\nproperties:\n errors:\n type: array\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-top-level).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-top-level\",\n message:\n \"Top-level documents must include data, errors, or meta and follow JSON:API member rules.\",\n severity: DiagnosticSeverity.Error,\n given: \"#AllContentSchemas\",\n then: {\n field: \"properties\",\n function: schema,\n functionOptions: {\n schema: {\n type: \"object\",\n anyOf: [\n {\n required: [\"data\"],\n },\n {\n required: [\"errors\"],\n },\n {\n required: [\"meta\"],\n },\n ],\n not: {\n anyOf: [\n {\n required: [\"data\", \"errors\"],\n },\n ],\n },\n dependentRequired: {\n included: [\"data\"],\n },\n properties: {\n data: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\", \"array\", \"null\"],\n },\n },\n },\n errors: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"array\"],\n },\n },\n },\n meta: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n },\n jsonapi: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n },\n links: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n },\n included: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"array\"],\n },\n },\n },\n },\n },\n },\n },\n },\n \"resource-object-properties\": {\n description: `Verify allowed properties in Resource Objects\n\n**Allowed properties:** \\`id\\`, \\`type\\`, \\`attributes\\`, \\`relationships\\`, \\`links\\`, and \\`meta\\`.\n\n**Invalid Example:**\n\\`\\`\\`yaml\ntype: object\nproperties:\n id:\n type: string\n format: uri\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - resources\n name:\n type: string\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\n - attributes\n - relationships\nproperties:\n id:\n type: string\n format: uri\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - resources\n attributes:\n type: object\n relationships:\n type: object\n meta:\n type: object\n links:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-objects).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-objects\",\n message:\n \"Resource objects may only use id, type, attributes, relationships, links, and meta.\",\n severity: DiagnosticSeverity.Error,\n given: [\"#ResourceObjects\", \"#POSTResourceObjects\"],\n then: [\n {\n field: \"type\",\n function: truthy,\n },\n {\n field: \"@key\",\n function: enumeration,\n functionOptions: {\n values: [\n \"id\",\n \"type\",\n \"attributes\",\n \"relationships\",\n \"links\",\n \"meta\",\n ],\n },\n },\n ],\n },\n \"resource-object-id-required\": {\n description: `Verify \\`id\\` property exists in Resource Object (except POST requestBody)\n\nSet \\`x-jsonapi-virtual-resource: true\\` on a resource schema to opt out when the resource is intentionally non-standard (for example, ephemeral computed resources that do not have stable IDs).\n\n**Valid Example:**\n\\`\\`\\`yaml\n# path..responses...\n# path.patch.requestBody...\n\ntype: object\nrequired:\n - id\n - type\nproperties:\n id:\n type: string\n format: uuid\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n meta:\n type: object\n\\`\\`\\`\n**NOTE:** Currently this rule triggers against \\`allOf\\` structures unless all items have \\`id\\`. Until this is corrected it is set as a warning.\n\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-objects).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-objects\",\n message: \"Resource objects should include an id property.\",\n severity: DiagnosticSeverity.Warning,\n resolved: true,\n given: [\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data[?(@property === 'type' && @ === 'object')]^\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data[?(@property === '$ref')]^\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data[?(@property === 'allOf')]^\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data[?(@property === 'anyOf')]^\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data[?(@property === 'oneOf')]^\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data.items\",\n \"$.paths..content[application/vnd.api+json].schema.properties.included.items\",\n ],\n then: {\n function: schemaFirstError,\n functionOptions: {\n dialect: \"draft2020-12\",\n allErrors: false,\n schema: resourceObjectIdRuleSchema,\n },\n },\n },\n \"resource-object-property-types\": {\n description: `\\`id\\` and \\`type\\` **MUST** be of type \\`string\\`\n\n**Invalid Example:**\n\\`\\`\\`yaml\ntype: object\nproperties:\n id:\n type: number\n type:\n type: string\n enum:\n - resources\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\nproperties:\n id:\n type: string\n format: uri\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - resources\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-identification).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-identification\",\n message: \"Resource object id and type must both be strings.\",\n severity: DiagnosticSeverity.Error,\n given: [\n \"#ResourceObjects.id\",\n \"#ResourceObjects.type\",\n \"#POSTResourceObjects.type\",\n ],\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n },\n \"resource-object-reserved-fields\": {\n description: `\\`id\\` and \\`type\\` **MUST NOT** exist in \\`attributes\\` or \\`relationships\\`\n\n**Invalid Example:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\n - attributes\nproperties:\n id:\n type: string\n format: uri\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - resources\n attributes:\n type: object\n properties:\n id:\n type: number\n type:\n type: string\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\n - attributes\nproperties:\n id:\n type: string\n format: uri\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - resources\n attributes:\n type: object\n properties:\n name:\n type: string\n descrpition:\n type: string\n meta:\n type: object\n links:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-fields).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-fields\",\n message: \"Do not define id or type inside attributes or relationships.\",\n severity: DiagnosticSeverity.Error,\n given:\n \"#AllContentSchemas..properties[attributes,relationships].properties[?(@.deprecated!=true)]~\",\n then: {\n function: pattern,\n functionOptions: {\n notMatch: \"^(id|type)$\",\n },\n },\n },\n \"attributes-object-type\": {\n description: `\\`attributes\\` property **MUST** be an \\`object\\`\n\n**Invalid Examples:**\n\\`\\`\\`yaml\n# data (Resource Object)\n# ... \nproperties:\n attributes:\n type: array \n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\n# data (Resource Object)\n# ... \nproperties:\n attributes:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-attributes).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-attributes\",\n message: \"attributes must be an object.\",\n severity: DiagnosticSeverity.Error,\n given: \"#AllContentSchemas..properties[attributes]\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n },\n \"attributes-object-properties\": {\n description: `\\`attributes\\` object **MUST NOT** contain a \\`relationships\\` or \\`links\\` property\n\n**Invalid Example:**\n\\`\\`\\`yaml\n# data (Resource Object)\n# ... \nproperties:\n attributes:\n type: object\n required:\n - name\n properties:\n name:\n type: string\n example: do-hickey\n description:\n type: string\n example: thing that does stuff\n links:\n type: array\n items:\n type: string\n relationships:\n type: array\n items:\n type: string\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\n# data (Resource Object)\n# ... \nproperties:\n attributes:\n type: object\n required:\n - name\n properties:\n name:\n type: string\n example: do-hickey\n description:\n type: string\n example: thing that does stuff\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-attributes).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-attributes\",\n message: \"attributes must not contain links or relationships.\",\n severity: DiagnosticSeverity.Error,\n given: \"#AllContentSchemas..properties[attributes]..properties\",\n then: [\n {\n field: \"relationships\",\n function: falsy,\n },\n {\n field: \"links\",\n function: falsy,\n },\n ],\n },\n \"attributes-object-foreign-keys\": {\n description: `Foreign Keys **SHOULD NOT** appear in \\`attributes\\`. **RECOMMEND** using \\`relationships\\`\n\nAlthough has-one foreign keys (e.g. author_id) are often stored internally alongside other information to be represented in a resource object, these keys **SHOULD NOT** appear as attributes.\n\nForeign keys are supported through the use of [relationships](https://jsonapi.org/format/1.1/#document-resource-object-relationships) and [related resource links](https://jsonapi.org/format/1.1/#document-resource-object-related-resource-links).\n\n**Example:** Use relationship primary data rather than foreign key.\n\\`\\`\\`yaml\ntype: object\nproperties:\n id:\n type: string\n format: uuid\n type:\n type: string\n enum:\n - widgets\n attributes:\n type: object\n required:\n - name\n properties:\n account_id:\n type: string\n name:\n type: string\n example: do-hickey\n description:\n type: string\n example: thing that does stuff\n relationships:\n type: object\n properties:\n manufacturer: #<------ a widget has a relationship with a manufacturer\n type: object\n required:\n - links\n - data\n properties:\n data:\n type: object\n properties:\n id: #<---------- primary/foreign key value\n type: string\n format: uuid\n type:\n type: string\n enum:\n - businesses\n\\`\\`\\`\n**NOTE:** This would normally be a severity of \\`hint\\`, though this can be missed visually in vscode. Until this changes it will be a severity of \\`info\\`.\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-attributes).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-attributes\",\n message:\n \"attributes should not include *_id foreign keys; model links with relationships.\",\n severity: DiagnosticSeverity.Information,\n given: \"#AllContentSchemas..properties[attributes]..properties[*]~\",\n then: {\n function: pattern,\n functionOptions: {\n notMatch: \".*_id$\",\n },\n },\n },\n \"relationships-object-type\": {\n description: `relationships **MUST** be an \\`object\\`\n\n**Invalid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: array\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-relationships).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-relationships\",\n\n severity: DiagnosticSeverity.Error,\n given: \"#Relationships\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n resolved: true,\n },\n \"relationship-schema\": {\n description: `relationship object **MUST** follow the schema\n\n**Schema Rules:**\n- **MUST** contain at least one of: \\`links\\`,\\`data\\`,\\`meta\\`\n- \\`links\\` object **MUST** contain at least one of: \\`self\\`, \\`related\\`\n- \\`data\\` **MAY** be \\`null\\`, single or array of resource identifiers\n- \\`meta\\` **MUST** be an \\`object\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\n'relationshipNameSingle':\n type: object\n required: [links, data]\n properties:\n links:\n type: object\n required: [self, related]\n properties:\n self:\n $ref: '#/components/schemas/Link'\n example: http://api.domain.com/v1/myResources/{id}/relationships/manufacturers\n related:\n type: string\n example: http://api.domain.com/v1/manufacturers/{id}\n data:\n type: object\n required: [id, type]\n properties:\n id:\n type: string\n format: uuid\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - 'relationshipNamePlural'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-relationships).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-relationships\",\n message:\n \"Each relationship object must include links, data, or meta, and match JSON:API structure.\",\n severity: DiagnosticSeverity.Error,\n given: \"#Relationships.properties[*]\",\n then: {\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: relationshipSchemaRuleSchema,\n },\n },\n },\n \"relationship-data-properties\": {\n description: `relationship \\`data\\` **MAY** only contain: \\`id\\`, \\`type\\` and \\`meta\\`\n \n **Invalid Example:**\n \\`\\`\\`yaml\n type: object\n required:\n - id\n - type\n properties:\n id:\n type: string\n format: uuid\n example: 2357c52f-6c78-4747-8106-e185c08143aa\n type:\n type: string\n attributes:\n type: object\n meta:\n type: object\n \\`\\`\\`\n\n **Valid Example:**\n \\`\\`\\`yaml\n type: object\n required:\n - id\n - type\n properties:\n id:\n type: string\n format: uuid\n example: 2357c52f-6c78-4747-8106-e185c08143aa\n type:\n type: string\n meta:\n type: object\n \\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-identifier-objects).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-identifier-objects\",\n message: \"Relationship data may only include id, type, and meta.\",\n severity: DiagnosticSeverity.Error,\n given: [\n \"#RelationshipData.properties\",\n \"#RelationshipData.allOf[*].properties\",\n \"#RelationshipData.items.properties\",\n \"#RelationshipData.items.allOf[*].properties\",\n ],\n then: {\n field: \"@key\",\n function: enumeration,\n functionOptions: {\n values: [\"id\", \"type\", \"meta\"],\n },\n },\n },\n \"relationship-data-schema\": {\n description: `relationship data items **MUST** follow schema\n\n**Schema Rules:**\n- \\`id\\` **MUST** be a \\`string\\`\n- \\`type\\` **MUST** be a \\`string\\`\n- \\`meta\\` **MUST** be an \\`object\\`\n\n**Invalid Examples:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\nproperties:\n id:\n type: number\n type:\n type: number\n meta:\n type: object\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\nproperties:\n id:\n type: string\n format: uuid\n example: 2357c52f-6c78-4747-8106-e185c08143aa\n type:\n type: string\n meta:\n type: object \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-identifier-objects).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-identifier-objects\",\n message:\n \"Relationship data entries must match the resource identifier schema.\",\n severity: DiagnosticSeverity.Error,\n given: [\n \"#RelationshipData.properties\",\n \"#RelationshipData.allOf[0].properties\",\n \"#RelationshipData.items.properties\",\n \"#RelationshipData.items.allOf[0].properties\",\n ],\n then: {\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: relationshipDataSchemaRuleSchema,\n },\n },\n },\n \"meta-object\": {\n description: `\\`meta\\` property **MUST** be of type \\`object\\`\n\n**Invalid Examples:**\n\\`\\`\\`yaml\nproperties:\n meta:\n type: string \n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nproperties:\n meta:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-meta).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-meta\",\n message: \"meta must be an object.\",\n severity: DiagnosticSeverity.Error,\n given: \"#MetaObjects\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n },\n \"links-object\": {\n description: `\\`links\\` property **MUST** be an \\`object\\`\n\n**Invalid Examples:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: array \n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-links).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-links\",\n message: \"links must be an object.\",\n severity: DiagnosticSeverity.Error,\n given: \"#LinkObjects\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n },\n \"links-object-schema\": {\n description: `A link **MUST** be represented as either a \\`string\\` containing the link's URL or an \\`object\\`.\n\n**Invalid Examples:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: object\n properties:\n self:\n type: number\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: object\n properties:\n self:\n oneOf:\n - type: string\n format: uri\n - type: object\n required:\n - href\n properties:\n href:\n type: string\n format: uri\n meta:\n type: object \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-links).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-links\",\n message: \"Each link value must be a string URL or a link object.\",\n severity: DiagnosticSeverity.Error,\n given: \"#LinkObjects.properties[*]..[?(@property === 'type')]^\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\", \"object\"],\n },\n },\n },\n \"links-object-schema-properties\": {\n description: `objects contained within a \\`links\\` object **MUST** contain \\`href\\` (string) and **MAY** contain \\`meta\\`\n\nA link **MUST** be represented as either a \\`string\\` containing the link's URL or an \\`object\\`.\n\n**Invalid Examples:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: object\n properties:\n self:\n oneOf:\n - type: string\n format: uri\n - type: object\n properties:\n url:\n type: string\n format: uri\n meta:\n type: object \n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: object\n properties:\n self:\n oneOf:\n - type: string\n format: uri\n - type: object\n required:\n - href\n properties:\n href:\n type: string\n format: uri\n meta:\n type: object \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-links).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-links\",\n message:\n \"Link objects may only contain href and meta, and must include href.\",\n severity: DiagnosticSeverity.Error,\n given: \"#LinkObjects.properties..properties\",\n then: [\n {\n field: \"@key\",\n function: enumeration,\n functionOptions: {\n values: [\"href\", \"meta\"],\n },\n },\n {\n field: \"href\",\n function: truthy,\n },\n {\n field: \"href.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n ],\n },\n \"jsonapi-object\": {\n description: `\\`jsonapi\\` object **MUST** match schema\n\n**Schema Rules:**\n- \\`jsonapi\\` **MUST** be an \\`object\\`\n- **MUST** contain \\`string\\` \\`version\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nproperties:\n jsonapi:\n type: object\n properties:\n version:\n type: string\n example: '1.0'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-jsonapi-object).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-jsonapi-object\",\n message: \"jsonapi must be an object with a string version.\",\n severity: DiagnosticSeverity.Error,\n given: \"#AllContentSchemas..properties[?(@property === 'jsonapi')]\",\n then: [\n {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n {\n field: \"properties[*]~\",\n function: enumeration,\n functionOptions: {\n values: [\"version\"],\n },\n },\n {\n field: \"properties.version\",\n function: truthy,\n },\n {\n field: \"properties.version.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n ],\n },\n \"get-200-response-code\": {\n description: `\\`GET\\` requests **MUST** support response code 200\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /tickets/{id}:\n get:\n responses:\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /tickets/{id}:\n get:\n responses:\n '200':\n $ref: '#/components/responses/Ticket'\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-resources-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#fetching-resources-responses\",\n message: \"GET operations must define a 200 response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][get].responses\",\n then: {\n field: \"200\",\n function: truthy,\n },\n },\n \"get-404-response-code\": {\n description: `\\`GET\\` requests to single resource endpoints **MUST** support response code 404\n\nPer the JSON:API specification, a server MUST respond with 404 Not Found when\nprocessing a request to fetch a single resource that does not exist.\n\nSingle resource endpoints are identified by a path parameter (e.g. \\`{id}\\`).\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /tickets/{id}:\n get:\n responses:\n '200':\n $ref: '#/components/responses/Ticket'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\npaths:\n /tickets/{id}:\n get:\n responses:\n '200':\n $ref: '#/components/responses/Ticket'\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-resources-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#fetching-resources-responses\",\n message: \"Single-resource GET operations must define a 404 response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[?(@property.match(/\\{[^}]+\\}/))][get].responses\",\n then: {\n field: \"404\",\n function: truthy,\n },\n },\n \"400-response-code\": {\n description: `Servers **MUST** document and support response code **400** for all paths\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n '400':\n $ref: '#/components/responses/400Error'\n\\`\\`\\``,\n message: \"Document a 400 response for every operation.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths..responses\",\n then: {\n field: \"400\",\n function: truthy,\n },\n },\n \"include-parameter\": {\n description: `\\`include\\` query param **MUST** be a string array (csv)\n\n**Valid Example:**\n\\`\\`\\`yaml\nname: include\ndescription: csv formatted parameter of relationship names to include in response\nin: query\nstyle: form\nexplode: false\nschema:\ntype: array\nitems:\n type: string\nexample: [\"ratings\",\"comments.author\"]\n\\`\\`\\`\nExample query string: \\`/articles/1?include=comments.author,ratings\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-includes).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#fetching-includes\",\n message: \"include must be a query parameter using CSV array style.\",\n severity: DiagnosticSeverity.Error,\n given:\n \"$.paths..parameters[*][?(@property === 'name' && @ === 'include')]^\",\n then: [\n {\n field: \"in\",\n function: enumeration,\n functionOptions: {\n values: [\"query\"],\n },\n },\n {\n field: \"style\",\n function: truthy,\n },\n {\n field: \"style\",\n function: enumeration,\n functionOptions: {\n values: [\"form\"],\n },\n },\n {\n field: \"explode\",\n function: defined,\n },\n {\n field: \"explode\",\n function: falsy,\n },\n {\n field: \"schema\",\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"array\"],\n },\n items: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n },\n },\n },\n },\n },\n ],\n },\n \"fields-parameter\": {\n description: `\\`fields\\` query param **MUST** be a \\`deepObject\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nname: fields\ndescription: schema for 'fields' query parameter\nin: query\nschema:\n type: object\nstyle: deepObject\nexample:\n people: \"name\"\n articles: \"title,body\"\n\\`\\`\\`\nExample query string: \\`/articles?fields[articles]=title,body&fields[people]=name\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-sparse-fieldsets).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#fetching-sparse-fieldsets\",\n message: \"fields must be a query parameter using deepObject style.\",\n severity: DiagnosticSeverity.Error,\n given:\n \"$.paths..parameters[*][?(@property === 'name' && @ === 'fields')]^\",\n then: [\n {\n field: \"in\",\n function: enumeration,\n functionOptions: {\n values: [\"query\"],\n },\n },\n {\n field: \"style\",\n function: truthy,\n },\n {\n field: \"style\",\n function: enumeration,\n functionOptions: {\n values: [\"deepObject\"],\n },\n },\n {\n field: \"schema\",\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n },\n },\n },\n ],\n },\n \"sort-parameter\": {\n description: `\\`sort\\` query param **MUST** be a string array (csv)\n\n**Valid Example:**\n\\`\\`\\`yaml\nname: sort\ndescription: csv formatted parameter of fields to sort by\nin: query\nstyle: form\nexplode: false\nschema:\n type: array\n items:\n type: string\nexample: [\"-age\",\"name\"]\n\\`\\`\\`\nExample query string: \\`/people?sort=-age,name\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-sorting).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#fetching-sorting\",\n message: \"sort must be a query parameter using CSV array style.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths..parameters[*][?(@property === 'name' && @ === 'sort')]^\",\n then: [\n {\n field: \"in\",\n function: enumeration,\n functionOptions: {\n values: [\"query\"],\n },\n },\n {\n field: \"style\",\n function: truthy,\n },\n {\n field: \"style\",\n function: enumeration,\n functionOptions: {\n values: [\"form\"],\n },\n },\n {\n field: \"explode\",\n function: defined,\n },\n {\n field: \"explode\",\n function: falsy,\n },\n {\n field: \"schema\",\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"array\"],\n },\n items: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n },\n },\n },\n },\n },\n ],\n },\n \"page-parameter\": {\n description: `\\`page\\` query param **MUST** follow schema\n\n**Schema Rules:**\n- **MUST** be type \\`object\\`\n- **MUST** be style \\`deepObject\\`\n- contents depend on strategy:\n - cursor: \\`string\\` \\`cursor\\` and \\`int32\\` \\`limit\\`\n - offset: \\`int32\\` \\`offset\\` and \\`int32\\` \\`limit\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\nname: page\ndescription: Paging parameter, cursor based.\nin: query\nschema:\n type: object\n required: [\"cursor\",\"limit\"]\n properties:\n cursor:\n type: string\n limit:\n type: integer\n format: int32\nstyle: deepObject\n\nname: page\ndescription: Paging parameter, offset based.\nin: query\nschema:\n type: object\n required: [\"offset\",\"limit\"]\n properties:\n cursor:\n type: integer\n format: int32\n limit:\n type: integer\n format: int32\nstyle: deepObject\n\\`\\`\\`\nExample query string:\n- \\`/myResources?page[cursor]=fdsJ34lkjSfjsdfk&page[limit]=10\\`\n- \\`/myResources?page[offset]=2&page[limit]=10\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-pagination).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#fetching-pagination\",\n message:\n \"page must be a deepObject query parameter that matches the pagination schema.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths..parameters[*][?(@property === 'name' && @ === 'page')]^\",\n then: [\n {\n field: \"in\",\n function: enumeration,\n functionOptions: {\n values: [\"query\"],\n },\n },\n {\n field: \"style\",\n function: truthy,\n },\n {\n field: \"style\",\n function: enumeration,\n functionOptions: {\n values: [\"deepObject\"],\n },\n },\n {\n field: \"schema\",\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\"],\n },\n properties: {\n type: \"object\",\n additionalProperties: false,\n properties: {\n cursor: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n },\n offset: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"integer\"],\n },\n format: {\n type: \"string\",\n enum: [\"int32\"],\n },\n minimum: {\n type: \"integer\",\n minimum: 0,\n },\n },\n },\n limit: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"integer\"],\n },\n format: {\n type: \"string\",\n enum: [\"int32\"],\n },\n },\n },\n },\n },\n },\n },\n },\n },\n ],\n },\n \"post-requests-single-object\": {\n description: `POST requests **MUST** only contain a single resource object\n\n**Invalid Example:**\n\\`\\`\\`yaml\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n required:\n - data\n properties:\n data:\n type: array\n items: \n $ref: '#/components/schemas/MyResourcePostObject'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n required:\n - data\n properties:\n data:\n $ref: '#/components/schemas/MyResourcePostObject'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#crud-creating\",\n message:\n \"POST request data must be a single resource object, not an array.\",\n severity: DiagnosticSeverity.Error,\n given:\n \"$.paths..post.requestBody.content[application/vnd.api+json].schema.properties.data[?(@property==='type' && @ === 'array')]\",\n then: {\n function: falsy,\n },\n },\n \"post-relationships\": {\n description: `If relationships exist in POST request, \\`data\\` is REQUIRED\n\n**Invalid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: object\n properties:\n manufacturer:\n type: object\n properties:\n links:\n type: object\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: object\n properties:\n manufacturer:\n type: object\n properties:\n data:\n type: object\n links:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#crud-creating\",\n message: \"If POST relationships are present, they must include data.\",\n severity: DiagnosticSeverity.Error,\n given: \"#POSTRelationships\",\n then: {\n field: \"required\",\n function: schema,\n functionOptions: {\n schema: {\n type: \"array\",\n items: {\n type: \"string\",\n anyOf: [\n {\n enum: [\"data\"],\n },\n {\n enum: [\"data\", \"links\", \"meta\"],\n },\n ],\n },\n },\n },\n },\n },\n \"403-response-code\": {\n description: `Servers **MUST** document and support response code **403** for all paths\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n '403':\n $ref: '#/components/responses/403Error'\n\\`\\`\\``,\n message: \"Document a 403 response for every operation.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths..responses\",\n then: {\n field: \"403\",\n function: truthy,\n },\n },\n \"201-response-location-header\": {\n description: `A POST 201 response **SHOULD** return a \\`Location\\` header identifying the location of the newly created resource.\n\n**Valid Example:**\n\\`\\`\\`yaml\nheaders:\n Location:\n schema:\n type: string\n format: uri\n example: 'http://example.com/photos/550e8400-e29b-41d4-a716-446655440000'\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-creating-responses\",\n message: \"POST 201 responses should include a Location header.\",\n severity: DiagnosticSeverity.Information,\n given: \"$.paths[*][post].responses.201.headers\",\n then: {\n field: \"Location\",\n function: defined,\n },\n },\n \"post-201-response\": {\n description: `A POST 201 response **MUST** return a document that contains the resource as primary data.\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-creating-responses\",\n message:\n \"POST 201 responses should include primary resource data using keys data, meta, jsonapi, or links.\",\n severity: DiagnosticSeverity.Information,\n given:\n \"$.paths[*][post].responses.201.content[application/vnd.api+json].schema\",\n then: {\n field: \"required\",\n function: schema,\n functionOptions: {\n schema: {\n type: \"array\",\n items: {\n type: \"string\",\n enum: [\"data\", \"meta\", \"jsonapi\", \"links\"],\n },\n },\n },\n },\n },\n \"post-2xx-response-codes\": {\n description: `\\`POST\\` requests **MUST** support one Of the following 2xx codes: 201, 202 or 204\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '201':\n $ref: '#/components/responses/MyResource_Single'\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources:\n post:\n responses:\n '202':\n description: Accepted.\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources:\n post:\n responses:\n '204':\n description: Successful Operation. No Content.\n '404':\n $ref: '#/components/responses/404Error' \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-creating-responses\",\n message:\n \"POST operations must define at least one success response: 201, 202, or 204.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][post].responses\",\n then: {\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n anyOf: [\n {\n required: [\"201\"],\n },\n {\n required: [\"202\"],\n },\n {\n required: [\"204\"],\n },\n ],\n },\n },\n },\n },\n \"post-409-response-code\": {\n description: `\\`POST\\` requests **MUST** document and support response code 409\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '201':\n $ref: '#/components/responses/MyResource_Single'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '201':\n $ref: '#/components/responses/MyResource_Single'\n '409':\n $ref: '#/components/responses/409Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-creating-responses\",\n message: \"POST operations must define a 409 conflict response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][post].responses\",\n then: {\n field: \"409\",\n function: truthy,\n },\n },\n \"post-409-response\": {\n description: `POST 409 response **SHOULD** return \\`source\\` property to identify conflict\n\n**Example:**\n\\`\\`\\`yaml\n# Example showing use of source in error object.\n\ntype: array\nmaxItems:1\nitems:\n type: object\n properties:\n id:\n type: string\n status:\n type: string\n const: 409\n title:\n type: string\n const: Conflict\n source:\n type: object\n properties:\n pointer:\n oneOf:\n - type: string\n format: json-pointer\n example: /data/attributes/id\n - type: array\n items:\n type: string\n format: json-pointer\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-creating-responses\",\n message:\n \"POST 409 responses should include source to explain the conflict.\",\n severity: DiagnosticSeverity.Information,\n given:\n \"$.paths[*][post].responses[409].content['application/vnd.api+json'].schema.properties\",\n then: {\n field: \"source\",\n function: truthy,\n },\n },\n \"put-disallowed\": {\n description: `\\`PUT\\` verb is not allowed in jsonapi, use \\`PATCH\\` instead.\n\n**Invalid Example:**\n\\`\\`\\`yaml\n/myResources/{id}:\n put:\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\n/myResources/{id}:\n patch:\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#crud-updating\",\n message: \"PUT is not allowed by JSON:API; use PATCH.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][put]\",\n then: [\n {\n function: falsy,\n },\n ],\n },\n \"patch-requests-single-object\": {\n description: `PATCH requests **MUST** only contain a single resource object\n\n**Invalid Example:**\n\\`\\`\\`yaml\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n required:\n - data\n properties:\n data:\n type: array\n items: \n $ref: '#/components/schemas/MyResourcePostObject'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n required:\n - data\n properties:\n data:\n $ref: '#/components/schemas/MyResourcePostObject'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#crud-creating\",\n message:\n \"PATCH request data must be a single resource object, not an array.\",\n severity: DiagnosticSeverity.Error,\n given:\n \"$.paths..patch.requestBody.content[application/vnd.api+json].schema.properties.data[?(@property==='type' && @ === 'array')]\",\n then: {\n function: falsy,\n },\n },\n \"patch-relationships\": {\n description: `If relationships exist in PATCH request, \\`data\\` is REQUIRED\n\n**Invalid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: object\n properties:\n manufacturer:\n type: object\n properties:\n links:\n type: object\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: object\n properties:\n manufacturer:\n type: object\n properties:\n data:\n type: object\n links:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating-resource-relationships).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#crud-creating\",\n message: \"If PATCH relationships are present, they must include data.\",\n severity: DiagnosticSeverity.Error,\n given: \"#PATCHRelationships\",\n then: {\n field: \"required\",\n function: schema,\n functionOptions: {\n schema: {\n type: \"array\",\n items: {\n type: \"string\",\n anyOf: [\n {\n enum: [\"data\"],\n },\n {\n enum: [\"data\", \"links\", \"meta\"],\n },\n ],\n },\n },\n },\n },\n },\n \"patch-2xx-response-codes\": {\n description: `\\`PATCH\\` requests **MUST** support at least one of the following 2xx codes: 200, 202 or 204\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Single'\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources/{id}:\n patch:\n responses:\n '202':\n description: Accepted.\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources/{id}:\n patch:\n responses:\n '204':\n description: Successful Operation. No Content.\n '404':\n $ref: '#/components/responses/404Error' \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-updating-responses\",\n message:\n \"PATCH operations must define at least one success response: 200, 202, or 204.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][patch].responses\",\n then: {\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n anyOf: [\n {\n required: [\"200\"],\n },\n {\n required: [\"202\"],\n },\n {\n required: [\"204\"],\n },\n ],\n },\n },\n },\n },\n \"patch-404-response-code\": {\n description: `\\`PATCH\\` requests **MUST** support response code 404\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Single'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Single'\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-updating-responses\",\n message: \"PATCH operations must define a 404 response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][patch].responses\",\n then: {\n field: \"404\",\n function: truthy,\n },\n },\n \"patch-409-response-code\": {\n description: `\\`PATCH\\` requests **MUST** document and support response code 409\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Single'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Single'\n '409':\n $ref: '#/components/responses/409Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-updating-responses\",\n message: \"PATCH operations must define a 409 conflict response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][patch].responses\",\n then: {\n field: \"409\",\n function: truthy,\n },\n },\n \"patch-409-response\": {\n description: `PATCH 409 response **SHOULD** return \\`source\\` property to identify conflict\n\n**Example:**\n\\`\\`\\`yaml\n# Example showing use of source in error object.\n# Examples describe a conflict between the {id} parameter and the id field in the request body.\n\ntype: array\nitems:\n type: object\n properties:\n id:\n type: string\n status:\n type: string\n enum:\n - 409\n title:\n type: string\n enum:\n - Conflict\n source:\n type: object\n properties:\n pointer:\n oneOf:\n - type: string\n format: json-pointer\n example: /data/attributes/id\n - type: array\n items:\n type: string\n format: json-pointer\n parameter:\n type: string\n example: id\nmaxItems:1\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-updating-responses\",\n message:\n \"PATCH 409 responses should include source to explain the conflict.\",\n severity: DiagnosticSeverity.Information,\n given: \"$.paths[*][patch].responses\",\n then: {\n field: \"409\",\n function: falsy,\n },\n },\n \"delete-2xx-response-codes\": {\n description: `\\`DELETE\\` requests **MUST** support at least one of the following 2xx codes: 200, 202, or 204\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n delete:\n responses:\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n delete:\n responses:\n '200':\n $ref: '#/components/responses/delete_meta_data'\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources/{id}:\n delete:\n responses:\n '202':\n description: Accepted.\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources/{id}:\n delete:\n responses:\n '204':\n description: Successful Operation. No Content.\n '404':\n $ref: '#/components/responses/404Error' \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-deleting-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-deleting-responses\",\n message:\n \"DELETE operations must define at least one success response: 200, 202, or 204.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][delete].responses\",\n then: {\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n anyOf: [\n {\n required: [\"200\"],\n },\n {\n required: [\"202\"],\n },\n {\n required: [\"204\"],\n },\n ],\n },\n },\n },\n },\n \"delete-404-response-code\": {\n description: `\\`DELETE\\` requests **MUST** support response code 404\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n delete:\n responses:\n '204':\n description: Successful Operation. No Content.\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n delete:\n responses:\n '204':\n description: Successful Operation. No Content.\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-deleting-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-deleting-responses\",\n message: \"DELETE operations must define a 404 response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][delete].responses\",\n then: {\n field: \"404\",\n function: truthy,\n },\n },\n \"error-object-schema\": {\n description: `error objects **MUST** follow schema\n\n**Schema Rules:**\n- **MAY** contain the following fields: \\`id\\`,\\`links\\`,\\`status\\`,\\`code\\`,\\`title\\`,\\`detail\\`,\\`source\\`,\\`meta\\`\n- \\`id\\`,\\`status\\`,\\`code\\`,\\`title\\`,\\`detail\\` **MUST** be an \\`object\\`\n- \\`links\\`,\\`source\\`,\\`meta\\` **MUST** be an \\`object\\`\n\n**Valid Example:** Using all fields\n\\`\\`\\`yaml\ntype: object\ndescription: JSON:API Error Object\nproperties:\n id:\n type: string\n description: a unique identifier for this particular occurrence of the problem\n links:\n type: object\n description: links that lead to further detail about the particular occurrence of the problem\n properties:\n about:\n $ref: '#/components/schemas/Link'\n status:\n type: string\n description: the HTTP status code applicable to this problem\n code:\n type: string\n description: an application-specific error code\n title:\n type: string\n description: a human-readable summary specific of the problem. Usually the http status friendly name.\n detail:\n type: string\n description: a human-readable explanation specific to this occurrence of the problem\n source:\n type: object\n description: an object containing references to the source of the error\n properties:\n pointer:\n description: a JSON Pointer [RFC6901] to the associated entity in the request document\n oneOf:\n - type: string\n format: json-pointer\n - type: array\n items:\n type: string\n format: json-pointer\n parameter:\n description: a string indicating which URI query parameter caused the error\n type: string\n meta:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#error-objects).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#error-objects\",\n message: \"Error objects must follow the JSON:API error object schema.\",\n severity: DiagnosticSeverity.Error,\n given: \"#ErrorObjects\",\n then: [\n {\n field: \"@key\",\n function: enumeration,\n functionOptions: {\n values: [\n \"id\",\n \"links\",\n \"status\",\n \"code\",\n \"title\",\n \"detail\",\n \"source\",\n \"meta\",\n ],\n },\n },\n {\n field: \"links.type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n {\n field: \"source.type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n {\n field: \"meta.type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n {\n field: \"status.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n {\n field: \"code.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n {\n field: \"title.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n {\n field: \"detail.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n ],\n },\n \"error-object-links\": {\n description: `error object \\`links\\` property **MUST** contain an \\`about\\` link.\n\n**Invalid Example:**\n\\`\\`\\`yaml\n# Error Object\n# ...\nlinks:\n type: object\n description: links that lead to further detail about the particular occurrence of the problem\n properties:\n self:\n $ref: '#/components/schemas/Link'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\n# Error Object\n# ...\nlinks:\n type: object\n description: links that lead to further detail about the particular occurrence of the problem\n properties:\n about:\n $ref: '#/components/schemas/Link'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#error-objects).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#error-objects\",\n message: \"Error object links must include about.\",\n severity: DiagnosticSeverity.Error,\n given: \"#ErrorObjects.links.properties\",\n then: [\n {\n field: \"about\",\n function: truthy,\n },\n ],\n },\n \"error-object-source-schema\": {\n description: `error object \\`source\\` **MUST** follow schema\n\n**Schema Rules:**\n- \\`source\\` **MUST** be an \\`object\\`\n- **MUST** contain at least one of: \\`pointer\\` or \\`parameter\\`\n- \\`parameter\\` **MUST** be a \\`string\\`\n- \\`pointer\\` **MUST** be a single json-pointer[[RFC6901]](https://tools.ietf.org/html/rfc6901) string or array of json-pointer strings\n\n**Valid Example:**\n\\`\\`\\`yaml\ntype: object\ndescription: an object containing references to the source of the error\nproperties:\n pointer:\n description: a JSON Pointer [RFC6901] to the associated entity in the request document\n oneOf:\n - type: string\n format: json-pointer\n - type: array\n items:\n type: string\n format: json-pointer\n parameter:\n description: a string indicating which URI query parameter caused the error\n type: string\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#error-objects).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#error-objects\",\n message:\n \"Error object source must include pointer or parameter and match schema.\",\n severity: DiagnosticSeverity.Error,\n given: \"#ErrorObjects.source\",\n then: {\n field: \"properties\",\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n properties: {\n parameter: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n },\n pointer: {\n type: \"object\",\n properties: {\n oneOf: {\n type: \"array\",\n items: {\n oneOf: [\n {\n type: \"object\",\n required: [\"type\", \"format\"],\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n format: {\n type: \"string\",\n enum: [\"json-pointer\"],\n },\n },\n },\n {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"array\"],\n },\n items: {\n type: \"object\",\n required: [\"type\", \"format\"],\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n format: {\n type: \"string\",\n enum: [\"json-pointer\"],\n },\n },\n },\n },\n },\n ],\n },\n },\n },\n },\n },\n },\n },\n },\n },\n },\n};\n","var HttpOperationSecurityDeclarationTypes;\n(function (HttpOperationSecurityDeclarationTypes) {\n /** Indicates that the operation has no security declarations. */\n HttpOperationSecurityDeclarationTypes[\"None\"] = \"none\";\n /** Indicates that the operation has explicit security declarations. */\n HttpOperationSecurityDeclarationTypes[\"Declared\"] = \"declared\";\n /** Indicates that the operation inherits its security declarations from the service. */\n HttpOperationSecurityDeclarationTypes[\"InheritedFromService\"] = \"inheritedFromService\";\n})(HttpOperationSecurityDeclarationTypes || (HttpOperationSecurityDeclarationTypes = {}));\nvar HttpParamStyles;\n(function (HttpParamStyles) {\n /** Used when OAS2 type !== array */\n HttpParamStyles[\"Unspecified\"] = \"unspecified\";\n /**\n * OAS 3.x style simple\n * OAS 2 collectionFormat csv\n */\n HttpParamStyles[\"Simple\"] = \"simple\";\n /**\n * OAS 3.x style matrix\n * OAS 2 collectionFormat no support\n */\n HttpParamStyles[\"Matrix\"] = \"matrix\";\n /**\n * OAS 3.x style label\n * OAS 2 collectionFormat no support\n */\n HttpParamStyles[\"Label\"] = \"label\";\n /**\n * OAS 3.x style form\n * OAS 2 collectionFormat\n * * csv, when explode === false\n * * multi, when explode === true\n */\n HttpParamStyles[\"Form\"] = \"form\";\n /**\n * OAS 3.x no support\n * OAS 2 collectionFormat csv when explode === undefined\n */\n HttpParamStyles[\"CommaDelimited\"] = \"commaDelimited\";\n /**\n * OAS 3.x style spaceDelimited\n * OAS 2 collectionFormat ssv\n */\n HttpParamStyles[\"SpaceDelimited\"] = \"spaceDelimited\";\n /**\n * OAS 3.x style spaceDelimited\n * OAS 2 collectionFormat pipes\n */\n HttpParamStyles[\"PipeDelimited\"] = \"pipeDelimited\";\n /**\n * OAS 3.x style deepObject\n * OAS 2 collectionFormat no support\n */\n HttpParamStyles[\"DeepObject\"] = \"deepObject\";\n /**\n * OAS 3.x style no support\n * OAS 2 collectionFormat tsv\n */\n HttpParamStyles[\"TabDelimited\"] = \"tabDelimited\";\n})(HttpParamStyles || (HttpParamStyles = {}));\n\n/**\n * Represents the severity of diagnostics.\n */\nvar DiagnosticSeverity;\n(function (DiagnosticSeverity) {\n /**\n * Something not allowed by the rules of a language or other means.\n */\n DiagnosticSeverity[DiagnosticSeverity[\"Error\"] = 0] = \"Error\";\n /**\n * Something suspicious but allowed.\n */\n DiagnosticSeverity[DiagnosticSeverity[\"Warning\"] = 1] = \"Warning\";\n /**\n * Something to inform about but not a problem.\n */\n DiagnosticSeverity[DiagnosticSeverity[\"Information\"] = 2] = \"Information\";\n /**\n * Something to hint to a better way of doing it, like proposing\n * a refactoring.\n */\n DiagnosticSeverity[DiagnosticSeverity[\"Hint\"] = 3] = \"Hint\";\n})(DiagnosticSeverity || (DiagnosticSeverity = {}));\n\n/**\n * Stoplight node types\n */\nvar NodeType;\n(function (NodeType) {\n NodeType[\"Article\"] = \"article\";\n NodeType[\"HttpService\"] = \"http_service\";\n NodeType[\"HttpServer\"] = \"http_server\";\n NodeType[\"HttpOperation\"] = \"http_operation\";\n NodeType[\"HttpCallback\"] = \"http_callback\";\n NodeType[\"HttpWebhook\"] = \"http_webhook\";\n NodeType[\"Model\"] = \"model\";\n NodeType[\"Generic\"] = \"generic\";\n NodeType[\"Unknown\"] = \"unknown\";\n NodeType[\"TableOfContents\"] = \"table_of_contents\";\n NodeType[\"SpectralRuleset\"] = \"spectral_ruleset\";\n NodeType[\"Styleguide\"] = \"styleguide\";\n NodeType[\"Image\"] = \"image\";\n NodeType[\"StoplightResolutions\"] = \"stoplight_resolutions\";\n NodeType[\"StoplightOverride\"] = \"stoplight_override\";\n})(NodeType || (NodeType = {}));\n/**\n * Node data formats\n */\nvar NodeFormat;\n(function (NodeFormat) {\n NodeFormat[\"Json\"] = \"json\";\n NodeFormat[\"Markdown\"] = \"markdown\";\n NodeFormat[\"Yaml\"] = \"yaml\";\n NodeFormat[\"Javascript\"] = \"javascript\";\n NodeFormat[\"Apng\"] = \"apng\";\n NodeFormat[\"Avif\"] = \"avif\";\n NodeFormat[\"Bmp\"] = \"bmp\";\n NodeFormat[\"Gif\"] = \"gif\";\n NodeFormat[\"Jpeg\"] = \"jpeg\";\n NodeFormat[\"Png\"] = \"png\";\n NodeFormat[\"Svg\"] = \"svg\";\n NodeFormat[\"Webp\"] = \"webp\";\n})(NodeFormat || (NodeFormat = {}));\n\nexport { DiagnosticSeverity, HttpOperationSecurityDeclarationTypes, HttpParamStyles, NodeFormat, NodeType };\n"],"mappings":"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","names":["HttpOperationSecurityDeclarationTypes","HttpParamStyles","DiagnosticSeverity","NodeType","NodeFormat"]} \ No newline at end of file +{"version":3,"sources":["../src/ruleset.ts","../node_modules/@stoplight/types/dist/index.mjs"],"sourcesContent":["import {\n defined,\n enumeration,\n truthy,\n falsy,\n pattern,\n schema,\n} from \"@stoplight/spectral-functions\";\nimport { oas3 } from \"@stoplight/spectral-formats\";\nimport { DiagnosticSeverity } from \"@stoplight/types\";\n\nconst relationshipPropertiesSchema = {\n type: \"object\",\n anyOf: [\n { required: [\"links\"] },\n { required: [\"data\"] },\n { required: [\"meta\"] },\n ],\n properties: {\n links: {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"object\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n ],\n },\n properties: {\n type: \"object\",\n anyOf: [{ required: [\"self\"] }, { required: [\"related\"] }],\n properties: {\n self: {\n type: \"object\",\n },\n related: {\n type: \"object\",\n },\n },\n },\n },\n },\n data: {\n type: \"object\",\n anyOf: [\n {\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\", \"array\", \"null\"],\n },\n },\n },\n {\n properties: {\n type: {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"object\", \"array\", \"null\"],\n },\n },\n },\n },\n {\n properties: {\n oneOf: {\n type: \"array\",\n minItems: 1,\n },\n },\n },\n ],\n },\n meta: {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"object\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n ],\n },\n },\n },\n },\n additionalProperties: false,\n};\n\nconst relationshipSchemaRuleSchema = {\n type: \"object\",\n anyOf: [\n {\n required: [\"properties\"],\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"object\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n ],\n },\n properties: relationshipPropertiesSchema,\n },\n },\n {\n required: [\"allOf\"],\n properties: {\n allOf: {\n type: \"array\",\n minItems: 1,\n contains: {\n type: \"object\",\n required: [\"properties\"],\n properties: {\n properties: relationshipPropertiesSchema,\n },\n },\n },\n },\n },\n ],\n};\n\nconst relationshipDataEntrySchema = {\n type: \"object\",\n properties: {\n id: {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"string\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n ],\n },\n },\n },\n type: {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"string\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n ],\n },\n },\n },\n meta: {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"object\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n ],\n },\n },\n },\n },\n};\n\nconst relationshipDataSchemaRuleSchema = {\n anyOf: [\n relationshipDataEntrySchema,\n {\n type: \"object\",\n properties: {\n type: {\n anyOf: [\n {\n type: \"string\",\n enum: [\"array\"],\n },\n {\n type: \"array\",\n minItems: 1,\n items: {\n type: \"string\",\n enum: [\"array\"],\n },\n },\n ],\n },\n items: relationshipDataEntrySchema,\n },\n },\n ],\n};\n\nconst resourceObjectIdLeafSchema = {\n anyOf: [\n {\n type: \"object\",\n required: [\"$ref\"],\n properties: {\n $ref: {\n type: \"string\",\n },\n },\n },\n {\n type: \"object\",\n required: [\"properties\"],\n properties: {\n properties: {\n type: \"object\",\n required: [\"id\"],\n },\n },\n },\n {\n type: \"object\",\n required: [\"allOf\"],\n properties: {\n allOf: {\n type: \"array\",\n minItems: 1,\n contains: {\n anyOf: [\n {\n type: \"object\",\n required: [\"properties\"],\n properties: {\n properties: {\n type: \"object\",\n required: [\"id\"],\n },\n },\n },\n {\n type: \"object\",\n required: [\"$ref\"],\n properties: {\n $ref: {\n type: \"string\",\n },\n },\n },\n ],\n },\n },\n },\n },\n ],\n};\n\nconst resourceObjectIdOptOutSchema = {\n type: \"object\",\n required: [\"x-jsonapi-virtual-resource\"],\n properties: {\n \"x-jsonapi-virtual-resource\": {\n const: true,\n },\n },\n};\n\nconst resourceObjectIdRuleSchema = {\n anyOf: [\n resourceObjectIdOptOutSchema,\n resourceObjectIdLeafSchema,\n {\n type: \"object\",\n required: [\"items\"],\n properties: {\n items: {\n anyOf: [\n resourceObjectIdOptOutSchema,\n resourceObjectIdLeafSchema,\n {\n type: \"object\",\n required: [\"anyOf\"],\n properties: {\n anyOf: {\n type: \"array\",\n minItems: 1,\n items: {\n anyOf: [\n resourceObjectIdOptOutSchema,\n resourceObjectIdLeafSchema,\n ],\n },\n },\n },\n },\n {\n type: \"object\",\n required: [\"oneOf\"],\n properties: {\n oneOf: {\n type: \"array\",\n minItems: 1,\n items: {\n anyOf: [\n resourceObjectIdOptOutSchema,\n resourceObjectIdLeafSchema,\n ],\n },\n },\n },\n },\n ],\n },\n },\n },\n {\n type: \"object\",\n required: [\"anyOf\"],\n properties: {\n anyOf: {\n type: \"array\",\n minItems: 1,\n items: {\n anyOf: [resourceObjectIdOptOutSchema, resourceObjectIdLeafSchema],\n },\n },\n },\n },\n {\n type: \"object\",\n required: [\"oneOf\"],\n properties: {\n oneOf: {\n type: \"array\",\n minItems: 1,\n items: {\n anyOf: [resourceObjectIdOptOutSchema, resourceObjectIdLeafSchema],\n },\n },\n },\n },\n ],\n};\n\nconst schemaFirstError = (...args: Parameters) => {\n const result = schema(...args);\n\n if (result instanceof Promise) {\n return result.then((errors) =>\n Array.isArray(errors) && errors.length > 0 ? [errors[0]] : errors,\n );\n }\n\n return Array.isArray(result) && result.length > 0 ? [result[0]] : result;\n};\n\nexport default {\n description: `# [{json:api}](https://jsonapi.org/) - [v1.1](https://jsonapi.org/format/1.1/)\n\nJSON:API is a media format for building APIs in JSON, that covers how clients and servers should communicate to minimize both the number of requests and the amount of data transmitted between clients and servers. \n\nJSON:API requires use of the JSON:API media type \\`application/vnd.api+json\\` for exchanging data.\n\nThis ruleset can be found on GitHub: [spectral-jsonapi](https://github.com/philsturgeon/spectral-jsonapi)`,\n formats: [oas3],\n aliases: {\n AllContentSchemas: [\"$.paths..content['application/vnd.api+json'].schema\"],\n ResourceObjects: [\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data.properties\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data.allOf[*].properties\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data.items.properties\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data.items.allOf[*].properties\",\n \"$.paths..content[application/vnd.api+json].schema.properties.included.items.properties\",\n \"$.paths..content[application/vnd.api+json].schema.properties.included.items.allOf[*].properties\",\n \"$.paths..patch.requestBody.content[application/vnd.api+json].schema.properties.data.properties\",\n \"$.paths..patch.requestBody.content[application/vnd.api+json].schema.properties.data.allOf[*].properties\",\n ],\n POSTResourceObjects: [\n \"$.paths..post.requestBody.content[application/vnd.api+json].schema.properties.data.properties\",\n \"$.paths..post.requestBody.content[application/vnd.api+json].schema.properties.data.allOf[*].properties\",\n ],\n LinkObjects: [\"#AllContentSchemas..properties[links]\"],\n MetaObjects: [\"#AllContentSchemas..properties[meta]\"],\n Relationships: [\"#AllContentSchemas..properties[relationships]\"],\n RelationshipData: [\"#Relationships..data\"],\n POSTRelationships: [\n \"$.paths..post.requestBody.content[application/vnd.api+json].schema.properties.data.properties[relationships].properties[*]\",\n \"$.paths..post.requestBody.content[application/vnd.api+json].schema.properties.data.allOf[*].properties[relationships].properties[*]\",\n ],\n PATCHRelationships: [\n \"$.paths..patch.requestBody.content[application/vnd.api+json].schema.properties.data.properties[relationships].properties[*]\",\n \"$.paths..patch.requestBody.content[application/vnd.api+json].schema.properties.data.allOf[*].properties[relationships].properties[*]\",\n ],\n ErrorObjects: [\n \"$.paths..responses[default,400,500].content[application/vnd.api+json].schema.properties.errors.items.properties\",\n \"$.paths..responses[default,400,500].content[application/vnd.api+json].schema.properties.errors.items.allOf[*].properties\",\n \"$.paths..responses[?(@property > '400' && @property < '600')].content[application/vnd.api+json].schema.properties.errors.items.properties\",\n \"$.paths..responses[?(@property > '400' && @property < '600')].content[application/vnd.api+json].schema.properties.errors.items.allOf[*].properties\",\n ],\n },\n rules: {\n \"content-type\": {\n description: `\nJSON payloads in requests and responses **MUST** use the content type of \\`application/vnd.api+json\\`.\n\nNon-JSON media types can be used for endpoints that do not exchange JSON:API documents.\n\n**Invalid Examples:**\n\\`\\`\\`yaml\nrequestBody:\n content:\n application/json\n\nresponses:\n '200':\n content:\n application/json\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\nrequestBody:\n content:\n application/vnd.api+json\n\nresponses:\n '200':\n content:\n application/vnd.api+json\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#content-negotiation-servers).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#content-negotiation\",\n message:\n \"Use application/vnd.api+json for JSON request and response bodies.\",\n severity: DiagnosticSeverity.Error,\n given: [\"$.paths..requestBody.content\", \"$.paths..responses..content\"],\n then: {\n field: \"@key\",\n function: pattern,\n functionOptions: {\n notMatch:\n \"^(?!application/vnd\\\\.api\\\\+json(?:\\\\s*;.*)?$)[^/]+/(?:[^;]+\\\\+json|json)(?:\\\\s*;.*)?$\",\n },\n },\n },\n \"406-response-code\": {\n description: `Servers **MUST** describe response code **406** paths in case of invalid \\`Accept\\` values.\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n '406':\n $ref: '#/components/responses/406Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#content-negotiation-servers).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#content-negotiation-servers\",\n message: \"Document a 406 response for invalid Accept headers.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths..responses\",\n then: {\n field: \"406\",\n function: truthy,\n },\n },\n \"415-response-code\": {\n description: `Servers **MUST** describe response code **415** on \\`POST\\` or \\`PATCH\\` paths in case of invalid \\`Content-Type\\` values.\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n '415':\n $ref: '#/components/responses/415Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#content-negotiation-servers).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#content-negotiation-servers\",\n message:\n \"Document a 415 response for invalid Content-Type headers on POST and PATCH.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][post,patch].responses\",\n then: {\n field: \"415\",\n function: truthy,\n },\n },\n \"top-level-json-object\": {\n description: `A JSON object **MUST** be at the root of every JSON:API request/response body containing data.\n\n**Valid Example:**\n\\`\\`\\`yaml\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-top-level).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-top-level\",\n message: \"Request and response bodies must have a top-level JSON object.\",\n severity: DiagnosticSeverity.Error,\n given: \"#AllContentSchemas\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n },\n \"top-level-json-properties\": {\n description: `Root JSON object **MUST** follow the jsonapi schema.\n\n**Schema Rules:**\n- **MUST** contain at least one of: \\`data\\`, \\`errors\\`, \\`meta\\` properties\n- \\`data\\` and \\`errors\\` **MAY NOT** coexist in the same document\n- **MAY** contain: \\`jsonapi\\`, \\`links\\`, \\`included\\`\n- if \\`included\\` exists, \\`data\\` is **REQUIRED**\n\n**Invalid Examples:**\n\\`\\`\\`yaml\ntype: object\nproperties:\n data:\n type: object\n errors:\n type: array\ntype: object\nproperties:\n links:\n type: object\n included:\n type: array\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\ntype: object\nproperties:\n jsonapi:\n type: object\n links:\n type: object\n meta:\n type: object\n data:\n type: object\n included:\n type: array\ntype: object\nproperties:\n errors:\n type: array\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-top-level).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-top-level\",\n message:\n \"Top-level documents must include data, errors, or meta and follow JSON:API member rules.\",\n severity: DiagnosticSeverity.Error,\n given: \"#AllContentSchemas\",\n then: {\n field: \"properties\",\n function: schema,\n functionOptions: {\n schema: {\n type: \"object\",\n anyOf: [\n {\n required: [\"data\"],\n },\n {\n required: [\"errors\"],\n },\n {\n required: [\"meta\"],\n },\n ],\n not: {\n anyOf: [\n {\n required: [\"data\", \"errors\"],\n },\n ],\n },\n dependentRequired: {\n included: [\"data\"],\n },\n properties: {\n data: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\", \"array\", \"null\"],\n },\n },\n },\n errors: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"array\"],\n },\n },\n },\n meta: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n },\n jsonapi: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n },\n links: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n },\n included: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"array\"],\n },\n },\n },\n },\n },\n },\n },\n },\n \"resource-object-properties\": {\n description: `Verify allowed properties in Resource Objects\n\n**Allowed properties:** \\`id\\`, \\`type\\`, \\`attributes\\`, \\`relationships\\`, \\`links\\`, and \\`meta\\`.\n\n**Invalid Example:**\n\\`\\`\\`yaml\ntype: object\nproperties:\n id:\n type: string\n format: uri\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - resources\n name:\n type: string\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\n - attributes\n - relationships\nproperties:\n id:\n type: string\n format: uri\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - resources\n attributes:\n type: object\n relationships:\n type: object\n meta:\n type: object\n links:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-objects).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-objects\",\n message:\n \"Resource objects may only use id, type, attributes, relationships, links, and meta.\",\n severity: DiagnosticSeverity.Error,\n given: [\"#ResourceObjects\", \"#POSTResourceObjects\"],\n then: [\n {\n field: \"type\",\n function: truthy,\n },\n {\n field: \"@key\",\n function: enumeration,\n functionOptions: {\n values: [\n \"id\",\n \"type\",\n \"attributes\",\n \"relationships\",\n \"links\",\n \"meta\",\n ],\n },\n },\n ],\n },\n \"resource-object-id-required\": {\n description: `Verify \\`id\\` property exists in Resource Object (except POST requestBody)\n\nSet \\`x-jsonapi-virtual-resource: true\\` on a resource schema to opt out when the resource is intentionally non-standard (for example, ephemeral computed resources that do not have stable IDs).\n\n**Valid Example:**\n\\`\\`\\`yaml\n# path..responses...\n# path.patch.requestBody...\n\ntype: object\nrequired:\n - id\n - type\nproperties:\n id:\n type: string\n format: uuid\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n meta:\n type: object\n\\`\\`\\`\n**NOTE:** Currently this rule triggers against \\`allOf\\` structures unless all items have \\`id\\`. Until this is corrected it is set as a warning.\n\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-objects).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-objects\",\n message: \"Resource objects should include an id property.\",\n severity: DiagnosticSeverity.Warning,\n resolved: true,\n given: [\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data[?(@property === 'type' && @ === 'object')]^\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data[?(@property === '$ref')]^\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data[?(@property === 'allOf')]^\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data[?(@property === 'anyOf')]^\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data[?(@property === 'oneOf')]^\",\n \"$.paths..responses..content[application/vnd.api+json].schema.properties.data.items\",\n \"$.paths..content[application/vnd.api+json].schema.properties.included.items\",\n ],\n then: {\n function: schemaFirstError,\n functionOptions: {\n dialect: \"draft2020-12\",\n allErrors: false,\n schema: resourceObjectIdRuleSchema,\n },\n },\n },\n \"resource-object-property-types\": {\n description: `\\`id\\` and \\`type\\` **MUST** be of type \\`string\\`\n\n**Invalid Example:**\n\\`\\`\\`yaml\ntype: object\nproperties:\n id:\n type: number\n type:\n type: string\n enum:\n - resources\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\nproperties:\n id:\n type: string\n format: uri\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - resources\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-identification).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-identification\",\n message: \"Resource object id and type must both be strings.\",\n severity: DiagnosticSeverity.Error,\n given: [\n \"#ResourceObjects.id\",\n \"#ResourceObjects.type\",\n \"#POSTResourceObjects.type\",\n ],\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n },\n \"resource-object-reserved-fields\": {\n description: `\\`id\\` and \\`type\\` **MUST NOT** exist in \\`attributes\\` or \\`relationships\\`\n\n**Invalid Example:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\n - attributes\nproperties:\n id:\n type: string\n format: uri\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - resources\n attributes:\n type: object\n properties:\n id:\n type: number\n type:\n type: string\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\n - attributes\nproperties:\n id:\n type: string\n format: uri\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - resources\n attributes:\n type: object\n properties:\n name:\n type: string\n descrpition:\n type: string\n meta:\n type: object\n links:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-fields).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-fields\",\n message: \"Do not define id or type inside attributes or relationships.\",\n severity: DiagnosticSeverity.Error,\n given:\n \"#AllContentSchemas..properties[attributes,relationships].properties[?(@.deprecated!=true)]~\",\n then: {\n function: pattern,\n functionOptions: {\n notMatch: \"^(id|type)$\",\n },\n },\n },\n \"attributes-object-type\": {\n description: `\\`attributes\\` property **MUST** be an \\`object\\`\n\n**Invalid Examples:**\n\\`\\`\\`yaml\n# data (Resource Object)\n# ... \nproperties:\n attributes:\n type: array \n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\n# data (Resource Object)\n# ... \nproperties:\n attributes:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-attributes).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-attributes\",\n message: \"attributes must be an object.\",\n severity: DiagnosticSeverity.Error,\n given: \"#AllContentSchemas..properties[attributes]\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n },\n \"attributes-object-properties\": {\n description: `\\`attributes\\` object **MUST NOT** contain a \\`relationships\\` or \\`links\\` property\n\n**Invalid Example:**\n\\`\\`\\`yaml\n# data (Resource Object)\n# ... \nproperties:\n attributes:\n type: object\n required:\n - name\n properties:\n name:\n type: string\n example: do-hickey\n description:\n type: string\n example: thing that does stuff\n links:\n type: array\n items:\n type: string\n relationships:\n type: array\n items:\n type: string\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\n# data (Resource Object)\n# ... \nproperties:\n attributes:\n type: object\n required:\n - name\n properties:\n name:\n type: string\n example: do-hickey\n description:\n type: string\n example: thing that does stuff\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-attributes).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-attributes\",\n message: \"attributes must not contain links or relationships.\",\n severity: DiagnosticSeverity.Error,\n given: \"#AllContentSchemas..properties[attributes]..properties\",\n then: [\n {\n field: \"relationships\",\n function: falsy,\n },\n {\n field: \"links\",\n function: falsy,\n },\n ],\n },\n \"attributes-object-foreign-keys\": {\n description: `Foreign Keys **SHOULD NOT** appear in \\`attributes\\`. **RECOMMEND** using \\`relationships\\`\n\nAlthough has-one foreign keys (e.g. author_id) are often stored internally alongside other information to be represented in a resource object, these keys **SHOULD NOT** appear as attributes.\n\nForeign keys are supported through the use of [relationships](https://jsonapi.org/format/1.1/#document-resource-object-relationships) and [related resource links](https://jsonapi.org/format/1.1/#document-resource-object-related-resource-links).\n\n**Example:** Use relationship primary data rather than foreign key.\n\\`\\`\\`yaml\ntype: object\nproperties:\n id:\n type: string\n format: uuid\n type:\n type: string\n enum:\n - widgets\n attributes:\n type: object\n required:\n - name\n properties:\n account_id:\n type: string\n name:\n type: string\n example: do-hickey\n description:\n type: string\n example: thing that does stuff\n relationships:\n type: object\n properties:\n manufacturer: #<------ a widget has a relationship with a manufacturer\n type: object\n required:\n - links\n - data\n properties:\n data:\n type: object\n properties:\n id: #<---------- primary/foreign key value\n type: string\n format: uuid\n type:\n type: string\n enum:\n - businesses\n\\`\\`\\`\n**NOTE:** This would normally be a severity of \\`hint\\`, though this can be missed visually in vscode. Until this changes it will be a severity of \\`info\\`.\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-attributes).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-attributes\",\n message:\n \"attributes should not include *_id foreign keys; model links with relationships.\",\n severity: DiagnosticSeverity.Information,\n given: \"#AllContentSchemas..properties[attributes]..properties[*]~\",\n then: {\n function: pattern,\n functionOptions: {\n notMatch: \".*_id$\",\n },\n },\n },\n \"relationships-object-type\": {\n description: `relationships **MUST** be an \\`object\\`\n\n**Invalid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: array\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-relationships).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-relationships\",\n\n severity: DiagnosticSeverity.Error,\n given: \"#Relationships\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n resolved: true,\n },\n \"relationship-schema\": {\n description: `relationship object **MUST** follow the schema\n\n**Schema Rules:**\n- **MUST** contain at least one of: \\`links\\`,\\`data\\`,\\`meta\\`\n- \\`links\\` object **MUST** contain at least one of: \\`self\\`, \\`related\\`\n- \\`data\\` **MAY** be \\`null\\`, single or array of resource identifiers\n- \\`meta\\` **MUST** be an \\`object\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\n'relationshipNameSingle':\n type: object\n required: [links, data]\n properties:\n links:\n type: object\n required: [self, related]\n properties:\n self:\n $ref: '#/components/schemas/Link'\n example: http://api.domain.com/v1/myResources/{id}/relationships/manufacturers\n related:\n type: string\n example: http://api.domain.com/v1/manufacturers/{id}\n data:\n type: object\n required: [id, type]\n properties:\n id:\n type: string\n format: uuid\n example: 4257c52f-6c78-4747-8106-e185c081436b\n type:\n type: string\n enum:\n - 'relationshipNamePlural'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-object-relationships).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-object-relationships\",\n message:\n \"Each relationship object must include links, data, or meta, and match JSON:API structure.\",\n severity: DiagnosticSeverity.Error,\n given: \"#Relationships.properties[*]\",\n then: {\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: relationshipSchemaRuleSchema,\n },\n },\n },\n \"relationship-data-properties\": {\n description: `relationship \\`data\\` **MAY** only contain: \\`id\\`, \\`type\\` and \\`meta\\`\n \n **Invalid Example:**\n \\`\\`\\`yaml\n type: object\n required:\n - id\n - type\n properties:\n id:\n type: string\n format: uuid\n example: 2357c52f-6c78-4747-8106-e185c08143aa\n type:\n type: string\n attributes:\n type: object\n meta:\n type: object\n \\`\\`\\`\n\n **Valid Example:**\n \\`\\`\\`yaml\n type: object\n required:\n - id\n - type\n properties:\n id:\n type: string\n format: uuid\n example: 2357c52f-6c78-4747-8106-e185c08143aa\n type:\n type: string\n meta:\n type: object\n \\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-identifier-objects).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-identifier-objects\",\n message: \"Relationship data may only include id, type, and meta.\",\n severity: DiagnosticSeverity.Error,\n given: [\n \"#RelationshipData.properties\",\n \"#RelationshipData.allOf[*].properties\",\n \"#RelationshipData.items.properties\",\n \"#RelationshipData.items.allOf[*].properties\",\n ],\n then: {\n field: \"@key\",\n function: enumeration,\n functionOptions: {\n values: [\"id\", \"type\", \"meta\"],\n },\n },\n },\n \"relationship-data-schema\": {\n description: `relationship data items **MUST** follow schema\n\n**Schema Rules:**\n- \\`id\\` **MUST** be a \\`string\\`\n- \\`type\\` **MUST** be a \\`string\\`\n- \\`meta\\` **MUST** be an \\`object\\`\n\n**Invalid Examples:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\nproperties:\n id:\n type: number\n type:\n type: number\n meta:\n type: object\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ntype: object\nrequired:\n - id\n - type\nproperties:\n id:\n type: string\n format: uuid\n example: 2357c52f-6c78-4747-8106-e185c08143aa\n type:\n type: string\n meta:\n type: object \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-resource-identifier-objects).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-resource-identifier-objects\",\n message:\n \"Relationship data entries must match the resource identifier schema.\",\n severity: DiagnosticSeverity.Error,\n given: [\n \"#RelationshipData.properties\",\n \"#RelationshipData.allOf[0].properties\",\n \"#RelationshipData.items.properties\",\n \"#RelationshipData.items.allOf[0].properties\",\n ],\n then: {\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: relationshipDataSchemaRuleSchema,\n },\n },\n },\n \"meta-object\": {\n description: `\\`meta\\` property **MUST** be of type \\`object\\`\n\n**Invalid Examples:**\n\\`\\`\\`yaml\nproperties:\n meta:\n type: string \n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nproperties:\n meta:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-meta).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-meta\",\n message: \"meta must be an object.\",\n severity: DiagnosticSeverity.Error,\n given: \"#MetaObjects\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n },\n \"links-object\": {\n description: `\\`links\\` property **MUST** be an \\`object\\`\n\n**Invalid Examples:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: array \n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-links).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-links\",\n message: \"links must be an object.\",\n severity: DiagnosticSeverity.Error,\n given: \"#LinkObjects\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n },\n \"links-object-schema\": {\n description: `A link **MUST** be represented as either a \\`string\\` containing the link's URL or an \\`object\\`.\n\n**Invalid Examples:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: object\n properties:\n self:\n type: number\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: object\n properties:\n self:\n oneOf:\n - type: string\n format: uri\n - type: object\n required:\n - href\n properties:\n href:\n type: string\n format: uri\n meta:\n type: object \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-links).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-links\",\n message: \"Each link value must be a string URL or a link object.\",\n severity: DiagnosticSeverity.Error,\n given: \"#LinkObjects.properties[*]..[?(@property === 'type')]^\",\n then: {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\", \"object\"],\n },\n },\n },\n \"links-object-schema-properties\": {\n description: `objects contained within a \\`links\\` object **MUST** contain \\`href\\` (string) and **MAY** contain \\`meta\\`\n\nA link **MUST** be represented as either a \\`string\\` containing the link's URL or an \\`object\\`.\n\n**Invalid Examples:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: object\n properties:\n self:\n oneOf:\n - type: string\n format: uri\n - type: object\n properties:\n url:\n type: string\n format: uri\n meta:\n type: object \n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nproperties:\n links:\n type: object\n properties:\n self:\n oneOf:\n - type: string\n format: uri\n - type: object\n required:\n - href\n properties:\n href:\n type: string\n format: uri\n meta:\n type: object \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-links).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#document-links\",\n message:\n \"Link objects may only contain href and meta, and must include href.\",\n severity: DiagnosticSeverity.Error,\n given: \"#LinkObjects.properties..properties\",\n then: [\n {\n field: \"@key\",\n function: enumeration,\n functionOptions: {\n values: [\"href\", \"meta\"],\n },\n },\n {\n field: \"href\",\n function: truthy,\n },\n {\n field: \"href.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n ],\n },\n \"jsonapi-object\": {\n description: `\\`jsonapi\\` object **MUST** match schema\n\n**Schema Rules:**\n- \\`jsonapi\\` **MUST** be an \\`object\\`\n- **MUST** contain \\`string\\` \\`version\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nproperties:\n jsonapi:\n type: object\n properties:\n version:\n type: string\n example: '1.0'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#document-jsonapi-object).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#document-jsonapi-object\",\n message: \"jsonapi must be an object with a string version.\",\n severity: DiagnosticSeverity.Error,\n given: \"#AllContentSchemas..properties[?(@property === 'jsonapi')]\",\n then: [\n {\n field: \"type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n {\n field: \"properties[*]~\",\n function: enumeration,\n functionOptions: {\n values: [\"version\"],\n },\n },\n {\n field: \"properties.version\",\n function: truthy,\n },\n {\n field: \"properties.version.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n ],\n },\n \"get-200-response-code\": {\n description: `\\`GET\\` requests **MUST** support response code 200\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /tickets/{id}:\n get:\n responses:\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /tickets/{id}:\n get:\n responses:\n '200':\n $ref: '#/components/responses/Ticket'\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-resources-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#fetching-resources-responses\",\n message: \"GET operations must define a 200 response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][get].responses\",\n then: {\n field: \"200\",\n function: truthy,\n },\n },\n \"get-404-response-code\": {\n description: `\\`GET\\` requests to single resource endpoints **MUST** support response code 404\n\nPer the JSON:API specification, a server MUST respond with 404 Not Found when\nprocessing a request to fetch a single resource that does not exist.\n\nSingle resource endpoints are identified by a path parameter (e.g. \\`{id}\\`).\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /tickets/{id}:\n get:\n responses:\n '200':\n $ref: '#/components/responses/Ticket'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\npaths:\n /tickets/{id}:\n get:\n responses:\n '200':\n $ref: '#/components/responses/Ticket'\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-resources-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#fetching-resources-responses\",\n message: \"Single-resource GET operations must define a 404 response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[?(@property.match(/\\{[^}]+\\}/))][get].responses\",\n then: {\n field: \"404\",\n function: truthy,\n },\n },\n \"400-response-code\": {\n description: `Servers **MUST** document and support response code **400** for all paths\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n '400':\n $ref: '#/components/responses/400Error'\n\\`\\`\\``,\n message: \"Document a 400 response for every operation.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths..responses\",\n then: {\n field: \"400\",\n function: truthy,\n },\n },\n \"include-parameter\": {\n description: `\\`include\\` query param **MUST** be a string array (csv)\n\n**Valid Example:**\n\\`\\`\\`yaml\nname: include\ndescription: csv formatted parameter of relationship names to include in response\nin: query\nstyle: form\nexplode: false\nschema:\ntype: array\nitems:\n type: string\nexample: [\"ratings\",\"comments.author\"]\n\\`\\`\\`\nExample query string: \\`/articles/1?include=comments.author,ratings\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-includes).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#fetching-includes\",\n message: \"include must be a query parameter using CSV array style.\",\n severity: DiagnosticSeverity.Error,\n given:\n \"$.paths..parameters[*][?(@property === 'name' && @ === 'include')]^\",\n then: [\n {\n field: \"in\",\n function: enumeration,\n functionOptions: {\n values: [\"query\"],\n },\n },\n {\n field: \"style\",\n function: truthy,\n },\n {\n field: \"style\",\n function: enumeration,\n functionOptions: {\n values: [\"form\"],\n },\n },\n {\n field: \"explode\",\n function: defined,\n },\n {\n field: \"explode\",\n function: falsy,\n },\n {\n field: \"schema\",\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"array\"],\n },\n items: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n },\n },\n },\n },\n },\n ],\n },\n \"fields-parameter\": {\n description: `\\`fields\\` query param **MUST** be a \\`deepObject\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nname: fields\ndescription: schema for 'fields' query parameter\nin: query\nschema:\n type: object\nstyle: deepObject\nexample:\n people: \"name\"\n articles: \"title,body\"\n\\`\\`\\`\nExample query string: \\`/articles?fields[articles]=title,body&fields[people]=name\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-sparse-fieldsets).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#fetching-sparse-fieldsets\",\n message: \"fields must be a query parameter using deepObject style.\",\n severity: DiagnosticSeverity.Error,\n given:\n \"$.paths..parameters[*][?(@property === 'name' && @ === 'fields')]^\",\n then: [\n {\n field: \"in\",\n function: enumeration,\n functionOptions: {\n values: [\"query\"],\n },\n },\n {\n field: \"style\",\n function: truthy,\n },\n {\n field: \"style\",\n function: enumeration,\n functionOptions: {\n values: [\"deepObject\"],\n },\n },\n {\n field: \"schema\",\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\"],\n },\n },\n },\n },\n },\n ],\n },\n \"sort-parameter\": {\n description: `\\`sort\\` query param **MUST** be a string array (csv)\n\n**Valid Example:**\n\\`\\`\\`yaml\nname: sort\ndescription: csv formatted parameter of fields to sort by\nin: query\nstyle: form\nexplode: false\nschema:\n type: array\n items:\n type: string\nexample: [\"-age\",\"name\"]\n\\`\\`\\`\nExample query string: \\`/people?sort=-age,name\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-sorting).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#fetching-sorting\",\n message: \"sort must be a query parameter using CSV array style.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths..parameters[*][?(@property === 'name' && @ === 'sort')]^\",\n then: [\n {\n field: \"in\",\n function: enumeration,\n functionOptions: {\n values: [\"query\"],\n },\n },\n {\n field: \"style\",\n function: truthy,\n },\n {\n field: \"style\",\n function: enumeration,\n functionOptions: {\n values: [\"form\"],\n },\n },\n {\n field: \"explode\",\n function: defined,\n },\n {\n field: \"explode\",\n function: falsy,\n },\n {\n field: \"schema\",\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"array\"],\n },\n items: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n },\n },\n },\n },\n },\n ],\n },\n \"page-parameter\": {\n description: `\\`page\\` query param **MUST** follow schema\n\n**Schema Rules:**\n- **MUST** be type \\`object\\`\n- **MUST** be style \\`deepObject\\`\n- contents depend on strategy:\n - cursor: \\`string\\` \\`cursor\\` and \\`int32\\` \\`limit\\`\n - offset: \\`int32\\` \\`offset\\` and \\`int32\\` \\`limit\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\nname: page\ndescription: Paging parameter, cursor based.\nin: query\nschema:\n type: object\n required: [\"cursor\",\"limit\"]\n properties:\n cursor:\n type: string\n limit:\n type: integer\n format: int32\nstyle: deepObject\n\nname: page\ndescription: Paging parameter, offset based.\nin: query\nschema:\n type: object\n required: [\"offset\",\"limit\"]\n properties:\n cursor:\n type: integer\n format: int32\n limit:\n type: integer\n format: int32\nstyle: deepObject\n\\`\\`\\`\nExample query string:\n- \\`/myResources?page[cursor]=fdsJ34lkjSfjsdfk&page[limit]=10\\`\n- \\`/myResources?page[offset]=2&page[limit]=10\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#fetching-pagination).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#fetching-pagination\",\n message:\n \"page must be a deepObject query parameter that matches the pagination schema.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths..parameters[*][?(@property === 'name' && @ === 'page')]^\",\n then: [\n {\n field: \"in\",\n function: enumeration,\n functionOptions: {\n values: [\"query\"],\n },\n },\n {\n field: \"style\",\n function: truthy,\n },\n {\n field: \"style\",\n function: enumeration,\n functionOptions: {\n values: [\"deepObject\"],\n },\n },\n {\n field: \"schema\",\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"object\"],\n },\n properties: {\n type: \"object\",\n additionalProperties: false,\n properties: {\n cursor: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n },\n offset: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"integer\"],\n },\n format: {\n type: \"string\",\n enum: [\"int32\"],\n },\n minimum: {\n type: \"integer\",\n minimum: 0,\n },\n },\n },\n limit: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"integer\"],\n },\n format: {\n type: \"string\",\n enum: [\"int32\"],\n },\n },\n },\n },\n },\n },\n },\n },\n },\n ],\n },\n \"post-requests-single-object\": {\n description: `POST requests **MUST** only contain a single resource object\n\n**Invalid Example:**\n\\`\\`\\`yaml\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n required:\n - data\n properties:\n data:\n type: array\n items: \n $ref: '#/components/schemas/MyResourcePostObject'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n required:\n - data\n properties:\n data:\n $ref: '#/components/schemas/MyResourcePostObject'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#crud-creating\",\n message:\n \"POST request data must be a single resource object, not an array.\",\n severity: DiagnosticSeverity.Error,\n given:\n \"$.paths..post.requestBody.content[application/vnd.api+json].schema.properties.data[?(@property==='type' && @ === 'array')]\",\n then: {\n function: falsy,\n },\n },\n \"post-relationships\": {\n description: `If relationships exist in POST request, \\`data\\` is REQUIRED\n\n**Invalid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: object\n properties:\n manufacturer:\n type: object\n properties:\n links:\n type: object\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: object\n properties:\n manufacturer:\n type: object\n properties:\n data:\n type: object\n links:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#crud-creating\",\n message: \"If POST relationships are present, they must include data.\",\n severity: DiagnosticSeverity.Error,\n given: \"#POSTRelationships\",\n then: {\n field: \"required\",\n function: schema,\n functionOptions: {\n schema: {\n type: \"array\",\n items: {\n type: \"string\",\n anyOf: [\n {\n enum: [\"data\"],\n },\n {\n enum: [\"data\", \"links\", \"meta\"],\n },\n ],\n },\n },\n },\n },\n },\n \"403-response-code\": {\n description: `Servers **MUST** document and support response code **403** for all paths\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n get:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Collection'\n '403':\n $ref: '#/components/responses/403Error'\n\\`\\`\\``,\n message: \"Document a 403 response for every operation.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths..responses\",\n then: {\n field: \"403\",\n function: truthy,\n },\n },\n \"201-response-location-header\": {\n description: `A POST 201 response **SHOULD** return a \\`Location\\` header identifying the location of the newly created resource.\n\n**Valid Example:**\n\\`\\`\\`yaml\nheaders:\n Location:\n schema:\n type: string\n format: uri\n example: 'http://example.com/photos/550e8400-e29b-41d4-a716-446655440000'\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-creating-responses\",\n message: \"POST 201 responses should include a Location header.\",\n severity: DiagnosticSeverity.Information,\n given: \"$.paths[*][post].responses.201.headers\",\n then: {\n field: \"Location\",\n function: defined,\n },\n },\n \"post-201-response\": {\n description: `A POST 201 response **MUST** return a document that contains the resource as primary data.\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-creating-responses\",\n message:\n \"POST 201 responses should include primary resource data using keys data, meta, jsonapi, or links.\",\n severity: DiagnosticSeverity.Information,\n given:\n \"$.paths[*][post].responses.201.content[application/vnd.api+json].schema\",\n then: {\n field: \"required\",\n function: schema,\n functionOptions: {\n schema: {\n type: \"array\",\n items: {\n type: \"string\",\n enum: [\"data\", \"meta\", \"jsonapi\", \"links\"],\n },\n },\n },\n },\n },\n \"post-2xx-response-codes\": {\n description: `\\`POST\\` requests **MUST** support one Of the following 2xx codes: 201, 202 or 204\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '201':\n $ref: '#/components/responses/MyResource_Single'\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources:\n post:\n responses:\n '202':\n description: Accepted.\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources:\n post:\n responses:\n '204':\n description: Successful Operation. No Content.\n '404':\n $ref: '#/components/responses/404Error' \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-creating-responses\",\n message:\n \"POST operations must define at least one success response: 201, 202, or 204.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][post].responses\",\n then: {\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n anyOf: [\n {\n required: [\"201\"],\n },\n {\n required: [\"202\"],\n },\n {\n required: [\"204\"],\n },\n ],\n },\n },\n },\n },\n \"post-409-response-code\": {\n description: `\\`POST\\` requests **MUST** document and support response code 409\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '201':\n $ref: '#/components/responses/MyResource_Single'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources:\n post:\n responses:\n '201':\n $ref: '#/components/responses/MyResource_Single'\n '409':\n $ref: '#/components/responses/409Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-creating-responses\",\n message: \"POST operations must define a 409 conflict response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][post].responses\",\n then: {\n field: \"409\",\n function: truthy,\n },\n },\n \"post-409-response\": {\n description: `POST 409 response **SHOULD** return \\`source\\` property to identify conflict\n\n**Example:**\n\\`\\`\\`yaml\n# Example showing use of source in error object.\n\ntype: array\nmaxItems:1\nitems:\n type: object\n properties:\n id:\n type: string\n status:\n type: string\n const: 409\n title:\n type: string\n const: Conflict\n source:\n type: object\n properties:\n pointer:\n oneOf:\n - type: string\n format: json-pointer\n example: /data/attributes/id\n - type: array\n items:\n type: string\n format: json-pointer\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-creating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-creating-responses\",\n message:\n \"POST 409 responses should include source to explain the conflict.\",\n severity: DiagnosticSeverity.Information,\n given:\n \"$.paths[*][post].responses[409].content['application/vnd.api+json'].schema.properties\",\n then: {\n field: \"source\",\n function: truthy,\n },\n },\n \"put-disallowed\": {\n description: `\\`PUT\\` verb is not allowed in jsonapi, use \\`PATCH\\` instead.\n\n**Invalid Example:**\n\\`\\`\\`yaml\n/myResources/{id}:\n put:\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\n/myResources/{id}:\n patch:\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#crud-updating\",\n message: \"PUT is not allowed by JSON:API; use PATCH.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][put]\",\n then: [\n {\n function: falsy,\n },\n ],\n },\n \"patch-requests-single-object\": {\n description: `PATCH requests **MUST** only contain a single resource object\n\n**Invalid Example:**\n\\`\\`\\`yaml\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n required:\n - data\n properties:\n data:\n type: array\n items: \n $ref: '#/components/schemas/MyResourcePostObject'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\ncontent:\n application/vnd.api+json:\n schema:\n type: object\n required:\n - data\n properties:\n data:\n $ref: '#/components/schemas/MyResourcePostObject'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#crud-creating\",\n message:\n \"PATCH request data must be a single resource object, not an array.\",\n severity: DiagnosticSeverity.Error,\n given:\n \"$.paths..patch.requestBody.content[application/vnd.api+json].schema.properties.data[?(@property==='type' && @ === 'array')]\",\n then: {\n function: falsy,\n },\n },\n \"patch-relationships\": {\n description: `If relationships exist in PATCH request, \\`data\\` is REQUIRED\n\n**Invalid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: object\n properties:\n manufacturer:\n type: object\n properties:\n links:\n type: object\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\nrelationships:\n type: object\n properties:\n manufacturer:\n type: object\n properties:\n data:\n type: object\n links:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating-resource-relationships).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#crud-creating\",\n message: \"If PATCH relationships are present, they must include data.\",\n severity: DiagnosticSeverity.Error,\n given: \"#PATCHRelationships\",\n then: {\n field: \"required\",\n function: schema,\n functionOptions: {\n schema: {\n type: \"array\",\n items: {\n type: \"string\",\n anyOf: [\n {\n enum: [\"data\"],\n },\n {\n enum: [\"data\", \"links\", \"meta\"],\n },\n ],\n },\n },\n },\n },\n },\n \"patch-2xx-response-codes\": {\n description: `\\`PATCH\\` requests **MUST** support at least one of the following 2xx codes: 200, 202 or 204\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Single'\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources/{id}:\n patch:\n responses:\n '202':\n description: Accepted.\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources/{id}:\n patch:\n responses:\n '204':\n description: Successful Operation. No Content.\n '404':\n $ref: '#/components/responses/404Error' \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-updating-responses\",\n message:\n \"PATCH operations must define at least one success response: 200, 202, or 204.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][patch].responses\",\n then: {\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n anyOf: [\n {\n required: [\"200\"],\n },\n {\n required: [\"202\"],\n },\n {\n required: [\"204\"],\n },\n ],\n },\n },\n },\n },\n \"patch-404-response-code\": {\n description: `\\`PATCH\\` requests **MUST** support response code 404\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Single'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Single'\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-updating-responses\",\n message: \"PATCH operations must define a 404 response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][patch].responses\",\n then: {\n field: \"404\",\n function: truthy,\n },\n },\n \"patch-409-response-code\": {\n description: `\\`PATCH\\` requests **MUST** document and support response code 409\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Single'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n patch:\n responses:\n '200':\n $ref: '#/components/responses/MyResource_Single'\n '409':\n $ref: '#/components/responses/409Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-updating-responses\",\n message: \"PATCH operations must define a 409 conflict response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][patch].responses\",\n then: {\n field: \"409\",\n function: truthy,\n },\n },\n \"patch-409-response\": {\n description: `PATCH 409 response **SHOULD** return \\`source\\` property to identify conflict\n\n**Example:**\n\\`\\`\\`yaml\n# Example showing use of source in error object.\n# Examples describe a conflict between the {id} parameter and the id field in the request body.\n\ntype: array\nitems:\n type: object\n properties:\n id:\n type: string\n status:\n type: string\n enum:\n - 409\n title:\n type: string\n enum:\n - Conflict\n source:\n type: object\n properties:\n pointer:\n oneOf:\n - type: string\n format: json-pointer\n example: /data/attributes/id\n - type: array\n items:\n type: string\n format: json-pointer\n parameter:\n type: string\n example: id\nmaxItems:1\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-updating-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-updating-responses\",\n message:\n \"PATCH 409 responses should include source to explain the conflict.\",\n severity: DiagnosticSeverity.Information,\n given: \"$.paths[*][patch].responses\",\n then: {\n field: \"409\",\n function: falsy,\n },\n },\n \"delete-2xx-response-codes\": {\n description: `\\`DELETE\\` requests **MUST** support at least one of the following 2xx codes: 200, 202, or 204\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n delete:\n responses:\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n delete:\n responses:\n '200':\n $ref: '#/components/responses/delete_meta_data'\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources/{id}:\n delete:\n responses:\n '202':\n description: Accepted.\n '404':\n $ref: '#/components/responses/404Error'\n\npaths:\n /myResources/{id}:\n delete:\n responses:\n '204':\n description: Successful Operation. No Content.\n '404':\n $ref: '#/components/responses/404Error' \n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-deleting-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-deleting-responses\",\n message:\n \"DELETE operations must define at least one success response: 200, 202, or 204.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][delete].responses\",\n then: {\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n anyOf: [\n {\n required: [\"200\"],\n },\n {\n required: [\"202\"],\n },\n {\n required: [\"204\"],\n },\n ],\n },\n },\n },\n },\n \"delete-404-response-code\": {\n description: `\\`DELETE\\` requests **MUST** support response code 404\n\n**Invalid Example:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n delete:\n responses:\n '204':\n description: Successful Operation. No Content.\n\\`\\`\\`\n\n**Valid Examples:**\n\\`\\`\\`yaml\npaths:\n /myResources/{id}:\n delete:\n responses:\n '204':\n description: Successful Operation. No Content.\n '404':\n $ref: '#/components/responses/404Error'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#crud-deleting-responses).`,\n documentationUrl:\n \"https://jsonapi.org/format/1.1/#crud-deleting-responses\",\n message: \"DELETE operations must define a 404 response.\",\n severity: DiagnosticSeverity.Error,\n given: \"$.paths[*][delete].responses\",\n then: {\n field: \"404\",\n function: truthy,\n },\n },\n \"error-object-schema\": {\n description: `error objects **MUST** follow schema\n\n**Schema Rules:**\n- **MAY** contain the following fields: \\`id\\`,\\`links\\`,\\`status\\`,\\`code\\`,\\`title\\`,\\`detail\\`,\\`source\\`,\\`meta\\`\n- \\`id\\`,\\`status\\`,\\`code\\`,\\`title\\`,\\`detail\\` **MUST** be an \\`object\\`\n- \\`links\\`,\\`source\\`,\\`meta\\` **MUST** be an \\`object\\`\n\n**Valid Example:** Using all fields\n\\`\\`\\`yaml\ntype: object\ndescription: JSON:API Error Object\nproperties:\n id:\n type: string\n description: a unique identifier for this particular occurrence of the problem\n links:\n type: object\n description: links that lead to further detail about the particular occurrence of the problem\n properties:\n about:\n $ref: '#/components/schemas/Link'\n status:\n type: string\n description: the HTTP status code applicable to this problem\n code:\n type: string\n description: an application-specific error code\n title:\n type: string\n description: a human-readable summary specific of the problem. Usually the http status friendly name.\n detail:\n type: string\n description: a human-readable explanation specific to this occurrence of the problem\n source:\n type: object\n description: an object containing references to the source of the error\n properties:\n pointer:\n description: a JSON Pointer [RFC6901] to the associated entity in the request document\n oneOf:\n - type: string\n format: json-pointer\n - type: array\n items:\n type: string\n format: json-pointer\n parameter:\n description: a string indicating which URI query parameter caused the error\n type: string\n meta:\n type: object\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#error-objects).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#error-objects\",\n message: \"Error objects must follow the JSON:API error object schema.\",\n severity: DiagnosticSeverity.Error,\n given: \"#ErrorObjects\",\n then: [\n {\n field: \"@key\",\n function: enumeration,\n functionOptions: {\n values: [\n \"id\",\n \"links\",\n \"status\",\n \"code\",\n \"title\",\n \"detail\",\n \"source\",\n \"meta\",\n ],\n },\n },\n {\n field: \"links.type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n {\n field: \"source.type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n {\n field: \"meta.type\",\n function: enumeration,\n functionOptions: {\n values: [\"object\"],\n },\n },\n {\n field: \"status.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n {\n field: \"code.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n {\n field: \"title.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n {\n field: \"detail.type\",\n function: enumeration,\n functionOptions: {\n values: [\"string\"],\n },\n },\n ],\n },\n \"error-object-links\": {\n description: `error object \\`links\\` property **MUST** contain an \\`about\\` link.\n\n**Invalid Example:**\n\\`\\`\\`yaml\n# Error Object\n# ...\nlinks:\n type: object\n description: links that lead to further detail about the particular occurrence of the problem\n properties:\n self:\n $ref: '#/components/schemas/Link'\n\\`\\`\\`\n\n**Valid Example:**\n\\`\\`\\`yaml\n# Error Object\n# ...\nlinks:\n type: object\n description: links that lead to further detail about the particular occurrence of the problem\n properties:\n about:\n $ref: '#/components/schemas/Link'\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#error-objects).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#error-objects\",\n message: \"Error object links must include about.\",\n severity: DiagnosticSeverity.Error,\n given: \"#ErrorObjects.links.properties\",\n then: [\n {\n field: \"about\",\n function: truthy,\n },\n ],\n },\n \"error-object-source-schema\": {\n description: `error object \\`source\\` **MUST** follow schema\n\n**Schema Rules:**\n- \\`source\\` **MUST** be an \\`object\\`\n- **MUST** contain at least one of: \\`pointer\\` or \\`parameter\\`\n- \\`parameter\\` **MUST** be a \\`string\\`\n- \\`pointer\\` **MUST** be a single json-pointer[[RFC6901]](https://tools.ietf.org/html/rfc6901) string or array of json-pointer strings\n\n**Valid Example:**\n\\`\\`\\`yaml\ntype: object\ndescription: an object containing references to the source of the error\nproperties:\n pointer:\n description: a JSON Pointer [RFC6901] to the associated entity in the request document\n oneOf:\n - type: string\n format: json-pointer\n - type: array\n items:\n type: string\n format: json-pointer\n parameter:\n description: a string indicating which URI query parameter caused the error\n type: string\n\\`\\`\\`\n\nRelated specification information can be found [here](https://jsonapi.org/format/1.1/#error-objects).`,\n documentationUrl: \"https://jsonapi.org/format/1.1/#error-objects\",\n message:\n \"Error object source must include pointer or parameter and match schema.\",\n severity: DiagnosticSeverity.Error,\n given: \"#ErrorObjects.source\",\n then: {\n field: \"properties\",\n function: schema,\n functionOptions: {\n dialect: \"draft2020-12\",\n schema: {\n type: \"object\",\n properties: {\n parameter: {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n },\n },\n pointer: {\n type: \"object\",\n properties: {\n oneOf: {\n type: \"array\",\n items: {\n oneOf: [\n {\n type: \"object\",\n required: [\"type\", \"format\"],\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n format: {\n type: \"string\",\n enum: [\"json-pointer\"],\n },\n },\n },\n {\n type: \"object\",\n properties: {\n type: {\n type: \"string\",\n enum: [\"array\"],\n },\n items: {\n type: \"object\",\n required: [\"type\", \"format\"],\n properties: {\n type: {\n type: \"string\",\n enum: [\"string\"],\n },\n format: {\n type: \"string\",\n enum: [\"json-pointer\"],\n },\n },\n },\n },\n },\n ],\n },\n },\n },\n },\n },\n },\n },\n },\n },\n },\n};\n","var HttpOperationSecurityDeclarationTypes;\n(function (HttpOperationSecurityDeclarationTypes) {\n /** Indicates that the operation has no security declarations. */\n HttpOperationSecurityDeclarationTypes[\"None\"] = \"none\";\n /** Indicates that the operation has explicit security declarations. */\n HttpOperationSecurityDeclarationTypes[\"Declared\"] = \"declared\";\n /** Indicates that the operation inherits its security declarations from the service. */\n HttpOperationSecurityDeclarationTypes[\"InheritedFromService\"] = \"inheritedFromService\";\n})(HttpOperationSecurityDeclarationTypes || (HttpOperationSecurityDeclarationTypes = {}));\nvar HttpParamStyles;\n(function (HttpParamStyles) {\n /** Used when OAS2 type !== array */\n HttpParamStyles[\"Unspecified\"] = \"unspecified\";\n /**\n * OAS 3.x style simple\n * OAS 2 collectionFormat csv\n */\n HttpParamStyles[\"Simple\"] = \"simple\";\n /**\n * OAS 3.x style matrix\n * OAS 2 collectionFormat no support\n */\n HttpParamStyles[\"Matrix\"] = \"matrix\";\n /**\n * OAS 3.x style label\n * OAS 2 collectionFormat no support\n */\n HttpParamStyles[\"Label\"] = \"label\";\n /**\n * OAS 3.x style form\n * OAS 2 collectionFormat\n * * csv, when explode === false\n * * multi, when explode === true\n */\n HttpParamStyles[\"Form\"] = \"form\";\n /**\n * OAS 3.x no support\n * OAS 2 collectionFormat csv when explode === undefined\n */\n HttpParamStyles[\"CommaDelimited\"] = \"commaDelimited\";\n /**\n * OAS 3.x style spaceDelimited\n * OAS 2 collectionFormat ssv\n */\n HttpParamStyles[\"SpaceDelimited\"] = \"spaceDelimited\";\n /**\n * OAS 3.x style spaceDelimited\n * OAS 2 collectionFormat pipes\n */\n HttpParamStyles[\"PipeDelimited\"] = \"pipeDelimited\";\n /**\n * OAS 3.x style deepObject\n * OAS 2 collectionFormat no support\n */\n HttpParamStyles[\"DeepObject\"] = \"deepObject\";\n /**\n * OAS 3.x style no support\n * OAS 2 collectionFormat tsv\n */\n HttpParamStyles[\"TabDelimited\"] = \"tabDelimited\";\n})(HttpParamStyles || (HttpParamStyles = {}));\n\n/**\n * Represents the severity of diagnostics.\n */\nvar DiagnosticSeverity;\n(function (DiagnosticSeverity) {\n /**\n * Something not allowed by the rules of a language or other means.\n */\n DiagnosticSeverity[DiagnosticSeverity[\"Error\"] = 0] = \"Error\";\n /**\n * Something suspicious but allowed.\n */\n DiagnosticSeverity[DiagnosticSeverity[\"Warning\"] = 1] = \"Warning\";\n /**\n * Something to inform about but not a problem.\n */\n DiagnosticSeverity[DiagnosticSeverity[\"Information\"] = 2] = \"Information\";\n /**\n * Something to hint to a better way of doing it, like proposing\n * a refactoring.\n */\n DiagnosticSeverity[DiagnosticSeverity[\"Hint\"] = 3] = \"Hint\";\n})(DiagnosticSeverity || (DiagnosticSeverity = {}));\n\n/**\n * Stoplight node types\n */\nvar NodeType;\n(function (NodeType) {\n NodeType[\"Article\"] = \"article\";\n NodeType[\"HttpService\"] = \"http_service\";\n NodeType[\"HttpServer\"] = \"http_server\";\n NodeType[\"HttpOperation\"] = \"http_operation\";\n NodeType[\"HttpCallback\"] = \"http_callback\";\n NodeType[\"HttpWebhook\"] = \"http_webhook\";\n NodeType[\"Model\"] = \"model\";\n NodeType[\"Generic\"] = \"generic\";\n NodeType[\"Unknown\"] = \"unknown\";\n NodeType[\"TableOfContents\"] = \"table_of_contents\";\n NodeType[\"SpectralRuleset\"] = \"spectral_ruleset\";\n NodeType[\"Styleguide\"] = \"styleguide\";\n NodeType[\"Image\"] = \"image\";\n NodeType[\"StoplightResolutions\"] = \"stoplight_resolutions\";\n NodeType[\"StoplightOverride\"] = \"stoplight_override\";\n})(NodeType || (NodeType = {}));\n/**\n * Node data formats\n */\nvar NodeFormat;\n(function (NodeFormat) {\n NodeFormat[\"Json\"] = \"json\";\n NodeFormat[\"Markdown\"] = \"markdown\";\n NodeFormat[\"Yaml\"] = \"yaml\";\n NodeFormat[\"Javascript\"] = \"javascript\";\n NodeFormat[\"Apng\"] = \"apng\";\n NodeFormat[\"Avif\"] = \"avif\";\n NodeFormat[\"Bmp\"] = \"bmp\";\n NodeFormat[\"Gif\"] = \"gif\";\n NodeFormat[\"Jpeg\"] = \"jpeg\";\n NodeFormat[\"Png\"] = \"png\";\n NodeFormat[\"Svg\"] = \"svg\";\n NodeFormat[\"Webp\"] = \"webp\";\n})(NodeFormat || (NodeFormat = {}));\n\nexport { DiagnosticSeverity, HttpOperationSecurityDeclarationTypes, HttpParamStyles, NodeFormat, NodeType };\n"],"mappings":"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","names":["HttpOperationSecurityDeclarationTypes","HttpParamStyles","DiagnosticSeverity","NodeType","NodeFormat"]} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 469fcdf0..4eaf3525 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,7 +30,8 @@ "semantic-release": "^25.0.3", "ts-jest": "^29.4.0", "tsup": "^8.5", - "typescript": "^5.9" + "typescript": "^5.9", + "yaml": "^2.8.3" } }, "node_modules/@actions/core": { @@ -13374,6 +13375,22 @@ "dev": true, "license": "ISC" }, + "node_modules/yaml": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz", + "integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", diff --git a/package.json b/package.json index 777d2cbc..ab7c4880 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,8 @@ "semantic-release": "^25.0.3", "ts-jest": "^29.4.0", "tsup": "^8.5", - "typescript": "^5.9" + "typescript": "^5.9", + "yaml": "^2.8.3" }, "tsup": { "entry": [