# authorship: generated by API Evangelist tooling. Stamped 2026-08-18 # on the file's own generator header (roadmap#64). An unmarked file is # NOT assumed to be ours -- absence of evidence was never stamped. x-method: generated # amazon-aurora-dsql — Spectral ruleset (strengthened) # Plain Spectral. Existing hand-authored rules preserved; measured rules added # from this provider's own OpenAPI conventions by strengthen_ruleset.py, # then self-validated against the spec. # # Provenance: # - servers-https-only: 100% of servers already https (error) # - servers-expected-domain: 1/1 servers on amazonaws.com # - path-params-casing: snake @ 57% (n=7) # - operationid-casing: camel @ 100% (n=11) # - schema-names-casing: pascal @ 100% (n=19) # - schema-properties-casing: camel @ 52% (n=48) # - security: global (root) — NOT emitting operation-security-required # - pagination params observed: ['maxResults', 'nextToken'] # - merge: kept 10 existing, added 7 measured, upgraded 0 # - added: servers-https-only, servers-expected-domain, path-params-casing, schema-names-casing, schema-properties-casing, security-schemes-defined, no-empty-descriptions extends: - spectral:oas rules: aurora-dsql-operation-id-camel-case: description: All operationIds must be camelCase message: '{{property}} must be camelCase' severity: warn given: $.paths[*][*].operationId then: function: pattern functionOptions: match: ^[a-z][a-zA-Z0-9]*$ aurora-dsql-summary-prefix: description: All operation summaries must start with Amazon Aurora DSQL message: Summary must start with Amazon Aurora DSQL severity: warn given: $.paths[*][*].summary then: function: pattern functionOptions: match: ^Amazon Aurora DSQL aurora-dsql-has-tags: description: All operations must have tags message: Operation must have at least one tag severity: warn given: $.paths[*][*] then: field: tags function: truthy aurora-dsql-response-200: description: All operations must have a 200 response message: Operation must define a 200 response severity: error given: $.paths[*][*].responses then: field: '200' function: truthy aurora-dsql-cluster-status-enum: description: ClusterStatus must use valid enum values message: ClusterStatus must be CREATING, ACTIVE, IDLE, UPDATING, DELETING, DELETED, or FAILED severity: error given: $.components.schemas.ClusterStatus then: field: enum function: truthy aurora-dsql-security-sigv4: description: API must use sigv4 security scheme message: Security must include sigv4 severity: error given: $.security[*] then: field: sigv4 function: defined aurora-dsql-server-url-fixed: description: Server URL must be fixed without variables message: Server URL must not use variables severity: warn given: $.servers[*] then: field: variables function: falsy aurora-dsql-example-microcks-default: description: All examples must have x-microcks-default set to true message: Example must have x-microcks-default true severity: warn given: $.paths[*][*].responses[*].content[*].examples.default then: field: x-microcks-default function: truthy aurora-dsql-multi-region-linked-list-required: description: CreateMultiRegionClustersInput must require linkedRegionList message: CreateMultiRegionClustersInput must have linkedRegionList as required severity: error given: $.components.schemas.CreateMultiRegionClustersInput then: field: required function: truthy aurora-dsql-cluster-identifier-string: description: ClusterSummary identifier must be string type message: identifier must be a string severity: error given: $.components.schemas.ClusterSummary.properties.identifier then: field: type function: truthy servers-https-only: description: Server URLs must use HTTPS. severity: error given: $.servers[*].url then: function: pattern functionOptions: match: ^https:// servers-expected-domain: description: Server URLs should be on the amazonaws.com domain. severity: warn given: $.servers[*].url then: function: pattern functionOptions: match: amazonaws\.com path-params-casing: description: Path parameters should be snake_case (the dominant convention in this API). severity: info given: $.paths[*].parameters[?(@.in=='path')].name then: function: casing functionOptions: type: snake schema-names-casing: description: Component schema names should be PascalCase (the dominant convention in this API). severity: warn given: $.components.schemas then: field: '@key' function: casing functionOptions: type: pascal schema-properties-casing: description: Schema properties should be camelCase (the dominant convention in this API). severity: info given: $.components.schemas[*].properties then: field: '@key' function: casing functionOptions: type: camel security-schemes-defined: description: Security schemes should be defined in components. severity: warn given: $.components then: field: securitySchemes function: truthy no-empty-descriptions: description: Descriptions must not be empty strings. severity: warn given: $..description then: function: truthy