pulumi-aws 7.5.0a1755693893__py3-none-any.whl → 7.6.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. pulumi_aws/appsync/graph_ql_api.py +312 -2
  2. pulumi_aws/batch/_inputs.py +12 -10
  3. pulumi_aws/batch/compute_environment.py +1 -1
  4. pulumi_aws/batch/outputs.py +8 -6
  5. pulumi_aws/bcmdata/_inputs.py +6 -6
  6. pulumi_aws/bcmdata/export.py +6 -0
  7. pulumi_aws/bcmdata/outputs.py +4 -4
  8. pulumi_aws/dlm/_inputs.py +3 -3
  9. pulumi_aws/dlm/outputs.py +2 -2
  10. pulumi_aws/ec2/_inputs.py +117 -3
  11. pulumi_aws/ec2/instance.py +76 -22
  12. pulumi_aws/ec2/outputs.py +107 -2
  13. pulumi_aws/ec2/spot_instance_request.py +37 -52
  14. pulumi_aws/ecr/_inputs.py +52 -0
  15. pulumi_aws/ecr/get_repository.py +15 -1
  16. pulumi_aws/ecr/get_repository_creation_template.py +15 -1
  17. pulumi_aws/ecr/outputs.py +107 -0
  18. pulumi_aws/ecr/repository_creation_template.py +47 -0
  19. pulumi_aws/gamelift/fleet.py +14 -14
  20. pulumi_aws/glue/job.py +7 -56
  21. pulumi_aws/pulumi-plugin.json +1 -1
  22. pulumi_aws/rds/get_reserved_instance_offering.py +2 -2
  23. pulumi_aws/s3/_inputs.py +12 -12
  24. pulumi_aws/s3/bucket_logging.py +80 -0
  25. pulumi_aws/s3/bucket_logging_v2.py +80 -0
  26. pulumi_aws/s3/outputs.py +8 -8
  27. pulumi_aws/sesv2/_inputs.py +7 -0
  28. pulumi_aws/sesv2/outputs.py +4 -0
  29. pulumi_aws/wafv2/rule_group.py +98 -2
  30. pulumi_aws/wafv2/web_acl.py +818 -2
  31. {pulumi_aws-7.5.0a1755693893.dist-info → pulumi_aws-7.6.0.dist-info}/METADATA +1 -1
  32. {pulumi_aws-7.5.0a1755693893.dist-info → pulumi_aws-7.6.0.dist-info}/RECORD +34 -34
  33. {pulumi_aws-7.5.0a1755693893.dist-info → pulumi_aws-7.6.0.dist-info}/WHEEL +0 -0
  34. {pulumi_aws-7.5.0a1755693893.dist-info → pulumi_aws-7.6.0.dist-info}/top_level.txt +0 -0
@@ -699,7 +699,162 @@ class GraphQLApi(pulumi.CustomResource):
699
699
  xray_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
700
700
  __props__=None):
701
701
  """
702
- Create a GraphQLApi resource with the given unique name, props, and options.
702
+ Provides an AppSync GraphQL API.
703
+
704
+ ## Example Usage
705
+
706
+ ### API Key Authentication
707
+
708
+ ```python
709
+ import pulumi
710
+ import pulumi_aws as aws
711
+
712
+ example = aws.appsync.GraphQLApi("example",
713
+ authentication_type="API_KEY",
714
+ name="example")
715
+ ```
716
+
717
+ ### AWS IAM Authentication
718
+
719
+ ```python
720
+ import pulumi
721
+ import pulumi_aws as aws
722
+
723
+ example = aws.appsync.GraphQLApi("example",
724
+ authentication_type="AWS_IAM",
725
+ name="example")
726
+ ```
727
+
728
+ ### AWS Cognito User Pool Authentication
729
+
730
+ ```python
731
+ import pulumi
732
+ import pulumi_aws as aws
733
+
734
+ example = aws.appsync.GraphQLApi("example",
735
+ authentication_type="AMAZON_COGNITO_USER_POOLS",
736
+ name="example",
737
+ user_pool_config={
738
+ "aws_region": current["region"],
739
+ "default_action": "DENY",
740
+ "user_pool_id": example_aws_cognito_user_pool["id"],
741
+ })
742
+ ```
743
+
744
+ ### OpenID Connect Authentication
745
+
746
+ ```python
747
+ import pulumi
748
+ import pulumi_aws as aws
749
+
750
+ example = aws.appsync.GraphQLApi("example",
751
+ authentication_type="OPENID_CONNECT",
752
+ name="example",
753
+ openid_connect_config={
754
+ "issuer": "https://example.com",
755
+ })
756
+ ```
757
+
758
+ ### AWS Lambda Authorizer Authentication
759
+
760
+ ```python
761
+ import pulumi
762
+ import pulumi_aws as aws
763
+
764
+ example = aws.appsync.GraphQLApi("example",
765
+ authentication_type="AWS_LAMBDA",
766
+ name="example",
767
+ lambda_authorizer_config={
768
+ "authorizer_uri": "arn:aws:lambda:us-east-1:123456789012:function:custom_lambda_authorizer",
769
+ })
770
+ appsync_lambda_authorizer = aws.lambda_.Permission("appsync_lambda_authorizer",
771
+ statement_id="appsync_lambda_authorizer",
772
+ action="lambda:InvokeFunction",
773
+ function="custom_lambda_authorizer",
774
+ principal="appsync.amazonaws.com",
775
+ source_arn=example.arn)
776
+ ```
777
+
778
+ ### With Multiple Authentication Providers
779
+
780
+ ```python
781
+ import pulumi
782
+ import pulumi_aws as aws
783
+
784
+ example = aws.appsync.GraphQLApi("example",
785
+ authentication_type="API_KEY",
786
+ name="example",
787
+ additional_authentication_providers=[{
788
+ "authentication_type": "AWS_IAM",
789
+ }])
790
+ ```
791
+
792
+ ### With Schema
793
+
794
+ ```python
795
+ import pulumi
796
+ import pulumi_aws as aws
797
+
798
+ example = aws.appsync.GraphQLApi("example",
799
+ authentication_type="AWS_IAM",
800
+ name="example",
801
+ schema=\"\"\"schema {
802
+ \\x09query: Query
803
+ }
804
+ type Query {
805
+ test: Int
806
+ }
807
+ \"\"\")
808
+ ```
809
+
810
+ ### Enabling Logging
811
+
812
+ ```python
813
+ import pulumi
814
+ import pulumi_aws as aws
815
+
816
+ assume_role = aws.iam.get_policy_document(statements=[{
817
+ "effect": "Allow",
818
+ "principals": [{
819
+ "type": "Service",
820
+ "identifiers": ["appsync.amazonaws.com"],
821
+ }],
822
+ "actions": ["sts:AssumeRole"],
823
+ }])
824
+ example = aws.iam.Role("example",
825
+ name="example",
826
+ assume_role_policy=assume_role.json)
827
+ example_role_policy_attachment = aws.iam.RolePolicyAttachment("example",
828
+ policy_arn="arn:aws:iam::aws:policy/service-role/AWSAppSyncPushToCloudWatchLogs",
829
+ role=example.name)
830
+ example_graph_ql_api = aws.appsync.GraphQLApi("example", log_config={
831
+ "cloudwatch_logs_role_arn": example.arn,
832
+ "field_log_level": "ERROR",
833
+ })
834
+ ```
835
+
836
+ ### GraphQL run complexity, query depth, and introspection
837
+
838
+ ```python
839
+ import pulumi
840
+ import pulumi_aws as aws
841
+
842
+ example = aws.appsync.GraphQLApi("example",
843
+ authentication_type="AWS_IAM",
844
+ name="example",
845
+ introspection_config="ENABLED",
846
+ query_depth_limit=2,
847
+ resolver_count_limit=2)
848
+ ```
849
+
850
+ ## Import
851
+
852
+ Using `pulumi import`, import AppSync GraphQL API using the GraphQL API ID. For example:
853
+
854
+ ```sh
855
+ $ pulumi import aws:appsync/graphQLApi:GraphQLApi example 0123456789
856
+ ```
857
+
703
858
  :param str resource_name: The name of the resource.
704
859
  :param pulumi.ResourceOptions opts: Options for the resource.
705
860
  :param pulumi.Input[Sequence[pulumi.Input[Union['GraphQLApiAdditionalAuthenticationProviderArgs', 'GraphQLApiAdditionalAuthenticationProviderArgsDict']]]] additional_authentication_providers: One or more additional authentication providers for the GraphQL API. See `additional_authentication_provider` Block for details.
@@ -732,7 +887,162 @@ class GraphQLApi(pulumi.CustomResource):
732
887
  args: GraphQLApiArgs,
733
888
  opts: Optional[pulumi.ResourceOptions] = None):
734
889
  """
735
- Create a GraphQLApi resource with the given unique name, props, and options.
890
+ Provides an AppSync GraphQL API.
891
+
892
+ ## Example Usage
893
+
894
+ ### API Key Authentication
895
+
896
+ ```python
897
+ import pulumi
898
+ import pulumi_aws as aws
899
+
900
+ example = aws.appsync.GraphQLApi("example",
901
+ authentication_type="API_KEY",
902
+ name="example")
903
+ ```
904
+
905
+ ### AWS IAM Authentication
906
+
907
+ ```python
908
+ import pulumi
909
+ import pulumi_aws as aws
910
+
911
+ example = aws.appsync.GraphQLApi("example",
912
+ authentication_type="AWS_IAM",
913
+ name="example")
914
+ ```
915
+
916
+ ### AWS Cognito User Pool Authentication
917
+
918
+ ```python
919
+ import pulumi
920
+ import pulumi_aws as aws
921
+
922
+ example = aws.appsync.GraphQLApi("example",
923
+ authentication_type="AMAZON_COGNITO_USER_POOLS",
924
+ name="example",
925
+ user_pool_config={
926
+ "aws_region": current["region"],
927
+ "default_action": "DENY",
928
+ "user_pool_id": example_aws_cognito_user_pool["id"],
929
+ })
930
+ ```
931
+
932
+ ### OpenID Connect Authentication
933
+
934
+ ```python
935
+ import pulumi
936
+ import pulumi_aws as aws
937
+
938
+ example = aws.appsync.GraphQLApi("example",
939
+ authentication_type="OPENID_CONNECT",
940
+ name="example",
941
+ openid_connect_config={
942
+ "issuer": "https://example.com",
943
+ })
944
+ ```
945
+
946
+ ### AWS Lambda Authorizer Authentication
947
+
948
+ ```python
949
+ import pulumi
950
+ import pulumi_aws as aws
951
+
952
+ example = aws.appsync.GraphQLApi("example",
953
+ authentication_type="AWS_LAMBDA",
954
+ name="example",
955
+ lambda_authorizer_config={
956
+ "authorizer_uri": "arn:aws:lambda:us-east-1:123456789012:function:custom_lambda_authorizer",
957
+ })
958
+ appsync_lambda_authorizer = aws.lambda_.Permission("appsync_lambda_authorizer",
959
+ statement_id="appsync_lambda_authorizer",
960
+ action="lambda:InvokeFunction",
961
+ function="custom_lambda_authorizer",
962
+ principal="appsync.amazonaws.com",
963
+ source_arn=example.arn)
964
+ ```
965
+
966
+ ### With Multiple Authentication Providers
967
+
968
+ ```python
969
+ import pulumi
970
+ import pulumi_aws as aws
971
+
972
+ example = aws.appsync.GraphQLApi("example",
973
+ authentication_type="API_KEY",
974
+ name="example",
975
+ additional_authentication_providers=[{
976
+ "authentication_type": "AWS_IAM",
977
+ }])
978
+ ```
979
+
980
+ ### With Schema
981
+
982
+ ```python
983
+ import pulumi
984
+ import pulumi_aws as aws
985
+
986
+ example = aws.appsync.GraphQLApi("example",
987
+ authentication_type="AWS_IAM",
988
+ name="example",
989
+ schema=\"\"\"schema {
990
+ \\x09query: Query
991
+ }
992
+ type Query {
993
+ test: Int
994
+ }
995
+ \"\"\")
996
+ ```
997
+
998
+ ### Enabling Logging
999
+
1000
+ ```python
1001
+ import pulumi
1002
+ import pulumi_aws as aws
1003
+
1004
+ assume_role = aws.iam.get_policy_document(statements=[{
1005
+ "effect": "Allow",
1006
+ "principals": [{
1007
+ "type": "Service",
1008
+ "identifiers": ["appsync.amazonaws.com"],
1009
+ }],
1010
+ "actions": ["sts:AssumeRole"],
1011
+ }])
1012
+ example = aws.iam.Role("example",
1013
+ name="example",
1014
+ assume_role_policy=assume_role.json)
1015
+ example_role_policy_attachment = aws.iam.RolePolicyAttachment("example",
1016
+ policy_arn="arn:aws:iam::aws:policy/service-role/AWSAppSyncPushToCloudWatchLogs",
1017
+ role=example.name)
1018
+ example_graph_ql_api = aws.appsync.GraphQLApi("example", log_config={
1019
+ "cloudwatch_logs_role_arn": example.arn,
1020
+ "field_log_level": "ERROR",
1021
+ })
1022
+ ```
1023
+
1024
+ ### GraphQL run complexity, query depth, and introspection
1025
+
1026
+ ```python
1027
+ import pulumi
1028
+ import pulumi_aws as aws
1029
+
1030
+ example = aws.appsync.GraphQLApi("example",
1031
+ authentication_type="AWS_IAM",
1032
+ name="example",
1033
+ introspection_config="ENABLED",
1034
+ query_depth_limit=2,
1035
+ resolver_count_limit=2)
1036
+ ```
1037
+
1038
+ ## Import
1039
+
1040
+ Using `pulumi import`, import AppSync GraphQL API using the GraphQL API ID. For example:
1041
+
1042
+ ```sh
1043
+ $ pulumi import aws:appsync/graphQLApi:GraphQLApi example 0123456789
1044
+ ```
1045
+
736
1046
  :param str resource_name: The name of the resource.
737
1047
  :param GraphQLApiArgs args: The arguments to use to populate this resource's properties.
738
1048
  :param pulumi.ResourceOptions opts: Options for the resource.
@@ -626,11 +626,11 @@ class ComputeEnvironmentEksConfigurationArgs:
626
626
 
627
627
  if not MYPY:
628
628
  class ComputeEnvironmentUpdatePolicyArgsDict(TypedDict):
629
- job_execution_timeout_minutes: pulumi.Input[_builtins.int]
629
+ job_execution_timeout_minutes: NotRequired[pulumi.Input[_builtins.int]]
630
630
  """
631
631
  Specifies the job timeout (in minutes) when the compute environment infrastructure is updated.
632
632
  """
633
- terminate_jobs_on_update: pulumi.Input[_builtins.bool]
633
+ terminate_jobs_on_update: NotRequired[pulumi.Input[_builtins.bool]]
634
634
  """
635
635
  Specifies whether jobs are automatically terminated when the computer environment infrastructure is updated.
636
636
  """
@@ -640,37 +640,39 @@ elif False:
640
640
  @pulumi.input_type
641
641
  class ComputeEnvironmentUpdatePolicyArgs:
642
642
  def __init__(__self__, *,
643
- job_execution_timeout_minutes: pulumi.Input[_builtins.int],
644
- terminate_jobs_on_update: pulumi.Input[_builtins.bool]):
643
+ job_execution_timeout_minutes: Optional[pulumi.Input[_builtins.int]] = None,
644
+ terminate_jobs_on_update: Optional[pulumi.Input[_builtins.bool]] = None):
645
645
  """
646
646
  :param pulumi.Input[_builtins.int] job_execution_timeout_minutes: Specifies the job timeout (in minutes) when the compute environment infrastructure is updated.
647
647
  :param pulumi.Input[_builtins.bool] terminate_jobs_on_update: Specifies whether jobs are automatically terminated when the computer environment infrastructure is updated.
648
648
  """
649
- pulumi.set(__self__, "job_execution_timeout_minutes", job_execution_timeout_minutes)
650
- pulumi.set(__self__, "terminate_jobs_on_update", terminate_jobs_on_update)
649
+ if job_execution_timeout_minutes is not None:
650
+ pulumi.set(__self__, "job_execution_timeout_minutes", job_execution_timeout_minutes)
651
+ if terminate_jobs_on_update is not None:
652
+ pulumi.set(__self__, "terminate_jobs_on_update", terminate_jobs_on_update)
651
653
 
652
654
  @_builtins.property
653
655
  @pulumi.getter(name="jobExecutionTimeoutMinutes")
654
- def job_execution_timeout_minutes(self) -> pulumi.Input[_builtins.int]:
656
+ def job_execution_timeout_minutes(self) -> Optional[pulumi.Input[_builtins.int]]:
655
657
  """
656
658
  Specifies the job timeout (in minutes) when the compute environment infrastructure is updated.
657
659
  """
658
660
  return pulumi.get(self, "job_execution_timeout_minutes")
659
661
 
660
662
  @job_execution_timeout_minutes.setter
661
- def job_execution_timeout_minutes(self, value: pulumi.Input[_builtins.int]):
663
+ def job_execution_timeout_minutes(self, value: Optional[pulumi.Input[_builtins.int]]):
662
664
  pulumi.set(self, "job_execution_timeout_minutes", value)
663
665
 
664
666
  @_builtins.property
665
667
  @pulumi.getter(name="terminateJobsOnUpdate")
666
- def terminate_jobs_on_update(self) -> pulumi.Input[_builtins.bool]:
668
+ def terminate_jobs_on_update(self) -> Optional[pulumi.Input[_builtins.bool]]:
667
669
  """
668
670
  Specifies whether jobs are automatically terminated when the computer environment infrastructure is updated.
669
671
  """
670
672
  return pulumi.get(self, "terminate_jobs_on_update")
671
673
 
672
674
  @terminate_jobs_on_update.setter
673
- def terminate_jobs_on_update(self, value: pulumi.Input[_builtins.bool]):
675
+ def terminate_jobs_on_update(self, value: Optional[pulumi.Input[_builtins.bool]]):
674
676
  pulumi.set(self, "terminate_jobs_on_update", value)
675
677
 
676
678
 
@@ -967,7 +967,7 @@ class ComputeEnvironment(pulumi.CustomResource):
967
967
 
968
968
  @_builtins.property
969
969
  @pulumi.getter(name="updatePolicy")
970
- def update_policy(self) -> pulumi.Output[Optional['outputs.ComputeEnvironmentUpdatePolicy']]:
970
+ def update_policy(self) -> pulumi.Output['outputs.ComputeEnvironmentUpdatePolicy']:
971
971
  """
972
972
  Specifies the infrastructure update policy for the compute environment. See details below.
973
973
  """
@@ -543,18 +543,20 @@ class ComputeEnvironmentUpdatePolicy(dict):
543
543
  return super().get(key, default)
544
544
 
545
545
  def __init__(__self__, *,
546
- job_execution_timeout_minutes: _builtins.int,
547
- terminate_jobs_on_update: _builtins.bool):
546
+ job_execution_timeout_minutes: Optional[_builtins.int] = None,
547
+ terminate_jobs_on_update: Optional[_builtins.bool] = None):
548
548
  """
549
549
  :param _builtins.int job_execution_timeout_minutes: Specifies the job timeout (in minutes) when the compute environment infrastructure is updated.
550
550
  :param _builtins.bool terminate_jobs_on_update: Specifies whether jobs are automatically terminated when the computer environment infrastructure is updated.
551
551
  """
552
- pulumi.set(__self__, "job_execution_timeout_minutes", job_execution_timeout_minutes)
553
- pulumi.set(__self__, "terminate_jobs_on_update", terminate_jobs_on_update)
552
+ if job_execution_timeout_minutes is not None:
553
+ pulumi.set(__self__, "job_execution_timeout_minutes", job_execution_timeout_minutes)
554
+ if terminate_jobs_on_update is not None:
555
+ pulumi.set(__self__, "terminate_jobs_on_update", terminate_jobs_on_update)
554
556
 
555
557
  @_builtins.property
556
558
  @pulumi.getter(name="jobExecutionTimeoutMinutes")
557
- def job_execution_timeout_minutes(self) -> _builtins.int:
559
+ def job_execution_timeout_minutes(self) -> Optional[_builtins.int]:
558
560
  """
559
561
  Specifies the job timeout (in minutes) when the compute environment infrastructure is updated.
560
562
  """
@@ -562,7 +564,7 @@ class ComputeEnvironmentUpdatePolicy(dict):
562
564
 
563
565
  @_builtins.property
564
566
  @pulumi.getter(name="terminateJobsOnUpdate")
565
- def terminate_jobs_on_update(self) -> _builtins.bool:
567
+ def terminate_jobs_on_update(self) -> Optional[_builtins.bool]:
566
568
  """
567
569
  Specifies whether jobs are automatically terminated when the computer environment infrastructure is updated.
568
570
  """
@@ -161,11 +161,11 @@ if not MYPY:
161
161
  class ExportExportDataQueryArgsDict(TypedDict):
162
162
  query_statement: pulumi.Input[_builtins.str]
163
163
  """
164
- Query statement.
164
+ Query statement. The SQL table name for CUR 2.0 is `COST_AND_USAGE_REPORT`. See the [AWS documentation](https://docs.aws.amazon.com/cur/latest/userguide/table-dictionary-cur2.html) for a list of available columns.
165
165
  """
166
166
  table_configurations: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]]
167
167
  """
168
- Table configuration.
168
+ Table configuration. See the [AWS documentation](https://docs.aws.amazon.com/cur/latest/userguide/table-dictionary-cur2.html#cur2-table-configurations) for the available configurations. In addition to those listed in the documentation, `BILLING_VIEW_ARN` must also be included, as shown in the example above.
169
169
  """
170
170
  elif False:
171
171
  ExportExportDataQueryArgsDict: TypeAlias = Mapping[str, Any]
@@ -176,8 +176,8 @@ class ExportExportDataQueryArgs:
176
176
  query_statement: pulumi.Input[_builtins.str],
177
177
  table_configurations: Optional[pulumi.Input[Mapping[str, pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]] = None):
178
178
  """
179
- :param pulumi.Input[_builtins.str] query_statement: Query statement.
180
- :param pulumi.Input[Mapping[str, pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]] table_configurations: Table configuration.
179
+ :param pulumi.Input[_builtins.str] query_statement: Query statement. The SQL table name for CUR 2.0 is `COST_AND_USAGE_REPORT`. See the [AWS documentation](https://docs.aws.amazon.com/cur/latest/userguide/table-dictionary-cur2.html) for a list of available columns.
180
+ :param pulumi.Input[Mapping[str, pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]] table_configurations: Table configuration. See the [AWS documentation](https://docs.aws.amazon.com/cur/latest/userguide/table-dictionary-cur2.html#cur2-table-configurations) for the available configurations. In addition to those listed in the documentation, `BILLING_VIEW_ARN` must also be included, as shown in the example above.
181
181
  """
182
182
  pulumi.set(__self__, "query_statement", query_statement)
183
183
  if table_configurations is not None:
@@ -187,7 +187,7 @@ class ExportExportDataQueryArgs:
187
187
  @pulumi.getter(name="queryStatement")
188
188
  def query_statement(self) -> pulumi.Input[_builtins.str]:
189
189
  """
190
- Query statement.
190
+ Query statement. The SQL table name for CUR 2.0 is `COST_AND_USAGE_REPORT`. See the [AWS documentation](https://docs.aws.amazon.com/cur/latest/userguide/table-dictionary-cur2.html) for a list of available columns.
191
191
  """
192
192
  return pulumi.get(self, "query_statement")
193
193
 
@@ -199,7 +199,7 @@ class ExportExportDataQueryArgs:
199
199
  @pulumi.getter(name="tableConfigurations")
200
200
  def table_configurations(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]]]:
201
201
  """
202
- Table configuration.
202
+ Table configuration. See the [AWS documentation](https://docs.aws.amazon.com/cur/latest/userguide/table-dictionary-cur2.html#cur2-table-configurations) for the available configurations. In addition to those listed in the documentation, `BILLING_VIEW_ARN` must also be included, as shown in the example above.
203
203
  """
204
204
  return pulumi.get(self, "table_configurations")
205
205
 
@@ -165,12 +165,15 @@ class Export(pulumi.CustomResource):
165
165
  import pulumi
166
166
  import pulumi_aws as aws
167
167
 
168
+ current = aws.get_caller_identity()
169
+ current_get_partition = aws.get_partition()
168
170
  test = aws.bcmdata.Export("test", export={
169
171
  "name": "testexample",
170
172
  "data_queries": [{
171
173
  "query_statement": "SELECT identity_line_item_id, identity_time_interval, line_item_product_code,line_item_unblended_cost FROM COST_AND_USAGE_REPORT",
172
174
  "table_configurations": {
173
175
  "COST_AND_USAGE_REPORT": {
176
+ "BILLING_VIEW_ARN": f"arn:{current_get_partition.partition}:billing::{current.account_id}:billingview/primary",
174
177
  "TIME_GRANULARITY": "HOURLY",
175
178
  "INCLUDE_RESOURCES": "FALSE",
176
179
  "INCLUDE_MANUAL_DISCOUNT_COMPATIBILITY": "FALSE",
@@ -226,12 +229,15 @@ class Export(pulumi.CustomResource):
226
229
  import pulumi
227
230
  import pulumi_aws as aws
228
231
 
232
+ current = aws.get_caller_identity()
233
+ current_get_partition = aws.get_partition()
229
234
  test = aws.bcmdata.Export("test", export={
230
235
  "name": "testexample",
231
236
  "data_queries": [{
232
237
  "query_statement": "SELECT identity_line_item_id, identity_time_interval, line_item_product_code,line_item_unblended_cost FROM COST_AND_USAGE_REPORT",
233
238
  "table_configurations": {
234
239
  "COST_AND_USAGE_REPORT": {
240
+ "BILLING_VIEW_ARN": f"arn:{current_get_partition.partition}:billing::{current.account_id}:billingview/primary",
235
241
  "TIME_GRANULARITY": "HOURLY",
236
242
  "INCLUDE_RESOURCES": "FALSE",
237
243
  "INCLUDE_MANUAL_DISCOUNT_COMPATIBILITY": "FALSE",
@@ -147,8 +147,8 @@ class ExportExportDataQuery(dict):
147
147
  query_statement: _builtins.str,
148
148
  table_configurations: Optional[Mapping[str, Mapping[str, _builtins.str]]] = None):
149
149
  """
150
- :param _builtins.str query_statement: Query statement.
151
- :param Mapping[str, Mapping[str, _builtins.str]] table_configurations: Table configuration.
150
+ :param _builtins.str query_statement: Query statement. The SQL table name for CUR 2.0 is `COST_AND_USAGE_REPORT`. See the [AWS documentation](https://docs.aws.amazon.com/cur/latest/userguide/table-dictionary-cur2.html) for a list of available columns.
151
+ :param Mapping[str, Mapping[str, _builtins.str]] table_configurations: Table configuration. See the [AWS documentation](https://docs.aws.amazon.com/cur/latest/userguide/table-dictionary-cur2.html#cur2-table-configurations) for the available configurations. In addition to those listed in the documentation, `BILLING_VIEW_ARN` must also be included, as shown in the example above.
152
152
  """
153
153
  pulumi.set(__self__, "query_statement", query_statement)
154
154
  if table_configurations is not None:
@@ -158,7 +158,7 @@ class ExportExportDataQuery(dict):
158
158
  @pulumi.getter(name="queryStatement")
159
159
  def query_statement(self) -> _builtins.str:
160
160
  """
161
- Query statement.
161
+ Query statement. The SQL table name for CUR 2.0 is `COST_AND_USAGE_REPORT`. See the [AWS documentation](https://docs.aws.amazon.com/cur/latest/userguide/table-dictionary-cur2.html) for a list of available columns.
162
162
  """
163
163
  return pulumi.get(self, "query_statement")
164
164
 
@@ -166,7 +166,7 @@ class ExportExportDataQuery(dict):
166
166
  @pulumi.getter(name="tableConfigurations")
167
167
  def table_configurations(self) -> Optional[Mapping[str, Mapping[str, _builtins.str]]]:
168
168
  """
169
- Table configuration.
169
+ Table configuration. See the [AWS documentation](https://docs.aws.amazon.com/cur/latest/userguide/table-dictionary-cur2.html#cur2-table-configurations) for the available configurations. In addition to those listed in the documentation, `BILLING_VIEW_ARN` must also be included, as shown in the example above.
170
170
  """
171
171
  return pulumi.get(self, "table_configurations")
172
172
 
pulumi_aws/dlm/_inputs.py CHANGED
@@ -82,7 +82,7 @@ if not MYPY:
82
82
  """
83
83
  target_tags: NotRequired[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]
84
84
  """
85
- A map of tag keys and their values. Any resources that match the `resource_types` and are tagged with _any_ of these tags will be targeted.
85
+ A map of tag keys and their values. Any resources that match the `resource_types` and are tagged with _any_ of these tags will be targeted. Required when `policy_type` is `EBS_SNAPSHOT_MANAGEMENT` or `IMAGE_MANAGEMENT`. Must not be specified when `policy_type` is `EVENT_BASED_POLICY`.
86
86
 
87
87
  > Note: You cannot have overlapping lifecycle policies that share the same `target_tags`. Pulumi is unable to detect this at plan time but it will fail during apply.
88
88
  """
@@ -107,7 +107,7 @@ class LifecyclePolicyPolicyDetailsArgs:
107
107
  :param pulumi.Input[_builtins.str] resource_locations: The location of the resources to backup. If the source resources are located in an AWS Region, specify `CLOUD`. If the source resources are located on an Outpost in your account, specify `OUTPOST`. If the source resources are located in a Local Zone, specify `LOCAL_ZONE`. Valid values are `CLOUD`, `LOCAL_ZONE`, and `OUTPOST`.
108
108
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] resource_types: A list of resource types that should be targeted by the lifecycle policy. Valid values are `VOLUME` and `INSTANCE`.
109
109
  :param pulumi.Input[Sequence[pulumi.Input['LifecyclePolicyPolicyDetailsScheduleArgs']]] schedules: See the `schedule` configuration block.
110
- :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] target_tags: A map of tag keys and their values. Any resources that match the `resource_types` and are tagged with _any_ of these tags will be targeted.
110
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] target_tags: A map of tag keys and their values. Any resources that match the `resource_types` and are tagged with _any_ of these tags will be targeted. Required when `policy_type` is `EBS_SNAPSHOT_MANAGEMENT` or `IMAGE_MANAGEMENT`. Must not be specified when `policy_type` is `EVENT_BASED_POLICY`.
111
111
 
112
112
  > Note: You cannot have overlapping lifecycle policies that share the same `target_tags`. Pulumi is unable to detect this at plan time but it will fail during apply.
113
113
  """
@@ -213,7 +213,7 @@ class LifecyclePolicyPolicyDetailsArgs:
213
213
  @pulumi.getter(name="targetTags")
214
214
  def target_tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
215
215
  """
216
- A map of tag keys and their values. Any resources that match the `resource_types` and are tagged with _any_ of these tags will be targeted.
216
+ A map of tag keys and their values. Any resources that match the `resource_types` and are tagged with _any_ of these tags will be targeted. Required when `policy_type` is `EBS_SNAPSHOT_MANAGEMENT` or `IMAGE_MANAGEMENT`. Must not be specified when `policy_type` is `EVENT_BASED_POLICY`.
217
217
 
218
218
  > Note: You cannot have overlapping lifecycle policies that share the same `target_tags`. Pulumi is unable to detect this at plan time but it will fail during apply.
219
219
  """
pulumi_aws/dlm/outputs.py CHANGED
@@ -78,7 +78,7 @@ class LifecyclePolicyPolicyDetails(dict):
78
78
  :param _builtins.str resource_locations: The location of the resources to backup. If the source resources are located in an AWS Region, specify `CLOUD`. If the source resources are located on an Outpost in your account, specify `OUTPOST`. If the source resources are located in a Local Zone, specify `LOCAL_ZONE`. Valid values are `CLOUD`, `LOCAL_ZONE`, and `OUTPOST`.
79
79
  :param Sequence[_builtins.str] resource_types: A list of resource types that should be targeted by the lifecycle policy. Valid values are `VOLUME` and `INSTANCE`.
80
80
  :param Sequence['LifecyclePolicyPolicyDetailsScheduleArgs'] schedules: See the `schedule` configuration block.
81
- :param Mapping[str, _builtins.str] target_tags: A map of tag keys and their values. Any resources that match the `resource_types` and are tagged with _any_ of these tags will be targeted.
81
+ :param Mapping[str, _builtins.str] target_tags: A map of tag keys and their values. Any resources that match the `resource_types` and are tagged with _any_ of these tags will be targeted. Required when `policy_type` is `EBS_SNAPSHOT_MANAGEMENT` or `IMAGE_MANAGEMENT`. Must not be specified when `policy_type` is `EVENT_BASED_POLICY`.
82
82
 
83
83
  > Note: You cannot have overlapping lifecycle policies that share the same `target_tags`. Pulumi is unable to detect this at plan time but it will fail during apply.
84
84
  """
@@ -156,7 +156,7 @@ class LifecyclePolicyPolicyDetails(dict):
156
156
  @pulumi.getter(name="targetTags")
157
157
  def target_tags(self) -> Optional[Mapping[str, _builtins.str]]:
158
158
  """
159
- A map of tag keys and their values. Any resources that match the `resource_types` and are tagged with _any_ of these tags will be targeted.
159
+ A map of tag keys and their values. Any resources that match the `resource_types` and are tagged with _any_ of these tags will be targeted. Required when `policy_type` is `EBS_SNAPSHOT_MANAGEMENT` or `IMAGE_MANAGEMENT`. Must not be specified when `policy_type` is `EVENT_BASED_POLICY`.
160
160
 
161
161
  > Note: You cannot have overlapping lifecycle policies that share the same `target_tags`. Pulumi is unable to detect this at plan time but it will fail during apply.
162
162
  """