pulumi-gcp 8.40.0a1754636117__py3-none-any.whl → 8.40.0a1754951145__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 (157) hide show
  1. pulumi_gcp/__init__.py +128 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +24 -4
  3. pulumi_gcp/accesscontextmanager/outputs.py +15 -3
  4. pulumi_gcp/apigee/__init__.py +2 -0
  5. pulumi_gcp/apigee/_inputs.py +1435 -0
  6. pulumi_gcp/apigee/api_product.py +1698 -0
  7. pulumi_gcp/apigee/outputs.py +1081 -0
  8. pulumi_gcp/apigee/security_action.py +1010 -0
  9. pulumi_gcp/artifactregistry/__init__.py +1 -0
  10. pulumi_gcp/artifactregistry/get_docker_images.py +164 -0
  11. pulumi_gcp/artifactregistry/outputs.py +109 -2
  12. pulumi_gcp/artifactregistry/repository.py +6 -6
  13. pulumi_gcp/backupdisasterrecovery/backup_vault.py +56 -0
  14. pulumi_gcp/backupdisasterrecovery/get_backup_vault.py +12 -1
  15. pulumi_gcp/bigquery/_inputs.py +6 -0
  16. pulumi_gcp/bigquery/get_table.py +23 -1
  17. pulumi_gcp/bigquery/outputs.py +4 -0
  18. pulumi_gcp/bigquery/table.py +62 -0
  19. pulumi_gcp/bigqueryanalyticshub/_inputs.py +180 -0
  20. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +80 -0
  21. pulumi_gcp/bigqueryanalyticshub/listing.py +322 -2
  22. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +32 -0
  23. pulumi_gcp/bigqueryanalyticshub/outputs.py +159 -0
  24. pulumi_gcp/bigtable/__init__.py +1 -0
  25. pulumi_gcp/bigtable/_inputs.py +33 -0
  26. pulumi_gcp/bigtable/outputs.py +36 -0
  27. pulumi_gcp/bigtable/schema_bundle.py +568 -0
  28. pulumi_gcp/cloudfunctions/_inputs.py +48 -0
  29. pulumi_gcp/cloudfunctions/function.py +94 -0
  30. pulumi_gcp/cloudfunctions/get_function.py +23 -1
  31. pulumi_gcp/cloudfunctions/outputs.py +70 -0
  32. pulumi_gcp/cloudrunv2/_inputs.py +20 -0
  33. pulumi_gcp/cloudrunv2/job.py +2 -0
  34. pulumi_gcp/cloudrunv2/outputs.py +25 -0
  35. pulumi_gcp/cloudrunv2/worker_pool.py +2 -0
  36. pulumi_gcp/compute/__init__.py +1 -0
  37. pulumi_gcp/compute/_inputs.py +713 -22
  38. pulumi_gcp/compute/firewall_policy_with_rules.py +66 -0
  39. pulumi_gcp/compute/forwarding_rule.py +0 -21
  40. pulumi_gcp/compute/get_router.py +12 -1
  41. pulumi_gcp/compute/outputs.py +562 -22
  42. pulumi_gcp/compute/preview_feature.py +396 -0
  43. pulumi_gcp/compute/region_url_map.py +392 -0
  44. pulumi_gcp/compute/reservation.py +4 -4
  45. pulumi_gcp/compute/router.py +54 -0
  46. pulumi_gcp/compute/storage_pool.py +154 -0
  47. pulumi_gcp/compute/subnetwork.py +54 -0
  48. pulumi_gcp/config/__init__.pyi +2 -0
  49. pulumi_gcp/config/vars.py +4 -0
  50. pulumi_gcp/container/_inputs.py +278 -8
  51. pulumi_gcp/container/cluster.py +61 -21
  52. pulumi_gcp/container/get_cluster.py +12 -1
  53. pulumi_gcp/container/outputs.py +352 -8
  54. pulumi_gcp/dataproc/_inputs.py +249 -14
  55. pulumi_gcp/dataproc/batch.py +6 -0
  56. pulumi_gcp/dataproc/cluster.py +2 -0
  57. pulumi_gcp/dataproc/outputs.py +215 -12
  58. pulumi_gcp/dataproc/session_template.py +14 -2
  59. pulumi_gcp/developerconnect/__init__.py +1 -0
  60. pulumi_gcp/developerconnect/_inputs.py +583 -0
  61. pulumi_gcp/developerconnect/insights_config.py +895 -0
  62. pulumi_gcp/developerconnect/outputs.py +442 -0
  63. pulumi_gcp/diagflow/__init__.py +1 -0
  64. pulumi_gcp/diagflow/_inputs.py +1165 -58
  65. pulumi_gcp/diagflow/cx_generator.py +636 -0
  66. pulumi_gcp/diagflow/cx_tool.py +2 -2
  67. pulumi_gcp/diagflow/cx_webhook.py +380 -36
  68. pulumi_gcp/diagflow/outputs.py +848 -25
  69. pulumi_gcp/discoveryengine/__init__.py +2 -0
  70. pulumi_gcp/discoveryengine/_inputs.py +465 -0
  71. pulumi_gcp/discoveryengine/cmek_config.py +707 -0
  72. pulumi_gcp/discoveryengine/outputs.py +412 -0
  73. pulumi_gcp/discoveryengine/recommendation_engine.py +813 -0
  74. pulumi_gcp/firestore/field.py +6 -6
  75. pulumi_gcp/gemini/gemini_gcp_enablement_setting.py +107 -9
  76. pulumi_gcp/gemini/gemini_gcp_enablement_setting_binding.py +2 -2
  77. pulumi_gcp/gkehub/membership_binding.py +6 -6
  78. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  79. pulumi_gcp/gkehub/namespace.py +4 -4
  80. pulumi_gcp/gkehub/scope_rbac_role_binding.py +8 -8
  81. pulumi_gcp/iam/__init__.py +4 -0
  82. pulumi_gcp/iam/_inputs.py +98 -0
  83. pulumi_gcp/iam/get_workforce_pool_iam_policy.py +161 -0
  84. pulumi_gcp/iam/outputs.py +56 -0
  85. pulumi_gcp/iam/workforce_pool_iam_binding.py +761 -0
  86. pulumi_gcp/iam/workforce_pool_iam_member.py +761 -0
  87. pulumi_gcp/iam/workforce_pool_iam_policy.py +600 -0
  88. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  89. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  90. pulumi_gcp/looker/instance.py +28 -7
  91. pulumi_gcp/managedkafka/_inputs.py +127 -0
  92. pulumi_gcp/managedkafka/cluster.py +131 -1
  93. pulumi_gcp/managedkafka/connect_cluster.py +4 -4
  94. pulumi_gcp/managedkafka/connector.py +4 -4
  95. pulumi_gcp/managedkafka/outputs.py +128 -0
  96. pulumi_gcp/memorystore/instance.py +8 -12
  97. pulumi_gcp/modelarmor/__init__.py +1 -0
  98. pulumi_gcp/modelarmor/_inputs.py +683 -0
  99. pulumi_gcp/modelarmor/floorsetting.py +736 -0
  100. pulumi_gcp/modelarmor/outputs.py +618 -0
  101. pulumi_gcp/networkconnectivity/_inputs.py +60 -0
  102. pulumi_gcp/networkconnectivity/internal_range.py +136 -0
  103. pulumi_gcp/networkconnectivity/outputs.py +55 -0
  104. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  105. pulumi_gcp/oracledatabase/__init__.py +2 -0
  106. pulumi_gcp/oracledatabase/autonomous_database.py +262 -38
  107. pulumi_gcp/oracledatabase/cloud_vm_cluster.py +314 -50
  108. pulumi_gcp/oracledatabase/get_autonomous_database.py +23 -1
  109. pulumi_gcp/oracledatabase/get_cloud_vm_cluster.py +34 -1
  110. pulumi_gcp/oracledatabase/odb_network.py +721 -0
  111. pulumi_gcp/oracledatabase/odb_subnet.py +803 -0
  112. pulumi_gcp/oracledatabase/outputs.py +83 -0
  113. pulumi_gcp/orgpolicy/policy.py +2 -2
  114. pulumi_gcp/parametermanager/parameter_version.py +62 -0
  115. pulumi_gcp/parametermanager/regional_parameter_version.py +64 -0
  116. pulumi_gcp/provider.py +20 -0
  117. pulumi_gcp/pubsub/subscription.py +46 -6
  118. pulumi_gcp/pubsub/topic.py +36 -0
  119. pulumi_gcp/pulumi-plugin.json +1 -1
  120. pulumi_gcp/redis/cluster.py +70 -0
  121. pulumi_gcp/redis/get_cluster.py +12 -1
  122. pulumi_gcp/redis/instance.py +8 -12
  123. pulumi_gcp/secretmanager/get_regional_secret.py +12 -1
  124. pulumi_gcp/secretmanager/get_secret.py +12 -1
  125. pulumi_gcp/secretmanager/outputs.py +30 -0
  126. pulumi_gcp/secretmanager/regional_secret.py +61 -0
  127. pulumi_gcp/secretmanager/secret.py +61 -0
  128. pulumi_gcp/securesourcemanager/branch_rule.py +16 -8
  129. pulumi_gcp/securesourcemanager/instance.py +112 -4
  130. pulumi_gcp/securesourcemanager/repository.py +112 -8
  131. pulumi_gcp/serviceaccount/get_account_key.py +1 -0
  132. pulumi_gcp/sql/_inputs.py +6 -6
  133. pulumi_gcp/sql/database.py +0 -12
  134. pulumi_gcp/sql/outputs.py +4 -4
  135. pulumi_gcp/storage/__init__.py +2 -0
  136. pulumi_gcp/storage/_inputs.py +451 -0
  137. pulumi_gcp/storage/bucket.py +7 -7
  138. pulumi_gcp/storage/bucket_object.py +34 -0
  139. pulumi_gcp/storage/get_bucket_object.py +12 -1
  140. pulumi_gcp/storage/get_bucket_object_content.py +12 -1
  141. pulumi_gcp/storage/get_insights_dataset_config.py +363 -0
  142. pulumi_gcp/storage/insights_dataset_config.py +1280 -0
  143. pulumi_gcp/storage/outputs.py +619 -0
  144. pulumi_gcp/vertex/__init__.py +1 -0
  145. pulumi_gcp/vertex/_inputs.py +3646 -3
  146. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  147. pulumi_gcp/vertex/ai_endpoint_with_model_garden_deployment.py +940 -0
  148. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  149. pulumi_gcp/vertex/outputs.py +2609 -2
  150. pulumi_gcp/vmwareengine/network_peering.py +7 -7
  151. pulumi_gcp/workbench/_inputs.py +118 -0
  152. pulumi_gcp/workbench/instance.py +171 -2
  153. pulumi_gcp/workbench/outputs.py +91 -0
  154. {pulumi_gcp-8.40.0a1754636117.dist-info → pulumi_gcp-8.40.0a1754951145.dist-info}/METADATA +1 -1
  155. {pulumi_gcp-8.40.0a1754636117.dist-info → pulumi_gcp-8.40.0a1754951145.dist-info}/RECORD +157 -138
  156. {pulumi_gcp-8.40.0a1754636117.dist-info → pulumi_gcp-8.40.0a1754951145.dist-info}/WHEEL +0 -0
  157. {pulumi_gcp-8.40.0a1754636117.dist-info → pulumi_gcp-8.40.0a1754951145.dist-info}/top_level.txt +0 -0
@@ -29,6 +29,36 @@ __all__ = [
29
29
  'AddonsConfigAddonsConfigMonetizationConfigArgsDict',
30
30
  'ApiMetaDataArgs',
31
31
  'ApiMetaDataArgsDict',
32
+ 'ApiProductAttributeArgs',
33
+ 'ApiProductAttributeArgsDict',
34
+ 'ApiProductGraphqlOperationGroupArgs',
35
+ 'ApiProductGraphqlOperationGroupArgsDict',
36
+ 'ApiProductGraphqlOperationGroupOperationConfigArgs',
37
+ 'ApiProductGraphqlOperationGroupOperationConfigArgsDict',
38
+ 'ApiProductGraphqlOperationGroupOperationConfigAttributeArgs',
39
+ 'ApiProductGraphqlOperationGroupOperationConfigAttributeArgsDict',
40
+ 'ApiProductGraphqlOperationGroupOperationConfigOperationArgs',
41
+ 'ApiProductGraphqlOperationGroupOperationConfigOperationArgsDict',
42
+ 'ApiProductGraphqlOperationGroupOperationConfigQuotaArgs',
43
+ 'ApiProductGraphqlOperationGroupOperationConfigQuotaArgsDict',
44
+ 'ApiProductGrpcOperationGroupArgs',
45
+ 'ApiProductGrpcOperationGroupArgsDict',
46
+ 'ApiProductGrpcOperationGroupOperationConfigArgs',
47
+ 'ApiProductGrpcOperationGroupOperationConfigArgsDict',
48
+ 'ApiProductGrpcOperationGroupOperationConfigAttributeArgs',
49
+ 'ApiProductGrpcOperationGroupOperationConfigAttributeArgsDict',
50
+ 'ApiProductGrpcOperationGroupOperationConfigQuotaArgs',
51
+ 'ApiProductGrpcOperationGroupOperationConfigQuotaArgsDict',
52
+ 'ApiProductOperationGroupArgs',
53
+ 'ApiProductOperationGroupArgsDict',
54
+ 'ApiProductOperationGroupOperationConfigArgs',
55
+ 'ApiProductOperationGroupOperationConfigArgsDict',
56
+ 'ApiProductOperationGroupOperationConfigAttributeArgs',
57
+ 'ApiProductOperationGroupOperationConfigAttributeArgsDict',
58
+ 'ApiProductOperationGroupOperationConfigOperationArgs',
59
+ 'ApiProductOperationGroupOperationConfigOperationArgsDict',
60
+ 'ApiProductOperationGroupOperationConfigQuotaArgs',
61
+ 'ApiProductOperationGroupOperationConfigQuotaArgsDict',
32
62
  'AppGroupAttributeArgs',
33
63
  'AppGroupAttributeArgsDict',
34
64
  'DeveloperAttributeArgs',
@@ -71,6 +101,16 @@ __all__ = [
71
101
  'OrganizationPropertiesArgsDict',
72
102
  'OrganizationPropertiesPropertyArgs',
73
103
  'OrganizationPropertiesPropertyArgsDict',
104
+ 'SecurityActionAllowArgs',
105
+ 'SecurityActionAllowArgsDict',
106
+ 'SecurityActionConditionConfigArgs',
107
+ 'SecurityActionConditionConfigArgsDict',
108
+ 'SecurityActionDenyArgs',
109
+ 'SecurityActionDenyArgsDict',
110
+ 'SecurityActionFlagArgs',
111
+ 'SecurityActionFlagArgsDict',
112
+ 'SecurityActionFlagHeaderArgs',
113
+ 'SecurityActionFlagHeaderArgsDict',
74
114
  'SecurityMonitoringConditionIncludeAllResourcesArgs',
75
115
  'SecurityMonitoringConditionIncludeAllResourcesArgsDict',
76
116
  'SecurityProfileV2ProfileAssessmentConfigArgs',
@@ -490,6 +530,1020 @@ class ApiMetaDataArgs:
490
530
  pulumi.set(self, "sub_type", value)
491
531
 
492
532
 
533
+ if not MYPY:
534
+ class ApiProductAttributeArgsDict(TypedDict):
535
+ name: NotRequired[pulumi.Input[_builtins.str]]
536
+ """
537
+ Key of the attribute.
538
+ """
539
+ value: NotRequired[pulumi.Input[_builtins.str]]
540
+ """
541
+ Value of the attribute.
542
+ """
543
+ elif False:
544
+ ApiProductAttributeArgsDict: TypeAlias = Mapping[str, Any]
545
+
546
+ @pulumi.input_type
547
+ class ApiProductAttributeArgs:
548
+ def __init__(__self__, *,
549
+ name: Optional[pulumi.Input[_builtins.str]] = None,
550
+ value: Optional[pulumi.Input[_builtins.str]] = None):
551
+ """
552
+ :param pulumi.Input[_builtins.str] name: Key of the attribute.
553
+ :param pulumi.Input[_builtins.str] value: Value of the attribute.
554
+ """
555
+ if name is not None:
556
+ pulumi.set(__self__, "name", name)
557
+ if value is not None:
558
+ pulumi.set(__self__, "value", value)
559
+
560
+ @_builtins.property
561
+ @pulumi.getter
562
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
563
+ """
564
+ Key of the attribute.
565
+ """
566
+ return pulumi.get(self, "name")
567
+
568
+ @name.setter
569
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
570
+ pulumi.set(self, "name", value)
571
+
572
+ @_builtins.property
573
+ @pulumi.getter
574
+ def value(self) -> Optional[pulumi.Input[_builtins.str]]:
575
+ """
576
+ Value of the attribute.
577
+ """
578
+ return pulumi.get(self, "value")
579
+
580
+ @value.setter
581
+ def value(self, value: Optional[pulumi.Input[_builtins.str]]):
582
+ pulumi.set(self, "value", value)
583
+
584
+
585
+ if not MYPY:
586
+ class ApiProductGraphqlOperationGroupArgsDict(TypedDict):
587
+ operation_config_type: NotRequired[pulumi.Input[_builtins.str]]
588
+ """
589
+ Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include proxy or remoteservice. Defaults to proxy. Set to proxy when Apigee API proxies are associated with the API product. Set to remoteservice when non-Apigee proxies like Istio-Envoy are associated with the API product.
590
+ Possible values are: `proxy`, `remoteservice`.
591
+ """
592
+ operation_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['ApiProductGraphqlOperationGroupOperationConfigArgsDict']]]]
593
+ """
594
+ List of graphQL operation configuration details associated with Apigee API proxies or remote services. Remote services are non-Apigee proxies, such as Istio-Envoy.
595
+ Structure is documented below.
596
+ """
597
+ elif False:
598
+ ApiProductGraphqlOperationGroupArgsDict: TypeAlias = Mapping[str, Any]
599
+
600
+ @pulumi.input_type
601
+ class ApiProductGraphqlOperationGroupArgs:
602
+ def __init__(__self__, *,
603
+ operation_config_type: Optional[pulumi.Input[_builtins.str]] = None,
604
+ operation_configs: Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductGraphqlOperationGroupOperationConfigArgs']]]] = None):
605
+ """
606
+ :param pulumi.Input[_builtins.str] operation_config_type: Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include proxy or remoteservice. Defaults to proxy. Set to proxy when Apigee API proxies are associated with the API product. Set to remoteservice when non-Apigee proxies like Istio-Envoy are associated with the API product.
607
+ Possible values are: `proxy`, `remoteservice`.
608
+ :param pulumi.Input[Sequence[pulumi.Input['ApiProductGraphqlOperationGroupOperationConfigArgs']]] operation_configs: List of graphQL operation configuration details associated with Apigee API proxies or remote services. Remote services are non-Apigee proxies, such as Istio-Envoy.
609
+ Structure is documented below.
610
+ """
611
+ if operation_config_type is not None:
612
+ pulumi.set(__self__, "operation_config_type", operation_config_type)
613
+ if operation_configs is not None:
614
+ pulumi.set(__self__, "operation_configs", operation_configs)
615
+
616
+ @_builtins.property
617
+ @pulumi.getter(name="operationConfigType")
618
+ def operation_config_type(self) -> Optional[pulumi.Input[_builtins.str]]:
619
+ """
620
+ Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include proxy or remoteservice. Defaults to proxy. Set to proxy when Apigee API proxies are associated with the API product. Set to remoteservice when non-Apigee proxies like Istio-Envoy are associated with the API product.
621
+ Possible values are: `proxy`, `remoteservice`.
622
+ """
623
+ return pulumi.get(self, "operation_config_type")
624
+
625
+ @operation_config_type.setter
626
+ def operation_config_type(self, value: Optional[pulumi.Input[_builtins.str]]):
627
+ pulumi.set(self, "operation_config_type", value)
628
+
629
+ @_builtins.property
630
+ @pulumi.getter(name="operationConfigs")
631
+ def operation_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductGraphqlOperationGroupOperationConfigArgs']]]]:
632
+ """
633
+ List of graphQL operation configuration details associated with Apigee API proxies or remote services. Remote services are non-Apigee proxies, such as Istio-Envoy.
634
+ Structure is documented below.
635
+ """
636
+ return pulumi.get(self, "operation_configs")
637
+
638
+ @operation_configs.setter
639
+ def operation_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductGraphqlOperationGroupOperationConfigArgs']]]]):
640
+ pulumi.set(self, "operation_configs", value)
641
+
642
+
643
+ if not MYPY:
644
+ class ApiProductGraphqlOperationGroupOperationConfigArgsDict(TypedDict):
645
+ api_source: NotRequired[pulumi.Input[_builtins.str]]
646
+ """
647
+ Required. Name of the API proxy with which the gRPC operation and quota are associated.
648
+ """
649
+ attributes: NotRequired[pulumi.Input[Sequence[pulumi.Input['ApiProductGraphqlOperationGroupOperationConfigAttributeArgsDict']]]]
650
+ """
651
+ Custom attributes associated with the operation.
652
+ Structure is documented below.
653
+ """
654
+ operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ApiProductGraphqlOperationGroupOperationConfigOperationArgsDict']]]]
655
+ """
656
+ Required. List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name.
657
+ Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.
658
+ Structure is documented below.
659
+ """
660
+ quota: NotRequired[pulumi.Input['ApiProductGraphqlOperationGroupOperationConfigQuotaArgsDict']]
661
+ """
662
+ Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done.
663
+ Structure is documented below.
664
+ """
665
+ elif False:
666
+ ApiProductGraphqlOperationGroupOperationConfigArgsDict: TypeAlias = Mapping[str, Any]
667
+
668
+ @pulumi.input_type
669
+ class ApiProductGraphqlOperationGroupOperationConfigArgs:
670
+ def __init__(__self__, *,
671
+ api_source: Optional[pulumi.Input[_builtins.str]] = None,
672
+ attributes: Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductGraphqlOperationGroupOperationConfigAttributeArgs']]]] = None,
673
+ operations: Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductGraphqlOperationGroupOperationConfigOperationArgs']]]] = None,
674
+ quota: Optional[pulumi.Input['ApiProductGraphqlOperationGroupOperationConfigQuotaArgs']] = None):
675
+ """
676
+ :param pulumi.Input[_builtins.str] api_source: Required. Name of the API proxy with which the gRPC operation and quota are associated.
677
+ :param pulumi.Input[Sequence[pulumi.Input['ApiProductGraphqlOperationGroupOperationConfigAttributeArgs']]] attributes: Custom attributes associated with the operation.
678
+ Structure is documented below.
679
+ :param pulumi.Input[Sequence[pulumi.Input['ApiProductGraphqlOperationGroupOperationConfigOperationArgs']]] operations: Required. List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name.
680
+ Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.
681
+ Structure is documented below.
682
+ :param pulumi.Input['ApiProductGraphqlOperationGroupOperationConfigQuotaArgs'] quota: Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done.
683
+ Structure is documented below.
684
+ """
685
+ if api_source is not None:
686
+ pulumi.set(__self__, "api_source", api_source)
687
+ if attributes is not None:
688
+ pulumi.set(__self__, "attributes", attributes)
689
+ if operations is not None:
690
+ pulumi.set(__self__, "operations", operations)
691
+ if quota is not None:
692
+ pulumi.set(__self__, "quota", quota)
693
+
694
+ @_builtins.property
695
+ @pulumi.getter(name="apiSource")
696
+ def api_source(self) -> Optional[pulumi.Input[_builtins.str]]:
697
+ """
698
+ Required. Name of the API proxy with which the gRPC operation and quota are associated.
699
+ """
700
+ return pulumi.get(self, "api_source")
701
+
702
+ @api_source.setter
703
+ def api_source(self, value: Optional[pulumi.Input[_builtins.str]]):
704
+ pulumi.set(self, "api_source", value)
705
+
706
+ @_builtins.property
707
+ @pulumi.getter
708
+ def attributes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductGraphqlOperationGroupOperationConfigAttributeArgs']]]]:
709
+ """
710
+ Custom attributes associated with the operation.
711
+ Structure is documented below.
712
+ """
713
+ return pulumi.get(self, "attributes")
714
+
715
+ @attributes.setter
716
+ def attributes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductGraphqlOperationGroupOperationConfigAttributeArgs']]]]):
717
+ pulumi.set(self, "attributes", value)
718
+
719
+ @_builtins.property
720
+ @pulumi.getter
721
+ def operations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductGraphqlOperationGroupOperationConfigOperationArgs']]]]:
722
+ """
723
+ Required. List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name.
724
+ Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.
725
+ Structure is documented below.
726
+ """
727
+ return pulumi.get(self, "operations")
728
+
729
+ @operations.setter
730
+ def operations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductGraphqlOperationGroupOperationConfigOperationArgs']]]]):
731
+ pulumi.set(self, "operations", value)
732
+
733
+ @_builtins.property
734
+ @pulumi.getter
735
+ def quota(self) -> Optional[pulumi.Input['ApiProductGraphqlOperationGroupOperationConfigQuotaArgs']]:
736
+ """
737
+ Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done.
738
+ Structure is documented below.
739
+ """
740
+ return pulumi.get(self, "quota")
741
+
742
+ @quota.setter
743
+ def quota(self, value: Optional[pulumi.Input['ApiProductGraphqlOperationGroupOperationConfigQuotaArgs']]):
744
+ pulumi.set(self, "quota", value)
745
+
746
+
747
+ if not MYPY:
748
+ class ApiProductGraphqlOperationGroupOperationConfigAttributeArgsDict(TypedDict):
749
+ name: NotRequired[pulumi.Input[_builtins.str]]
750
+ """
751
+ Key of the attribute.
752
+ """
753
+ value: NotRequired[pulumi.Input[_builtins.str]]
754
+ """
755
+ Value of the attribute.
756
+ """
757
+ elif False:
758
+ ApiProductGraphqlOperationGroupOperationConfigAttributeArgsDict: TypeAlias = Mapping[str, Any]
759
+
760
+ @pulumi.input_type
761
+ class ApiProductGraphqlOperationGroupOperationConfigAttributeArgs:
762
+ def __init__(__self__, *,
763
+ name: Optional[pulumi.Input[_builtins.str]] = None,
764
+ value: Optional[pulumi.Input[_builtins.str]] = None):
765
+ """
766
+ :param pulumi.Input[_builtins.str] name: Key of the attribute.
767
+ :param pulumi.Input[_builtins.str] value: Value of the attribute.
768
+ """
769
+ if name is not None:
770
+ pulumi.set(__self__, "name", name)
771
+ if value is not None:
772
+ pulumi.set(__self__, "value", value)
773
+
774
+ @_builtins.property
775
+ @pulumi.getter
776
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
777
+ """
778
+ Key of the attribute.
779
+ """
780
+ return pulumi.get(self, "name")
781
+
782
+ @name.setter
783
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
784
+ pulumi.set(self, "name", value)
785
+
786
+ @_builtins.property
787
+ @pulumi.getter
788
+ def value(self) -> Optional[pulumi.Input[_builtins.str]]:
789
+ """
790
+ Value of the attribute.
791
+ """
792
+ return pulumi.get(self, "value")
793
+
794
+ @value.setter
795
+ def value(self, value: Optional[pulumi.Input[_builtins.str]]):
796
+ pulumi.set(self, "value", value)
797
+
798
+
799
+ if not MYPY:
800
+ class ApiProductGraphqlOperationGroupOperationConfigOperationArgsDict(TypedDict):
801
+ operation: NotRequired[pulumi.Input[_builtins.str]]
802
+ """
803
+ GraphQL operation name. The name and operation type will be used to apply quotas. If no name is specified, the quota will be applied to all GraphQL operations irrespective of their operation names in the payload.
804
+ """
805
+ operation_types: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
806
+ """
807
+ Required. GraphQL operation types. Valid values include query or mutation.
808
+ Note: Apigee does not currently support subscription types.
809
+ """
810
+ elif False:
811
+ ApiProductGraphqlOperationGroupOperationConfigOperationArgsDict: TypeAlias = Mapping[str, Any]
812
+
813
+ @pulumi.input_type
814
+ class ApiProductGraphqlOperationGroupOperationConfigOperationArgs:
815
+ def __init__(__self__, *,
816
+ operation: Optional[pulumi.Input[_builtins.str]] = None,
817
+ operation_types: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
818
+ """
819
+ :param pulumi.Input[_builtins.str] operation: GraphQL operation name. The name and operation type will be used to apply quotas. If no name is specified, the quota will be applied to all GraphQL operations irrespective of their operation names in the payload.
820
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] operation_types: Required. GraphQL operation types. Valid values include query or mutation.
821
+ Note: Apigee does not currently support subscription types.
822
+ """
823
+ if operation is not None:
824
+ pulumi.set(__self__, "operation", operation)
825
+ if operation_types is not None:
826
+ pulumi.set(__self__, "operation_types", operation_types)
827
+
828
+ @_builtins.property
829
+ @pulumi.getter
830
+ def operation(self) -> Optional[pulumi.Input[_builtins.str]]:
831
+ """
832
+ GraphQL operation name. The name and operation type will be used to apply quotas. If no name is specified, the quota will be applied to all GraphQL operations irrespective of their operation names in the payload.
833
+ """
834
+ return pulumi.get(self, "operation")
835
+
836
+ @operation.setter
837
+ def operation(self, value: Optional[pulumi.Input[_builtins.str]]):
838
+ pulumi.set(self, "operation", value)
839
+
840
+ @_builtins.property
841
+ @pulumi.getter(name="operationTypes")
842
+ def operation_types(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
843
+ """
844
+ Required. GraphQL operation types. Valid values include query or mutation.
845
+ Note: Apigee does not currently support subscription types.
846
+ """
847
+ return pulumi.get(self, "operation_types")
848
+
849
+ @operation_types.setter
850
+ def operation_types(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
851
+ pulumi.set(self, "operation_types", value)
852
+
853
+
854
+ if not MYPY:
855
+ class ApiProductGraphqlOperationGroupOperationConfigQuotaArgsDict(TypedDict):
856
+ interval: NotRequired[pulumi.Input[_builtins.str]]
857
+ """
858
+ Required. Time interval over which the number of request messages is calculated.
859
+ """
860
+ limit: NotRequired[pulumi.Input[_builtins.str]]
861
+ """
862
+ Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
863
+ """
864
+ time_unit: NotRequired[pulumi.Input[_builtins.str]]
865
+ """
866
+ Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
867
+ """
868
+ elif False:
869
+ ApiProductGraphqlOperationGroupOperationConfigQuotaArgsDict: TypeAlias = Mapping[str, Any]
870
+
871
+ @pulumi.input_type
872
+ class ApiProductGraphqlOperationGroupOperationConfigQuotaArgs:
873
+ def __init__(__self__, *,
874
+ interval: Optional[pulumi.Input[_builtins.str]] = None,
875
+ limit: Optional[pulumi.Input[_builtins.str]] = None,
876
+ time_unit: Optional[pulumi.Input[_builtins.str]] = None):
877
+ """
878
+ :param pulumi.Input[_builtins.str] interval: Required. Time interval over which the number of request messages is calculated.
879
+ :param pulumi.Input[_builtins.str] limit: Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
880
+ :param pulumi.Input[_builtins.str] time_unit: Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
881
+ """
882
+ if interval is not None:
883
+ pulumi.set(__self__, "interval", interval)
884
+ if limit is not None:
885
+ pulumi.set(__self__, "limit", limit)
886
+ if time_unit is not None:
887
+ pulumi.set(__self__, "time_unit", time_unit)
888
+
889
+ @_builtins.property
890
+ @pulumi.getter
891
+ def interval(self) -> Optional[pulumi.Input[_builtins.str]]:
892
+ """
893
+ Required. Time interval over which the number of request messages is calculated.
894
+ """
895
+ return pulumi.get(self, "interval")
896
+
897
+ @interval.setter
898
+ def interval(self, value: Optional[pulumi.Input[_builtins.str]]):
899
+ pulumi.set(self, "interval", value)
900
+
901
+ @_builtins.property
902
+ @pulumi.getter
903
+ def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
904
+ """
905
+ Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
906
+ """
907
+ return pulumi.get(self, "limit")
908
+
909
+ @limit.setter
910
+ def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
911
+ pulumi.set(self, "limit", value)
912
+
913
+ @_builtins.property
914
+ @pulumi.getter(name="timeUnit")
915
+ def time_unit(self) -> Optional[pulumi.Input[_builtins.str]]:
916
+ """
917
+ Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
918
+ """
919
+ return pulumi.get(self, "time_unit")
920
+
921
+ @time_unit.setter
922
+ def time_unit(self, value: Optional[pulumi.Input[_builtins.str]]):
923
+ pulumi.set(self, "time_unit", value)
924
+
925
+
926
+ if not MYPY:
927
+ class ApiProductGrpcOperationGroupArgsDict(TypedDict):
928
+ operation_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['ApiProductGrpcOperationGroupOperationConfigArgsDict']]]]
929
+ """
930
+ Required. List of operation configurations for either Apigee API proxies that are associated with this API product.
931
+ Structure is documented below.
932
+ """
933
+ elif False:
934
+ ApiProductGrpcOperationGroupArgsDict: TypeAlias = Mapping[str, Any]
935
+
936
+ @pulumi.input_type
937
+ class ApiProductGrpcOperationGroupArgs:
938
+ def __init__(__self__, *,
939
+ operation_configs: Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductGrpcOperationGroupOperationConfigArgs']]]] = None):
940
+ """
941
+ :param pulumi.Input[Sequence[pulumi.Input['ApiProductGrpcOperationGroupOperationConfigArgs']]] operation_configs: Required. List of operation configurations for either Apigee API proxies that are associated with this API product.
942
+ Structure is documented below.
943
+ """
944
+ if operation_configs is not None:
945
+ pulumi.set(__self__, "operation_configs", operation_configs)
946
+
947
+ @_builtins.property
948
+ @pulumi.getter(name="operationConfigs")
949
+ def operation_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductGrpcOperationGroupOperationConfigArgs']]]]:
950
+ """
951
+ Required. List of operation configurations for either Apigee API proxies that are associated with this API product.
952
+ Structure is documented below.
953
+ """
954
+ return pulumi.get(self, "operation_configs")
955
+
956
+ @operation_configs.setter
957
+ def operation_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductGrpcOperationGroupOperationConfigArgs']]]]):
958
+ pulumi.set(self, "operation_configs", value)
959
+
960
+
961
+ if not MYPY:
962
+ class ApiProductGrpcOperationGroupOperationConfigArgsDict(TypedDict):
963
+ api_source: NotRequired[pulumi.Input[_builtins.str]]
964
+ """
965
+ Required. Name of the API proxy with which the gRPC operation and quota are associated.
966
+ """
967
+ attributes: NotRequired[pulumi.Input[Sequence[pulumi.Input['ApiProductGrpcOperationGroupOperationConfigAttributeArgsDict']]]]
968
+ """
969
+ Custom attributes associated with the operation.
970
+ Structure is documented below.
971
+ """
972
+ methods: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
973
+ """
974
+ List of unqualified gRPC method names for the proxy to which quota will be applied. If this field is empty, the Quota will apply to all operations on the gRPC service defined on the proxy.
975
+ Example: Given a proxy that is configured to serve com.petstore.PetService, the methods com.petstore.PetService.ListPets and com.petstore.PetService.GetPet would be specified here as simply ["ListPets", "GetPet"].
976
+ Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.
977
+ """
978
+ quota: NotRequired[pulumi.Input['ApiProductGrpcOperationGroupOperationConfigQuotaArgsDict']]
979
+ """
980
+ Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done.
981
+ Structure is documented below.
982
+ """
983
+ service: NotRequired[pulumi.Input[_builtins.str]]
984
+ """
985
+ Required. gRPC Service name associated to be associated with the API proxy, on which quota rules can be applied upon.
986
+ """
987
+ elif False:
988
+ ApiProductGrpcOperationGroupOperationConfigArgsDict: TypeAlias = Mapping[str, Any]
989
+
990
+ @pulumi.input_type
991
+ class ApiProductGrpcOperationGroupOperationConfigArgs:
992
+ def __init__(__self__, *,
993
+ api_source: Optional[pulumi.Input[_builtins.str]] = None,
994
+ attributes: Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductGrpcOperationGroupOperationConfigAttributeArgs']]]] = None,
995
+ methods: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
996
+ quota: Optional[pulumi.Input['ApiProductGrpcOperationGroupOperationConfigQuotaArgs']] = None,
997
+ service: Optional[pulumi.Input[_builtins.str]] = None):
998
+ """
999
+ :param pulumi.Input[_builtins.str] api_source: Required. Name of the API proxy with which the gRPC operation and quota are associated.
1000
+ :param pulumi.Input[Sequence[pulumi.Input['ApiProductGrpcOperationGroupOperationConfigAttributeArgs']]] attributes: Custom attributes associated with the operation.
1001
+ Structure is documented below.
1002
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] methods: List of unqualified gRPC method names for the proxy to which quota will be applied. If this field is empty, the Quota will apply to all operations on the gRPC service defined on the proxy.
1003
+ Example: Given a proxy that is configured to serve com.petstore.PetService, the methods com.petstore.PetService.ListPets and com.petstore.PetService.GetPet would be specified here as simply ["ListPets", "GetPet"].
1004
+ Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.
1005
+ :param pulumi.Input['ApiProductGrpcOperationGroupOperationConfigQuotaArgs'] quota: Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done.
1006
+ Structure is documented below.
1007
+ :param pulumi.Input[_builtins.str] service: Required. gRPC Service name associated to be associated with the API proxy, on which quota rules can be applied upon.
1008
+ """
1009
+ if api_source is not None:
1010
+ pulumi.set(__self__, "api_source", api_source)
1011
+ if attributes is not None:
1012
+ pulumi.set(__self__, "attributes", attributes)
1013
+ if methods is not None:
1014
+ pulumi.set(__self__, "methods", methods)
1015
+ if quota is not None:
1016
+ pulumi.set(__self__, "quota", quota)
1017
+ if service is not None:
1018
+ pulumi.set(__self__, "service", service)
1019
+
1020
+ @_builtins.property
1021
+ @pulumi.getter(name="apiSource")
1022
+ def api_source(self) -> Optional[pulumi.Input[_builtins.str]]:
1023
+ """
1024
+ Required. Name of the API proxy with which the gRPC operation and quota are associated.
1025
+ """
1026
+ return pulumi.get(self, "api_source")
1027
+
1028
+ @api_source.setter
1029
+ def api_source(self, value: Optional[pulumi.Input[_builtins.str]]):
1030
+ pulumi.set(self, "api_source", value)
1031
+
1032
+ @_builtins.property
1033
+ @pulumi.getter
1034
+ def attributes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductGrpcOperationGroupOperationConfigAttributeArgs']]]]:
1035
+ """
1036
+ Custom attributes associated with the operation.
1037
+ Structure is documented below.
1038
+ """
1039
+ return pulumi.get(self, "attributes")
1040
+
1041
+ @attributes.setter
1042
+ def attributes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductGrpcOperationGroupOperationConfigAttributeArgs']]]]):
1043
+ pulumi.set(self, "attributes", value)
1044
+
1045
+ @_builtins.property
1046
+ @pulumi.getter
1047
+ def methods(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
1048
+ """
1049
+ List of unqualified gRPC method names for the proxy to which quota will be applied. If this field is empty, the Quota will apply to all operations on the gRPC service defined on the proxy.
1050
+ Example: Given a proxy that is configured to serve com.petstore.PetService, the methods com.petstore.PetService.ListPets and com.petstore.PetService.GetPet would be specified here as simply ["ListPets", "GetPet"].
1051
+ Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.
1052
+ """
1053
+ return pulumi.get(self, "methods")
1054
+
1055
+ @methods.setter
1056
+ def methods(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
1057
+ pulumi.set(self, "methods", value)
1058
+
1059
+ @_builtins.property
1060
+ @pulumi.getter
1061
+ def quota(self) -> Optional[pulumi.Input['ApiProductGrpcOperationGroupOperationConfigQuotaArgs']]:
1062
+ """
1063
+ Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done.
1064
+ Structure is documented below.
1065
+ """
1066
+ return pulumi.get(self, "quota")
1067
+
1068
+ @quota.setter
1069
+ def quota(self, value: Optional[pulumi.Input['ApiProductGrpcOperationGroupOperationConfigQuotaArgs']]):
1070
+ pulumi.set(self, "quota", value)
1071
+
1072
+ @_builtins.property
1073
+ @pulumi.getter
1074
+ def service(self) -> Optional[pulumi.Input[_builtins.str]]:
1075
+ """
1076
+ Required. gRPC Service name associated to be associated with the API proxy, on which quota rules can be applied upon.
1077
+ """
1078
+ return pulumi.get(self, "service")
1079
+
1080
+ @service.setter
1081
+ def service(self, value: Optional[pulumi.Input[_builtins.str]]):
1082
+ pulumi.set(self, "service", value)
1083
+
1084
+
1085
+ if not MYPY:
1086
+ class ApiProductGrpcOperationGroupOperationConfigAttributeArgsDict(TypedDict):
1087
+ name: NotRequired[pulumi.Input[_builtins.str]]
1088
+ """
1089
+ Key of the attribute.
1090
+ """
1091
+ value: NotRequired[pulumi.Input[_builtins.str]]
1092
+ """
1093
+ Value of the attribute.
1094
+ """
1095
+ elif False:
1096
+ ApiProductGrpcOperationGroupOperationConfigAttributeArgsDict: TypeAlias = Mapping[str, Any]
1097
+
1098
+ @pulumi.input_type
1099
+ class ApiProductGrpcOperationGroupOperationConfigAttributeArgs:
1100
+ def __init__(__self__, *,
1101
+ name: Optional[pulumi.Input[_builtins.str]] = None,
1102
+ value: Optional[pulumi.Input[_builtins.str]] = None):
1103
+ """
1104
+ :param pulumi.Input[_builtins.str] name: Key of the attribute.
1105
+ :param pulumi.Input[_builtins.str] value: Value of the attribute.
1106
+ """
1107
+ if name is not None:
1108
+ pulumi.set(__self__, "name", name)
1109
+ if value is not None:
1110
+ pulumi.set(__self__, "value", value)
1111
+
1112
+ @_builtins.property
1113
+ @pulumi.getter
1114
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
1115
+ """
1116
+ Key of the attribute.
1117
+ """
1118
+ return pulumi.get(self, "name")
1119
+
1120
+ @name.setter
1121
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
1122
+ pulumi.set(self, "name", value)
1123
+
1124
+ @_builtins.property
1125
+ @pulumi.getter
1126
+ def value(self) -> Optional[pulumi.Input[_builtins.str]]:
1127
+ """
1128
+ Value of the attribute.
1129
+ """
1130
+ return pulumi.get(self, "value")
1131
+
1132
+ @value.setter
1133
+ def value(self, value: Optional[pulumi.Input[_builtins.str]]):
1134
+ pulumi.set(self, "value", value)
1135
+
1136
+
1137
+ if not MYPY:
1138
+ class ApiProductGrpcOperationGroupOperationConfigQuotaArgsDict(TypedDict):
1139
+ interval: NotRequired[pulumi.Input[_builtins.str]]
1140
+ """
1141
+ Required. Time interval over which the number of request messages is calculated.
1142
+ """
1143
+ limit: NotRequired[pulumi.Input[_builtins.str]]
1144
+ """
1145
+ Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
1146
+ """
1147
+ time_unit: NotRequired[pulumi.Input[_builtins.str]]
1148
+ """
1149
+ Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
1150
+ """
1151
+ elif False:
1152
+ ApiProductGrpcOperationGroupOperationConfigQuotaArgsDict: TypeAlias = Mapping[str, Any]
1153
+
1154
+ @pulumi.input_type
1155
+ class ApiProductGrpcOperationGroupOperationConfigQuotaArgs:
1156
+ def __init__(__self__, *,
1157
+ interval: Optional[pulumi.Input[_builtins.str]] = None,
1158
+ limit: Optional[pulumi.Input[_builtins.str]] = None,
1159
+ time_unit: Optional[pulumi.Input[_builtins.str]] = None):
1160
+ """
1161
+ :param pulumi.Input[_builtins.str] interval: Required. Time interval over which the number of request messages is calculated.
1162
+ :param pulumi.Input[_builtins.str] limit: Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
1163
+ :param pulumi.Input[_builtins.str] time_unit: Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
1164
+ """
1165
+ if interval is not None:
1166
+ pulumi.set(__self__, "interval", interval)
1167
+ if limit is not None:
1168
+ pulumi.set(__self__, "limit", limit)
1169
+ if time_unit is not None:
1170
+ pulumi.set(__self__, "time_unit", time_unit)
1171
+
1172
+ @_builtins.property
1173
+ @pulumi.getter
1174
+ def interval(self) -> Optional[pulumi.Input[_builtins.str]]:
1175
+ """
1176
+ Required. Time interval over which the number of request messages is calculated.
1177
+ """
1178
+ return pulumi.get(self, "interval")
1179
+
1180
+ @interval.setter
1181
+ def interval(self, value: Optional[pulumi.Input[_builtins.str]]):
1182
+ pulumi.set(self, "interval", value)
1183
+
1184
+ @_builtins.property
1185
+ @pulumi.getter
1186
+ def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
1187
+ """
1188
+ Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
1189
+ """
1190
+ return pulumi.get(self, "limit")
1191
+
1192
+ @limit.setter
1193
+ def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
1194
+ pulumi.set(self, "limit", value)
1195
+
1196
+ @_builtins.property
1197
+ @pulumi.getter(name="timeUnit")
1198
+ def time_unit(self) -> Optional[pulumi.Input[_builtins.str]]:
1199
+ """
1200
+ Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
1201
+ """
1202
+ return pulumi.get(self, "time_unit")
1203
+
1204
+ @time_unit.setter
1205
+ def time_unit(self, value: Optional[pulumi.Input[_builtins.str]]):
1206
+ pulumi.set(self, "time_unit", value)
1207
+
1208
+
1209
+ if not MYPY:
1210
+ class ApiProductOperationGroupArgsDict(TypedDict):
1211
+ operation_config_type: NotRequired[pulumi.Input[_builtins.str]]
1212
+ """
1213
+ Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include proxy or remoteservice. Defaults to proxy. Set to proxy when Apigee API proxies are associated with the API product. Set to remoteservice when non-Apigee proxies like Istio-Envoy are associated with the API product.
1214
+ Possible values are: `proxy`, `remoteservice`.
1215
+ """
1216
+ operation_configs: NotRequired[pulumi.Input[Sequence[pulumi.Input['ApiProductOperationGroupOperationConfigArgsDict']]]]
1217
+ """
1218
+ Required. List of operation configurations for either Apigee API proxies or other remote services that are associated with this API product.
1219
+ Structure is documented below.
1220
+ """
1221
+ elif False:
1222
+ ApiProductOperationGroupArgsDict: TypeAlias = Mapping[str, Any]
1223
+
1224
+ @pulumi.input_type
1225
+ class ApiProductOperationGroupArgs:
1226
+ def __init__(__self__, *,
1227
+ operation_config_type: Optional[pulumi.Input[_builtins.str]] = None,
1228
+ operation_configs: Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductOperationGroupOperationConfigArgs']]]] = None):
1229
+ """
1230
+ :param pulumi.Input[_builtins.str] operation_config_type: Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include proxy or remoteservice. Defaults to proxy. Set to proxy when Apigee API proxies are associated with the API product. Set to remoteservice when non-Apigee proxies like Istio-Envoy are associated with the API product.
1231
+ Possible values are: `proxy`, `remoteservice`.
1232
+ :param pulumi.Input[Sequence[pulumi.Input['ApiProductOperationGroupOperationConfigArgs']]] operation_configs: Required. List of operation configurations for either Apigee API proxies or other remote services that are associated with this API product.
1233
+ Structure is documented below.
1234
+ """
1235
+ if operation_config_type is not None:
1236
+ pulumi.set(__self__, "operation_config_type", operation_config_type)
1237
+ if operation_configs is not None:
1238
+ pulumi.set(__self__, "operation_configs", operation_configs)
1239
+
1240
+ @_builtins.property
1241
+ @pulumi.getter(name="operationConfigType")
1242
+ def operation_config_type(self) -> Optional[pulumi.Input[_builtins.str]]:
1243
+ """
1244
+ Flag that specifes whether the configuration is for Apigee API proxy or a remote service. Valid values include proxy or remoteservice. Defaults to proxy. Set to proxy when Apigee API proxies are associated with the API product. Set to remoteservice when non-Apigee proxies like Istio-Envoy are associated with the API product.
1245
+ Possible values are: `proxy`, `remoteservice`.
1246
+ """
1247
+ return pulumi.get(self, "operation_config_type")
1248
+
1249
+ @operation_config_type.setter
1250
+ def operation_config_type(self, value: Optional[pulumi.Input[_builtins.str]]):
1251
+ pulumi.set(self, "operation_config_type", value)
1252
+
1253
+ @_builtins.property
1254
+ @pulumi.getter(name="operationConfigs")
1255
+ def operation_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductOperationGroupOperationConfigArgs']]]]:
1256
+ """
1257
+ Required. List of operation configurations for either Apigee API proxies or other remote services that are associated with this API product.
1258
+ Structure is documented below.
1259
+ """
1260
+ return pulumi.get(self, "operation_configs")
1261
+
1262
+ @operation_configs.setter
1263
+ def operation_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductOperationGroupOperationConfigArgs']]]]):
1264
+ pulumi.set(self, "operation_configs", value)
1265
+
1266
+
1267
+ if not MYPY:
1268
+ class ApiProductOperationGroupOperationConfigArgsDict(TypedDict):
1269
+ api_source: NotRequired[pulumi.Input[_builtins.str]]
1270
+ """
1271
+ Required. Name of the API proxy with which the gRPC operation and quota are associated.
1272
+ """
1273
+ attributes: NotRequired[pulumi.Input[Sequence[pulumi.Input['ApiProductOperationGroupOperationConfigAttributeArgsDict']]]]
1274
+ """
1275
+ Custom attributes associated with the operation.
1276
+ Structure is documented below.
1277
+ """
1278
+ operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ApiProductOperationGroupOperationConfigOperationArgsDict']]]]
1279
+ """
1280
+ Required. List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name.
1281
+ Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.
1282
+ Structure is documented below.
1283
+ """
1284
+ quota: NotRequired[pulumi.Input['ApiProductOperationGroupOperationConfigQuotaArgsDict']]
1285
+ """
1286
+ Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done.
1287
+ Structure is documented below.
1288
+ """
1289
+ elif False:
1290
+ ApiProductOperationGroupOperationConfigArgsDict: TypeAlias = Mapping[str, Any]
1291
+
1292
+ @pulumi.input_type
1293
+ class ApiProductOperationGroupOperationConfigArgs:
1294
+ def __init__(__self__, *,
1295
+ api_source: Optional[pulumi.Input[_builtins.str]] = None,
1296
+ attributes: Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductOperationGroupOperationConfigAttributeArgs']]]] = None,
1297
+ operations: Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductOperationGroupOperationConfigOperationArgs']]]] = None,
1298
+ quota: Optional[pulumi.Input['ApiProductOperationGroupOperationConfigQuotaArgs']] = None):
1299
+ """
1300
+ :param pulumi.Input[_builtins.str] api_source: Required. Name of the API proxy with which the gRPC operation and quota are associated.
1301
+ :param pulumi.Input[Sequence[pulumi.Input['ApiProductOperationGroupOperationConfigAttributeArgs']]] attributes: Custom attributes associated with the operation.
1302
+ Structure is documented below.
1303
+ :param pulumi.Input[Sequence[pulumi.Input['ApiProductOperationGroupOperationConfigOperationArgs']]] operations: Required. List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name.
1304
+ Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.
1305
+ Structure is documented below.
1306
+ :param pulumi.Input['ApiProductOperationGroupOperationConfigQuotaArgs'] quota: Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done.
1307
+ Structure is documented below.
1308
+ """
1309
+ if api_source is not None:
1310
+ pulumi.set(__self__, "api_source", api_source)
1311
+ if attributes is not None:
1312
+ pulumi.set(__self__, "attributes", attributes)
1313
+ if operations is not None:
1314
+ pulumi.set(__self__, "operations", operations)
1315
+ if quota is not None:
1316
+ pulumi.set(__self__, "quota", quota)
1317
+
1318
+ @_builtins.property
1319
+ @pulumi.getter(name="apiSource")
1320
+ def api_source(self) -> Optional[pulumi.Input[_builtins.str]]:
1321
+ """
1322
+ Required. Name of the API proxy with which the gRPC operation and quota are associated.
1323
+ """
1324
+ return pulumi.get(self, "api_source")
1325
+
1326
+ @api_source.setter
1327
+ def api_source(self, value: Optional[pulumi.Input[_builtins.str]]):
1328
+ pulumi.set(self, "api_source", value)
1329
+
1330
+ @_builtins.property
1331
+ @pulumi.getter
1332
+ def attributes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductOperationGroupOperationConfigAttributeArgs']]]]:
1333
+ """
1334
+ Custom attributes associated with the operation.
1335
+ Structure is documented below.
1336
+ """
1337
+ return pulumi.get(self, "attributes")
1338
+
1339
+ @attributes.setter
1340
+ def attributes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductOperationGroupOperationConfigAttributeArgs']]]]):
1341
+ pulumi.set(self, "attributes", value)
1342
+
1343
+ @_builtins.property
1344
+ @pulumi.getter
1345
+ def operations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductOperationGroupOperationConfigOperationArgs']]]]:
1346
+ """
1347
+ Required. List of GraphQL name/operation type pairs for the proxy or remote service to which quota will be applied. If only operation types are specified, the quota will be applied to all GraphQL requests irrespective of the GraphQL name.
1348
+ Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.
1349
+ Structure is documented below.
1350
+ """
1351
+ return pulumi.get(self, "operations")
1352
+
1353
+ @operations.setter
1354
+ def operations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ApiProductOperationGroupOperationConfigOperationArgs']]]]):
1355
+ pulumi.set(self, "operations", value)
1356
+
1357
+ @_builtins.property
1358
+ @pulumi.getter
1359
+ def quota(self) -> Optional[pulumi.Input['ApiProductOperationGroupOperationConfigQuotaArgs']]:
1360
+ """
1361
+ Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done.
1362
+ Structure is documented below.
1363
+ """
1364
+ return pulumi.get(self, "quota")
1365
+
1366
+ @quota.setter
1367
+ def quota(self, value: Optional[pulumi.Input['ApiProductOperationGroupOperationConfigQuotaArgs']]):
1368
+ pulumi.set(self, "quota", value)
1369
+
1370
+
1371
+ if not MYPY:
1372
+ class ApiProductOperationGroupOperationConfigAttributeArgsDict(TypedDict):
1373
+ name: NotRequired[pulumi.Input[_builtins.str]]
1374
+ """
1375
+ Key of the attribute.
1376
+ """
1377
+ value: NotRequired[pulumi.Input[_builtins.str]]
1378
+ """
1379
+ Value of the attribute.
1380
+ """
1381
+ elif False:
1382
+ ApiProductOperationGroupOperationConfigAttributeArgsDict: TypeAlias = Mapping[str, Any]
1383
+
1384
+ @pulumi.input_type
1385
+ class ApiProductOperationGroupOperationConfigAttributeArgs:
1386
+ def __init__(__self__, *,
1387
+ name: Optional[pulumi.Input[_builtins.str]] = None,
1388
+ value: Optional[pulumi.Input[_builtins.str]] = None):
1389
+ """
1390
+ :param pulumi.Input[_builtins.str] name: Key of the attribute.
1391
+ :param pulumi.Input[_builtins.str] value: Value of the attribute.
1392
+ """
1393
+ if name is not None:
1394
+ pulumi.set(__self__, "name", name)
1395
+ if value is not None:
1396
+ pulumi.set(__self__, "value", value)
1397
+
1398
+ @_builtins.property
1399
+ @pulumi.getter
1400
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
1401
+ """
1402
+ Key of the attribute.
1403
+ """
1404
+ return pulumi.get(self, "name")
1405
+
1406
+ @name.setter
1407
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
1408
+ pulumi.set(self, "name", value)
1409
+
1410
+ @_builtins.property
1411
+ @pulumi.getter
1412
+ def value(self) -> Optional[pulumi.Input[_builtins.str]]:
1413
+ """
1414
+ Value of the attribute.
1415
+ """
1416
+ return pulumi.get(self, "value")
1417
+
1418
+ @value.setter
1419
+ def value(self, value: Optional[pulumi.Input[_builtins.str]]):
1420
+ pulumi.set(self, "value", value)
1421
+
1422
+
1423
+ if not MYPY:
1424
+ class ApiProductOperationGroupOperationConfigOperationArgsDict(TypedDict):
1425
+ methods: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
1426
+ """
1427
+ Methods refers to the REST verbs, when none specified, all verb types are allowed.
1428
+ """
1429
+ resource: NotRequired[pulumi.Input[_builtins.str]]
1430
+ """
1431
+ Required. REST resource path associated with the API proxy or remote service.
1432
+ """
1433
+ elif False:
1434
+ ApiProductOperationGroupOperationConfigOperationArgsDict: TypeAlias = Mapping[str, Any]
1435
+
1436
+ @pulumi.input_type
1437
+ class ApiProductOperationGroupOperationConfigOperationArgs:
1438
+ def __init__(__self__, *,
1439
+ methods: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
1440
+ resource: Optional[pulumi.Input[_builtins.str]] = None):
1441
+ """
1442
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] methods: Methods refers to the REST verbs, when none specified, all verb types are allowed.
1443
+ :param pulumi.Input[_builtins.str] resource: Required. REST resource path associated with the API proxy or remote service.
1444
+ """
1445
+ if methods is not None:
1446
+ pulumi.set(__self__, "methods", methods)
1447
+ if resource is not None:
1448
+ pulumi.set(__self__, "resource", resource)
1449
+
1450
+ @_builtins.property
1451
+ @pulumi.getter
1452
+ def methods(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
1453
+ """
1454
+ Methods refers to the REST verbs, when none specified, all verb types are allowed.
1455
+ """
1456
+ return pulumi.get(self, "methods")
1457
+
1458
+ @methods.setter
1459
+ def methods(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
1460
+ pulumi.set(self, "methods", value)
1461
+
1462
+ @_builtins.property
1463
+ @pulumi.getter
1464
+ def resource(self) -> Optional[pulumi.Input[_builtins.str]]:
1465
+ """
1466
+ Required. REST resource path associated with the API proxy or remote service.
1467
+ """
1468
+ return pulumi.get(self, "resource")
1469
+
1470
+ @resource.setter
1471
+ def resource(self, value: Optional[pulumi.Input[_builtins.str]]):
1472
+ pulumi.set(self, "resource", value)
1473
+
1474
+
1475
+ if not MYPY:
1476
+ class ApiProductOperationGroupOperationConfigQuotaArgsDict(TypedDict):
1477
+ interval: NotRequired[pulumi.Input[_builtins.str]]
1478
+ """
1479
+ Required. Time interval over which the number of request messages is calculated.
1480
+ """
1481
+ limit: NotRequired[pulumi.Input[_builtins.str]]
1482
+ """
1483
+ Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
1484
+ """
1485
+ time_unit: NotRequired[pulumi.Input[_builtins.str]]
1486
+ """
1487
+ Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
1488
+ """
1489
+ elif False:
1490
+ ApiProductOperationGroupOperationConfigQuotaArgsDict: TypeAlias = Mapping[str, Any]
1491
+
1492
+ @pulumi.input_type
1493
+ class ApiProductOperationGroupOperationConfigQuotaArgs:
1494
+ def __init__(__self__, *,
1495
+ interval: Optional[pulumi.Input[_builtins.str]] = None,
1496
+ limit: Optional[pulumi.Input[_builtins.str]] = None,
1497
+ time_unit: Optional[pulumi.Input[_builtins.str]] = None):
1498
+ """
1499
+ :param pulumi.Input[_builtins.str] interval: Required. Time interval over which the number of request messages is calculated.
1500
+ :param pulumi.Input[_builtins.str] limit: Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
1501
+ :param pulumi.Input[_builtins.str] time_unit: Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
1502
+ """
1503
+ if interval is not None:
1504
+ pulumi.set(__self__, "interval", interval)
1505
+ if limit is not None:
1506
+ pulumi.set(__self__, "limit", limit)
1507
+ if time_unit is not None:
1508
+ pulumi.set(__self__, "time_unit", time_unit)
1509
+
1510
+ @_builtins.property
1511
+ @pulumi.getter
1512
+ def interval(self) -> Optional[pulumi.Input[_builtins.str]]:
1513
+ """
1514
+ Required. Time interval over which the number of request messages is calculated.
1515
+ """
1516
+ return pulumi.get(self, "interval")
1517
+
1518
+ @interval.setter
1519
+ def interval(self, value: Optional[pulumi.Input[_builtins.str]]):
1520
+ pulumi.set(self, "interval", value)
1521
+
1522
+ @_builtins.property
1523
+ @pulumi.getter
1524
+ def limit(self) -> Optional[pulumi.Input[_builtins.str]]:
1525
+ """
1526
+ Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
1527
+ """
1528
+ return pulumi.get(self, "limit")
1529
+
1530
+ @limit.setter
1531
+ def limit(self, value: Optional[pulumi.Input[_builtins.str]]):
1532
+ pulumi.set(self, "limit", value)
1533
+
1534
+ @_builtins.property
1535
+ @pulumi.getter(name="timeUnit")
1536
+ def time_unit(self) -> Optional[pulumi.Input[_builtins.str]]:
1537
+ """
1538
+ Time unit defined for the interval. Valid values include second, minute, hour, day, month or year. If limit and interval are valid, the default value is hour; otherwise, the default is null.
1539
+ """
1540
+ return pulumi.get(self, "time_unit")
1541
+
1542
+ @time_unit.setter
1543
+ def time_unit(self, value: Optional[pulumi.Input[_builtins.str]]):
1544
+ pulumi.set(self, "time_unit", value)
1545
+
1546
+
493
1547
  if not MYPY:
494
1548
  class AppGroupAttributeArgsDict(TypedDict):
495
1549
  name: NotRequired[pulumi.Input[_builtins.str]]
@@ -2249,6 +3303,387 @@ class OrganizationPropertiesPropertyArgs:
2249
3303
  pulumi.set(self, "value", value)
2250
3304
 
2251
3305
 
3306
+ if not MYPY:
3307
+ class SecurityActionAllowArgsDict(TypedDict):
3308
+ pass
3309
+ elif False:
3310
+ SecurityActionAllowArgsDict: TypeAlias = Mapping[str, Any]
3311
+
3312
+ @pulumi.input_type
3313
+ class SecurityActionAllowArgs:
3314
+ def __init__(__self__):
3315
+ pass
3316
+
3317
+
3318
+ if not MYPY:
3319
+ class SecurityActionConditionConfigArgsDict(TypedDict):
3320
+ access_tokens: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
3321
+ """
3322
+ A list of accessTokens. Limit 1000 per action.
3323
+ """
3324
+ api_keys: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
3325
+ """
3326
+ A list of API keys. Limit 1000 per action.
3327
+ """
3328
+ api_products: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
3329
+ """
3330
+ A list of API Products. Limit 1000 per action.
3331
+ """
3332
+ asns: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
3333
+ """
3334
+ A list of ASN numbers to act on, e.g. 23. https://en.wikipedia.org/wiki/Autonomous_system_(Internet)
3335
+ This uses int64 instead of uint32 because of https://linter.aip.dev/141/forbidden-types.
3336
+ """
3337
+ bot_reasons: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
3338
+ """
3339
+ A list of Bot Reasons. Current options: Flooder, Brute Guessor, Static Content Scraper,
3340
+ OAuth Abuser, Robot Abuser, TorListRule, Advanced Anomaly Detection, Advanced API Scraper,
3341
+ Search Engine Crawlers, Public Clouds, Public Cloud AWS, Public Cloud Azure, and Public Cloud Google.
3342
+ """
3343
+ developer_apps: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
3344
+ """
3345
+ A list of developer apps. Limit 1000 per action.
3346
+ """
3347
+ developers: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
3348
+ """
3349
+ A list of developers. Limit 1000 per action.
3350
+ """
3351
+ http_methods: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
3352
+ """
3353
+ Act only on particular HTTP methods. E.g. A read-only API can block POST/PUT/DELETE methods.
3354
+ Accepted values are: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE and PATCH.
3355
+ """
3356
+ ip_address_ranges: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
3357
+ """
3358
+ A list of IP addresses. This could be either IPv4 or IPv6. Limited to 100 per action.
3359
+ """
3360
+ region_codes: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
3361
+ """
3362
+ A list of countries/region codes to act on, e.g. US. This follows https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2.
3363
+ """
3364
+ user_agents: NotRequired[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]
3365
+ """
3366
+ A list of user agents to deny. We look for exact matches. Limit 50 per action.
3367
+ """
3368
+ elif False:
3369
+ SecurityActionConditionConfigArgsDict: TypeAlias = Mapping[str, Any]
3370
+
3371
+ @pulumi.input_type
3372
+ class SecurityActionConditionConfigArgs:
3373
+ def __init__(__self__, *,
3374
+ access_tokens: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3375
+ api_keys: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3376
+ api_products: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3377
+ asns: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3378
+ bot_reasons: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3379
+ developer_apps: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3380
+ developers: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3381
+ http_methods: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3382
+ ip_address_ranges: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3383
+ region_codes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
3384
+ user_agents: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
3385
+ """
3386
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] access_tokens: A list of accessTokens. Limit 1000 per action.
3387
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] api_keys: A list of API keys. Limit 1000 per action.
3388
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] api_products: A list of API Products. Limit 1000 per action.
3389
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] asns: A list of ASN numbers to act on, e.g. 23. https://en.wikipedia.org/wiki/Autonomous_system_(Internet)
3390
+ This uses int64 instead of uint32 because of https://linter.aip.dev/141/forbidden-types.
3391
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] bot_reasons: A list of Bot Reasons. Current options: Flooder, Brute Guessor, Static Content Scraper,
3392
+ OAuth Abuser, Robot Abuser, TorListRule, Advanced Anomaly Detection, Advanced API Scraper,
3393
+ Search Engine Crawlers, Public Clouds, Public Cloud AWS, Public Cloud Azure, and Public Cloud Google.
3394
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] developer_apps: A list of developer apps. Limit 1000 per action.
3395
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] developers: A list of developers. Limit 1000 per action.
3396
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] http_methods: Act only on particular HTTP methods. E.g. A read-only API can block POST/PUT/DELETE methods.
3397
+ Accepted values are: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE and PATCH.
3398
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] ip_address_ranges: A list of IP addresses. This could be either IPv4 or IPv6. Limited to 100 per action.
3399
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] region_codes: A list of countries/region codes to act on, e.g. US. This follows https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2.
3400
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] user_agents: A list of user agents to deny. We look for exact matches. Limit 50 per action.
3401
+ """
3402
+ if access_tokens is not None:
3403
+ pulumi.set(__self__, "access_tokens", access_tokens)
3404
+ if api_keys is not None:
3405
+ pulumi.set(__self__, "api_keys", api_keys)
3406
+ if api_products is not None:
3407
+ pulumi.set(__self__, "api_products", api_products)
3408
+ if asns is not None:
3409
+ pulumi.set(__self__, "asns", asns)
3410
+ if bot_reasons is not None:
3411
+ pulumi.set(__self__, "bot_reasons", bot_reasons)
3412
+ if developer_apps is not None:
3413
+ pulumi.set(__self__, "developer_apps", developer_apps)
3414
+ if developers is not None:
3415
+ pulumi.set(__self__, "developers", developers)
3416
+ if http_methods is not None:
3417
+ pulumi.set(__self__, "http_methods", http_methods)
3418
+ if ip_address_ranges is not None:
3419
+ pulumi.set(__self__, "ip_address_ranges", ip_address_ranges)
3420
+ if region_codes is not None:
3421
+ pulumi.set(__self__, "region_codes", region_codes)
3422
+ if user_agents is not None:
3423
+ pulumi.set(__self__, "user_agents", user_agents)
3424
+
3425
+ @_builtins.property
3426
+ @pulumi.getter(name="accessTokens")
3427
+ def access_tokens(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
3428
+ """
3429
+ A list of accessTokens. Limit 1000 per action.
3430
+ """
3431
+ return pulumi.get(self, "access_tokens")
3432
+
3433
+ @access_tokens.setter
3434
+ def access_tokens(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
3435
+ pulumi.set(self, "access_tokens", value)
3436
+
3437
+ @_builtins.property
3438
+ @pulumi.getter(name="apiKeys")
3439
+ def api_keys(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
3440
+ """
3441
+ A list of API keys. Limit 1000 per action.
3442
+ """
3443
+ return pulumi.get(self, "api_keys")
3444
+
3445
+ @api_keys.setter
3446
+ def api_keys(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
3447
+ pulumi.set(self, "api_keys", value)
3448
+
3449
+ @_builtins.property
3450
+ @pulumi.getter(name="apiProducts")
3451
+ def api_products(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
3452
+ """
3453
+ A list of API Products. Limit 1000 per action.
3454
+ """
3455
+ return pulumi.get(self, "api_products")
3456
+
3457
+ @api_products.setter
3458
+ def api_products(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
3459
+ pulumi.set(self, "api_products", value)
3460
+
3461
+ @_builtins.property
3462
+ @pulumi.getter
3463
+ def asns(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
3464
+ """
3465
+ A list of ASN numbers to act on, e.g. 23. https://en.wikipedia.org/wiki/Autonomous_system_(Internet)
3466
+ This uses int64 instead of uint32 because of https://linter.aip.dev/141/forbidden-types.
3467
+ """
3468
+ return pulumi.get(self, "asns")
3469
+
3470
+ @asns.setter
3471
+ def asns(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
3472
+ pulumi.set(self, "asns", value)
3473
+
3474
+ @_builtins.property
3475
+ @pulumi.getter(name="botReasons")
3476
+ def bot_reasons(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
3477
+ """
3478
+ A list of Bot Reasons. Current options: Flooder, Brute Guessor, Static Content Scraper,
3479
+ OAuth Abuser, Robot Abuser, TorListRule, Advanced Anomaly Detection, Advanced API Scraper,
3480
+ Search Engine Crawlers, Public Clouds, Public Cloud AWS, Public Cloud Azure, and Public Cloud Google.
3481
+ """
3482
+ return pulumi.get(self, "bot_reasons")
3483
+
3484
+ @bot_reasons.setter
3485
+ def bot_reasons(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
3486
+ pulumi.set(self, "bot_reasons", value)
3487
+
3488
+ @_builtins.property
3489
+ @pulumi.getter(name="developerApps")
3490
+ def developer_apps(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
3491
+ """
3492
+ A list of developer apps. Limit 1000 per action.
3493
+ """
3494
+ return pulumi.get(self, "developer_apps")
3495
+
3496
+ @developer_apps.setter
3497
+ def developer_apps(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
3498
+ pulumi.set(self, "developer_apps", value)
3499
+
3500
+ @_builtins.property
3501
+ @pulumi.getter
3502
+ def developers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
3503
+ """
3504
+ A list of developers. Limit 1000 per action.
3505
+ """
3506
+ return pulumi.get(self, "developers")
3507
+
3508
+ @developers.setter
3509
+ def developers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
3510
+ pulumi.set(self, "developers", value)
3511
+
3512
+ @_builtins.property
3513
+ @pulumi.getter(name="httpMethods")
3514
+ def http_methods(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
3515
+ """
3516
+ Act only on particular HTTP methods. E.g. A read-only API can block POST/PUT/DELETE methods.
3517
+ Accepted values are: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE and PATCH.
3518
+ """
3519
+ return pulumi.get(self, "http_methods")
3520
+
3521
+ @http_methods.setter
3522
+ def http_methods(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
3523
+ pulumi.set(self, "http_methods", value)
3524
+
3525
+ @_builtins.property
3526
+ @pulumi.getter(name="ipAddressRanges")
3527
+ def ip_address_ranges(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
3528
+ """
3529
+ A list of IP addresses. This could be either IPv4 or IPv6. Limited to 100 per action.
3530
+ """
3531
+ return pulumi.get(self, "ip_address_ranges")
3532
+
3533
+ @ip_address_ranges.setter
3534
+ def ip_address_ranges(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
3535
+ pulumi.set(self, "ip_address_ranges", value)
3536
+
3537
+ @_builtins.property
3538
+ @pulumi.getter(name="regionCodes")
3539
+ def region_codes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
3540
+ """
3541
+ A list of countries/region codes to act on, e.g. US. This follows https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2.
3542
+ """
3543
+ return pulumi.get(self, "region_codes")
3544
+
3545
+ @region_codes.setter
3546
+ def region_codes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
3547
+ pulumi.set(self, "region_codes", value)
3548
+
3549
+ @_builtins.property
3550
+ @pulumi.getter(name="userAgents")
3551
+ def user_agents(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
3552
+ """
3553
+ A list of user agents to deny. We look for exact matches. Limit 50 per action.
3554
+ """
3555
+ return pulumi.get(self, "user_agents")
3556
+
3557
+ @user_agents.setter
3558
+ def user_agents(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
3559
+ pulumi.set(self, "user_agents", value)
3560
+
3561
+
3562
+ if not MYPY:
3563
+ class SecurityActionDenyArgsDict(TypedDict):
3564
+ response_code: NotRequired[pulumi.Input[_builtins.int]]
3565
+ """
3566
+ The HTTP response code if the Action = DENY.
3567
+ """
3568
+ elif False:
3569
+ SecurityActionDenyArgsDict: TypeAlias = Mapping[str, Any]
3570
+
3571
+ @pulumi.input_type
3572
+ class SecurityActionDenyArgs:
3573
+ def __init__(__self__, *,
3574
+ response_code: Optional[pulumi.Input[_builtins.int]] = None):
3575
+ """
3576
+ :param pulumi.Input[_builtins.int] response_code: The HTTP response code if the Action = DENY.
3577
+ """
3578
+ if response_code is not None:
3579
+ pulumi.set(__self__, "response_code", response_code)
3580
+
3581
+ @_builtins.property
3582
+ @pulumi.getter(name="responseCode")
3583
+ def response_code(self) -> Optional[pulumi.Input[_builtins.int]]:
3584
+ """
3585
+ The HTTP response code if the Action = DENY.
3586
+ """
3587
+ return pulumi.get(self, "response_code")
3588
+
3589
+ @response_code.setter
3590
+ def response_code(self, value: Optional[pulumi.Input[_builtins.int]]):
3591
+ pulumi.set(self, "response_code", value)
3592
+
3593
+
3594
+ if not MYPY:
3595
+ class SecurityActionFlagArgsDict(TypedDict):
3596
+ headers: NotRequired[pulumi.Input[Sequence[pulumi.Input['SecurityActionFlagHeaderArgsDict']]]]
3597
+ """
3598
+ A list of HTTP headers to be sent to the target in case of a FLAG SecurityAction.
3599
+ Limit 5 headers per SecurityAction.
3600
+ At least one is mandatory.
3601
+ Structure is documented below.
3602
+ """
3603
+ elif False:
3604
+ SecurityActionFlagArgsDict: TypeAlias = Mapping[str, Any]
3605
+
3606
+ @pulumi.input_type
3607
+ class SecurityActionFlagArgs:
3608
+ def __init__(__self__, *,
3609
+ headers: Optional[pulumi.Input[Sequence[pulumi.Input['SecurityActionFlagHeaderArgs']]]] = None):
3610
+ """
3611
+ :param pulumi.Input[Sequence[pulumi.Input['SecurityActionFlagHeaderArgs']]] headers: A list of HTTP headers to be sent to the target in case of a FLAG SecurityAction.
3612
+ Limit 5 headers per SecurityAction.
3613
+ At least one is mandatory.
3614
+ Structure is documented below.
3615
+ """
3616
+ if headers is not None:
3617
+ pulumi.set(__self__, "headers", headers)
3618
+
3619
+ @_builtins.property
3620
+ @pulumi.getter
3621
+ def headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['SecurityActionFlagHeaderArgs']]]]:
3622
+ """
3623
+ A list of HTTP headers to be sent to the target in case of a FLAG SecurityAction.
3624
+ Limit 5 headers per SecurityAction.
3625
+ At least one is mandatory.
3626
+ Structure is documented below.
3627
+ """
3628
+ return pulumi.get(self, "headers")
3629
+
3630
+ @headers.setter
3631
+ def headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['SecurityActionFlagHeaderArgs']]]]):
3632
+ pulumi.set(self, "headers", value)
3633
+
3634
+
3635
+ if not MYPY:
3636
+ class SecurityActionFlagHeaderArgsDict(TypedDict):
3637
+ name: NotRequired[pulumi.Input[_builtins.str]]
3638
+ """
3639
+ The header name to be sent to the target.
3640
+ """
3641
+ value: NotRequired[pulumi.Input[_builtins.str]]
3642
+ """
3643
+ The header value to be sent to the target.
3644
+ """
3645
+ elif False:
3646
+ SecurityActionFlagHeaderArgsDict: TypeAlias = Mapping[str, Any]
3647
+
3648
+ @pulumi.input_type
3649
+ class SecurityActionFlagHeaderArgs:
3650
+ def __init__(__self__, *,
3651
+ name: Optional[pulumi.Input[_builtins.str]] = None,
3652
+ value: Optional[pulumi.Input[_builtins.str]] = None):
3653
+ """
3654
+ :param pulumi.Input[_builtins.str] name: The header name to be sent to the target.
3655
+ :param pulumi.Input[_builtins.str] value: The header value to be sent to the target.
3656
+ """
3657
+ if name is not None:
3658
+ pulumi.set(__self__, "name", name)
3659
+ if value is not None:
3660
+ pulumi.set(__self__, "value", value)
3661
+
3662
+ @_builtins.property
3663
+ @pulumi.getter
3664
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
3665
+ """
3666
+ The header name to be sent to the target.
3667
+ """
3668
+ return pulumi.get(self, "name")
3669
+
3670
+ @name.setter
3671
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
3672
+ pulumi.set(self, "name", value)
3673
+
3674
+ @_builtins.property
3675
+ @pulumi.getter
3676
+ def value(self) -> Optional[pulumi.Input[_builtins.str]]:
3677
+ """
3678
+ The header value to be sent to the target.
3679
+ """
3680
+ return pulumi.get(self, "value")
3681
+
3682
+ @value.setter
3683
+ def value(self, value: Optional[pulumi.Input[_builtins.str]]):
3684
+ pulumi.set(self, "value", value)
3685
+
3686
+
2252
3687
  if not MYPY:
2253
3688
  class SecurityMonitoringConditionIncludeAllResourcesArgsDict(TypedDict):
2254
3689
  pass