This set of rules finalizes the OpenAPI description validation mechanism of the linter. It contains rules necessary to lint the remaining structured objects that can be added to the OAD.
##Conditions of acceptance
[] Validate that if any operation has tags defined, the global tags field is also defined (severity: warn) - [[ https://gitlab.wikimedia.org/repos/technical-documentation/openapi-description-example/-/blob/main/oad-expanded.yaml?ref_type=heads#L58 | example ]]
[] Validate that the `info.license` field is defined (severity: warn) - [[ https://gitlab.wikimedia.org/repos/technical-documentation/openapi-description-example/-/blob/main/oad-expanded.yaml?ref_type=heads#L30 | example ]]
[] Validate that every server variable has a description (severity: info) - [[ https://gitlab.wikimedia.org/repos/technical-documentation/openapi-description-example/-/blob/main/oad-expanded.yaml?ref_type=heads#L45 | example ]]
[] Validate that every external documentation object has a description. External documentation objects are defined in the `externalDocs` field throughout the OAD. (severity: warn) - [[ https://gitlab.wikimedia.org/repos/technical-documentation/openapi-description-example/-/blob/main/oad-expanded.yaml?ref_type=heads#L34 | example #1 ]], [[ https://gitlab.wikimedia.org/repos/technical-documentation/openapi-description-example/-/blob/main/oad-expanded.yaml?ref_type=heads#L301 | example #2 ]], [[ https://gitlab.wikimedia.org/repos/technical-documentation/openapi-description-example/-/blob/main/oad-expanded.yaml?ref_type=heads#L61 | example #3 ]]
[] Validate every link object according to the rules below. Link objects are defined in the `links` field in the components and response objects:
[] Validate that the link has either operationRef or operationId defined (severity: error) - [[ https://gitlab.wikimedia.org/repos/technical-documentation/openapi-description-example/-/blob/main/oad-expanded.yaml?ref_type=heads#L848 | example #1 ]], [[ https://gitlab.wikimedia.org/repos/technical-documentation/openapi-description-example/-/blob/main/oad-expanded.yaml?ref_type=heads#L853 | example #2 ]]
[] Validate that the link has a description (severity: warn) - [[ https://gitlab.wikimedia.org/repos/technical-documentation/openapi-description-example/-/blob/main/oad-expanded.yaml?ref_type=heads#L849 | example ]]
[] Validate every tag object according to the rules below. Tag objects can only be defined in the top-level `tags` field.
[] Validate that the tag has a description (severity: info) - [[ https://gitlab.wikimedia.org/repos/technical-documentation/openapi-description-example/-/blob/main/oad-expanded.yaml?ref_type=heads#L60 | example ]]
[] Validate that the tag has the `externalDocs` field defined (severity: hint) - [[ https://gitlab.wikimedia.org/repos/technical-documentation/openapi-description-example/-/blob/main/oad-expanded.yaml?ref_type=heads#L61 | example ]]
[] Validate that every security scheme has a description. Security schemes can only be defined under the top-level `securitySchemes` field. (severity: info) - [[ https://gitlab.wikimedia.org/repos/technical-documentation/openapi-description-example/-/blob/main/oad-expanded.yaml?ref_type=heads#L873 | example ]]
[] Validate that every schema object has an example defined either at the top level of the object, or for every individual property (severity: warn) - [[ https://gitlab.wikimedia.org/repos/technical-documentation/openapi-description-example/-/blob/main/oad-expanded.yaml?ref_type=heads#L899 | example ]]