Service Reference
Substrate emulates 37 AWS services. This document lists every supported operation, Betty CloudFormation resource type, and pricing note for each plugin.
Coverage matrix
| # | Service | Plugin | Protocol | CFN Support |
|---|---|---|---|---|
| 1 | IAM | IAMPlugin | Query | Yes |
| 2 | STS | STSPlugin | Query | — |
| 3 | Lambda | LambdaPlugin | REST/JSON | Yes |
| 4 | SQS | SQSPlugin | Query | Yes |
| 5 | DynamoDB | DynamoDBPlugin | JSON | Yes |
| 6 | EC2 | EC2Plugin | Query | Yes |
| 7 | S3 | S3Plugin | REST/XML | Yes |
| 8 | ELB v2 | ELBPlugin | Query | Yes |
| 9 | Route 53 | Route53Plugin | REST/XML | Yes |
| 10 | Resource Groups Tagging | TaggingPlugin | JSON | — |
| 11 | SNS | SNSPlugin | Query | Yes |
| 12 | Secrets Manager | SecretsManagerPlugin | JSON | Yes |
| 13 | SSM Parameter Store | SSMPlugin | JSON | Yes |
| 14 | KMS | KMSPlugin | JSON | Yes |
| 15 | CloudWatch Logs | CloudWatchLogsPlugin | JSON | Yes |
| 16 | EventBridge | EventBridgePlugin | JSON | Yes |
| 17 | CloudWatch | CloudWatchPlugin | Query | Yes |
| 18 | ACM | ACMPlugin | JSON | Yes |
| 19 | API Gateway (REST) | APIGatewayPlugin | REST/JSON | Yes |
| 20 | API Gateway v2 (HTTP) | APIGatewayV2Plugin | REST/JSON | Yes |
| 21 | Step Functions | StepFunctionsPlugin | JSON | Yes |
| 22 | ECR | ECRPlugin | JSON | Yes |
| 23 | ECS | ECSPlugin | JSON | Yes |
| 24 | Cognito User Pools | CognitoIDPPlugin | JSON | Yes |
| 25 | Cognito Identity | CognitoIdentityPlugin | JSON | Yes |
| 26 | Kinesis Data Streams | KinesisPlugin | JSON | Yes |
| 27 | CloudFront | CloudFrontPlugin | REST/XML | Yes |
| 28 | RDS | RDSPlugin | Query | Yes |
| 29 | ElastiCache | ElastiCachePlugin | Query | Yes |
| 30 | EFS | EFSPlugin | REST/JSON | Yes |
| 31 | Glue | GluePlugin | JSON | Yes |
| 32 | Cost Explorer | CEPlugin | JSON | — |
| 33 | Budgets | BudgetsPlugin | JSON | Yes |
| 34 | Health | HealthPlugin | JSON | — |
| 35 | Organizations | OrganizationsPlugin | JSON | — |
| 36 | SES v2 | SESv2Plugin | REST/JSON | Yes |
| 37 | Kinesis Data Firehose | FirehosePlugin | JSON | Yes |
IAM
Endpoint: iam.amazonaws.comProtocol: AWS Query (form-encoded, Action= parameter)
Supported operations
| Operation | Notes |
|---|---|
| CreateUser | Returns User object |
| GetUser | |
| DeleteUser | |
| ListUsers | |
| CreateRole | Supports trust policy document |
| GetRole | |
| DeleteRole | |
| ListRoles | |
| CreateGroup | |
| GetGroup | |
| DeleteGroup | |
| ListGroups | |
| AttachUserPolicy | |
| DetachUserPolicy | |
| ListAttachedUserPolicies | |
| AttachRolePolicy | |
| DetachRolePolicy | |
| ListAttachedRolePolicies | |
| CreatePolicy | |
| GetPolicy | |
| DeletePolicy | |
| ListPolicies | |
| CreateAccessKey | |
| DeleteAccessKey | |
| ListAccessKeys | |
| PutUserPolicy | Inline policy |
| GetUserPolicy | |
| DeleteUserPolicy | |
| ListUserPolicies | |
| PutRolePolicy | Inline policy |
| GetRolePolicy | |
| DeleteRolePolicy | |
| ListRolePolicies | |
| PutUserPermissionsBoundary | |
| DeleteUserPermissionsBoundary | |
| PutRolePermissionsBoundary | |
| DeleteRolePermissionsBoundary | |
| TagUser | |
| UntagUser | |
| ListUserTags | |
| TagRole | |
| UntagRole | |
| ListRoleTags |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::IAM::Role | RoleName | Supports AssumeRolePolicyDocument, ManagedPolicyArns |
| AWS::IAM::Policy | PolicyName | |
| AWS::IAM::User | UserName | |
| AWS::IAM::Group | GroupName |
Cost
IAM operations are free.
STS
Endpoint: sts.amazonaws.comProtocol: AWS Query (form-encoded)
Supported operations
| Operation | Notes |
|---|---|
| GetCallerIdentity | Returns account 123456789012 by default |
| AssumeRole | Returns stub temporary credentials |
| GetSessionToken | Returns stub temporary credentials |
Cost
STS operations are free.
S3
Endpoint: s3.amazonaws.com / {bucket}.s3.amazonaws.comProtocol: REST/XML
Supported operations
| Operation | Notes |
|---|---|
| CreateBucket | |
| HeadBucket | |
| DeleteBucket | |
| ListBuckets | |
| PutObject | Supports Content-Type, metadata headers |
| GetObject | Supports Range header |
| HeadObject | |
| DeleteObject | Fires S3 notifications if configured |
| CopyObject | |
| ListObjects | |
| ListObjectsV2 | Supports Prefix, Delimiter, MaxKeys, ContinuationToken |
| CreateMultipartUpload | |
| UploadPart | |
| CompleteMultipartUpload | |
| AbortMultipartUpload | |
| ListMultipartUploads | |
| GetBucketPolicy | |
| PutBucketPolicy | |
| DeleteBucketPolicy | |
| GetBucketAcl | |
| PutBucketAcl | |
| GetObjectAcl | |
| PutObjectAcl | |
| GetBucketNotificationConfiguration | |
| PutBucketNotificationConfiguration | Triggers Lambda/SQS on PutObject/DeleteObject |
| PutBucketTagging | |
| GetBucketTagging | |
| DeleteBucketTagging | |
| PutObjectTagging | |
| GetObjectTagging | |
| DeleteObjectTagging |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::S3::Bucket | BucketName |
Cost
S3 operation costs match AWS list pricing. PUT/COPY/POST/LIST operations are $0.005 per 1,000. GET/SELECT operations are $0.0004 per 1,000.
Lambda
Endpoint: lambda.{region}.amazonaws.comProtocol: REST/JSON
Supported operations
| Operation | Notes |
|---|---|
| CreateFunction | Stores function metadata; no actual execution |
| GetFunction | |
| UpdateFunctionCode | |
| UpdateFunctionConfiguration | |
| DeleteFunction | |
| ListFunctions | |
| InvokeFunction | Returns stub {"statusCode":200,"body":"null"} |
| CreateEventSourceMapping | |
| DeleteEventSourceMapping | |
| ListEventSourceMappings | |
| TagResource | |
| UntagResource | |
| ListTags |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::Lambda::Function | FunctionName | |
| AWS::Lambda::EventSourceMapping | — |
Cost
Lambda invocations: $0.0000002 per request.
SQS
Endpoint: sqs.{region}.amazonaws.comProtocol: AWS Query (form-encoded, Action= parameter)
Supported operations
| Operation | Notes |
|---|---|
| CreateQueue | Supports FifoQueue, VisibilityTimeout attributes |
| GetQueueUrl | |
| GetQueueAttributes | |
| SetQueueAttributes | |
| DeleteQueue | |
| ListQueues | |
| SendMessage | Returns MessageId |
| SendMessageBatch | |
| ReceiveMessage | Supports MaxNumberOfMessages, WaitTimeSeconds |
| DeleteMessage | |
| DeleteMessageBatch | |
| ChangeMessageVisibility | |
| PurgeQueue |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::SQS::Queue | QueueUrl | FifoQueue attribute supported |
Cost
SQS requests: $0.0000004 per request.
DynamoDB
Endpoint: dynamodb.{region}.amazonaws.comProtocol: JSON (application/x-amz-json-1.0, X-Amz-Target: DynamoDB_20120810.{Op})
Supported operations
| Operation | Notes |
|---|---|
| CreateTable | Supports GSI, LSI, billing mode |
| DescribeTable | |
| DeleteTable | |
| ListTables | |
| PutItem | Supports ConditionExpression |
| GetItem | Supports ProjectionExpression |
| UpdateItem | Supports UpdateExpression (SET/REMOVE/ADD/DELETE) |
| DeleteItem | Supports ConditionExpression |
| Query | Supports FilterExpression, GSI/LSI via IndexName |
| Scan | Supports FilterExpression, GSI/LSI via IndexName |
| BatchGetItem | |
| BatchWriteItem | |
| TransactGetItems | |
| TransactWriteItems | |
| UpdateTimeToLive |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::DynamoDB::Table | TableName | GSI, LSI, TTL supported |
Cost
DynamoDB write operations: $0.00000125 per WCU. Read operations: $0.00000025 per RCU.
EC2
Endpoint: ec2.{region}.amazonaws.comProtocol: AWS Query (form-encoded, Action= parameter)
Supported operations
| Operation | Notes |
|---|---|
| RunInstances | Auto-creates default VPC (172.31.0.0/16) |
| DescribeInstances | |
| TerminateInstances | |
| StopInstances | |
| StartInstances | |
| DescribeInstanceStatus | |
| CreateVpc | |
| DescribeVpcs | |
| DeleteVpc | |
| CreateSubnet | |
| DescribeSubnets | |
| DeleteSubnet | |
| CreateSecurityGroup | |
| DescribeSecurityGroups | |
| DeleteSecurityGroup | |
| AuthorizeSecurityGroupIngress | |
| AuthorizeSecurityGroupEgress | |
| CreateInternetGateway | |
| AttachInternetGateway | |
| DescribeAvailabilityZones | |
| DescribeRegions | |
| CreateRouteTable | |
| AssociateRouteTable |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::EC2::VPC | VpcId | |
| AWS::EC2::Subnet | SubnetId | |
| AWS::EC2::SecurityGroup | GroupId | |
| AWS::EC2::Instance | InstanceId | |
| AWS::EC2::InternetGateway | InternetGatewayId |
Cost
EC2 instance costs approximate on-demand pricing for the instance type.
ELB v2
Endpoint: elasticloadbalancing.{region}.amazonaws.comProtocol: AWS Query (form-encoded, Action= parameter)
Supported operations
| Operation | Notes |
|---|---|
| CreateLoadBalancer | ALB and NLB supported |
| DescribeLoadBalancers | |
| DeleteLoadBalancer | |
| CreateTargetGroup | |
| DescribeTargetGroups | |
| DeleteTargetGroup | |
| RegisterTargets | |
| DeregisterTargets | |
| DescribeTargetHealth | |
| CreateListener | |
| DescribeListeners | |
| DeleteListener | |
| CreateRule | |
| DescribeRules | |
| DeleteRule |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::ElasticLoadBalancingV2::LoadBalancer | LoadBalancerArn | |
| AWS::ElasticLoadBalancingV2::TargetGroup | TargetGroupArn | |
| AWS::ElasticLoadBalancingV2::Listener | ListenerArn | |
| AWS::ElasticLoadBalancingV2::ListenerRule | RuleArn |
Cost
ELB charges $0.008 per LCU-hour (approximated as flat per-request rate).
Route 53
Endpoint: route53.amazonaws.com (global) Protocol: REST/XML
Supported operations
| Operation | Notes |
|---|---|
| CreateHostedZone | Returns HTTP 201; zone IDs prefixed /hostedzone/Z |
| GetHostedZone | |
| DeleteHostedZone | |
| ListHostedZones | |
| ChangeResourceRecordSets | CREATE/DELETE/UPSERT actions |
| ListResourceRecordSets |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::Route53::HostedZone | HostedZoneId | |
| AWS::Route53::RecordSet | — |
Cost
Route 53 hosted zone: $0.50/month per zone (tracked as flat cost on CreateHostedZone).
Resource Groups Tagging
Endpoint: tagging.{region}.amazonaws.comProtocol: JSON (X-Amz-Target: ResourceGroupsTaggingAPI_20170126.{Op})
Supported operations
| Operation | Notes |
|---|---|
| GetResources | Supports ResourceTypeFilters, TagFilters; base64 pagination token |
| TagResources | Applies tags to existing resources by ARN |
| UntagResources | Removes tag keys from resources by ARN |
Scanned resource types: S3 buckets, Lambda functions, SQS queues, DynamoDB tables, EC2 instances, IAM users, IAM roles.
Cost
Resource Groups Tagging API operations are free.
SNS
Endpoint: sns.{region}.amazonaws.comProtocol: AWS Query (form-encoded, Action= parameter)
Supported operations
| Operation | Notes |
|---|---|
| CreateTopic | |
| GetTopicAttributes | |
| SetTopicAttributes | |
| DeleteTopic | |
| ListTopics | |
| Subscribe | Supports lambda, sqs, http, https, email protocols |
| Unsubscribe | |
| ListSubscriptions | |
| ListSubscriptionsByTopic | |
| Publish | Dispatches to subscribed Lambda/SQS via cross-service dispatch |
| PublishBatch |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::SNS::Topic | TopicArn | |
| AWS::SNS::Subscription | SubscriptionArn |
Cost
SNS publish: $0.0000005 per message.
Secrets Manager
Endpoint: secretsmanager.{region}.amazonaws.comProtocol: JSON (X-Amz-Target: secretsmanager.{Op})
Supported operations
| Operation | Notes |
|---|---|
| CreateSecret | |
| GetSecretValue | Returns SecretString or SecretBinary |
| PutSecretValue | Creates new version |
| UpdateSecret | |
| DeleteSecret | Supports ForceDeleteWithoutRecovery |
| ListSecrets | |
| DescribeSecret | |
| TagResource |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::SecretsManager::Secret | SecretArn |
Cost
Secrets Manager API calls: $0.05 per 10,000 API calls.
SSM Parameter Store
Endpoint: ssm.{region}.amazonaws.comProtocol: JSON (X-Amz-Target: AmazonSSM.{Op})
Supported operations
| Operation | Notes |
|---|---|
| PutParameter | Supports String, StringList, SecureString types |
| GetParameter | Supports WithDecryption |
| GetParameters | Batch get |
| GetParametersByPath | Recursive path traversal |
| DeleteParameter | |
| DescribeParameters |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::SSM::Parameter | ParameterName |
Cost
SSM standard parameters are free. Advanced parameters: $0.05 per 10,000 API interactions.
KMS
Endpoint: kms.{region}.amazonaws.comProtocol: JSON (X-Amz-Target: TrentService.{Op})
Supported operations
| Operation | Notes |
|---|---|
| CreateKey | |
| DescribeKey | |
| ListKeys | |
| ScheduleKeyDeletion | |
| Encrypt | Returns ciphertext blob (base64-encoded stub) |
| Decrypt | Returns plaintext (stub pass-through) |
| GenerateDataKey | |
| GenerateDataKeyWithoutPlaintext |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::KMS::Key | KeyId | |
| AWS::KMS::Alias | — |
Cost
KMS API requests: $0.03 per 10,000 requests.
CloudWatch Logs
Endpoint: logs.{region}.amazonaws.comProtocol: JSON (application/x-amz-json-1.1, X-Amz-Target: Logs_20140328.{Op})
Supported operations
| Operation | Notes |
|---|---|
| CreateLogGroup | |
| DeleteLogGroup | |
| DescribeLogGroups | |
| CreateLogStream | |
| DeleteLogStream | |
| DescribeLogStreams | |
| PutLogEvents | Accepts up to 10,000 events per call |
| GetLogEvents | Supports nextForwardToken pagination |
Lambda auto-creates /aws/lambda/{name} log groups.
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::Logs::LogGroup | LogGroupName | |
| AWS::Logs::LogStream | LogStreamName |
Cost
CloudWatch Logs ingestion: $0.50 per GB. Storage: $0.03 per GB-month.
EventBridge
Endpoint: events.{region}.amazonaws.comProtocol: JSON (X-Amz-Target: AWSEvents.{Op})
Supported operations
| Operation | Notes |
|---|---|
| CreateEventBus | |
| DescribeEventBus | |
| DeleteEventBus | |
| ListEventBuses | |
| PutRule | |
| DescribeRule | |
| DeleteRule | |
| ListRules | |
| PutEvents | Stores last 100 events in ring buffer |
| ListTargetsByRule |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::Events::Rule | RuleArn |
Cost
EventBridge custom events: $1.00 per million events.
CloudWatch
Endpoint: monitoring.{region}.amazonaws.comProtocol: AWS Query (form-encoded, Action= parameter)
Supported operations
| Operation | Notes |
|---|---|
| PutMetricData | |
| GetMetricData | |
| GetMetricStatistics | |
| PutMetricAlarm | |
| DescribeAlarms | |
| DeleteAlarms |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::CloudWatch::Alarm | AlarmName |
Cost
CloudWatch metrics: $0.30 per metric per month. Alarms: $0.10 per alarm per month.
ACM
Endpoint: acm.{region}.amazonaws.comProtocol: JSON (X-Amz-Target: CertificateManager.{Op})
Supported operations
| Operation | Notes |
|---|---|
| RequestCertificate | Certificate auto-transitions to ISSUED status |
| DescribeCertificate | |
| DeleteCertificate | |
| ListCertificates | |
| AddTagsToCertificate |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::CertificateManager::Certificate | CertificateArn |
Cost
ACM certificates are free.
API Gateway (REST)
Endpoint: apigateway.{region}.amazonaws.comProtocol: REST/JSON
Supported operations
| Operation | Notes |
|---|---|
| CreateRestApi | Auto-creates root / resource |
| GetRestApi | |
| DeleteRestApi | |
| GetRestApis | |
| CreateResource | |
| GetResource | |
| DeleteResource | |
| GetResources | |
| PutMethod | |
| GetMethod | |
| DeleteMethod | |
| PutIntegration | |
| GetIntegration | |
| CreateDeployment | |
| GetDeployment | |
| CreateStage | |
| GetStage |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::ApiGateway::RestApi | RestApiId | |
| AWS::ApiGateway::Resource | ResourceId | |
| AWS::ApiGateway::Method | — | |
| AWS::ApiGateway::Deployment | DeploymentId | |
| AWS::ApiGateway::Stage | StageName |
Cost
API Gateway REST API calls: $3.50 per million calls.
API Gateway v2 (HTTP)
Endpoint: apigateway.{region}.amazonaws.comProtocol: REST/JSON (/v2/ prefix)
Supported operations
| Operation | Notes |
|---|---|
| CreateApi | |
| GetApi | |
| DeleteApi | |
| GetApis | |
| CreateRoute | |
| GetRoute | |
| DeleteRoute | |
| CreateIntegration | |
| GetIntegration | |
| CreateStage | |
| GetStage | |
| CreateAuthorizer |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::ApiGatewayV2::Api | ApiId | |
| AWS::ApiGatewayV2::Route | RouteId | |
| AWS::ApiGatewayV2::Integration | IntegrationId | |
| AWS::ApiGatewayV2::Stage | StageName |
Cost
API Gateway HTTP API calls: $1.00 per million calls.
Step Functions
Endpoint: states.{region}.amazonaws.comProtocol: JSON (X-Amz-Target: AmazonStates.{Op})
Supported operations
| Operation | Notes |
|---|---|
| CreateStateMachine | |
| DescribeStateMachine | |
| DeleteStateMachine | |
| ListStateMachines | |
| StartExecution | Returns RUNNING status immediately |
| DescribeExecution | Transitions to SUCCEEDED on describe |
| StopExecution |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::StepFunctions::StateMachine | StateMachineArn |
Cost
Step Functions state transitions: $0.025 per 1,000 transitions.
ECR
Endpoint: ecr.{region}.amazonaws.comProtocol: JSON (X-Amz-Target: AmazonEC2ContainerRegistry_V1_1_0.{Op})
Supported operations
| Operation | Notes |
|---|---|
| CreateRepository | |
| DescribeRepositories | |
| DeleteRepository | |
| GetAuthorizationToken | Returns base64("AWS:password") |
| PutImage | |
| BatchGetImage |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::ECR::Repository | RepositoryName |
Cost
ECR storage: $0.10 per GB-month. Data transfer is free within the same region.
ECS
Endpoint: ecs.{region}.amazonaws.comProtocol: JSON (X-Amz-Target: AmazonEC2ContainerServiceV20141113.{Op})
Supported operations
| Operation | Notes |
|---|---|
| CreateCluster | |
| DescribeClusters | |
| DeleteCluster | |
| ListClusters | |
| RegisterTaskDefinition | |
| DescribeTaskDefinition | |
| ListTaskDefinitions | |
| CreateService | |
| DescribeServices | |
| UpdateService | |
| DeleteService | |
| RunTask | |
| DescribeTasks | |
| ListTasks | |
| StopTask |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::ECS::Cluster | ClusterName | |
| AWS::ECS::TaskDefinition | TaskDefinitionArn | |
| AWS::ECS::Service | ServiceName |
Cost
ECS Fargate vCPU: $0.04048 per vCPU-hour. Memory: $0.004445 per GB-hour.
Cognito User Pools
Endpoint: cognito-idp.{region}.amazonaws.comProtocol: JSON (X-Amz-Target: AWSCognitoIdentityProviderService.{Op})
Supported operations
| Operation | Notes |
|---|---|
| CreateUserPool | Pool ID format: {region}_{12-char alphanum} |
| DescribeUserPool | |
| DeleteUserPool | |
| ListUserPools | |
| CreateUserPoolClient | |
| DescribeUserPoolClient | |
| DeleteUserPoolClient | |
| AdminCreateUser | |
| AdminGetUser | |
| AdminDeleteUser | |
| InitiateAuth | Returns stub JWT tokens |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::Cognito::UserPool | UserPoolId | |
| AWS::Cognito::UserPoolClient | ClientId |
Cost
Cognito MAUs: first 50,000 free, then $0.0055 per MAU.
Cognito Identity
Endpoint: cognito-identity.{region}.amazonaws.comProtocol: JSON (X-Amz-Target: AWSCognitoIdentityService.{Op})
Supported operations
| Operation | Notes |
|---|---|
| CreateIdentityPool | |
| DescribeIdentityPool | |
| DeleteIdentityPool | |
| GetCredentialsForIdentity | Returns stub temporary credentials |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::Cognito::IdentityPool | IdentityPoolId |
Cost
Cognito Identity operations are free.
Kinesis Data Streams
Endpoint: kinesis.{region}.amazonaws.comProtocol: JSON (X-Amz-Target: Kinesis_20131202.{Op})
Supported operations
| Operation | Notes |
|---|---|
| CreateStream | |
| DescribeStream | |
| DescribeStreamSummary | |
| DeleteStream | |
| ListStreams | |
| PutRecord | |
| PutRecords | Batch put |
| GetShardIterator | Returns base64-encoded cursor |
| GetRecords | Ring buffer of last 10,000 records per shard |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::Kinesis::Stream | StreamName |
Cost
Kinesis shard: $0.015 per shard-hour. PUT payload: $0.014 per million 25KB units.
CloudFront
Endpoint: cloudfront.amazonaws.com (global) Protocol: REST/XML
Supported operations
| Operation | Notes |
|---|---|
| CreateDistribution | Distribution IDs: E{13-char upper alphanum} |
| GetDistribution | |
| UpdateDistribution | |
| DeleteDistribution | |
| ListDistributions | |
| TagResource |
All CloudFront resources are stored under us-east-1 (global service).
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::CloudFront::Distribution | DistributionId |
Cost
CloudFront HTTPS requests: $0.0100 per 10,000 requests (approximate).
RDS
Endpoint: rds.{region}.amazonaws.comProtocol: AWS Query (form-encoded, Action= parameter)
Supported operations
| Operation | Notes |
|---|---|
| CreateDBInstance | |
| DescribeDBInstances | |
| DeleteDBInstance | |
| ModifyDBInstance | |
| CreateDBSnapshot | |
| DescribeDBSnapshots | |
| DeleteDBSnapshot | |
| RestoreDBInstanceFromDBSnapshot |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::RDS::DBInstance | DBInstanceIdentifier |
Cost
RDS db.t3.micro on-demand: $0.017 per hour (approximate for testing purposes).
ElastiCache
Endpoint: elasticache.{region}.amazonaws.comProtocol: AWS Query (form-encoded, Action= parameter)
Supported operations
| Operation | Notes |
|---|---|
| CreateCacheCluster | |
| DescribeCacheClusters | |
| DeleteCacheCluster | |
| CreateReplicationGroup | |
| DescribeReplicationGroups | |
| DeleteReplicationGroup |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::ElastiCache::CacheCluster | CacheClusterId | |
| AWS::ElastiCache::ReplicationGroup | ReplicationGroupId |
Cost
ElastiCache cache.t3.micro: $0.017 per node-hour (approximate).
EFS
Endpoint: elasticfilesystem.{region}.amazonaws.comProtocol: REST/JSON
Supported operations
| Operation | Notes |
|---|---|
| CreateFileSystem | |
| DescribeFileSystems | |
| DeleteFileSystem | |
| CreateMountTarget | |
| DescribeMountTargets | |
| DeleteMountTarget | |
| CreateAccessPoint | |
| DescribeAccessPoints | |
| DeleteAccessPoint |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::EFS::FileSystem | FileSystemId | |
| AWS::EFS::MountTarget | MountTargetId | |
| AWS::EFS::AccessPoint | AccessPointId |
Cost
EFS standard storage: $0.30 per GB-month.
Glue
Endpoint: glue.{region}.amazonaws.comProtocol: JSON (X-Amz-Target: AWSGlue.{Op})
Supported operations
| Operation | Notes |
|---|---|
| CreateDatabase | |
| GetDatabase | |
| DeleteDatabase | |
| GetDatabases | |
| CreateTable | |
| GetTable | |
| DeleteTable | |
| GetTables | |
| CreateJob | |
| GetJob | |
| DeleteJob | |
| GetJobs | |
| StartJobRun | Returns JobRunId |
| GetJobRun | Transitions to SUCCEEDED after describe |
| GetJobRuns |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::Glue::Database | DatabaseName | |
| AWS::Glue::Table | TableName | |
| AWS::Glue::Job | JobName |
Cost
Glue ETL jobs: $0.44 per DPU-hour. Crawlers: $0.44 per DPU-hour.
Cost Explorer
Endpoint: ce.us-east-1.amazonaws.comProtocol: JSON (X-Amz-Target: AWSInsightsIndexService.{Op})
Cost Explorer reads from the Substrate EventStore to return real usage data from your test runs.
Supported operations
| Operation | Notes |
|---|---|
| GetCostAndUsage | Aggregates event costs by service/operation |
| GetCostForecast | Returns stub forecast based on recent usage |
Cost
Cost Explorer API calls: $0.01 per request.
Budgets
Endpoint: budgets.amazonaws.comProtocol: JSON (X-Amz-Target: AWSBudgetServiceGateway.{Op})
Supported operations
| Operation | Notes |
|---|---|
| CreateBudget | DuplicateRecordException if name already exists |
| DescribeBudget | NotFoundException if missing |
| UpdateBudget | |
| DeleteBudget | |
| DescribeBudgets | Lists all budgets for account |
| DescribeBudgetActionsForBudget |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::Budgets::Budget | BudgetName |
Cost
Budgets: first two budgets free, then $0.02 per budget per day.
Health
Endpoint: health.us-east-1.amazonaws.comProtocol: JSON (X-Amz-Target: AWSHealth_20160804.{Op})
The Health plugin is a stub that returns empty valid responses. It exists to allow infrastructure code that calls the Health API to run without errors.
Supported operations
| Operation | Notes |
|---|---|
| DescribeEvents | Returns empty events list |
| DescribeEventDetails | Returns empty details |
| DescribeAffectedEntities | Returns empty entities |
Cost
Health API calls are free.
Organizations
Endpoint: organizations.us-east-1.amazonaws.comProtocol: JSON (X-Amz-Target: Organizations_20161128.{Op})
On the first DescribeOrganization call, the plugin auto-creates an organization and master account.
Supported operations
| Operation | Notes |
|---|---|
| CreateOrganization | |
| DescribeOrganization | Auto-creates org on first call |
| ListRoots | |
| CreateAccount | |
| DescribeAccount | AccountNotFoundException if missing |
| ListAccounts |
Cost
Organizations API calls are free.
SES v2
Endpoint: email.{region}.amazonaws.comProtocol: REST/JSON
Supported operations
| Operation | Notes |
|---|---|
| CreateEmailIdentity | |
| GetEmailIdentity | |
| DeleteEmailIdentity | |
| ListEmailIdentities | |
| SendEmail | Returns stub MessageId; does not deliver |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::SES::EmailIdentity | EmailIdentityName |
Cost
SES outbound email: $0.10 per 1,000 emails.
Kinesis Data Firehose
Endpoint: firehose.{region}.amazonaws.comProtocol: JSON (X-Amz-Target: Firehose_20150804.{Op})
Supported operations
| Operation | Notes |
|---|---|
| CreateDeliveryStream | |
| DescribeDeliveryStream | |
| DeleteDeliveryStream | |
| ListDeliveryStreams | |
| PutRecord | |
| PutRecordBatch |
Betty CFN resource types
| Type | Ref | Notes |
|---|---|---|
| AWS::KinesisFirehose::DeliveryStream | DeliveryStreamName |
Cost
Firehose data ingestion: $0.029 per GB.