Amazon Detective · API Governance Rules
Amazon Detective API Rules
Spectral linting rules defining API design standards and conventions for Amazon Detective.
46 Rules
error 18
warn 19
info 9
Generated by API Evangelist
Written by API Evangelist tooling for Amazon Detective's APIs. It is a starting point, not a ruleset Amazon Detective publishes or enforces.
Rule Categories
delete
error
external
get
info
no
openapi
operation
operations
parameter
path
paths
post
request
response
schema
security
servers
tag
tags
Rules
warn
info-title-prefix
API title should start with "Amazon Detective"
$.info.title
error
info-description-required
API must have a description of at least 50 characters
$.info
error
info-version-required
API must have a version
$.info
warn
info-contact-required
API info should include contact information
$.info
warn
info-license-required
API info should include license information
$.info
error
openapi-version-3
Must use OpenAPI 3.x
$
error
servers-defined
At least one server must be defined
$
error
servers-https-only
All server URLs must use HTTPS
$.servers[*].url
warn
servers-description-required
Each server should have a description
$.servers[*]
info
paths-kebab-case
Path segments should use kebab-case or camelCase (AWS Detective uses camelCase in some paths)
$.paths
error
paths-no-trailing-slash
Paths must not end with a trailing slash
$.paths
error
operation-summary-required
All operations must have a summary
$.paths[*][get,post,put,delete,patch]
warn
operation-summary-prefix
Operation summaries should start with "Amazon Detective"
$.paths[*][get,post,put,delete,patch].summary
error
operation-description-required
All operations must have a description
$.paths[*][get,post,put,delete,patch]
error
operation-id-required
All operations must have an operationId
$.paths[*][get,post,put,delete,patch]
warn
operation-id-camel-case
OperationIds should use camelCase
$.paths[*][get,post,put,delete,patch].operationId
error
operation-tags-required
All operations must have at least one tag
$.paths[*][get,post,put,delete,patch]
warn
tags-global-defined
Global tags array should be defined
$
info
tag-description-required
Global tags should have descriptions
$.tags[*]
error
parameter-description-required
All parameters must have a description
$.paths[*][get,post,put,delete,patch].parameters[*]
error
parameter-schema-required
All parameters must have a schema
$.paths[*][get,post,put,delete,patch].parameters[*]
info
request-body-description
Request bodies should have a description
$.paths[*][post,put,patch].requestBody
warn
request-body-json-content
Request bodies should use application/json content type
$.paths[*][post,put,patch].requestBody.content
error
response-success-required
Operations must have at least one 2xx response
$.paths[*][get,post,put,delete,patch].responses
error
response-description-required
All responses must have a description
$.paths[*][get,post,put,delete,patch].responses[*]
info
response-error-400
Operations should include a 400 error response
$.paths[*][post,put,patch].responses
warn
response-error-500
Operations should include a 500 error response
$.paths[*][get,post,put,delete,patch].responses
warn
schema-description-required
Top-level schemas should have descriptions
$.components.schemas[*]
warn
schema-type-required
Schemas should have a type defined
$.components.schemas[*]
info
schema-property-pascal-case
Amazon Detective schema properties use PascalCase naming
$.components.schemas[*].properties
error
security-global-defined
Global security must be defined
$
error
security-schemes-defined
Security schemes must be defined in components
$.components
warn
security-scheme-description
Security schemes should have descriptions
$.components.securitySchemes[*]
error
get-no-request-body
GET operations must not have a request body
$.paths[*].get
info
delete-no-request-body-unless-needed
DELETE operations typically should not have a request body
$.paths[*].delete
info
post-should-have-request-body
POST operations should have a request body
$.paths[*].post
error
no-empty-descriptions
Descriptions must not be empty strings
$..description
info
operations-microcks-extension
Operations should have x-microcks-operation for mock support
$.paths[*][get,post,put,delete,patch]
info
external-docs-encouraged
API should reference external documentation
$
warn
servers-expected-domain
Server URLs should be on the amazonaws.com domain.
$.servers[*].url
warn
path-params-casing
Path parameters should be camelCase (the dominant convention in this API).
$.paths[*].parameters[?(@.in=='path')].name
warn
schema-names-casing
Component schema names should be PascalCase (the dominant convention in this API).
$.components.schemas
warn
schema-properties-casing
Schema properties should be PascalCase (the dominant convention in this API).
$.components.schemas[*].properties
warn
error-schema-defined
A shared error schema (ErrorResponse) should be defined for error payloads.
$.components.schemas
warn
operation-documents-400
Operations should document a 400 response (documented on 100% of this API's operations).
$.paths[*][get,post,put,patch,delete].responses
warn
operation-documents-500
Operations should document a 500 response (documented on 100% of this API's operations).
$.paths[*][get,post,put,patch,delete].responses
Spectral Ruleset
Work with this as data
Every ruleset here is available over the APIs.io API and to AI agents over MCP.