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
@@ -23,6 +23,21 @@ __all__ = [
23
23
  'AddonsConfigAddonsConfigIntegrationConfig',
24
24
  'AddonsConfigAddonsConfigMonetizationConfig',
25
25
  'ApiMetaData',
26
+ 'ApiProductAttribute',
27
+ 'ApiProductGraphqlOperationGroup',
28
+ 'ApiProductGraphqlOperationGroupOperationConfig',
29
+ 'ApiProductGraphqlOperationGroupOperationConfigAttribute',
30
+ 'ApiProductGraphqlOperationGroupOperationConfigOperation',
31
+ 'ApiProductGraphqlOperationGroupOperationConfigQuota',
32
+ 'ApiProductGrpcOperationGroup',
33
+ 'ApiProductGrpcOperationGroupOperationConfig',
34
+ 'ApiProductGrpcOperationGroupOperationConfigAttribute',
35
+ 'ApiProductGrpcOperationGroupOperationConfigQuota',
36
+ 'ApiProductOperationGroup',
37
+ 'ApiProductOperationGroupOperationConfig',
38
+ 'ApiProductOperationGroupOperationConfigAttribute',
39
+ 'ApiProductOperationGroupOperationConfigOperation',
40
+ 'ApiProductOperationGroupOperationConfigQuota',
26
41
  'AppGroupAttribute',
27
42
  'DeveloperAttribute',
28
43
  'DnsZonePeeringConfig',
@@ -44,6 +59,11 @@ __all__ = [
44
59
  'KeystoresAliasesSelfSignedCertSubjectAlternativeDnsNames',
45
60
  'OrganizationProperties',
46
61
  'OrganizationPropertiesProperty',
62
+ 'SecurityActionAllow',
63
+ 'SecurityActionConditionConfig',
64
+ 'SecurityActionDeny',
65
+ 'SecurityActionFlag',
66
+ 'SecurityActionFlagHeader',
47
67
  'SecurityMonitoringConditionIncludeAllResources',
48
68
  'SecurityProfileV2ProfileAssessmentConfig',
49
69
  'SharedflowMetaData',
@@ -374,6 +394,789 @@ class ApiMetaData(dict):
374
394
  return pulumi.get(self, "sub_type")
375
395
 
376
396
 
397
+ @pulumi.output_type
398
+ class ApiProductAttribute(dict):
399
+ def __init__(__self__, *,
400
+ name: Optional[_builtins.str] = None,
401
+ value: Optional[_builtins.str] = None):
402
+ """
403
+ :param _builtins.str name: Key of the attribute.
404
+ :param _builtins.str value: Value of the attribute.
405
+ """
406
+ if name is not None:
407
+ pulumi.set(__self__, "name", name)
408
+ if value is not None:
409
+ pulumi.set(__self__, "value", value)
410
+
411
+ @_builtins.property
412
+ @pulumi.getter
413
+ def name(self) -> Optional[_builtins.str]:
414
+ """
415
+ Key of the attribute.
416
+ """
417
+ return pulumi.get(self, "name")
418
+
419
+ @_builtins.property
420
+ @pulumi.getter
421
+ def value(self) -> Optional[_builtins.str]:
422
+ """
423
+ Value of the attribute.
424
+ """
425
+ return pulumi.get(self, "value")
426
+
427
+
428
+ @pulumi.output_type
429
+ class ApiProductGraphqlOperationGroup(dict):
430
+ @staticmethod
431
+ def __key_warning(key: str):
432
+ suggest = None
433
+ if key == "operationConfigType":
434
+ suggest = "operation_config_type"
435
+ elif key == "operationConfigs":
436
+ suggest = "operation_configs"
437
+
438
+ if suggest:
439
+ pulumi.log.warn(f"Key '{key}' not found in ApiProductGraphqlOperationGroup. Access the value via the '{suggest}' property getter instead.")
440
+
441
+ def __getitem__(self, key: str) -> Any:
442
+ ApiProductGraphqlOperationGroup.__key_warning(key)
443
+ return super().__getitem__(key)
444
+
445
+ def get(self, key: str, default = None) -> Any:
446
+ ApiProductGraphqlOperationGroup.__key_warning(key)
447
+ return super().get(key, default)
448
+
449
+ def __init__(__self__, *,
450
+ operation_config_type: Optional[_builtins.str] = None,
451
+ operation_configs: Optional[Sequence['outputs.ApiProductGraphqlOperationGroupOperationConfig']] = None):
452
+ """
453
+ :param _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.
454
+ Possible values are: `proxy`, `remoteservice`.
455
+ :param Sequence['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.
456
+ Structure is documented below.
457
+ """
458
+ if operation_config_type is not None:
459
+ pulumi.set(__self__, "operation_config_type", operation_config_type)
460
+ if operation_configs is not None:
461
+ pulumi.set(__self__, "operation_configs", operation_configs)
462
+
463
+ @_builtins.property
464
+ @pulumi.getter(name="operationConfigType")
465
+ def operation_config_type(self) -> Optional[_builtins.str]:
466
+ """
467
+ 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.
468
+ Possible values are: `proxy`, `remoteservice`.
469
+ """
470
+ return pulumi.get(self, "operation_config_type")
471
+
472
+ @_builtins.property
473
+ @pulumi.getter(name="operationConfigs")
474
+ def operation_configs(self) -> Optional[Sequence['outputs.ApiProductGraphqlOperationGroupOperationConfig']]:
475
+ """
476
+ List of graphQL operation configuration details associated with Apigee API proxies or remote services. Remote services are non-Apigee proxies, such as Istio-Envoy.
477
+ Structure is documented below.
478
+ """
479
+ return pulumi.get(self, "operation_configs")
480
+
481
+
482
+ @pulumi.output_type
483
+ class ApiProductGraphqlOperationGroupOperationConfig(dict):
484
+ @staticmethod
485
+ def __key_warning(key: str):
486
+ suggest = None
487
+ if key == "apiSource":
488
+ suggest = "api_source"
489
+
490
+ if suggest:
491
+ pulumi.log.warn(f"Key '{key}' not found in ApiProductGraphqlOperationGroupOperationConfig. Access the value via the '{suggest}' property getter instead.")
492
+
493
+ def __getitem__(self, key: str) -> Any:
494
+ ApiProductGraphqlOperationGroupOperationConfig.__key_warning(key)
495
+ return super().__getitem__(key)
496
+
497
+ def get(self, key: str, default = None) -> Any:
498
+ ApiProductGraphqlOperationGroupOperationConfig.__key_warning(key)
499
+ return super().get(key, default)
500
+
501
+ def __init__(__self__, *,
502
+ api_source: Optional[_builtins.str] = None,
503
+ attributes: Optional[Sequence['outputs.ApiProductGraphqlOperationGroupOperationConfigAttribute']] = None,
504
+ operations: Optional[Sequence['outputs.ApiProductGraphqlOperationGroupOperationConfigOperation']] = None,
505
+ quota: Optional['outputs.ApiProductGraphqlOperationGroupOperationConfigQuota'] = None):
506
+ """
507
+ :param _builtins.str api_source: Required. Name of the API proxy with which the gRPC operation and quota are associated.
508
+ :param Sequence['ApiProductGraphqlOperationGroupOperationConfigAttributeArgs'] attributes: Custom attributes associated with the operation.
509
+ Structure is documented below.
510
+ :param Sequence['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.
511
+ Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.
512
+ Structure is documented below.
513
+ :param '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.
514
+ Structure is documented below.
515
+ """
516
+ if api_source is not None:
517
+ pulumi.set(__self__, "api_source", api_source)
518
+ if attributes is not None:
519
+ pulumi.set(__self__, "attributes", attributes)
520
+ if operations is not None:
521
+ pulumi.set(__self__, "operations", operations)
522
+ if quota is not None:
523
+ pulumi.set(__self__, "quota", quota)
524
+
525
+ @_builtins.property
526
+ @pulumi.getter(name="apiSource")
527
+ def api_source(self) -> Optional[_builtins.str]:
528
+ """
529
+ Required. Name of the API proxy with which the gRPC operation and quota are associated.
530
+ """
531
+ return pulumi.get(self, "api_source")
532
+
533
+ @_builtins.property
534
+ @pulumi.getter
535
+ def attributes(self) -> Optional[Sequence['outputs.ApiProductGraphqlOperationGroupOperationConfigAttribute']]:
536
+ """
537
+ Custom attributes associated with the operation.
538
+ Structure is documented below.
539
+ """
540
+ return pulumi.get(self, "attributes")
541
+
542
+ @_builtins.property
543
+ @pulumi.getter
544
+ def operations(self) -> Optional[Sequence['outputs.ApiProductGraphqlOperationGroupOperationConfigOperation']]:
545
+ """
546
+ 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.
547
+ Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.
548
+ Structure is documented below.
549
+ """
550
+ return pulumi.get(self, "operations")
551
+
552
+ @_builtins.property
553
+ @pulumi.getter
554
+ def quota(self) -> Optional['outputs.ApiProductGraphqlOperationGroupOperationConfigQuota']:
555
+ """
556
+ Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done.
557
+ Structure is documented below.
558
+ """
559
+ return pulumi.get(self, "quota")
560
+
561
+
562
+ @pulumi.output_type
563
+ class ApiProductGraphqlOperationGroupOperationConfigAttribute(dict):
564
+ def __init__(__self__, *,
565
+ name: Optional[_builtins.str] = None,
566
+ value: Optional[_builtins.str] = None):
567
+ """
568
+ :param _builtins.str name: Key of the attribute.
569
+ :param _builtins.str value: Value of the attribute.
570
+ """
571
+ if name is not None:
572
+ pulumi.set(__self__, "name", name)
573
+ if value is not None:
574
+ pulumi.set(__self__, "value", value)
575
+
576
+ @_builtins.property
577
+ @pulumi.getter
578
+ def name(self) -> Optional[_builtins.str]:
579
+ """
580
+ Key of the attribute.
581
+ """
582
+ return pulumi.get(self, "name")
583
+
584
+ @_builtins.property
585
+ @pulumi.getter
586
+ def value(self) -> Optional[_builtins.str]:
587
+ """
588
+ Value of the attribute.
589
+ """
590
+ return pulumi.get(self, "value")
591
+
592
+
593
+ @pulumi.output_type
594
+ class ApiProductGraphqlOperationGroupOperationConfigOperation(dict):
595
+ @staticmethod
596
+ def __key_warning(key: str):
597
+ suggest = None
598
+ if key == "operationTypes":
599
+ suggest = "operation_types"
600
+
601
+ if suggest:
602
+ pulumi.log.warn(f"Key '{key}' not found in ApiProductGraphqlOperationGroupOperationConfigOperation. Access the value via the '{suggest}' property getter instead.")
603
+
604
+ def __getitem__(self, key: str) -> Any:
605
+ ApiProductGraphqlOperationGroupOperationConfigOperation.__key_warning(key)
606
+ return super().__getitem__(key)
607
+
608
+ def get(self, key: str, default = None) -> Any:
609
+ ApiProductGraphqlOperationGroupOperationConfigOperation.__key_warning(key)
610
+ return super().get(key, default)
611
+
612
+ def __init__(__self__, *,
613
+ operation: Optional[_builtins.str] = None,
614
+ operation_types: Optional[Sequence[_builtins.str]] = None):
615
+ """
616
+ :param _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.
617
+ :param Sequence[_builtins.str] operation_types: Required. GraphQL operation types. Valid values include query or mutation.
618
+ Note: Apigee does not currently support subscription types.
619
+ """
620
+ if operation is not None:
621
+ pulumi.set(__self__, "operation", operation)
622
+ if operation_types is not None:
623
+ pulumi.set(__self__, "operation_types", operation_types)
624
+
625
+ @_builtins.property
626
+ @pulumi.getter
627
+ def operation(self) -> Optional[_builtins.str]:
628
+ """
629
+ 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.
630
+ """
631
+ return pulumi.get(self, "operation")
632
+
633
+ @_builtins.property
634
+ @pulumi.getter(name="operationTypes")
635
+ def operation_types(self) -> Optional[Sequence[_builtins.str]]:
636
+ """
637
+ Required. GraphQL operation types. Valid values include query or mutation.
638
+ Note: Apigee does not currently support subscription types.
639
+ """
640
+ return pulumi.get(self, "operation_types")
641
+
642
+
643
+ @pulumi.output_type
644
+ class ApiProductGraphqlOperationGroupOperationConfigQuota(dict):
645
+ @staticmethod
646
+ def __key_warning(key: str):
647
+ suggest = None
648
+ if key == "timeUnit":
649
+ suggest = "time_unit"
650
+
651
+ if suggest:
652
+ pulumi.log.warn(f"Key '{key}' not found in ApiProductGraphqlOperationGroupOperationConfigQuota. Access the value via the '{suggest}' property getter instead.")
653
+
654
+ def __getitem__(self, key: str) -> Any:
655
+ ApiProductGraphqlOperationGroupOperationConfigQuota.__key_warning(key)
656
+ return super().__getitem__(key)
657
+
658
+ def get(self, key: str, default = None) -> Any:
659
+ ApiProductGraphqlOperationGroupOperationConfigQuota.__key_warning(key)
660
+ return super().get(key, default)
661
+
662
+ def __init__(__self__, *,
663
+ interval: Optional[_builtins.str] = None,
664
+ limit: Optional[_builtins.str] = None,
665
+ time_unit: Optional[_builtins.str] = None):
666
+ """
667
+ :param _builtins.str interval: Required. Time interval over which the number of request messages is calculated.
668
+ :param _builtins.str limit: Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
669
+ :param _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.
670
+ """
671
+ if interval is not None:
672
+ pulumi.set(__self__, "interval", interval)
673
+ if limit is not None:
674
+ pulumi.set(__self__, "limit", limit)
675
+ if time_unit is not None:
676
+ pulumi.set(__self__, "time_unit", time_unit)
677
+
678
+ @_builtins.property
679
+ @pulumi.getter
680
+ def interval(self) -> Optional[_builtins.str]:
681
+ """
682
+ Required. Time interval over which the number of request messages is calculated.
683
+ """
684
+ return pulumi.get(self, "interval")
685
+
686
+ @_builtins.property
687
+ @pulumi.getter
688
+ def limit(self) -> Optional[_builtins.str]:
689
+ """
690
+ Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
691
+ """
692
+ return pulumi.get(self, "limit")
693
+
694
+ @_builtins.property
695
+ @pulumi.getter(name="timeUnit")
696
+ def time_unit(self) -> Optional[_builtins.str]:
697
+ """
698
+ 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.
699
+ """
700
+ return pulumi.get(self, "time_unit")
701
+
702
+
703
+ @pulumi.output_type
704
+ class ApiProductGrpcOperationGroup(dict):
705
+ @staticmethod
706
+ def __key_warning(key: str):
707
+ suggest = None
708
+ if key == "operationConfigs":
709
+ suggest = "operation_configs"
710
+
711
+ if suggest:
712
+ pulumi.log.warn(f"Key '{key}' not found in ApiProductGrpcOperationGroup. Access the value via the '{suggest}' property getter instead.")
713
+
714
+ def __getitem__(self, key: str) -> Any:
715
+ ApiProductGrpcOperationGroup.__key_warning(key)
716
+ return super().__getitem__(key)
717
+
718
+ def get(self, key: str, default = None) -> Any:
719
+ ApiProductGrpcOperationGroup.__key_warning(key)
720
+ return super().get(key, default)
721
+
722
+ def __init__(__self__, *,
723
+ operation_configs: Optional[Sequence['outputs.ApiProductGrpcOperationGroupOperationConfig']] = None):
724
+ """
725
+ :param Sequence['ApiProductGrpcOperationGroupOperationConfigArgs'] operation_configs: Required. List of operation configurations for either Apigee API proxies that are associated with this API product.
726
+ Structure is documented below.
727
+ """
728
+ if operation_configs is not None:
729
+ pulumi.set(__self__, "operation_configs", operation_configs)
730
+
731
+ @_builtins.property
732
+ @pulumi.getter(name="operationConfigs")
733
+ def operation_configs(self) -> Optional[Sequence['outputs.ApiProductGrpcOperationGroupOperationConfig']]:
734
+ """
735
+ Required. List of operation configurations for either Apigee API proxies that are associated with this API product.
736
+ Structure is documented below.
737
+ """
738
+ return pulumi.get(self, "operation_configs")
739
+
740
+
741
+ @pulumi.output_type
742
+ class ApiProductGrpcOperationGroupOperationConfig(dict):
743
+ @staticmethod
744
+ def __key_warning(key: str):
745
+ suggest = None
746
+ if key == "apiSource":
747
+ suggest = "api_source"
748
+
749
+ if suggest:
750
+ pulumi.log.warn(f"Key '{key}' not found in ApiProductGrpcOperationGroupOperationConfig. Access the value via the '{suggest}' property getter instead.")
751
+
752
+ def __getitem__(self, key: str) -> Any:
753
+ ApiProductGrpcOperationGroupOperationConfig.__key_warning(key)
754
+ return super().__getitem__(key)
755
+
756
+ def get(self, key: str, default = None) -> Any:
757
+ ApiProductGrpcOperationGroupOperationConfig.__key_warning(key)
758
+ return super().get(key, default)
759
+
760
+ def __init__(__self__, *,
761
+ api_source: Optional[_builtins.str] = None,
762
+ attributes: Optional[Sequence['outputs.ApiProductGrpcOperationGroupOperationConfigAttribute']] = None,
763
+ methods: Optional[Sequence[_builtins.str]] = None,
764
+ quota: Optional['outputs.ApiProductGrpcOperationGroupOperationConfigQuota'] = None,
765
+ service: Optional[_builtins.str] = None):
766
+ """
767
+ :param _builtins.str api_source: Required. Name of the API proxy with which the gRPC operation and quota are associated.
768
+ :param Sequence['ApiProductGrpcOperationGroupOperationConfigAttributeArgs'] attributes: Custom attributes associated with the operation.
769
+ Structure is documented below.
770
+ :param Sequence[_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.
771
+ 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"].
772
+ Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.
773
+ :param '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.
774
+ Structure is documented below.
775
+ :param _builtins.str service: Required. gRPC Service name associated to be associated with the API proxy, on which quota rules can be applied upon.
776
+ """
777
+ if api_source is not None:
778
+ pulumi.set(__self__, "api_source", api_source)
779
+ if attributes is not None:
780
+ pulumi.set(__self__, "attributes", attributes)
781
+ if methods is not None:
782
+ pulumi.set(__self__, "methods", methods)
783
+ if quota is not None:
784
+ pulumi.set(__self__, "quota", quota)
785
+ if service is not None:
786
+ pulumi.set(__self__, "service", service)
787
+
788
+ @_builtins.property
789
+ @pulumi.getter(name="apiSource")
790
+ def api_source(self) -> Optional[_builtins.str]:
791
+ """
792
+ Required. Name of the API proxy with which the gRPC operation and quota are associated.
793
+ """
794
+ return pulumi.get(self, "api_source")
795
+
796
+ @_builtins.property
797
+ @pulumi.getter
798
+ def attributes(self) -> Optional[Sequence['outputs.ApiProductGrpcOperationGroupOperationConfigAttribute']]:
799
+ """
800
+ Custom attributes associated with the operation.
801
+ Structure is documented below.
802
+ """
803
+ return pulumi.get(self, "attributes")
804
+
805
+ @_builtins.property
806
+ @pulumi.getter
807
+ def methods(self) -> Optional[Sequence[_builtins.str]]:
808
+ """
809
+ 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.
810
+ 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"].
811
+ Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.
812
+ """
813
+ return pulumi.get(self, "methods")
814
+
815
+ @_builtins.property
816
+ @pulumi.getter
817
+ def quota(self) -> Optional['outputs.ApiProductGrpcOperationGroupOperationConfigQuota']:
818
+ """
819
+ Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done.
820
+ Structure is documented below.
821
+ """
822
+ return pulumi.get(self, "quota")
823
+
824
+ @_builtins.property
825
+ @pulumi.getter
826
+ def service(self) -> Optional[_builtins.str]:
827
+ """
828
+ Required. gRPC Service name associated to be associated with the API proxy, on which quota rules can be applied upon.
829
+ """
830
+ return pulumi.get(self, "service")
831
+
832
+
833
+ @pulumi.output_type
834
+ class ApiProductGrpcOperationGroupOperationConfigAttribute(dict):
835
+ def __init__(__self__, *,
836
+ name: Optional[_builtins.str] = None,
837
+ value: Optional[_builtins.str] = None):
838
+ """
839
+ :param _builtins.str name: Key of the attribute.
840
+ :param _builtins.str value: Value of the attribute.
841
+ """
842
+ if name is not None:
843
+ pulumi.set(__self__, "name", name)
844
+ if value is not None:
845
+ pulumi.set(__self__, "value", value)
846
+
847
+ @_builtins.property
848
+ @pulumi.getter
849
+ def name(self) -> Optional[_builtins.str]:
850
+ """
851
+ Key of the attribute.
852
+ """
853
+ return pulumi.get(self, "name")
854
+
855
+ @_builtins.property
856
+ @pulumi.getter
857
+ def value(self) -> Optional[_builtins.str]:
858
+ """
859
+ Value of the attribute.
860
+ """
861
+ return pulumi.get(self, "value")
862
+
863
+
864
+ @pulumi.output_type
865
+ class ApiProductGrpcOperationGroupOperationConfigQuota(dict):
866
+ @staticmethod
867
+ def __key_warning(key: str):
868
+ suggest = None
869
+ if key == "timeUnit":
870
+ suggest = "time_unit"
871
+
872
+ if suggest:
873
+ pulumi.log.warn(f"Key '{key}' not found in ApiProductGrpcOperationGroupOperationConfigQuota. Access the value via the '{suggest}' property getter instead.")
874
+
875
+ def __getitem__(self, key: str) -> Any:
876
+ ApiProductGrpcOperationGroupOperationConfigQuota.__key_warning(key)
877
+ return super().__getitem__(key)
878
+
879
+ def get(self, key: str, default = None) -> Any:
880
+ ApiProductGrpcOperationGroupOperationConfigQuota.__key_warning(key)
881
+ return super().get(key, default)
882
+
883
+ def __init__(__self__, *,
884
+ interval: Optional[_builtins.str] = None,
885
+ limit: Optional[_builtins.str] = None,
886
+ time_unit: Optional[_builtins.str] = None):
887
+ """
888
+ :param _builtins.str interval: Required. Time interval over which the number of request messages is calculated.
889
+ :param _builtins.str limit: Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
890
+ :param _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.
891
+ """
892
+ if interval is not None:
893
+ pulumi.set(__self__, "interval", interval)
894
+ if limit is not None:
895
+ pulumi.set(__self__, "limit", limit)
896
+ if time_unit is not None:
897
+ pulumi.set(__self__, "time_unit", time_unit)
898
+
899
+ @_builtins.property
900
+ @pulumi.getter
901
+ def interval(self) -> Optional[_builtins.str]:
902
+ """
903
+ Required. Time interval over which the number of request messages is calculated.
904
+ """
905
+ return pulumi.get(self, "interval")
906
+
907
+ @_builtins.property
908
+ @pulumi.getter
909
+ def limit(self) -> Optional[_builtins.str]:
910
+ """
911
+ Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
912
+ """
913
+ return pulumi.get(self, "limit")
914
+
915
+ @_builtins.property
916
+ @pulumi.getter(name="timeUnit")
917
+ def time_unit(self) -> Optional[_builtins.str]:
918
+ """
919
+ 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.
920
+ """
921
+ return pulumi.get(self, "time_unit")
922
+
923
+
924
+ @pulumi.output_type
925
+ class ApiProductOperationGroup(dict):
926
+ @staticmethod
927
+ def __key_warning(key: str):
928
+ suggest = None
929
+ if key == "operationConfigType":
930
+ suggest = "operation_config_type"
931
+ elif key == "operationConfigs":
932
+ suggest = "operation_configs"
933
+
934
+ if suggest:
935
+ pulumi.log.warn(f"Key '{key}' not found in ApiProductOperationGroup. Access the value via the '{suggest}' property getter instead.")
936
+
937
+ def __getitem__(self, key: str) -> Any:
938
+ ApiProductOperationGroup.__key_warning(key)
939
+ return super().__getitem__(key)
940
+
941
+ def get(self, key: str, default = None) -> Any:
942
+ ApiProductOperationGroup.__key_warning(key)
943
+ return super().get(key, default)
944
+
945
+ def __init__(__self__, *,
946
+ operation_config_type: Optional[_builtins.str] = None,
947
+ operation_configs: Optional[Sequence['outputs.ApiProductOperationGroupOperationConfig']] = None):
948
+ """
949
+ :param _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.
950
+ Possible values are: `proxy`, `remoteservice`.
951
+ :param Sequence['ApiProductOperationGroupOperationConfigArgs'] operation_configs: Required. List of operation configurations for either Apigee API proxies or other remote services that are associated with this API product.
952
+ Structure is documented below.
953
+ """
954
+ if operation_config_type is not None:
955
+ pulumi.set(__self__, "operation_config_type", operation_config_type)
956
+ if operation_configs is not None:
957
+ pulumi.set(__self__, "operation_configs", operation_configs)
958
+
959
+ @_builtins.property
960
+ @pulumi.getter(name="operationConfigType")
961
+ def operation_config_type(self) -> Optional[_builtins.str]:
962
+ """
963
+ 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.
964
+ Possible values are: `proxy`, `remoteservice`.
965
+ """
966
+ return pulumi.get(self, "operation_config_type")
967
+
968
+ @_builtins.property
969
+ @pulumi.getter(name="operationConfigs")
970
+ def operation_configs(self) -> Optional[Sequence['outputs.ApiProductOperationGroupOperationConfig']]:
971
+ """
972
+ Required. List of operation configurations for either Apigee API proxies or other remote services that are associated with this API product.
973
+ Structure is documented below.
974
+ """
975
+ return pulumi.get(self, "operation_configs")
976
+
977
+
978
+ @pulumi.output_type
979
+ class ApiProductOperationGroupOperationConfig(dict):
980
+ @staticmethod
981
+ def __key_warning(key: str):
982
+ suggest = None
983
+ if key == "apiSource":
984
+ suggest = "api_source"
985
+
986
+ if suggest:
987
+ pulumi.log.warn(f"Key '{key}' not found in ApiProductOperationGroupOperationConfig. Access the value via the '{suggest}' property getter instead.")
988
+
989
+ def __getitem__(self, key: str) -> Any:
990
+ ApiProductOperationGroupOperationConfig.__key_warning(key)
991
+ return super().__getitem__(key)
992
+
993
+ def get(self, key: str, default = None) -> Any:
994
+ ApiProductOperationGroupOperationConfig.__key_warning(key)
995
+ return super().get(key, default)
996
+
997
+ def __init__(__self__, *,
998
+ api_source: Optional[_builtins.str] = None,
999
+ attributes: Optional[Sequence['outputs.ApiProductOperationGroupOperationConfigAttribute']] = None,
1000
+ operations: Optional[Sequence['outputs.ApiProductOperationGroupOperationConfigOperation']] = None,
1001
+ quota: Optional['outputs.ApiProductOperationGroupOperationConfigQuota'] = None):
1002
+ """
1003
+ :param _builtins.str api_source: Required. Name of the API proxy with which the gRPC operation and quota are associated.
1004
+ :param Sequence['ApiProductOperationGroupOperationConfigAttributeArgs'] attributes: Custom attributes associated with the operation.
1005
+ Structure is documented below.
1006
+ :param Sequence['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.
1007
+ Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.
1008
+ Structure is documented below.
1009
+ :param '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.
1010
+ Structure is documented below.
1011
+ """
1012
+ if api_source is not None:
1013
+ pulumi.set(__self__, "api_source", api_source)
1014
+ if attributes is not None:
1015
+ pulumi.set(__self__, "attributes", attributes)
1016
+ if operations is not None:
1017
+ pulumi.set(__self__, "operations", operations)
1018
+ if quota is not None:
1019
+ pulumi.set(__self__, "quota", quota)
1020
+
1021
+ @_builtins.property
1022
+ @pulumi.getter(name="apiSource")
1023
+ def api_source(self) -> Optional[_builtins.str]:
1024
+ """
1025
+ Required. Name of the API proxy with which the gRPC operation and quota are associated.
1026
+ """
1027
+ return pulumi.get(self, "api_source")
1028
+
1029
+ @_builtins.property
1030
+ @pulumi.getter
1031
+ def attributes(self) -> Optional[Sequence['outputs.ApiProductOperationGroupOperationConfigAttribute']]:
1032
+ """
1033
+ Custom attributes associated with the operation.
1034
+ Structure is documented below.
1035
+ """
1036
+ return pulumi.get(self, "attributes")
1037
+
1038
+ @_builtins.property
1039
+ @pulumi.getter
1040
+ def operations(self) -> Optional[Sequence['outputs.ApiProductOperationGroupOperationConfigOperation']]:
1041
+ """
1042
+ 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.
1043
+ Note: Currently, you can specify only a single GraphQLOperation. Specifying more than one will cause the operation to fail.
1044
+ Structure is documented below.
1045
+ """
1046
+ return pulumi.get(self, "operations")
1047
+
1048
+ @_builtins.property
1049
+ @pulumi.getter
1050
+ def quota(self) -> Optional['outputs.ApiProductOperationGroupOperationConfigQuota']:
1051
+ """
1052
+ Quota parameters to be enforced for the resources, methods, and API source combination. If none are specified, quota enforcement will not be done.
1053
+ Structure is documented below.
1054
+ """
1055
+ return pulumi.get(self, "quota")
1056
+
1057
+
1058
+ @pulumi.output_type
1059
+ class ApiProductOperationGroupOperationConfigAttribute(dict):
1060
+ def __init__(__self__, *,
1061
+ name: Optional[_builtins.str] = None,
1062
+ value: Optional[_builtins.str] = None):
1063
+ """
1064
+ :param _builtins.str name: Key of the attribute.
1065
+ :param _builtins.str value: Value of the attribute.
1066
+ """
1067
+ if name is not None:
1068
+ pulumi.set(__self__, "name", name)
1069
+ if value is not None:
1070
+ pulumi.set(__self__, "value", value)
1071
+
1072
+ @_builtins.property
1073
+ @pulumi.getter
1074
+ def name(self) -> Optional[_builtins.str]:
1075
+ """
1076
+ Key of the attribute.
1077
+ """
1078
+ return pulumi.get(self, "name")
1079
+
1080
+ @_builtins.property
1081
+ @pulumi.getter
1082
+ def value(self) -> Optional[_builtins.str]:
1083
+ """
1084
+ Value of the attribute.
1085
+ """
1086
+ return pulumi.get(self, "value")
1087
+
1088
+
1089
+ @pulumi.output_type
1090
+ class ApiProductOperationGroupOperationConfigOperation(dict):
1091
+ def __init__(__self__, *,
1092
+ methods: Optional[Sequence[_builtins.str]] = None,
1093
+ resource: Optional[_builtins.str] = None):
1094
+ """
1095
+ :param Sequence[_builtins.str] methods: Methods refers to the REST verbs, when none specified, all verb types are allowed.
1096
+ :param _builtins.str resource: Required. REST resource path associated with the API proxy or remote service.
1097
+ """
1098
+ if methods is not None:
1099
+ pulumi.set(__self__, "methods", methods)
1100
+ if resource is not None:
1101
+ pulumi.set(__self__, "resource", resource)
1102
+
1103
+ @_builtins.property
1104
+ @pulumi.getter
1105
+ def methods(self) -> Optional[Sequence[_builtins.str]]:
1106
+ """
1107
+ Methods refers to the REST verbs, when none specified, all verb types are allowed.
1108
+ """
1109
+ return pulumi.get(self, "methods")
1110
+
1111
+ @_builtins.property
1112
+ @pulumi.getter
1113
+ def resource(self) -> Optional[_builtins.str]:
1114
+ """
1115
+ Required. REST resource path associated with the API proxy or remote service.
1116
+ """
1117
+ return pulumi.get(self, "resource")
1118
+
1119
+
1120
+ @pulumi.output_type
1121
+ class ApiProductOperationGroupOperationConfigQuota(dict):
1122
+ @staticmethod
1123
+ def __key_warning(key: str):
1124
+ suggest = None
1125
+ if key == "timeUnit":
1126
+ suggest = "time_unit"
1127
+
1128
+ if suggest:
1129
+ pulumi.log.warn(f"Key '{key}' not found in ApiProductOperationGroupOperationConfigQuota. Access the value via the '{suggest}' property getter instead.")
1130
+
1131
+ def __getitem__(self, key: str) -> Any:
1132
+ ApiProductOperationGroupOperationConfigQuota.__key_warning(key)
1133
+ return super().__getitem__(key)
1134
+
1135
+ def get(self, key: str, default = None) -> Any:
1136
+ ApiProductOperationGroupOperationConfigQuota.__key_warning(key)
1137
+ return super().get(key, default)
1138
+
1139
+ def __init__(__self__, *,
1140
+ interval: Optional[_builtins.str] = None,
1141
+ limit: Optional[_builtins.str] = None,
1142
+ time_unit: Optional[_builtins.str] = None):
1143
+ """
1144
+ :param _builtins.str interval: Required. Time interval over which the number of request messages is calculated.
1145
+ :param _builtins.str limit: Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
1146
+ :param _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.
1147
+ """
1148
+ if interval is not None:
1149
+ pulumi.set(__self__, "interval", interval)
1150
+ if limit is not None:
1151
+ pulumi.set(__self__, "limit", limit)
1152
+ if time_unit is not None:
1153
+ pulumi.set(__self__, "time_unit", time_unit)
1154
+
1155
+ @_builtins.property
1156
+ @pulumi.getter
1157
+ def interval(self) -> Optional[_builtins.str]:
1158
+ """
1159
+ Required. Time interval over which the number of request messages is calculated.
1160
+ """
1161
+ return pulumi.get(self, "interval")
1162
+
1163
+ @_builtins.property
1164
+ @pulumi.getter
1165
+ def limit(self) -> Optional[_builtins.str]:
1166
+ """
1167
+ Required. Upper limit allowed for the time interval and time unit specified. Requests exceeding this limit will be rejected.
1168
+ """
1169
+ return pulumi.get(self, "limit")
1170
+
1171
+ @_builtins.property
1172
+ @pulumi.getter(name="timeUnit")
1173
+ def time_unit(self) -> Optional[_builtins.str]:
1174
+ """
1175
+ 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.
1176
+ """
1177
+ return pulumi.get(self, "time_unit")
1178
+
1179
+
377
1180
  @pulumi.output_type
378
1181
  class AppGroupAttribute(dict):
379
1182
  def __init__(__self__, *,
@@ -1690,6 +2493,284 @@ class OrganizationPropertiesProperty(dict):
1690
2493
  return pulumi.get(self, "value")
1691
2494
 
1692
2495
 
2496
+ @pulumi.output_type
2497
+ class SecurityActionAllow(dict):
2498
+ def __init__(__self__):
2499
+ pass
2500
+
2501
+
2502
+ @pulumi.output_type
2503
+ class SecurityActionConditionConfig(dict):
2504
+ @staticmethod
2505
+ def __key_warning(key: str):
2506
+ suggest = None
2507
+ if key == "accessTokens":
2508
+ suggest = "access_tokens"
2509
+ elif key == "apiKeys":
2510
+ suggest = "api_keys"
2511
+ elif key == "apiProducts":
2512
+ suggest = "api_products"
2513
+ elif key == "botReasons":
2514
+ suggest = "bot_reasons"
2515
+ elif key == "developerApps":
2516
+ suggest = "developer_apps"
2517
+ elif key == "httpMethods":
2518
+ suggest = "http_methods"
2519
+ elif key == "ipAddressRanges":
2520
+ suggest = "ip_address_ranges"
2521
+ elif key == "regionCodes":
2522
+ suggest = "region_codes"
2523
+ elif key == "userAgents":
2524
+ suggest = "user_agents"
2525
+
2526
+ if suggest:
2527
+ pulumi.log.warn(f"Key '{key}' not found in SecurityActionConditionConfig. Access the value via the '{suggest}' property getter instead.")
2528
+
2529
+ def __getitem__(self, key: str) -> Any:
2530
+ SecurityActionConditionConfig.__key_warning(key)
2531
+ return super().__getitem__(key)
2532
+
2533
+ def get(self, key: str, default = None) -> Any:
2534
+ SecurityActionConditionConfig.__key_warning(key)
2535
+ return super().get(key, default)
2536
+
2537
+ def __init__(__self__, *,
2538
+ access_tokens: Optional[Sequence[_builtins.str]] = None,
2539
+ api_keys: Optional[Sequence[_builtins.str]] = None,
2540
+ api_products: Optional[Sequence[_builtins.str]] = None,
2541
+ asns: Optional[Sequence[_builtins.str]] = None,
2542
+ bot_reasons: Optional[Sequence[_builtins.str]] = None,
2543
+ developer_apps: Optional[Sequence[_builtins.str]] = None,
2544
+ developers: Optional[Sequence[_builtins.str]] = None,
2545
+ http_methods: Optional[Sequence[_builtins.str]] = None,
2546
+ ip_address_ranges: Optional[Sequence[_builtins.str]] = None,
2547
+ region_codes: Optional[Sequence[_builtins.str]] = None,
2548
+ user_agents: Optional[Sequence[_builtins.str]] = None):
2549
+ """
2550
+ :param Sequence[_builtins.str] access_tokens: A list of accessTokens. Limit 1000 per action.
2551
+ :param Sequence[_builtins.str] api_keys: A list of API keys. Limit 1000 per action.
2552
+ :param Sequence[_builtins.str] api_products: A list of API Products. Limit 1000 per action.
2553
+ :param Sequence[_builtins.str] asns: A list of ASN numbers to act on, e.g. 23. https://en.wikipedia.org/wiki/Autonomous_system_(Internet)
2554
+ This uses int64 instead of uint32 because of https://linter.aip.dev/141/forbidden-types.
2555
+ :param Sequence[_builtins.str] bot_reasons: A list of Bot Reasons. Current options: Flooder, Brute Guessor, Static Content Scraper,
2556
+ OAuth Abuser, Robot Abuser, TorListRule, Advanced Anomaly Detection, Advanced API Scraper,
2557
+ Search Engine Crawlers, Public Clouds, Public Cloud AWS, Public Cloud Azure, and Public Cloud Google.
2558
+ :param Sequence[_builtins.str] developer_apps: A list of developer apps. Limit 1000 per action.
2559
+ :param Sequence[_builtins.str] developers: A list of developers. Limit 1000 per action.
2560
+ :param Sequence[_builtins.str] http_methods: Act only on particular HTTP methods. E.g. A read-only API can block POST/PUT/DELETE methods.
2561
+ Accepted values are: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE and PATCH.
2562
+ :param Sequence[_builtins.str] ip_address_ranges: A list of IP addresses. This could be either IPv4 or IPv6. Limited to 100 per action.
2563
+ :param Sequence[_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.
2564
+ :param Sequence[_builtins.str] user_agents: A list of user agents to deny. We look for exact matches. Limit 50 per action.
2565
+ """
2566
+ if access_tokens is not None:
2567
+ pulumi.set(__self__, "access_tokens", access_tokens)
2568
+ if api_keys is not None:
2569
+ pulumi.set(__self__, "api_keys", api_keys)
2570
+ if api_products is not None:
2571
+ pulumi.set(__self__, "api_products", api_products)
2572
+ if asns is not None:
2573
+ pulumi.set(__self__, "asns", asns)
2574
+ if bot_reasons is not None:
2575
+ pulumi.set(__self__, "bot_reasons", bot_reasons)
2576
+ if developer_apps is not None:
2577
+ pulumi.set(__self__, "developer_apps", developer_apps)
2578
+ if developers is not None:
2579
+ pulumi.set(__self__, "developers", developers)
2580
+ if http_methods is not None:
2581
+ pulumi.set(__self__, "http_methods", http_methods)
2582
+ if ip_address_ranges is not None:
2583
+ pulumi.set(__self__, "ip_address_ranges", ip_address_ranges)
2584
+ if region_codes is not None:
2585
+ pulumi.set(__self__, "region_codes", region_codes)
2586
+ if user_agents is not None:
2587
+ pulumi.set(__self__, "user_agents", user_agents)
2588
+
2589
+ @_builtins.property
2590
+ @pulumi.getter(name="accessTokens")
2591
+ def access_tokens(self) -> Optional[Sequence[_builtins.str]]:
2592
+ """
2593
+ A list of accessTokens. Limit 1000 per action.
2594
+ """
2595
+ return pulumi.get(self, "access_tokens")
2596
+
2597
+ @_builtins.property
2598
+ @pulumi.getter(name="apiKeys")
2599
+ def api_keys(self) -> Optional[Sequence[_builtins.str]]:
2600
+ """
2601
+ A list of API keys. Limit 1000 per action.
2602
+ """
2603
+ return pulumi.get(self, "api_keys")
2604
+
2605
+ @_builtins.property
2606
+ @pulumi.getter(name="apiProducts")
2607
+ def api_products(self) -> Optional[Sequence[_builtins.str]]:
2608
+ """
2609
+ A list of API Products. Limit 1000 per action.
2610
+ """
2611
+ return pulumi.get(self, "api_products")
2612
+
2613
+ @_builtins.property
2614
+ @pulumi.getter
2615
+ def asns(self) -> Optional[Sequence[_builtins.str]]:
2616
+ """
2617
+ A list of ASN numbers to act on, e.g. 23. https://en.wikipedia.org/wiki/Autonomous_system_(Internet)
2618
+ This uses int64 instead of uint32 because of https://linter.aip.dev/141/forbidden-types.
2619
+ """
2620
+ return pulumi.get(self, "asns")
2621
+
2622
+ @_builtins.property
2623
+ @pulumi.getter(name="botReasons")
2624
+ def bot_reasons(self) -> Optional[Sequence[_builtins.str]]:
2625
+ """
2626
+ A list of Bot Reasons. Current options: Flooder, Brute Guessor, Static Content Scraper,
2627
+ OAuth Abuser, Robot Abuser, TorListRule, Advanced Anomaly Detection, Advanced API Scraper,
2628
+ Search Engine Crawlers, Public Clouds, Public Cloud AWS, Public Cloud Azure, and Public Cloud Google.
2629
+ """
2630
+ return pulumi.get(self, "bot_reasons")
2631
+
2632
+ @_builtins.property
2633
+ @pulumi.getter(name="developerApps")
2634
+ def developer_apps(self) -> Optional[Sequence[_builtins.str]]:
2635
+ """
2636
+ A list of developer apps. Limit 1000 per action.
2637
+ """
2638
+ return pulumi.get(self, "developer_apps")
2639
+
2640
+ @_builtins.property
2641
+ @pulumi.getter
2642
+ def developers(self) -> Optional[Sequence[_builtins.str]]:
2643
+ """
2644
+ A list of developers. Limit 1000 per action.
2645
+ """
2646
+ return pulumi.get(self, "developers")
2647
+
2648
+ @_builtins.property
2649
+ @pulumi.getter(name="httpMethods")
2650
+ def http_methods(self) -> Optional[Sequence[_builtins.str]]:
2651
+ """
2652
+ Act only on particular HTTP methods. E.g. A read-only API can block POST/PUT/DELETE methods.
2653
+ Accepted values are: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE and PATCH.
2654
+ """
2655
+ return pulumi.get(self, "http_methods")
2656
+
2657
+ @_builtins.property
2658
+ @pulumi.getter(name="ipAddressRanges")
2659
+ def ip_address_ranges(self) -> Optional[Sequence[_builtins.str]]:
2660
+ """
2661
+ A list of IP addresses. This could be either IPv4 or IPv6. Limited to 100 per action.
2662
+ """
2663
+ return pulumi.get(self, "ip_address_ranges")
2664
+
2665
+ @_builtins.property
2666
+ @pulumi.getter(name="regionCodes")
2667
+ def region_codes(self) -> Optional[Sequence[_builtins.str]]:
2668
+ """
2669
+ A list of countries/region codes to act on, e.g. US. This follows https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2.
2670
+ """
2671
+ return pulumi.get(self, "region_codes")
2672
+
2673
+ @_builtins.property
2674
+ @pulumi.getter(name="userAgents")
2675
+ def user_agents(self) -> Optional[Sequence[_builtins.str]]:
2676
+ """
2677
+ A list of user agents to deny. We look for exact matches. Limit 50 per action.
2678
+ """
2679
+ return pulumi.get(self, "user_agents")
2680
+
2681
+
2682
+ @pulumi.output_type
2683
+ class SecurityActionDeny(dict):
2684
+ @staticmethod
2685
+ def __key_warning(key: str):
2686
+ suggest = None
2687
+ if key == "responseCode":
2688
+ suggest = "response_code"
2689
+
2690
+ if suggest:
2691
+ pulumi.log.warn(f"Key '{key}' not found in SecurityActionDeny. Access the value via the '{suggest}' property getter instead.")
2692
+
2693
+ def __getitem__(self, key: str) -> Any:
2694
+ SecurityActionDeny.__key_warning(key)
2695
+ return super().__getitem__(key)
2696
+
2697
+ def get(self, key: str, default = None) -> Any:
2698
+ SecurityActionDeny.__key_warning(key)
2699
+ return super().get(key, default)
2700
+
2701
+ def __init__(__self__, *,
2702
+ response_code: Optional[_builtins.int] = None):
2703
+ """
2704
+ :param _builtins.int response_code: The HTTP response code if the Action = DENY.
2705
+ """
2706
+ if response_code is not None:
2707
+ pulumi.set(__self__, "response_code", response_code)
2708
+
2709
+ @_builtins.property
2710
+ @pulumi.getter(name="responseCode")
2711
+ def response_code(self) -> Optional[_builtins.int]:
2712
+ """
2713
+ The HTTP response code if the Action = DENY.
2714
+ """
2715
+ return pulumi.get(self, "response_code")
2716
+
2717
+
2718
+ @pulumi.output_type
2719
+ class SecurityActionFlag(dict):
2720
+ def __init__(__self__, *,
2721
+ headers: Optional[Sequence['outputs.SecurityActionFlagHeader']] = None):
2722
+ """
2723
+ :param Sequence['SecurityActionFlagHeaderArgs'] headers: A list of HTTP headers to be sent to the target in case of a FLAG SecurityAction.
2724
+ Limit 5 headers per SecurityAction.
2725
+ At least one is mandatory.
2726
+ Structure is documented below.
2727
+ """
2728
+ if headers is not None:
2729
+ pulumi.set(__self__, "headers", headers)
2730
+
2731
+ @_builtins.property
2732
+ @pulumi.getter
2733
+ def headers(self) -> Optional[Sequence['outputs.SecurityActionFlagHeader']]:
2734
+ """
2735
+ A list of HTTP headers to be sent to the target in case of a FLAG SecurityAction.
2736
+ Limit 5 headers per SecurityAction.
2737
+ At least one is mandatory.
2738
+ Structure is documented below.
2739
+ """
2740
+ return pulumi.get(self, "headers")
2741
+
2742
+
2743
+ @pulumi.output_type
2744
+ class SecurityActionFlagHeader(dict):
2745
+ def __init__(__self__, *,
2746
+ name: Optional[_builtins.str] = None,
2747
+ value: Optional[_builtins.str] = None):
2748
+ """
2749
+ :param _builtins.str name: The header name to be sent to the target.
2750
+ :param _builtins.str value: The header value to be sent to the target.
2751
+ """
2752
+ if name is not None:
2753
+ pulumi.set(__self__, "name", name)
2754
+ if value is not None:
2755
+ pulumi.set(__self__, "value", value)
2756
+
2757
+ @_builtins.property
2758
+ @pulumi.getter
2759
+ def name(self) -> Optional[_builtins.str]:
2760
+ """
2761
+ The header name to be sent to the target.
2762
+ """
2763
+ return pulumi.get(self, "name")
2764
+
2765
+ @_builtins.property
2766
+ @pulumi.getter
2767
+ def value(self) -> Optional[_builtins.str]:
2768
+ """
2769
+ The header value to be sent to the target.
2770
+ """
2771
+ return pulumi.get(self, "value")
2772
+
2773
+
1693
2774
  @pulumi.output_type
1694
2775
  class SecurityMonitoringConditionIncludeAllResources(dict):
1695
2776
  def __init__(__self__):