From 7d80b79ea37be51cb7509667d75d833ff1b77d0c Mon Sep 17 00:00:00 2001 From: Chengjun Li Date: Tue, 7 Jul 2026 09:36:45 -0700 Subject: [PATCH] feat(network-connector): switch OperatorRole from inline policy to managed policy Replace the inline policy with AWSLambdaNetworkConnectorOperatorPolicy managed policy for the auto-generated OperatorRole. Also fill in sam-docs.json descriptions for MicrovmImage, NetworkConnector, and WebSocketApi resources. --- .../single/test_basic_network_connector.py | 13 +- .../internal/schema_source/sam-docs.json | 152 ++++++------- .../model/network_connector/generators.py | 80 +++---- samtranslator/schema/schema.json | 202 +++++++++--------- schema_source/sam.schema.json | 202 +++++++++--------- .../network_connector/test_generators.py | 9 +- .../output/aws-cn/network_connector.json | 57 +---- .../network_connector_with_intrinsics.json | 57 +---- ...network_connector_with_propagate_tags.json | 57 +---- .../output/aws-us-gov/network_connector.json | 57 +---- .../network_connector_with_intrinsics.json | 57 +---- ...network_connector_with_propagate_tags.json | 57 +---- .../translator/output/network_connector.json | 57 +---- .../network_connector_with_intrinsics.json | 57 +---- ...network_connector_with_propagate_tags.json | 57 +---- 15 files changed, 330 insertions(+), 841 deletions(-) diff --git a/integration/single/test_basic_network_connector.py b/integration/single/test_basic_network_connector.py index d05cb8505..8e7b6dbc7 100644 --- a/integration/single/test_basic_network_connector.py +++ b/integration/single/test_basic_network_connector.py @@ -48,12 +48,13 @@ def test_basic_network_connector(self): principals.extend(service) self.assertIn("lambda.amazonaws.com", principals) - # Verify inline policy - role_policy = iam_client.get_role_policy(RoleName=role_name, PolicyName="NetworkConnectorOperatorPolicy") - statements = role_policy["PolicyDocument"]["Statement"] - all_actions = [s["Action"] for s in statements] - self.assertIn("ec2:CreateNetworkInterface", all_actions) - self.assertIn("ec2:CreateTags", all_actions) + # Verify managed policy + attached = iam_client.list_attached_role_policies(RoleName=role_name) + policy_arns = [p["PolicyArn"] for p in attached["AttachedPolicies"]] + self.assertTrue( + any("AWSLambdaNetworkConnectorOperatorPolicy" in arn for arn in policy_arns), + "OperatorRole should have AWSLambdaNetworkConnectorOperatorPolicy attached", + ) def test_network_connector_with_custom_role(self): """ diff --git a/samtranslator/internal/schema_source/sam-docs.json b/samtranslator/internal/schema_source/sam-docs.json index e0db02d26..1242ad857 100644 --- a/samtranslator/internal/schema_source/sam-docs.json +++ b/samtranslator/internal/schema_source/sam-docs.json @@ -711,22 +711,22 @@ "State": "The state of the schedule. \n*Accepted values:* `DISABLED | ENABLED` \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`State`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-scheduler-schedule.html#cfn-scheduler-schedule-state) property of an `AWS::Scheduler::Schedule` resource." }, "sam-property-websocketapi-authconfiguration": { - "AuthArn": "TODO", - "InvokeRole": "TODO", - "AuthType": "TODO", - "PayloadFormatVersion": "TODO", - "IdentitySource": "TODO", - "Name": "TODO" + "AuthArn": "The ARN of the Lambda function to use for authorization. Required when `AuthType` is `CUSTOM`. \n*Type*: String \n*Required*: Conditional \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", + "InvokeRole": "The ARN of the IAM role that API Gateway assumes when invoking the authorizer function. If not specified, AWS SAM automatically creates a resource-based permission that allows API Gateway to invoke the authorizer function. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`AuthorizerCredentialsArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-authorizercredentialsarn) property of an `AWS::ApiGatewayV2::Authorizer` resource.", + "AuthType": "The type of authorization. Valid values are `NONE`, `AWS_IAM`, or `CUSTOM`. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", + "PayloadFormatVersion": "The format of the payload sent to the authorizer Lambda function. Valid values are `1.0` and `2.0`. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`AuthorizerPayloadFormatVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-authorizerpayloadformatversion) property of an `AWS::ApiGatewayV2::Authorizer` resource.", + "IdentitySource": "The identity source for which authorization is requested. For example, `route.request.header.Authorization`. \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`IdentitySource`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-identitysource) property of an `AWS::ApiGatewayV2::Authorizer` resource.", + "Name": "The name of the authorizer. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-name) property of an `AWS::ApiGatewayV2::Authorizer` resource." }, "sam-property-websocketapi-routeconfiguration": { - "ApiKeyRequired": "TODO", - "FunctionArn": "TODO", - "IntegrationTimeout": "TODO", - "ModelSelectionExpression": "TODO", - "OperationName": "TODO", - "RequestModels": "TODO", - "RequestParameters": "TODO", - "RouteResponseSelectionExpression": "TODO" + "ApiKeyRequired": "Specifies whether an API key is required for this route. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`ApiKeyRequired`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-apikeyrequired) property of an `AWS::ApiGatewayV2::Route` resource.", + "FunctionArn": "The ARN of the Lambda function that handles this route. AWS SAM creates an integration and the necessary permissions for API Gateway to invoke the function. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", + "IntegrationTimeout": "The timeout for the integration, in milliseconds. The maximum value is 29,000 milliseconds (29 seconds). \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`TimeoutInMillis`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-timeoutinmillis) property of an `AWS::ApiGatewayV2::Integration` resource.", + "ModelSelectionExpression": "The model selection expression for the route. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`ModelSelectionExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-modelselectionexpression) property of an `AWS::ApiGatewayV2::Route` resource.", + "OperationName": "The operation name for the route. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`OperationName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-operationname) property of an `AWS::ApiGatewayV2::Route` resource.", + "RequestModels": "The request models for the route. \n*Type*: Json \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`RequestModels`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-requestmodels) property of an `AWS::ApiGatewayV2::Route` resource.", + "RequestParameters": "The request parameters for the route. \n*Type*: Json \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`RequestParameters`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-requestparameters) property of an `AWS::ApiGatewayV2::Route` resource.", + "RouteResponseSelectionExpression": "The route response selection expression for the route. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`RouteResponseSelectionExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-routeresponseselectionexpression) property of an `AWS::ApiGatewayV2::Route` resource." }, "sam-property-statemachine-statemachinetarget": { "Id": "The logical ID of the target. \nThe value of `Id` can include alphanumeric characters, periods (`.`), hyphens (`-`), and underscores (`_`). \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`Id`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-events-rule-target.html#cfn-events-rule-target-id) property of the `AWS::Events::Rule` `Target` data type." @@ -784,56 +784,56 @@ "VpcConfig": "The VPC configuration for the capacity provider. Specifies the VPC subnets and security groups where Amazon EC2 instances will be launched. \n*Type*: [VpcConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-capacityprovider-vpcconfig.html) \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`VpcConfig`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-capacityprovider.html#cfn-lambda-capacityprovider-vpcconfig) property of an `AWS::Lambda::CapacityProvider` resource." }, "sam-resource-microvmimage": { - "Name": "TODO", - "CodeUri": "TODO", - "BaseImageArn": "TODO", - "BuildRoleArn": "TODO", - "BaseImageVersion": "TODO", - "Description": "TODO", - "Tags": "TODO", - "Logging": "TODO", - "EgressNetworkConnectors": "TODO", - "CpuConfigurations": "TODO", - "Resources": "TODO", - "AdditionalOsCapabilities": "TODO", - "Hooks": "TODO", - "EnvironmentVariables": "TODO", - "PropagateTags": "TODO" + "Name": "The name of the MicroVM image. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-name) property of an `AWS::Lambda::MicrovmImage` resource.", + "CodeUri": "The Amazon S3 URI of the zip artifact containing the Dockerfile and application code. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is transformed to the [`CodeArtifact`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-codeartifact) property of an `AWS::Lambda::MicrovmImage` resource. AWS SAM wraps the URI into the `CodeArtifact.Uri` structure.", + "BaseImageArn": "The ARN of the base MicroVM image to build from. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`BaseImageArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-baseimagearn) property of an `AWS::Lambda::MicrovmImage` resource.", + "BuildRoleArn": "The ARN of the IAM role that the MicroVM build service assumes to download your code artifact from Amazon S3 and write build logs. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`BuildRoleArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-buildrolearn) property of an `AWS::Lambda::MicrovmImage` resource. This is required in CloudFormation but not in AWS SAM. If you don't specify a role, AWS SAM creates one with a logical ID of `BuildRole`. If your code artifact is encrypted with a customer managed key in AWS KMS, you must provide your own role with the appropriate `kms:Decrypt` permission.", + "BaseImageVersion": "The version of the base MicroVM image to use. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`BaseImageVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-baseimageversion) property of an `AWS::Lambda::MicrovmImage` resource.", + "Description": "A description of the MicroVM image. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-description) property of an `AWS::Lambda::MicrovmImage` resource.", + "Tags": "A map of key-value pairs that specifies the tags added to this MicroVM image. \n*Type*: Map \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-tags) property of an `AWS::Lambda::MicrovmImage` resource. The `Tags` property in AWS SAM consists of key-value pairs (whereas in CloudFormation this property consists of a list of `Tag` objects). Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this resource, and to the default roles that are generated for it.", + "Logging": "Configuration for MicroVM logging output. Specify exactly one: `CloudWatch` to enable CloudWatch logging, or `Disabled` to turn off logging. \n*Type*: [Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-logging.html) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Logging`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-logging) property of an `AWS::Lambda::MicrovmImage` resource.", + "EgressNetworkConnectors": "The list of egress network connector ARNs available to the MicroVM at runtime. \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`EgressNetworkConnectors`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-egressnetworkconnectors) property of an `AWS::Lambda::MicrovmImage` resource.", + "CpuConfigurations": "A list of [CpuConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-cpuconfiguration.html) objects that specify the supported CPU architectures for the MicroVM. If you don't specify a value, the service uses the default CPU architecture. \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`CpuConfigurations`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-cpuconfigurations) property of an `AWS::Lambda::MicrovmImage` resource.", + "Resources": "A list of [Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-resources.html) objects that specify the resource requirements for the MicroVM. \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Resources`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-resources) property of an `AWS::Lambda::MicrovmImage` resource.", + "AdditionalOsCapabilities": "Additional OS capabilities to grant to the MicroVM runtime environment. If you don't specify a value, the service grants no additional OS capabilities. \n*Valid values*: `ALL` \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`AdditionalOsCapabilities`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-additionaloscapabilities) property of an `AWS::Lambda::MicrovmImage` resource.", + "Hooks": "Lifecycle hook configuration for MicroVMs and MicroVM images. \n*Type*: [Hooks](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-hooks.html) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Hooks`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-hooks) property of an `AWS::Lambda::MicrovmImage` resource.", + "EnvironmentVariables": "Environment variables set in the MicroVM runtime environment. \n*Type*: Map \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`EnvironmentVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-environmentvariables) property of an `AWS::Lambda::MicrovmImage` resource. In AWS SAM, specify as a map (for example, `KEY: value`). AWS SAM converts to the CloudFormation array format `[{Key: KEY, Value: value}]`.", + "PropagateTags": "Specifies whether to pass tags from the `Tags` property to generated resources, such as the auto-generated build role. \n*Type*: Boolean \n*Required*: No \n*Default*: `False` \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent." }, "sam-property-microvmimage-hooks": { - "Port": "TODO", - "MicrovmHooks": "TODO", - "MicrovmImageHooks": "TODO" + "Port": "The port on which the application listens for lifecycle hook invocations. \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Port`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-hooks.html#cfn-lambda-microvmimage-hooks-port) property of the `Hooks` property of an `AWS::Lambda::MicrovmImage` resource.", + "MicrovmHooks": "Lifecycle hooks called at MicroVM instance lifecycle transitions (run, resume, suspend, terminate). \n*Type*: [MicrovmHooks](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-microvmhooks.html) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`MicrovmHooks`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-hooks.html#cfn-lambda-microvmimage-hooks-microvmhooks) property of the `Hooks` property of an `AWS::Lambda::MicrovmImage` resource.", + "MicrovmImageHooks": "Lifecycle hooks called during MicroVM image build (ready, validate). \n*Type*: [MicrovmImageHooks](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-microvmimagehooks.html) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`MicrovmImageHooks`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-hooks.html#cfn-lambda-microvmimage-hooks-microvmimagehooks) property of the `Hooks` property of an `AWS::Lambda::MicrovmImage` resource." }, "sam-property-microvmimage-microvmhooks": { - "Run": "TODO", - "RunTimeoutInSeconds": "TODO", - "Resume": "TODO", - "ResumeTimeoutInSeconds": "TODO", - "Suspend": "TODO", - "SuspendTimeoutInSeconds": "TODO", - "Terminate": "TODO", - "TerminateTimeoutInSeconds": "TODO" + "Run": "Specifies whether the run hook is enabled. The run hook is called when a MicroVM instance is launched from a snapshot. \n*Valid values*: `ENABLED`, `DISABLED` \n*Type*: String \n*Required*: No \n*Default*: `DISABLED` \n*CloudFormation compatibility*: This property is passed directly to the `Run` property of `MicrovmHooks`.", + "RunTimeoutInSeconds": "The timeout in seconds for the run hook. \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `RunTimeoutInSeconds` property of `MicrovmHooks`.", + "Resume": "Specifies whether the resume hook is enabled. The resume hook is called when a MicroVM resumes from an in-place suspend. \n*Valid values*: `ENABLED`, `DISABLED` \n*Type*: String \n*Required*: No \n*Default*: `DISABLED` \n*CloudFormation compatibility*: This property is passed directly to the `Resume` property of `MicrovmHooks`.", + "ResumeTimeoutInSeconds": "The timeout in seconds for the resume hook. \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `ResumeTimeoutInSeconds` property of `MicrovmHooks`.", + "Suspend": "Specifies whether the suspend hook is enabled. The suspend hook is called before a MicroVM is suspended. \n*Valid values*: `ENABLED`, `DISABLED` \n*Type*: String \n*Required*: No \n*Default*: `DISABLED` \n*CloudFormation compatibility*: This property is passed directly to the `Suspend` property of `MicrovmHooks`.", + "SuspendTimeoutInSeconds": "The timeout in seconds for the suspend hook. \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `SuspendTimeoutInSeconds` property of `MicrovmHooks`.", + "Terminate": "Specifies whether the terminate hook is enabled. The terminate hook is called before a MicroVM is terminated. \n*Valid values*: `ENABLED`, `DISABLED` \n*Type*: String \n*Required*: No \n*Default*: `DISABLED` \n*CloudFormation compatibility*: This property is passed directly to the `Terminate` property of `MicrovmHooks`.", + "TerminateTimeoutInSeconds": "The timeout in seconds for the terminate hook. \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `TerminateTimeoutInSeconds` property of `MicrovmHooks`." }, "sam-property-microvmimage-microvmimagehooks": { - "Ready": "TODO", - "ReadyTimeoutInSeconds": "TODO", - "Validate": "TODO", - "ValidateTimeoutInSeconds": "TODO" + "Ready": "Specifies whether the ready hook is enabled. The ready hook is called during image build to confirm the application has started successfully. \n*Valid values*: `ENABLED`, `DISABLED` \n*Type*: String \n*Required*: No \n*Default*: `DISABLED` \n*CloudFormation compatibility*: This property is passed directly to the `Ready` property of `MicrovmImageHooks`.", + "ReadyTimeoutInSeconds": "The timeout in seconds for the ready hook. \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `ReadyTimeoutInSeconds` property of `MicrovmImageHooks`.", + "Validate": "Specifies whether the validate hook is enabled. The validate hook is called during image build to validate the application. \n*Valid values*: `ENABLED`, `DISABLED` \n*Type*: String \n*Required*: No \n*Default*: `DISABLED` \n*CloudFormation compatibility*: This property is passed directly to the `Validate` property of `MicrovmImageHooks`.", + "ValidateTimeoutInSeconds": "The timeout in seconds for the validate hook. \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `ValidateTimeoutInSeconds` property of `MicrovmImageHooks`." }, "sam-property-microvmimage-logging": { - "Disabled": "TODO", - "CloudWatch": "TODO" + "Disabled": "Set to `true` to disable logging for the MicroVM. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Disabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-logging.html#cfn-lambda-microvmimage-logging-disabled) property of the `Logging` property of an `AWS::Lambda::MicrovmImage` resource.", + "CloudWatch": "CloudWatch logging configuration for the MicroVM. \n*Type*: [CloudWatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-cloudwatchlogging.html) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`CloudWatch`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-logging.html#cfn-lambda-microvmimage-logging-cloudwatch) property of the `Logging` property of an `AWS::Lambda::MicrovmImage` resource." }, "sam-property-microvmimage-cloudwatchlogging": { - "LogGroup": "TODO", - "LogStream": "TODO" + "LogGroup": "The CloudWatch log group name for MicroVM logs. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `LogGroup` property of the `CloudWatch` logging configuration.", + "LogStream": "The CloudWatch log stream name for MicroVM logs. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `LogStream` property of the `CloudWatch` logging configuration." }, "sam-property-microvmimage-resource": { - "MinimumMemoryInMiB": "TODO" + "MinimumMemoryInMiB": "The minimum memory in MiB for the MicroVM. \n*Type*: Integer \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`MinimumMemoryInMiB`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-resources.html#cfn-lambda-microvmimage-resources-minimummemoryinmib) property of a `Resources` item of an `AWS::Lambda::MicrovmImage` resource." }, "sam-property-microvmimage-cpuconfiguration": { - "Architecture": "TODO" + "Architecture": "The CPU architecture for the MicroVM. \n*Valid values*: `ARM_64` \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`Architecture`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-cpuconfiguration.html#cfn-lambda-microvmimage-cpuconfiguration-architecture) property of a `CpuConfigurations` item of an `AWS::Lambda::MicrovmImage` resource." }, "sam-resource-connector": { "Destination": "The destination resource. \n*Type*: [ ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \\$1 List of [ResourceReference](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-connector-resourcereference.html) \n*Required*: Yes \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an CloudFormation equivalent.", @@ -964,36 +964,36 @@ "UseAliasAsEventTarget": "Indicate whether or not to pass the alias, created by using the `AutoPublishAlias` property, to the events source's target defined with [Events](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/#sam-statemachine-events.html#sam-statemachine-events)\\. \nSpecify `True` to use the alias as the events' target\\. \n*Type*: Boolean \n*Required*: No \n*Default*: `False` \n*AWS CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent\\." }, "sam-resource-websocketapi": { - "ApiKeySelectionExpression": "TODO", - "AccessLogSettings": "TODO", - "Auth": "TODO", - "DefaultRouteSettings": "TODO", - "Description": "TODO", - "DisableExecuteApiEndpoint": "TODO", - "DisableSchemaValidation": "TODO", - "Domain": "TODO", - "FailOnWarnings": "TODO", - "IpAddressType": "TODO", - "Name": "TODO", - "PropagateTags": "TODO", - "Routes": "TODO", - "RouteSelectionExpression": "TODO", - "RouteSettings": "TODO", - "StageName": "TODO", - "StageVariables": "TODO", - "Tags": "TODO" + "ApiKeySelectionExpression": "An API key selection expression. For more information, see [API Key Selection Expressions](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) in the *API Gateway Developer Guide*. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`ApiKeySelectionExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-apikeyselectionexpression) property of an `AWS::ApiGatewayV2::Api` resource.", + "AccessLogSettings": "The settings for access logging in a stage. \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`AccessLogSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) property of an `AWS::ApiGatewayV2::Stage` resource.", + "Auth": "Configures authorization for controlling access to your WebSocket API. Authorization is applied to the `$connect` route. \n*Type*: [WebSocketApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-websocketapi-websocketapiauth.html) \n*Required*: No \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", + "DefaultRouteSettings": "The default route settings for this WebSocket API. These settings apply to all routes unless overridden by the `RouteSettings` property for certain routes. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`DefaultRouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-defaultroutesettings) property of an `AWS::ApiGatewayV2::Stage` resource.", + "Description": "A description of the WebSocket API. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-description) property of an `AWS::ApiGatewayV2::Api` resource.", + "DisableExecuteApiEndpoint": "Specifies whether clients can invoke your API by using the default `execute-api` endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`DisableExecuteApiEndpoint`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableexecuteapiendpoint) property of an `AWS::ApiGatewayV2::Api` resource.", + "DisableSchemaValidation": "Avoid validating models when creating a deployment. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`DisableSchemaValidation`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableschemavalidation) property of an `AWS::ApiGatewayV2::Api` resource.", + "Domain": "Configures a custom domain for this WebSocket API. \n*Type*: [WebSocketApiDomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-websocketapi-websocketapidomainconfiguration.html) \n*Required*: No \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", + "FailOnWarnings": "Specifies whether to roll back the API creation when a warning is encountered. When set to `true`, the API is rolled back if a warning is encountered. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`FailOnWarnings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-failonwarnings) property of an `AWS::ApiGatewayV2::Api` resource.", + "IpAddressType": "The IP address type for the API. Valid values are `ipv4` for IPv4 only and `dualstack` for IPv4 and IPv6. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`IpAddressType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-ipaddresstype) property of an `AWS::ApiGatewayV2::Api` resource.", + "Name": "A name for the WebSocket API. If you don't specify a name, AWS SAM generates a name for you. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-name) property of an `AWS::ApiGatewayV2::Api` resource.", + "PropagateTags": "If `true`, AWS SAM adds the `Tags` property to the `AWS::ApiGatewayV2::Stage` and `AWS::ApiGatewayV2::DomainName` resources that AWS SAM generates. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", + "Routes": "The route configurations for this WebSocket API. Routes define how messages are routed to Lambda functions. Each route consists of a route key and a Lambda function ARN. WebSocket APIs support three predefined routes: `$connect`, `$disconnect`, and `$default`. You can also define custom routes. \n*Type*: [RouteConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-websocketapi-routeconfiguration.html) \n*Required*: Yes \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", + "RouteSelectionExpression": "The route selection expression for the WebSocket API. A common value is `$request.body.action`, which routes messages based on an `action` field in the message body. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`RouteSelectionExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-routeselectionexpression) property of an `AWS::ApiGatewayV2::Api` resource.", + "RouteSettings": "The route settings for this WebSocket API. These settings override the `DefaultRouteSettings` for specific routes. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource.", + "StageName": "The name of the API stage. If you don't specify a name, AWS SAM uses `default` as the stage name. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`StageName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagename) property of an `AWS::ApiGatewayV2::Stage` resource.", + "StageVariables": "A map that defines the stage variables. Variable names can have alphanumeric and underscore characters, and the values must match `[A-Za-z0-9-._~:/?#&=,]+`. \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`StageVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) property of an `AWS::ApiGatewayV2::Stage` resource.", + "Tags": "A map (string to string) that specifies the tags to be added to this WebSocket API. For details about valid keys and values for tags, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *CloudFormation User Guide*. \n*Type*: Map \n*Required*: No \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent." }, "sam-resource-networkconnector": { - "Name": "TODO", - "VpcConfig": "TODO", - "OperatorRole": "TODO", - "Tags": "TODO", - "PropagateTags": "TODO" + "Name": "The name of the network connector. The name must be unique within your account and Region. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-networkconnector.html#cfn-lambda-networkconnector-name) property of an `AWS::Lambda::NetworkConnector` resource.", + "VpcConfig": "The VPC egress configuration for the network connector, including the subnets, security groups, and network protocol for elastic network interface (ENI) provisioning. \n*Type*: [VpcConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-networkconnector-vpcconfig.html) \n*Required*: Yes \n*CloudFormation compatibility*: This property is transformed to the [`Configuration.VpcEgressConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-networkconnector.html#cfn-lambda-networkconnector-configuration) property of an `AWS::Lambda::NetworkConnector` resource. AWS SAM also injects `AssociatedComputeResourceTypes: [MicroVm]` automatically.", + "OperatorRole": "The ARN of the IAM role that the network connector service assumes to create and manage elastic network interfaces (ENIs). \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`OperatorRole`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-networkconnector.html#cfn-lambda-networkconnector-operatorrole) property of an `AWS::Lambda::NetworkConnector` resource. This is required in CloudFormation but not in AWS SAM. If you don't specify a role, AWS SAM creates one with a logical ID of `OperatorRole`.", + "Tags": "A map of key-value pairs that specifies the tags added to this network connector. \n*Type*: Map \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-networkconnector.html#cfn-lambda-networkconnector-tags) property of an `AWS::Lambda::NetworkConnector` resource. The `Tags` property in AWS SAM consists of key-value pairs (whereas in CloudFormation this property consists of a list of `Tag` objects). Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this network connector, and to the default roles that are generated for it.", + "PropagateTags": "Specifies whether to pass tags from the `Tags` property to generated resources, such as the auto-generated operator role. \n*Type*: Boolean \n*Required*: No \n*Default*: `False` \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent." }, "sam-property-networkconnector-vpcconfig": { - "SubnetIds": "TODO", - "SecurityGroupIds": "TODO", - "NetworkProtocol": "TODO" + "SubnetIds": "A list of subnet IDs where the service provisions ENIs for VPC egress connectivity. \n*Type*: List \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`SubnetIds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-networkconnector-vpcegressconfiguration.html#cfn-lambda-networkconnector-vpcegressconfiguration-subnetids) property of `Configuration.VpcEgressConfiguration` of an `AWS::Lambda::NetworkConnector` resource.", + "SecurityGroupIds": "A list of security group IDs to associate with the elastic network interfaces (ENIs). \n*Type*: List \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`SecurityGroupIds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-networkconnector-vpcegressconfiguration.html#cfn-lambda-networkconnector-vpcegressconfiguration-securitygroupids) property of `Configuration.VpcEgressConfiguration` of an `AWS::Lambda::NetworkConnector` resource.", + "NetworkProtocol": "The network protocol for the VPC egress connection. \n*Valid values*: `IPv4`, `DualStack` \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`NetworkProtocol`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-networkconnector-vpcegressconfiguration.html#cfn-lambda-networkconnector-vpcegressconfiguration-networkprotocol) property of `Configuration.VpcEgressConfiguration` of an `AWS::Lambda::NetworkConnector` resource." } } } \ No newline at end of file diff --git a/samtranslator/model/network_connector/generators.py b/samtranslator/model/network_connector/generators.py index 546de6b0e..1a6d0e977 100644 --- a/samtranslator/model/network_connector/generators.py +++ b/samtranslator/model/network_connector/generators.py @@ -5,10 +5,13 @@ from typing import Any from samtranslator.model import Resource -from samtranslator.model.iam import IAMRole, IAMRolePolicies +from samtranslator.model.iam import IAMRolePolicies from samtranslator.model.intrinsics import fnGetAtt from samtranslator.model.network_connector.resources import LambdaNetworkConnector +from samtranslator.model.resource_policies import ResourcePolicies +from samtranslator.model.role_utils import construct_role_for_resource from samtranslator.model.tags.resource_tagging import get_tag_list +from samtranslator.translator.arn_generator import ArnGenerator class NetworkConnectorGenerator: @@ -72,65 +75,30 @@ def _create_network_connector(self) -> LambdaNetworkConnector: return connector - def _create_operator_role(self) -> IAMRole: + def _create_operator_role(self) -> Resource: role_logical_id = f"{self.logical_id}OperatorRole" - assume_role_policy = IAMRolePolicies.construct_assume_role_policy_for_service_principal("lambda.amazonaws.com") - - role = IAMRole(role_logical_id, attributes=self.passthrough_resource_attributes) - role.AssumeRolePolicyDocument = assume_role_policy - role.Policies = [ - { - "PolicyName": "NetworkConnectorOperatorPolicy", - "PolicyDocument": { - "Version": "2012-10-17", - "Statement": [ - { - "Sid": "AllowCreateEniInAnySubnet", - "Effect": "Allow", - "Action": "ec2:CreateNetworkInterface", - "Resource": {"Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:subnet/*"}, - }, - { - "Sid": "AllowCreateEniWithSecurityGroups", - "Effect": "Allow", - "Action": "ec2:CreateNetworkInterface", - "Resource": {"Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:security-group/*"}, - }, - { - "Sid": "AllowCreateEniWithLambdaTagKeys", - "Effect": "Allow", - "Action": "ec2:CreateNetworkInterface", - "Resource": {"Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:network-interface/*"}, - "Condition": { - "ForAllValues:StringEquals": { - "aws:TagKeys": [ - "aws:lambda:networkConnectorName", - "aws:lambda:networkConnectorId", - ] - } - }, - }, - { - "Sid": "TagENIOnCreate", - "Effect": "Allow", - "Action": "ec2:CreateTags", - "Resource": {"Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:network-interface/*"}, - "Condition": { - "StringEquals": { - "ec2:CreateAction": "CreateNetworkInterface", - "ec2:ManagedResourceOperator": "network-connectors.lambda.amazonaws.com", - } - }, - }, - ], - }, - } - ] + assume_role_policy_document = IAMRolePolicies.construct_assume_role_policy_for_service_principal( + "lambda.amazonaws.com" + ) + + tags = self._transform_tags() + + managed_policy_arns = [ArnGenerator.generate_aws_managed_policy_arn("AWSLambdaNetworkConnectorOperatorPolicy")] + + operator_role = construct_role_for_resource( + resource_logical_id=self.logical_id, + attributes=self.passthrough_resource_attributes, + managed_policy_map=None, + assume_role_policy_document=assume_role_policy_document, + resource_policies=ResourcePolicies({}), + managed_policy_arns=managed_policy_arns, + tags=tags, + ) - role.Tags = self._transform_tags() + operator_role.logical_id = role_logical_id - return role + return operator_role def _transform_tags(self, tags: dict[str, Any] | None = None) -> list[dict[str, str]]: tags_dict = (tags or {}).copy() diff --git a/samtranslator/schema/schema.json b/samtranslator/schema/schema.json index 8d359c70d..98f334781 100644 --- a/samtranslator/schema/schema.json +++ b/samtranslator/schema/schema.json @@ -364741,7 +364741,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The ARN of the Lambda function to use for authorization. Required when `AuthType` is `CUSTOM`. \n*Type*: String \n*Required*: Conditional \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "AuthArn" }, "AuthType": { @@ -364750,7 +364750,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The type of authorization. Valid values are `NONE`, `AWS_IAM`, or `CUSTOM`. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "AuthType" }, "IdentitySource": { @@ -364759,7 +364759,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The identity source for which authorization is requested. For example, `route.request.header.Authorization`. \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`IdentitySource`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-identitysource) property of an `AWS::ApiGatewayV2::Authorizer` resource.", "title": "IdentitySource" }, "InvokeRole": { @@ -364771,7 +364771,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The ARN of the IAM role that API Gateway assumes when invoking the authorizer function. If not specified, AWS SAM automatically creates a resource-based permission that allows API Gateway to invoke the authorizer function. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`AuthorizerCredentialsArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-authorizercredentialsarn) property of an `AWS::ApiGatewayV2::Authorizer` resource.", "title": "InvokeRole" }, "Name": { @@ -364780,7 +364780,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The name of the authorizer. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-name) property of an `AWS::ApiGatewayV2::Authorizer` resource.", "title": "Name" } }, @@ -364929,7 +364929,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The CloudWatch log group name for MicroVM logs. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `LogGroup` property of the `CloudWatch` logging configuration.", "title": "LogGroup" }, "LogStream": { @@ -364941,7 +364941,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The CloudWatch log stream name for MicroVM logs. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `LogStream` property of the `CloudWatch` logging configuration.", "title": "LogStream" } }, @@ -365256,7 +365256,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The CPU architecture for the MicroVM. \n*Valid values*: `ARM_64` \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`Architecture`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-cpuconfiguration.html#cfn-lambda-microvmimage-cpuconfiguration-architecture) property of a `CpuConfigurations` item of an `AWS::Lambda::MicrovmImage` resource.", "title": "Architecture" } }, @@ -367504,7 +367504,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether the resume hook is enabled. The resume hook is called when a MicroVM resumes from an in-place suspend. \n*Valid values*: `ENABLED`, `DISABLED` \n*Type*: String \n*Required*: No \n*Default*: `DISABLED` \n*CloudFormation compatibility*: This property is passed directly to the `Resume` property of `MicrovmHooks`.", "title": "Resume" }, "ResumeTimeoutInSeconds": { @@ -367516,7 +367516,7 @@ "type": "integer" } ], - "markdownDescription": "TODO", + "markdownDescription": "The timeout in seconds for the resume hook. \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `ResumeTimeoutInSeconds` property of `MicrovmHooks`.", "title": "ResumeTimeoutInSeconds" }, "Run": { @@ -367532,7 +367532,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether the run hook is enabled. The run hook is called when a MicroVM instance is launched from a snapshot. \n*Valid values*: `ENABLED`, `DISABLED` \n*Type*: String \n*Required*: No \n*Default*: `DISABLED` \n*CloudFormation compatibility*: This property is passed directly to the `Run` property of `MicrovmHooks`.", "title": "Run" }, "RunTimeoutInSeconds": { @@ -367544,7 +367544,7 @@ "type": "integer" } ], - "markdownDescription": "TODO", + "markdownDescription": "The timeout in seconds for the run hook. \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `RunTimeoutInSeconds` property of `MicrovmHooks`.", "title": "RunTimeoutInSeconds" }, "Suspend": { @@ -367560,7 +367560,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether the suspend hook is enabled. The suspend hook is called before a MicroVM is suspended. \n*Valid values*: `ENABLED`, `DISABLED` \n*Type*: String \n*Required*: No \n*Default*: `DISABLED` \n*CloudFormation compatibility*: This property is passed directly to the `Suspend` property of `MicrovmHooks`.", "title": "Suspend" }, "SuspendTimeoutInSeconds": { @@ -367572,7 +367572,7 @@ "type": "integer" } ], - "markdownDescription": "TODO", + "markdownDescription": "The timeout in seconds for the suspend hook. \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `SuspendTimeoutInSeconds` property of `MicrovmHooks`.", "title": "SuspendTimeoutInSeconds" }, "Terminate": { @@ -367588,7 +367588,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether the terminate hook is enabled. The terminate hook is called before a MicroVM is terminated. \n*Valid values*: `ENABLED`, `DISABLED` \n*Type*: String \n*Required*: No \n*Default*: `DISABLED` \n*CloudFormation compatibility*: This property is passed directly to the `Terminate` property of `MicrovmHooks`.", "title": "Terminate" }, "TerminateTimeoutInSeconds": { @@ -367600,7 +367600,7 @@ "type": "integer" } ], - "markdownDescription": "TODO", + "markdownDescription": "The timeout in seconds for the terminate hook. \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `TerminateTimeoutInSeconds` property of `MicrovmHooks`.", "title": "TerminateTimeoutInSeconds" } }, @@ -367623,7 +367623,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether the ready hook is enabled. The ready hook is called during image build to confirm the application has started successfully. \n*Valid values*: `ENABLED`, `DISABLED` \n*Type*: String \n*Required*: No \n*Default*: `DISABLED` \n*CloudFormation compatibility*: This property is passed directly to the `Ready` property of `MicrovmImageHooks`.", "title": "Ready" }, "ReadyTimeoutInSeconds": { @@ -367635,7 +367635,7 @@ "type": "integer" } ], - "markdownDescription": "TODO", + "markdownDescription": "The timeout in seconds for the ready hook. \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `ReadyTimeoutInSeconds` property of `MicrovmImageHooks`.", "title": "ReadyTimeoutInSeconds" }, "Validate": { @@ -367651,7 +367651,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether the validate hook is enabled. The validate hook is called during image build to validate the application. \n*Valid values*: `ENABLED`, `DISABLED` \n*Type*: String \n*Required*: No \n*Default*: `DISABLED` \n*CloudFormation compatibility*: This property is passed directly to the `Validate` property of `MicrovmImageHooks`.", "title": "Validate" }, "ValidateTimeoutInSeconds": { @@ -367663,7 +367663,7 @@ "type": "integer" } ], - "markdownDescription": "TODO", + "markdownDescription": "The timeout in seconds for the validate hook. \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `ValidateTimeoutInSeconds` property of `MicrovmImageHooks`.", "title": "ValidateTimeoutInSeconds" } }, @@ -368051,7 +368051,7 @@ "type": "integer" } ], - "markdownDescription": "TODO", + "markdownDescription": "The minimum memory in MiB for the MicroVM. \n*Type*: Integer \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`MinimumMemoryInMiB`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-resources.html#cfn-lambda-microvmimage-resources-minimummemoryinmib) property of a `Resources` item of an `AWS::Lambda::MicrovmImage` resource.", "title": "MinimumMemoryInMiB" } }, @@ -368901,7 +368901,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether an API key is required for this route. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`ApiKeyRequired`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-apikeyrequired) property of an `AWS::ApiGatewayV2::Route` resource.", "title": "ApiKeyRequired" }, "FunctionArn": { @@ -368913,7 +368913,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The ARN of the Lambda function that handles this route. AWS SAM creates an integration and the necessary permissions for API Gateway to invoke the function. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "FunctionArn" }, "IntegrationTimeout": { @@ -368922,7 +368922,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The timeout for the integration, in milliseconds. The maximum value is 29,000 milliseconds (29 seconds). \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`TimeoutInMillis`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-timeoutinmillis) property of an `AWS::ApiGatewayV2::Integration` resource.", "title": "IntegrationTimeout" }, "ModelSelectionExpression": { @@ -368931,7 +368931,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The model selection expression for the route. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`ModelSelectionExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-modelselectionexpression) property of an `AWS::ApiGatewayV2::Route` resource.", "title": "ModelSelectionExpression" }, "OperationName": { @@ -368940,7 +368940,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The operation name for the route. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`OperationName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-operationname) property of an `AWS::ApiGatewayV2::Route` resource.", "title": "OperationName" }, "RequestModels": { @@ -368949,7 +368949,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The request models for the route. \n*Type*: Json \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`RequestModels`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-requestmodels) property of an `AWS::ApiGatewayV2::Route` resource.", "title": "RequestModels" }, "RequestParameters": { @@ -368958,7 +368958,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The request parameters for the route. \n*Type*: Json \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`RequestParameters`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-requestparameters) property of an `AWS::ApiGatewayV2::Route` resource.", "title": "RequestParameters" }, "RouteResponseSelectionExpression": { @@ -368967,7 +368967,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The route response selection expression for the route. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`RouteResponseSelectionExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-routeresponseselectionexpression) property of an `AWS::ApiGatewayV2::Route` resource.", "title": "RouteResponseSelectionExpression" } }, @@ -372750,7 +372750,7 @@ } ] }, - "markdownDescription": "TODO", + "markdownDescription": "Additional OS capabilities to grant to the MicroVM runtime environment. If you don't specify a value, the service grants no additional OS capabilities. \n*Valid values*: `ALL` \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`AdditionalOsCapabilities`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-additionaloscapabilities) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "AdditionalOsCapabilities", "type": "array" }, @@ -372763,7 +372763,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The ARN of the base MicroVM image to build from. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`BaseImageArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-baseimagearn) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "BaseImageArn" }, "BaseImageVersion": { @@ -372775,7 +372775,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The version of the base MicroVM image to use. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`BaseImageVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-baseimageversion) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "BaseImageVersion" }, "BuildRoleArn": { @@ -372787,14 +372787,14 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The ARN of the IAM role that the MicroVM build service assumes to download your code artifact from Amazon S3 and write build logs. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`BuildRoleArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-buildrolearn) property of an `AWS::Lambda::MicrovmImage` resource. This is required in CloudFormation but not in AWS SAM. If you don't specify a role, AWS SAM creates one with a logical ID of `BuildRole`. If your code artifact is encrypted with a customer managed key in AWS KMS, you must provide your own role with the appropriate `kms:Decrypt` permission.", "title": "BuildRoleArn" }, "CpuConfigurations": { "items": { "$ref": "#/definitions/CpuConfiguration" }, - "markdownDescription": "TODO", + "markdownDescription": "A list of [CpuConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-cpuconfiguration.html) objects that specify the supported CPU architectures for the MicroVM. If you don't specify a value, the service uses the default CPU architecture. \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`CpuConfigurations`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-cpuconfigurations) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "CpuConfigurations", "type": "array" }, @@ -372809,12 +372809,12 @@ } ] }, - "markdownDescription": "TODO", + "markdownDescription": "The list of egress network connector ARNs available to the MicroVM at runtime. \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`EgressNetworkConnectors`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-egressnetworkconnectors) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "EgressNetworkConnectors", "type": "array" }, "EnvironmentVariables": { - "markdownDescription": "TODO", + "markdownDescription": "Environment variables set in the MicroVM runtime environment. \n*Type*: Map \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`EnvironmentVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-environmentvariables) property of an `AWS::Lambda::MicrovmImage` resource. In AWS SAM, specify as a map (for example, `KEY: value`). AWS SAM converts to the CloudFormation array format `[{Key: KEY, Value: value}]`.", "title": "EnvironmentVariables", "type": "object" }, @@ -372824,7 +372824,7 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_microvmimage__Hooks" } ], - "markdownDescription": "TODO", + "markdownDescription": "Lifecycle hook configuration for MicroVMs and MicroVM images. \n*Type*: [Hooks](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-hooks.html) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Hooks`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-hooks) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "Hooks" }, "Logging": { @@ -372833,11 +372833,11 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_microvmimage__Logging" } ], - "markdownDescription": "TODO", + "markdownDescription": "Configuration for MicroVM logging output. Specify exactly one: `CloudWatch` to enable CloudWatch logging, or `Disabled` to turn off logging. \n*Type*: [Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-logging.html) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Logging`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-logging) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "Logging" }, "PropagateTags": { - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether to pass tags from the `Tags` property to generated resources, such as the auto-generated build role. \n*Type*: Boolean \n*Required*: No \n*Default*: `False` \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "PropagateTags", "type": "boolean" }, @@ -372845,12 +372845,12 @@ "items": { "$ref": "#/definitions/ResourceSpec" }, - "markdownDescription": "TODO", + "markdownDescription": "A list of [Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-resources.html) objects that specify the resource requirements for the MicroVM. \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Resources`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-resources) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "Resources", "type": "array" }, "Tags": { - "markdownDescription": "TODO", + "markdownDescription": "A map of key-value pairs that specifies the tags added to this MicroVM image. \n*Type*: Map \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-tags) property of an `AWS::Lambda::MicrovmImage` resource. The `Tags` property in AWS SAM consists of key-value pairs (whereas in CloudFormation this property consists of a list of `Tag` objects). Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this resource, and to the default roles that are generated for it.", "title": "Tags", "type": "object" } @@ -372867,7 +372867,7 @@ "$ref": "#/definitions/MicrovmHooks" } ], - "markdownDescription": "TODO", + "markdownDescription": "Lifecycle hooks called at MicroVM instance lifecycle transitions (run, resume, suspend, terminate). \n*Type*: [MicrovmHooks](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-microvmhooks.html) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`MicrovmHooks`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-hooks.html#cfn-lambda-microvmimage-hooks-microvmhooks) property of the `Hooks` property of an `AWS::Lambda::MicrovmImage` resource.", "title": "MicrovmHooks" }, "MicrovmImageHooks": { @@ -372876,7 +372876,7 @@ "$ref": "#/definitions/MicrovmImageHooks" } ], - "markdownDescription": "TODO", + "markdownDescription": "Lifecycle hooks called during MicroVM image build (ready, validate). \n*Type*: [MicrovmImageHooks](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-microvmimagehooks.html) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`MicrovmImageHooks`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-hooks.html#cfn-lambda-microvmimage-hooks-microvmimagehooks) property of the `Hooks` property of an `AWS::Lambda::MicrovmImage` resource.", "title": "MicrovmImageHooks" }, "Port": { @@ -372888,7 +372888,7 @@ "type": "integer" } ], - "markdownDescription": "TODO", + "markdownDescription": "The port on which the application listens for lifecycle hook invocations. \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Port`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-hooks.html#cfn-lambda-microvmimage-hooks-port) property of the `Hooks` property of an `AWS::Lambda::MicrovmImage` resource.", "title": "Port" } }, @@ -372904,11 +372904,11 @@ "$ref": "#/definitions/CloudWatchLogging" } ], - "markdownDescription": "TODO", + "markdownDescription": "CloudWatch logging configuration for the MicroVM. \n*Type*: [CloudWatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-cloudwatchlogging.html) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`CloudWatch`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-logging.html#cfn-lambda-microvmimage-logging-cloudwatch) property of the `Logging` property of an `AWS::Lambda::MicrovmImage` resource.", "title": "CloudWatch" }, "Disabled": { - "markdownDescription": "TODO", + "markdownDescription": "Set to `true` to disable logging for the MicroVM. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Disabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-logging.html#cfn-lambda-microvmimage-logging-disabled) property of the `Logging` property of an `AWS::Lambda::MicrovmImage` resource.", "title": "Disabled", "type": "boolean" } @@ -372933,7 +372933,7 @@ } ] }, - "markdownDescription": "TODO", + "markdownDescription": "Additional OS capabilities to grant to the MicroVM runtime environment. If you don't specify a value, the service grants no additional OS capabilities. \n*Valid values*: `ALL` \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`AdditionalOsCapabilities`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-additionaloscapabilities) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "AdditionalOsCapabilities", "type": "array" }, @@ -372946,7 +372946,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The ARN of the base MicroVM image to build from. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`BaseImageArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-baseimagearn) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "BaseImageArn" }, "BaseImageVersion": { @@ -372958,7 +372958,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The version of the base MicroVM image to use. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`BaseImageVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-baseimageversion) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "BaseImageVersion" }, "BuildRoleArn": { @@ -372970,7 +372970,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The ARN of the IAM role that the MicroVM build service assumes to download your code artifact from Amazon S3 and write build logs. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`BuildRoleArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-buildrolearn) property of an `AWS::Lambda::MicrovmImage` resource. This is required in CloudFormation but not in AWS SAM. If you don't specify a role, AWS SAM creates one with a logical ID of `BuildRole`. If your code artifact is encrypted with a customer managed key in AWS KMS, you must provide your own role with the appropriate `kms:Decrypt` permission.", "title": "BuildRoleArn" }, "CodeUri": { @@ -372982,14 +372982,14 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The Amazon S3 URI of the zip artifact containing the Dockerfile and application code. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is transformed to the [`CodeArtifact`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-codeartifact) property of an `AWS::Lambda::MicrovmImage` resource. AWS SAM wraps the URI into the `CodeArtifact.Uri` structure.", "title": "CodeUri" }, "CpuConfigurations": { "items": { "$ref": "#/definitions/CpuConfiguration" }, - "markdownDescription": "TODO", + "markdownDescription": "A list of [CpuConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-cpuconfiguration.html) objects that specify the supported CPU architectures for the MicroVM. If you don't specify a value, the service uses the default CPU architecture. \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`CpuConfigurations`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-cpuconfigurations) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "CpuConfigurations", "type": "array" }, @@ -373002,7 +373002,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "A description of the MicroVM image. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-description) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "Description" }, "EgressNetworkConnectors": { @@ -373016,12 +373016,12 @@ } ] }, - "markdownDescription": "TODO", + "markdownDescription": "The list of egress network connector ARNs available to the MicroVM at runtime. \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`EgressNetworkConnectors`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-egressnetworkconnectors) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "EgressNetworkConnectors", "type": "array" }, "EnvironmentVariables": { - "markdownDescription": "TODO", + "markdownDescription": "Environment variables set in the MicroVM runtime environment. \n*Type*: Map \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`EnvironmentVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-environmentvariables) property of an `AWS::Lambda::MicrovmImage` resource. In AWS SAM, specify as a map (for example, `KEY: value`). AWS SAM converts to the CloudFormation array format `[{Key: KEY, Value: value}]`.", "title": "EnvironmentVariables", "type": "object" }, @@ -373031,7 +373031,7 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_microvmimage__Hooks" } ], - "markdownDescription": "TODO", + "markdownDescription": "Lifecycle hook configuration for MicroVMs and MicroVM images. \n*Type*: [Hooks](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-hooks.html) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Hooks`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-hooks) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "Hooks" }, "Logging": { @@ -373040,7 +373040,7 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_microvmimage__Logging" } ], - "markdownDescription": "TODO", + "markdownDescription": "Configuration for MicroVM logging output. Specify exactly one: `CloudWatch` to enable CloudWatch logging, or `Disabled` to turn off logging. \n*Type*: [Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-logging.html) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Logging`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-logging) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "Logging" }, "Name": { @@ -373052,11 +373052,11 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The name of the MicroVM image. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-name) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "Name" }, "PropagateTags": { - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether to pass tags from the `Tags` property to generated resources, such as the auto-generated build role. \n*Type*: Boolean \n*Required*: No \n*Default*: `False` \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "PropagateTags", "type": "boolean" }, @@ -373064,12 +373064,12 @@ "items": { "$ref": "#/definitions/ResourceSpec" }, - "markdownDescription": "TODO", + "markdownDescription": "A list of [Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-resources.html) objects that specify the resource requirements for the MicroVM. \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Resources`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-resources) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "Resources", "type": "array" }, "Tags": { - "markdownDescription": "TODO", + "markdownDescription": "A map of key-value pairs that specifies the tags added to this MicroVM image. \n*Type*: Map \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-tags) property of an `AWS::Lambda::MicrovmImage` resource. The `Tags` property in AWS SAM consists of key-value pairs (whereas in CloudFormation this property consists of a list of `Tag` objects). Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this resource, and to the default roles that are generated for it.", "title": "Tags", "type": "object" } @@ -373145,16 +373145,16 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The ARN of the IAM role that the network connector service assumes to create and manage elastic network interfaces (ENIs). \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`OperatorRole`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-networkconnector.html#cfn-lambda-networkconnector-operatorrole) property of an `AWS::Lambda::NetworkConnector` resource. This is required in CloudFormation but not in AWS SAM. If you don't specify a role, AWS SAM creates one with a logical ID of `OperatorRole`.", "title": "OperatorRole" }, "PropagateTags": { - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether to pass tags from the `Tags` property to generated resources, such as the auto-generated operator role. \n*Type*: Boolean \n*Required*: No \n*Default*: `False` \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "PropagateTags", "type": "boolean" }, "Tags": { - "markdownDescription": "TODO", + "markdownDescription": "A map of key-value pairs that specifies the tags added to this network connector. \n*Type*: Map \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-networkconnector.html#cfn-lambda-networkconnector-tags) property of an `AWS::Lambda::NetworkConnector` resource. The `Tags` property in AWS SAM consists of key-value pairs (whereas in CloudFormation this property consists of a list of `Tag` objects). Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this network connector, and to the default roles that are generated for it.", "title": "Tags", "type": "object" } @@ -373174,7 +373174,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The name of the network connector. The name must be unique within your account and Region. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-networkconnector.html#cfn-lambda-networkconnector-name) property of an `AWS::Lambda::NetworkConnector` resource.", "title": "Name" }, "OperatorRole": { @@ -373186,16 +373186,16 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The ARN of the IAM role that the network connector service assumes to create and manage elastic network interfaces (ENIs). \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`OperatorRole`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-networkconnector.html#cfn-lambda-networkconnector-operatorrole) property of an `AWS::Lambda::NetworkConnector` resource. This is required in CloudFormation but not in AWS SAM. If you don't specify a role, AWS SAM creates one with a logical ID of `OperatorRole`.", "title": "OperatorRole" }, "PropagateTags": { - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether to pass tags from the `Tags` property to generated resources, such as the auto-generated operator role. \n*Type*: Boolean \n*Required*: No \n*Default*: `False` \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "PropagateTags", "type": "boolean" }, "Tags": { - "markdownDescription": "TODO", + "markdownDescription": "A map of key-value pairs that specifies the tags added to this network connector. \n*Type*: Map \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-networkconnector.html#cfn-lambda-networkconnector-tags) property of an `AWS::Lambda::NetworkConnector` resource. The `Tags` property in AWS SAM consists of key-value pairs (whereas in CloudFormation this property consists of a list of `Tag` objects). Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this network connector, and to the default roles that are generated for it.", "title": "Tags", "type": "object" }, @@ -373205,7 +373205,7 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_networkconnector__VpcConfig" } ], - "markdownDescription": "TODO", + "markdownDescription": "The VPC egress configuration for the network connector, including the subnets, security groups, and network protocol for elastic network interface (ENI) provisioning. \n*Type*: [VpcConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-networkconnector-vpcconfig.html) \n*Required*: Yes \n*CloudFormation compatibility*: This property is transformed to the [`Configuration.VpcEgressConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-networkconnector.html#cfn-lambda-networkconnector-configuration) property of an `AWS::Lambda::NetworkConnector` resource. AWS SAM also injects `AssociatedComputeResourceTypes: [MicroVm]` automatically.", "title": "VpcConfig" } }, @@ -373281,7 +373281,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The network protocol for the VPC egress connection. \n*Valid values*: `IPv4`, `DualStack` \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`NetworkProtocol`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-networkconnector-vpcegressconfiguration.html#cfn-lambda-networkconnector-vpcegressconfiguration-networkprotocol) property of `Configuration.VpcEgressConfiguration` of an `AWS::Lambda::NetworkConnector` resource.", "title": "NetworkProtocol" }, "SecurityGroupIds": { @@ -373295,7 +373295,7 @@ } ] }, - "markdownDescription": "TODO", + "markdownDescription": "A list of security group IDs to associate with the elastic network interfaces (ENIs). \n*Type*: List \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`SecurityGroupIds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-networkconnector-vpcegressconfiguration.html#cfn-lambda-networkconnector-vpcegressconfiguration-securitygroupids) property of `Configuration.VpcEgressConfiguration` of an `AWS::Lambda::NetworkConnector` resource.", "title": "SecurityGroupIds", "type": "array" }, @@ -373310,7 +373310,7 @@ } ] }, - "markdownDescription": "TODO", + "markdownDescription": "A list of subnet IDs where the service provisions ENIs for VPC egress connectivity. \n*Type*: List \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`SubnetIds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-networkconnector-vpcegressconfiguration.html#cfn-lambda-networkconnector-vpcegressconfiguration-subnetids) property of `Configuration.VpcEgressConfiguration` of an `AWS::Lambda::NetworkConnector` resource.", "title": "SubnetIds", "type": "array" } @@ -374474,11 +374474,11 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The settings for access logging in a stage. \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`AccessLogSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) property of an `AWS::ApiGatewayV2::Stage` resource.", "title": "AccessLogSettings" }, "ApiKeySelectionExpression": { - "markdownDescription": "TODO", + "markdownDescription": "An API key selection expression. For more information, see [API Key Selection Expressions](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) in the *API Gateway Developer Guide*. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`ApiKeySelectionExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-apikeyselectionexpression) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "ApiKeySelectionExpression", "type": "string" }, @@ -374488,16 +374488,16 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The default route settings for this WebSocket API. These settings apply to all routes unless overridden by the `RouteSettings` property for certain routes. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`DefaultRouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-defaultroutesettings) property of an `AWS::ApiGatewayV2::Stage` resource.", "title": "DefaultRouteSettings" }, "DisableExecuteApiEndpoint": { - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether clients can invoke your API by using the default `execute-api` endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`DisableExecuteApiEndpoint`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableexecuteapiendpoint) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "DisableExecuteApiEndpoint", "type": "boolean" }, "DisableSchemaValidation": { - "markdownDescription": "TODO", + "markdownDescription": "Avoid validating models when creating a deployment. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`DisableSchemaValidation`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableschemavalidation) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "DisableSchemaValidation", "type": "boolean" }, @@ -374507,21 +374507,21 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_websocketapi__Domain" } ], - "markdownDescription": "TODO", + "markdownDescription": "Configures a custom domain for this WebSocket API. \n*Type*: [WebSocketApiDomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-websocketapi-websocketapidomainconfiguration.html) \n*Required*: No \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "Domain" }, "IpAddressType": { - "markdownDescription": "TODO", + "markdownDescription": "The IP address type for the API. Valid values are `ipv4` for IPv4 only and `dualstack` for IPv4 and IPv6. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`IpAddressType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-ipaddresstype) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "IpAddressType", "type": "string" }, "PropagateTags": { - "markdownDescription": "TODO", + "markdownDescription": "If `true`, AWS SAM adds the `Tags` property to the `AWS::ApiGatewayV2::Stage` and `AWS::ApiGatewayV2::DomainName` resources that AWS SAM generates. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "PropagateTags", "type": "boolean" }, "RouteSelectionExpression": { - "markdownDescription": "TODO", + "markdownDescription": "The route selection expression for the WebSocket API. A common value is `$request.body.action`, which routes messages based on an `action` field in the message body. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`RouteSelectionExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-routeselectionexpression) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "RouteSelectionExpression", "type": "string" }, @@ -374531,7 +374531,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The route settings for this WebSocket API. These settings override the `DefaultRouteSettings` for specific routes. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource.", "title": "RouteSettings" }, "StageVariables": { @@ -374540,11 +374540,11 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "A map that defines the stage variables. Variable names can have alphanumeric and underscore characters, and the values must match `[A-Za-z0-9-._~:/?#&=,]+`. \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`StageVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) property of an `AWS::ApiGatewayV2::Stage` resource.", "title": "StageVariables" }, "Tags": { - "markdownDescription": "TODO", + "markdownDescription": "A map (string to string) that specifies the tags to be added to this WebSocket API. For details about valid keys and values for tags, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *CloudFormation User Guide*. \n*Type*: Map \n*Required*: No \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "Tags", "type": "object" } @@ -374561,7 +374561,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The settings for access logging in a stage. \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`AccessLogSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) property of an `AWS::ApiGatewayV2::Stage` resource.", "title": "AccessLogSettings" }, "ApiKeySelectionExpression": { @@ -374570,7 +374570,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "An API key selection expression. For more information, see [API Key Selection Expressions](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) in the *API Gateway Developer Guide*. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`ApiKeySelectionExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-apikeyselectionexpression) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "ApiKeySelectionExpression" }, "Auth": { @@ -374579,7 +374579,7 @@ "$ref": "#/definitions/AuthConfig" } ], - "markdownDescription": "TODO", + "markdownDescription": "Configures authorization for controlling access to your WebSocket API. Authorization is applied to the `$connect` route. \n*Type*: [WebSocketApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-websocketapi-websocketapiauth.html) \n*Required*: No \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "Auth" }, "DefaultRouteSettings": { @@ -374588,11 +374588,11 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The default route settings for this WebSocket API. These settings apply to all routes unless overridden by the `RouteSettings` property for certain routes. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`DefaultRouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-defaultroutesettings) property of an `AWS::ApiGatewayV2::Stage` resource.", "title": "DefaultRouteSettings" }, "Description": { - "markdownDescription": "TODO", + "markdownDescription": "A description of the WebSocket API. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-description) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "Description", "type": "string" }, @@ -374602,11 +374602,11 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether clients can invoke your API by using the default `execute-api` endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`DisableExecuteApiEndpoint`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableexecuteapiendpoint) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "DisableExecuteApiEndpoint" }, "DisableSchemaValidation": { - "markdownDescription": "TODO", + "markdownDescription": "Avoid validating models when creating a deployment. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`DisableSchemaValidation`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableschemavalidation) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "DisableSchemaValidation", "type": "boolean" }, @@ -374616,7 +374616,7 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_websocketapi__Domain" } ], - "markdownDescription": "TODO", + "markdownDescription": "Configures a custom domain for this WebSocket API. \n*Type*: [WebSocketApiDomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-websocketapi-websocketapidomainconfiguration.html) \n*Required*: No \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "Domain" }, "IpAddressType": { @@ -374625,7 +374625,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The IP address type for the API. Valid values are `ipv4` for IPv4 only and `dualstack` for IPv4 and IPv6. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`IpAddressType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-ipaddresstype) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "IpAddressType" }, "Name": { @@ -374634,11 +374634,11 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "A name for the WebSocket API. If you don't specify a name, AWS SAM generates a name for you. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-name) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "Name" }, "PropagateTags": { - "markdownDescription": "TODO", + "markdownDescription": "If `true`, AWS SAM adds the `Tags` property to the `AWS::ApiGatewayV2::Stage` and `AWS::ApiGatewayV2::DomainName` resources that AWS SAM generates. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "PropagateTags", "type": "boolean" }, @@ -374648,7 +374648,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The route selection expression for the WebSocket API. A common value is `$request.body.action`, which routes messages based on an `action` field in the message body. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`RouteSelectionExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-routeselectionexpression) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "RouteSelectionExpression" }, "RouteSettings": { @@ -374657,14 +374657,14 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The route settings for this WebSocket API. These settings override the `DefaultRouteSettings` for specific routes. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource.", "title": "RouteSettings" }, "Routes": { "additionalProperties": { "$ref": "#/definitions/WebSocketApiRoute" }, - "markdownDescription": "TODO", + "markdownDescription": "The route configurations for this WebSocket API. Routes define how messages are routed to Lambda functions. Each route consists of a route key and a Lambda function ARN. WebSocket APIs support three predefined routes: `$connect`, `$disconnect`, and `$default`. You can also define custom routes. \n*Type*: [RouteConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-websocketapi-routeconfiguration.html) \n*Required*: Yes \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "Routes", "type": "object" }, @@ -374674,7 +374674,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The name of the API stage. If you don't specify a name, AWS SAM uses `default` as the stage name. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`StageName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagename) property of an `AWS::ApiGatewayV2::Stage` resource.", "title": "StageName" }, "StageVariables": { @@ -374683,11 +374683,11 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "A map that defines the stage variables. Variable names can have alphanumeric and underscore characters, and the values must match `[A-Za-z0-9-._~:/?#&=,]+`. \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`StageVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) property of an `AWS::ApiGatewayV2::Stage` resource.", "title": "StageVariables" }, "Tags": { - "markdownDescription": "TODO", + "markdownDescription": "A map (string to string) that specifies the tags to be added to this WebSocket API. For details about valid keys and values for tags, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *CloudFormation User Guide*. \n*Type*: Map \n*Required*: No \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "Tags", "type": "object" } diff --git a/schema_source/sam.schema.json b/schema_source/sam.schema.json index 0070efa21..11cb241d9 100644 --- a/schema_source/sam.schema.json +++ b/schema_source/sam.schema.json @@ -166,7 +166,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The ARN of the Lambda function to use for authorization. Required when `AuthType` is `CUSTOM`. \n*Type*: String \n*Required*: Conditional \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "AuthArn" }, "AuthType": { @@ -175,7 +175,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The type of authorization. Valid values are `NONE`, `AWS_IAM`, or `CUSTOM`. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "AuthType" }, "IdentitySource": { @@ -184,7 +184,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The identity source for which authorization is requested. For example, `route.request.header.Authorization`. \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`IdentitySource`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-identitysource) property of an `AWS::ApiGatewayV2::Authorizer` resource.", "title": "IdentitySource" }, "InvokeRole": { @@ -196,7 +196,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The ARN of the IAM role that API Gateway assumes when invoking the authorizer function. If not specified, AWS SAM automatically creates a resource-based permission that allows API Gateway to invoke the authorizer function. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`AuthorizerCredentialsArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-authorizercredentialsarn) property of an `AWS::ApiGatewayV2::Authorizer` resource.", "title": "InvokeRole" }, "Name": { @@ -205,7 +205,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The name of the authorizer. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-authorizer.html#cfn-apigatewayv2-authorizer-name) property of an `AWS::ApiGatewayV2::Authorizer` resource.", "title": "Name" } }, @@ -354,7 +354,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The CloudWatch log group name for MicroVM logs. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `LogGroup` property of the `CloudWatch` logging configuration.", "title": "LogGroup" }, "LogStream": { @@ -366,7 +366,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The CloudWatch log stream name for MicroVM logs. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `LogStream` property of the `CloudWatch` logging configuration.", "title": "LogStream" } }, @@ -717,7 +717,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The CPU architecture for the MicroVM. \n*Valid values*: `ARM_64` \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`Architecture`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-cpuconfiguration.html#cfn-lambda-microvmimage-cpuconfiguration-architecture) property of a `CpuConfigurations` item of an `AWS::Lambda::MicrovmImage` resource.", "title": "Architecture" } }, @@ -3066,7 +3066,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether the resume hook is enabled. The resume hook is called when a MicroVM resumes from an in-place suspend. \n*Valid values*: `ENABLED`, `DISABLED` \n*Type*: String \n*Required*: No \n*Default*: `DISABLED` \n*CloudFormation compatibility*: This property is passed directly to the `Resume` property of `MicrovmHooks`.", "title": "Resume" }, "ResumeTimeoutInSeconds": { @@ -3078,7 +3078,7 @@ "type": "integer" } ], - "markdownDescription": "TODO", + "markdownDescription": "The timeout in seconds for the resume hook. \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `ResumeTimeoutInSeconds` property of `MicrovmHooks`.", "title": "ResumeTimeoutInSeconds" }, "Run": { @@ -3094,7 +3094,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether the run hook is enabled. The run hook is called when a MicroVM instance is launched from a snapshot. \n*Valid values*: `ENABLED`, `DISABLED` \n*Type*: String \n*Required*: No \n*Default*: `DISABLED` \n*CloudFormation compatibility*: This property is passed directly to the `Run` property of `MicrovmHooks`.", "title": "Run" }, "RunTimeoutInSeconds": { @@ -3106,7 +3106,7 @@ "type": "integer" } ], - "markdownDescription": "TODO", + "markdownDescription": "The timeout in seconds for the run hook. \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `RunTimeoutInSeconds` property of `MicrovmHooks`.", "title": "RunTimeoutInSeconds" }, "Suspend": { @@ -3122,7 +3122,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether the suspend hook is enabled. The suspend hook is called before a MicroVM is suspended. \n*Valid values*: `ENABLED`, `DISABLED` \n*Type*: String \n*Required*: No \n*Default*: `DISABLED` \n*CloudFormation compatibility*: This property is passed directly to the `Suspend` property of `MicrovmHooks`.", "title": "Suspend" }, "SuspendTimeoutInSeconds": { @@ -3134,7 +3134,7 @@ "type": "integer" } ], - "markdownDescription": "TODO", + "markdownDescription": "The timeout in seconds for the suspend hook. \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `SuspendTimeoutInSeconds` property of `MicrovmHooks`.", "title": "SuspendTimeoutInSeconds" }, "Terminate": { @@ -3150,7 +3150,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether the terminate hook is enabled. The terminate hook is called before a MicroVM is terminated. \n*Valid values*: `ENABLED`, `DISABLED` \n*Type*: String \n*Required*: No \n*Default*: `DISABLED` \n*CloudFormation compatibility*: This property is passed directly to the `Terminate` property of `MicrovmHooks`.", "title": "Terminate" }, "TerminateTimeoutInSeconds": { @@ -3162,7 +3162,7 @@ "type": "integer" } ], - "markdownDescription": "TODO", + "markdownDescription": "The timeout in seconds for the terminate hook. \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `TerminateTimeoutInSeconds` property of `MicrovmHooks`.", "title": "TerminateTimeoutInSeconds" } }, @@ -3185,7 +3185,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether the ready hook is enabled. The ready hook is called during image build to confirm the application has started successfully. \n*Valid values*: `ENABLED`, `DISABLED` \n*Type*: String \n*Required*: No \n*Default*: `DISABLED` \n*CloudFormation compatibility*: This property is passed directly to the `Ready` property of `MicrovmImageHooks`.", "title": "Ready" }, "ReadyTimeoutInSeconds": { @@ -3197,7 +3197,7 @@ "type": "integer" } ], - "markdownDescription": "TODO", + "markdownDescription": "The timeout in seconds for the ready hook. \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `ReadyTimeoutInSeconds` property of `MicrovmImageHooks`.", "title": "ReadyTimeoutInSeconds" }, "Validate": { @@ -3213,7 +3213,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether the validate hook is enabled. The validate hook is called during image build to validate the application. \n*Valid values*: `ENABLED`, `DISABLED` \n*Type*: String \n*Required*: No \n*Default*: `DISABLED` \n*CloudFormation compatibility*: This property is passed directly to the `Validate` property of `MicrovmImageHooks`.", "title": "Validate" }, "ValidateTimeoutInSeconds": { @@ -3225,7 +3225,7 @@ "type": "integer" } ], - "markdownDescription": "TODO", + "markdownDescription": "The timeout in seconds for the validate hook. \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the `ValidateTimeoutInSeconds` property of `MicrovmImageHooks`.", "title": "ValidateTimeoutInSeconds" } }, @@ -3544,7 +3544,7 @@ "type": "integer" } ], - "markdownDescription": "TODO", + "markdownDescription": "The minimum memory in MiB for the MicroVM. \n*Type*: Integer \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`MinimumMemoryInMiB`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-resources.html#cfn-lambda-microvmimage-resources-minimummemoryinmib) property of a `Resources` item of an `AWS::Lambda::MicrovmImage` resource.", "title": "MinimumMemoryInMiB" } }, @@ -4418,7 +4418,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether an API key is required for this route. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`ApiKeyRequired`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-apikeyrequired) property of an `AWS::ApiGatewayV2::Route` resource.", "title": "ApiKeyRequired" }, "FunctionArn": { @@ -4430,7 +4430,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The ARN of the Lambda function that handles this route. AWS SAM creates an integration and the necessary permissions for API Gateway to invoke the function. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "FunctionArn" }, "IntegrationTimeout": { @@ -4439,7 +4439,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The timeout for the integration, in milliseconds. The maximum value is 29,000 milliseconds (29 seconds). \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`TimeoutInMillis`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-integration.html#cfn-apigatewayv2-integration-timeoutinmillis) property of an `AWS::ApiGatewayV2::Integration` resource.", "title": "IntegrationTimeout" }, "ModelSelectionExpression": { @@ -4448,7 +4448,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The model selection expression for the route. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`ModelSelectionExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-modelselectionexpression) property of an `AWS::ApiGatewayV2::Route` resource.", "title": "ModelSelectionExpression" }, "OperationName": { @@ -4457,7 +4457,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The operation name for the route. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`OperationName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-operationname) property of an `AWS::ApiGatewayV2::Route` resource.", "title": "OperationName" }, "RequestModels": { @@ -4466,7 +4466,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The request models for the route. \n*Type*: Json \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`RequestModels`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-requestmodels) property of an `AWS::ApiGatewayV2::Route` resource.", "title": "RequestModels" }, "RequestParameters": { @@ -4475,7 +4475,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The request parameters for the route. \n*Type*: Json \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`RequestParameters`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-requestparameters) property of an `AWS::ApiGatewayV2::Route` resource.", "title": "RequestParameters" }, "RouteResponseSelectionExpression": { @@ -4484,7 +4484,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The route response selection expression for the route. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`RouteResponseSelectionExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-route.html#cfn-apigatewayv2-route-routeresponseselectionexpression) property of an `AWS::ApiGatewayV2::Route` resource.", "title": "RouteResponseSelectionExpression" } }, @@ -9447,7 +9447,7 @@ } ] }, - "markdownDescription": "TODO", + "markdownDescription": "Additional OS capabilities to grant to the MicroVM runtime environment. If you don't specify a value, the service grants no additional OS capabilities. \n*Valid values*: `ALL` \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`AdditionalOsCapabilities`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-additionaloscapabilities) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "AdditionalOsCapabilities", "type": "array" }, @@ -9460,7 +9460,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The ARN of the base MicroVM image to build from. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`BaseImageArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-baseimagearn) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "BaseImageArn" }, "BaseImageVersion": { @@ -9472,7 +9472,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The version of the base MicroVM image to use. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`BaseImageVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-baseimageversion) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "BaseImageVersion" }, "BuildRoleArn": { @@ -9484,14 +9484,14 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The ARN of the IAM role that the MicroVM build service assumes to download your code artifact from Amazon S3 and write build logs. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`BuildRoleArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-buildrolearn) property of an `AWS::Lambda::MicrovmImage` resource. This is required in CloudFormation but not in AWS SAM. If you don't specify a role, AWS SAM creates one with a logical ID of `BuildRole`. If your code artifact is encrypted with a customer managed key in AWS KMS, you must provide your own role with the appropriate `kms:Decrypt` permission.", "title": "BuildRoleArn" }, "CpuConfigurations": { "items": { "$ref": "#/definitions/CpuConfiguration" }, - "markdownDescription": "TODO", + "markdownDescription": "A list of [CpuConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-cpuconfiguration.html) objects that specify the supported CPU architectures for the MicroVM. If you don't specify a value, the service uses the default CPU architecture. \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`CpuConfigurations`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-cpuconfigurations) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "CpuConfigurations", "type": "array" }, @@ -9506,12 +9506,12 @@ } ] }, - "markdownDescription": "TODO", + "markdownDescription": "The list of egress network connector ARNs available to the MicroVM at runtime. \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`EgressNetworkConnectors`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-egressnetworkconnectors) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "EgressNetworkConnectors", "type": "array" }, "EnvironmentVariables": { - "markdownDescription": "TODO", + "markdownDescription": "Environment variables set in the MicroVM runtime environment. \n*Type*: Map \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`EnvironmentVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-environmentvariables) property of an `AWS::Lambda::MicrovmImage` resource. In AWS SAM, specify as a map (for example, `KEY: value`). AWS SAM converts to the CloudFormation array format `[{Key: KEY, Value: value}]`.", "title": "EnvironmentVariables", "type": "object" }, @@ -9521,7 +9521,7 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_microvmimage__Hooks" } ], - "markdownDescription": "TODO", + "markdownDescription": "Lifecycle hook configuration for MicroVMs and MicroVM images. \n*Type*: [Hooks](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-hooks.html) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Hooks`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-hooks) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "Hooks" }, "Logging": { @@ -9530,11 +9530,11 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_microvmimage__Logging" } ], - "markdownDescription": "TODO", + "markdownDescription": "Configuration for MicroVM logging output. Specify exactly one: `CloudWatch` to enable CloudWatch logging, or `Disabled` to turn off logging. \n*Type*: [Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-logging.html) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Logging`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-logging) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "Logging" }, "PropagateTags": { - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether to pass tags from the `Tags` property to generated resources, such as the auto-generated build role. \n*Type*: Boolean \n*Required*: No \n*Default*: `False` \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "PropagateTags", "type": "boolean" }, @@ -9542,12 +9542,12 @@ "items": { "$ref": "#/definitions/ResourceSpec" }, - "markdownDescription": "TODO", + "markdownDescription": "A list of [Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-resources.html) objects that specify the resource requirements for the MicroVM. \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Resources`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-resources) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "Resources", "type": "array" }, "Tags": { - "markdownDescription": "TODO", + "markdownDescription": "A map of key-value pairs that specifies the tags added to this MicroVM image. \n*Type*: Map \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-tags) property of an `AWS::Lambda::MicrovmImage` resource. The `Tags` property in AWS SAM consists of key-value pairs (whereas in CloudFormation this property consists of a list of `Tag` objects). Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this resource, and to the default roles that are generated for it.", "title": "Tags", "type": "object" } @@ -9564,7 +9564,7 @@ "$ref": "#/definitions/MicrovmHooks" } ], - "markdownDescription": "TODO", + "markdownDescription": "Lifecycle hooks called at MicroVM instance lifecycle transitions (run, resume, suspend, terminate). \n*Type*: [MicrovmHooks](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-microvmhooks.html) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`MicrovmHooks`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-hooks.html#cfn-lambda-microvmimage-hooks-microvmhooks) property of the `Hooks` property of an `AWS::Lambda::MicrovmImage` resource.", "title": "MicrovmHooks" }, "MicrovmImageHooks": { @@ -9573,7 +9573,7 @@ "$ref": "#/definitions/MicrovmImageHooks" } ], - "markdownDescription": "TODO", + "markdownDescription": "Lifecycle hooks called during MicroVM image build (ready, validate). \n*Type*: [MicrovmImageHooks](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-microvmimagehooks.html) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`MicrovmImageHooks`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-hooks.html#cfn-lambda-microvmimage-hooks-microvmimagehooks) property of the `Hooks` property of an `AWS::Lambda::MicrovmImage` resource.", "title": "MicrovmImageHooks" }, "Port": { @@ -9585,7 +9585,7 @@ "type": "integer" } ], - "markdownDescription": "TODO", + "markdownDescription": "The port on which the application listens for lifecycle hook invocations. \n*Type*: Integer \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Port`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-hooks.html#cfn-lambda-microvmimage-hooks-port) property of the `Hooks` property of an `AWS::Lambda::MicrovmImage` resource.", "title": "Port" } }, @@ -9601,11 +9601,11 @@ "$ref": "#/definitions/CloudWatchLogging" } ], - "markdownDescription": "TODO", + "markdownDescription": "CloudWatch logging configuration for the MicroVM. \n*Type*: [CloudWatch](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-cloudwatchlogging.html) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`CloudWatch`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-logging.html#cfn-lambda-microvmimage-logging-cloudwatch) property of the `Logging` property of an `AWS::Lambda::MicrovmImage` resource.", "title": "CloudWatch" }, "Disabled": { - "markdownDescription": "TODO", + "markdownDescription": "Set to `true` to disable logging for the MicroVM. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Disabled`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-logging.html#cfn-lambda-microvmimage-logging-disabled) property of the `Logging` property of an `AWS::Lambda::MicrovmImage` resource.", "title": "Disabled", "type": "boolean" } @@ -9630,7 +9630,7 @@ } ] }, - "markdownDescription": "TODO", + "markdownDescription": "Additional OS capabilities to grant to the MicroVM runtime environment. If you don't specify a value, the service grants no additional OS capabilities. \n*Valid values*: `ALL` \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`AdditionalOsCapabilities`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-additionaloscapabilities) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "AdditionalOsCapabilities", "type": "array" }, @@ -9643,7 +9643,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The ARN of the base MicroVM image to build from. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`BaseImageArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-baseimagearn) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "BaseImageArn" }, "BaseImageVersion": { @@ -9655,7 +9655,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The version of the base MicroVM image to use. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`BaseImageVersion`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-baseimageversion) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "BaseImageVersion" }, "BuildRoleArn": { @@ -9667,7 +9667,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The ARN of the IAM role that the MicroVM build service assumes to download your code artifact from Amazon S3 and write build logs. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`BuildRoleArn`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-buildrolearn) property of an `AWS::Lambda::MicrovmImage` resource. This is required in CloudFormation but not in AWS SAM. If you don't specify a role, AWS SAM creates one with a logical ID of `BuildRole`. If your code artifact is encrypted with a customer managed key in AWS KMS, you must provide your own role with the appropriate `kms:Decrypt` permission.", "title": "BuildRoleArn" }, "CodeUri": { @@ -9679,14 +9679,14 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The Amazon S3 URI of the zip artifact containing the Dockerfile and application code. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is transformed to the [`CodeArtifact`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-codeartifact) property of an `AWS::Lambda::MicrovmImage` resource. AWS SAM wraps the URI into the `CodeArtifact.Uri` structure.", "title": "CodeUri" }, "CpuConfigurations": { "items": { "$ref": "#/definitions/CpuConfiguration" }, - "markdownDescription": "TODO", + "markdownDescription": "A list of [CpuConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-cpuconfiguration.html) objects that specify the supported CPU architectures for the MicroVM. If you don't specify a value, the service uses the default CPU architecture. \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`CpuConfigurations`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-cpuconfigurations) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "CpuConfigurations", "type": "array" }, @@ -9699,7 +9699,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "A description of the MicroVM image. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-description) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "Description" }, "EgressNetworkConnectors": { @@ -9713,12 +9713,12 @@ } ] }, - "markdownDescription": "TODO", + "markdownDescription": "The list of egress network connector ARNs available to the MicroVM at runtime. \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`EgressNetworkConnectors`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-egressnetworkconnectors) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "EgressNetworkConnectors", "type": "array" }, "EnvironmentVariables": { - "markdownDescription": "TODO", + "markdownDescription": "Environment variables set in the MicroVM runtime environment. \n*Type*: Map \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`EnvironmentVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-environmentvariables) property of an `AWS::Lambda::MicrovmImage` resource. In AWS SAM, specify as a map (for example, `KEY: value`). AWS SAM converts to the CloudFormation array format `[{Key: KEY, Value: value}]`.", "title": "EnvironmentVariables", "type": "object" }, @@ -9728,7 +9728,7 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_microvmimage__Hooks" } ], - "markdownDescription": "TODO", + "markdownDescription": "Lifecycle hook configuration for MicroVMs and MicroVM images. \n*Type*: [Hooks](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-hooks.html) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Hooks`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-hooks) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "Hooks" }, "Logging": { @@ -9737,7 +9737,7 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_microvmimage__Logging" } ], - "markdownDescription": "TODO", + "markdownDescription": "Configuration for MicroVM logging output. Specify exactly one: `CloudWatch` to enable CloudWatch logging, or `Disabled` to turn off logging. \n*Type*: [Logging](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-logging.html) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Logging`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-logging) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "Logging" }, "Name": { @@ -9749,11 +9749,11 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The name of the MicroVM image. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-name) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "Name" }, "PropagateTags": { - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether to pass tags from the `Tags` property to generated resources, such as the auto-generated build role. \n*Type*: Boolean \n*Required*: No \n*Default*: `False` \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "PropagateTags", "type": "boolean" }, @@ -9761,12 +9761,12 @@ "items": { "$ref": "#/definitions/ResourceSpec" }, - "markdownDescription": "TODO", + "markdownDescription": "A list of [Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-microvmimage-resources.html) objects that specify the resource requirements for the MicroVM. \n*Type*: List \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Resources`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-resources) property of an `AWS::Lambda::MicrovmImage` resource.", "title": "Resources", "type": "array" }, "Tags": { - "markdownDescription": "TODO", + "markdownDescription": "A map of key-value pairs that specifies the tags added to this MicroVM image. \n*Type*: Map \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-microvmimage.html#cfn-lambda-microvmimage-tags) property of an `AWS::Lambda::MicrovmImage` resource. The `Tags` property in AWS SAM consists of key-value pairs (whereas in CloudFormation this property consists of a list of `Tag` objects). Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this resource, and to the default roles that are generated for it.", "title": "Tags", "type": "object" } @@ -9842,16 +9842,16 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The ARN of the IAM role that the network connector service assumes to create and manage elastic network interfaces (ENIs). \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`OperatorRole`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-networkconnector.html#cfn-lambda-networkconnector-operatorrole) property of an `AWS::Lambda::NetworkConnector` resource. This is required in CloudFormation but not in AWS SAM. If you don't specify a role, AWS SAM creates one with a logical ID of `OperatorRole`.", "title": "OperatorRole" }, "PropagateTags": { - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether to pass tags from the `Tags` property to generated resources, such as the auto-generated operator role. \n*Type*: Boolean \n*Required*: No \n*Default*: `False` \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "PropagateTags", "type": "boolean" }, "Tags": { - "markdownDescription": "TODO", + "markdownDescription": "A map of key-value pairs that specifies the tags added to this network connector. \n*Type*: Map \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-networkconnector.html#cfn-lambda-networkconnector-tags) property of an `AWS::Lambda::NetworkConnector` resource. The `Tags` property in AWS SAM consists of key-value pairs (whereas in CloudFormation this property consists of a list of `Tag` objects). Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this network connector, and to the default roles that are generated for it.", "title": "Tags", "type": "object" } @@ -9871,7 +9871,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The name of the network connector. The name must be unique within your account and Region. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-networkconnector.html#cfn-lambda-networkconnector-name) property of an `AWS::Lambda::NetworkConnector` resource.", "title": "Name" }, "OperatorRole": { @@ -9883,16 +9883,16 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The ARN of the IAM role that the network connector service assumes to create and manage elastic network interfaces (ENIs). \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`OperatorRole`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-networkconnector.html#cfn-lambda-networkconnector-operatorrole) property of an `AWS::Lambda::NetworkConnector` resource. This is required in CloudFormation but not in AWS SAM. If you don't specify a role, AWS SAM creates one with a logical ID of `OperatorRole`.", "title": "OperatorRole" }, "PropagateTags": { - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether to pass tags from the `Tags` property to generated resources, such as the auto-generated operator role. \n*Type*: Boolean \n*Required*: No \n*Default*: `False` \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "PropagateTags", "type": "boolean" }, "Tags": { - "markdownDescription": "TODO", + "markdownDescription": "A map of key-value pairs that specifies the tags added to this network connector. \n*Type*: Map \n*Required*: No \n*CloudFormation compatibility*: This property is similar to the [`Tags`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-networkconnector.html#cfn-lambda-networkconnector-tags) property of an `AWS::Lambda::NetworkConnector` resource. The `Tags` property in AWS SAM consists of key-value pairs (whereas in CloudFormation this property consists of a list of `Tag` objects). Also, AWS SAM automatically adds a `lambda:createdBy:SAM` tag to this network connector, and to the default roles that are generated for it.", "title": "Tags", "type": "object" }, @@ -9902,7 +9902,7 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_networkconnector__VpcConfig" } ], - "markdownDescription": "TODO", + "markdownDescription": "The VPC egress configuration for the network connector, including the subnets, security groups, and network protocol for elastic network interface (ENI) provisioning. \n*Type*: [VpcConfig](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-networkconnector-vpcconfig.html) \n*Required*: Yes \n*CloudFormation compatibility*: This property is transformed to the [`Configuration.VpcEgressConfiguration`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-networkconnector.html#cfn-lambda-networkconnector-configuration) property of an `AWS::Lambda::NetworkConnector` resource. AWS SAM also injects `AssociatedComputeResourceTypes: [MicroVm]` automatically.", "title": "VpcConfig" } }, @@ -9978,7 +9978,7 @@ "type": "string" } ], - "markdownDescription": "TODO", + "markdownDescription": "The network protocol for the VPC egress connection. \n*Valid values*: `IPv4`, `DualStack` \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`NetworkProtocol`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-networkconnector-vpcegressconfiguration.html#cfn-lambda-networkconnector-vpcegressconfiguration-networkprotocol) property of `Configuration.VpcEgressConfiguration` of an `AWS::Lambda::NetworkConnector` resource.", "title": "NetworkProtocol" }, "SecurityGroupIds": { @@ -9992,7 +9992,7 @@ } ] }, - "markdownDescription": "TODO", + "markdownDescription": "A list of security group IDs to associate with the elastic network interfaces (ENIs). \n*Type*: List \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`SecurityGroupIds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-networkconnector-vpcegressconfiguration.html#cfn-lambda-networkconnector-vpcegressconfiguration-securitygroupids) property of `Configuration.VpcEgressConfiguration` of an `AWS::Lambda::NetworkConnector` resource.", "title": "SecurityGroupIds", "type": "array" }, @@ -10007,7 +10007,7 @@ } ] }, - "markdownDescription": "TODO", + "markdownDescription": "A list of subnet IDs where the service provisions ENIs for VPC egress connectivity. \n*Type*: List \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`SubnetIds`](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-lambda-networkconnector-vpcegressconfiguration.html#cfn-lambda-networkconnector-vpcegressconfiguration-subnetids) property of `Configuration.VpcEgressConfiguration` of an `AWS::Lambda::NetworkConnector` resource.", "title": "SubnetIds", "type": "array" } @@ -11253,11 +11253,11 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The settings for access logging in a stage. \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`AccessLogSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) property of an `AWS::ApiGatewayV2::Stage` resource.", "title": "AccessLogSettings" }, "ApiKeySelectionExpression": { - "markdownDescription": "TODO", + "markdownDescription": "An API key selection expression. For more information, see [API Key Selection Expressions](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) in the *API Gateway Developer Guide*. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`ApiKeySelectionExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-apikeyselectionexpression) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "ApiKeySelectionExpression", "type": "string" }, @@ -11267,16 +11267,16 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The default route settings for this WebSocket API. These settings apply to all routes unless overridden by the `RouteSettings` property for certain routes. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`DefaultRouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-defaultroutesettings) property of an `AWS::ApiGatewayV2::Stage` resource.", "title": "DefaultRouteSettings" }, "DisableExecuteApiEndpoint": { - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether clients can invoke your API by using the default `execute-api` endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`DisableExecuteApiEndpoint`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableexecuteapiendpoint) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "DisableExecuteApiEndpoint", "type": "boolean" }, "DisableSchemaValidation": { - "markdownDescription": "TODO", + "markdownDescription": "Avoid validating models when creating a deployment. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`DisableSchemaValidation`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableschemavalidation) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "DisableSchemaValidation", "type": "boolean" }, @@ -11286,21 +11286,21 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_websocketapi__Domain" } ], - "markdownDescription": "TODO", + "markdownDescription": "Configures a custom domain for this WebSocket API. \n*Type*: [WebSocketApiDomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-websocketapi-websocketapidomainconfiguration.html) \n*Required*: No \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "Domain" }, "IpAddressType": { - "markdownDescription": "TODO", + "markdownDescription": "The IP address type for the API. Valid values are `ipv4` for IPv4 only and `dualstack` for IPv4 and IPv6. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`IpAddressType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-ipaddresstype) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "IpAddressType", "type": "string" }, "PropagateTags": { - "markdownDescription": "TODO", + "markdownDescription": "If `true`, AWS SAM adds the `Tags` property to the `AWS::ApiGatewayV2::Stage` and `AWS::ApiGatewayV2::DomainName` resources that AWS SAM generates. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "PropagateTags", "type": "boolean" }, "RouteSelectionExpression": { - "markdownDescription": "TODO", + "markdownDescription": "The route selection expression for the WebSocket API. A common value is `$request.body.action`, which routes messages based on an `action` field in the message body. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`RouteSelectionExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-routeselectionexpression) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "RouteSelectionExpression", "type": "string" }, @@ -11310,7 +11310,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The route settings for this WebSocket API. These settings override the `DefaultRouteSettings` for specific routes. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource.", "title": "RouteSettings" }, "StageVariables": { @@ -11319,11 +11319,11 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "A map that defines the stage variables. Variable names can have alphanumeric and underscore characters, and the values must match `[A-Za-z0-9-._~:/?#&=,]+`. \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`StageVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) property of an `AWS::ApiGatewayV2::Stage` resource.", "title": "StageVariables" }, "Tags": { - "markdownDescription": "TODO", + "markdownDescription": "A map (string to string) that specifies the tags to be added to this WebSocket API. For details about valid keys and values for tags, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *CloudFormation User Guide*. \n*Type*: Map \n*Required*: No \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "Tags", "type": "object" } @@ -11340,7 +11340,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The settings for access logging in a stage. \n*Type*: [AccessLogSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`AccessLogSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-accesslogsettings) property of an `AWS::ApiGatewayV2::Stage` resource.", "title": "AccessLogSettings" }, "ApiKeySelectionExpression": { @@ -11349,7 +11349,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "An API key selection expression. For more information, see [API Key Selection Expressions](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions) in the *API Gateway Developer Guide*. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`ApiKeySelectionExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-apikeyselectionexpression) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "ApiKeySelectionExpression" }, "Auth": { @@ -11358,7 +11358,7 @@ "$ref": "#/definitions/AuthConfig" } ], - "markdownDescription": "TODO", + "markdownDescription": "Configures authorization for controlling access to your WebSocket API. Authorization is applied to the `$connect` route. \n*Type*: [WebSocketApiAuth](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-websocketapi-websocketapiauth.html) \n*Required*: No \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "Auth" }, "DefaultRouteSettings": { @@ -11367,11 +11367,11 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The default route settings for this WebSocket API. These settings apply to all routes unless overridden by the `RouteSettings` property for certain routes. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`DefaultRouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-defaultroutesettings) property of an `AWS::ApiGatewayV2::Stage` resource.", "title": "DefaultRouteSettings" }, "Description": { - "markdownDescription": "TODO", + "markdownDescription": "A description of the WebSocket API. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Description`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-description) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "Description", "type": "string" }, @@ -11381,11 +11381,11 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "Specifies whether clients can invoke your API by using the default `execute-api` endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`DisableExecuteApiEndpoint`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableexecuteapiendpoint) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "DisableExecuteApiEndpoint" }, "DisableSchemaValidation": { - "markdownDescription": "TODO", + "markdownDescription": "Avoid validating models when creating a deployment. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`DisableSchemaValidation`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-disableschemavalidation) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "DisableSchemaValidation", "type": "boolean" }, @@ -11395,7 +11395,7 @@ "$ref": "#/definitions/samtranslator__internal__schema_source__aws_serverless_websocketapi__Domain" } ], - "markdownDescription": "TODO", + "markdownDescription": "Configures a custom domain for this WebSocket API. \n*Type*: [WebSocketApiDomainConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-websocketapi-websocketapidomainconfiguration.html) \n*Required*: No \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "Domain" }, "IpAddressType": { @@ -11404,7 +11404,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The IP address type for the API. Valid values are `ipv4` for IPv4 only and `dualstack` for IPv4 and IPv6. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`IpAddressType`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-ipaddresstype) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "IpAddressType" }, "Name": { @@ -11413,11 +11413,11 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "A name for the WebSocket API. If you don't specify a name, AWS SAM generates a name for you. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`Name`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-name) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "Name" }, "PropagateTags": { - "markdownDescription": "TODO", + "markdownDescription": "If `true`, AWS SAM adds the `Tags` property to the `AWS::ApiGatewayV2::Stage` and `AWS::ApiGatewayV2::DomainName` resources that AWS SAM generates. \n*Type*: Boolean \n*Required*: No \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "PropagateTags", "type": "boolean" }, @@ -11427,7 +11427,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The route selection expression for the WebSocket API. A common value is `$request.body.action`, which routes messages based on an `action` field in the message body. \n*Type*: String \n*Required*: Yes \n*CloudFormation compatibility*: This property is passed directly to the [`RouteSelectionExpression`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-api.html#cfn-apigatewayv2-api-routeselectionexpression) property of an `AWS::ApiGatewayV2::Api` resource.", "title": "RouteSelectionExpression" }, "RouteSettings": { @@ -11436,14 +11436,14 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The route settings for this WebSocket API. These settings override the `DefaultRouteSettings` for specific routes. \n*Type*: [RouteSettings](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`RouteSettings`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-routesettings) property of an `AWS::ApiGatewayV2::Stage` resource.", "title": "RouteSettings" }, "Routes": { "additionalProperties": { "$ref": "#/definitions/WebSocketApiRoute" }, - "markdownDescription": "TODO", + "markdownDescription": "The route configurations for this WebSocket API. Routes define how messages are routed to Lambda functions. Each route consists of a route key and a Lambda function ARN. WebSocket APIs support three predefined routes: `$connect`, `$disconnect`, and `$default`. You can also define custom routes. \n*Type*: [RouteConfiguration](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-websocketapi-routeconfiguration.html) \n*Required*: Yes \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "Routes", "type": "object" }, @@ -11453,7 +11453,7 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "The name of the API stage. If you don't specify a name, AWS SAM uses `default` as the stage name. \n*Type*: String \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`StageName`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagename) property of an `AWS::ApiGatewayV2::Stage` resource.", "title": "StageName" }, "StageVariables": { @@ -11462,11 +11462,11 @@ "$ref": "#/definitions/PassThroughProp" } ], - "markdownDescription": "TODO", + "markdownDescription": "A map that defines the stage variables. Variable names can have alphanumeric and underscore characters, and the values must match `[A-Za-z0-9-._~:/?#&=,]+`. \n*Type*: [Json](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) \n*Required*: No \n*CloudFormation compatibility*: This property is passed directly to the [`StageVariables`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigatewayv2-stage.html#cfn-apigatewayv2-stage-stagevariables) property of an `AWS::ApiGatewayV2::Stage` resource.", "title": "StageVariables" }, "Tags": { - "markdownDescription": "TODO", + "markdownDescription": "A map (string to string) that specifies the tags to be added to this WebSocket API. For details about valid keys and values for tags, see [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) in the *CloudFormation User Guide*. \n*Type*: Map \n*Required*: No \n*CloudFormation compatibility*: This property is unique to AWS SAM and doesn't have a CloudFormation equivalent.", "title": "Tags", "type": "object" } diff --git a/tests/model/network_connector/test_generators.py b/tests/model/network_connector/test_generators.py index 1fb1d8d93..197d23b55 100644 --- a/tests/model/network_connector/test_generators.py +++ b/tests/model/network_connector/test_generators.py @@ -123,12 +123,9 @@ def test_operator_role_policy(self): resources = gen.to_cloudformation() role = resources[0] - policy = role.Policies[0] - self.assertEqual(policy["PolicyName"], "NetworkConnectorOperatorPolicy") - statements = policy["PolicyDocument"]["Statement"] - all_actions = [s["Action"] for s in statements] - self.assertIn("ec2:CreateNetworkInterface", all_actions) - self.assertIn("ec2:CreateTags", all_actions) + managed_policy_arns = role.ManagedPolicyArns + self.assertEqual(len(managed_policy_arns), 1) + self.assertIn("AWSLambdaNetworkConnectorOperatorPolicy", managed_policy_arns[0]) def test_operator_role_has_sam_marker_tag(self): gen = NetworkConnectorGenerator( diff --git a/tests/translator/output/aws-cn/network_connector.json b/tests/translator/output/aws-cn/network_connector.json index 5374eb6a9..c05da21f7 100644 --- a/tests/translator/output/aws-cn/network_connector.json +++ b/tests/translator/output/aws-cn/network_connector.json @@ -60,61 +60,8 @@ ], "Version": "2012-10-17" }, - "Policies": [ - { - "PolicyDocument": { - "Statement": [ - { - "Action": "ec2:CreateNetworkInterface", - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:subnet/*" - }, - "Sid": "AllowCreateEniInAnySubnet" - }, - { - "Action": "ec2:CreateNetworkInterface", - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:security-group/*" - }, - "Sid": "AllowCreateEniWithSecurityGroups" - }, - { - "Action": "ec2:CreateNetworkInterface", - "Condition": { - "ForAllValues:StringEquals": { - "aws:TagKeys": [ - "aws:lambda:networkConnectorName", - "aws:lambda:networkConnectorId" - ] - } - }, - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:network-interface/*" - }, - "Sid": "AllowCreateEniWithLambdaTagKeys" - }, - { - "Action": "ec2:CreateTags", - "Condition": { - "StringEquals": { - "ec2:CreateAction": "CreateNetworkInterface", - "ec2:ManagedResourceOperator": "network-connectors.lambda.amazonaws.com" - } - }, - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:network-interface/*" - }, - "Sid": "TagENIOnCreate" - } - ], - "Version": "2012-10-17" - }, - "PolicyName": "NetworkConnectorOperatorPolicy" - } + "ManagedPolicyArns": [ + "arn:aws-cn:iam::aws:policy/AWSLambdaNetworkConnectorOperatorPolicy" ], "Tags": [ { diff --git a/tests/translator/output/aws-cn/network_connector_with_intrinsics.json b/tests/translator/output/aws-cn/network_connector_with_intrinsics.json index b498977c5..8b4c67cb6 100644 --- a/tests/translator/output/aws-cn/network_connector_with_intrinsics.json +++ b/tests/translator/output/aws-cn/network_connector_with_intrinsics.json @@ -63,61 +63,8 @@ ], "Version": "2012-10-17" }, - "Policies": [ - { - "PolicyDocument": { - "Statement": [ - { - "Action": "ec2:CreateNetworkInterface", - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:subnet/*" - }, - "Sid": "AllowCreateEniInAnySubnet" - }, - { - "Action": "ec2:CreateNetworkInterface", - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:security-group/*" - }, - "Sid": "AllowCreateEniWithSecurityGroups" - }, - { - "Action": "ec2:CreateNetworkInterface", - "Condition": { - "ForAllValues:StringEquals": { - "aws:TagKeys": [ - "aws:lambda:networkConnectorName", - "aws:lambda:networkConnectorId" - ] - } - }, - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:network-interface/*" - }, - "Sid": "AllowCreateEniWithLambdaTagKeys" - }, - { - "Action": "ec2:CreateTags", - "Condition": { - "StringEquals": { - "ec2:CreateAction": "CreateNetworkInterface", - "ec2:ManagedResourceOperator": "network-connectors.lambda.amazonaws.com" - } - }, - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:network-interface/*" - }, - "Sid": "TagENIOnCreate" - } - ], - "Version": "2012-10-17" - }, - "PolicyName": "NetworkConnectorOperatorPolicy" - } + "ManagedPolicyArns": [ + "arn:aws-cn:iam::aws:policy/AWSLambdaNetworkConnectorOperatorPolicy" ], "Tags": [ { diff --git a/tests/translator/output/aws-cn/network_connector_with_propagate_tags.json b/tests/translator/output/aws-cn/network_connector_with_propagate_tags.json index 8a5f2456d..1b3f0a7a9 100644 --- a/tests/translator/output/aws-cn/network_connector_with_propagate_tags.json +++ b/tests/translator/output/aws-cn/network_connector_with_propagate_tags.json @@ -59,61 +59,8 @@ ], "Version": "2012-10-17" }, - "Policies": [ - { - "PolicyDocument": { - "Statement": [ - { - "Action": "ec2:CreateNetworkInterface", - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:subnet/*" - }, - "Sid": "AllowCreateEniInAnySubnet" - }, - { - "Action": "ec2:CreateNetworkInterface", - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:security-group/*" - }, - "Sid": "AllowCreateEniWithSecurityGroups" - }, - { - "Action": "ec2:CreateNetworkInterface", - "Condition": { - "ForAllValues:StringEquals": { - "aws:TagKeys": [ - "aws:lambda:networkConnectorName", - "aws:lambda:networkConnectorId" - ] - } - }, - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:network-interface/*" - }, - "Sid": "AllowCreateEniWithLambdaTagKeys" - }, - { - "Action": "ec2:CreateTags", - "Condition": { - "StringEquals": { - "ec2:CreateAction": "CreateNetworkInterface", - "ec2:ManagedResourceOperator": "network-connectors.lambda.amazonaws.com" - } - }, - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:network-interface/*" - }, - "Sid": "TagENIOnCreate" - } - ], - "Version": "2012-10-17" - }, - "PolicyName": "NetworkConnectorOperatorPolicy" - } + "ManagedPolicyArns": [ + "arn:aws-cn:iam::aws:policy/AWSLambdaNetworkConnectorOperatorPolicy" ], "Tags": [ { diff --git a/tests/translator/output/aws-us-gov/network_connector.json b/tests/translator/output/aws-us-gov/network_connector.json index 5374eb6a9..33113846d 100644 --- a/tests/translator/output/aws-us-gov/network_connector.json +++ b/tests/translator/output/aws-us-gov/network_connector.json @@ -60,61 +60,8 @@ ], "Version": "2012-10-17" }, - "Policies": [ - { - "PolicyDocument": { - "Statement": [ - { - "Action": "ec2:CreateNetworkInterface", - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:subnet/*" - }, - "Sid": "AllowCreateEniInAnySubnet" - }, - { - "Action": "ec2:CreateNetworkInterface", - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:security-group/*" - }, - "Sid": "AllowCreateEniWithSecurityGroups" - }, - { - "Action": "ec2:CreateNetworkInterface", - "Condition": { - "ForAllValues:StringEquals": { - "aws:TagKeys": [ - "aws:lambda:networkConnectorName", - "aws:lambda:networkConnectorId" - ] - } - }, - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:network-interface/*" - }, - "Sid": "AllowCreateEniWithLambdaTagKeys" - }, - { - "Action": "ec2:CreateTags", - "Condition": { - "StringEquals": { - "ec2:CreateAction": "CreateNetworkInterface", - "ec2:ManagedResourceOperator": "network-connectors.lambda.amazonaws.com" - } - }, - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:network-interface/*" - }, - "Sid": "TagENIOnCreate" - } - ], - "Version": "2012-10-17" - }, - "PolicyName": "NetworkConnectorOperatorPolicy" - } + "ManagedPolicyArns": [ + "arn:aws-us-gov:iam::aws:policy/AWSLambdaNetworkConnectorOperatorPolicy" ], "Tags": [ { diff --git a/tests/translator/output/aws-us-gov/network_connector_with_intrinsics.json b/tests/translator/output/aws-us-gov/network_connector_with_intrinsics.json index b498977c5..b7595d48a 100644 --- a/tests/translator/output/aws-us-gov/network_connector_with_intrinsics.json +++ b/tests/translator/output/aws-us-gov/network_connector_with_intrinsics.json @@ -63,61 +63,8 @@ ], "Version": "2012-10-17" }, - "Policies": [ - { - "PolicyDocument": { - "Statement": [ - { - "Action": "ec2:CreateNetworkInterface", - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:subnet/*" - }, - "Sid": "AllowCreateEniInAnySubnet" - }, - { - "Action": "ec2:CreateNetworkInterface", - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:security-group/*" - }, - "Sid": "AllowCreateEniWithSecurityGroups" - }, - { - "Action": "ec2:CreateNetworkInterface", - "Condition": { - "ForAllValues:StringEquals": { - "aws:TagKeys": [ - "aws:lambda:networkConnectorName", - "aws:lambda:networkConnectorId" - ] - } - }, - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:network-interface/*" - }, - "Sid": "AllowCreateEniWithLambdaTagKeys" - }, - { - "Action": "ec2:CreateTags", - "Condition": { - "StringEquals": { - "ec2:CreateAction": "CreateNetworkInterface", - "ec2:ManagedResourceOperator": "network-connectors.lambda.amazonaws.com" - } - }, - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:network-interface/*" - }, - "Sid": "TagENIOnCreate" - } - ], - "Version": "2012-10-17" - }, - "PolicyName": "NetworkConnectorOperatorPolicy" - } + "ManagedPolicyArns": [ + "arn:aws-us-gov:iam::aws:policy/AWSLambdaNetworkConnectorOperatorPolicy" ], "Tags": [ { diff --git a/tests/translator/output/aws-us-gov/network_connector_with_propagate_tags.json b/tests/translator/output/aws-us-gov/network_connector_with_propagate_tags.json index 8a5f2456d..6e863f92a 100644 --- a/tests/translator/output/aws-us-gov/network_connector_with_propagate_tags.json +++ b/tests/translator/output/aws-us-gov/network_connector_with_propagate_tags.json @@ -59,61 +59,8 @@ ], "Version": "2012-10-17" }, - "Policies": [ - { - "PolicyDocument": { - "Statement": [ - { - "Action": "ec2:CreateNetworkInterface", - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:subnet/*" - }, - "Sid": "AllowCreateEniInAnySubnet" - }, - { - "Action": "ec2:CreateNetworkInterface", - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:security-group/*" - }, - "Sid": "AllowCreateEniWithSecurityGroups" - }, - { - "Action": "ec2:CreateNetworkInterface", - "Condition": { - "ForAllValues:StringEquals": { - "aws:TagKeys": [ - "aws:lambda:networkConnectorName", - "aws:lambda:networkConnectorId" - ] - } - }, - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:network-interface/*" - }, - "Sid": "AllowCreateEniWithLambdaTagKeys" - }, - { - "Action": "ec2:CreateTags", - "Condition": { - "StringEquals": { - "ec2:CreateAction": "CreateNetworkInterface", - "ec2:ManagedResourceOperator": "network-connectors.lambda.amazonaws.com" - } - }, - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:network-interface/*" - }, - "Sid": "TagENIOnCreate" - } - ], - "Version": "2012-10-17" - }, - "PolicyName": "NetworkConnectorOperatorPolicy" - } + "ManagedPolicyArns": [ + "arn:aws-us-gov:iam::aws:policy/AWSLambdaNetworkConnectorOperatorPolicy" ], "Tags": [ { diff --git a/tests/translator/output/network_connector.json b/tests/translator/output/network_connector.json index 5374eb6a9..a125bc6c9 100644 --- a/tests/translator/output/network_connector.json +++ b/tests/translator/output/network_connector.json @@ -60,61 +60,8 @@ ], "Version": "2012-10-17" }, - "Policies": [ - { - "PolicyDocument": { - "Statement": [ - { - "Action": "ec2:CreateNetworkInterface", - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:subnet/*" - }, - "Sid": "AllowCreateEniInAnySubnet" - }, - { - "Action": "ec2:CreateNetworkInterface", - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:security-group/*" - }, - "Sid": "AllowCreateEniWithSecurityGroups" - }, - { - "Action": "ec2:CreateNetworkInterface", - "Condition": { - "ForAllValues:StringEquals": { - "aws:TagKeys": [ - "aws:lambda:networkConnectorName", - "aws:lambda:networkConnectorId" - ] - } - }, - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:network-interface/*" - }, - "Sid": "AllowCreateEniWithLambdaTagKeys" - }, - { - "Action": "ec2:CreateTags", - "Condition": { - "StringEquals": { - "ec2:CreateAction": "CreateNetworkInterface", - "ec2:ManagedResourceOperator": "network-connectors.lambda.amazonaws.com" - } - }, - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:network-interface/*" - }, - "Sid": "TagENIOnCreate" - } - ], - "Version": "2012-10-17" - }, - "PolicyName": "NetworkConnectorOperatorPolicy" - } + "ManagedPolicyArns": [ + "arn:aws:iam::aws:policy/AWSLambdaNetworkConnectorOperatorPolicy" ], "Tags": [ { diff --git a/tests/translator/output/network_connector_with_intrinsics.json b/tests/translator/output/network_connector_with_intrinsics.json index b498977c5..c89f7f62e 100644 --- a/tests/translator/output/network_connector_with_intrinsics.json +++ b/tests/translator/output/network_connector_with_intrinsics.json @@ -63,61 +63,8 @@ ], "Version": "2012-10-17" }, - "Policies": [ - { - "PolicyDocument": { - "Statement": [ - { - "Action": "ec2:CreateNetworkInterface", - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:subnet/*" - }, - "Sid": "AllowCreateEniInAnySubnet" - }, - { - "Action": "ec2:CreateNetworkInterface", - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:security-group/*" - }, - "Sid": "AllowCreateEniWithSecurityGroups" - }, - { - "Action": "ec2:CreateNetworkInterface", - "Condition": { - "ForAllValues:StringEquals": { - "aws:TagKeys": [ - "aws:lambda:networkConnectorName", - "aws:lambda:networkConnectorId" - ] - } - }, - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:network-interface/*" - }, - "Sid": "AllowCreateEniWithLambdaTagKeys" - }, - { - "Action": "ec2:CreateTags", - "Condition": { - "StringEquals": { - "ec2:CreateAction": "CreateNetworkInterface", - "ec2:ManagedResourceOperator": "network-connectors.lambda.amazonaws.com" - } - }, - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:network-interface/*" - }, - "Sid": "TagENIOnCreate" - } - ], - "Version": "2012-10-17" - }, - "PolicyName": "NetworkConnectorOperatorPolicy" - } + "ManagedPolicyArns": [ + "arn:aws:iam::aws:policy/AWSLambdaNetworkConnectorOperatorPolicy" ], "Tags": [ { diff --git a/tests/translator/output/network_connector_with_propagate_tags.json b/tests/translator/output/network_connector_with_propagate_tags.json index 8a5f2456d..d69afe601 100644 --- a/tests/translator/output/network_connector_with_propagate_tags.json +++ b/tests/translator/output/network_connector_with_propagate_tags.json @@ -59,61 +59,8 @@ ], "Version": "2012-10-17" }, - "Policies": [ - { - "PolicyDocument": { - "Statement": [ - { - "Action": "ec2:CreateNetworkInterface", - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:subnet/*" - }, - "Sid": "AllowCreateEniInAnySubnet" - }, - { - "Action": "ec2:CreateNetworkInterface", - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:security-group/*" - }, - "Sid": "AllowCreateEniWithSecurityGroups" - }, - { - "Action": "ec2:CreateNetworkInterface", - "Condition": { - "ForAllValues:StringEquals": { - "aws:TagKeys": [ - "aws:lambda:networkConnectorName", - "aws:lambda:networkConnectorId" - ] - } - }, - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:network-interface/*" - }, - "Sid": "AllowCreateEniWithLambdaTagKeys" - }, - { - "Action": "ec2:CreateTags", - "Condition": { - "StringEquals": { - "ec2:CreateAction": "CreateNetworkInterface", - "ec2:ManagedResourceOperator": "network-connectors.lambda.amazonaws.com" - } - }, - "Effect": "Allow", - "Resource": { - "Fn::Sub": "arn:${AWS::Partition}:ec2:*:*:network-interface/*" - }, - "Sid": "TagENIOnCreate" - } - ], - "Version": "2012-10-17" - }, - "PolicyName": "NetworkConnectorOperatorPolicy" - } + "ManagedPolicyArns": [ + "arn:aws:iam::aws:policy/AWSLambdaNetworkConnectorOperatorPolicy" ], "Tags": [ {