pulumi-gcp 8.11.0a1734385115__py3-none-any.whl → 8.12.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 (48) hide show
  1. pulumi_gcp/__init__.py +32 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +0 -29
  3. pulumi_gcp/accesscontextmanager/outputs.py +0 -18
  4. pulumi_gcp/accesscontextmanager/service_perimeter.py +0 -36
  5. pulumi_gcp/artifactregistry/get_repository_iam_policy.py +12 -4
  6. pulumi_gcp/artifactregistry/repository.py +86 -39
  7. pulumi_gcp/artifactregistry/repository_iam_binding.py +42 -14
  8. pulumi_gcp/artifactregistry/repository_iam_member.py +42 -14
  9. pulumi_gcp/artifactregistry/repository_iam_policy.py +42 -14
  10. pulumi_gcp/compute/get_global_forwarding_rule.py +12 -1
  11. pulumi_gcp/compute/global_forwarding_rule.py +114 -2
  12. pulumi_gcp/compute/project_cloud_armor_tier.py +7 -7
  13. pulumi_gcp/firebase/_inputs.py +99 -0
  14. pulumi_gcp/firebase/database_instance.py +24 -6
  15. pulumi_gcp/firebase/hosting_version.py +96 -0
  16. pulumi_gcp/firebase/outputs.py +59 -0
  17. pulumi_gcp/firebase/project.py +6 -6
  18. pulumi_gcp/identityplatform/_inputs.py +6 -6
  19. pulumi_gcp/identityplatform/config.py +2 -2
  20. pulumi_gcp/identityplatform/outputs.py +4 -4
  21. pulumi_gcp/looker/instance.py +35 -14
  22. pulumi_gcp/networkconnectivity/_inputs.py +10 -12
  23. pulumi_gcp/networkconnectivity/outputs.py +6 -8
  24. pulumi_gcp/networksecurity/__init__.py +3 -0
  25. pulumi_gcp/networksecurity/_inputs.py +1903 -0
  26. pulumi_gcp/networksecurity/authz_policy.py +1008 -0
  27. pulumi_gcp/networksecurity/intercept_deployment.py +846 -0
  28. pulumi_gcp/networksecurity/intercept_deployment_group.py +752 -0
  29. pulumi_gcp/networksecurity/outputs.py +1393 -0
  30. pulumi_gcp/networkservices/__init__.py +1 -0
  31. pulumi_gcp/networkservices/authz_extension.py +1080 -0
  32. pulumi_gcp/oracledatabase/autonomous_database.py +4 -4
  33. pulumi_gcp/orgpolicy/_inputs.py +40 -0
  34. pulumi_gcp/orgpolicy/outputs.py +24 -0
  35. pulumi_gcp/orgpolicy/policy.py +64 -8
  36. pulumi_gcp/pulumi-plugin.json +1 -1
  37. pulumi_gcp/sql/_inputs.py +3 -3
  38. pulumi_gcp/sql/database_instance.py +14 -14
  39. pulumi_gcp/sql/outputs.py +2 -2
  40. pulumi_gcp/storage/_inputs.py +53 -6
  41. pulumi_gcp/storage/outputs.py +33 -4
  42. pulumi_gcp/tpu/_inputs.py +26 -18
  43. pulumi_gcp/tpu/outputs.py +18 -12
  44. pulumi_gcp/tpu/v2_vm.py +63 -0
  45. {pulumi_gcp-8.11.0a1734385115.dist-info → pulumi_gcp-8.12.0.dist-info}/METADATA +1 -1
  46. {pulumi_gcp-8.11.0a1734385115.dist-info → pulumi_gcp-8.12.0.dist-info}/RECORD +48 -44
  47. {pulumi_gcp-8.11.0a1734385115.dist-info → pulumi_gcp-8.12.0.dist-info}/WHEEL +0 -0
  48. {pulumi_gcp-8.11.0a1734385115.dist-info → pulumi_gcp-8.12.0.dist-info}/top_level.txt +0 -0
@@ -22,12 +22,36 @@ __all__ = [
22
22
  'AuthorizationPolicyRuleDestination',
23
23
  'AuthorizationPolicyRuleDestinationHttpHeaderMatch',
24
24
  'AuthorizationPolicyRuleSource',
25
+ 'AuthzPolicyCustomProvider',
26
+ 'AuthzPolicyCustomProviderAuthzExtension',
27
+ 'AuthzPolicyCustomProviderCloudIap',
28
+ 'AuthzPolicyHttpRule',
29
+ 'AuthzPolicyHttpRuleFrom',
30
+ 'AuthzPolicyHttpRuleFromNotSource',
31
+ 'AuthzPolicyHttpRuleFromNotSourcePrincipal',
32
+ 'AuthzPolicyHttpRuleFromNotSourceResource',
33
+ 'AuthzPolicyHttpRuleFromNotSourceResourceIamServiceAccount',
34
+ 'AuthzPolicyHttpRuleFromNotSourceResourceTagValueIdSet',
35
+ 'AuthzPolicyHttpRuleFromSource',
36
+ 'AuthzPolicyHttpRuleFromSourcePrincipal',
37
+ 'AuthzPolicyHttpRuleFromSourceResource',
38
+ 'AuthzPolicyHttpRuleFromSourceResourceIamServiceAccount',
39
+ 'AuthzPolicyHttpRuleFromSourceResourceTagValueIdSet',
40
+ 'AuthzPolicyHttpRuleTo',
41
+ 'AuthzPolicyHttpRuleToOperation',
42
+ 'AuthzPolicyHttpRuleToOperationHeaderSet',
43
+ 'AuthzPolicyHttpRuleToOperationHeaderSetHeader',
44
+ 'AuthzPolicyHttpRuleToOperationHeaderSetHeaderValue',
45
+ 'AuthzPolicyHttpRuleToOperationHost',
46
+ 'AuthzPolicyHttpRuleToOperationPath',
47
+ 'AuthzPolicyTarget',
25
48
  'ClientTlsPolicyClientCertificate',
26
49
  'ClientTlsPolicyClientCertificateCertificateProviderInstance',
27
50
  'ClientTlsPolicyClientCertificateGrpcEndpoint',
28
51
  'ClientTlsPolicyServerValidationCa',
29
52
  'ClientTlsPolicyServerValidationCaCertificateProviderInstance',
30
53
  'ClientTlsPolicyServerValidationCaGrpcEndpoint',
54
+ 'InterceptDeploymentGroupConnectedEndpointGroup',
31
55
  'MirroringDeploymentGroupConnectedEndpointGroup',
32
56
  'MirroringEndpointGroupAssociationLocationsDetail',
33
57
  'SecurityProfileThreatPreventionProfile',
@@ -308,6 +332,1354 @@ class AuthorizationPolicyRuleSource(dict):
308
332
  return pulumi.get(self, "principals")
309
333
 
310
334
 
335
+ @pulumi.output_type
336
+ class AuthzPolicyCustomProvider(dict):
337
+ @staticmethod
338
+ def __key_warning(key: str):
339
+ suggest = None
340
+ if key == "authzExtension":
341
+ suggest = "authz_extension"
342
+ elif key == "cloudIap":
343
+ suggest = "cloud_iap"
344
+
345
+ if suggest:
346
+ pulumi.log.warn(f"Key '{key}' not found in AuthzPolicyCustomProvider. Access the value via the '{suggest}' property getter instead.")
347
+
348
+ def __getitem__(self, key: str) -> Any:
349
+ AuthzPolicyCustomProvider.__key_warning(key)
350
+ return super().__getitem__(key)
351
+
352
+ def get(self, key: str, default = None) -> Any:
353
+ AuthzPolicyCustomProvider.__key_warning(key)
354
+ return super().get(key, default)
355
+
356
+ def __init__(__self__, *,
357
+ authz_extension: Optional['outputs.AuthzPolicyCustomProviderAuthzExtension'] = None,
358
+ cloud_iap: Optional['outputs.AuthzPolicyCustomProviderCloudIap'] = None):
359
+ """
360
+ :param 'AuthzPolicyCustomProviderAuthzExtensionArgs' authz_extension: Delegate authorization decision to user authored Service Extension. Only one of cloudIap or authzExtension can be specified.
361
+ Structure is documented below.
362
+ :param 'AuthzPolicyCustomProviderCloudIapArgs' cloud_iap: Delegates authorization decisions to Cloud IAP. Applicable only for managed load balancers. Enabling Cloud IAP at the AuthzPolicy level is not compatible with Cloud IAP settings in the BackendService. Enabling IAP in both places will result in request failure. Ensure that IAP is enabled in either the AuthzPolicy or the BackendService but not in both places.
363
+ Structure is documented below.
364
+ """
365
+ if authz_extension is not None:
366
+ pulumi.set(__self__, "authz_extension", authz_extension)
367
+ if cloud_iap is not None:
368
+ pulumi.set(__self__, "cloud_iap", cloud_iap)
369
+
370
+ @property
371
+ @pulumi.getter(name="authzExtension")
372
+ def authz_extension(self) -> Optional['outputs.AuthzPolicyCustomProviderAuthzExtension']:
373
+ """
374
+ Delegate authorization decision to user authored Service Extension. Only one of cloudIap or authzExtension can be specified.
375
+ Structure is documented below.
376
+ """
377
+ return pulumi.get(self, "authz_extension")
378
+
379
+ @property
380
+ @pulumi.getter(name="cloudIap")
381
+ def cloud_iap(self) -> Optional['outputs.AuthzPolicyCustomProviderCloudIap']:
382
+ """
383
+ Delegates authorization decisions to Cloud IAP. Applicable only for managed load balancers. Enabling Cloud IAP at the AuthzPolicy level is not compatible with Cloud IAP settings in the BackendService. Enabling IAP in both places will result in request failure. Ensure that IAP is enabled in either the AuthzPolicy or the BackendService but not in both places.
384
+ Structure is documented below.
385
+ """
386
+ return pulumi.get(self, "cloud_iap")
387
+
388
+
389
+ @pulumi.output_type
390
+ class AuthzPolicyCustomProviderAuthzExtension(dict):
391
+ def __init__(__self__, *,
392
+ resources: Sequence[str]):
393
+ """
394
+ :param Sequence[str] resources: A list of references to authorization extensions that will be invoked for requests matching this policy. Limited to 1 custom provider.
395
+ """
396
+ pulumi.set(__self__, "resources", resources)
397
+
398
+ @property
399
+ @pulumi.getter
400
+ def resources(self) -> Sequence[str]:
401
+ """
402
+ A list of references to authorization extensions that will be invoked for requests matching this policy. Limited to 1 custom provider.
403
+ """
404
+ return pulumi.get(self, "resources")
405
+
406
+
407
+ @pulumi.output_type
408
+ class AuthzPolicyCustomProviderCloudIap(dict):
409
+ def __init__(__self__, *,
410
+ enabled: bool):
411
+ """
412
+ :param bool enabled: Enable Cloud IAP at the AuthzPolicy level.
413
+ """
414
+ pulumi.set(__self__, "enabled", enabled)
415
+
416
+ @property
417
+ @pulumi.getter
418
+ def enabled(self) -> bool:
419
+ """
420
+ Enable Cloud IAP at the AuthzPolicy level.
421
+ """
422
+ return pulumi.get(self, "enabled")
423
+
424
+
425
+ @pulumi.output_type
426
+ class AuthzPolicyHttpRule(dict):
427
+ @staticmethod
428
+ def __key_warning(key: str):
429
+ suggest = None
430
+ if key == "from":
431
+ suggest = "from_"
432
+
433
+ if suggest:
434
+ pulumi.log.warn(f"Key '{key}' not found in AuthzPolicyHttpRule. Access the value via the '{suggest}' property getter instead.")
435
+
436
+ def __getitem__(self, key: str) -> Any:
437
+ AuthzPolicyHttpRule.__key_warning(key)
438
+ return super().__getitem__(key)
439
+
440
+ def get(self, key: str, default = None) -> Any:
441
+ AuthzPolicyHttpRule.__key_warning(key)
442
+ return super().get(key, default)
443
+
444
+ def __init__(__self__, *,
445
+ from_: Optional['outputs.AuthzPolicyHttpRuleFrom'] = None,
446
+ to: Optional['outputs.AuthzPolicyHttpRuleTo'] = None,
447
+ when: Optional[str] = None):
448
+ """
449
+ :param 'AuthzPolicyHttpRuleFromArgs' from_: Describes properties of one or more sources of a request.
450
+ Structure is documented below.
451
+ :param 'AuthzPolicyHttpRuleToArgs' to: Describes properties of one or more targets of a request
452
+ Structure is documented below.
453
+ :param str when: CEL expression that describes the conditions to be satisfied for the action. The result of the CEL expression is ANDed with the from and to. Refer to the CEL language reference for a list of available attributes.
454
+ """
455
+ if from_ is not None:
456
+ pulumi.set(__self__, "from_", from_)
457
+ if to is not None:
458
+ pulumi.set(__self__, "to", to)
459
+ if when is not None:
460
+ pulumi.set(__self__, "when", when)
461
+
462
+ @property
463
+ @pulumi.getter(name="from")
464
+ def from_(self) -> Optional['outputs.AuthzPolicyHttpRuleFrom']:
465
+ """
466
+ Describes properties of one or more sources of a request.
467
+ Structure is documented below.
468
+ """
469
+ return pulumi.get(self, "from_")
470
+
471
+ @property
472
+ @pulumi.getter
473
+ def to(self) -> Optional['outputs.AuthzPolicyHttpRuleTo']:
474
+ """
475
+ Describes properties of one or more targets of a request
476
+ Structure is documented below.
477
+ """
478
+ return pulumi.get(self, "to")
479
+
480
+ @property
481
+ @pulumi.getter
482
+ def when(self) -> Optional[str]:
483
+ """
484
+ CEL expression that describes the conditions to be satisfied for the action. The result of the CEL expression is ANDed with the from and to. Refer to the CEL language reference for a list of available attributes.
485
+ """
486
+ return pulumi.get(self, "when")
487
+
488
+
489
+ @pulumi.output_type
490
+ class AuthzPolicyHttpRuleFrom(dict):
491
+ @staticmethod
492
+ def __key_warning(key: str):
493
+ suggest = None
494
+ if key == "notSources":
495
+ suggest = "not_sources"
496
+
497
+ if suggest:
498
+ pulumi.log.warn(f"Key '{key}' not found in AuthzPolicyHttpRuleFrom. Access the value via the '{suggest}' property getter instead.")
499
+
500
+ def __getitem__(self, key: str) -> Any:
501
+ AuthzPolicyHttpRuleFrom.__key_warning(key)
502
+ return super().__getitem__(key)
503
+
504
+ def get(self, key: str, default = None) -> Any:
505
+ AuthzPolicyHttpRuleFrom.__key_warning(key)
506
+ return super().get(key, default)
507
+
508
+ def __init__(__self__, *,
509
+ not_sources: Optional[Sequence['outputs.AuthzPolicyHttpRuleFromNotSource']] = None,
510
+ sources: Optional[Sequence['outputs.AuthzPolicyHttpRuleFromSource']] = None):
511
+ """
512
+ :param Sequence['AuthzPolicyHttpRuleFromNotSourceArgs'] not_sources: Describes the properties of a request's sources. At least one of sources or notSources must be specified. Limited to 5 sources. A match occurs when ANY source (in sources or notSources) matches the request. Within a single source, the match follows AND semantics across fields and OR semantics within a single field, i.e. a match occurs when ANY principal matches AND ANY ipBlocks match.
513
+ Structure is documented below.
514
+ :param Sequence['AuthzPolicyHttpRuleFromSourceArgs'] sources: Describes the properties of a request's sources. At least one of sources or notSources must be specified. Limited to 5 sources. A match occurs when ANY source (in sources or notSources) matches the request. Within a single source, the match follows AND semantics across fields and OR semantics within a single field, i.e. a match occurs when ANY principal matches AND ANY ipBlocks match.
515
+ Structure is documented below.
516
+ """
517
+ if not_sources is not None:
518
+ pulumi.set(__self__, "not_sources", not_sources)
519
+ if sources is not None:
520
+ pulumi.set(__self__, "sources", sources)
521
+
522
+ @property
523
+ @pulumi.getter(name="notSources")
524
+ def not_sources(self) -> Optional[Sequence['outputs.AuthzPolicyHttpRuleFromNotSource']]:
525
+ """
526
+ Describes the properties of a request's sources. At least one of sources or notSources must be specified. Limited to 5 sources. A match occurs when ANY source (in sources or notSources) matches the request. Within a single source, the match follows AND semantics across fields and OR semantics within a single field, i.e. a match occurs when ANY principal matches AND ANY ipBlocks match.
527
+ Structure is documented below.
528
+ """
529
+ return pulumi.get(self, "not_sources")
530
+
531
+ @property
532
+ @pulumi.getter
533
+ def sources(self) -> Optional[Sequence['outputs.AuthzPolicyHttpRuleFromSource']]:
534
+ """
535
+ Describes the properties of a request's sources. At least one of sources or notSources must be specified. Limited to 5 sources. A match occurs when ANY source (in sources or notSources) matches the request. Within a single source, the match follows AND semantics across fields and OR semantics within a single field, i.e. a match occurs when ANY principal matches AND ANY ipBlocks match.
536
+ Structure is documented below.
537
+ """
538
+ return pulumi.get(self, "sources")
539
+
540
+
541
+ @pulumi.output_type
542
+ class AuthzPolicyHttpRuleFromNotSource(dict):
543
+ def __init__(__self__, *,
544
+ principals: Optional[Sequence['outputs.AuthzPolicyHttpRuleFromNotSourcePrincipal']] = None,
545
+ resources: Optional[Sequence['outputs.AuthzPolicyHttpRuleFromNotSourceResource']] = None):
546
+ """
547
+ :param Sequence['AuthzPolicyHttpRuleFromNotSourcePrincipalArgs'] principals: A list of identities derived from the client's certificate. This field will not match on a request unless mutual TLS is enabled for the Forwarding rule or Gateway. Each identity is a string whose value is matched against the URI SAN, or DNS SAN or the subject field in the client's certificate. The match can be exact, prefix, suffix or a substring match. One of exact, prefix, suffix or contains must be specified.
548
+ Limited to 5 principals.
549
+ Structure is documented below.
550
+ :param Sequence['AuthzPolicyHttpRuleFromNotSourceResourceArgs'] resources: A list of resources to match against the resource of the source VM of a request.
551
+ Limited to 5 resources.
552
+ Structure is documented below.
553
+ """
554
+ if principals is not None:
555
+ pulumi.set(__self__, "principals", principals)
556
+ if resources is not None:
557
+ pulumi.set(__self__, "resources", resources)
558
+
559
+ @property
560
+ @pulumi.getter
561
+ def principals(self) -> Optional[Sequence['outputs.AuthzPolicyHttpRuleFromNotSourcePrincipal']]:
562
+ """
563
+ A list of identities derived from the client's certificate. This field will not match on a request unless mutual TLS is enabled for the Forwarding rule or Gateway. Each identity is a string whose value is matched against the URI SAN, or DNS SAN or the subject field in the client's certificate. The match can be exact, prefix, suffix or a substring match. One of exact, prefix, suffix or contains must be specified.
564
+ Limited to 5 principals.
565
+ Structure is documented below.
566
+ """
567
+ return pulumi.get(self, "principals")
568
+
569
+ @property
570
+ @pulumi.getter
571
+ def resources(self) -> Optional[Sequence['outputs.AuthzPolicyHttpRuleFromNotSourceResource']]:
572
+ """
573
+ A list of resources to match against the resource of the source VM of a request.
574
+ Limited to 5 resources.
575
+ Structure is documented below.
576
+ """
577
+ return pulumi.get(self, "resources")
578
+
579
+
580
+ @pulumi.output_type
581
+ class AuthzPolicyHttpRuleFromNotSourcePrincipal(dict):
582
+ @staticmethod
583
+ def __key_warning(key: str):
584
+ suggest = None
585
+ if key == "ignoreCase":
586
+ suggest = "ignore_case"
587
+
588
+ if suggest:
589
+ pulumi.log.warn(f"Key '{key}' not found in AuthzPolicyHttpRuleFromNotSourcePrincipal. Access the value via the '{suggest}' property getter instead.")
590
+
591
+ def __getitem__(self, key: str) -> Any:
592
+ AuthzPolicyHttpRuleFromNotSourcePrincipal.__key_warning(key)
593
+ return super().__getitem__(key)
594
+
595
+ def get(self, key: str, default = None) -> Any:
596
+ AuthzPolicyHttpRuleFromNotSourcePrincipal.__key_warning(key)
597
+ return super().get(key, default)
598
+
599
+ def __init__(__self__, *,
600
+ contains: Optional[str] = None,
601
+ exact: Optional[str] = None,
602
+ ignore_case: Optional[bool] = None,
603
+ prefix: Optional[str] = None,
604
+ suffix: Optional[str] = None):
605
+ """
606
+ :param str contains: The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
607
+ Examples:
608
+ * abc matches the value xyz.abc.def
609
+ :param str exact: The input string must match exactly the string specified here.
610
+ Examples:
611
+ * abc only matches the value abc.
612
+ :param bool ignore_case: If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
613
+ :param str prefix: The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
614
+ Examples:
615
+ * abc matches the value abc.xyz
616
+ :param str suffix: The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
617
+ Examples:
618
+ * abc matches the value xyz.abc
619
+ """
620
+ if contains is not None:
621
+ pulumi.set(__self__, "contains", contains)
622
+ if exact is not None:
623
+ pulumi.set(__self__, "exact", exact)
624
+ if ignore_case is not None:
625
+ pulumi.set(__self__, "ignore_case", ignore_case)
626
+ if prefix is not None:
627
+ pulumi.set(__self__, "prefix", prefix)
628
+ if suffix is not None:
629
+ pulumi.set(__self__, "suffix", suffix)
630
+
631
+ @property
632
+ @pulumi.getter
633
+ def contains(self) -> Optional[str]:
634
+ """
635
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
636
+ Examples:
637
+ * abc matches the value xyz.abc.def
638
+ """
639
+ return pulumi.get(self, "contains")
640
+
641
+ @property
642
+ @pulumi.getter
643
+ def exact(self) -> Optional[str]:
644
+ """
645
+ The input string must match exactly the string specified here.
646
+ Examples:
647
+ * abc only matches the value abc.
648
+ """
649
+ return pulumi.get(self, "exact")
650
+
651
+ @property
652
+ @pulumi.getter(name="ignoreCase")
653
+ def ignore_case(self) -> Optional[bool]:
654
+ """
655
+ If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
656
+ """
657
+ return pulumi.get(self, "ignore_case")
658
+
659
+ @property
660
+ @pulumi.getter
661
+ def prefix(self) -> Optional[str]:
662
+ """
663
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
664
+ Examples:
665
+ * abc matches the value abc.xyz
666
+ """
667
+ return pulumi.get(self, "prefix")
668
+
669
+ @property
670
+ @pulumi.getter
671
+ def suffix(self) -> Optional[str]:
672
+ """
673
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
674
+ Examples:
675
+ * abc matches the value xyz.abc
676
+ """
677
+ return pulumi.get(self, "suffix")
678
+
679
+
680
+ @pulumi.output_type
681
+ class AuthzPolicyHttpRuleFromNotSourceResource(dict):
682
+ @staticmethod
683
+ def __key_warning(key: str):
684
+ suggest = None
685
+ if key == "iamServiceAccount":
686
+ suggest = "iam_service_account"
687
+ elif key == "tagValueIdSet":
688
+ suggest = "tag_value_id_set"
689
+
690
+ if suggest:
691
+ pulumi.log.warn(f"Key '{key}' not found in AuthzPolicyHttpRuleFromNotSourceResource. Access the value via the '{suggest}' property getter instead.")
692
+
693
+ def __getitem__(self, key: str) -> Any:
694
+ AuthzPolicyHttpRuleFromNotSourceResource.__key_warning(key)
695
+ return super().__getitem__(key)
696
+
697
+ def get(self, key: str, default = None) -> Any:
698
+ AuthzPolicyHttpRuleFromNotSourceResource.__key_warning(key)
699
+ return super().get(key, default)
700
+
701
+ def __init__(__self__, *,
702
+ iam_service_account: Optional['outputs.AuthzPolicyHttpRuleFromNotSourceResourceIamServiceAccount'] = None,
703
+ tag_value_id_set: Optional['outputs.AuthzPolicyHttpRuleFromNotSourceResourceTagValueIdSet'] = None):
704
+ """
705
+ :param 'AuthzPolicyHttpRuleFromNotSourceResourceIamServiceAccountArgs' iam_service_account: An IAM service account to match against the source service account of the VM sending the request.
706
+ Structure is documented below.
707
+ :param 'AuthzPolicyHttpRuleFromNotSourceResourceTagValueIdSetArgs' tag_value_id_set: A list of resource tag value permanent IDs to match against the resource manager tags value associated with the source VM of a request.
708
+ Structure is documented below.
709
+ """
710
+ if iam_service_account is not None:
711
+ pulumi.set(__self__, "iam_service_account", iam_service_account)
712
+ if tag_value_id_set is not None:
713
+ pulumi.set(__self__, "tag_value_id_set", tag_value_id_set)
714
+
715
+ @property
716
+ @pulumi.getter(name="iamServiceAccount")
717
+ def iam_service_account(self) -> Optional['outputs.AuthzPolicyHttpRuleFromNotSourceResourceIamServiceAccount']:
718
+ """
719
+ An IAM service account to match against the source service account of the VM sending the request.
720
+ Structure is documented below.
721
+ """
722
+ return pulumi.get(self, "iam_service_account")
723
+
724
+ @property
725
+ @pulumi.getter(name="tagValueIdSet")
726
+ def tag_value_id_set(self) -> Optional['outputs.AuthzPolicyHttpRuleFromNotSourceResourceTagValueIdSet']:
727
+ """
728
+ A list of resource tag value permanent IDs to match against the resource manager tags value associated with the source VM of a request.
729
+ Structure is documented below.
730
+ """
731
+ return pulumi.get(self, "tag_value_id_set")
732
+
733
+
734
+ @pulumi.output_type
735
+ class AuthzPolicyHttpRuleFromNotSourceResourceIamServiceAccount(dict):
736
+ @staticmethod
737
+ def __key_warning(key: str):
738
+ suggest = None
739
+ if key == "ignoreCase":
740
+ suggest = "ignore_case"
741
+
742
+ if suggest:
743
+ pulumi.log.warn(f"Key '{key}' not found in AuthzPolicyHttpRuleFromNotSourceResourceIamServiceAccount. Access the value via the '{suggest}' property getter instead.")
744
+
745
+ def __getitem__(self, key: str) -> Any:
746
+ AuthzPolicyHttpRuleFromNotSourceResourceIamServiceAccount.__key_warning(key)
747
+ return super().__getitem__(key)
748
+
749
+ def get(self, key: str, default = None) -> Any:
750
+ AuthzPolicyHttpRuleFromNotSourceResourceIamServiceAccount.__key_warning(key)
751
+ return super().get(key, default)
752
+
753
+ def __init__(__self__, *,
754
+ contains: Optional[str] = None,
755
+ exact: Optional[str] = None,
756
+ ignore_case: Optional[bool] = None,
757
+ prefix: Optional[str] = None,
758
+ suffix: Optional[str] = None):
759
+ """
760
+ :param str contains: The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
761
+ Examples:
762
+ * abc matches the value xyz.abc.def
763
+ :param str exact: The input string must match exactly the string specified here.
764
+ Examples:
765
+ * abc only matches the value abc.
766
+ :param bool ignore_case: If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
767
+ :param str prefix: The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
768
+ Examples:
769
+ * abc matches the value abc.xyz
770
+ :param str suffix: The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
771
+ Examples:
772
+ * abc matches the value xyz.abc
773
+ """
774
+ if contains is not None:
775
+ pulumi.set(__self__, "contains", contains)
776
+ if exact is not None:
777
+ pulumi.set(__self__, "exact", exact)
778
+ if ignore_case is not None:
779
+ pulumi.set(__self__, "ignore_case", ignore_case)
780
+ if prefix is not None:
781
+ pulumi.set(__self__, "prefix", prefix)
782
+ if suffix is not None:
783
+ pulumi.set(__self__, "suffix", suffix)
784
+
785
+ @property
786
+ @pulumi.getter
787
+ def contains(self) -> Optional[str]:
788
+ """
789
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
790
+ Examples:
791
+ * abc matches the value xyz.abc.def
792
+ """
793
+ return pulumi.get(self, "contains")
794
+
795
+ @property
796
+ @pulumi.getter
797
+ def exact(self) -> Optional[str]:
798
+ """
799
+ The input string must match exactly the string specified here.
800
+ Examples:
801
+ * abc only matches the value abc.
802
+ """
803
+ return pulumi.get(self, "exact")
804
+
805
+ @property
806
+ @pulumi.getter(name="ignoreCase")
807
+ def ignore_case(self) -> Optional[bool]:
808
+ """
809
+ If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
810
+ """
811
+ return pulumi.get(self, "ignore_case")
812
+
813
+ @property
814
+ @pulumi.getter
815
+ def prefix(self) -> Optional[str]:
816
+ """
817
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
818
+ Examples:
819
+ * abc matches the value abc.xyz
820
+ """
821
+ return pulumi.get(self, "prefix")
822
+
823
+ @property
824
+ @pulumi.getter
825
+ def suffix(self) -> Optional[str]:
826
+ """
827
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
828
+ Examples:
829
+ * abc matches the value xyz.abc
830
+ """
831
+ return pulumi.get(self, "suffix")
832
+
833
+
834
+ @pulumi.output_type
835
+ class AuthzPolicyHttpRuleFromNotSourceResourceTagValueIdSet(dict):
836
+ def __init__(__self__, *,
837
+ ids: Optional[Sequence[str]] = None):
838
+ """
839
+ :param Sequence[str] ids: A list of resource tag value permanent IDs to match against the resource manager tags value associated with the source VM of a request. The match follows AND semantics which means all the ids must match.
840
+ Limited to 5 matches.
841
+ """
842
+ if ids is not None:
843
+ pulumi.set(__self__, "ids", ids)
844
+
845
+ @property
846
+ @pulumi.getter
847
+ def ids(self) -> Optional[Sequence[str]]:
848
+ """
849
+ A list of resource tag value permanent IDs to match against the resource manager tags value associated with the source VM of a request. The match follows AND semantics which means all the ids must match.
850
+ Limited to 5 matches.
851
+ """
852
+ return pulumi.get(self, "ids")
853
+
854
+
855
+ @pulumi.output_type
856
+ class AuthzPolicyHttpRuleFromSource(dict):
857
+ def __init__(__self__, *,
858
+ principals: Optional[Sequence['outputs.AuthzPolicyHttpRuleFromSourcePrincipal']] = None,
859
+ resources: Optional[Sequence['outputs.AuthzPolicyHttpRuleFromSourceResource']] = None):
860
+ """
861
+ :param Sequence['AuthzPolicyHttpRuleFromSourcePrincipalArgs'] principals: A list of identities derived from the client's certificate. This field will not match on a request unless mutual TLS is enabled for the Forwarding rule or Gateway. Each identity is a string whose value is matched against the URI SAN, or DNS SAN or the subject field in the client's certificate. The match can be exact, prefix, suffix or a substring match. One of exact, prefix, suffix or contains must be specified.
862
+ Limited to 5 principals.
863
+ Structure is documented below.
864
+ :param Sequence['AuthzPolicyHttpRuleFromSourceResourceArgs'] resources: A list of resources to match against the resource of the source VM of a request.
865
+ Limited to 5 resources.
866
+ Structure is documented below.
867
+ """
868
+ if principals is not None:
869
+ pulumi.set(__self__, "principals", principals)
870
+ if resources is not None:
871
+ pulumi.set(__self__, "resources", resources)
872
+
873
+ @property
874
+ @pulumi.getter
875
+ def principals(self) -> Optional[Sequence['outputs.AuthzPolicyHttpRuleFromSourcePrincipal']]:
876
+ """
877
+ A list of identities derived from the client's certificate. This field will not match on a request unless mutual TLS is enabled for the Forwarding rule or Gateway. Each identity is a string whose value is matched against the URI SAN, or DNS SAN or the subject field in the client's certificate. The match can be exact, prefix, suffix or a substring match. One of exact, prefix, suffix or contains must be specified.
878
+ Limited to 5 principals.
879
+ Structure is documented below.
880
+ """
881
+ return pulumi.get(self, "principals")
882
+
883
+ @property
884
+ @pulumi.getter
885
+ def resources(self) -> Optional[Sequence['outputs.AuthzPolicyHttpRuleFromSourceResource']]:
886
+ """
887
+ A list of resources to match against the resource of the source VM of a request.
888
+ Limited to 5 resources.
889
+ Structure is documented below.
890
+ """
891
+ return pulumi.get(self, "resources")
892
+
893
+
894
+ @pulumi.output_type
895
+ class AuthzPolicyHttpRuleFromSourcePrincipal(dict):
896
+ @staticmethod
897
+ def __key_warning(key: str):
898
+ suggest = None
899
+ if key == "ignoreCase":
900
+ suggest = "ignore_case"
901
+
902
+ if suggest:
903
+ pulumi.log.warn(f"Key '{key}' not found in AuthzPolicyHttpRuleFromSourcePrincipal. Access the value via the '{suggest}' property getter instead.")
904
+
905
+ def __getitem__(self, key: str) -> Any:
906
+ AuthzPolicyHttpRuleFromSourcePrincipal.__key_warning(key)
907
+ return super().__getitem__(key)
908
+
909
+ def get(self, key: str, default = None) -> Any:
910
+ AuthzPolicyHttpRuleFromSourcePrincipal.__key_warning(key)
911
+ return super().get(key, default)
912
+
913
+ def __init__(__self__, *,
914
+ contains: Optional[str] = None,
915
+ exact: Optional[str] = None,
916
+ ignore_case: Optional[bool] = None,
917
+ prefix: Optional[str] = None,
918
+ suffix: Optional[str] = None):
919
+ """
920
+ :param str contains: The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
921
+ Examples:
922
+ * abc matches the value xyz.abc.def
923
+ :param str exact: The input string must match exactly the string specified here.
924
+ Examples:
925
+ * abc only matches the value abc.
926
+ :param bool ignore_case: If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
927
+ :param str prefix: The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
928
+ Examples:
929
+ * abc matches the value abc.xyz
930
+ :param str suffix: The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
931
+ Examples:
932
+ * abc matches the value xyz.abc
933
+ """
934
+ if contains is not None:
935
+ pulumi.set(__self__, "contains", contains)
936
+ if exact is not None:
937
+ pulumi.set(__self__, "exact", exact)
938
+ if ignore_case is not None:
939
+ pulumi.set(__self__, "ignore_case", ignore_case)
940
+ if prefix is not None:
941
+ pulumi.set(__self__, "prefix", prefix)
942
+ if suffix is not None:
943
+ pulumi.set(__self__, "suffix", suffix)
944
+
945
+ @property
946
+ @pulumi.getter
947
+ def contains(self) -> Optional[str]:
948
+ """
949
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
950
+ Examples:
951
+ * abc matches the value xyz.abc.def
952
+ """
953
+ return pulumi.get(self, "contains")
954
+
955
+ @property
956
+ @pulumi.getter
957
+ def exact(self) -> Optional[str]:
958
+ """
959
+ The input string must match exactly the string specified here.
960
+ Examples:
961
+ * abc only matches the value abc.
962
+ """
963
+ return pulumi.get(self, "exact")
964
+
965
+ @property
966
+ @pulumi.getter(name="ignoreCase")
967
+ def ignore_case(self) -> Optional[bool]:
968
+ """
969
+ If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
970
+ """
971
+ return pulumi.get(self, "ignore_case")
972
+
973
+ @property
974
+ @pulumi.getter
975
+ def prefix(self) -> Optional[str]:
976
+ """
977
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
978
+ Examples:
979
+ * abc matches the value abc.xyz
980
+ """
981
+ return pulumi.get(self, "prefix")
982
+
983
+ @property
984
+ @pulumi.getter
985
+ def suffix(self) -> Optional[str]:
986
+ """
987
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
988
+ Examples:
989
+ * abc matches the value xyz.abc
990
+ """
991
+ return pulumi.get(self, "suffix")
992
+
993
+
994
+ @pulumi.output_type
995
+ class AuthzPolicyHttpRuleFromSourceResource(dict):
996
+ @staticmethod
997
+ def __key_warning(key: str):
998
+ suggest = None
999
+ if key == "iamServiceAccount":
1000
+ suggest = "iam_service_account"
1001
+ elif key == "tagValueIdSet":
1002
+ suggest = "tag_value_id_set"
1003
+
1004
+ if suggest:
1005
+ pulumi.log.warn(f"Key '{key}' not found in AuthzPolicyHttpRuleFromSourceResource. Access the value via the '{suggest}' property getter instead.")
1006
+
1007
+ def __getitem__(self, key: str) -> Any:
1008
+ AuthzPolicyHttpRuleFromSourceResource.__key_warning(key)
1009
+ return super().__getitem__(key)
1010
+
1011
+ def get(self, key: str, default = None) -> Any:
1012
+ AuthzPolicyHttpRuleFromSourceResource.__key_warning(key)
1013
+ return super().get(key, default)
1014
+
1015
+ def __init__(__self__, *,
1016
+ iam_service_account: Optional['outputs.AuthzPolicyHttpRuleFromSourceResourceIamServiceAccount'] = None,
1017
+ tag_value_id_set: Optional['outputs.AuthzPolicyHttpRuleFromSourceResourceTagValueIdSet'] = None):
1018
+ """
1019
+ :param 'AuthzPolicyHttpRuleFromSourceResourceIamServiceAccountArgs' iam_service_account: An IAM service account to match against the source service account of the VM sending the request.
1020
+ Structure is documented below.
1021
+ :param 'AuthzPolicyHttpRuleFromSourceResourceTagValueIdSetArgs' tag_value_id_set: A list of resource tag value permanent IDs to match against the resource manager tags value associated with the source VM of a request.
1022
+ Structure is documented below.
1023
+ """
1024
+ if iam_service_account is not None:
1025
+ pulumi.set(__self__, "iam_service_account", iam_service_account)
1026
+ if tag_value_id_set is not None:
1027
+ pulumi.set(__self__, "tag_value_id_set", tag_value_id_set)
1028
+
1029
+ @property
1030
+ @pulumi.getter(name="iamServiceAccount")
1031
+ def iam_service_account(self) -> Optional['outputs.AuthzPolicyHttpRuleFromSourceResourceIamServiceAccount']:
1032
+ """
1033
+ An IAM service account to match against the source service account of the VM sending the request.
1034
+ Structure is documented below.
1035
+ """
1036
+ return pulumi.get(self, "iam_service_account")
1037
+
1038
+ @property
1039
+ @pulumi.getter(name="tagValueIdSet")
1040
+ def tag_value_id_set(self) -> Optional['outputs.AuthzPolicyHttpRuleFromSourceResourceTagValueIdSet']:
1041
+ """
1042
+ A list of resource tag value permanent IDs to match against the resource manager tags value associated with the source VM of a request.
1043
+ Structure is documented below.
1044
+ """
1045
+ return pulumi.get(self, "tag_value_id_set")
1046
+
1047
+
1048
+ @pulumi.output_type
1049
+ class AuthzPolicyHttpRuleFromSourceResourceIamServiceAccount(dict):
1050
+ @staticmethod
1051
+ def __key_warning(key: str):
1052
+ suggest = None
1053
+ if key == "ignoreCase":
1054
+ suggest = "ignore_case"
1055
+
1056
+ if suggest:
1057
+ pulumi.log.warn(f"Key '{key}' not found in AuthzPolicyHttpRuleFromSourceResourceIamServiceAccount. Access the value via the '{suggest}' property getter instead.")
1058
+
1059
+ def __getitem__(self, key: str) -> Any:
1060
+ AuthzPolicyHttpRuleFromSourceResourceIamServiceAccount.__key_warning(key)
1061
+ return super().__getitem__(key)
1062
+
1063
+ def get(self, key: str, default = None) -> Any:
1064
+ AuthzPolicyHttpRuleFromSourceResourceIamServiceAccount.__key_warning(key)
1065
+ return super().get(key, default)
1066
+
1067
+ def __init__(__self__, *,
1068
+ contains: Optional[str] = None,
1069
+ exact: Optional[str] = None,
1070
+ ignore_case: Optional[bool] = None,
1071
+ prefix: Optional[str] = None,
1072
+ suffix: Optional[str] = None):
1073
+ """
1074
+ :param str contains: The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
1075
+ Examples:
1076
+ * abc matches the value xyz.abc.def
1077
+ :param str exact: The input string must match exactly the string specified here.
1078
+ Examples:
1079
+ * abc only matches the value abc.
1080
+ :param bool ignore_case: If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
1081
+ :param str prefix: The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
1082
+ Examples:
1083
+ * abc matches the value abc.xyz
1084
+ :param str suffix: The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
1085
+ Examples:
1086
+ * abc matches the value xyz.abc
1087
+ """
1088
+ if contains is not None:
1089
+ pulumi.set(__self__, "contains", contains)
1090
+ if exact is not None:
1091
+ pulumi.set(__self__, "exact", exact)
1092
+ if ignore_case is not None:
1093
+ pulumi.set(__self__, "ignore_case", ignore_case)
1094
+ if prefix is not None:
1095
+ pulumi.set(__self__, "prefix", prefix)
1096
+ if suffix is not None:
1097
+ pulumi.set(__self__, "suffix", suffix)
1098
+
1099
+ @property
1100
+ @pulumi.getter
1101
+ def contains(self) -> Optional[str]:
1102
+ """
1103
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
1104
+ Examples:
1105
+ * abc matches the value xyz.abc.def
1106
+ """
1107
+ return pulumi.get(self, "contains")
1108
+
1109
+ @property
1110
+ @pulumi.getter
1111
+ def exact(self) -> Optional[str]:
1112
+ """
1113
+ The input string must match exactly the string specified here.
1114
+ Examples:
1115
+ * abc only matches the value abc.
1116
+ """
1117
+ return pulumi.get(self, "exact")
1118
+
1119
+ @property
1120
+ @pulumi.getter(name="ignoreCase")
1121
+ def ignore_case(self) -> Optional[bool]:
1122
+ """
1123
+ If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
1124
+ """
1125
+ return pulumi.get(self, "ignore_case")
1126
+
1127
+ @property
1128
+ @pulumi.getter
1129
+ def prefix(self) -> Optional[str]:
1130
+ """
1131
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
1132
+ Examples:
1133
+ * abc matches the value abc.xyz
1134
+ """
1135
+ return pulumi.get(self, "prefix")
1136
+
1137
+ @property
1138
+ @pulumi.getter
1139
+ def suffix(self) -> Optional[str]:
1140
+ """
1141
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
1142
+ Examples:
1143
+ * abc matches the value xyz.abc
1144
+ """
1145
+ return pulumi.get(self, "suffix")
1146
+
1147
+
1148
+ @pulumi.output_type
1149
+ class AuthzPolicyHttpRuleFromSourceResourceTagValueIdSet(dict):
1150
+ def __init__(__self__, *,
1151
+ ids: Optional[Sequence[str]] = None):
1152
+ """
1153
+ :param Sequence[str] ids: A list of resource tag value permanent IDs to match against the resource manager tags value associated with the source VM of a request. The match follows AND semantics which means all the ids must match.
1154
+ Limited to 5 matches.
1155
+ """
1156
+ if ids is not None:
1157
+ pulumi.set(__self__, "ids", ids)
1158
+
1159
+ @property
1160
+ @pulumi.getter
1161
+ def ids(self) -> Optional[Sequence[str]]:
1162
+ """
1163
+ A list of resource tag value permanent IDs to match against the resource manager tags value associated with the source VM of a request. The match follows AND semantics which means all the ids must match.
1164
+ Limited to 5 matches.
1165
+ """
1166
+ return pulumi.get(self, "ids")
1167
+
1168
+
1169
+ @pulumi.output_type
1170
+ class AuthzPolicyHttpRuleTo(dict):
1171
+ def __init__(__self__, *,
1172
+ operations: Optional[Sequence['outputs.AuthzPolicyHttpRuleToOperation']] = None):
1173
+ """
1174
+ :param Sequence['AuthzPolicyHttpRuleToOperationArgs'] operations: Describes properties of one or more targets of a request. At least one of operations or notOperations must be specified. Limited to 5 operations. A match occurs when ANY operation (in operations or notOperations) matches. Within an operation, the match follows AND semantics across fields and OR semantics within a field, i.e. a match occurs when ANY path matches AND ANY header matches and ANY method matches.
1175
+ Structure is documented below.
1176
+ """
1177
+ if operations is not None:
1178
+ pulumi.set(__self__, "operations", operations)
1179
+
1180
+ @property
1181
+ @pulumi.getter
1182
+ def operations(self) -> Optional[Sequence['outputs.AuthzPolicyHttpRuleToOperation']]:
1183
+ """
1184
+ Describes properties of one or more targets of a request. At least one of operations or notOperations must be specified. Limited to 5 operations. A match occurs when ANY operation (in operations or notOperations) matches. Within an operation, the match follows AND semantics across fields and OR semantics within a field, i.e. a match occurs when ANY path matches AND ANY header matches and ANY method matches.
1185
+ Structure is documented below.
1186
+ """
1187
+ return pulumi.get(self, "operations")
1188
+
1189
+
1190
+ @pulumi.output_type
1191
+ class AuthzPolicyHttpRuleToOperation(dict):
1192
+ @staticmethod
1193
+ def __key_warning(key: str):
1194
+ suggest = None
1195
+ if key == "headerSet":
1196
+ suggest = "header_set"
1197
+
1198
+ if suggest:
1199
+ pulumi.log.warn(f"Key '{key}' not found in AuthzPolicyHttpRuleToOperation. Access the value via the '{suggest}' property getter instead.")
1200
+
1201
+ def __getitem__(self, key: str) -> Any:
1202
+ AuthzPolicyHttpRuleToOperation.__key_warning(key)
1203
+ return super().__getitem__(key)
1204
+
1205
+ def get(self, key: str, default = None) -> Any:
1206
+ AuthzPolicyHttpRuleToOperation.__key_warning(key)
1207
+ return super().get(key, default)
1208
+
1209
+ def __init__(__self__, *,
1210
+ header_set: Optional['outputs.AuthzPolicyHttpRuleToOperationHeaderSet'] = None,
1211
+ hosts: Optional[Sequence['outputs.AuthzPolicyHttpRuleToOperationHost']] = None,
1212
+ methods: Optional[Sequence[str]] = None,
1213
+ paths: Optional[Sequence['outputs.AuthzPolicyHttpRuleToOperationPath']] = None):
1214
+ """
1215
+ :param 'AuthzPolicyHttpRuleToOperationHeaderSetArgs' header_set: A list of headers to match against in http header.
1216
+ Structure is documented below.
1217
+ :param Sequence['AuthzPolicyHttpRuleToOperationHostArgs'] hosts: A list of HTTP Hosts to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set.
1218
+ Limited to 5 matches.
1219
+ Structure is documented below.
1220
+ :param Sequence[str] methods: A list of HTTP methods to match against. Each entry must be a valid HTTP method name (GET, PUT, POST, HEAD, PATCH, DELETE, OPTIONS). It only allows exact match and is always case sensitive.
1221
+ :param Sequence['AuthzPolicyHttpRuleToOperationPathArgs'] paths: A list of paths to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set.
1222
+ Limited to 5 matches.
1223
+ Note that this path match includes the query parameters. For gRPC services, this should be a fully-qualified name of the form /package.service/method.
1224
+ Structure is documented below.
1225
+ """
1226
+ if header_set is not None:
1227
+ pulumi.set(__self__, "header_set", header_set)
1228
+ if hosts is not None:
1229
+ pulumi.set(__self__, "hosts", hosts)
1230
+ if methods is not None:
1231
+ pulumi.set(__self__, "methods", methods)
1232
+ if paths is not None:
1233
+ pulumi.set(__self__, "paths", paths)
1234
+
1235
+ @property
1236
+ @pulumi.getter(name="headerSet")
1237
+ def header_set(self) -> Optional['outputs.AuthzPolicyHttpRuleToOperationHeaderSet']:
1238
+ """
1239
+ A list of headers to match against in http header.
1240
+ Structure is documented below.
1241
+ """
1242
+ return pulumi.get(self, "header_set")
1243
+
1244
+ @property
1245
+ @pulumi.getter
1246
+ def hosts(self) -> Optional[Sequence['outputs.AuthzPolicyHttpRuleToOperationHost']]:
1247
+ """
1248
+ A list of HTTP Hosts to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set.
1249
+ Limited to 5 matches.
1250
+ Structure is documented below.
1251
+ """
1252
+ return pulumi.get(self, "hosts")
1253
+
1254
+ @property
1255
+ @pulumi.getter
1256
+ def methods(self) -> Optional[Sequence[str]]:
1257
+ """
1258
+ A list of HTTP methods to match against. Each entry must be a valid HTTP method name (GET, PUT, POST, HEAD, PATCH, DELETE, OPTIONS). It only allows exact match and is always case sensitive.
1259
+ """
1260
+ return pulumi.get(self, "methods")
1261
+
1262
+ @property
1263
+ @pulumi.getter
1264
+ def paths(self) -> Optional[Sequence['outputs.AuthzPolicyHttpRuleToOperationPath']]:
1265
+ """
1266
+ A list of paths to match against. The match can be one of exact, prefix, suffix, or contains (substring match). Matches are always case sensitive unless the ignoreCase is set.
1267
+ Limited to 5 matches.
1268
+ Note that this path match includes the query parameters. For gRPC services, this should be a fully-qualified name of the form /package.service/method.
1269
+ Structure is documented below.
1270
+ """
1271
+ return pulumi.get(self, "paths")
1272
+
1273
+
1274
+ @pulumi.output_type
1275
+ class AuthzPolicyHttpRuleToOperationHeaderSet(dict):
1276
+ def __init__(__self__, *,
1277
+ headers: Optional[Sequence['outputs.AuthzPolicyHttpRuleToOperationHeaderSetHeader']] = None):
1278
+ """
1279
+ :param Sequence['AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgs'] headers: A list of headers to match against in http header. The match can be one of exact, prefix, suffix, or contains (substring match). The match follows AND semantics which means all the headers must match. Matches are always case sensitive unless the ignoreCase is set. Limited to 5 matches.
1280
+ Structure is documented below.
1281
+ """
1282
+ if headers is not None:
1283
+ pulumi.set(__self__, "headers", headers)
1284
+
1285
+ @property
1286
+ @pulumi.getter
1287
+ def headers(self) -> Optional[Sequence['outputs.AuthzPolicyHttpRuleToOperationHeaderSetHeader']]:
1288
+ """
1289
+ A list of headers to match against in http header. The match can be one of exact, prefix, suffix, or contains (substring match). The match follows AND semantics which means all the headers must match. Matches are always case sensitive unless the ignoreCase is set. Limited to 5 matches.
1290
+ Structure is documented below.
1291
+ """
1292
+ return pulumi.get(self, "headers")
1293
+
1294
+
1295
+ @pulumi.output_type
1296
+ class AuthzPolicyHttpRuleToOperationHeaderSetHeader(dict):
1297
+ def __init__(__self__, *,
1298
+ name: Optional[str] = None,
1299
+ value: Optional['outputs.AuthzPolicyHttpRuleToOperationHeaderSetHeaderValue'] = None):
1300
+ """
1301
+ :param str name: Specifies the name of the header in the request.
1302
+ :param 'AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgs' value: Specifies how the header match will be performed.
1303
+ Structure is documented below.
1304
+ """
1305
+ if name is not None:
1306
+ pulumi.set(__self__, "name", name)
1307
+ if value is not None:
1308
+ pulumi.set(__self__, "value", value)
1309
+
1310
+ @property
1311
+ @pulumi.getter
1312
+ def name(self) -> Optional[str]:
1313
+ """
1314
+ Specifies the name of the header in the request.
1315
+ """
1316
+ return pulumi.get(self, "name")
1317
+
1318
+ @property
1319
+ @pulumi.getter
1320
+ def value(self) -> Optional['outputs.AuthzPolicyHttpRuleToOperationHeaderSetHeaderValue']:
1321
+ """
1322
+ Specifies how the header match will be performed.
1323
+ Structure is documented below.
1324
+ """
1325
+ return pulumi.get(self, "value")
1326
+
1327
+
1328
+ @pulumi.output_type
1329
+ class AuthzPolicyHttpRuleToOperationHeaderSetHeaderValue(dict):
1330
+ @staticmethod
1331
+ def __key_warning(key: str):
1332
+ suggest = None
1333
+ if key == "ignoreCase":
1334
+ suggest = "ignore_case"
1335
+
1336
+ if suggest:
1337
+ pulumi.log.warn(f"Key '{key}' not found in AuthzPolicyHttpRuleToOperationHeaderSetHeaderValue. Access the value via the '{suggest}' property getter instead.")
1338
+
1339
+ def __getitem__(self, key: str) -> Any:
1340
+ AuthzPolicyHttpRuleToOperationHeaderSetHeaderValue.__key_warning(key)
1341
+ return super().__getitem__(key)
1342
+
1343
+ def get(self, key: str, default = None) -> Any:
1344
+ AuthzPolicyHttpRuleToOperationHeaderSetHeaderValue.__key_warning(key)
1345
+ return super().get(key, default)
1346
+
1347
+ def __init__(__self__, *,
1348
+ contains: Optional[str] = None,
1349
+ exact: Optional[str] = None,
1350
+ ignore_case: Optional[bool] = None,
1351
+ prefix: Optional[str] = None,
1352
+ suffix: Optional[str] = None):
1353
+ """
1354
+ :param str contains: The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
1355
+ Examples:
1356
+ * abc matches the value xyz.abc.def
1357
+ :param str exact: The input string must match exactly the string specified here.
1358
+ Examples:
1359
+ * abc only matches the value abc.
1360
+ :param bool ignore_case: If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
1361
+ :param str prefix: The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
1362
+ Examples:
1363
+ * abc matches the value abc.xyz
1364
+ :param str suffix: The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
1365
+ Examples:
1366
+ * abc matches the value xyz.abc
1367
+ """
1368
+ if contains is not None:
1369
+ pulumi.set(__self__, "contains", contains)
1370
+ if exact is not None:
1371
+ pulumi.set(__self__, "exact", exact)
1372
+ if ignore_case is not None:
1373
+ pulumi.set(__self__, "ignore_case", ignore_case)
1374
+ if prefix is not None:
1375
+ pulumi.set(__self__, "prefix", prefix)
1376
+ if suffix is not None:
1377
+ pulumi.set(__self__, "suffix", suffix)
1378
+
1379
+ @property
1380
+ @pulumi.getter
1381
+ def contains(self) -> Optional[str]:
1382
+ """
1383
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
1384
+ Examples:
1385
+ * abc matches the value xyz.abc.def
1386
+ """
1387
+ return pulumi.get(self, "contains")
1388
+
1389
+ @property
1390
+ @pulumi.getter
1391
+ def exact(self) -> Optional[str]:
1392
+ """
1393
+ The input string must match exactly the string specified here.
1394
+ Examples:
1395
+ * abc only matches the value abc.
1396
+ """
1397
+ return pulumi.get(self, "exact")
1398
+
1399
+ @property
1400
+ @pulumi.getter(name="ignoreCase")
1401
+ def ignore_case(self) -> Optional[bool]:
1402
+ """
1403
+ If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
1404
+ """
1405
+ return pulumi.get(self, "ignore_case")
1406
+
1407
+ @property
1408
+ @pulumi.getter
1409
+ def prefix(self) -> Optional[str]:
1410
+ """
1411
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
1412
+ Examples:
1413
+ * abc matches the value abc.xyz
1414
+ """
1415
+ return pulumi.get(self, "prefix")
1416
+
1417
+ @property
1418
+ @pulumi.getter
1419
+ def suffix(self) -> Optional[str]:
1420
+ """
1421
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
1422
+ Examples:
1423
+ * abc matches the value xyz.abc
1424
+ """
1425
+ return pulumi.get(self, "suffix")
1426
+
1427
+
1428
+ @pulumi.output_type
1429
+ class AuthzPolicyHttpRuleToOperationHost(dict):
1430
+ @staticmethod
1431
+ def __key_warning(key: str):
1432
+ suggest = None
1433
+ if key == "ignoreCase":
1434
+ suggest = "ignore_case"
1435
+
1436
+ if suggest:
1437
+ pulumi.log.warn(f"Key '{key}' not found in AuthzPolicyHttpRuleToOperationHost. Access the value via the '{suggest}' property getter instead.")
1438
+
1439
+ def __getitem__(self, key: str) -> Any:
1440
+ AuthzPolicyHttpRuleToOperationHost.__key_warning(key)
1441
+ return super().__getitem__(key)
1442
+
1443
+ def get(self, key: str, default = None) -> Any:
1444
+ AuthzPolicyHttpRuleToOperationHost.__key_warning(key)
1445
+ return super().get(key, default)
1446
+
1447
+ def __init__(__self__, *,
1448
+ contains: Optional[str] = None,
1449
+ exact: Optional[str] = None,
1450
+ ignore_case: Optional[bool] = None,
1451
+ prefix: Optional[str] = None,
1452
+ suffix: Optional[str] = None):
1453
+ """
1454
+ :param str contains: The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
1455
+ Examples:
1456
+ * abc matches the value xyz.abc.def
1457
+ :param str exact: The input string must match exactly the string specified here.
1458
+ Examples:
1459
+ * abc only matches the value abc.
1460
+ :param bool ignore_case: If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
1461
+ :param str prefix: The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
1462
+ Examples:
1463
+ * abc matches the value abc.xyz
1464
+ :param str suffix: The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
1465
+ Examples:
1466
+ * abc matches the value xyz.abc
1467
+ """
1468
+ if contains is not None:
1469
+ pulumi.set(__self__, "contains", contains)
1470
+ if exact is not None:
1471
+ pulumi.set(__self__, "exact", exact)
1472
+ if ignore_case is not None:
1473
+ pulumi.set(__self__, "ignore_case", ignore_case)
1474
+ if prefix is not None:
1475
+ pulumi.set(__self__, "prefix", prefix)
1476
+ if suffix is not None:
1477
+ pulumi.set(__self__, "suffix", suffix)
1478
+
1479
+ @property
1480
+ @pulumi.getter
1481
+ def contains(self) -> Optional[str]:
1482
+ """
1483
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
1484
+ Examples:
1485
+ * abc matches the value xyz.abc.def
1486
+ """
1487
+ return pulumi.get(self, "contains")
1488
+
1489
+ @property
1490
+ @pulumi.getter
1491
+ def exact(self) -> Optional[str]:
1492
+ """
1493
+ The input string must match exactly the string specified here.
1494
+ Examples:
1495
+ * abc only matches the value abc.
1496
+ """
1497
+ return pulumi.get(self, "exact")
1498
+
1499
+ @property
1500
+ @pulumi.getter(name="ignoreCase")
1501
+ def ignore_case(self) -> Optional[bool]:
1502
+ """
1503
+ If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
1504
+ """
1505
+ return pulumi.get(self, "ignore_case")
1506
+
1507
+ @property
1508
+ @pulumi.getter
1509
+ def prefix(self) -> Optional[str]:
1510
+ """
1511
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
1512
+ Examples:
1513
+ * abc matches the value abc.xyz
1514
+ """
1515
+ return pulumi.get(self, "prefix")
1516
+
1517
+ @property
1518
+ @pulumi.getter
1519
+ def suffix(self) -> Optional[str]:
1520
+ """
1521
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
1522
+ Examples:
1523
+ * abc matches the value xyz.abc
1524
+ """
1525
+ return pulumi.get(self, "suffix")
1526
+
1527
+
1528
+ @pulumi.output_type
1529
+ class AuthzPolicyHttpRuleToOperationPath(dict):
1530
+ @staticmethod
1531
+ def __key_warning(key: str):
1532
+ suggest = None
1533
+ if key == "ignoreCase":
1534
+ suggest = "ignore_case"
1535
+
1536
+ if suggest:
1537
+ pulumi.log.warn(f"Key '{key}' not found in AuthzPolicyHttpRuleToOperationPath. Access the value via the '{suggest}' property getter instead.")
1538
+
1539
+ def __getitem__(self, key: str) -> Any:
1540
+ AuthzPolicyHttpRuleToOperationPath.__key_warning(key)
1541
+ return super().__getitem__(key)
1542
+
1543
+ def get(self, key: str, default = None) -> Any:
1544
+ AuthzPolicyHttpRuleToOperationPath.__key_warning(key)
1545
+ return super().get(key, default)
1546
+
1547
+ def __init__(__self__, *,
1548
+ contains: Optional[str] = None,
1549
+ exact: Optional[str] = None,
1550
+ ignore_case: Optional[bool] = None,
1551
+ prefix: Optional[str] = None,
1552
+ suffix: Optional[str] = None):
1553
+ """
1554
+ :param str contains: The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
1555
+ Examples:
1556
+ * abc matches the value xyz.abc.def
1557
+ :param str exact: The input string must match exactly the string specified here.
1558
+ Examples:
1559
+ * abc only matches the value abc.
1560
+ :param bool ignore_case: If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
1561
+ :param str prefix: The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
1562
+ Examples:
1563
+ * abc matches the value abc.xyz
1564
+ :param str suffix: The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
1565
+ Examples:
1566
+ * abc matches the value xyz.abc
1567
+ """
1568
+ if contains is not None:
1569
+ pulumi.set(__self__, "contains", contains)
1570
+ if exact is not None:
1571
+ pulumi.set(__self__, "exact", exact)
1572
+ if ignore_case is not None:
1573
+ pulumi.set(__self__, "ignore_case", ignore_case)
1574
+ if prefix is not None:
1575
+ pulumi.set(__self__, "prefix", prefix)
1576
+ if suffix is not None:
1577
+ pulumi.set(__self__, "suffix", suffix)
1578
+
1579
+ @property
1580
+ @pulumi.getter
1581
+ def contains(self) -> Optional[str]:
1582
+ """
1583
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
1584
+ Examples:
1585
+ * abc matches the value xyz.abc.def
1586
+ """
1587
+ return pulumi.get(self, "contains")
1588
+
1589
+ @property
1590
+ @pulumi.getter
1591
+ def exact(self) -> Optional[str]:
1592
+ """
1593
+ The input string must match exactly the string specified here.
1594
+ Examples:
1595
+ * abc only matches the value abc.
1596
+ """
1597
+ return pulumi.get(self, "exact")
1598
+
1599
+ @property
1600
+ @pulumi.getter(name="ignoreCase")
1601
+ def ignore_case(self) -> Optional[bool]:
1602
+ """
1603
+ If true, indicates the exact/prefix/suffix/contains matching should be case insensitive. For example, the matcher data will match both input string Data and data if set to true.
1604
+ """
1605
+ return pulumi.get(self, "ignore_case")
1606
+
1607
+ @property
1608
+ @pulumi.getter
1609
+ def prefix(self) -> Optional[str]:
1610
+ """
1611
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
1612
+ Examples:
1613
+ * abc matches the value abc.xyz
1614
+ """
1615
+ return pulumi.get(self, "prefix")
1616
+
1617
+ @property
1618
+ @pulumi.getter
1619
+ def suffix(self) -> Optional[str]:
1620
+ """
1621
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
1622
+ Examples:
1623
+ * abc matches the value xyz.abc
1624
+ """
1625
+ return pulumi.get(self, "suffix")
1626
+
1627
+
1628
+ @pulumi.output_type
1629
+ class AuthzPolicyTarget(dict):
1630
+ @staticmethod
1631
+ def __key_warning(key: str):
1632
+ suggest = None
1633
+ if key == "loadBalancingScheme":
1634
+ suggest = "load_balancing_scheme"
1635
+
1636
+ if suggest:
1637
+ pulumi.log.warn(f"Key '{key}' not found in AuthzPolicyTarget. Access the value via the '{suggest}' property getter instead.")
1638
+
1639
+ def __getitem__(self, key: str) -> Any:
1640
+ AuthzPolicyTarget.__key_warning(key)
1641
+ return super().__getitem__(key)
1642
+
1643
+ def get(self, key: str, default = None) -> Any:
1644
+ AuthzPolicyTarget.__key_warning(key)
1645
+ return super().get(key, default)
1646
+
1647
+ def __init__(__self__, *,
1648
+ load_balancing_scheme: str,
1649
+ resources: Optional[Sequence[str]] = None):
1650
+ """
1651
+ :param str load_balancing_scheme: All gateways and forwarding rules referenced by this policy and extensions must share the same load balancing scheme.
1652
+ For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).
1653
+ Possible values are: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`, `INTERNAL_SELF_MANAGED`.
1654
+ :param Sequence[str] resources: A list of references to the Forwarding Rules on which this policy will be applied.
1655
+
1656
+ - - -
1657
+ """
1658
+ pulumi.set(__self__, "load_balancing_scheme", load_balancing_scheme)
1659
+ if resources is not None:
1660
+ pulumi.set(__self__, "resources", resources)
1661
+
1662
+ @property
1663
+ @pulumi.getter(name="loadBalancingScheme")
1664
+ def load_balancing_scheme(self) -> str:
1665
+ """
1666
+ All gateways and forwarding rules referenced by this policy and extensions must share the same load balancing scheme.
1667
+ For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).
1668
+ Possible values are: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`, `INTERNAL_SELF_MANAGED`.
1669
+ """
1670
+ return pulumi.get(self, "load_balancing_scheme")
1671
+
1672
+ @property
1673
+ @pulumi.getter
1674
+ def resources(self) -> Optional[Sequence[str]]:
1675
+ """
1676
+ A list of references to the Forwarding Rules on which this policy will be applied.
1677
+
1678
+ - - -
1679
+ """
1680
+ return pulumi.get(self, "resources")
1681
+
1682
+
311
1683
  @pulumi.output_type
312
1684
  class ClientTlsPolicyClientCertificate(dict):
313
1685
  @staticmethod
@@ -556,6 +1928,27 @@ class ClientTlsPolicyServerValidationCaGrpcEndpoint(dict):
556
1928
  return pulumi.get(self, "target_uri")
557
1929
 
558
1930
 
1931
+ @pulumi.output_type
1932
+ class InterceptDeploymentGroupConnectedEndpointGroup(dict):
1933
+ def __init__(__self__, *,
1934
+ name: Optional[str] = None):
1935
+ """
1936
+ :param str name: (Output)
1937
+ Output only. A connected intercept endpoint group.
1938
+ """
1939
+ if name is not None:
1940
+ pulumi.set(__self__, "name", name)
1941
+
1942
+ @property
1943
+ @pulumi.getter
1944
+ def name(self) -> Optional[str]:
1945
+ """
1946
+ (Output)
1947
+ Output only. A connected intercept endpoint group.
1948
+ """
1949
+ return pulumi.get(self, "name")
1950
+
1951
+
559
1952
  @pulumi.output_type
560
1953
  class MirroringDeploymentGroupConnectedEndpointGroup(dict):
561
1954
  def __init__(__self__, *,