pulumi-gcp 8.40.0a1754721948__py3-none-any.whl → 8.41.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 (469) hide show
  1. pulumi_gcp/__init__.py +152 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +24 -4
  3. pulumi_gcp/accesscontextmanager/access_policy_iam_binding.py +2 -0
  4. pulumi_gcp/accesscontextmanager/access_policy_iam_member.py +2 -0
  5. pulumi_gcp/accesscontextmanager/access_policy_iam_policy.py +2 -0
  6. pulumi_gcp/accesscontextmanager/outputs.py +15 -3
  7. pulumi_gcp/apigateway/api_config_iam_binding.py +2 -0
  8. pulumi_gcp/apigateway/api_config_iam_member.py +2 -0
  9. pulumi_gcp/apigateway/api_config_iam_policy.py +2 -0
  10. pulumi_gcp/apigateway/api_iam_binding.py +2 -0
  11. pulumi_gcp/apigateway/api_iam_member.py +2 -0
  12. pulumi_gcp/apigateway/api_iam_policy.py +2 -0
  13. pulumi_gcp/apigateway/gateway_iam_binding.py +2 -0
  14. pulumi_gcp/apigateway/gateway_iam_member.py +2 -0
  15. pulumi_gcp/apigateway/gateway_iam_policy.py +2 -0
  16. pulumi_gcp/apigee/__init__.py +2 -0
  17. pulumi_gcp/apigee/_inputs.py +1435 -0
  18. pulumi_gcp/apigee/api_product.py +1698 -0
  19. pulumi_gcp/apigee/environment_iam_binding.py +2 -0
  20. pulumi_gcp/apigee/environment_iam_member.py +2 -0
  21. pulumi_gcp/apigee/environment_iam_policy.py +2 -0
  22. pulumi_gcp/apigee/outputs.py +1081 -0
  23. pulumi_gcp/apigee/security_action.py +1010 -0
  24. pulumi_gcp/artifactregistry/__init__.py +6 -0
  25. pulumi_gcp/artifactregistry/get_docker_images.py +164 -0
  26. pulumi_gcp/artifactregistry/get_package.py +220 -0
  27. pulumi_gcp/artifactregistry/get_repositories.py +160 -0
  28. pulumi_gcp/artifactregistry/get_tag.py +187 -0
  29. pulumi_gcp/artifactregistry/get_tags.py +200 -0
  30. pulumi_gcp/artifactregistry/get_version.py +261 -0
  31. pulumi_gcp/artifactregistry/outputs.py +239 -2
  32. pulumi_gcp/artifactregistry/repository.py +6 -6
  33. pulumi_gcp/artifactregistry/repository_iam_binding.py +2 -0
  34. pulumi_gcp/artifactregistry/repository_iam_member.py +2 -0
  35. pulumi_gcp/artifactregistry/repository_iam_policy.py +2 -0
  36. pulumi_gcp/backupdisasterrecovery/backup_plan.py +114 -7
  37. pulumi_gcp/backupdisasterrecovery/backup_vault.py +56 -0
  38. pulumi_gcp/backupdisasterrecovery/get_backup_plan.py +12 -1
  39. pulumi_gcp/backupdisasterrecovery/get_backup_vault.py +12 -1
  40. pulumi_gcp/beyondcorp/application_iam_binding.py +8 -0
  41. pulumi_gcp/beyondcorp/application_iam_member.py +8 -0
  42. pulumi_gcp/beyondcorp/application_iam_policy.py +8 -0
  43. pulumi_gcp/beyondcorp/get_application_iam_policy.py +4 -0
  44. pulumi_gcp/beyondcorp/security_gateway_application_iam_binding.py +2 -0
  45. pulumi_gcp/beyondcorp/security_gateway_application_iam_member.py +2 -0
  46. pulumi_gcp/beyondcorp/security_gateway_application_iam_policy.py +2 -0
  47. pulumi_gcp/beyondcorp/security_gateway_iam_binding.py +2 -0
  48. pulumi_gcp/beyondcorp/security_gateway_iam_member.py +2 -0
  49. pulumi_gcp/beyondcorp/security_gateway_iam_policy.py +2 -0
  50. pulumi_gcp/bigquery/_inputs.py +6 -0
  51. pulumi_gcp/bigquery/connection_iam_binding.py +2 -0
  52. pulumi_gcp/bigquery/connection_iam_member.py +2 -0
  53. pulumi_gcp/bigquery/connection_iam_policy.py +2 -0
  54. pulumi_gcp/bigquery/data_transfer_config.py +2 -0
  55. pulumi_gcp/bigquery/dataset.py +2 -2
  56. pulumi_gcp/bigquery/get_table.py +23 -1
  57. pulumi_gcp/bigquery/iam_binding.py +2 -0
  58. pulumi_gcp/bigquery/iam_member.py +2 -0
  59. pulumi_gcp/bigquery/iam_policy.py +2 -0
  60. pulumi_gcp/bigquery/outputs.py +4 -0
  61. pulumi_gcp/bigquery/reservation.py +535 -0
  62. pulumi_gcp/bigquery/table.py +62 -0
  63. pulumi_gcp/bigqueryanalyticshub/_inputs.py +180 -0
  64. pulumi_gcp/bigqueryanalyticshub/data_exchange.py +80 -0
  65. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py +2 -0
  66. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py +2 -0
  67. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py +2 -0
  68. pulumi_gcp/bigqueryanalyticshub/listing.py +322 -2
  69. pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py +2 -0
  70. pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py +2 -0
  71. pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py +2 -0
  72. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +32 -0
  73. pulumi_gcp/bigqueryanalyticshub/outputs.py +159 -0
  74. pulumi_gcp/bigquerydatapolicy/data_policy_iam_binding.py +2 -0
  75. pulumi_gcp/bigquerydatapolicy/data_policy_iam_member.py +2 -0
  76. pulumi_gcp/bigquerydatapolicy/data_policy_iam_policy.py +2 -0
  77. pulumi_gcp/bigtable/__init__.py +1 -0
  78. pulumi_gcp/bigtable/_inputs.py +33 -0
  79. pulumi_gcp/bigtable/outputs.py +36 -0
  80. pulumi_gcp/bigtable/schema_bundle.py +568 -0
  81. pulumi_gcp/binaryauthorization/attestor_iam_binding.py +2 -0
  82. pulumi_gcp/binaryauthorization/attestor_iam_member.py +2 -0
  83. pulumi_gcp/binaryauthorization/attestor_iam_policy.py +2 -0
  84. pulumi_gcp/certificateauthority/ca_pool_iam_binding.py +2 -0
  85. pulumi_gcp/certificateauthority/ca_pool_iam_member.py +2 -0
  86. pulumi_gcp/certificateauthority/ca_pool_iam_policy.py +2 -0
  87. pulumi_gcp/certificateauthority/certificate_template_iam_binding.py +2 -0
  88. pulumi_gcp/certificateauthority/certificate_template_iam_member.py +2 -0
  89. pulumi_gcp/certificateauthority/certificate_template_iam_policy.py +2 -0
  90. pulumi_gcp/cloudbuildv2/connection_iam_binding.py +2 -0
  91. pulumi_gcp/cloudbuildv2/connection_iam_member.py +2 -0
  92. pulumi_gcp/cloudbuildv2/connection_iam_policy.py +2 -0
  93. pulumi_gcp/clouddeploy/_inputs.py +48 -48
  94. pulumi_gcp/clouddeploy/deploy_policy.py +54 -74
  95. pulumi_gcp/clouddeploy/outputs.py +32 -32
  96. pulumi_gcp/cloudfunctions/_inputs.py +48 -0
  97. pulumi_gcp/cloudfunctions/function.py +94 -0
  98. pulumi_gcp/cloudfunctions/function_iam_binding.py +2 -0
  99. pulumi_gcp/cloudfunctions/function_iam_member.py +2 -0
  100. pulumi_gcp/cloudfunctions/function_iam_policy.py +2 -0
  101. pulumi_gcp/cloudfunctions/get_function.py +23 -1
  102. pulumi_gcp/cloudfunctions/outputs.py +70 -0
  103. pulumi_gcp/cloudfunctionsv2/function_iam_binding.py +2 -0
  104. pulumi_gcp/cloudfunctionsv2/function_iam_member.py +2 -0
  105. pulumi_gcp/cloudfunctionsv2/function_iam_policy.py +2 -0
  106. pulumi_gcp/cloudrun/iam_binding.py +2 -0
  107. pulumi_gcp/cloudrun/iam_member.py +2 -0
  108. pulumi_gcp/cloudrun/iam_policy.py +2 -0
  109. pulumi_gcp/cloudrunv2/_inputs.py +20 -0
  110. pulumi_gcp/cloudrunv2/job.py +2 -0
  111. pulumi_gcp/cloudrunv2/job_iam_binding.py +2 -0
  112. pulumi_gcp/cloudrunv2/job_iam_member.py +2 -0
  113. pulumi_gcp/cloudrunv2/job_iam_policy.py +2 -0
  114. pulumi_gcp/cloudrunv2/outputs.py +25 -0
  115. pulumi_gcp/cloudrunv2/service_iam_binding.py +2 -0
  116. pulumi_gcp/cloudrunv2/service_iam_member.py +2 -0
  117. pulumi_gcp/cloudrunv2/service_iam_policy.py +2 -0
  118. pulumi_gcp/cloudrunv2/worker_pool.py +2 -0
  119. pulumi_gcp/cloudrunv2/worker_pool_iam_binding.py +2 -0
  120. pulumi_gcp/cloudrunv2/worker_pool_iam_member.py +2 -0
  121. pulumi_gcp/cloudrunv2/worker_pool_iam_policy.py +2 -0
  122. pulumi_gcp/cloudtasks/queue_iam_binding.py +2 -0
  123. pulumi_gcp/cloudtasks/queue_iam_member.py +2 -0
  124. pulumi_gcp/cloudtasks/queue_iam_policy.py +2 -0
  125. pulumi_gcp/colab/runtime_template_iam_binding.py +2 -0
  126. pulumi_gcp/colab/runtime_template_iam_member.py +2 -0
  127. pulumi_gcp/colab/runtime_template_iam_policy.py +2 -0
  128. pulumi_gcp/composer/user_workloads_config_map.py +26 -2
  129. pulumi_gcp/compute/__init__.py +1 -0
  130. pulumi_gcp/compute/_inputs.py +1068 -22
  131. pulumi_gcp/compute/disk_iam_binding.py +2 -0
  132. pulumi_gcp/compute/disk_iam_member.py +2 -0
  133. pulumi_gcp/compute/disk_iam_policy.py +2 -0
  134. pulumi_gcp/compute/firewall_policy_with_rules.py +66 -0
  135. pulumi_gcp/compute/forwarding_rule.py +0 -21
  136. pulumi_gcp/compute/get_region_backend_service.py +12 -1
  137. pulumi_gcp/compute/get_router.py +12 -1
  138. pulumi_gcp/compute/image_iam_binding.py +2 -0
  139. pulumi_gcp/compute/image_iam_member.py +2 -0
  140. pulumi_gcp/compute/image_iam_policy.py +2 -0
  141. pulumi_gcp/compute/instance_iam_binding.py +2 -0
  142. pulumi_gcp/compute/instance_iam_member.py +2 -0
  143. pulumi_gcp/compute/instance_iam_policy.py +2 -0
  144. pulumi_gcp/compute/instance_template_iam_binding.py +2 -0
  145. pulumi_gcp/compute/instance_template_iam_member.py +2 -0
  146. pulumi_gcp/compute/instance_template_iam_policy.py +2 -0
  147. pulumi_gcp/compute/instant_snapshot_iam_binding.py +2 -0
  148. pulumi_gcp/compute/instant_snapshot_iam_member.py +2 -0
  149. pulumi_gcp/compute/instant_snapshot_iam_policy.py +2 -0
  150. pulumi_gcp/compute/machine_image_iam_binding.py +2 -0
  151. pulumi_gcp/compute/machine_image_iam_member.py +2 -0
  152. pulumi_gcp/compute/machine_image_iam_policy.py +2 -0
  153. pulumi_gcp/compute/outputs.py +966 -22
  154. pulumi_gcp/compute/preview_feature.py +396 -0
  155. pulumi_gcp/compute/region_backend_service.py +257 -0
  156. pulumi_gcp/compute/region_disk_iam_binding.py +2 -0
  157. pulumi_gcp/compute/region_disk_iam_member.py +2 -0
  158. pulumi_gcp/compute/region_disk_iam_policy.py +2 -0
  159. pulumi_gcp/compute/region_security_policy.py +54 -0
  160. pulumi_gcp/compute/region_url_map.py +392 -0
  161. pulumi_gcp/compute/reservation.py +4 -4
  162. pulumi_gcp/compute/router.py +54 -0
  163. pulumi_gcp/compute/service_attachment.py +126 -0
  164. pulumi_gcp/compute/snapshot_iam_binding.py +2 -0
  165. pulumi_gcp/compute/snapshot_iam_member.py +2 -0
  166. pulumi_gcp/compute/snapshot_iam_policy.py +2 -0
  167. pulumi_gcp/compute/storage_pool.py +154 -0
  168. pulumi_gcp/compute/storage_pool_iam_binding.py +2 -0
  169. pulumi_gcp/compute/storage_pool_iam_member.py +2 -0
  170. pulumi_gcp/compute/storage_pool_iam_policy.py +2 -0
  171. pulumi_gcp/compute/subnetwork.py +54 -0
  172. pulumi_gcp/compute/subnetwork_iam_binding.py +2 -0
  173. pulumi_gcp/compute/subnetwork_iam_member.py +2 -0
  174. pulumi_gcp/compute/subnetwork_iam_policy.py +2 -0
  175. pulumi_gcp/config/__init__.pyi +2 -4
  176. pulumi_gcp/config/vars.py +4 -8
  177. pulumi_gcp/container/_inputs.py +2622 -246
  178. pulumi_gcp/container/cluster.py +61 -21
  179. pulumi_gcp/container/get_cluster.py +12 -1
  180. pulumi_gcp/container/outputs.py +2877 -133
  181. pulumi_gcp/containeranalysis/note_iam_binding.py +2 -0
  182. pulumi_gcp/containeranalysis/note_iam_member.py +2 -0
  183. pulumi_gcp/containeranalysis/note_iam_policy.py +2 -0
  184. pulumi_gcp/datacatalog/entry_group_iam_binding.py +2 -0
  185. pulumi_gcp/datacatalog/entry_group_iam_member.py +2 -0
  186. pulumi_gcp/datacatalog/entry_group_iam_policy.py +2 -0
  187. pulumi_gcp/datacatalog/policy_tag_iam_binding.py +2 -0
  188. pulumi_gcp/datacatalog/policy_tag_iam_member.py +2 -0
  189. pulumi_gcp/datacatalog/policy_tag_iam_policy.py +2 -0
  190. pulumi_gcp/datacatalog/tag_template_iam_binding.py +2 -0
  191. pulumi_gcp/datacatalog/tag_template_iam_member.py +2 -0
  192. pulumi_gcp/datacatalog/tag_template_iam_policy.py +2 -0
  193. pulumi_gcp/datacatalog/taxonomy_iam_binding.py +2 -0
  194. pulumi_gcp/datacatalog/taxonomy_iam_member.py +2 -0
  195. pulumi_gcp/datacatalog/taxonomy_iam_policy.py +2 -0
  196. pulumi_gcp/datafusion/instance.py +18 -4
  197. pulumi_gcp/dataplex/aspect_type_iam_binding.py +2 -0
  198. pulumi_gcp/dataplex/aspect_type_iam_member.py +2 -0
  199. pulumi_gcp/dataplex/aspect_type_iam_policy.py +2 -0
  200. pulumi_gcp/dataplex/asset_iam_binding.py +2 -0
  201. pulumi_gcp/dataplex/asset_iam_member.py +2 -0
  202. pulumi_gcp/dataplex/asset_iam_policy.py +2 -0
  203. pulumi_gcp/dataplex/datascan_iam_binding.py +2 -0
  204. pulumi_gcp/dataplex/datascan_iam_member.py +2 -0
  205. pulumi_gcp/dataplex/datascan_iam_policy.py +2 -0
  206. pulumi_gcp/dataplex/entry_group_iam_binding.py +2 -0
  207. pulumi_gcp/dataplex/entry_group_iam_member.py +2 -0
  208. pulumi_gcp/dataplex/entry_group_iam_policy.py +2 -0
  209. pulumi_gcp/dataplex/entry_type_iam_binding.py +2 -0
  210. pulumi_gcp/dataplex/entry_type_iam_member.py +2 -0
  211. pulumi_gcp/dataplex/entry_type_iam_policy.py +2 -0
  212. pulumi_gcp/dataplex/glossary_iam_binding.py +2 -0
  213. pulumi_gcp/dataplex/glossary_iam_member.py +2 -0
  214. pulumi_gcp/dataplex/glossary_iam_policy.py +2 -0
  215. pulumi_gcp/dataplex/lake_iam_binding.py +2 -0
  216. pulumi_gcp/dataplex/lake_iam_member.py +2 -0
  217. pulumi_gcp/dataplex/lake_iam_policy.py +2 -0
  218. pulumi_gcp/dataplex/task_iam_binding.py +2 -0
  219. pulumi_gcp/dataplex/task_iam_member.py +2 -0
  220. pulumi_gcp/dataplex/task_iam_policy.py +2 -0
  221. pulumi_gcp/dataplex/zone_iam_binding.py +2 -0
  222. pulumi_gcp/dataplex/zone_iam_member.py +2 -0
  223. pulumi_gcp/dataplex/zone_iam_policy.py +2 -0
  224. pulumi_gcp/dataproc/_inputs.py +249 -14
  225. pulumi_gcp/dataproc/autoscaling_policy_iam_binding.py +2 -0
  226. pulumi_gcp/dataproc/autoscaling_policy_iam_member.py +2 -0
  227. pulumi_gcp/dataproc/autoscaling_policy_iam_policy.py +2 -0
  228. pulumi_gcp/dataproc/batch.py +6 -0
  229. pulumi_gcp/dataproc/cluster.py +2 -0
  230. pulumi_gcp/dataproc/metastore_database_iam_binding.py +2 -0
  231. pulumi_gcp/dataproc/metastore_database_iam_member.py +2 -0
  232. pulumi_gcp/dataproc/metastore_database_iam_policy.py +2 -0
  233. pulumi_gcp/dataproc/metastore_federation_iam_binding.py +2 -0
  234. pulumi_gcp/dataproc/metastore_federation_iam_member.py +2 -0
  235. pulumi_gcp/dataproc/metastore_federation_iam_policy.py +2 -0
  236. pulumi_gcp/dataproc/metastore_service_iam_binding.py +2 -0
  237. pulumi_gcp/dataproc/metastore_service_iam_member.py +2 -0
  238. pulumi_gcp/dataproc/metastore_service_iam_policy.py +2 -0
  239. pulumi_gcp/dataproc/metastore_table_iam_binding.py +2 -0
  240. pulumi_gcp/dataproc/metastore_table_iam_member.py +2 -0
  241. pulumi_gcp/dataproc/metastore_table_iam_policy.py +2 -0
  242. pulumi_gcp/dataproc/outputs.py +215 -12
  243. pulumi_gcp/dataproc/session_template.py +14 -2
  244. pulumi_gcp/developerconnect/__init__.py +1 -0
  245. pulumi_gcp/developerconnect/_inputs.py +583 -0
  246. pulumi_gcp/developerconnect/insights_config.py +895 -0
  247. pulumi_gcp/developerconnect/outputs.py +442 -0
  248. pulumi_gcp/diagflow/__init__.py +3 -0
  249. pulumi_gcp/diagflow/_inputs.py +11899 -7963
  250. pulumi_gcp/diagflow/conversation_profile.py +959 -0
  251. pulumi_gcp/diagflow/cx_generator.py +636 -0
  252. pulumi_gcp/diagflow/cx_playbook.py +967 -0
  253. pulumi_gcp/diagflow/cx_tool.py +2 -2
  254. pulumi_gcp/diagflow/cx_webhook.py +380 -36
  255. pulumi_gcp/diagflow/outputs.py +9099 -5946
  256. pulumi_gcp/discoveryengine/__init__.py +2 -0
  257. pulumi_gcp/discoveryengine/_inputs.py +465 -0
  258. pulumi_gcp/discoveryengine/cmek_config.py +707 -0
  259. pulumi_gcp/discoveryengine/outputs.py +412 -0
  260. pulumi_gcp/discoveryengine/recommendation_engine.py +813 -0
  261. pulumi_gcp/dns/dns_managed_zone_iam_binding.py +2 -0
  262. pulumi_gcp/dns/dns_managed_zone_iam_member.py +2 -0
  263. pulumi_gcp/dns/dns_managed_zone_iam_policy.py +2 -0
  264. pulumi_gcp/endpoints/service_iam_binding.py +2 -0
  265. pulumi_gcp/endpoints/service_iam_member.py +2 -0
  266. pulumi_gcp/endpoints/service_iam_policy.py +2 -0
  267. pulumi_gcp/firestore/field.py +6 -6
  268. pulumi_gcp/gemini/gemini_gcp_enablement_setting.py +107 -9
  269. pulumi_gcp/gemini/gemini_gcp_enablement_setting_binding.py +2 -2
  270. pulumi_gcp/gemini/repository_group_iam_binding.py +2 -0
  271. pulumi_gcp/gemini/repository_group_iam_member.py +2 -0
  272. pulumi_gcp/gemini/repository_group_iam_policy.py +2 -0
  273. pulumi_gcp/gkebackup/backup_plan_iam_binding.py +2 -0
  274. pulumi_gcp/gkebackup/backup_plan_iam_member.py +2 -0
  275. pulumi_gcp/gkebackup/backup_plan_iam_policy.py +2 -0
  276. pulumi_gcp/gkebackup/restore_plan_iam_binding.py +2 -0
  277. pulumi_gcp/gkebackup/restore_plan_iam_member.py +2 -0
  278. pulumi_gcp/gkebackup/restore_plan_iam_policy.py +2 -0
  279. pulumi_gcp/gkehub/feature_iam_binding.py +2 -0
  280. pulumi_gcp/gkehub/feature_iam_member.py +2 -0
  281. pulumi_gcp/gkehub/feature_iam_policy.py +2 -0
  282. pulumi_gcp/gkehub/membership_binding.py +6 -6
  283. pulumi_gcp/gkehub/membership_iam_binding.py +2 -0
  284. pulumi_gcp/gkehub/membership_iam_member.py +2 -0
  285. pulumi_gcp/gkehub/membership_iam_policy.py +2 -0
  286. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  287. pulumi_gcp/gkehub/namespace.py +4 -4
  288. pulumi_gcp/gkehub/scope_iam_binding.py +2 -0
  289. pulumi_gcp/gkehub/scope_iam_member.py +2 -0
  290. pulumi_gcp/gkehub/scope_iam_policy.py +2 -0
  291. pulumi_gcp/gkehub/scope_rbac_role_binding.py +8 -8
  292. pulumi_gcp/gkeonprem/vmware_admin_cluster.py +24 -3
  293. pulumi_gcp/healthcare/consent_store_iam_binding.py +2 -0
  294. pulumi_gcp/healthcare/consent_store_iam_member.py +2 -0
  295. pulumi_gcp/healthcare/consent_store_iam_policy.py +2 -0
  296. pulumi_gcp/iam/__init__.py +4 -0
  297. pulumi_gcp/iam/_inputs.py +98 -0
  298. pulumi_gcp/iam/get_workforce_pool_iam_policy.py +161 -0
  299. pulumi_gcp/iam/outputs.py +56 -0
  300. pulumi_gcp/iam/workforce_pool_iam_binding.py +763 -0
  301. pulumi_gcp/iam/workforce_pool_iam_member.py +763 -0
  302. pulumi_gcp/iam/workforce_pool_iam_policy.py +602 -0
  303. pulumi_gcp/iap/app_engine_service_iam_binding.py +2 -0
  304. pulumi_gcp/iap/app_engine_service_iam_member.py +2 -0
  305. pulumi_gcp/iap/app_engine_service_iam_policy.py +2 -0
  306. pulumi_gcp/iap/app_engine_version_iam_binding.py +2 -0
  307. pulumi_gcp/iap/app_engine_version_iam_member.py +2 -0
  308. pulumi_gcp/iap/app_engine_version_iam_policy.py +2 -0
  309. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  310. pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +2 -0
  311. pulumi_gcp/iap/tunnel_dest_group_iam_member.py +2 -0
  312. pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +2 -0
  313. pulumi_gcp/iap/tunnel_iam_binding.py +2 -0
  314. pulumi_gcp/iap/tunnel_iam_member.py +2 -0
  315. pulumi_gcp/iap/tunnel_iam_policy.py +2 -0
  316. pulumi_gcp/iap/tunnel_instance_iam_binding.py +2 -0
  317. pulumi_gcp/iap/tunnel_instance_iam_member.py +2 -0
  318. pulumi_gcp/iap/tunnel_instance_iam_policy.py +2 -0
  319. pulumi_gcp/iap/web_backend_service_iam_binding.py +2 -0
  320. pulumi_gcp/iap/web_backend_service_iam_member.py +2 -0
  321. pulumi_gcp/iap/web_backend_service_iam_policy.py +2 -0
  322. pulumi_gcp/iap/web_cloud_run_service_iam_binding.py +2 -0
  323. pulumi_gcp/iap/web_cloud_run_service_iam_member.py +2 -0
  324. pulumi_gcp/iap/web_cloud_run_service_iam_policy.py +2 -0
  325. pulumi_gcp/iap/web_iam_binding.py +2 -0
  326. pulumi_gcp/iap/web_iam_member.py +2 -0
  327. pulumi_gcp/iap/web_iam_policy.py +2 -0
  328. pulumi_gcp/iap/web_region_backend_service_iam_binding.py +2 -0
  329. pulumi_gcp/iap/web_region_backend_service_iam_member.py +2 -0
  330. pulumi_gcp/iap/web_region_backend_service_iam_policy.py +2 -0
  331. pulumi_gcp/iap/web_type_app_enging_iam_binding.py +2 -0
  332. pulumi_gcp/iap/web_type_app_enging_iam_member.py +2 -0
  333. pulumi_gcp/iap/web_type_app_enging_iam_policy.py +2 -0
  334. pulumi_gcp/iap/web_type_compute_iam_binding.py +2 -0
  335. pulumi_gcp/iap/web_type_compute_iam_member.py +2 -0
  336. pulumi_gcp/iap/web_type_compute_iam_policy.py +2 -0
  337. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  338. pulumi_gcp/kms/crypto_key.py +7 -0
  339. pulumi_gcp/kms/ekm_connection_iam_binding.py +2 -0
  340. pulumi_gcp/kms/ekm_connection_iam_member.py +2 -0
  341. pulumi_gcp/kms/ekm_connection_iam_policy.py +2 -0
  342. pulumi_gcp/kms/outputs.py +2 -0
  343. pulumi_gcp/logging/log_view_iam_binding.py +2 -0
  344. pulumi_gcp/logging/log_view_iam_member.py +2 -0
  345. pulumi_gcp/logging/log_view_iam_policy.py +2 -0
  346. pulumi_gcp/looker/instance.py +28 -7
  347. pulumi_gcp/managedkafka/_inputs.py +127 -0
  348. pulumi_gcp/managedkafka/cluster.py +131 -1
  349. pulumi_gcp/managedkafka/connect_cluster.py +4 -4
  350. pulumi_gcp/managedkafka/connector.py +4 -4
  351. pulumi_gcp/managedkafka/outputs.py +128 -0
  352. pulumi_gcp/memorystore/get_instance.py +12 -1
  353. pulumi_gcp/memorystore/instance.py +78 -12
  354. pulumi_gcp/modelarmor/__init__.py +1 -0
  355. pulumi_gcp/modelarmor/_inputs.py +683 -0
  356. pulumi_gcp/modelarmor/floorsetting.py +736 -0
  357. pulumi_gcp/modelarmor/outputs.py +618 -0
  358. pulumi_gcp/monitoring/_inputs.py +3 -3
  359. pulumi_gcp/monitoring/outputs.py +2 -2
  360. pulumi_gcp/networkconnectivity/_inputs.py +60 -0
  361. pulumi_gcp/networkconnectivity/internal_range.py +136 -0
  362. pulumi_gcp/networkconnectivity/outputs.py +55 -0
  363. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  364. pulumi_gcp/networkmanagement/vpc_flow_logs_config.py +213 -168
  365. pulumi_gcp/notebooks/instance.py +18 -18
  366. pulumi_gcp/notebooks/instance_iam_binding.py +2 -0
  367. pulumi_gcp/notebooks/instance_iam_member.py +2 -0
  368. pulumi_gcp/notebooks/instance_iam_policy.py +2 -0
  369. pulumi_gcp/notebooks/runtime_iam_binding.py +2 -0
  370. pulumi_gcp/notebooks/runtime_iam_member.py +2 -0
  371. pulumi_gcp/notebooks/runtime_iam_policy.py +2 -0
  372. pulumi_gcp/oracledatabase/__init__.py +2 -0
  373. pulumi_gcp/oracledatabase/autonomous_database.py +262 -38
  374. pulumi_gcp/oracledatabase/cloud_vm_cluster.py +314 -50
  375. pulumi_gcp/oracledatabase/get_autonomous_database.py +23 -1
  376. pulumi_gcp/oracledatabase/get_cloud_vm_cluster.py +34 -1
  377. pulumi_gcp/oracledatabase/odb_network.py +721 -0
  378. pulumi_gcp/oracledatabase/odb_subnet.py +803 -0
  379. pulumi_gcp/oracledatabase/outputs.py +83 -0
  380. pulumi_gcp/organizations/folder.py +56 -0
  381. pulumi_gcp/organizations/get_folder.py +29 -1
  382. pulumi_gcp/orgpolicy/policy.py +2 -2
  383. pulumi_gcp/parametermanager/parameter_version.py +62 -0
  384. pulumi_gcp/parametermanager/regional_parameter_version.py +64 -0
  385. pulumi_gcp/projects/api_key.py +88 -1
  386. pulumi_gcp/provider.py +20 -40
  387. pulumi_gcp/pubsub/schema_iam_binding.py +2 -0
  388. pulumi_gcp/pubsub/schema_iam_member.py +2 -0
  389. pulumi_gcp/pubsub/schema_iam_policy.py +2 -0
  390. pulumi_gcp/pubsub/subscription.py +130 -6
  391. pulumi_gcp/pubsub/topic.py +116 -0
  392. pulumi_gcp/pubsub/topic_iam_binding.py +2 -0
  393. pulumi_gcp/pubsub/topic_iam_member.py +2 -0
  394. pulumi_gcp/pubsub/topic_iam_policy.py +2 -0
  395. pulumi_gcp/pulumi-plugin.json +1 -1
  396. pulumi_gcp/redis/cluster.py +70 -0
  397. pulumi_gcp/redis/get_cluster.py +12 -1
  398. pulumi_gcp/redis/instance.py +8 -12
  399. pulumi_gcp/secretmanager/get_regional_secret.py +12 -1
  400. pulumi_gcp/secretmanager/get_secret.py +12 -1
  401. pulumi_gcp/secretmanager/outputs.py +30 -0
  402. pulumi_gcp/secretmanager/regional_secret.py +61 -0
  403. pulumi_gcp/secretmanager/regional_secret_iam_binding.py +2 -0
  404. pulumi_gcp/secretmanager/regional_secret_iam_member.py +2 -0
  405. pulumi_gcp/secretmanager/regional_secret_iam_policy.py +2 -0
  406. pulumi_gcp/secretmanager/secret.py +61 -0
  407. pulumi_gcp/secretmanager/secret_iam_binding.py +2 -0
  408. pulumi_gcp/secretmanager/secret_iam_member.py +2 -0
  409. pulumi_gcp/secretmanager/secret_iam_policy.py +2 -0
  410. pulumi_gcp/secretmanager/secret_version.py +1 -48
  411. pulumi_gcp/securesourcemanager/branch_rule.py +16 -8
  412. pulumi_gcp/securesourcemanager/instance.py +112 -4
  413. pulumi_gcp/securesourcemanager/repository.py +112 -8
  414. pulumi_gcp/securesourcemanager/repository_iam_binding.py +2 -0
  415. pulumi_gcp/securesourcemanager/repository_iam_member.py +2 -0
  416. pulumi_gcp/securesourcemanager/repository_iam_policy.py +2 -0
  417. pulumi_gcp/securitycenter/instance_iam_binding.py +18 -4
  418. pulumi_gcp/securitycenter/instance_iam_member.py +18 -4
  419. pulumi_gcp/securitycenter/instance_iam_policy.py +18 -4
  420. pulumi_gcp/securitycenter/v2_organization_source_iam_binding.py +2 -0
  421. pulumi_gcp/securitycenter/v2_organization_source_iam_member.py +2 -0
  422. pulumi_gcp/securitycenter/v2_organization_source_iam_policy.py +2 -0
  423. pulumi_gcp/serviceaccount/get_account_key.py +1 -0
  424. pulumi_gcp/servicedirectory/namespace_iam_binding.py +2 -0
  425. pulumi_gcp/servicedirectory/namespace_iam_member.py +2 -0
  426. pulumi_gcp/servicedirectory/namespace_iam_policy.py +2 -0
  427. pulumi_gcp/servicedirectory/service_iam_binding.py +2 -0
  428. pulumi_gcp/servicedirectory/service_iam_member.py +2 -0
  429. pulumi_gcp/servicedirectory/service_iam_policy.py +2 -0
  430. pulumi_gcp/sourcerepo/repository_iam_binding.py +2 -0
  431. pulumi_gcp/sourcerepo/repository_iam_member.py +2 -0
  432. pulumi_gcp/sourcerepo/repository_iam_policy.py +2 -0
  433. pulumi_gcp/sql/_inputs.py +88 -10
  434. pulumi_gcp/sql/database.py +0 -12
  435. pulumi_gcp/sql/database_instance.py +108 -7
  436. pulumi_gcp/sql/get_database_instance.py +12 -1
  437. pulumi_gcp/sql/outputs.py +158 -11
  438. pulumi_gcp/storage/__init__.py +2 -0
  439. pulumi_gcp/storage/_inputs.py +555 -12
  440. pulumi_gcp/storage/bucket.py +7 -7
  441. pulumi_gcp/storage/bucket_object.py +34 -0
  442. pulumi_gcp/storage/get_bucket_object.py +12 -1
  443. pulumi_gcp/storage/get_bucket_object_content.py +12 -1
  444. pulumi_gcp/storage/get_insights_dataset_config.py +363 -0
  445. pulumi_gcp/storage/insights_dataset_config.py +1280 -0
  446. pulumi_gcp/storage/outputs.py +703 -7
  447. pulumi_gcp/tags/tag_key_iam_binding.py +2 -0
  448. pulumi_gcp/tags/tag_key_iam_member.py +2 -0
  449. pulumi_gcp/tags/tag_key_iam_policy.py +2 -0
  450. pulumi_gcp/tags/tag_value_iam_binding.py +2 -0
  451. pulumi_gcp/tags/tag_value_iam_member.py +2 -0
  452. pulumi_gcp/tags/tag_value_iam_policy.py +2 -0
  453. pulumi_gcp/tpu/get_tensorflow_versions.py +10 -0
  454. pulumi_gcp/vertex/__init__.py +2 -0
  455. pulumi_gcp/vertex/_inputs.py +3768 -3
  456. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  457. pulumi_gcp/vertex/ai_endpoint_with_model_garden_deployment.py +940 -0
  458. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  459. pulumi_gcp/vertex/ai_index.py +21 -7
  460. pulumi_gcp/vertex/ai_rag_engine_config.py +354 -0
  461. pulumi_gcp/vertex/outputs.py +2678 -2
  462. pulumi_gcp/vmwareengine/network_peering.py +7 -7
  463. pulumi_gcp/workbench/_inputs.py +118 -0
  464. pulumi_gcp/workbench/instance.py +171 -2
  465. pulumi_gcp/workbench/outputs.py +91 -0
  466. {pulumi_gcp-8.40.0a1754721948.dist-info → pulumi_gcp-8.41.0.dist-info}/METADATA +1 -1
  467. {pulumi_gcp-8.40.0a1754721948.dist-info → pulumi_gcp-8.41.0.dist-info}/RECORD +469 -442
  468. {pulumi_gcp-8.40.0a1754721948.dist-info → pulumi_gcp-8.41.0.dist-info}/WHEEL +0 -0
  469. {pulumi_gcp-8.40.0a1754721948.dist-info → pulumi_gcp-8.41.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1010 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins as _builtins
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['SecurityActionArgs', 'SecurityAction']
20
+
21
+ @pulumi.input_type
22
+ class SecurityActionArgs:
23
+ def __init__(__self__, *,
24
+ condition_config: pulumi.Input['SecurityActionConditionConfigArgs'],
25
+ env_id: pulumi.Input[_builtins.str],
26
+ org_id: pulumi.Input[_builtins.str],
27
+ security_action_id: pulumi.Input[_builtins.str],
28
+ state: pulumi.Input[_builtins.str],
29
+ allow: Optional[pulumi.Input['SecurityActionAllowArgs']] = None,
30
+ api_proxies: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
31
+ deny: Optional[pulumi.Input['SecurityActionDenyArgs']] = None,
32
+ description: Optional[pulumi.Input[_builtins.str]] = None,
33
+ expire_time: Optional[pulumi.Input[_builtins.str]] = None,
34
+ flag: Optional[pulumi.Input['SecurityActionFlagArgs']] = None,
35
+ ttl: Optional[pulumi.Input[_builtins.str]] = None):
36
+ """
37
+ The set of arguments for constructing a SecurityAction resource.
38
+ :param pulumi.Input['SecurityActionConditionConfigArgs'] condition_config: A valid SecurityAction must contain at least one condition.
39
+ Structure is documented below.
40
+ :param pulumi.Input[_builtins.str] env_id: The Apigee environment that this security action applies to.
41
+ :param pulumi.Input[_builtins.str] org_id: The organization that this security action applies to.
42
+ :param pulumi.Input[_builtins.str] security_action_id: The ID to use for the SecurityAction, which will become the final component of the action's resource name.
43
+ This value should be 0-61 characters, and valid format is (^a-z?$).
44
+ :param pulumi.Input[_builtins.str] state: Only an ENABLED SecurityAction is enforced. An ENABLED SecurityAction past its expiration time will not be enforced.
45
+ Possible values are: `ENABLED`, `DISABLED`.
46
+ :param pulumi.Input['SecurityActionAllowArgs'] allow: Allow a request through if it matches this SecurityAction.
47
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] api_proxies: If unset, this would apply to all proxies in the environment.
48
+ If set, this action is enforced only if at least one proxy in the repeated
49
+ list is deployed at the time of enforcement. If set, several restrictions are enforced on SecurityActions.
50
+ There can be at most 100 enabled actions with proxies set in an env.
51
+ Several other restrictions apply on conditions and are detailed later.
52
+ :param pulumi.Input['SecurityActionDenyArgs'] deny: Deny a request through if it matches this SecurityAction.
53
+ Structure is documented below.
54
+ :param pulumi.Input[_builtins.str] description: An optional user provided description of the SecurityAction.
55
+ :param pulumi.Input[_builtins.str] expire_time: The expiration for this SecurityAction.
56
+ Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9
57
+ fractional digits. Offsets other than "Z" are also accepted.
58
+ Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
59
+ :param pulumi.Input['SecurityActionFlagArgs'] flag: Flag a request through if it matches this SecurityAction.
60
+ Structure is documented below.
61
+ :param pulumi.Input[_builtins.str] ttl: The TTL for this SecurityAction.
62
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
63
+ """
64
+ pulumi.set(__self__, "condition_config", condition_config)
65
+ pulumi.set(__self__, "env_id", env_id)
66
+ pulumi.set(__self__, "org_id", org_id)
67
+ pulumi.set(__self__, "security_action_id", security_action_id)
68
+ pulumi.set(__self__, "state", state)
69
+ if allow is not None:
70
+ pulumi.set(__self__, "allow", allow)
71
+ if api_proxies is not None:
72
+ pulumi.set(__self__, "api_proxies", api_proxies)
73
+ if deny is not None:
74
+ pulumi.set(__self__, "deny", deny)
75
+ if description is not None:
76
+ pulumi.set(__self__, "description", description)
77
+ if expire_time is not None:
78
+ pulumi.set(__self__, "expire_time", expire_time)
79
+ if flag is not None:
80
+ pulumi.set(__self__, "flag", flag)
81
+ if ttl is not None:
82
+ pulumi.set(__self__, "ttl", ttl)
83
+
84
+ @_builtins.property
85
+ @pulumi.getter(name="conditionConfig")
86
+ def condition_config(self) -> pulumi.Input['SecurityActionConditionConfigArgs']:
87
+ """
88
+ A valid SecurityAction must contain at least one condition.
89
+ Structure is documented below.
90
+ """
91
+ return pulumi.get(self, "condition_config")
92
+
93
+ @condition_config.setter
94
+ def condition_config(self, value: pulumi.Input['SecurityActionConditionConfigArgs']):
95
+ pulumi.set(self, "condition_config", value)
96
+
97
+ @_builtins.property
98
+ @pulumi.getter(name="envId")
99
+ def env_id(self) -> pulumi.Input[_builtins.str]:
100
+ """
101
+ The Apigee environment that this security action applies to.
102
+ """
103
+ return pulumi.get(self, "env_id")
104
+
105
+ @env_id.setter
106
+ def env_id(self, value: pulumi.Input[_builtins.str]):
107
+ pulumi.set(self, "env_id", value)
108
+
109
+ @_builtins.property
110
+ @pulumi.getter(name="orgId")
111
+ def org_id(self) -> pulumi.Input[_builtins.str]:
112
+ """
113
+ The organization that this security action applies to.
114
+ """
115
+ return pulumi.get(self, "org_id")
116
+
117
+ @org_id.setter
118
+ def org_id(self, value: pulumi.Input[_builtins.str]):
119
+ pulumi.set(self, "org_id", value)
120
+
121
+ @_builtins.property
122
+ @pulumi.getter(name="securityActionId")
123
+ def security_action_id(self) -> pulumi.Input[_builtins.str]:
124
+ """
125
+ The ID to use for the SecurityAction, which will become the final component of the action's resource name.
126
+ This value should be 0-61 characters, and valid format is (^a-z?$).
127
+ """
128
+ return pulumi.get(self, "security_action_id")
129
+
130
+ @security_action_id.setter
131
+ def security_action_id(self, value: pulumi.Input[_builtins.str]):
132
+ pulumi.set(self, "security_action_id", value)
133
+
134
+ @_builtins.property
135
+ @pulumi.getter
136
+ def state(self) -> pulumi.Input[_builtins.str]:
137
+ """
138
+ Only an ENABLED SecurityAction is enforced. An ENABLED SecurityAction past its expiration time will not be enforced.
139
+ Possible values are: `ENABLED`, `DISABLED`.
140
+ """
141
+ return pulumi.get(self, "state")
142
+
143
+ @state.setter
144
+ def state(self, value: pulumi.Input[_builtins.str]):
145
+ pulumi.set(self, "state", value)
146
+
147
+ @_builtins.property
148
+ @pulumi.getter
149
+ def allow(self) -> Optional[pulumi.Input['SecurityActionAllowArgs']]:
150
+ """
151
+ Allow a request through if it matches this SecurityAction.
152
+ """
153
+ return pulumi.get(self, "allow")
154
+
155
+ @allow.setter
156
+ def allow(self, value: Optional[pulumi.Input['SecurityActionAllowArgs']]):
157
+ pulumi.set(self, "allow", value)
158
+
159
+ @_builtins.property
160
+ @pulumi.getter(name="apiProxies")
161
+ def api_proxies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
162
+ """
163
+ If unset, this would apply to all proxies in the environment.
164
+ If set, this action is enforced only if at least one proxy in the repeated
165
+ list is deployed at the time of enforcement. If set, several restrictions are enforced on SecurityActions.
166
+ There can be at most 100 enabled actions with proxies set in an env.
167
+ Several other restrictions apply on conditions and are detailed later.
168
+ """
169
+ return pulumi.get(self, "api_proxies")
170
+
171
+ @api_proxies.setter
172
+ def api_proxies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
173
+ pulumi.set(self, "api_proxies", value)
174
+
175
+ @_builtins.property
176
+ @pulumi.getter
177
+ def deny(self) -> Optional[pulumi.Input['SecurityActionDenyArgs']]:
178
+ """
179
+ Deny a request through if it matches this SecurityAction.
180
+ Structure is documented below.
181
+ """
182
+ return pulumi.get(self, "deny")
183
+
184
+ @deny.setter
185
+ def deny(self, value: Optional[pulumi.Input['SecurityActionDenyArgs']]):
186
+ pulumi.set(self, "deny", value)
187
+
188
+ @_builtins.property
189
+ @pulumi.getter
190
+ def description(self) -> Optional[pulumi.Input[_builtins.str]]:
191
+ """
192
+ An optional user provided description of the SecurityAction.
193
+ """
194
+ return pulumi.get(self, "description")
195
+
196
+ @description.setter
197
+ def description(self, value: Optional[pulumi.Input[_builtins.str]]):
198
+ pulumi.set(self, "description", value)
199
+
200
+ @_builtins.property
201
+ @pulumi.getter(name="expireTime")
202
+ def expire_time(self) -> Optional[pulumi.Input[_builtins.str]]:
203
+ """
204
+ The expiration for this SecurityAction.
205
+ Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9
206
+ fractional digits. Offsets other than "Z" are also accepted.
207
+ Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
208
+ """
209
+ return pulumi.get(self, "expire_time")
210
+
211
+ @expire_time.setter
212
+ def expire_time(self, value: Optional[pulumi.Input[_builtins.str]]):
213
+ pulumi.set(self, "expire_time", value)
214
+
215
+ @_builtins.property
216
+ @pulumi.getter
217
+ def flag(self) -> Optional[pulumi.Input['SecurityActionFlagArgs']]:
218
+ """
219
+ Flag a request through if it matches this SecurityAction.
220
+ Structure is documented below.
221
+ """
222
+ return pulumi.get(self, "flag")
223
+
224
+ @flag.setter
225
+ def flag(self, value: Optional[pulumi.Input['SecurityActionFlagArgs']]):
226
+ pulumi.set(self, "flag", value)
227
+
228
+ @_builtins.property
229
+ @pulumi.getter
230
+ def ttl(self) -> Optional[pulumi.Input[_builtins.str]]:
231
+ """
232
+ The TTL for this SecurityAction.
233
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
234
+ """
235
+ return pulumi.get(self, "ttl")
236
+
237
+ @ttl.setter
238
+ def ttl(self, value: Optional[pulumi.Input[_builtins.str]]):
239
+ pulumi.set(self, "ttl", value)
240
+
241
+
242
+ @pulumi.input_type
243
+ class _SecurityActionState:
244
+ def __init__(__self__, *,
245
+ allow: Optional[pulumi.Input['SecurityActionAllowArgs']] = None,
246
+ api_proxies: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
247
+ condition_config: Optional[pulumi.Input['SecurityActionConditionConfigArgs']] = None,
248
+ create_time: Optional[pulumi.Input[_builtins.str]] = None,
249
+ deny: Optional[pulumi.Input['SecurityActionDenyArgs']] = None,
250
+ description: Optional[pulumi.Input[_builtins.str]] = None,
251
+ env_id: Optional[pulumi.Input[_builtins.str]] = None,
252
+ expire_time: Optional[pulumi.Input[_builtins.str]] = None,
253
+ flag: Optional[pulumi.Input['SecurityActionFlagArgs']] = None,
254
+ org_id: Optional[pulumi.Input[_builtins.str]] = None,
255
+ security_action_id: Optional[pulumi.Input[_builtins.str]] = None,
256
+ state: Optional[pulumi.Input[_builtins.str]] = None,
257
+ ttl: Optional[pulumi.Input[_builtins.str]] = None,
258
+ update_time: Optional[pulumi.Input[_builtins.str]] = None):
259
+ """
260
+ Input properties used for looking up and filtering SecurityAction resources.
261
+ :param pulumi.Input['SecurityActionAllowArgs'] allow: Allow a request through if it matches this SecurityAction.
262
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] api_proxies: If unset, this would apply to all proxies in the environment.
263
+ If set, this action is enforced only if at least one proxy in the repeated
264
+ list is deployed at the time of enforcement. If set, several restrictions are enforced on SecurityActions.
265
+ There can be at most 100 enabled actions with proxies set in an env.
266
+ Several other restrictions apply on conditions and are detailed later.
267
+ :param pulumi.Input['SecurityActionConditionConfigArgs'] condition_config: A valid SecurityAction must contain at least one condition.
268
+ Structure is documented below.
269
+ :param pulumi.Input[_builtins.str] create_time: The create time for this SecurityAction.
270
+ Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits.
271
+ Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
272
+ :param pulumi.Input['SecurityActionDenyArgs'] deny: Deny a request through if it matches this SecurityAction.
273
+ Structure is documented below.
274
+ :param pulumi.Input[_builtins.str] description: An optional user provided description of the SecurityAction.
275
+ :param pulumi.Input[_builtins.str] env_id: The Apigee environment that this security action applies to.
276
+ :param pulumi.Input[_builtins.str] expire_time: The expiration for this SecurityAction.
277
+ Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9
278
+ fractional digits. Offsets other than "Z" are also accepted.
279
+ Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
280
+ :param pulumi.Input['SecurityActionFlagArgs'] flag: Flag a request through if it matches this SecurityAction.
281
+ Structure is documented below.
282
+ :param pulumi.Input[_builtins.str] org_id: The organization that this security action applies to.
283
+ :param pulumi.Input[_builtins.str] security_action_id: The ID to use for the SecurityAction, which will become the final component of the action's resource name.
284
+ This value should be 0-61 characters, and valid format is (^a-z?$).
285
+ :param pulumi.Input[_builtins.str] state: Only an ENABLED SecurityAction is enforced. An ENABLED SecurityAction past its expiration time will not be enforced.
286
+ Possible values are: `ENABLED`, `DISABLED`.
287
+ :param pulumi.Input[_builtins.str] ttl: The TTL for this SecurityAction.
288
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
289
+ :param pulumi.Input[_builtins.str] update_time: The update time for this SecurityAction. This reflects when this SecurityAction changed states.
290
+ Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits.
291
+ Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
292
+ """
293
+ if allow is not None:
294
+ pulumi.set(__self__, "allow", allow)
295
+ if api_proxies is not None:
296
+ pulumi.set(__self__, "api_proxies", api_proxies)
297
+ if condition_config is not None:
298
+ pulumi.set(__self__, "condition_config", condition_config)
299
+ if create_time is not None:
300
+ pulumi.set(__self__, "create_time", create_time)
301
+ if deny is not None:
302
+ pulumi.set(__self__, "deny", deny)
303
+ if description is not None:
304
+ pulumi.set(__self__, "description", description)
305
+ if env_id is not None:
306
+ pulumi.set(__self__, "env_id", env_id)
307
+ if expire_time is not None:
308
+ pulumi.set(__self__, "expire_time", expire_time)
309
+ if flag is not None:
310
+ pulumi.set(__self__, "flag", flag)
311
+ if org_id is not None:
312
+ pulumi.set(__self__, "org_id", org_id)
313
+ if security_action_id is not None:
314
+ pulumi.set(__self__, "security_action_id", security_action_id)
315
+ if state is not None:
316
+ pulumi.set(__self__, "state", state)
317
+ if ttl is not None:
318
+ pulumi.set(__self__, "ttl", ttl)
319
+ if update_time is not None:
320
+ pulumi.set(__self__, "update_time", update_time)
321
+
322
+ @_builtins.property
323
+ @pulumi.getter
324
+ def allow(self) -> Optional[pulumi.Input['SecurityActionAllowArgs']]:
325
+ """
326
+ Allow a request through if it matches this SecurityAction.
327
+ """
328
+ return pulumi.get(self, "allow")
329
+
330
+ @allow.setter
331
+ def allow(self, value: Optional[pulumi.Input['SecurityActionAllowArgs']]):
332
+ pulumi.set(self, "allow", value)
333
+
334
+ @_builtins.property
335
+ @pulumi.getter(name="apiProxies")
336
+ def api_proxies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
337
+ """
338
+ If unset, this would apply to all proxies in the environment.
339
+ If set, this action is enforced only if at least one proxy in the repeated
340
+ list is deployed at the time of enforcement. If set, several restrictions are enforced on SecurityActions.
341
+ There can be at most 100 enabled actions with proxies set in an env.
342
+ Several other restrictions apply on conditions and are detailed later.
343
+ """
344
+ return pulumi.get(self, "api_proxies")
345
+
346
+ @api_proxies.setter
347
+ def api_proxies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
348
+ pulumi.set(self, "api_proxies", value)
349
+
350
+ @_builtins.property
351
+ @pulumi.getter(name="conditionConfig")
352
+ def condition_config(self) -> Optional[pulumi.Input['SecurityActionConditionConfigArgs']]:
353
+ """
354
+ A valid SecurityAction must contain at least one condition.
355
+ Structure is documented below.
356
+ """
357
+ return pulumi.get(self, "condition_config")
358
+
359
+ @condition_config.setter
360
+ def condition_config(self, value: Optional[pulumi.Input['SecurityActionConditionConfigArgs']]):
361
+ pulumi.set(self, "condition_config", value)
362
+
363
+ @_builtins.property
364
+ @pulumi.getter(name="createTime")
365
+ def create_time(self) -> Optional[pulumi.Input[_builtins.str]]:
366
+ """
367
+ The create time for this SecurityAction.
368
+ Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits.
369
+ Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
370
+ """
371
+ return pulumi.get(self, "create_time")
372
+
373
+ @create_time.setter
374
+ def create_time(self, value: Optional[pulumi.Input[_builtins.str]]):
375
+ pulumi.set(self, "create_time", value)
376
+
377
+ @_builtins.property
378
+ @pulumi.getter
379
+ def deny(self) -> Optional[pulumi.Input['SecurityActionDenyArgs']]:
380
+ """
381
+ Deny a request through if it matches this SecurityAction.
382
+ Structure is documented below.
383
+ """
384
+ return pulumi.get(self, "deny")
385
+
386
+ @deny.setter
387
+ def deny(self, value: Optional[pulumi.Input['SecurityActionDenyArgs']]):
388
+ pulumi.set(self, "deny", value)
389
+
390
+ @_builtins.property
391
+ @pulumi.getter
392
+ def description(self) -> Optional[pulumi.Input[_builtins.str]]:
393
+ """
394
+ An optional user provided description of the SecurityAction.
395
+ """
396
+ return pulumi.get(self, "description")
397
+
398
+ @description.setter
399
+ def description(self, value: Optional[pulumi.Input[_builtins.str]]):
400
+ pulumi.set(self, "description", value)
401
+
402
+ @_builtins.property
403
+ @pulumi.getter(name="envId")
404
+ def env_id(self) -> Optional[pulumi.Input[_builtins.str]]:
405
+ """
406
+ The Apigee environment that this security action applies to.
407
+ """
408
+ return pulumi.get(self, "env_id")
409
+
410
+ @env_id.setter
411
+ def env_id(self, value: Optional[pulumi.Input[_builtins.str]]):
412
+ pulumi.set(self, "env_id", value)
413
+
414
+ @_builtins.property
415
+ @pulumi.getter(name="expireTime")
416
+ def expire_time(self) -> Optional[pulumi.Input[_builtins.str]]:
417
+ """
418
+ The expiration for this SecurityAction.
419
+ Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9
420
+ fractional digits. Offsets other than "Z" are also accepted.
421
+ Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
422
+ """
423
+ return pulumi.get(self, "expire_time")
424
+
425
+ @expire_time.setter
426
+ def expire_time(self, value: Optional[pulumi.Input[_builtins.str]]):
427
+ pulumi.set(self, "expire_time", value)
428
+
429
+ @_builtins.property
430
+ @pulumi.getter
431
+ def flag(self) -> Optional[pulumi.Input['SecurityActionFlagArgs']]:
432
+ """
433
+ Flag a request through if it matches this SecurityAction.
434
+ Structure is documented below.
435
+ """
436
+ return pulumi.get(self, "flag")
437
+
438
+ @flag.setter
439
+ def flag(self, value: Optional[pulumi.Input['SecurityActionFlagArgs']]):
440
+ pulumi.set(self, "flag", value)
441
+
442
+ @_builtins.property
443
+ @pulumi.getter(name="orgId")
444
+ def org_id(self) -> Optional[pulumi.Input[_builtins.str]]:
445
+ """
446
+ The organization that this security action applies to.
447
+ """
448
+ return pulumi.get(self, "org_id")
449
+
450
+ @org_id.setter
451
+ def org_id(self, value: Optional[pulumi.Input[_builtins.str]]):
452
+ pulumi.set(self, "org_id", value)
453
+
454
+ @_builtins.property
455
+ @pulumi.getter(name="securityActionId")
456
+ def security_action_id(self) -> Optional[pulumi.Input[_builtins.str]]:
457
+ """
458
+ The ID to use for the SecurityAction, which will become the final component of the action's resource name.
459
+ This value should be 0-61 characters, and valid format is (^a-z?$).
460
+ """
461
+ return pulumi.get(self, "security_action_id")
462
+
463
+ @security_action_id.setter
464
+ def security_action_id(self, value: Optional[pulumi.Input[_builtins.str]]):
465
+ pulumi.set(self, "security_action_id", value)
466
+
467
+ @_builtins.property
468
+ @pulumi.getter
469
+ def state(self) -> Optional[pulumi.Input[_builtins.str]]:
470
+ """
471
+ Only an ENABLED SecurityAction is enforced. An ENABLED SecurityAction past its expiration time will not be enforced.
472
+ Possible values are: `ENABLED`, `DISABLED`.
473
+ """
474
+ return pulumi.get(self, "state")
475
+
476
+ @state.setter
477
+ def state(self, value: Optional[pulumi.Input[_builtins.str]]):
478
+ pulumi.set(self, "state", value)
479
+
480
+ @_builtins.property
481
+ @pulumi.getter
482
+ def ttl(self) -> Optional[pulumi.Input[_builtins.str]]:
483
+ """
484
+ The TTL for this SecurityAction.
485
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
486
+ """
487
+ return pulumi.get(self, "ttl")
488
+
489
+ @ttl.setter
490
+ def ttl(self, value: Optional[pulumi.Input[_builtins.str]]):
491
+ pulumi.set(self, "ttl", value)
492
+
493
+ @_builtins.property
494
+ @pulumi.getter(name="updateTime")
495
+ def update_time(self) -> Optional[pulumi.Input[_builtins.str]]:
496
+ """
497
+ The update time for this SecurityAction. This reflects when this SecurityAction changed states.
498
+ Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits.
499
+ Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
500
+ """
501
+ return pulumi.get(self, "update_time")
502
+
503
+ @update_time.setter
504
+ def update_time(self, value: Optional[pulumi.Input[_builtins.str]]):
505
+ pulumi.set(self, "update_time", value)
506
+
507
+
508
+ @pulumi.type_token("gcp:apigee/securityAction:SecurityAction")
509
+ class SecurityAction(pulumi.CustomResource):
510
+ @overload
511
+ def __init__(__self__,
512
+ resource_name: str,
513
+ opts: Optional[pulumi.ResourceOptions] = None,
514
+ allow: Optional[pulumi.Input[Union['SecurityActionAllowArgs', 'SecurityActionAllowArgsDict']]] = None,
515
+ api_proxies: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
516
+ condition_config: Optional[pulumi.Input[Union['SecurityActionConditionConfigArgs', 'SecurityActionConditionConfigArgsDict']]] = None,
517
+ deny: Optional[pulumi.Input[Union['SecurityActionDenyArgs', 'SecurityActionDenyArgsDict']]] = None,
518
+ description: Optional[pulumi.Input[_builtins.str]] = None,
519
+ env_id: Optional[pulumi.Input[_builtins.str]] = None,
520
+ expire_time: Optional[pulumi.Input[_builtins.str]] = None,
521
+ flag: Optional[pulumi.Input[Union['SecurityActionFlagArgs', 'SecurityActionFlagArgsDict']]] = None,
522
+ org_id: Optional[pulumi.Input[_builtins.str]] = None,
523
+ security_action_id: Optional[pulumi.Input[_builtins.str]] = None,
524
+ state: Optional[pulumi.Input[_builtins.str]] = None,
525
+ ttl: Optional[pulumi.Input[_builtins.str]] = None,
526
+ __props__=None):
527
+ """
528
+ A SecurityAction is rule that can be enforced at an environment level.
529
+ The result is one of: - A denied API call - An explicitly allowed API call
530
+ - A flagged API call (HTTP headers added before the target receives it)
531
+ At least one condition is required to create a SecurityAction.
532
+
533
+ To get more information about SecurityAction, see:
534
+
535
+ * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.environments.securityActions/create)
536
+ * How-to Guides
537
+ * [Creating security actions](https://cloud.google.com/apigee/docs/api-security/security-actions-api#create-security-actions)
538
+
539
+ ## Example Usage
540
+
541
+ ### Apigee Security Action Basic
542
+
543
+ ```python
544
+ import pulumi
545
+ import pulumi_gcp as gcp
546
+
547
+ current = gcp.organizations.get_client_config()
548
+ apigee_network = gcp.compute.Network("apigee_network", name="my-network")
549
+ apigee_range = gcp.compute.GlobalAddress("apigee_range",
550
+ name="my-address",
551
+ purpose="VPC_PEERING",
552
+ address_type="INTERNAL",
553
+ prefix_length=16,
554
+ network=apigee_network.id)
555
+ apigee_vpc_connection = gcp.servicenetworking.Connection("apigee_vpc_connection",
556
+ network=apigee_network.id,
557
+ service="servicenetworking.googleapis.com",
558
+ reserved_peering_ranges=[apigee_range.name])
559
+ apigee_org = gcp.apigee.Organization("apigee_org",
560
+ analytics_region="us-central1",
561
+ project_id=current.project,
562
+ authorized_network=apigee_network.id,
563
+ opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))
564
+ env = gcp.apigee.Environment("env",
565
+ name="my-environment",
566
+ description="Apigee Environment",
567
+ display_name="environment-1",
568
+ org_id=apigee_org.id)
569
+ apigee_org_security_addons_config = gcp.apigee.AddonsConfig("apigee_org_security_addons_config",
570
+ org=apigee_org.name,
571
+ addons_config={
572
+ "api_security_config": {
573
+ "enabled": True,
574
+ },
575
+ })
576
+ apigee_security_action = gcp.apigee.SecurityAction("apigee_security_action",
577
+ security_action_id="my-security-action",
578
+ org_id=apigee_org.name,
579
+ env_id=env.name,
580
+ description="Apigee Security Action",
581
+ state="ENABLED",
582
+ condition_config={
583
+ "ip_address_ranges": [
584
+ "100.0.220.1",
585
+ "200.0.0.1",
586
+ ],
587
+ "bot_reasons": [
588
+ "Flooder",
589
+ "Public Cloud Azure",
590
+ "Public Cloud AWS",
591
+ ],
592
+ },
593
+ allow={},
594
+ expire_time="2025-12-31T23:59:59Z",
595
+ opts = pulumi.ResourceOptions(depends_on=[apigee_org_security_addons_config]))
596
+ ```
597
+
598
+ ## Import
599
+
600
+ SecurityAction can be imported using any of these accepted formats:
601
+
602
+ * `organizations/{{org_id}}/environments/{{env_id}}/securityActions/{{security_action_id}}`
603
+
604
+ * `{{org_id}}/{{env_id}}/{{security_action_id}}`
605
+
606
+ When using the `pulumi import` command, SecurityAction can be imported using one of the formats above. For example:
607
+
608
+ ```sh
609
+ $ pulumi import gcp:apigee/securityAction:SecurityAction default organizations/{{org_id}}/environments/{{env_id}}/securityActions/{{security_action_id}}
610
+ ```
611
+
612
+ ```sh
613
+ $ pulumi import gcp:apigee/securityAction:SecurityAction default {{org_id}}/{{env_id}}/{{security_action_id}}
614
+ ```
615
+
616
+ :param str resource_name: The name of the resource.
617
+ :param pulumi.ResourceOptions opts: Options for the resource.
618
+ :param pulumi.Input[Union['SecurityActionAllowArgs', 'SecurityActionAllowArgsDict']] allow: Allow a request through if it matches this SecurityAction.
619
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] api_proxies: If unset, this would apply to all proxies in the environment.
620
+ If set, this action is enforced only if at least one proxy in the repeated
621
+ list is deployed at the time of enforcement. If set, several restrictions are enforced on SecurityActions.
622
+ There can be at most 100 enabled actions with proxies set in an env.
623
+ Several other restrictions apply on conditions and are detailed later.
624
+ :param pulumi.Input[Union['SecurityActionConditionConfigArgs', 'SecurityActionConditionConfigArgsDict']] condition_config: A valid SecurityAction must contain at least one condition.
625
+ Structure is documented below.
626
+ :param pulumi.Input[Union['SecurityActionDenyArgs', 'SecurityActionDenyArgsDict']] deny: Deny a request through if it matches this SecurityAction.
627
+ Structure is documented below.
628
+ :param pulumi.Input[_builtins.str] description: An optional user provided description of the SecurityAction.
629
+ :param pulumi.Input[_builtins.str] env_id: The Apigee environment that this security action applies to.
630
+ :param pulumi.Input[_builtins.str] expire_time: The expiration for this SecurityAction.
631
+ Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9
632
+ fractional digits. Offsets other than "Z" are also accepted.
633
+ Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
634
+ :param pulumi.Input[Union['SecurityActionFlagArgs', 'SecurityActionFlagArgsDict']] flag: Flag a request through if it matches this SecurityAction.
635
+ Structure is documented below.
636
+ :param pulumi.Input[_builtins.str] org_id: The organization that this security action applies to.
637
+ :param pulumi.Input[_builtins.str] security_action_id: The ID to use for the SecurityAction, which will become the final component of the action's resource name.
638
+ This value should be 0-61 characters, and valid format is (^a-z?$).
639
+ :param pulumi.Input[_builtins.str] state: Only an ENABLED SecurityAction is enforced. An ENABLED SecurityAction past its expiration time will not be enforced.
640
+ Possible values are: `ENABLED`, `DISABLED`.
641
+ :param pulumi.Input[_builtins.str] ttl: The TTL for this SecurityAction.
642
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
643
+ """
644
+ ...
645
+ @overload
646
+ def __init__(__self__,
647
+ resource_name: str,
648
+ args: SecurityActionArgs,
649
+ opts: Optional[pulumi.ResourceOptions] = None):
650
+ """
651
+ A SecurityAction is rule that can be enforced at an environment level.
652
+ The result is one of: - A denied API call - An explicitly allowed API call
653
+ - A flagged API call (HTTP headers added before the target receives it)
654
+ At least one condition is required to create a SecurityAction.
655
+
656
+ To get more information about SecurityAction, see:
657
+
658
+ * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.environments.securityActions/create)
659
+ * How-to Guides
660
+ * [Creating security actions](https://cloud.google.com/apigee/docs/api-security/security-actions-api#create-security-actions)
661
+
662
+ ## Example Usage
663
+
664
+ ### Apigee Security Action Basic
665
+
666
+ ```python
667
+ import pulumi
668
+ import pulumi_gcp as gcp
669
+
670
+ current = gcp.organizations.get_client_config()
671
+ apigee_network = gcp.compute.Network("apigee_network", name="my-network")
672
+ apigee_range = gcp.compute.GlobalAddress("apigee_range",
673
+ name="my-address",
674
+ purpose="VPC_PEERING",
675
+ address_type="INTERNAL",
676
+ prefix_length=16,
677
+ network=apigee_network.id)
678
+ apigee_vpc_connection = gcp.servicenetworking.Connection("apigee_vpc_connection",
679
+ network=apigee_network.id,
680
+ service="servicenetworking.googleapis.com",
681
+ reserved_peering_ranges=[apigee_range.name])
682
+ apigee_org = gcp.apigee.Organization("apigee_org",
683
+ analytics_region="us-central1",
684
+ project_id=current.project,
685
+ authorized_network=apigee_network.id,
686
+ opts = pulumi.ResourceOptions(depends_on=[apigee_vpc_connection]))
687
+ env = gcp.apigee.Environment("env",
688
+ name="my-environment",
689
+ description="Apigee Environment",
690
+ display_name="environment-1",
691
+ org_id=apigee_org.id)
692
+ apigee_org_security_addons_config = gcp.apigee.AddonsConfig("apigee_org_security_addons_config",
693
+ org=apigee_org.name,
694
+ addons_config={
695
+ "api_security_config": {
696
+ "enabled": True,
697
+ },
698
+ })
699
+ apigee_security_action = gcp.apigee.SecurityAction("apigee_security_action",
700
+ security_action_id="my-security-action",
701
+ org_id=apigee_org.name,
702
+ env_id=env.name,
703
+ description="Apigee Security Action",
704
+ state="ENABLED",
705
+ condition_config={
706
+ "ip_address_ranges": [
707
+ "100.0.220.1",
708
+ "200.0.0.1",
709
+ ],
710
+ "bot_reasons": [
711
+ "Flooder",
712
+ "Public Cloud Azure",
713
+ "Public Cloud AWS",
714
+ ],
715
+ },
716
+ allow={},
717
+ expire_time="2025-12-31T23:59:59Z",
718
+ opts = pulumi.ResourceOptions(depends_on=[apigee_org_security_addons_config]))
719
+ ```
720
+
721
+ ## Import
722
+
723
+ SecurityAction can be imported using any of these accepted formats:
724
+
725
+ * `organizations/{{org_id}}/environments/{{env_id}}/securityActions/{{security_action_id}}`
726
+
727
+ * `{{org_id}}/{{env_id}}/{{security_action_id}}`
728
+
729
+ When using the `pulumi import` command, SecurityAction can be imported using one of the formats above. For example:
730
+
731
+ ```sh
732
+ $ pulumi import gcp:apigee/securityAction:SecurityAction default organizations/{{org_id}}/environments/{{env_id}}/securityActions/{{security_action_id}}
733
+ ```
734
+
735
+ ```sh
736
+ $ pulumi import gcp:apigee/securityAction:SecurityAction default {{org_id}}/{{env_id}}/{{security_action_id}}
737
+ ```
738
+
739
+ :param str resource_name: The name of the resource.
740
+ :param SecurityActionArgs args: The arguments to use to populate this resource's properties.
741
+ :param pulumi.ResourceOptions opts: Options for the resource.
742
+ """
743
+ ...
744
+ def __init__(__self__, resource_name: str, *args, **kwargs):
745
+ resource_args, opts = _utilities.get_resource_args_opts(SecurityActionArgs, pulumi.ResourceOptions, *args, **kwargs)
746
+ if resource_args is not None:
747
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
748
+ else:
749
+ __self__._internal_init(resource_name, *args, **kwargs)
750
+
751
+ def _internal_init(__self__,
752
+ resource_name: str,
753
+ opts: Optional[pulumi.ResourceOptions] = None,
754
+ allow: Optional[pulumi.Input[Union['SecurityActionAllowArgs', 'SecurityActionAllowArgsDict']]] = None,
755
+ api_proxies: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
756
+ condition_config: Optional[pulumi.Input[Union['SecurityActionConditionConfigArgs', 'SecurityActionConditionConfigArgsDict']]] = None,
757
+ deny: Optional[pulumi.Input[Union['SecurityActionDenyArgs', 'SecurityActionDenyArgsDict']]] = None,
758
+ description: Optional[pulumi.Input[_builtins.str]] = None,
759
+ env_id: Optional[pulumi.Input[_builtins.str]] = None,
760
+ expire_time: Optional[pulumi.Input[_builtins.str]] = None,
761
+ flag: Optional[pulumi.Input[Union['SecurityActionFlagArgs', 'SecurityActionFlagArgsDict']]] = None,
762
+ org_id: Optional[pulumi.Input[_builtins.str]] = None,
763
+ security_action_id: Optional[pulumi.Input[_builtins.str]] = None,
764
+ state: Optional[pulumi.Input[_builtins.str]] = None,
765
+ ttl: Optional[pulumi.Input[_builtins.str]] = None,
766
+ __props__=None):
767
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
768
+ if not isinstance(opts, pulumi.ResourceOptions):
769
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
770
+ if opts.id is None:
771
+ if __props__ is not None:
772
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
773
+ __props__ = SecurityActionArgs.__new__(SecurityActionArgs)
774
+
775
+ __props__.__dict__["allow"] = allow
776
+ __props__.__dict__["api_proxies"] = api_proxies
777
+ if condition_config is None and not opts.urn:
778
+ raise TypeError("Missing required property 'condition_config'")
779
+ __props__.__dict__["condition_config"] = condition_config
780
+ __props__.__dict__["deny"] = deny
781
+ __props__.__dict__["description"] = description
782
+ if env_id is None and not opts.urn:
783
+ raise TypeError("Missing required property 'env_id'")
784
+ __props__.__dict__["env_id"] = env_id
785
+ __props__.__dict__["expire_time"] = expire_time
786
+ __props__.__dict__["flag"] = flag
787
+ if org_id is None and not opts.urn:
788
+ raise TypeError("Missing required property 'org_id'")
789
+ __props__.__dict__["org_id"] = org_id
790
+ if security_action_id is None and not opts.urn:
791
+ raise TypeError("Missing required property 'security_action_id'")
792
+ __props__.__dict__["security_action_id"] = security_action_id
793
+ if state is None and not opts.urn:
794
+ raise TypeError("Missing required property 'state'")
795
+ __props__.__dict__["state"] = state
796
+ __props__.__dict__["ttl"] = ttl
797
+ __props__.__dict__["create_time"] = None
798
+ __props__.__dict__["update_time"] = None
799
+ super(SecurityAction, __self__).__init__(
800
+ 'gcp:apigee/securityAction:SecurityAction',
801
+ resource_name,
802
+ __props__,
803
+ opts)
804
+
805
+ @staticmethod
806
+ def get(resource_name: str,
807
+ id: pulumi.Input[str],
808
+ opts: Optional[pulumi.ResourceOptions] = None,
809
+ allow: Optional[pulumi.Input[Union['SecurityActionAllowArgs', 'SecurityActionAllowArgsDict']]] = None,
810
+ api_proxies: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
811
+ condition_config: Optional[pulumi.Input[Union['SecurityActionConditionConfigArgs', 'SecurityActionConditionConfigArgsDict']]] = None,
812
+ create_time: Optional[pulumi.Input[_builtins.str]] = None,
813
+ deny: Optional[pulumi.Input[Union['SecurityActionDenyArgs', 'SecurityActionDenyArgsDict']]] = None,
814
+ description: Optional[pulumi.Input[_builtins.str]] = None,
815
+ env_id: Optional[pulumi.Input[_builtins.str]] = None,
816
+ expire_time: Optional[pulumi.Input[_builtins.str]] = None,
817
+ flag: Optional[pulumi.Input[Union['SecurityActionFlagArgs', 'SecurityActionFlagArgsDict']]] = None,
818
+ org_id: Optional[pulumi.Input[_builtins.str]] = None,
819
+ security_action_id: Optional[pulumi.Input[_builtins.str]] = None,
820
+ state: Optional[pulumi.Input[_builtins.str]] = None,
821
+ ttl: Optional[pulumi.Input[_builtins.str]] = None,
822
+ update_time: Optional[pulumi.Input[_builtins.str]] = None) -> 'SecurityAction':
823
+ """
824
+ Get an existing SecurityAction resource's state with the given name, id, and optional extra
825
+ properties used to qualify the lookup.
826
+
827
+ :param str resource_name: The unique name of the resulting resource.
828
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
829
+ :param pulumi.ResourceOptions opts: Options for the resource.
830
+ :param pulumi.Input[Union['SecurityActionAllowArgs', 'SecurityActionAllowArgsDict']] allow: Allow a request through if it matches this SecurityAction.
831
+ :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] api_proxies: If unset, this would apply to all proxies in the environment.
832
+ If set, this action is enforced only if at least one proxy in the repeated
833
+ list is deployed at the time of enforcement. If set, several restrictions are enforced on SecurityActions.
834
+ There can be at most 100 enabled actions with proxies set in an env.
835
+ Several other restrictions apply on conditions and are detailed later.
836
+ :param pulumi.Input[Union['SecurityActionConditionConfigArgs', 'SecurityActionConditionConfigArgsDict']] condition_config: A valid SecurityAction must contain at least one condition.
837
+ Structure is documented below.
838
+ :param pulumi.Input[_builtins.str] create_time: The create time for this SecurityAction.
839
+ Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits.
840
+ Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
841
+ :param pulumi.Input[Union['SecurityActionDenyArgs', 'SecurityActionDenyArgsDict']] deny: Deny a request through if it matches this SecurityAction.
842
+ Structure is documented below.
843
+ :param pulumi.Input[_builtins.str] description: An optional user provided description of the SecurityAction.
844
+ :param pulumi.Input[_builtins.str] env_id: The Apigee environment that this security action applies to.
845
+ :param pulumi.Input[_builtins.str] expire_time: The expiration for this SecurityAction.
846
+ Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9
847
+ fractional digits. Offsets other than "Z" are also accepted.
848
+ Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
849
+ :param pulumi.Input[Union['SecurityActionFlagArgs', 'SecurityActionFlagArgsDict']] flag: Flag a request through if it matches this SecurityAction.
850
+ Structure is documented below.
851
+ :param pulumi.Input[_builtins.str] org_id: The organization that this security action applies to.
852
+ :param pulumi.Input[_builtins.str] security_action_id: The ID to use for the SecurityAction, which will become the final component of the action's resource name.
853
+ This value should be 0-61 characters, and valid format is (^a-z?$).
854
+ :param pulumi.Input[_builtins.str] state: Only an ENABLED SecurityAction is enforced. An ENABLED SecurityAction past its expiration time will not be enforced.
855
+ Possible values are: `ENABLED`, `DISABLED`.
856
+ :param pulumi.Input[_builtins.str] ttl: The TTL for this SecurityAction.
857
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
858
+ :param pulumi.Input[_builtins.str] update_time: The update time for this SecurityAction. This reflects when this SecurityAction changed states.
859
+ Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits.
860
+ Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
861
+ """
862
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
863
+
864
+ __props__ = _SecurityActionState.__new__(_SecurityActionState)
865
+
866
+ __props__.__dict__["allow"] = allow
867
+ __props__.__dict__["api_proxies"] = api_proxies
868
+ __props__.__dict__["condition_config"] = condition_config
869
+ __props__.__dict__["create_time"] = create_time
870
+ __props__.__dict__["deny"] = deny
871
+ __props__.__dict__["description"] = description
872
+ __props__.__dict__["env_id"] = env_id
873
+ __props__.__dict__["expire_time"] = expire_time
874
+ __props__.__dict__["flag"] = flag
875
+ __props__.__dict__["org_id"] = org_id
876
+ __props__.__dict__["security_action_id"] = security_action_id
877
+ __props__.__dict__["state"] = state
878
+ __props__.__dict__["ttl"] = ttl
879
+ __props__.__dict__["update_time"] = update_time
880
+ return SecurityAction(resource_name, opts=opts, __props__=__props__)
881
+
882
+ @_builtins.property
883
+ @pulumi.getter
884
+ def allow(self) -> pulumi.Output[Optional['outputs.SecurityActionAllow']]:
885
+ """
886
+ Allow a request through if it matches this SecurityAction.
887
+ """
888
+ return pulumi.get(self, "allow")
889
+
890
+ @_builtins.property
891
+ @pulumi.getter(name="apiProxies")
892
+ def api_proxies(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
893
+ """
894
+ If unset, this would apply to all proxies in the environment.
895
+ If set, this action is enforced only if at least one proxy in the repeated
896
+ list is deployed at the time of enforcement. If set, several restrictions are enforced on SecurityActions.
897
+ There can be at most 100 enabled actions with proxies set in an env.
898
+ Several other restrictions apply on conditions and are detailed later.
899
+ """
900
+ return pulumi.get(self, "api_proxies")
901
+
902
+ @_builtins.property
903
+ @pulumi.getter(name="conditionConfig")
904
+ def condition_config(self) -> pulumi.Output['outputs.SecurityActionConditionConfig']:
905
+ """
906
+ A valid SecurityAction must contain at least one condition.
907
+ Structure is documented below.
908
+ """
909
+ return pulumi.get(self, "condition_config")
910
+
911
+ @_builtins.property
912
+ @pulumi.getter(name="createTime")
913
+ def create_time(self) -> pulumi.Output[_builtins.str]:
914
+ """
915
+ The create time for this SecurityAction.
916
+ Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits.
917
+ Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
918
+ """
919
+ return pulumi.get(self, "create_time")
920
+
921
+ @_builtins.property
922
+ @pulumi.getter
923
+ def deny(self) -> pulumi.Output[Optional['outputs.SecurityActionDeny']]:
924
+ """
925
+ Deny a request through if it matches this SecurityAction.
926
+ Structure is documented below.
927
+ """
928
+ return pulumi.get(self, "deny")
929
+
930
+ @_builtins.property
931
+ @pulumi.getter
932
+ def description(self) -> pulumi.Output[Optional[_builtins.str]]:
933
+ """
934
+ An optional user provided description of the SecurityAction.
935
+ """
936
+ return pulumi.get(self, "description")
937
+
938
+ @_builtins.property
939
+ @pulumi.getter(name="envId")
940
+ def env_id(self) -> pulumi.Output[_builtins.str]:
941
+ """
942
+ The Apigee environment that this security action applies to.
943
+ """
944
+ return pulumi.get(self, "env_id")
945
+
946
+ @_builtins.property
947
+ @pulumi.getter(name="expireTime")
948
+ def expire_time(self) -> pulumi.Output[Optional[_builtins.str]]:
949
+ """
950
+ The expiration for this SecurityAction.
951
+ Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9
952
+ fractional digits. Offsets other than "Z" are also accepted.
953
+ Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
954
+ """
955
+ return pulumi.get(self, "expire_time")
956
+
957
+ @_builtins.property
958
+ @pulumi.getter
959
+ def flag(self) -> pulumi.Output[Optional['outputs.SecurityActionFlag']]:
960
+ """
961
+ Flag a request through if it matches this SecurityAction.
962
+ Structure is documented below.
963
+ """
964
+ return pulumi.get(self, "flag")
965
+
966
+ @_builtins.property
967
+ @pulumi.getter(name="orgId")
968
+ def org_id(self) -> pulumi.Output[_builtins.str]:
969
+ """
970
+ The organization that this security action applies to.
971
+ """
972
+ return pulumi.get(self, "org_id")
973
+
974
+ @_builtins.property
975
+ @pulumi.getter(name="securityActionId")
976
+ def security_action_id(self) -> pulumi.Output[_builtins.str]:
977
+ """
978
+ The ID to use for the SecurityAction, which will become the final component of the action's resource name.
979
+ This value should be 0-61 characters, and valid format is (^a-z?$).
980
+ """
981
+ return pulumi.get(self, "security_action_id")
982
+
983
+ @_builtins.property
984
+ @pulumi.getter
985
+ def state(self) -> pulumi.Output[_builtins.str]:
986
+ """
987
+ Only an ENABLED SecurityAction is enforced. An ENABLED SecurityAction past its expiration time will not be enforced.
988
+ Possible values are: `ENABLED`, `DISABLED`.
989
+ """
990
+ return pulumi.get(self, "state")
991
+
992
+ @_builtins.property
993
+ @pulumi.getter
994
+ def ttl(self) -> pulumi.Output[Optional[_builtins.str]]:
995
+ """
996
+ The TTL for this SecurityAction.
997
+ A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
998
+ """
999
+ return pulumi.get(self, "ttl")
1000
+
1001
+ @_builtins.property
1002
+ @pulumi.getter(name="updateTime")
1003
+ def update_time(self) -> pulumi.Output[_builtins.str]:
1004
+ """
1005
+ The update time for this SecurityAction. This reflects when this SecurityAction changed states.
1006
+ Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits.
1007
+ Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
1008
+ """
1009
+ return pulumi.get(self, "update_time")
1010
+