94d35af520
This change introduces a checklist similar to IMPLEMENTATION_COVERAGE.md to document moto's adherence to the full CloudFormation specification. The script (invoked via `make cloudformation_coverage`) finds any moto models that implement `moto.core.common_models.CloudFormationModel` and checks to see if all CRUD methods are implemented. For `has_cfn_attr`, it also checks to see if all of the attributes exposed by `Fn::GetAtt` are implemented. It does not check to see if `physical_resource_id` is implemented because as far as I can tell, the published AWS spec doesn't include that information: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-resource-specification.html A more aggressive approach would be to remove default implementations from all the abstract methods and allow Python to throw for any unimplemented method. But that would obviously break a lot of things. Instead, I think the checklist represents good documentation for users about what they can and can't expect moto to handle when parsing their CloudFormation templates. It also serves as a nice to-do list of small improvements for contributors to add (and I'll likely add a few myself). Many of these would be particularly good "first issues" for first time contributors because in general, these methods just call existing methods.
9.6 KiB
9.6 KiB
- AWS::ApiGateway::Deployment:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- DeploymentId
- AWS::ApiGateway::Method:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::ApiGateway::Resource:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- ResourceId
- AWS::AutoScaling::AutoScalingGroup:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- LaunchConfigurationName
- LaunchTemplateSpecification
- MixedInstancesPolicy
- PlacementGroup
- VPCZoneIdentifier
- AWS::AutoScaling::LaunchConfiguration:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::AutoScaling::ScheduledAction:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- ScheduledActionName
- AWS::Batch::ComputeEnvironment:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- ComputeEnvironmentArn
- AWS::Batch::JobDefinition:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::Batch::JobQueue:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- JobQueueArn
- AWS::CloudFormation::Stack:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::DataPipeline::Pipeline:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::DynamoDB::Table:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::EC2::Instance:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::EC2::InternetGateway:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- InternetGatewayId
- AWS::EC2::LaunchTemplate:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- LatestVersionNumber
- DefaultVersionNumber
- AWS::EC2::NatGateway:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- NatGatewayId
- AWS::EC2::NetworkInterface:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- Id
- AWS::EC2::Route:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::EC2::RouteTable:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- RouteTableId
- AWS::EC2::SecurityGroup:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- VpcId
- AWS::EC2::SecurityGroupIngress:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::EC2::Subnet:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- VpcId
- NetworkAclAssociationId
- OutpostArn
- SubnetId
- Ipv6CidrBlocks
- AWS::EC2::SubnetRouteTableAssociation:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- Id
- AWS::EC2::TransitGateway:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- Id
- AWS::EC2::VPC:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- VpcId
- CidrBlockAssociations
- CidrBlock
- DefaultNetworkAcl
- Ipv6CidrBlocks
- DefaultSecurityGroup
- AWS::EC2::VPCGatewayAttachment:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::EC2::VPCPeeringConnection:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- Id
- AWS::EC2::Volume:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- VolumeId
- AWS::EC2::VolumeAttachment:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::ECR::Repository:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::ECS::Cluster:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::ECS::Service:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- ServiceArn
- AWS::ECS::TaskDefinition:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- TaskDefinitionArn
- AWS::EFS::FileSystem:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- FileSystemId
- Arn
- AWS::EFS::MountTarget:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- IpAddress
- Id
- AWS::Events::Archive:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::Events::EventBus:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::Events::Rule:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::IAM::AccessKey:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::IAM::InstanceProfile:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::IAM::ManagedPolicy:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::IAM::Policy:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::IAM::Role:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- RoleId
- AWS::IAM::User:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::KMS::Key:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- KeyId
- AWS::Kinesis::Stream:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::Logs::LogGroup:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- Arn
- AWS::RDS::DBParameterGroup:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- DBParameterGroupName
- AWS::Redshift::Cluster:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- Id
- DeferMaintenanceIdentifier
- AWS::Route53::HealthCheck:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- HealthCheckId
- AWS::Route53::RecordSet:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::Route53::RecordSetGroup:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::S3::Bucket:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::SNS::Topic:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- TopicArn
- AWS::SQS::Queue:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- QueueUrl
- AWS::SSM::Parameter:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- Type
- Value
- AWS::SageMaker::Endpoint:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::SageMaker::EndpointConfig:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::SageMaker::Model:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- AWS::StepFunctions::StateMachine:
- create implemented
- update implemented
- delete implemented
- Fn::GetAtt implemented
- StateMachineRevisionId
- Arn