diff --git a/aws-mwaa-environment/aws-mwaa-environment.json b/aws-mwaa-environment/aws-mwaa-environment.json index 00d0039..eb57a48 100644 --- a/aws-mwaa-environment/aws-mwaa-environment.json +++ b/aws-mwaa-environment/aws-mwaa-environment.json @@ -21,7 +21,8 @@ "DELETING", "DELETED", "UPDATE_FAILED", - "UNAVAILABLE" + "UNAVAILABLE", + "PENDING" ] }, "UpdateStatus": { @@ -324,6 +325,29 @@ "PRIVATE_ONLY", "PUBLIC_ONLY" ] + }, + "EndpointManagement": { + "type": "string", + "description": "Defines whether the VPC endpoints configured for the environment are created, and managed, by the customer or by Amazon MWAA.", + "enum": [ + "CUSTOMER", + "SERVICE" + ] + }, + "CeleryExecutorQueue": { + "type": "string", + "description": "The celery executor queue associated with the environment.", + "maxLength": 1224 + }, + "DatabaseVpcEndpointService": { + "type": "string", + "description": "The database VPC endpoint service name.", + "maxLength": 1224 + }, + "WebserverVpcEndpointService": { + "type": "string", + "description": "The webserver VPC endpoint service name, applicable if private webserver access mode selected.", + "maxLength": 1224 } }, "properties": { @@ -400,6 +424,18 @@ }, "WebserverAccessMode": { "$ref": "#/definitions/WebserverAccessMode" + }, + "EndpointManagement": { + "$ref": "#/definitions/EndpointManagement" + }, + "CeleryExecutorQueue": { + "$ref": "#/definitions/CeleryExecutorQueue" + }, + "DatabaseVpcEndpointService": { + "$ref": "#/definitions/DatabaseVpcEndpointService" + }, + "WebserverVpcEndpointService": { + "$ref": "#/definitions/WebserverVpcEndpointService" } }, "additionalProperties": false, @@ -409,10 +445,14 @@ "createOnlyProperties": [ "/properties/Name", "/properties/KmsKey", - "/properties/NetworkConfiguration/SubnetIds" + "/properties/NetworkConfiguration/SubnetIds", + "/properties/EndpointManagement" ], "readOnlyProperties": [ "/properties/Arn", + "/properties/CeleryExecutorQueue", + "/properties/DatabaseVpcEndpointService", + "/properties/WebserverVpcEndpointService", "/properties/WebserverUrl", "/properties/LoggingConfiguration/DagProcessingLogs/CloudWatchLogGroupArn", "/properties/LoggingConfiguration/SchedulerLogs/CloudWatchLogGroupArn", diff --git a/aws-mwaa-environment/docs/README.md b/aws-mwaa-environment/docs/README.md new file mode 100644 index 0000000..f6a3e35 --- /dev/null +++ b/aws-mwaa-environment/docs/README.md @@ -0,0 +1,433 @@ +# AWS::MWAA::Environment + +Resource schema for AWS::MWAA::Environment + +## Syntax + +To declare this entity in your AWS CloudFormation template, use the following syntax: + +### JSON + +
+{ + "Type" : "AWS::MWAA::Environment", + "Properties" : { + "Name" : String, + "ExecutionRoleArn" : String, + "KmsKey" : String, + "AirflowVersion" : String, + "SourceBucketArn" : String, + "DagS3Path" : String, + "PluginsS3Path" : String, + "PluginsS3ObjectVersion" : String, + "RequirementsS3Path" : String, + "RequirementsS3ObjectVersion" : String, + "StartupScriptS3Path" : String, + "StartupScriptS3ObjectVersion" : String, + "AirflowConfigurationOptions" : Map, + "EnvironmentClass" : String, + "MaxWorkers" : Integer, + "MinWorkers" : Integer, + "Schedulers" : Integer, + "NetworkConfiguration" : NetworkConfiguration, + "LoggingConfiguration" : LoggingConfiguration, + "WeeklyMaintenanceWindowStart" : String, + "Tags" : Map, + "WebserverAccessMode" : String, + "EndpointManagement" : String, + } +} ++ +### YAML + +
+Type: AWS::MWAA::Environment +Properties: + Name: String + ExecutionRoleArn: String + KmsKey: String + AirflowVersion: String + SourceBucketArn: String + DagS3Path: String + PluginsS3Path: String + PluginsS3ObjectVersion: String + RequirementsS3Path: String + RequirementsS3ObjectVersion: String + StartupScriptS3Path: String + StartupScriptS3ObjectVersion: String + AirflowConfigurationOptions: Map + EnvironmentClass: String + MaxWorkers: Integer + MinWorkers: Integer + Schedulers: Integer + NetworkConfiguration: NetworkConfiguration + LoggingConfiguration: LoggingConfiguration + WeeklyMaintenanceWindowStart: String + Tags: Map + WebserverAccessMode: String + EndpointManagement: String ++ +## Properties + +#### Name + +Customer-defined identifier for the environment, unique per customer region. + +_Required_: Yes + +_Type_: String + +_Minimum Length_:
1
+
+_Maximum Length_: 80
+
+_Pattern_: ^[a-zA-Z][0-9a-zA-Z\-_]*$
+
+_Update requires_: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)
+
+#### ExecutionRoleArn
+
+IAM role to be used by tasks.
+
+_Required_: No
+
+_Type_: String
+
+_Maximum Length_: 1224
+
+_Pattern_: ^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b)(-[a-z]+)?:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+$
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
+#### KmsKey
+
+The identifier of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use for MWAA data encryption.
+
+ You can specify the CMK using any of the following:
+
+ Key ID. For example, key/1234abcd-12ab-34cd-56ef-1234567890ab.
+
+ Key alias. For example, alias/ExampleAlias.
+
+ Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef.
+
+ Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias.
+
+ AWS authenticates the CMK asynchronously. Therefore, if you specify an ID, alias, or ARN that is not valid, the action can appear to complete, but eventually fails.
+
+_Required_: No
+
+_Type_: String
+
+_Maximum Length_: 1224
+
+_Pattern_: ^(((arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b)(-[a-z]+)?:kms:[a-z]{2}-[a-z]+-\d:\d+:)?key\/)?[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}|(arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b):kms:[a-z]{2}-[a-z]+-\d:\d+:)?alias/.+)$
+
+_Update requires_: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)
+
+#### AirflowVersion
+
+Version of airflow to deploy to the environment.
+
+_Required_: No
+
+_Type_: String
+
+_Maximum Length_: 32
+
+_Pattern_: ^[0-9a-z.]+$
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
+#### SourceBucketArn
+
+ARN for the AWS S3 bucket to use as the source of DAGs and plugins for the environment.
+
+_Required_: No
+
+_Type_: String
+
+_Minimum Length_: 1
+
+_Maximum Length_: 1224
+
+_Pattern_: ^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b)(-[a-z]+)?:s3:::[a-z0-9.\-]+$
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
+#### DagS3Path
+
+Represents an S3 prefix relative to the root of an S3 bucket.
+
+_Required_: No
+
+_Type_: String
+
+_Maximum Length_: 1024
+
+_Pattern_: .*
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
+#### PluginsS3Path
+
+Represents an S3 prefix relative to the root of an S3 bucket.
+
+_Required_: No
+
+_Type_: String
+
+_Maximum Length_: 1024
+
+_Pattern_: .*
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
+#### PluginsS3ObjectVersion
+
+Represents an version ID for an S3 object.
+
+_Required_: No
+
+_Type_: String
+
+_Maximum Length_: 1024
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
+#### RequirementsS3Path
+
+Represents an S3 prefix relative to the root of an S3 bucket.
+
+_Required_: No
+
+_Type_: String
+
+_Maximum Length_: 1024
+
+_Pattern_: .*
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
+#### RequirementsS3ObjectVersion
+
+Represents an version ID for an S3 object.
+
+_Required_: No
+
+_Type_: String
+
+_Maximum Length_: 1024
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
+#### StartupScriptS3Path
+
+Represents an S3 prefix relative to the root of an S3 bucket.
+
+_Required_: No
+
+_Type_: String
+
+_Maximum Length_: 1024
+
+_Pattern_: .*
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
+#### StartupScriptS3ObjectVersion
+
+Represents an version ID for an S3 object.
+
+_Required_: No
+
+_Type_: String
+
+_Maximum Length_: 1024
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
+#### AirflowConfigurationOptions
+
+Key/value pairs representing Airflow configuration variables.
+ Keys are prefixed by their section:
+
+ [core]
+ dags_folder={AIRFLOW_HOME}/dags
+
+ Would be represented as
+
+ "core.dags_folder": "{AIRFLOW_HOME}/dags"
+
+_Required_: No
+
+_Type_: Map
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
+#### EnvironmentClass
+
+Templated configuration for airflow processes and backing infrastructure.
+
+_Required_: No
+
+_Type_: String
+
+_Minimum Length_: 1
+
+_Maximum Length_: 1024
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
+#### MaxWorkers
+
+Maximum worker compute units.
+
+_Required_: No
+
+_Type_: Integer
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
+#### MinWorkers
+
+Minimum worker compute units.
+
+_Required_: No
+
+_Type_: Integer
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
+#### Schedulers
+
+Scheduler compute units.
+
+_Required_: No
+
+_Type_: Integer
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
+#### NetworkConfiguration
+
+Configures the network resources of the environment.
+
+_Required_: No
+
+_Type_: NetworkConfiguration
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
+#### LoggingConfiguration
+
+Logging configuration for the environment.
+
+_Required_: No
+
+_Type_: LoggingConfiguration
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
+#### WeeklyMaintenanceWindowStart
+
+Start time for the weekly maintenance window.
+
+_Required_: No
+
+_Type_: String
+
+_Maximum Length_: 9
+
+_Pattern_: (MON|TUE|WED|THU|FRI|SAT|SUN):([01]\d|2[0-3]):(00|30)
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
+#### Tags
+
+A map of tags for the environment.
+
+_Required_: No
+
+_Type_: Map
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
+#### WebserverAccessMode
+
+Choice for mode of webserver access including over public internet or via private VPC endpoint.
+
+_Required_: No
+
+_Type_: String
+
+_Allowed Values_: PRIVATE_ONLY
| PUBLIC_ONLY
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
+#### EndpointManagement
+
+Defines whether the VPC endpoints configured for the environment are created, and managed, by the customer or by Amazon MWAA.
+
+_Required_: No
+
+_Type_: String
+
+_Allowed Values_: CUSTOMER
| SERVICE
+
+_Update requires_: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)
+
+## Return Values
+
+### Ref
+
+When you pass the logical ID of this resource to the intrinsic `Ref` function, Ref returns the Name.
+
+### Fn::GetAtt
+
+The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.
+
+For more information about using the `Fn::GetAtt` intrinsic function, see [Fn::GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html).
+
+#### Arn
+
+ARN for the MWAA environment.
+
+#### CeleryExecutorQueue
+
+The celery executor queue associated with the environment.
+
+#### DatabaseVpcEndpointService
+
+The database VPC endpoint service name.
+
+#### WebserverVpcEndpointService
+
+The webserver VPC endpoint service name, applicable if private webserver access mode selected.
+
+#### WebserverUrl
+
+Url endpoint for the environment's Airflow UI.
+
+#### CloudWatchLogGroupArn
+
+Returns the CloudWatchLogGroupArn
value.
+
+#### CloudWatchLogGroupArn
+
+Returns the CloudWatchLogGroupArn
value.
+
+#### CloudWatchLogGroupArn
+
+Returns the CloudWatchLogGroupArn
value.
+
+#### CloudWatchLogGroupArn
+
+Returns the CloudWatchLogGroupArn
value.
+
+#### CloudWatchLogGroupArn
+
+Returns the CloudWatchLogGroupArn
value.
+
diff --git a/aws-mwaa-environment/docs/loggingconfiguration.md b/aws-mwaa-environment/docs/loggingconfiguration.md
new file mode 100644
index 0000000..78ba95f
--- /dev/null
+++ b/aws-mwaa-environment/docs/loggingconfiguration.md
@@ -0,0 +1,74 @@
+# AWS::MWAA::Environment LoggingConfiguration
+
+Logging configuration for the environment.
+
+## Syntax
+
+To declare this entity in your AWS CloudFormation template, use the following syntax:
+
+### JSON
+
++{ + "DagProcessingLogs" : ModuleLoggingConfiguration, + "SchedulerLogs" : ModuleLoggingConfiguration, + "WebserverLogs" : ModuleLoggingConfiguration, + "WorkerLogs" : ModuleLoggingConfiguration, + "TaskLogs" : ModuleLoggingConfiguration +} ++ +### YAML + +
+DagProcessingLogs: ModuleLoggingConfiguration +SchedulerLogs: ModuleLoggingConfiguration +WebserverLogs: ModuleLoggingConfiguration +WorkerLogs: ModuleLoggingConfiguration +TaskLogs: ModuleLoggingConfiguration ++ +## Properties + +#### DagProcessingLogs + +Logging configuration for a specific airflow component. + +_Required_: No + +_Type_: ModuleLoggingConfiguration + +_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt) + +#### SchedulerLogs + +_Required_: No + +_Type_: ModuleLoggingConfiguration + +_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt) + +#### WebserverLogs + +_Required_: No + +_Type_: ModuleLoggingConfiguration + +_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt) + +#### WorkerLogs + +_Required_: No + +_Type_: ModuleLoggingConfiguration + +_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt) + +#### TaskLogs + +_Required_: No + +_Type_: ModuleLoggingConfiguration + +_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt) + diff --git a/aws-mwaa-environment/docs/moduleloggingconfiguration.md b/aws-mwaa-environment/docs/moduleloggingconfiguration.md new file mode 100644 index 0000000..259a254 --- /dev/null +++ b/aws-mwaa-environment/docs/moduleloggingconfiguration.md @@ -0,0 +1,58 @@ +# AWS::MWAA::Environment ModuleLoggingConfiguration + +Logging configuration for a specific airflow component. + +## Syntax + +To declare this entity in your AWS CloudFormation template, use the following syntax: + +### JSON + +
+{ + "Enabled" : Boolean, + "LogLevel" : String, + "CloudWatchLogGroupArn" : String +} ++ +### YAML + +
+Enabled: Boolean +LogLevel: String +CloudWatchLogGroupArn: String ++ +## Properties + +#### Enabled + +_Required_: No + +_Type_: Boolean + +_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt) + +#### LogLevel + +_Required_: No + +_Type_: String + +_Allowed Values_:
CRITICAL
| ERROR
| WARNING
| INFO
| DEBUG
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
+#### CloudWatchLogGroupArn
+
+_Required_: No
+
+_Type_: String
+
+_Maximum Length_: 1224
+
+_Pattern_: ^arn:(aws|aws-us-gov|aws-cn|aws-iso|aws-iso-b)(-[a-z]+)?:logs:[a-z0-9\-]+:\d{12}:log-group:\w+
+
+_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)
+
diff --git a/aws-mwaa-environment/docs/networkconfiguration.md b/aws-mwaa-environment/docs/networkconfiguration.md
new file mode 100644
index 0000000..b908913
--- /dev/null
+++ b/aws-mwaa-environment/docs/networkconfiguration.md
@@ -0,0 +1,48 @@
+# AWS::MWAA::Environment NetworkConfiguration
+
+Configures the network resources of the environment.
+
+## Syntax
+
+To declare this entity in your AWS CloudFormation template, use the following syntax:
+
+### JSON
+
++{ + "SubnetIds" : [ String, ... ], + "SecurityGroupIds" : [ String, ... ] +} ++ +### YAML + +
+SubnetIds: + - String +SecurityGroupIds: + - String ++ +## Properties + +#### SubnetIds + +A list of subnets to use for the environment. These must be private subnets, in the same VPC, in two different availability zones. + +_Required_: No + +_Type_: List of String + +_Update requires_: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement) + +#### SecurityGroupIds + +A list of security groups to use for the environment. + +_Required_: No + +_Type_: List of String + +_Update requires_: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt) + diff --git a/aws-mwaa-environment/pom.xml b/aws-mwaa-environment/pom.xml index ef9ed1c..86aa48f 100644 --- a/aws-mwaa-environment/pom.xml +++ b/aws-mwaa-environment/pom.xml @@ -37,14 +37,14 @@