second first commit

This commit is contained in:
Zakaria
2026-09-22 08:57:00 -04:00
parent e88d7e2ff3
commit 0aef7fb2d8
4766 changed files with 1236986 additions and 0 deletions
+514
View File
@@ -0,0 +1,514 @@
quarkus:
http:
port: 0
test-port: 0
# Integration signatures use localhost as the public test authority. Keep the test listener
# explicit so the production loopback default does not change the signed host.
host: 0.0.0.0
limits:
max-body-size: ${floci.protocols.max-request-size}M
# Groovy (a REST Assured dependency) starts DFA-cache-cleaner threads that never stop.
# Loaded parent-first they live in the shared system classloader, so they cannot pin a
# per-profile application classloader across the many app restarts of a test run.
class-loading:
parent-first-artifacts: org.apache.groovy:groovy
floci:
base-url: "http://localhost:4566"
network:
security-group-enforcement:
enabled: true
helper-image: floci/network-helper:local
default-region: us-east-1
default-account-id: "000000000000"
ai-mock-config-file: ${AI_MOCK_CONFIG:src/test/resources/fixtures/ai-mock-config.json}
storage:
mode: memory
persistent-path: ./target/test-data
prune-volumes-on-delete: true
wal:
compaction-interval-ms: 60000
services:
ssm:
flush-interval-ms: 60000
dynamodb:
flush-interval-ms: 60000
sns:
flush-interval-ms: 60000
lambda:
flush-interval-ms: 60000
cloudwatchlogs:
flush-interval-ms: 60000
cloudwatchmetrics:
flush-interval-ms: 60000
secretsmanager:
flush-interval-ms: 60000
acm:
flush-interval-ms: 60000
opensearch:
flush-interval-ms: 60000
sagemaker:
flush-interval-ms: 60000
batch:
flush-interval-ms: 60000
lightsail:
flush-interval-ms: 60000
codepipeline:
flush-interval-ms: 60000
s3vectors:
flush-interval-ms: 60000
s3tables:
flush-interval-ms: 60000
ecs:
flush-interval-ms: 60000
codebuild:
flush-interval-ms: 60000
config:
flush-interval-ms: 60000
transcribe:
flush-interval-ms: 60000
codedeploy:
flush-interval-ms: 60000
tagging:
flush-interval-ms: 60000
elasticbeanstalk:
flush-interval-ms: 60000
cloudfront:
appsync:
flush-interval-ms: 60000
rum:
flush-interval-ms: 60000
resourceexplorer2:
mode: memory
flush-interval-ms: 60000
fis:
flush-interval-ms: 60000
guardduty:
flush-interval-ms: 60000
emrserverless:
flush-interval-ms: 60000
lakeformation:
flush-interval-ms: 60000
auth:
validate-signatures: false
presign-secret: test-secret
security:
extra-cors-allowed-origins: ${EXTRA_CORS_ALLOWED_ORIGINS:}
extra-cors-allowed-headers: ${EXTRA_CORS_ALLOWED_HEADERS:}
extra-cors-expose-headers: ${EXTRA_CORS_EXPOSE_HEADERS:}
disable-cors-headers: false
# The test listener binds all interfaces so Quarkus keeps localhost as its test authority.
# This is test-only; production keeps the loopback default.
allow-unsafe-network-exposure: true
allow-private-jwt-targets: true
init-hooks:
shell-executable: /bin/sh
timeout-seconds: 5
shutdown-grace-period-seconds: 2
tls:
enabled: false
self-signed: true
protocols:
strict-claiming: false
reject-unknown-service-scope: true
docker:
log-max-size: "10m"
log-max-file: "3"
resource-namespace: ""
services:
ssm:
enabled: true
max-parameter-history: 5
sqs:
enabled: true
default-visibility-timeout: 30
max-message-size: 1048576
s3:
enabled: true
enforce-auth: false
default-presign-expiry-seconds: 3600
global-bucket-namespace: false
dynamodb:
enabled: true
sns:
enabled: true
lambda:
enabled: true
docker-flags: ""
honour-architectures: false
zip-max-entries: 100000
# aws-config-path:
hot-reload:
enabled: true
apigateway:
enabled: true
vtl-max-loops: 10000
vtl-max-output-chars: 1048576
vtl-timeout-millis: 5000
apigatewayv2:
enabled: true
iam:
enabled: true
enforcement-enabled: false
seed-deployer-principal: false
msk:
enabled: true
mock: true
default-image: "redpandadata/redpanda:latest"
amazonmq:
enabled: true
mock: true
amqp-host-port-base: 5672
amqp-host-port-max: 5699
console-host-port-base: 15672
console-host-port-max: 15699
kinesis-analytics:
enabled: true
mock: true
elasticache:
enabled: true
proxy-base-port: 6379
proxy-max-port: 6399
default-image: "valkey/valkey:8"
default-memcached-image: "memcached:1.6"
memorydb:
enabled: true
mock: false
proxy-base-port: 6400
proxy-max-port: 6419
default-image: "valkey/valkey:8"
redshift:
enabled: true
default-port: 5439
image-version: postgres:15-alpine
poll-interval-ms: 1000
proxy-base-port: 7100
proxy-max-port: 7199
default-credential-duration-seconds: 900
proxy-handshake-timeout-millis: 10000
proxy-backend-connect-timeout-millis: 5000
proxy-max-connections: 100
rds:
enabled: true
mock: false
proxy-base-port: 7001
proxy-max-port: 7099
default-sql-server-image: "mcr.microsoft.com/mssql/server:2022-latest"
proxy-handshake-timeout-millis: 10000
proxy-backend-connect-timeout-millis: 5000
proxy-max-connections: 100
rds-data:
enabled: true
transaction-ttl-seconds: 180
redshift-data:
enabled: true
result-ttl-hours: 24
neptune:
enabled: true
proxy-base-port: 8182
proxy-max-port: 8282
default-image: "tinkerpop/gremlin-server:3.7.3"
eventbridge:
enabled: true
cloudmap:
enabled: true
emr:
enabled: true
wafv2:
enabled: true
scheduler:
enabled: true
cloudwatchlogs:
enabled: true
max-events-per-query: 10000
cloudwatchmetrics:
enabled: true
secretsmanager:
enabled: true
default-recovery-window-days: 30
kinesis:
enabled: true
firehose:
enabled: true
tick-interval-seconds: 10
flush-record-count: 0
staging-bucket: floci-firehose-staging
kms:
enabled: true
cognito:
enabled: true
stepfunctions:
enabled: true
allow-plaintext-http: true
mock-config-file: ${SFN_MOCK_CONFIG:src/test/resources/fixtures/sfn-mock-config.json}
swf:
enabled: true
timeout-sweep-enabled: true
timeout-sweep-interval-seconds: 1
cloudformation:
enabled: true
# Fail an AWS::Lambda::Function whose S3 code cannot be read, as real CloudFormation
# does. Set true to fall back to the built-in stub handler instead (issue #2648).
allow-stub-lambda-code: false
# Pinned to the shipped default so a test sees what a user sees; the strict-mode test
# overrides it with its own profile.
allow-stub-unsupported-resource-types: true
acm:
enabled: true
validation-wait-seconds: 0
athena:
enabled: true
mock: true
glue:
enabled: true
ses:
enabled: true
opensearch:
enabled: true
mock: true
proxy-base-port: 9400
proxy-max-port: 9499
ec2:
enabled: true
imds-port: 9169
ssh-port-range-start: 2200
ssh-port-range-end: 2299
publish-security-group-ports: true
app-port-range-start: 30000
app-port-range-end: 30999
max-published-ports-per-instance: 20
socat-image: alpine/socat
mock: true
aws-faithful-private-ip: false
# container-ips-routable: true # see src/main/resources/application.yml
# Off explicitly, not merely by implication of mock: true above. Tests must not create or
# reconcile Docker networks on whatever daemon CI happens to have.
vpc-networks:
enabled: false
ecs:
enabled: true
mock: true
host-volume-roots: []
allow-unsafe-host-volumes: false
appconfig:
enabled: true
appconfigdata:
enabled: true
ecr:
enabled: true
ui:
enabled: true
bedrock:
enabled: true
bedrock-runtime:
enabled: true
eks:
enabled: true
mock: true
ecr-registry-mirror: true
imds: false
irsa-signing-key: true
mwaa:
enabled: true
mock: true
pipes:
enabled: true
elb:
enabled: true
mock: true
elbv2:
enabled: true
mock: true
codebuild:
enabled: true
# docker-network: floci-network
sagemaker:
enabled: true
# docker-network: floci-network
gpu:
# Off by default: an existing deployment keeps launching CPU-only
# containers. How many GPUs an ml.* type has is shipped in
# sagemaker/instance-type-catalog.yaml; this is only about which of
# this machine's devices Floci may hand out.
enabled: false
# cdi | device-ids | count. Podman resolves only cdi, and accepts
# count while attaching no device, so cdi fails loudly instead.
mode: cdi
# Required for cdi and device-ids modes; unset allows no device.
# devices:
# - nvidia.com/gpu=GPU-<uuid>
batch:
enabled: true
runner-mode: immediate
codedeploy:
enabled: true
codepipeline:
enabled: true
autoscaling:
enabled: true
applicationautoscaling:
enabled: true
elasticbeanstalk:
enabled: true
transfer:
enabled: true
backup:
enabled: true
job-completion-delay-seconds: 1
fis:
enabled: true
route53:
enabled: true
textract:
enabled: true
comprehend:
enabled: true
rekognition:
enabled: true
translate:
enabled: true
pricing:
enabled: true
ce:
enabled: true
cur:
enabled: true
emit-mode: off
bcm-pricing-calculator:
enabled: true
timestream-influxdb:
enabled: true
mock: true
bcm-data-exports:
enabled: true
emit-mode: off
oam:
enabled: true
cloudtrail:
enabled: true
flush-interval-seconds: 3600
lightsail:
enabled: true
cloudcontrol:
enabled: true
resourceexplorer2:
enabled: true
cloudfront:
enabled: true
allowed-private-origin-hosts: []
appsync:
enabled: true
schema-worker-threads: 4
schema-worker-shutdown-timeout-seconds: 30
vtl-max-loops: 10000
vtl-max-output-chars: 1048576
vtl-timeout-millis: 5000
s3vectors:
enabled: true
s3tables:
enabled: true
iot:
enabled: true
rule-sql-strict: false
mqtt:
enabled: true
auto-start: false
host: 127.0.0.1
port: 1883
tls-port: 8883
iotdata:
enabled: true
cloudhsmv2:
enabled: true
efs:
enabled: true
organizations:
enabled: true
rum:
enabled: true
networkfirewall:
enabled: true
servicecatalog:
enabled: true
guardduty:
enabled: true
emrserverless:
enabled: true
ssoadmin:
enabled: true
ssooidc:
enabled: true
local-principal-id: ${FLOCI_SERVICES_SSOOIDC_LOCAL_PRINCIPAL_ID:}
macie2:
enabled: true
account:
enabled: true
controlcatalog:
enabled: true
accessanalyzer:
enabled: true
identitystore:
enabled: true
scim-bearer-token: ${FLOCI_SERVICES_IDENTITYSTORE_SCIM_BEARER_TOKEN:floci-scim-token}
budgets:
enabled: true
inspector2:
enabled: true
securityhub:
enabled: true
detective:
enabled: true
controltower:
enabled: true
seed-landing-zone: true
route53resolver:
enabled: true
connect:
enabled: true
appintegrations:
enabled: true
cognitoidentity:
enabled: true
globalaccelerator:
enabled: true
datasync:
enabled: true
aps:
enabled: true
lakeformation:
enabled: true
tagging:
enabled: true
configservice:
enabled: true
transcribe:
enabled: true
docdb:
enabled: true
mock: false
default-image: "mongo:7.0"
bedrock-agent-core:
enabled: true
bedrock-agent-core-control:
enabled: true
servicequotas:
enabled: true
verifiedpermissions:
enabled: true
ram:
enabled: true
codegurureviewer:
enabled: true
codeartifact:
enabled: true
marketplace:
enabled: true
dms:
enabled: true
@@ -0,0 +1,12 @@
# Fragment referenced by Fn::Transform / AWS::Include in AwsIncludeProcessorTest, mirroring the
# shape of a measured DefinitionSubstitutions block. The folded block scalar below keeps its line
# breaks under SnakeYAML, because its continuation lines are more indented than the first, and
# AWS::Include's merge splices the parsed node unmodified: it does not fold the value. Folding, if
# any, happens later, when the value is substituted into a definition and that definition is
# reparsed as YAML - a separate concern from the merge this fragment exercises.
expandItems: >-
{% (
$c := function($v) { $exists($v.S) ? $v.S : $exists($v.N) ? $number($v.N) : $v };
$map($states.result.Items, function($i) { $merge($map($keys($i), function($k) { {$k: $c($lookup($i, $k))} })) })
) %}
orderTableName: orders
@@ -0,0 +1,63 @@
AWS::AppSync::GraphQLApi GraphQLEndpointArn the private-endpoint ARN of the GraphQL endpoint; Floci serves one public endpoint and has no private-endpoint model
AWS::CodeBuild::Project Id schema gives no description; AWS's Id may differ from the project name Floci uses
AWS::CodePipeline::CustomActionType Id schema gives no description; the custom action has no separate id in Floci
AWS::CodePipeline::Webhook Id schema gives no description; Floci keys webhooks by name
AWS::EC2::Instance State not published yet: Floci tracks the instance state, setting it is a separate change to what Fn::GetAtt returns
AWS::EC2::Instance VpcId not published yet: the instance's VPC comes from its subnet, setting it is a separate change to what Fn::GetAtt returns
AWS::EC2::NatGateway AutoProvisionZones availability-mode NAT gateways are not emulated
AWS::EC2::NatGateway AutoScalingIps availability-mode NAT gateways are not emulated
AWS::EC2::NatGateway EniId the NAT gateway's network interface is not created
AWS::EC2::NatGateway RouteTableId availability-mode NAT gateways are not emulated
AWS::EC2::SecurityGroup Id not published yet: the group id is already published as GroupId, adding Id is a separate change to what Fn::GetAtt returns
AWS::EC2::Subnet BlockPublicAccessStates VPC block public access is not emulated
AWS::EC2::Subnet Ipv6CidrBlocks IPv6 CIDR association is not emulated
AWS::EC2::Subnet NetworkAclAssociationId the subnet's default network ACL association is not created with the subnet
AWS::EC2::VPC CidrBlockAssociations needs association ids Floci's VPC model does not track
AWS::EC2::VPC DefaultNetworkAcl needs a default network ACL Floci does not create with the VPC
AWS::EC2::VPC Ipv6CidrBlocks IPv6 CIDR association is not emulated
AWS::EC2::VPCEndpoint NetworkInterfaceIds endpoint ENIs are not created
AWS::EC2::VPCGatewayAttachment AttachmentType the exact literal AWS returns (internet vs vpn gateway) is not given by the schema
AWS::Kinesis::Stream WarmThroughputObject warm throughput is not an emulated Kinesis feature
AWS::Lambda::MicrovmImage CreatedAt microvm image lifecycle fields are not tracked
AWS::Lambda::MicrovmImage LatestFailedImageVersion failure history is not tracked
AWS::Lambda::MicrovmImage State microvm image state is not modelled
AWS::Lambda::MicrovmImage UpdatedAt microvm image lifecycle fields are not tracked
AWS::Lambda::NetworkConnector State network connector state is not modelled
AWS::Lambda::Permission Id schema gives no description and AWS's value is unclear; the physical id is a composite functionName|statementId
AWS::Pipes::Pipe CreationTime pipe lifecycle timestamps are not tracked
AWS::Pipes::Pipe CurrentState pipe state transitions are not modelled
AWS::Pipes::Pipe LastModifiedTime pipe lifecycle timestamps are not tracked
AWS::Pipes::Pipe StateReason pipe state transitions are not modelled
AWS::RDS::DBCluster Endpoint the dotted Endpoint.Address and Endpoint.Port are set instead, which is the form AWS's GetAtt actually exposes
AWS::RDS::DBCluster ReadEndpoint ReadEndpoint.Address is set instead, the form AWS's GetAtt exposes
AWS::RDS::DBCluster StorageEncryptionType cluster storage encryption is not emulated
AWS::RDS::DBCluster StorageThroughput provisioned storage throughput is not emulated
AWS::RDS::DBInstance AutomaticRestartTime instance restart scheduling is not emulated
AWS::RDS::DBInstance CertificateDetails per-instance CA certificate metadata is not emulated
AWS::RDS::DBInstance DBInstanceStatus the model carries no lifecycle status; instances reach available synchronously
AWS::RDS::DBInstance InstanceCreateTime creation timestamps are not recorded on the instance
AWS::RDS::DBInstance IsStorageConfigUpgradeAvailable storage configuration upgrades are not emulated
AWS::RDS::DBInstance LatestRestorableTime point-in-time restore windows are not emulated
AWS::RDS::DBInstance ListenerEndpoint the SQL Server listener endpoint is not emulated
AWS::RDS::DBInstance PercentProgress no asynchronous progress to report; instances reach available synchronously
AWS::RDS::DBInstance ReadReplicaDBClusterIdentifiers read replicas are not emulated
AWS::RDS::DBInstance ReadReplicaDBInstanceIdentifiers read replicas are not emulated
AWS::RDS::DBInstance ResumeFullAutomationModeTime RDS Custom automation mode is not emulated
AWS::RDS::DBInstance SecondaryAvailabilityZone multi-AZ secondary placement is not emulated
AWS::RDS::DBInstance StatusInfos read-replica status detail is not emulated
AWS::RDS::DBInstance StorageOperationPercentProgress storage operations (scaling, type changes) are not emulated; storage changes apply synchronously
AWS::RDS::DBInstance StorageOperationStatus storage operations (scaling, type changes) are not emulated; storage changes apply synchronously
AWS::Redshift::Cluster DeferMaintenanceIdentifier Floci does not emulate deferred maintenance windows
AWS::SQS::QueuePolicy Id schema gives no description; the policy has no backing entity to take an id from
AWS::SecretsManager::Secret Id Fn::GetAtt Id on a secret is its ARN, which the provisioner already sets as the physical id and as Arn; closable, deferred to a follow-up PR to keep this one a pure move
AWS::EKS::Cluster ClusterSecurityGroupId not modeled: Floci does not create a cluster security group, so there is no id to publish
AWS::EKS::Cluster EncryptionConfigKeyArn not modeled: Floci does not apply envelope encryption, so no KMS key arn is resolved
AWS::EKS::Cluster Id not modeled: Floci identifies a cluster by its Name (the primary identifier and Ref), not a separate Id
AWS::IAM::Policy Id not published: Floci uses the policy name for Ref, AWS returns an opaque generated identifier that Floci does not model
AWS::IAM::ManagedPolicy AttachmentCount not published: the attachment count is dynamic and Floci does not expose it as a stable Fn::GetAtt value
AWS::IAM::ManagedPolicy CreateDate not published: Floci does not surface the policy create date as an Fn::GetAtt value
AWS::IAM::ManagedPolicy IsAttachable not modeled: Floci does not track policy attachability
AWS::IAM::ManagedPolicy PermissionsBoundaryUsageCount not modeled: Floci does not track permissions-boundary usage
AWS::IAM::ManagedPolicy UpdateDate not published: Floci does not surface the policy update date as an Fn::GetAtt value
AWS::Lambda::Function SnapStartResponse not modeled: Floci does not emulate Lambda SnapStart, so it exposes no ApplyOn/OptimizationStatus response
AWS::CloudFormation::CustomResource Id not published: Id is the primary identifier returned by Ref (the physical resource id); Floci does not expose it as a separate Fn::GetAtt attribute
1 AWS::AppSync::GraphQLApi GraphQLEndpointArn the private-endpoint ARN of the GraphQL endpoint; Floci serves one public endpoint and has no private-endpoint model
2 AWS::CodeBuild::Project Id schema gives no description; AWS's Id may differ from the project name Floci uses
3 AWS::CodePipeline::CustomActionType Id schema gives no description; the custom action has no separate id in Floci
4 AWS::CodePipeline::Webhook Id schema gives no description; Floci keys webhooks by name
5 AWS::EC2::Instance State not published yet: Floci tracks the instance state, setting it is a separate change to what Fn::GetAtt returns
6 AWS::EC2::Instance VpcId not published yet: the instance's VPC comes from its subnet, setting it is a separate change to what Fn::GetAtt returns
7 AWS::EC2::NatGateway AutoProvisionZones availability-mode NAT gateways are not emulated
8 AWS::EC2::NatGateway AutoScalingIps availability-mode NAT gateways are not emulated
9 AWS::EC2::NatGateway EniId the NAT gateway's network interface is not created
10 AWS::EC2::NatGateway RouteTableId availability-mode NAT gateways are not emulated
11 AWS::EC2::SecurityGroup Id not published yet: the group id is already published as GroupId, adding Id is a separate change to what Fn::GetAtt returns
12 AWS::EC2::Subnet BlockPublicAccessStates VPC block public access is not emulated
13 AWS::EC2::Subnet Ipv6CidrBlocks IPv6 CIDR association is not emulated
14 AWS::EC2::Subnet NetworkAclAssociationId the subnet's default network ACL association is not created with the subnet
15 AWS::EC2::VPC CidrBlockAssociations needs association ids Floci's VPC model does not track
16 AWS::EC2::VPC DefaultNetworkAcl needs a default network ACL Floci does not create with the VPC
17 AWS::EC2::VPC Ipv6CidrBlocks IPv6 CIDR association is not emulated
18 AWS::EC2::VPCEndpoint NetworkInterfaceIds endpoint ENIs are not created
19 AWS::EC2::VPCGatewayAttachment AttachmentType the exact literal AWS returns (internet vs vpn gateway) is not given by the schema
20 AWS::Kinesis::Stream WarmThroughputObject warm throughput is not an emulated Kinesis feature
21 AWS::Lambda::MicrovmImage CreatedAt microvm image lifecycle fields are not tracked
22 AWS::Lambda::MicrovmImage LatestFailedImageVersion failure history is not tracked
23 AWS::Lambda::MicrovmImage State microvm image state is not modelled
24 AWS::Lambda::MicrovmImage UpdatedAt microvm image lifecycle fields are not tracked
25 AWS::Lambda::NetworkConnector State network connector state is not modelled
26 AWS::Lambda::Permission Id schema gives no description and AWS's value is unclear; the physical id is a composite functionName|statementId
27 AWS::Pipes::Pipe CreationTime pipe lifecycle timestamps are not tracked
28 AWS::Pipes::Pipe CurrentState pipe state transitions are not modelled
29 AWS::Pipes::Pipe LastModifiedTime pipe lifecycle timestamps are not tracked
30 AWS::Pipes::Pipe StateReason pipe state transitions are not modelled
31 AWS::RDS::DBCluster Endpoint the dotted Endpoint.Address and Endpoint.Port are set instead, which is the form AWS's GetAtt actually exposes
32 AWS::RDS::DBCluster ReadEndpoint ReadEndpoint.Address is set instead, the form AWS's GetAtt exposes
33 AWS::RDS::DBCluster StorageEncryptionType cluster storage encryption is not emulated
34 AWS::RDS::DBCluster StorageThroughput provisioned storage throughput is not emulated
35 AWS::RDS::DBInstance AutomaticRestartTime instance restart scheduling is not emulated
36 AWS::RDS::DBInstance CertificateDetails per-instance CA certificate metadata is not emulated
37 AWS::RDS::DBInstance DBInstanceStatus the model carries no lifecycle status; instances reach available synchronously
38 AWS::RDS::DBInstance InstanceCreateTime creation timestamps are not recorded on the instance
39 AWS::RDS::DBInstance IsStorageConfigUpgradeAvailable storage configuration upgrades are not emulated
40 AWS::RDS::DBInstance LatestRestorableTime point-in-time restore windows are not emulated
41 AWS::RDS::DBInstance ListenerEndpoint the SQL Server listener endpoint is not emulated
42 AWS::RDS::DBInstance PercentProgress no asynchronous progress to report; instances reach available synchronously
43 AWS::RDS::DBInstance ReadReplicaDBClusterIdentifiers read replicas are not emulated
44 AWS::RDS::DBInstance ReadReplicaDBInstanceIdentifiers read replicas are not emulated
45 AWS::RDS::DBInstance ResumeFullAutomationModeTime RDS Custom automation mode is not emulated
46 AWS::RDS::DBInstance SecondaryAvailabilityZone multi-AZ secondary placement is not emulated
47 AWS::RDS::DBInstance StatusInfos read-replica status detail is not emulated
48 AWS::RDS::DBInstance StorageOperationPercentProgress storage operations (scaling, type changes) are not emulated; storage changes apply synchronously
49 AWS::RDS::DBInstance StorageOperationStatus storage operations (scaling, type changes) are not emulated; storage changes apply synchronously
50 AWS::Redshift::Cluster DeferMaintenanceIdentifier Floci does not emulate deferred maintenance windows
51 AWS::SQS::QueuePolicy Id schema gives no description; the policy has no backing entity to take an id from
52 AWS::SecretsManager::Secret Id Fn::GetAtt Id on a secret is its ARN, which the provisioner already sets as the physical id and as Arn; closable, deferred to a follow-up PR to keep this one a pure move
53 AWS::EKS::Cluster ClusterSecurityGroupId not modeled: Floci does not create a cluster security group, so there is no id to publish
54 AWS::EKS::Cluster EncryptionConfigKeyArn not modeled: Floci does not apply envelope encryption, so no KMS key arn is resolved
55 AWS::EKS::Cluster Id not modeled: Floci identifies a cluster by its Name (the primary identifier and Ref), not a separate Id
56 AWS::IAM::Policy Id not published: Floci uses the policy name for Ref, AWS returns an opaque generated identifier that Floci does not model
57 AWS::IAM::ManagedPolicy AttachmentCount not published: the attachment count is dynamic and Floci does not expose it as a stable Fn::GetAtt value
58 AWS::IAM::ManagedPolicy CreateDate not published: Floci does not surface the policy create date as an Fn::GetAtt value
59 AWS::IAM::ManagedPolicy IsAttachable not modeled: Floci does not track policy attachability
60 AWS::IAM::ManagedPolicy PermissionsBoundaryUsageCount not modeled: Floci does not track permissions-boundary usage
61 AWS::IAM::ManagedPolicy UpdateDate not published: Floci does not surface the policy update date as an Fn::GetAtt value
62 AWS::Lambda::Function SnapStartResponse not modeled: Floci does not emulate Lambda SnapStart, so it exposes no ApplyOn/OptimizationStatus response
63 AWS::CloudFormation::CustomResource Id not published: Id is the primary identifier returned by Ref (the physical resource id); Floci does not expose it as a separate Fn::GetAtt attribute
@@ -0,0 +1,149 @@
AWS::ApiGateway::Account ApiGatewayAccountCfnProvisioner
AWS::ApiGateway::ApiKey ApiGatewayApiKeyCfnProvisioner
AWS::ApiGateway::Authorizer ApiGatewayRestApiCfnProvisioner
AWS::ApiGateway::BasePathMapping ApiGatewayDomainCfnProvisioner
AWS::ApiGateway::Deployment ApiGatewayRestApiCfnProvisioner
AWS::ApiGateway::DomainName ApiGatewayDomainCfnProvisioner
AWS::ApiGateway::GatewayResponse ApiGatewayGatewayResponseCfnProvisioner
AWS::ApiGateway::Method ApiGatewayRestApiCfnProvisioner
AWS::ApiGateway::Resource ApiGatewayRestApiCfnProvisioner
AWS::ApiGateway::RestApi ApiGatewayRestApiCfnProvisioner
AWS::ApiGateway::Stage ApiGatewayRestApiCfnProvisioner
AWS::ApiGateway::UsagePlan ApiGatewayUsagePlanCfnProvisioner
AWS::ApiGateway::UsagePlanKey ApiGatewayUsagePlanCfnProvisioner
AWS::ApiGatewayV2::Api ApiGatewayV2CfnProvisioner
AWS::ApiGatewayV2::Authorizer ApiGatewayV2CfnProvisioner
AWS::ApiGatewayV2::Deployment ApiGatewayV2CfnProvisioner
AWS::ApiGatewayV2::Integration ApiGatewayV2CfnProvisioner
AWS::ApiGatewayV2::Route ApiGatewayV2CfnProvisioner
AWS::ApiGatewayV2::Stage ApiGatewayV2CfnProvisioner
AWS::AppSync::ApiKey AppSyncCfnProvisioner
AWS::AppSync::DataSource AppSyncCfnProvisioner
AWS::AppSync::FunctionConfiguration AppSyncCfnProvisioner
AWS::AppSync::GraphQLApi AppSyncCfnProvisioner
AWS::AppSync::GraphQLSchema AppSyncCfnProvisioner
AWS::AppSync::Resolver AppSyncCfnProvisioner
AWS::AutoScaling::AutoScalingGroup AutoScalingGroupCfnProvisioner
AWS::AutoScaling::LaunchConfiguration AutoScalingGroupCfnProvisioner
AWS::AutoScaling::LifecycleHook AutoScalingLifecycleHookCfnProvisioner
AWS::AutoScaling::ScalingPolicy AutoScalingScalingPolicyCfnProvisioner
AWS::Backup::BackupVault BackupVaultCfnProvisioner
AWS::Batch::ComputeEnvironment BatchCfnProvisioner
AWS::Batch::JobDefinition BatchCfnProvisioner
AWS::Batch::JobQueue BatchCfnProvisioner
AWS::CDK::Metadata CdkMetadataCfnProvisioner
AWS::CertificateManager::Certificate AcmCfnProvisioner
AWS::CloudFormation::CustomResource CustomResourceCfnProvisioner
AWS::CloudFront::CachePolicy CloudFrontCfnProvisioner
AWS::CloudFront::Distribution CloudFrontCfnProvisioner
AWS::CloudFront::OriginAccessControl CloudFrontCfnProvisioner
AWS::CloudFront::OriginRequestPolicy CloudFrontCfnProvisioner
AWS::CloudFront::ResponseHeadersPolicy CloudFrontCfnProvisioner
AWS::CloudTrail::Trail CloudTrailCfnProvisioner
AWS::CloudWatch::Alarm CloudWatchCfnProvisioner
AWS::CloudWatch::Dashboard CloudWatchDashboardCfnProvisioner
AWS::CodeBuild::Project CodeBuildCfnProvisioner
AWS::CodePipeline::CustomActionType CodePipelineCfnProvisioner
AWS::CodePipeline::Pipeline CodePipelineCfnProvisioner
AWS::CodePipeline::Webhook CodePipelineCfnProvisioner
AWS::Cognito::UserPool CognitoCfnProvisioner
AWS::Cognito::UserPoolClient CognitoCfnProvisioner
AWS::Cognito::UserPoolDomain CognitoCfnProvisioner
AWS::Cognito::UserPoolGroup CognitoUserPoolGroupCfnProvisioner
AWS::Config::ConfigRule ConfigCfnProvisioner
AWS::DynamoDB::GlobalTable DynamoDbCfnProvisioner
AWS::DynamoDB::Table DynamoDbCfnProvisioner
AWS::EC2::EIP Ec2NetworkCfnProvisioner
AWS::EC2::FlowLog Ec2FlowLogCfnProvisioner
AWS::EC2::Instance Ec2InstanceCfnProvisioner
AWS::EC2::InternetGateway Ec2NetworkCfnProvisioner
AWS::EC2::LaunchTemplate Ec2LaunchTemplateCfnProvisioner
AWS::EC2::NatGateway Ec2NetworkCfnProvisioner
AWS::EC2::NetworkAcl Ec2NetworkAclCfnProvisioner
AWS::EC2::NetworkAclEntry Ec2NetworkAclCfnProvisioner
AWS::EC2::Route Ec2NetworkCfnProvisioner
AWS::EC2::RouteTable Ec2NetworkCfnProvisioner
AWS::EC2::SecurityGroup Ec2SecurityGroupCfnProvisioner
AWS::EC2::SecurityGroupEgress Ec2SecurityGroupRuleCfnProvisioner
AWS::EC2::SecurityGroupIngress Ec2SecurityGroupRuleCfnProvisioner
AWS::EC2::Subnet Ec2NetworkCfnProvisioner
AWS::EC2::SubnetNetworkAclAssociation Ec2NetworkAclCfnProvisioner
AWS::EC2::SubnetRouteTableAssociation Ec2NetworkCfnProvisioner
AWS::EC2::VPC Ec2VpcCfnProvisioner
AWS::EC2::VPCEndpoint Ec2VpcEndpointCfnProvisioner
AWS::EC2::VPCGatewayAttachment Ec2VpcGatewayAttachmentCfnProvisioner
AWS::ECR::Repository EcrCfnProvisioner
AWS::ECS::CapacityProvider EcsCapacityCfnProvisioner
AWS::ECS::Cluster EcsCfnProvisioner
AWS::ECS::ClusterCapacityProviderAssociations EcsCapacityCfnProvisioner
AWS::ECS::Service EcsCfnProvisioner
AWS::ECS::TaskDefinition EcsCfnProvisioner
AWS::EKS::Cluster EksCfnProvisioner
AWS::EKS::Nodegroup EksCfnProvisioner
AWS::ElasticLoadBalancingV2::Listener ElbV2CfnProvisioner
AWS::ElasticLoadBalancingV2::ListenerRule ElbV2CfnProvisioner
AWS::ElasticLoadBalancingV2::LoadBalancer ElbV2CfnProvisioner
AWS::ElasticLoadBalancingV2::TargetGroup ElbV2CfnProvisioner
AWS::Events::EventBus EventsCfnProvisioner
AWS::Events::EventBusPolicy EventsCfnProvisioner
AWS::Events::Rule EventsCfnProvisioner
AWS::IAM::AccessKey IamAccessKeyCfnProvisioner
AWS::IAM::InstanceProfile IamInstanceProfileCfnProvisioner
AWS::IAM::ManagedPolicy IamManagedPolicyCfnProvisioner
AWS::IAM::Policy IamPolicyCfnProvisioner
AWS::IAM::Role IamRoleCfnProvisioner
AWS::IAM::User IamUserCfnProvisioner
AWS::IoT::DomainConfiguration IotDomainConfigurationCfnProvisioner
AWS::IoT::Policy IotCfnProvisioner
AWS::IoT::Thing IotCfnProvisioner
AWS::IoT::TopicRule IotCfnProvisioner
AWS::KMS::Alias KmsCfnProvisioner
AWS::KMS::Key KmsCfnProvisioner
AWS::Kinesis::Stream KinesisCfnProvisioner
AWS::KinesisFirehose::DeliveryStream FirehoseCfnProvisioner
AWS::Lambda::Alias LambdaVersionAliasCfnProvisioner
AWS::Lambda::EventInvokeConfig LambdaEventInvokeConfigCfnProvisioner
AWS::Lambda::EventSourceMapping LambdaEventSourceMappingCfnProvisioner
AWS::Lambda::Function LambdaCfnProvisioner
AWS::Lambda::LayerVersion LambdaCfnProvisioner
AWS::Lambda::MicrovmImage LambdaMicrovmsCfnProvisioner
AWS::Lambda::NetworkConnector LambdaMicrovmsCfnProvisioner
AWS::Lambda::Permission LambdaAddressingCfnProvisioner
AWS::Lambda::Url LambdaAddressingCfnProvisioner
AWS::Lambda::Version LambdaVersionAliasCfnProvisioner
AWS::Logs::LogGroup LogsCfnProvisioner
AWS::Logs::LogStream LogsLogStreamCfnProvisioner
AWS::Logs::MetricFilter LogsMetricFilterCfnProvisioner
AWS::Organizations::Account OrganizationsCfnProvisioner
AWS::Organizations::Organization OrganizationsCfnProvisioner
AWS::Organizations::OrganizationalUnit OrganizationsCfnProvisioner
AWS::Organizations::Policy OrganizationsCfnProvisioner
AWS::Organizations::ResourcePolicy OrganizationsCfnProvisioner
AWS::Pipes::Pipe PipesCfnProvisioner
AWS::RDS::DBCluster RdsCfnProvisioner
AWS::RDS::DBClusterParameterGroup RdsCfnProvisioner
AWS::RDS::DBInstance RdsCfnProvisioner
AWS::RDS::DBParameterGroup RdsCfnProvisioner
AWS::RDS::DBProxy RdsCfnProvisioner
AWS::RDS::DBProxyTargetGroup RdsCfnProvisioner
AWS::RDS::DBSubnetGroup RdsCfnProvisioner
AWS::Redshift::Cluster RedshiftClusterCfnProvisioner
AWS::Redshift::ClusterParameterGroup RedshiftClusterCfnProvisioner
AWS::Redshift::ClusterSecurityGroup RedshiftClusterCfnProvisioner
AWS::Redshift::ClusterSubnetGroup RedshiftClusterCfnProvisioner
AWS::Route53::HostedZone Route53CfnProvisioner
AWS::Route53::RecordSet Route53CfnProvisioner
AWS::S3::Bucket S3CfnProvisioner
AWS::S3::BucketPolicy S3CfnProvisioner
AWS::SNS::Subscription SnsCfnProvisioner
AWS::SNS::Topic SnsCfnProvisioner
AWS::SNS::TopicPolicy SnsCfnProvisioner
AWS::SQS::Queue SqsCfnProvisioner
AWS::SQS::QueuePolicy SqsCfnProvisioner
AWS::SSM::Parameter SsmCfnProvisioner
AWS::Scheduler::ScheduleGroup SchedulerScheduleGroupCfnProvisioner
AWS::SecretsManager::Secret SecretsManagerCfnProvisioner
AWS::SecretsManager::SecretTargetAttachment SecretTargetAttachmentCfnProvisioner
AWS::StepFunctions::StateMachine StepFunctionsCfnProvisioner
AWS::WAFv2::WebACL WafV2CfnProvisioner
Custom::DynamoDBReplica DynamoDbCfnProvisioner
1 AWS::ApiGateway::Account ApiGatewayAccountCfnProvisioner
2 AWS::ApiGateway::ApiKey ApiGatewayApiKeyCfnProvisioner
3 AWS::ApiGateway::Authorizer ApiGatewayRestApiCfnProvisioner
4 AWS::ApiGateway::BasePathMapping ApiGatewayDomainCfnProvisioner
5 AWS::ApiGateway::Deployment ApiGatewayRestApiCfnProvisioner
6 AWS::ApiGateway::DomainName ApiGatewayDomainCfnProvisioner
7 AWS::ApiGateway::GatewayResponse ApiGatewayGatewayResponseCfnProvisioner
8 AWS::ApiGateway::Method ApiGatewayRestApiCfnProvisioner
9 AWS::ApiGateway::Resource ApiGatewayRestApiCfnProvisioner
10 AWS::ApiGateway::RestApi ApiGatewayRestApiCfnProvisioner
11 AWS::ApiGateway::Stage ApiGatewayRestApiCfnProvisioner
12 AWS::ApiGateway::UsagePlan ApiGatewayUsagePlanCfnProvisioner
13 AWS::ApiGateway::UsagePlanKey ApiGatewayUsagePlanCfnProvisioner
14 AWS::ApiGatewayV2::Api ApiGatewayV2CfnProvisioner
15 AWS::ApiGatewayV2::Authorizer ApiGatewayV2CfnProvisioner
16 AWS::ApiGatewayV2::Deployment ApiGatewayV2CfnProvisioner
17 AWS::ApiGatewayV2::Integration ApiGatewayV2CfnProvisioner
18 AWS::ApiGatewayV2::Route ApiGatewayV2CfnProvisioner
19 AWS::ApiGatewayV2::Stage ApiGatewayV2CfnProvisioner
20 AWS::AppSync::ApiKey AppSyncCfnProvisioner
21 AWS::AppSync::DataSource AppSyncCfnProvisioner
22 AWS::AppSync::FunctionConfiguration AppSyncCfnProvisioner
23 AWS::AppSync::GraphQLApi AppSyncCfnProvisioner
24 AWS::AppSync::GraphQLSchema AppSyncCfnProvisioner
25 AWS::AppSync::Resolver AppSyncCfnProvisioner
26 AWS::AutoScaling::AutoScalingGroup AutoScalingGroupCfnProvisioner
27 AWS::AutoScaling::LaunchConfiguration AutoScalingGroupCfnProvisioner
28 AWS::AutoScaling::LifecycleHook AutoScalingLifecycleHookCfnProvisioner
29 AWS::AutoScaling::ScalingPolicy AutoScalingScalingPolicyCfnProvisioner
30 AWS::Backup::BackupVault BackupVaultCfnProvisioner
31 AWS::Batch::ComputeEnvironment BatchCfnProvisioner
32 AWS::Batch::JobDefinition BatchCfnProvisioner
33 AWS::Batch::JobQueue BatchCfnProvisioner
34 AWS::CDK::Metadata CdkMetadataCfnProvisioner
35 AWS::CertificateManager::Certificate AcmCfnProvisioner
36 AWS::CloudFormation::CustomResource CustomResourceCfnProvisioner
37 AWS::CloudFront::CachePolicy CloudFrontCfnProvisioner
38 AWS::CloudFront::Distribution CloudFrontCfnProvisioner
39 AWS::CloudFront::OriginAccessControl CloudFrontCfnProvisioner
40 AWS::CloudFront::OriginRequestPolicy CloudFrontCfnProvisioner
41 AWS::CloudFront::ResponseHeadersPolicy CloudFrontCfnProvisioner
42 AWS::CloudTrail::Trail CloudTrailCfnProvisioner
43 AWS::CloudWatch::Alarm CloudWatchCfnProvisioner
44 AWS::CloudWatch::Dashboard CloudWatchDashboardCfnProvisioner
45 AWS::CodeBuild::Project CodeBuildCfnProvisioner
46 AWS::CodePipeline::CustomActionType CodePipelineCfnProvisioner
47 AWS::CodePipeline::Pipeline CodePipelineCfnProvisioner
48 AWS::CodePipeline::Webhook CodePipelineCfnProvisioner
49 AWS::Cognito::UserPool CognitoCfnProvisioner
50 AWS::Cognito::UserPoolClient CognitoCfnProvisioner
51 AWS::Cognito::UserPoolDomain CognitoCfnProvisioner
52 AWS::Cognito::UserPoolGroup CognitoUserPoolGroupCfnProvisioner
53 AWS::Config::ConfigRule ConfigCfnProvisioner
54 AWS::DynamoDB::GlobalTable DynamoDbCfnProvisioner
55 AWS::DynamoDB::Table DynamoDbCfnProvisioner
56 AWS::EC2::EIP Ec2NetworkCfnProvisioner
57 AWS::EC2::FlowLog Ec2FlowLogCfnProvisioner
58 AWS::EC2::Instance Ec2InstanceCfnProvisioner
59 AWS::EC2::InternetGateway Ec2NetworkCfnProvisioner
60 AWS::EC2::LaunchTemplate Ec2LaunchTemplateCfnProvisioner
61 AWS::EC2::NatGateway Ec2NetworkCfnProvisioner
62 AWS::EC2::NetworkAcl Ec2NetworkAclCfnProvisioner
63 AWS::EC2::NetworkAclEntry Ec2NetworkAclCfnProvisioner
64 AWS::EC2::Route Ec2NetworkCfnProvisioner
65 AWS::EC2::RouteTable Ec2NetworkCfnProvisioner
66 AWS::EC2::SecurityGroup Ec2SecurityGroupCfnProvisioner
67 AWS::EC2::SecurityGroupEgress Ec2SecurityGroupRuleCfnProvisioner
68 AWS::EC2::SecurityGroupIngress Ec2SecurityGroupRuleCfnProvisioner
69 AWS::EC2::Subnet Ec2NetworkCfnProvisioner
70 AWS::EC2::SubnetNetworkAclAssociation Ec2NetworkAclCfnProvisioner
71 AWS::EC2::SubnetRouteTableAssociation Ec2NetworkCfnProvisioner
72 AWS::EC2::VPC Ec2VpcCfnProvisioner
73 AWS::EC2::VPCEndpoint Ec2VpcEndpointCfnProvisioner
74 AWS::EC2::VPCGatewayAttachment Ec2VpcGatewayAttachmentCfnProvisioner
75 AWS::ECR::Repository EcrCfnProvisioner
76 AWS::ECS::CapacityProvider EcsCapacityCfnProvisioner
77 AWS::ECS::Cluster EcsCfnProvisioner
78 AWS::ECS::ClusterCapacityProviderAssociations EcsCapacityCfnProvisioner
79 AWS::ECS::Service EcsCfnProvisioner
80 AWS::ECS::TaskDefinition EcsCfnProvisioner
81 AWS::EKS::Cluster EksCfnProvisioner
82 AWS::EKS::Nodegroup EksCfnProvisioner
83 AWS::ElasticLoadBalancingV2::Listener ElbV2CfnProvisioner
84 AWS::ElasticLoadBalancingV2::ListenerRule ElbV2CfnProvisioner
85 AWS::ElasticLoadBalancingV2::LoadBalancer ElbV2CfnProvisioner
86 AWS::ElasticLoadBalancingV2::TargetGroup ElbV2CfnProvisioner
87 AWS::Events::EventBus EventsCfnProvisioner
88 AWS::Events::EventBusPolicy EventsCfnProvisioner
89 AWS::Events::Rule EventsCfnProvisioner
90 AWS::IAM::AccessKey IamAccessKeyCfnProvisioner
91 AWS::IAM::InstanceProfile IamInstanceProfileCfnProvisioner
92 AWS::IAM::ManagedPolicy IamManagedPolicyCfnProvisioner
93 AWS::IAM::Policy IamPolicyCfnProvisioner
94 AWS::IAM::Role IamRoleCfnProvisioner
95 AWS::IAM::User IamUserCfnProvisioner
96 AWS::IoT::DomainConfiguration IotDomainConfigurationCfnProvisioner
97 AWS::IoT::Policy IotCfnProvisioner
98 AWS::IoT::Thing IotCfnProvisioner
99 AWS::IoT::TopicRule IotCfnProvisioner
100 AWS::KMS::Alias KmsCfnProvisioner
101 AWS::KMS::Key KmsCfnProvisioner
102 AWS::Kinesis::Stream KinesisCfnProvisioner
103 AWS::KinesisFirehose::DeliveryStream FirehoseCfnProvisioner
104 AWS::Lambda::Alias LambdaVersionAliasCfnProvisioner
105 AWS::Lambda::EventInvokeConfig LambdaEventInvokeConfigCfnProvisioner
106 AWS::Lambda::EventSourceMapping LambdaEventSourceMappingCfnProvisioner
107 AWS::Lambda::Function LambdaCfnProvisioner
108 AWS::Lambda::LayerVersion LambdaCfnProvisioner
109 AWS::Lambda::MicrovmImage LambdaMicrovmsCfnProvisioner
110 AWS::Lambda::NetworkConnector LambdaMicrovmsCfnProvisioner
111 AWS::Lambda::Permission LambdaAddressingCfnProvisioner
112 AWS::Lambda::Url LambdaAddressingCfnProvisioner
113 AWS::Lambda::Version LambdaVersionAliasCfnProvisioner
114 AWS::Logs::LogGroup LogsCfnProvisioner
115 AWS::Logs::LogStream LogsLogStreamCfnProvisioner
116 AWS::Logs::MetricFilter LogsMetricFilterCfnProvisioner
117 AWS::Organizations::Account OrganizationsCfnProvisioner
118 AWS::Organizations::Organization OrganizationsCfnProvisioner
119 AWS::Organizations::OrganizationalUnit OrganizationsCfnProvisioner
120 AWS::Organizations::Policy OrganizationsCfnProvisioner
121 AWS::Organizations::ResourcePolicy OrganizationsCfnProvisioner
122 AWS::Pipes::Pipe PipesCfnProvisioner
123 AWS::RDS::DBCluster RdsCfnProvisioner
124 AWS::RDS::DBClusterParameterGroup RdsCfnProvisioner
125 AWS::RDS::DBInstance RdsCfnProvisioner
126 AWS::RDS::DBParameterGroup RdsCfnProvisioner
127 AWS::RDS::DBProxy RdsCfnProvisioner
128 AWS::RDS::DBProxyTargetGroup RdsCfnProvisioner
129 AWS::RDS::DBSubnetGroup RdsCfnProvisioner
130 AWS::Redshift::Cluster RedshiftClusterCfnProvisioner
131 AWS::Redshift::ClusterParameterGroup RedshiftClusterCfnProvisioner
132 AWS::Redshift::ClusterSecurityGroup RedshiftClusterCfnProvisioner
133 AWS::Redshift::ClusterSubnetGroup RedshiftClusterCfnProvisioner
134 AWS::Route53::HostedZone Route53CfnProvisioner
135 AWS::Route53::RecordSet Route53CfnProvisioner
136 AWS::S3::Bucket S3CfnProvisioner
137 AWS::S3::BucketPolicy S3CfnProvisioner
138 AWS::SNS::Subscription SnsCfnProvisioner
139 AWS::SNS::Topic SnsCfnProvisioner
140 AWS::SNS::TopicPolicy SnsCfnProvisioner
141 AWS::SQS::Queue SqsCfnProvisioner
142 AWS::SQS::QueuePolicy SqsCfnProvisioner
143 AWS::SSM::Parameter SsmCfnProvisioner
144 AWS::Scheduler::ScheduleGroup SchedulerScheduleGroupCfnProvisioner
145 AWS::SecretsManager::Secret SecretsManagerCfnProvisioner
146 AWS::SecretsManager::SecretTargetAttachment SecretTargetAttachmentCfnProvisioner
147 AWS::StepFunctions::StateMachine StepFunctionsCfnProvisioner
148 AWS::WAFv2::WebACL WafV2CfnProvisioner
149 Custom::DynamoDBReplica DynamoDbCfnProvisioner
@@ -0,0 +1,271 @@
{
"provenance": {
"source": "AWS CloudWatch Logs TestMetricFilter",
"capturedAt": "2026-09-16T08:35:06.272542+00:00",
"region": "eu-west-1",
"endpoint": "https://logs.eu-west-1.amazonaws.com",
"inputs": "Synthetic only. No resource writes or user logs.",
"eventNumberBase": 1,
"reference": "https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_TestMetricFilter.html"
},
"cases": [
{
"id": "boundary-array-true",
"request": {
"filterPattern": "{ $.a IS TRUE }",
"logEventMessages": [
"{\"a\":true}",
"{\"a\":false}",
"{\"a\":[true,false]}",
"{\"a\":[null]}",
"{\"a\":[[null]]}",
"{\"a\":[{\"b\":2},{\"b\":1}]}",
"{\"a\":[{}]}",
"{}"
]
},
"response": {
"matches": [
{
"eventNumber": 1,
"eventMessage": "{\"a\":true}",
"extractedValues": {}
}
]
}
},
{
"id": "boundary-array-false",
"request": {
"filterPattern": "{ $.a IS FALSE }",
"logEventMessages": [
"{\"a\":true}",
"{\"a\":false}",
"{\"a\":[true,false]}",
"{\"a\":[null]}",
"{\"a\":[[null]]}",
"{\"a\":[{\"b\":2},{\"b\":1}]}",
"{\"a\":[{}]}",
"{}"
]
},
"response": {
"matches": [
{
"eventNumber": 2,
"eventMessage": "{\"a\":false}",
"extractedValues": {}
}
]
}
},
{
"id": "boundary-array-null",
"request": {
"filterPattern": "{ $.a IS NULL }",
"logEventMessages": [
"{\"a\":true}",
"{\"a\":false}",
"{\"a\":[true,false]}",
"{\"a\":[null]}",
"{\"a\":[[null]]}",
"{\"a\":[{\"b\":2},{\"b\":1}]}",
"{\"a\":[{}]}",
"{}"
]
},
"response": {
"matches": [
{
"eventNumber": 4,
"eventMessage": "{\"a\":[null]}",
"extractedValues": {}
}
]
}
},
{
"id": "boundary-nested-negative",
"request": {
"filterPattern": "{ $.a[*].b != 2 }",
"logEventMessages": [
"{\"a\":true}",
"{\"a\":false}",
"{\"a\":[true,false]}",
"{\"a\":[null]}",
"{\"a\":[[null]]}",
"{\"a\":[{\"b\":2},{\"b\":1}]}",
"{\"a\":[{}]}",
"{}"
]
},
"response": {
"matches": [
{
"eventNumber": 1,
"eventMessage": "{\"a\":true}",
"extractedValues": {}
},
{
"eventNumber": 2,
"eventMessage": "{\"a\":false}",
"extractedValues": {}
},
{
"eventNumber": 3,
"eventMessage": "{\"a\":[true,false]}",
"extractedValues": {}
},
{
"eventNumber": 4,
"eventMessage": "{\"a\":[null]}",
"extractedValues": {}
},
{
"eventNumber": 5,
"eventMessage": "{\"a\":[[null]]}",
"extractedValues": {}
},
{
"eventNumber": 7,
"eventMessage": "{\"a\":[{}]}",
"extractedValues": {}
}
]
}
},
{
"id": "boundary-wildcard-null",
"request": {
"filterPattern": "{ $.a[*] IS NULL }",
"logEventMessages": [
"{\"a\":true}",
"{\"a\":false}",
"{\"a\":[true,false]}",
"{\"a\":[null]}",
"{\"a\":[[null]]}",
"{\"a\":[{\"b\":2},{\"b\":1}]}",
"{\"a\":[{}]}",
"{}"
]
},
"response": {
"matches": [
{
"eventNumber": 4,
"eventMessage": "{\"a\":[null]}",
"extractedValues": {}
}
]
}
},
{
"id": "boundary-term-slash",
"request": {
"filterPattern": "a/b",
"logEventMessages": [
"a/b",
"a b"
]
},
"error": {
"code": "InvalidParameterException",
"message": "Invalid character(s) in term '/'"
}
},
{
"id": "boundary-term-at",
"request": {
"filterPattern": "a@b",
"logEventMessages": [
"a@b",
"a b"
]
},
"error": {
"code": "InvalidParameterException",
"message": "Invalid character(s) in term '@'"
}
},
{
"id": "boundary-term-unicode",
"request": {
"filterPattern": "caf\u00e9",
"logEventMessages": [
"caf\u00e9",
"cafe"
]
},
"response": {
"matches": [
{
"eventNumber": 1,
"eventMessage": "caf\u00e9",
"extractedValues": {}
}
]
}
},
{
"id": "boundary-quoted-space",
"request": {
"filterPattern": "\" \"",
"logEventMessages": [
"x",
"two words",
" "
]
},
"response": {
"matches": [
{
"eventNumber": 2,
"eventMessage": "two words",
"extractedValues": {}
},
{
"eventNumber": 3,
"eventMessage": " ",
"extractedValues": {}
}
]
}
},
{
"id": "boundary-huge-exponent",
"request": {
"filterPattern": "{ $.a = 1e2147483648 }",
"logEventMessages": [
"{\"a\":1}",
"{\"a\":\"1e2147483648\"}"
]
},
"error": {
"code": "InvalidParameterException",
"message": "Invalid metric filter pattern"
}
},
{
"id": "boundary-bare-negative",
"request": {
"filterPattern": "a-b",
"logEventMessages": [
"a",
"b",
"a-b",
"ab",
"a b"
]
},
"response": {
"matches": [
{
"eventNumber": 1,
"eventMessage": "a",
"extractedValues": {}
}
]
}
}
]
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,70 @@
{
"verification": "Verified on Live AWS",
"observedDate": "2026-09-16",
"region": "eu-west-1",
"awsCliVersion": "2.36.45",
"description": "Normalized observations from isolated CloudFormation updates of one explicitly named AWS::Logs::MetricFilter. Physical roles replace temporary resource names. No log events or new metric series were published.",
"identity": {
"Ref": "filter name only",
"PhysicalResourceId": "filter name only"
},
"validReplacement": {
"priorDefinition": {"FilterPattern": "ERROR", "MetricValue": "1"},
"newDefinition": {"FilterPattern": "WARN", "MetricValue": "2"},
"events": [
{"physicalRole": "prior", "status": "UPDATE_IN_PROGRESS"},
{"physicalRole": "prior", "status": "DELETE_IN_PROGRESS"},
{"physicalRole": "prior", "status": "DELETE_COMPLETE"},
{"physicalRole": "replacement", "status": "CREATE_IN_PROGRESS"},
{"physicalRole": "replacement", "status": "CREATE_COMPLETE"},
{"physicalRole": "replacement", "status": "UPDATE_COMPLETE"}
],
"deletionReason": "Requested update requires the replacement of the existing resource; deleting existing resource, then creating a new one.",
"stackStatus": "UPDATE_COMPLETE"
},
"failedReplacement": {
"priorDefinition": {"FilterPattern": "WARN", "MetricValue": "2"},
"attemptedDefinition": {"FilterPattern": "{", "MetricValue": "9"},
"events": [
{"physicalRole": "prior", "status": "UPDATE_IN_PROGRESS"},
{"physicalRole": "prior", "status": "DELETE_IN_PROGRESS"},
{"physicalRole": "prior", "status": "DELETE_COMPLETE"},
{"physicalRole": "attempted", "status": "CREATE_IN_PROGRESS"},
{"physicalRole": "attempted", "status": "CREATE_FAILED"},
{"physicalRole": "attempted", "status": "UPDATE_FAILED"},
{"physicalRole": "attempted", "status": "UPDATE_IN_PROGRESS"},
{"physicalRole": "attempted", "status": "DELETE_IN_PROGRESS"},
{"physicalRole": "attempted", "status": "DELETE_COMPLETE"},
{"physicalRole": "attempted", "desiredDefinitionRole": "prior", "status": "CREATE_IN_PROGRESS"},
{"physicalRole": "prior", "status": "CREATE_COMPLETE"},
{"physicalRole": "prior", "status": "UPDATE_COMPLETE"}
],
"stackStatus": "UPDATE_ROLLBACK_COMPLETE",
"restoredDefinition": {"FilterPattern": "WARN", "MetricValue": "2"},
"priorInstanceWasRecreated": true,
"attemptedFilterSurvived": false,
"storedTemplateRestored": true,
"qualification": "The intermediate rollback CREATE_IN_PROGRESS event retained the attempted physical ID while ResourceProperties already specified the restored definition. Completion carried the prior name. Direct Logs reads and a changed creationTime confirmed recreation."
},
"retainReplacement": {
"policyInstalledBeforeRename": "Retain",
"oldFilterSurvived": false,
"deleteSkippedEventObserved": false,
"emptyFilterListObservedBetweenDeleteAndCreate": true,
"finalSurvivorCount": 1,
"finalDefinition": {"FilterPattern": "INFO", "MetricValue": "3"},
"qualification": "This resource-specific experiment still deleted the old filter before creation despite UpdateReplacePolicy Retain. Do not generalize to other resource types or stack DeletionPolicy."
},
"notMeasured": [
"replacement at the 100-filter limit",
"collisions with a filter owned by another stack",
"all generated-name and changed-log-group combinations",
"all deletion and snapshot policies"
],
"cleanup": {
"verifiedAt": "2026-09-16T10:25:44Z",
"stackAbsent": true,
"remainingOwnedLogGroups": 0,
"newMetricSeriesPublished": 0
}
}
@@ -0,0 +1,26 @@
{
"provenance": {
"verification": "Verified on Live AWS",
"source": "Signed raw PutMetricFilter request reported by the coordinated AWS research agent",
"observationDate": "2026-09-16",
"region": "eu-west-1",
"endpoint": "https://logs.eu-west-1.amazonaws.com",
"reference": "https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutMetricFilter.html",
"scope": "Only the observed defaultValue member and response are reproduced. Other request fields and resource identities are omitted. CLI client-side type validation was bypassed."
},
"requestMember": "metricTransformations[0].defaultValue",
"requestValue": "7",
"response": {
"status": 400,
"body": {
"__type": "SerializationException",
"Message": "STRING_VALUE cannot be converted to Double"
}
},
"positiveControl": {
"requestValue": 7,
"responseStatus": 200,
"responseBody": ""
},
"unobserved": "Other string contents and null, boolean, object or array defaultValue nodes were not probed by this observation."
}
@@ -0,0 +1,112 @@
{
"verification": "Verified on Live AWS",
"observedDate": "2026-09-16",
"region": "eu-west-1",
"awsCliVersion": "2.36.45",
"description": "Normalized observations from isolated synthetic PutMetricFilter/PutLogEvents/GetMetricStatistics probes. Values are independent AWS results, not emulator-generated expectations.",
"period": 60,
"observedThrough": "2026-09-16T09:06:51Z",
"metricDefaults": {
"filterPattern": "ERROR",
"metricValue": "3",
"defaultValue": 7,
"cases": [
{
"name": "mixed events in one batch",
"batches": [["ERROR", "INFO", "ERROR"]],
"expected": {"Sum": 13, "SampleCount": 3, "Minimum": 3, "Maximum": 7}
},
{
"name": "hit then miss in separate batches",
"batches": [["ERROR"], ["INFO"]],
"expected": {"Sum": 10, "SampleCount": 2, "Minimum": 3, "Maximum": 7}
},
{
"name": "miss then hit in separate batches",
"batches": [["INFO"], ["ERROR"]],
"expected": {"Sum": 10, "SampleCount": 2, "Minimum": 3, "Maximum": 7}
}
],
"qualification": "Each case used one isolated event-time minute. Results converged through repeated reads over approximately 107 seconds. No minute-wide suppression or default deduplication was observed."
},
"extraction": {
"filterPattern": "{ $.probe = \"value\" || $.value = * }",
"metricValue": "$.value",
"defaultValue": 7,
"cases": [
{
"name": "matching event with missing value",
"message": {"probe": "value", "case": "missing"},
"expected": {"Sum": 7, "SampleCount": 1}
},
{
"name": "matching event with null value",
"message": {"probe": "value", "value": null, "case": "null"},
"expected": {"Sum": 7, "SampleCount": 1}
},
{
"name": "matching event with nonnumeric string",
"message": {"probe": "value", "value": "not-a-number", "case": "nonnumeric"},
"expected": {"datapoints": []}
},
{
"name": "matching numeric control",
"message": {"probe": "value", "value": 3, "case": "numeric-control"},
"expected": {"Sum": 3, "SampleCount": 1}
}
],
"qualification": "Cases occupied distinct event-time minutes. Matching did not depend on the value field being present. The numeric control succeeded; negative results remained absent through the completed observation window."
},
"ordinaryDimensions": {
"filterPattern": "{ $.probe = \"dimension\" || $.a = * || $.b = * }",
"metricValue": "1",
"dimensions": {"A": "$.a", "B": "$.b"},
"messages": [
{"probe": "dimension", "a": "alpha", "b": "beta"},
{"probe": "dimension", "a": "alpha"},
{"probe": "dimension", "b": "beta"},
{"probe": "dimension"}
],
"expectedSeries": [
{"dimensions": {"A": "alpha", "B": "beta"}, "Sum": 1, "SampleCount": 1},
{"dimensions": {}, "Sum": 3, "SampleCount": 3}
],
"absentSeries": [
{"dimensions": {"A": "alpha"}},
{"dimensions": {"B": "beta"}}
],
"qualification": "No default configured. All events occupied one minute. ListMetrics confirmed complete and dimensionless series, not partial sets. Null or empty dimension values were not measured."
},
"systemDimensions": {
"filterPattern": "ERROR",
"metricValue": "3",
"defaultValue": 7,
"messages": ["ERROR", "INFO"],
"accountTransformerPolicyCount": 0,
"groupTransformerConfig": [],
"cases": [
{
"emitSystemFieldDimensions": ["@aws.account"],
"expectedSeries": [
{"dimensions": {"@aws.account": "<CALLER_ACCOUNT>"}, "Sum": 3, "SampleCount": 1},
{"dimensions": {}, "Sum": 7, "SampleCount": 1}
]
},
{
"emitSystemFieldDimensions": ["@aws.region"],
"expectedSeries": [
{"dimensions": {"@aws.region": "eu-west-1"}, "Sum": 3, "SampleCount": 1},
{"dimensions": {}, "Sum": 7, "SampleCount": 1}
]
},
{
"emitSystemFieldDimensions": ["@aws.account", "@aws.region"],
"expectedSeries": [
{"dimensions": {"@aws.account": "<CALLER_ACCOUNT>", "@aws.region": "eu-west-1"}, "Sum": 3, "SampleCount": 1},
{"dimensions": {}, "Sum": 7, "SampleCount": 1}
]
}
],
"qualification": "Regular noncentralized group. Matching events receive requested system dimensions; pattern-nonmatch defaults are dimensionless. This does not measure extraction-fallback defaults or centralized source provenance."
}
}
@@ -0,0 +1,49 @@
{
"provenance": {
"verification": "Verified on Live AWS",
"operation": "PutMetricFilter",
"observedFrom": "2026-09-16T12:16:08Z",
"observedThrough": "2026-09-16T12:16:10Z",
"cleanupVerifiedAt": "2026-09-16T12:16:11Z",
"region": "eu-west-1",
"endpoint": "https://logs.eu-west-1.amazonaws.com",
"source": "Four synthetic validation probes reported by the parent coordinator",
"reference": "https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutMetricFilter.html",
"normalization": "Only reported filter/metric transformation members and acceptance/error details are retained. Resource names, account identifiers and unrelated request members are omitted. These are not raw HTTP requests or responses.",
"publication": "None. Validation only.",
"unmeasured": "Dimension wildcard references and literal asterisks inside quoted property names were not probed."
},
"cases": [
{
"id": "A-mentioned-scalar",
"filterPattern": "{ $.probe = \"yes\" || $.value = * }",
"metricValue": "$.value",
"defaultValue": 7,
"expected": { "accepted": true }
},
{
"id": "B-unmentioned-scalar",
"filterPattern": "{ $.probe = \"yes\" }",
"metricValue": "$.value",
"defaultValue": 7,
"expected": { "accepted": true }
},
{
"id": "C-unmentioned-dimension",
"filterPattern": "{ $.probe = \"yes\" }",
"metricValue": "1",
"dimensions": { "A": "$.a" },
"expected": { "accepted": true }
},
{
"id": "D-wildcard-metric-value",
"filterPattern": "{ $.values[*] = * }",
"metricValue": "$.values[*]",
"expected": {
"accepted": false,
"errorCode": "InvalidParameterException",
"message": "Invalid metric transformation: metric value $.values[*] must be a valid number"
}
}
]
}
@@ -0,0 +1,51 @@
{
"comprehend": {
"I absolutely love this product!": {
"DetectSentiment": {
"Sentiment": "POSITIVE",
"SentimentScore": {
"Positive": 0.98,
"Negative": 0.01,
"Neutral": 0.01,
"Mixed": 0.0
}
}
}
},
"textract": {
"mock-bucket/invoice.pdf": {
"DetectDocumentText": {
"DocumentMetadata": { "Pages": 1 },
"Blocks": [
{
"BlockType": "LINE",
"Id": "mock-line-1",
"Confidence": 99.5,
"Text": "Invoice Total: $42.00"
}
],
"DetectDocumentTextModelVersion": "1.0"
}
}
},
"rekognition": {
"mock-bucket/cat.jpg": {
"DetectLabels": {
"Labels": [
{ "Name": "Cat", "Confidence": 97.2 },
{ "Name": "Animal", "Confidence": 98.1 }
],
"LabelModelVersion": "1.0"
}
}
},
"translate": {
"Hello world": {
"TranslateText": {
"TranslatedText": "Hola mundo",
"SourceLanguageCode": "en",
"TargetLanguageCode": "es"
}
}
}
}
@@ -0,0 +1,18 @@
{
"name": "confirm-sign-up.error.code-mismatch",
"capturedAt": "2026-05-16T05:10:20.553Z",
"request": {
"ClientId": "6h89qn2bfglbmvfebq9aaknqk0",
"Username": "fixture@example.com",
"ConfirmationCode": "000000"
},
"response": null,
"error": {
"name": "CodeMismatchException",
"message": "Invalid verification code provided, please try again.",
"$metadata": {
"httpStatusCode": 400,
"requestId": "73626b75-683d-4630-99c1-05f736ed86f7"
}
}
}
@@ -0,0 +1,17 @@
{
"name": "forgot-password.unknown-user",
"capturedAt": "2026-05-16T05:10:22.859Z",
"request": {
"ClientId": "6h89qn2bfglbmvfebq9aaknqk0",
"Username": "fixture@example.com"
},
"response": null,
"error": {
"name": "UserNotFoundException",
"message": "Username/client id combination not found.",
"$metadata": {
"httpStatusCode": 400,
"requestId": "4587537a-5573-4ef5-90b7-7291133ab18d"
}
}
}
@@ -0,0 +1,21 @@
{
"name": "initiate-auth.srp.unknown-user",
"capturedAt": "2026-05-16T05:10:23.019Z",
"request": {
"AuthFlow": "USER_SRP_AUTH",
"ClientId": "6h89qn2bfglbmvfebq9aaknqk0",
"AuthParameters": {
"USERNAME": "fixture@example.com",
"SRP_A": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
},
"response": null,
"error": {
"name": "UserNotFoundException",
"message": "User does not exist.",
"$metadata": {
"httpStatusCode": 400,
"requestId": "c4459718-f2a4-48f8-8377-d56a06828f46"
}
}
}
@@ -0,0 +1,22 @@
{
"name": "resend-confirmation.error.rate-limit",
"capturedAt": "2026-05-16T05:10:22.703Z",
"request": {
"ClientId": "6h89qn2bfglbmvfebq9aaknqk0",
"Username": "fixture@example.com"
},
"response": {
"CodeDeliveryDetails": {
"Destination": "f***@e***",
"DeliveryMedium": "EMAIL",
"AttributeName": "email"
},
"$metadata": {
"httpStatusCode": 200,
"requestId": "845f89fd-de84-46b3-8de3-fa85980d4a8f",
"attempts": 1,
"totalRetryDelay": 0
}
},
"error": null
}
@@ -0,0 +1,22 @@
{
"name": "resend-confirmation.happy",
"capturedAt": "2026-05-16T05:10:21.597Z",
"request": {
"ClientId": "6h89qn2bfglbmvfebq9aaknqk0",
"Username": "fixture@example.com"
},
"response": {
"CodeDeliveryDetails": {
"Destination": "f***@e***",
"DeliveryMedium": "EMAIL",
"AttributeName": "email"
},
"$metadata": {
"httpStatusCode": 200,
"requestId": "30b85e7f-621c-413c-a294-25393a2964c6",
"attempts": 1,
"totalRetryDelay": 0
}
},
"error": null
}
@@ -0,0 +1,36 @@
{
"name": "sign-up.error.username-exists",
"capturedAt": "2026-05-16T05:10:19.745Z",
"request": {
"ClientId": "6h89qn2bfglbmvfebq9aaknqk0",
"Username": "fixture@example.com",
"Password": "Fixture1!Aa",
"UserAttributes": [
{
"Name": "email",
"Value": "fixture@example.com"
},
{
"Name": "phone_number",
"Value": "+5215555555555"
},
{
"Name": "given_name",
"Value": "Fixture"
},
{
"Name": "family_name",
"Value": "User"
}
]
},
"response": null,
"error": {
"name": "UsernameExistsException",
"message": "User already exists",
"$metadata": {
"httpStatusCode": 400,
"requestId": "b3434b0c-42dd-42fc-82a6-995412164d66"
}
}
}
@@ -0,0 +1,43 @@
{
"name": "sign-up.happy",
"capturedAt": "2026-05-16T05:10:18.457Z",
"request": {
"ClientId": "6h89qn2bfglbmvfebq9aaknqk0",
"Username": "fixture@example.com",
"Password": "Fixture1!Aa",
"UserAttributes": [
{
"Name": "email",
"Value": "fixture@example.com"
},
{
"Name": "phone_number",
"Value": "+5215555555555"
},
{
"Name": "given_name",
"Value": "Fixture"
},
{
"Name": "family_name",
"Value": "User"
}
]
},
"response": {
"UserConfirmed": false,
"UserSub": "34c84488-e0e1-70ae-d2ee-991ad1a898c8",
"CodeDeliveryDetails": {
"Destination": "f***@e***",
"DeliveryMedium": "EMAIL",
"AttributeName": "email"
},
"$metadata": {
"httpStatusCode": 200,
"requestId": "e2953a5e-cd31-49f9-a9e0-fac9c689740d",
"attempts": 1,
"totalRetryDelay": 0
}
},
"error": null
}
@@ -0,0 +1,34 @@
{
"StateMachines": {
"sfn-mock-test": {
"TestCases": {
"HappyPath": { "Call API": "Ok200" },
"Throw422": { "Call API": "Throw422" },
"RetryOnce": { "Call API": "ThrowThenOk" }
}
},
"sfn-mock-ddb-test": {
"TestCases": {
"MockedApiRealDdb": { "Call API": "Ok200" }
}
},
"sfn-mock-skip-test": {
"TestCases": {
"EmptyUnusedResponse": { "Skip": "Empty", "Run": "Ok200" }
}
}
},
"MockedResponses": {
"Ok200": {
"0": { "Return": { "StatusCode": 200, "ResponseBody": { "id": 1 } } }
},
"Throw422": {
"0": { "Throw": { "Error": "ApiGateway.422", "Cause": "Unprocessable" } }
},
"ThrowThenOk": {
"0": { "Throw": { "Error": "ApiGateway.429", "Cause": "Too many requests" } },
"1-2": { "Return": { "StatusCode": 200, "ResponseBody": { "retried": true } } }
},
"Empty": {}
}
}