Skip to content

Provider-independent APIs

API concepts capture externally visible operations, routes, and error behavior before API Gateway or another delivery technology is selected.

Source: mde/metamodels/pim/pim-api.emf.

Api

Represents api in the PIM vocabulary. It specializes TraceableElement, DeployableElement, FlowEndpoint, PolicyTarget, ProtectedResource, ConfigurableElement with the details needed for this modeling concern.

Direct supertypes: TraceableElement, DeployableElement, FlowEndpoint, PolicyTarget, ProtectedResource, ConfigurableElement. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

Attribute Type and multiplicity What it captures and why it exists Accepted values and example
publicName String [1] The consumer-facing API name, kept separate from the internal model name so documentation and generated OpenAPI can use a deliberate public identity. Semantic validation: ConsumerFacingApiHasPublicMetadata (consumer facing api has public metadata) in mde/validation/pim/rules/api.evl the value must be present and non-blank. Transformation role: ETL rule Api2HttpApi in mde/transformations/pim-to-awspsm/compute-api.etl assigns or materializes this feature while refining Api. ETL rule Api2RestApi in mde/transformations/pim-to-awspsm/compute-api.etl assigns or materializes this feature while refining Api. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: Orders API.
version String [1] The externally visible API contract version. It supports compatibility decisions independent from deployment revisions or implementation package versions. Semantic validation: ConsumerFacingApiHasPublicMetadata (consumer facing api has public metadata) in mde/validation/pim/rules/api.evl the value must be present and non-blank. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: 1.0.
authRequired Boolean [1] Whether the API boundary requires authentication/authorization by default. Individual routes can refine the decision, but the default prevents accidental public exposure. Semantic validation: ProtectedApiHasAuthPolicy (protected api has auth policy) in mde/validation/pim/rules/api.evl the feature participates in a semantic validation condition. Either true or false. Example: true.
corsRequired Boolean [1] Whether browser-origin policy is part of the API's contract. It signals the need for explicit allowed origins, methods, and headers rather than an unreviewed permissive default. Transformation role: ETL rule Api2HttpApi in mde/transformations/pim-to-awspsm/compute-api.etl assigns or materializes this feature while refining Api. ETL rule Api2HttpApi in mde/transformations/pim-to-awspsm/compute-api.etl reads or derives this feature while refining Api. Either true or false. Example: true.
externalConsumerFacing Boolean [1] Whether consumers outside the owning service or organization depend on the API. External consumers raise compatibility, documentation, and change-management expectations. Semantic validation: ConsumerFacingApiHasPublicMetadata (consumer facing api has public metadata) in mde/validation/pim/rules/api.evl the feature participates in a semantic validation condition. Either true or false. Example: false.
generatedOpenApiRequired Boolean [1] Whether the API must produce an OpenAPI artifact. This keeps contract publication an explicit delivery obligation instead of an accidental generator feature. Semantic validation: GeneratedOpenApiNeedsContract (generated open api needs contract) in mde/validation/pim/rules/api.evl the feature participates in a semantic validation condition. Transformation role: ETL rule Api2HttpApi in mde/transformations/pim-to-awspsm/compute-api.etl reads or derives this feature while refining Api. Either true or false. Example: true.
basePath String [1] The stable URL namespace shared by the API's routes. It separates public resource addressing from internal service or stack names. Semantic validation: ConsumerFacingApiHasPublicMetadata (consumer facing api has public metadata) in mde/validation/pim/rules/api.evl the value must be present and non-blank. Generation role: The artifact generator references this feature in mde/generation/awspsm-to-artifacts/lib/cfn.eol. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: /orders.
apiStyle ApiStyle [1] The interaction style, resource-oriented HTTP, RPC, GraphQL, event API, or webhook, that determines which route and contract concepts are meaningful. Transformation role: ETL rule Api2HttpApi in mde/transformations/pim-to-awspsm/compute-api.etl assigns or materializes this feature while refining Api. ETL rule Api2RestApi in mde/transformations/pim-to-awspsm/compute-api.etl assigns or materializes this feature while refining Api. Exactly one of: RESOURCE_ORIENTED_HTTP, RPC_HTTP, GRAPHQL, EVENT_API, WEBHOOK. Example: RESOURCE_ORIENTED_HTTP.

Relationships

Relationship Kind and multiplicity Meaning in the model
routesApiRoute containment, [*]; opposite api Contains the api route element(s) that make up this api; the contained objects belong to this model element.
contractApiContract containment, [?] Contains the api contract element(s) that make up this api; the contained objects belong to this model element.
serviceServerlessService reference; read-only, [1]; opposite apis References the serverless service element(s) used as service by this api; the target may be shared elsewhere in the model.
authAuthPolicy reference, [?] References the auth policy element(s) used as auth by this api; the target may be shared elsewhere in the model.
corsCorsPolicy reference, [?] References the cors policy element(s) used as cors by this api; the target may be shared elsewhere in the model.
rateLimitRateLimitPolicy reference, [?] References the rate limit policy element(s) used as rate limit by this api; the target may be shared elsewhere in the model.
observabilityObservabilityConfig reference, [?] References the observability config element(s) used as observability by this api; the target may be shared elsewhere in the model.

ApiRoute

Represents api route in the PIM vocabulary. It specializes TraceableElement, InvocationSource, FlowEndpoint, RouteEndpoint, PolicyTarget, ProtectedResource, ConfigurableElement with the details needed for this modeling concern.

Direct supertypes: TraceableElement, InvocationSource, FlowEndpoint, RouteEndpoint, PolicyTarget, ProtectedResource, ConfigurableElement. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

Attribute Type and multiplicity What it captures and why it exists Accepted values and example
pathTemplate String [1] The consumer-facing route pattern, including path parameters. It is transformed into API Gateway resources/routes and must remain stable enough for clients to rely on. Semantic validation: UniqueMethodPathWithinApi (unique method path within api) in mde/validation/pim/rules/api.evl the rule's diagnostic or remediation guidance refers to this feature. RoutePathStartsWithSlash (route path starts with slash) in mde/validation/pim/rules/api.evl the value must be present and non-blank. Transformation role: ETL rule UserInitiatedCommand2ApiRoute in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining ApiRoute. ETL rule Query2ApiRoute in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining ApiRoute. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: /orders/{orderId}.
operationId String [1] The unique contract operation name used by generated OpenAPI and client tooling; it gives a route an identity beyond its path and verb. Transformation role: ETL rule UserInitiatedCommand2ApiRoute in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining ApiRoute. ETL rule Query2ApiRoute in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining ApiRoute. Generation role: The artifact generator references this feature in mde/generation/awspsm-to-artifacts/lib/contracts.eol. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: getOrder.
publicRoute Boolean [1] Whether this route is intentionally exposed at the public edge. It is a route-level override/clarification of the broader API boundary decision. Semantic validation: PublicRouteShouldDescribeConsumers (public route should describe consumers) in mde/validation/pim/rules/api.evl the feature participates in a semantic validation condition. Transformation role: ETL rule UserInitiatedCommand2ApiRoute in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining ApiRoute. ETL rule Query2ApiRoute in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining ApiRoute. Either true or false. Example: true.
authRequired Boolean [1] Whether callers must be authenticated/authorized for this particular operation. Public APIs can still protect selected routes, and private APIs can model explicit exceptions. Semantic validation: ProtectedRouteHasAuthorization (protected route has authorization) in mde/validation/pim/rules/api.evl the feature participates in a semantic validation condition. Transformation role: ETL rule UserInitiatedCommand2ApiRoute in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining ApiRoute. ETL rule UserInitiatedCommand2ApiRoute in mde/transformations/cim-to-pim/behavior-contracts.etl reads or derives this feature while refining ApiRoute. Either true or false. Example: true.
descriptionForConsumers String [1] The explanation shown to API consumers, which should describe business behavior, input expectations, and outcome rather than implementation internals. Semantic validation: PublicRouteShouldDescribeConsumers (public route should describe consumers) in mde/validation/pim/rules/api.evl the value must be present and non-blank. Transformation role: ETL rule UserInitiatedCommand2ApiRoute in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining ApiRoute. ETL rule Query2ApiRoute in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining ApiRoute. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: Processes confirmed orders for the owning capability..
expectedSuccessStatus Integer [1] The normal successful HTTP status promised by the contract, allowing generated responses and tests to distinguish creation, acceptance, retrieval, and update semantics. Transformation role: ETL rule UserInitiatedCommand2ApiRoute in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining ApiRoute. ETL rule Query2ApiRoute in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining ApiRoute. A numeric Integer value; use the unit or boundary documented for this attribute. Example: 200.
paginationStyle String [1] The client-visible pagination convention for this route, such as cursor or page/offset, kept explicit because it affects request/response schemas and stable ordering. Transformation role: ETL rule Query2ApiRoute in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining ApiRoute. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: Api Route Pagination Style.
requestValidationRequired Boolean [1] Whether invalid request shape should be rejected at the edge before business code runs, protecting functions from malformed input and making the contract enforceable. Semantic validation: RequestValidationNeedsRequestSchema (request validation needs request schema) in mde/validation/pim/rules/api.evl the feature participates in a semantic validation condition. Transformation role: ETL rule UserInitiatedCommand2ApiRoute in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining ApiRoute. ETL rule Query2ApiRoute in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining ApiRoute. Either true or false. Example: true.
responseValidationRequired Boolean [1] Whether the service must verify its response against the declared schema, catching contract drift before it reaches consumers. Semantic validation: ResponseValidationNeedsResponseSchema (response validation needs response schema) in mde/validation/pim/rules/api.evl the feature participates in a semantic validation condition. Transformation role: ETL rule UserInitiatedCommand2ApiRoute in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining ApiRoute. ETL rule Query2ApiRoute in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining ApiRoute. Either true or false. Example: true.
method HttpMethod [1] The HTTP operation semantics of the route. It is used with path and integration to derive the concrete API Gateway method or route definition. Semantic validation: ExactlyOneIntegration (exactly one integration) in mde/validation/pim/rules/api.evl the feature participates in a semantic validation condition. UniqueMethodPathWithinApi (unique method path within api) in mde/validation/pim/rules/api.evl the rule's diagnostic or remediation guidance refers to this feature. Transformation role: ETL rule UserInitiatedCommand2ApiRoute in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining ApiRoute. ETL rule Query2ApiRoute in mde/transformations/cim-to-pim/behavior-contracts.etl assigns or materializes this feature while refining ApiRoute. Generation role: The artifact generator references this feature in mde/generation/awspsm-to-artifacts/lib/cfn.eol. The artifact generator references this feature in mde/generation/awspsm-to-artifacts/lib/contracts.eol. Exactly one of: GET, POST, PUT, PATCH, DELETE, OPTIONS, HEAD, ANY. Example: GET.

Relationships

Relationship Kind and multiplicity Meaning in the model
errorMappingsErrorMapping containment, [*]; opposite apiRoute Contains the error mapping element(s) that make up this api route; the contained objects belong to this model element.
apiApi reference; read-only, [1]; opposite routes References the api element(s) used as api by this api route; the target may be shared elsewhere in the model.
requestSchemaSchema reference, [?] References the schema element(s) used as request schema by this api route; the target may be shared elsewhere in the model.
responseSchemaSchema reference, [?] References the schema element(s) used as response schema by this api route; the target may be shared elsewhere in the model.
functionIntegrationFunction reference, [?] References the function element(s) used as function integration by this api route; the target may be shared elsewhere in the model.
workflowIntegrationWorkflow reference, [?] References the workflow element(s) used as workflow integration by this api route; the target may be shared elsewhere in the model.
authorizationAuthorizationPolicy reference, [?] References the authorization policy element(s) used as authorization by this api route; the target may be shared elsewhere in the model.
timeoutTimeoutPolicy reference, [?] References the timeout policy element(s) used as timeout by this api route; the target may be shared elsewhere in the model.

ErrorMapping

Represents error mapping in the PIM vocabulary. It specializes TraceableElement with the details needed for this modeling concern.

Direct supertypes: TraceableElement. Inherited attributes and marker capabilities are documented in the shared kernel; this section lists every attribute declared by this class.

Declared attributes

Attribute Type and multiplicity What it captures and why it exists Accepted values and example
domainErrorCode String [1] The business error code that this route translates into an API response, preserving domain semantics across the HTTP boundary. Semantic validation: ErrorMappingShouldBeActionable (error mapping should be actionable) in mde/validation/pim/rules/api.evl the value must be present and non-blank. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: ORDER_NOT_FOUND.
abstractStatusClass String [1] The response class chosen for the domain failure, such as client, authorization, conflict, or server error, without hard-wiring every business code to a single transport detail. Semantic validation: ErrorMappingShouldBeActionable (error mapping should be actionable) in mde/validation/pim/rules/api.evl the value must be present and non-blank. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: ACTIVE.
responseMessage String [1] The safe consumer-facing message for the mapped error, intentionally separate from internal diagnostics or exception text. Semantic validation: ErrorMappingShouldBeActionable (error mapping should be actionable) in mde/validation/pim/rules/api.evl the value must be present and non-blank. A free-form String, subject to this class's semantic meaning and any EVL constraints. Example: Order could not be completed..

Relationships

Relationship Kind and multiplicity Meaning in the model
apiRouteApiRoute reference; read-only, [1]; opposite errorMappings References the api route element(s) used as api route by this error mapping; the target may be shared elsewhere in the model.
errorSchemaSchema reference, [?] References the schema element(s) used as error schema by this error mapping; the target may be shared elsewhere in the model.