Skip to content

Commit

Permalink
feat(sources): use official SAM schema
Browse files Browse the repository at this point in the history
Fixes #897
  • Loading branch information
mrgrain committed Feb 26, 2024
1 parent 8dd1277 commit 4d2285d
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 22 deletions.
2 changes: 1 addition & 1 deletion .projen/tasks.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .projenrc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ new RegionalSource(repo, {
new SingleSource(repo, {
name: 'sam',
dir: 'sources/SAMSpec',
source: 'https://raw.githubusercontent.com/awslabs/goformation/master/schema/sam.schema.json',
source: 'https://raw.githubusercontent.com/aws/serverless-application-model/develop/schema_source/sam.schema.json',
});
new SingleSource(repo, {
name: 'stateful-resources',
Expand Down
34 changes: 17 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,32 +14,32 @@ Source of truth for CDK code generation.
## Data Sources

The data is read iteratively from various sources. Information from later sources adds on to, or replaces, information
from older sources.
from older sources.

* **Properties are added**: new properties are added into existing resources and type definitions. Existing properties (and attributes)
- **Properties are added**: new properties are added into existing resources and type definitions. Existing properties (and attributes)
will never be removed.
* **Property type information is added**: when a new type is found, the old type is moved to the `previousTypes` array.
- **Property type information is added**: when a new type is found, the old type is moved to the `previousTypes` array.
However, for backwards compatibility reasons, CDK will currently (only) render the oldest type it can find. Newer types can
be also rendered in the future, but are not right now. In a model diff, type history is rendered with a `` between them, in order
from new to old. If you see `type1 ⇐ type2 ⇐ type3`, then `type3` is the oldest and is the one that will be used by CDK.
* **Other property attributes are overwritten**: things like documentation, optionality, etc. are overwritten, so newer specifications
- **Other property attributes are overwritten**: things like documentation, optionality, etc. are overwritten, so newer specifications
fully overwrite the information from older specifications.

Sources are read in this order:

| What | Description | Updates |
|------|-------------|--------------------
| Resource Spec | This is the original [CloudFormation Resource Specification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-resource-specification.html), which is being replaced by the Registry Schema. Imported in order from `us-east-1`, `us-west-2`. | Frozen at version `144.0.0` (Oct 13, 2023). |
| SAM Resource Spec | This is the unofficial SAM resource spec as voluntarily maintained by the [GoFormation](https://github.com/awslabs/goformation) project | Daily |
| Patches | Handwritten [patches](https://github.com/cdklabs/awscdk-service-spec/tree/main/sources/CloudFormationResourceSpecification/us-east-1/000_cloudformation) are applied to these data sources to correct historical data quality issues with the vended specification | Manual |
| Registry Schema | This is the new [CloudFormation Resource Provider Schema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-type-schemas.html), replacing the old Resource Spec. It is more expressive than the old spec. Imported in order: `us-east-1`, `us-east-2`, `us-west-2`. | Daily |
| SAM JSON Schema | This is the newer version of the unofficial [GoFormation](https://github.com/awslabs/goformation) SAM specification, expressed in JSON Schema. | Daily |
| Patches | Coded [patches](https://github.com/cdklabs/awscdk-service-spec/tree/rix0rrr-patch-1/packages/%40aws-cdk/service-spec-importers/src/patches) are applied to the JSON Schemas to correct for schema inconsistencies | Manual |
| CloudFormation Docs | A JSON rendering of the AWS CloudFormation Resource Reference. | Weekly |
| Stateful Resources | An import of a single configuration file of [cfn-lint](https://github.com/aws-cloudformation/cfn-lint), containing resources that should be considered stateful | Weekly |
| Canned Metrics | An import of an inventory of metrics for various resource types, built by the AWS CloudWatch team for their console | Manual |
| Scrutinies | A classification of a number of resources and resource properties, indicating whether they contain IAM Policies or not | Manual |
| Augmentations | A manual declaration of a set of resource-related metrics, used in CDK code generation | Manual |
| What | Description | Updates |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- |
| Resource Spec | This is the original [CloudFormation Resource Specification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-resource-specification.html), which is being replaced by the Registry Schema. Imported in order from `us-east-1`, `us-west-2`. | Frozen at version `144.0.0` (Oct 13, 2023). |
| SAM Resource Spec | This is the unofficial SAM resource spec as voluntarily maintained by the [GoFormation](https://github.com/awslabs/goformation) project | Daily |
| Patches | Handwritten [patches](https://github.com/cdklabs/awscdk-service-spec/tree/main/sources/CloudFormationResourceSpecification/us-east-1/000_cloudformation) are applied to these data sources to correct historical data quality issues with the vended specification | Manual |
| Registry Schema | This is the new [CloudFormation Resource Provider Schema](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-type-schemas.html), replacing the old Resource Spec. It is more expressive than the old spec. Imported in order: `us-east-1`, `us-east-2`, `us-west-2`. | Daily |
| SAM JSON Schema | Schema for `Serverless` resources from the [AWS SAM transform](https://github.com/aws/serverless-application-model/tree/develop) repo | Daily |
| Patches | Coded [patches](https://github.com/cdklabs/awscdk-service-spec/tree/rix0rrr-patch-1/packages/%40aws-cdk/service-spec-importers/src/patches) are applied to the JSON Schemas to correct for schema inconsistencies | Manual |
| CloudFormation Docs | A JSON rendering of the AWS CloudFormation Resource Reference. | Weekly |
| Stateful Resources | An import of a single configuration file of [cfn-lint](https://github.com/aws-cloudformation/cfn-lint), containing resources that should be considered stateful | Weekly |
| Canned Metrics | An import of an inventory of metrics for various resource types, built by the AWS CloudWatch team for their console | Manual |
| Scrutinies | A classification of a number of resources and resource properties, indicating whether they contain IAM Policies or not | Manual |
| Augmentations | A manual declaration of a set of resource-related metrics, used in CDK code generation | Manual |

## Contributing

Expand Down
2 changes: 1 addition & 1 deletion sources/SAMSpec/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This directory contains an entire JSON schema for a CloudFormation template, inc

## Source

<https://raw.githubusercontent.com/awslabs/goformation/master/schema/sam.schema.json>
<https://raw.githubusercontent.com/aws/serverless-application-model/develop/schema_source/sam.schema.json>

## Instructions

Expand Down
4 changes: 2 additions & 2 deletions sources/SAMSpec/sam.schema.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 4d2285d

Please sign in to comment.