Typescript types for AWS CloudFormation types.
The specification version is available via the ResourceSpecificationVersion export and via awsResourceSpecificationVersion in package.json.
import { ResourceSpecificationVersion } from '@fmtk/cfntypes';
console.log(`using version ${ResourceSpecificationVersion}`);The resource types are all defined individually as interfaces with predictable names, and also as properties of the ResourceTypes interface keyed by the CloudFormation resource type.
import { ResourceTypes, ResourceType } from '@fmtk/cfntypes';
type ApiGatewayProps = ResourceTypes[ResourceType.ApiGatewayRestApi];
// also exported as ApiGatewayRestApiThe attribute types are all defined individually as interfaces with predictable names, and also as properties of the AttributeTypes interface keyed by the CloudFormation resource type. Note that not all resource types have attributes.
import { AttributeTypes, AttributeTypeFor } from '@fmtk/cfntypes';
type ApiGatewayAttribs = AttributeTypes[ResourceType.ApiGatewayRestApi];
// also exported as ApiGatewayRestApiAttributes
// the AttributeTypeFor helper returns `never` for resources
// with no attributes defined
type NeverAttribs = AttributeTypeFor<ResourceType.ApiGatewayAccount>;