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
@@ -27,6 +27,52 @@ __all__ = [
27
27
  'AuthorizationPolicyRuleDestinationHttpHeaderMatchArgsDict',
28
28
  'AuthorizationPolicyRuleSourceArgs',
29
29
  'AuthorizationPolicyRuleSourceArgsDict',
30
+ 'AuthzPolicyCustomProviderArgs',
31
+ 'AuthzPolicyCustomProviderArgsDict',
32
+ 'AuthzPolicyCustomProviderAuthzExtensionArgs',
33
+ 'AuthzPolicyCustomProviderAuthzExtensionArgsDict',
34
+ 'AuthzPolicyCustomProviderCloudIapArgs',
35
+ 'AuthzPolicyCustomProviderCloudIapArgsDict',
36
+ 'AuthzPolicyHttpRuleArgs',
37
+ 'AuthzPolicyHttpRuleArgsDict',
38
+ 'AuthzPolicyHttpRuleFromArgs',
39
+ 'AuthzPolicyHttpRuleFromArgsDict',
40
+ 'AuthzPolicyHttpRuleFromNotSourceArgs',
41
+ 'AuthzPolicyHttpRuleFromNotSourceArgsDict',
42
+ 'AuthzPolicyHttpRuleFromNotSourcePrincipalArgs',
43
+ 'AuthzPolicyHttpRuleFromNotSourcePrincipalArgsDict',
44
+ 'AuthzPolicyHttpRuleFromNotSourceResourceArgs',
45
+ 'AuthzPolicyHttpRuleFromNotSourceResourceArgsDict',
46
+ 'AuthzPolicyHttpRuleFromNotSourceResourceIamServiceAccountArgs',
47
+ 'AuthzPolicyHttpRuleFromNotSourceResourceIamServiceAccountArgsDict',
48
+ 'AuthzPolicyHttpRuleFromNotSourceResourceTagValueIdSetArgs',
49
+ 'AuthzPolicyHttpRuleFromNotSourceResourceTagValueIdSetArgsDict',
50
+ 'AuthzPolicyHttpRuleFromSourceArgs',
51
+ 'AuthzPolicyHttpRuleFromSourceArgsDict',
52
+ 'AuthzPolicyHttpRuleFromSourcePrincipalArgs',
53
+ 'AuthzPolicyHttpRuleFromSourcePrincipalArgsDict',
54
+ 'AuthzPolicyHttpRuleFromSourceResourceArgs',
55
+ 'AuthzPolicyHttpRuleFromSourceResourceArgsDict',
56
+ 'AuthzPolicyHttpRuleFromSourceResourceIamServiceAccountArgs',
57
+ 'AuthzPolicyHttpRuleFromSourceResourceIamServiceAccountArgsDict',
58
+ 'AuthzPolicyHttpRuleFromSourceResourceTagValueIdSetArgs',
59
+ 'AuthzPolicyHttpRuleFromSourceResourceTagValueIdSetArgsDict',
60
+ 'AuthzPolicyHttpRuleToArgs',
61
+ 'AuthzPolicyHttpRuleToArgsDict',
62
+ 'AuthzPolicyHttpRuleToOperationArgs',
63
+ 'AuthzPolicyHttpRuleToOperationArgsDict',
64
+ 'AuthzPolicyHttpRuleToOperationHeaderSetArgs',
65
+ 'AuthzPolicyHttpRuleToOperationHeaderSetArgsDict',
66
+ 'AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgs',
67
+ 'AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgsDict',
68
+ 'AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgs',
69
+ 'AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgsDict',
70
+ 'AuthzPolicyHttpRuleToOperationHostArgs',
71
+ 'AuthzPolicyHttpRuleToOperationHostArgsDict',
72
+ 'AuthzPolicyHttpRuleToOperationPathArgs',
73
+ 'AuthzPolicyHttpRuleToOperationPathArgsDict',
74
+ 'AuthzPolicyTargetArgs',
75
+ 'AuthzPolicyTargetArgsDict',
30
76
  'ClientTlsPolicyClientCertificateArgs',
31
77
  'ClientTlsPolicyClientCertificateArgsDict',
32
78
  'ClientTlsPolicyClientCertificateCertificateProviderInstanceArgs',
@@ -39,6 +85,8 @@ __all__ = [
39
85
  'ClientTlsPolicyServerValidationCaCertificateProviderInstanceArgsDict',
40
86
  'ClientTlsPolicyServerValidationCaGrpcEndpointArgs',
41
87
  'ClientTlsPolicyServerValidationCaGrpcEndpointArgsDict',
88
+ 'InterceptDeploymentGroupConnectedEndpointGroupArgs',
89
+ 'InterceptDeploymentGroupConnectedEndpointGroupArgsDict',
42
90
  'MirroringDeploymentGroupConnectedEndpointGroupArgs',
43
91
  'MirroringDeploymentGroupConnectedEndpointGroupArgsDict',
44
92
  'MirroringEndpointGroupAssociationLocationsDetailArgs',
@@ -428,6 +476,1826 @@ class AuthorizationPolicyRuleSourceArgs:
428
476
  pulumi.set(self, "principals", value)
429
477
 
430
478
 
479
+ if not MYPY:
480
+ class AuthzPolicyCustomProviderArgsDict(TypedDict):
481
+ authz_extension: NotRequired[pulumi.Input['AuthzPolicyCustomProviderAuthzExtensionArgsDict']]
482
+ """
483
+ Delegate authorization decision to user authored Service Extension. Only one of cloudIap or authzExtension can be specified.
484
+ Structure is documented below.
485
+ """
486
+ cloud_iap: NotRequired[pulumi.Input['AuthzPolicyCustomProviderCloudIapArgsDict']]
487
+ """
488
+ 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.
489
+ Structure is documented below.
490
+ """
491
+ elif False:
492
+ AuthzPolicyCustomProviderArgsDict: TypeAlias = Mapping[str, Any]
493
+
494
+ @pulumi.input_type
495
+ class AuthzPolicyCustomProviderArgs:
496
+ def __init__(__self__, *,
497
+ authz_extension: Optional[pulumi.Input['AuthzPolicyCustomProviderAuthzExtensionArgs']] = None,
498
+ cloud_iap: Optional[pulumi.Input['AuthzPolicyCustomProviderCloudIapArgs']] = None):
499
+ """
500
+ :param pulumi.Input['AuthzPolicyCustomProviderAuthzExtensionArgs'] authz_extension: Delegate authorization decision to user authored Service Extension. Only one of cloudIap or authzExtension can be specified.
501
+ Structure is documented below.
502
+ :param pulumi.Input['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.
503
+ Structure is documented below.
504
+ """
505
+ if authz_extension is not None:
506
+ pulumi.set(__self__, "authz_extension", authz_extension)
507
+ if cloud_iap is not None:
508
+ pulumi.set(__self__, "cloud_iap", cloud_iap)
509
+
510
+ @property
511
+ @pulumi.getter(name="authzExtension")
512
+ def authz_extension(self) -> Optional[pulumi.Input['AuthzPolicyCustomProviderAuthzExtensionArgs']]:
513
+ """
514
+ Delegate authorization decision to user authored Service Extension. Only one of cloudIap or authzExtension can be specified.
515
+ Structure is documented below.
516
+ """
517
+ return pulumi.get(self, "authz_extension")
518
+
519
+ @authz_extension.setter
520
+ def authz_extension(self, value: Optional[pulumi.Input['AuthzPolicyCustomProviderAuthzExtensionArgs']]):
521
+ pulumi.set(self, "authz_extension", value)
522
+
523
+ @property
524
+ @pulumi.getter(name="cloudIap")
525
+ def cloud_iap(self) -> Optional[pulumi.Input['AuthzPolicyCustomProviderCloudIapArgs']]:
526
+ """
527
+ 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.
528
+ Structure is documented below.
529
+ """
530
+ return pulumi.get(self, "cloud_iap")
531
+
532
+ @cloud_iap.setter
533
+ def cloud_iap(self, value: Optional[pulumi.Input['AuthzPolicyCustomProviderCloudIapArgs']]):
534
+ pulumi.set(self, "cloud_iap", value)
535
+
536
+
537
+ if not MYPY:
538
+ class AuthzPolicyCustomProviderAuthzExtensionArgsDict(TypedDict):
539
+ resources: pulumi.Input[Sequence[pulumi.Input[str]]]
540
+ """
541
+ A list of references to authorization extensions that will be invoked for requests matching this policy. Limited to 1 custom provider.
542
+ """
543
+ elif False:
544
+ AuthzPolicyCustomProviderAuthzExtensionArgsDict: TypeAlias = Mapping[str, Any]
545
+
546
+ @pulumi.input_type
547
+ class AuthzPolicyCustomProviderAuthzExtensionArgs:
548
+ def __init__(__self__, *,
549
+ resources: pulumi.Input[Sequence[pulumi.Input[str]]]):
550
+ """
551
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] resources: A list of references to authorization extensions that will be invoked for requests matching this policy. Limited to 1 custom provider.
552
+ """
553
+ pulumi.set(__self__, "resources", resources)
554
+
555
+ @property
556
+ @pulumi.getter
557
+ def resources(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
558
+ """
559
+ A list of references to authorization extensions that will be invoked for requests matching this policy. Limited to 1 custom provider.
560
+ """
561
+ return pulumi.get(self, "resources")
562
+
563
+ @resources.setter
564
+ def resources(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]):
565
+ pulumi.set(self, "resources", value)
566
+
567
+
568
+ if not MYPY:
569
+ class AuthzPolicyCustomProviderCloudIapArgsDict(TypedDict):
570
+ enabled: pulumi.Input[bool]
571
+ """
572
+ Enable Cloud IAP at the AuthzPolicy level.
573
+ """
574
+ elif False:
575
+ AuthzPolicyCustomProviderCloudIapArgsDict: TypeAlias = Mapping[str, Any]
576
+
577
+ @pulumi.input_type
578
+ class AuthzPolicyCustomProviderCloudIapArgs:
579
+ def __init__(__self__, *,
580
+ enabled: pulumi.Input[bool]):
581
+ """
582
+ :param pulumi.Input[bool] enabled: Enable Cloud IAP at the AuthzPolicy level.
583
+ """
584
+ pulumi.set(__self__, "enabled", enabled)
585
+
586
+ @property
587
+ @pulumi.getter
588
+ def enabled(self) -> pulumi.Input[bool]:
589
+ """
590
+ Enable Cloud IAP at the AuthzPolicy level.
591
+ """
592
+ return pulumi.get(self, "enabled")
593
+
594
+ @enabled.setter
595
+ def enabled(self, value: pulumi.Input[bool]):
596
+ pulumi.set(self, "enabled", value)
597
+
598
+
599
+ if not MYPY:
600
+ class AuthzPolicyHttpRuleArgsDict(TypedDict):
601
+ from_: NotRequired[pulumi.Input['AuthzPolicyHttpRuleFromArgsDict']]
602
+ """
603
+ Describes properties of one or more sources of a request.
604
+ Structure is documented below.
605
+ """
606
+ to: NotRequired[pulumi.Input['AuthzPolicyHttpRuleToArgsDict']]
607
+ """
608
+ Describes properties of one or more targets of a request
609
+ Structure is documented below.
610
+ """
611
+ when: NotRequired[pulumi.Input[str]]
612
+ """
613
+ 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.
614
+ """
615
+ elif False:
616
+ AuthzPolicyHttpRuleArgsDict: TypeAlias = Mapping[str, Any]
617
+
618
+ @pulumi.input_type
619
+ class AuthzPolicyHttpRuleArgs:
620
+ def __init__(__self__, *,
621
+ from_: Optional[pulumi.Input['AuthzPolicyHttpRuleFromArgs']] = None,
622
+ to: Optional[pulumi.Input['AuthzPolicyHttpRuleToArgs']] = None,
623
+ when: Optional[pulumi.Input[str]] = None):
624
+ """
625
+ :param pulumi.Input['AuthzPolicyHttpRuleFromArgs'] from_: Describes properties of one or more sources of a request.
626
+ Structure is documented below.
627
+ :param pulumi.Input['AuthzPolicyHttpRuleToArgs'] to: Describes properties of one or more targets of a request
628
+ Structure is documented below.
629
+ :param pulumi.Input[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.
630
+ """
631
+ if from_ is not None:
632
+ pulumi.set(__self__, "from_", from_)
633
+ if to is not None:
634
+ pulumi.set(__self__, "to", to)
635
+ if when is not None:
636
+ pulumi.set(__self__, "when", when)
637
+
638
+ @property
639
+ @pulumi.getter(name="from")
640
+ def from_(self) -> Optional[pulumi.Input['AuthzPolicyHttpRuleFromArgs']]:
641
+ """
642
+ Describes properties of one or more sources of a request.
643
+ Structure is documented below.
644
+ """
645
+ return pulumi.get(self, "from_")
646
+
647
+ @from_.setter
648
+ def from_(self, value: Optional[pulumi.Input['AuthzPolicyHttpRuleFromArgs']]):
649
+ pulumi.set(self, "from_", value)
650
+
651
+ @property
652
+ @pulumi.getter
653
+ def to(self) -> Optional[pulumi.Input['AuthzPolicyHttpRuleToArgs']]:
654
+ """
655
+ Describes properties of one or more targets of a request
656
+ Structure is documented below.
657
+ """
658
+ return pulumi.get(self, "to")
659
+
660
+ @to.setter
661
+ def to(self, value: Optional[pulumi.Input['AuthzPolicyHttpRuleToArgs']]):
662
+ pulumi.set(self, "to", value)
663
+
664
+ @property
665
+ @pulumi.getter
666
+ def when(self) -> Optional[pulumi.Input[str]]:
667
+ """
668
+ 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.
669
+ """
670
+ return pulumi.get(self, "when")
671
+
672
+ @when.setter
673
+ def when(self, value: Optional[pulumi.Input[str]]):
674
+ pulumi.set(self, "when", value)
675
+
676
+
677
+ if not MYPY:
678
+ class AuthzPolicyHttpRuleFromArgsDict(TypedDict):
679
+ not_sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromNotSourceArgsDict']]]]
680
+ """
681
+ 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.
682
+ Structure is documented below.
683
+ """
684
+ sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromSourceArgsDict']]]]
685
+ """
686
+ 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.
687
+ Structure is documented below.
688
+ """
689
+ elif False:
690
+ AuthzPolicyHttpRuleFromArgsDict: TypeAlias = Mapping[str, Any]
691
+
692
+ @pulumi.input_type
693
+ class AuthzPolicyHttpRuleFromArgs:
694
+ def __init__(__self__, *,
695
+ not_sources: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromNotSourceArgs']]]] = None,
696
+ sources: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromSourceArgs']]]] = None):
697
+ """
698
+ :param pulumi.Input[Sequence[pulumi.Input['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.
699
+ Structure is documented below.
700
+ :param pulumi.Input[Sequence[pulumi.Input['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.
701
+ Structure is documented below.
702
+ """
703
+ if not_sources is not None:
704
+ pulumi.set(__self__, "not_sources", not_sources)
705
+ if sources is not None:
706
+ pulumi.set(__self__, "sources", sources)
707
+
708
+ @property
709
+ @pulumi.getter(name="notSources")
710
+ def not_sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromNotSourceArgs']]]]:
711
+ """
712
+ 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.
713
+ Structure is documented below.
714
+ """
715
+ return pulumi.get(self, "not_sources")
716
+
717
+ @not_sources.setter
718
+ def not_sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromNotSourceArgs']]]]):
719
+ pulumi.set(self, "not_sources", value)
720
+
721
+ @property
722
+ @pulumi.getter
723
+ def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromSourceArgs']]]]:
724
+ """
725
+ 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.
726
+ Structure is documented below.
727
+ """
728
+ return pulumi.get(self, "sources")
729
+
730
+ @sources.setter
731
+ def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromSourceArgs']]]]):
732
+ pulumi.set(self, "sources", value)
733
+
734
+
735
+ if not MYPY:
736
+ class AuthzPolicyHttpRuleFromNotSourceArgsDict(TypedDict):
737
+ principals: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromNotSourcePrincipalArgsDict']]]]
738
+ """
739
+ 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.
740
+ Limited to 5 principals.
741
+ Structure is documented below.
742
+ """
743
+ resources: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromNotSourceResourceArgsDict']]]]
744
+ """
745
+ A list of resources to match against the resource of the source VM of a request.
746
+ Limited to 5 resources.
747
+ Structure is documented below.
748
+ """
749
+ elif False:
750
+ AuthzPolicyHttpRuleFromNotSourceArgsDict: TypeAlias = Mapping[str, Any]
751
+
752
+ @pulumi.input_type
753
+ class AuthzPolicyHttpRuleFromNotSourceArgs:
754
+ def __init__(__self__, *,
755
+ principals: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromNotSourcePrincipalArgs']]]] = None,
756
+ resources: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromNotSourceResourceArgs']]]] = None):
757
+ """
758
+ :param pulumi.Input[Sequence[pulumi.Input['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.
759
+ Limited to 5 principals.
760
+ Structure is documented below.
761
+ :param pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromNotSourceResourceArgs']]] resources: A list of resources to match against the resource of the source VM of a request.
762
+ Limited to 5 resources.
763
+ Structure is documented below.
764
+ """
765
+ if principals is not None:
766
+ pulumi.set(__self__, "principals", principals)
767
+ if resources is not None:
768
+ pulumi.set(__self__, "resources", resources)
769
+
770
+ @property
771
+ @pulumi.getter
772
+ def principals(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromNotSourcePrincipalArgs']]]]:
773
+ """
774
+ 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.
775
+ Limited to 5 principals.
776
+ Structure is documented below.
777
+ """
778
+ return pulumi.get(self, "principals")
779
+
780
+ @principals.setter
781
+ def principals(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromNotSourcePrincipalArgs']]]]):
782
+ pulumi.set(self, "principals", value)
783
+
784
+ @property
785
+ @pulumi.getter
786
+ def resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromNotSourceResourceArgs']]]]:
787
+ """
788
+ A list of resources to match against the resource of the source VM of a request.
789
+ Limited to 5 resources.
790
+ Structure is documented below.
791
+ """
792
+ return pulumi.get(self, "resources")
793
+
794
+ @resources.setter
795
+ def resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromNotSourceResourceArgs']]]]):
796
+ pulumi.set(self, "resources", value)
797
+
798
+
799
+ if not MYPY:
800
+ class AuthzPolicyHttpRuleFromNotSourcePrincipalArgsDict(TypedDict):
801
+ contains: NotRequired[pulumi.Input[str]]
802
+ """
803
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
804
+ Examples:
805
+ * abc matches the value xyz.abc.def
806
+ """
807
+ exact: NotRequired[pulumi.Input[str]]
808
+ """
809
+ The input string must match exactly the string specified here.
810
+ Examples:
811
+ * abc only matches the value abc.
812
+ """
813
+ ignore_case: NotRequired[pulumi.Input[bool]]
814
+ """
815
+ 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.
816
+ """
817
+ prefix: NotRequired[pulumi.Input[str]]
818
+ """
819
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
820
+ Examples:
821
+ * abc matches the value abc.xyz
822
+ """
823
+ suffix: NotRequired[pulumi.Input[str]]
824
+ """
825
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
826
+ Examples:
827
+ * abc matches the value xyz.abc
828
+ """
829
+ elif False:
830
+ AuthzPolicyHttpRuleFromNotSourcePrincipalArgsDict: TypeAlias = Mapping[str, Any]
831
+
832
+ @pulumi.input_type
833
+ class AuthzPolicyHttpRuleFromNotSourcePrincipalArgs:
834
+ def __init__(__self__, *,
835
+ contains: Optional[pulumi.Input[str]] = None,
836
+ exact: Optional[pulumi.Input[str]] = None,
837
+ ignore_case: Optional[pulumi.Input[bool]] = None,
838
+ prefix: Optional[pulumi.Input[str]] = None,
839
+ suffix: Optional[pulumi.Input[str]] = None):
840
+ """
841
+ :param pulumi.Input[str] contains: The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
842
+ Examples:
843
+ * abc matches the value xyz.abc.def
844
+ :param pulumi.Input[str] exact: The input string must match exactly the string specified here.
845
+ Examples:
846
+ * abc only matches the value abc.
847
+ :param pulumi.Input[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.
848
+ :param pulumi.Input[str] prefix: The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
849
+ Examples:
850
+ * abc matches the value abc.xyz
851
+ :param pulumi.Input[str] suffix: The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
852
+ Examples:
853
+ * abc matches the value xyz.abc
854
+ """
855
+ if contains is not None:
856
+ pulumi.set(__self__, "contains", contains)
857
+ if exact is not None:
858
+ pulumi.set(__self__, "exact", exact)
859
+ if ignore_case is not None:
860
+ pulumi.set(__self__, "ignore_case", ignore_case)
861
+ if prefix is not None:
862
+ pulumi.set(__self__, "prefix", prefix)
863
+ if suffix is not None:
864
+ pulumi.set(__self__, "suffix", suffix)
865
+
866
+ @property
867
+ @pulumi.getter
868
+ def contains(self) -> Optional[pulumi.Input[str]]:
869
+ """
870
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
871
+ Examples:
872
+ * abc matches the value xyz.abc.def
873
+ """
874
+ return pulumi.get(self, "contains")
875
+
876
+ @contains.setter
877
+ def contains(self, value: Optional[pulumi.Input[str]]):
878
+ pulumi.set(self, "contains", value)
879
+
880
+ @property
881
+ @pulumi.getter
882
+ def exact(self) -> Optional[pulumi.Input[str]]:
883
+ """
884
+ The input string must match exactly the string specified here.
885
+ Examples:
886
+ * abc only matches the value abc.
887
+ """
888
+ return pulumi.get(self, "exact")
889
+
890
+ @exact.setter
891
+ def exact(self, value: Optional[pulumi.Input[str]]):
892
+ pulumi.set(self, "exact", value)
893
+
894
+ @property
895
+ @pulumi.getter(name="ignoreCase")
896
+ def ignore_case(self) -> Optional[pulumi.Input[bool]]:
897
+ """
898
+ 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.
899
+ """
900
+ return pulumi.get(self, "ignore_case")
901
+
902
+ @ignore_case.setter
903
+ def ignore_case(self, value: Optional[pulumi.Input[bool]]):
904
+ pulumi.set(self, "ignore_case", value)
905
+
906
+ @property
907
+ @pulumi.getter
908
+ def prefix(self) -> Optional[pulumi.Input[str]]:
909
+ """
910
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
911
+ Examples:
912
+ * abc matches the value abc.xyz
913
+ """
914
+ return pulumi.get(self, "prefix")
915
+
916
+ @prefix.setter
917
+ def prefix(self, value: Optional[pulumi.Input[str]]):
918
+ pulumi.set(self, "prefix", value)
919
+
920
+ @property
921
+ @pulumi.getter
922
+ def suffix(self) -> Optional[pulumi.Input[str]]:
923
+ """
924
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
925
+ Examples:
926
+ * abc matches the value xyz.abc
927
+ """
928
+ return pulumi.get(self, "suffix")
929
+
930
+ @suffix.setter
931
+ def suffix(self, value: Optional[pulumi.Input[str]]):
932
+ pulumi.set(self, "suffix", value)
933
+
934
+
935
+ if not MYPY:
936
+ class AuthzPolicyHttpRuleFromNotSourceResourceArgsDict(TypedDict):
937
+ iam_service_account: NotRequired[pulumi.Input['AuthzPolicyHttpRuleFromNotSourceResourceIamServiceAccountArgsDict']]
938
+ """
939
+ An IAM service account to match against the source service account of the VM sending the request.
940
+ Structure is documented below.
941
+ """
942
+ tag_value_id_set: NotRequired[pulumi.Input['AuthzPolicyHttpRuleFromNotSourceResourceTagValueIdSetArgsDict']]
943
+ """
944
+ A list of resource tag value permanent IDs to match against the resource manager tags value associated with the source VM of a request.
945
+ Structure is documented below.
946
+ """
947
+ elif False:
948
+ AuthzPolicyHttpRuleFromNotSourceResourceArgsDict: TypeAlias = Mapping[str, Any]
949
+
950
+ @pulumi.input_type
951
+ class AuthzPolicyHttpRuleFromNotSourceResourceArgs:
952
+ def __init__(__self__, *,
953
+ iam_service_account: Optional[pulumi.Input['AuthzPolicyHttpRuleFromNotSourceResourceIamServiceAccountArgs']] = None,
954
+ tag_value_id_set: Optional[pulumi.Input['AuthzPolicyHttpRuleFromNotSourceResourceTagValueIdSetArgs']] = None):
955
+ """
956
+ :param pulumi.Input['AuthzPolicyHttpRuleFromNotSourceResourceIamServiceAccountArgs'] iam_service_account: An IAM service account to match against the source service account of the VM sending the request.
957
+ Structure is documented below.
958
+ :param pulumi.Input['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.
959
+ Structure is documented below.
960
+ """
961
+ if iam_service_account is not None:
962
+ pulumi.set(__self__, "iam_service_account", iam_service_account)
963
+ if tag_value_id_set is not None:
964
+ pulumi.set(__self__, "tag_value_id_set", tag_value_id_set)
965
+
966
+ @property
967
+ @pulumi.getter(name="iamServiceAccount")
968
+ def iam_service_account(self) -> Optional[pulumi.Input['AuthzPolicyHttpRuleFromNotSourceResourceIamServiceAccountArgs']]:
969
+ """
970
+ An IAM service account to match against the source service account of the VM sending the request.
971
+ Structure is documented below.
972
+ """
973
+ return pulumi.get(self, "iam_service_account")
974
+
975
+ @iam_service_account.setter
976
+ def iam_service_account(self, value: Optional[pulumi.Input['AuthzPolicyHttpRuleFromNotSourceResourceIamServiceAccountArgs']]):
977
+ pulumi.set(self, "iam_service_account", value)
978
+
979
+ @property
980
+ @pulumi.getter(name="tagValueIdSet")
981
+ def tag_value_id_set(self) -> Optional[pulumi.Input['AuthzPolicyHttpRuleFromNotSourceResourceTagValueIdSetArgs']]:
982
+ """
983
+ A list of resource tag value permanent IDs to match against the resource manager tags value associated with the source VM of a request.
984
+ Structure is documented below.
985
+ """
986
+ return pulumi.get(self, "tag_value_id_set")
987
+
988
+ @tag_value_id_set.setter
989
+ def tag_value_id_set(self, value: Optional[pulumi.Input['AuthzPolicyHttpRuleFromNotSourceResourceTagValueIdSetArgs']]):
990
+ pulumi.set(self, "tag_value_id_set", value)
991
+
992
+
993
+ if not MYPY:
994
+ class AuthzPolicyHttpRuleFromNotSourceResourceIamServiceAccountArgsDict(TypedDict):
995
+ contains: NotRequired[pulumi.Input[str]]
996
+ """
997
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
998
+ Examples:
999
+ * abc matches the value xyz.abc.def
1000
+ """
1001
+ exact: NotRequired[pulumi.Input[str]]
1002
+ """
1003
+ The input string must match exactly the string specified here.
1004
+ Examples:
1005
+ * abc only matches the value abc.
1006
+ """
1007
+ ignore_case: NotRequired[pulumi.Input[bool]]
1008
+ """
1009
+ 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.
1010
+ """
1011
+ prefix: NotRequired[pulumi.Input[str]]
1012
+ """
1013
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
1014
+ Examples:
1015
+ * abc matches the value abc.xyz
1016
+ """
1017
+ suffix: NotRequired[pulumi.Input[str]]
1018
+ """
1019
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
1020
+ Examples:
1021
+ * abc matches the value xyz.abc
1022
+ """
1023
+ elif False:
1024
+ AuthzPolicyHttpRuleFromNotSourceResourceIamServiceAccountArgsDict: TypeAlias = Mapping[str, Any]
1025
+
1026
+ @pulumi.input_type
1027
+ class AuthzPolicyHttpRuleFromNotSourceResourceIamServiceAccountArgs:
1028
+ def __init__(__self__, *,
1029
+ contains: Optional[pulumi.Input[str]] = None,
1030
+ exact: Optional[pulumi.Input[str]] = None,
1031
+ ignore_case: Optional[pulumi.Input[bool]] = None,
1032
+ prefix: Optional[pulumi.Input[str]] = None,
1033
+ suffix: Optional[pulumi.Input[str]] = None):
1034
+ """
1035
+ :param pulumi.Input[str] contains: The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
1036
+ Examples:
1037
+ * abc matches the value xyz.abc.def
1038
+ :param pulumi.Input[str] exact: The input string must match exactly the string specified here.
1039
+ Examples:
1040
+ * abc only matches the value abc.
1041
+ :param pulumi.Input[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.
1042
+ :param pulumi.Input[str] prefix: The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
1043
+ Examples:
1044
+ * abc matches the value abc.xyz
1045
+ :param pulumi.Input[str] suffix: The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
1046
+ Examples:
1047
+ * abc matches the value xyz.abc
1048
+ """
1049
+ if contains is not None:
1050
+ pulumi.set(__self__, "contains", contains)
1051
+ if exact is not None:
1052
+ pulumi.set(__self__, "exact", exact)
1053
+ if ignore_case is not None:
1054
+ pulumi.set(__self__, "ignore_case", ignore_case)
1055
+ if prefix is not None:
1056
+ pulumi.set(__self__, "prefix", prefix)
1057
+ if suffix is not None:
1058
+ pulumi.set(__self__, "suffix", suffix)
1059
+
1060
+ @property
1061
+ @pulumi.getter
1062
+ def contains(self) -> Optional[pulumi.Input[str]]:
1063
+ """
1064
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
1065
+ Examples:
1066
+ * abc matches the value xyz.abc.def
1067
+ """
1068
+ return pulumi.get(self, "contains")
1069
+
1070
+ @contains.setter
1071
+ def contains(self, value: Optional[pulumi.Input[str]]):
1072
+ pulumi.set(self, "contains", value)
1073
+
1074
+ @property
1075
+ @pulumi.getter
1076
+ def exact(self) -> Optional[pulumi.Input[str]]:
1077
+ """
1078
+ The input string must match exactly the string specified here.
1079
+ Examples:
1080
+ * abc only matches the value abc.
1081
+ """
1082
+ return pulumi.get(self, "exact")
1083
+
1084
+ @exact.setter
1085
+ def exact(self, value: Optional[pulumi.Input[str]]):
1086
+ pulumi.set(self, "exact", value)
1087
+
1088
+ @property
1089
+ @pulumi.getter(name="ignoreCase")
1090
+ def ignore_case(self) -> Optional[pulumi.Input[bool]]:
1091
+ """
1092
+ 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.
1093
+ """
1094
+ return pulumi.get(self, "ignore_case")
1095
+
1096
+ @ignore_case.setter
1097
+ def ignore_case(self, value: Optional[pulumi.Input[bool]]):
1098
+ pulumi.set(self, "ignore_case", value)
1099
+
1100
+ @property
1101
+ @pulumi.getter
1102
+ def prefix(self) -> Optional[pulumi.Input[str]]:
1103
+ """
1104
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
1105
+ Examples:
1106
+ * abc matches the value abc.xyz
1107
+ """
1108
+ return pulumi.get(self, "prefix")
1109
+
1110
+ @prefix.setter
1111
+ def prefix(self, value: Optional[pulumi.Input[str]]):
1112
+ pulumi.set(self, "prefix", value)
1113
+
1114
+ @property
1115
+ @pulumi.getter
1116
+ def suffix(self) -> Optional[pulumi.Input[str]]:
1117
+ """
1118
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
1119
+ Examples:
1120
+ * abc matches the value xyz.abc
1121
+ """
1122
+ return pulumi.get(self, "suffix")
1123
+
1124
+ @suffix.setter
1125
+ def suffix(self, value: Optional[pulumi.Input[str]]):
1126
+ pulumi.set(self, "suffix", value)
1127
+
1128
+
1129
+ if not MYPY:
1130
+ class AuthzPolicyHttpRuleFromNotSourceResourceTagValueIdSetArgsDict(TypedDict):
1131
+ ids: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
1132
+ """
1133
+ 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.
1134
+ Limited to 5 matches.
1135
+ """
1136
+ elif False:
1137
+ AuthzPolicyHttpRuleFromNotSourceResourceTagValueIdSetArgsDict: TypeAlias = Mapping[str, Any]
1138
+
1139
+ @pulumi.input_type
1140
+ class AuthzPolicyHttpRuleFromNotSourceResourceTagValueIdSetArgs:
1141
+ def __init__(__self__, *,
1142
+ ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
1143
+ """
1144
+ :param pulumi.Input[Sequence[pulumi.Input[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.
1145
+ Limited to 5 matches.
1146
+ """
1147
+ if ids is not None:
1148
+ pulumi.set(__self__, "ids", ids)
1149
+
1150
+ @property
1151
+ @pulumi.getter
1152
+ def ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1153
+ """
1154
+ 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.
1155
+ Limited to 5 matches.
1156
+ """
1157
+ return pulumi.get(self, "ids")
1158
+
1159
+ @ids.setter
1160
+ def ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1161
+ pulumi.set(self, "ids", value)
1162
+
1163
+
1164
+ if not MYPY:
1165
+ class AuthzPolicyHttpRuleFromSourceArgsDict(TypedDict):
1166
+ principals: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromSourcePrincipalArgsDict']]]]
1167
+ """
1168
+ 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.
1169
+ Limited to 5 principals.
1170
+ Structure is documented below.
1171
+ """
1172
+ resources: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromSourceResourceArgsDict']]]]
1173
+ """
1174
+ A list of resources to match against the resource of the source VM of a request.
1175
+ Limited to 5 resources.
1176
+ Structure is documented below.
1177
+ """
1178
+ elif False:
1179
+ AuthzPolicyHttpRuleFromSourceArgsDict: TypeAlias = Mapping[str, Any]
1180
+
1181
+ @pulumi.input_type
1182
+ class AuthzPolicyHttpRuleFromSourceArgs:
1183
+ def __init__(__self__, *,
1184
+ principals: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromSourcePrincipalArgs']]]] = None,
1185
+ resources: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromSourceResourceArgs']]]] = None):
1186
+ """
1187
+ :param pulumi.Input[Sequence[pulumi.Input['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.
1188
+ Limited to 5 principals.
1189
+ Structure is documented below.
1190
+ :param pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromSourceResourceArgs']]] resources: A list of resources to match against the resource of the source VM of a request.
1191
+ Limited to 5 resources.
1192
+ Structure is documented below.
1193
+ """
1194
+ if principals is not None:
1195
+ pulumi.set(__self__, "principals", principals)
1196
+ if resources is not None:
1197
+ pulumi.set(__self__, "resources", resources)
1198
+
1199
+ @property
1200
+ @pulumi.getter
1201
+ def principals(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromSourcePrincipalArgs']]]]:
1202
+ """
1203
+ 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.
1204
+ Limited to 5 principals.
1205
+ Structure is documented below.
1206
+ """
1207
+ return pulumi.get(self, "principals")
1208
+
1209
+ @principals.setter
1210
+ def principals(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromSourcePrincipalArgs']]]]):
1211
+ pulumi.set(self, "principals", value)
1212
+
1213
+ @property
1214
+ @pulumi.getter
1215
+ def resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromSourceResourceArgs']]]]:
1216
+ """
1217
+ A list of resources to match against the resource of the source VM of a request.
1218
+ Limited to 5 resources.
1219
+ Structure is documented below.
1220
+ """
1221
+ return pulumi.get(self, "resources")
1222
+
1223
+ @resources.setter
1224
+ def resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleFromSourceResourceArgs']]]]):
1225
+ pulumi.set(self, "resources", value)
1226
+
1227
+
1228
+ if not MYPY:
1229
+ class AuthzPolicyHttpRuleFromSourcePrincipalArgsDict(TypedDict):
1230
+ contains: NotRequired[pulumi.Input[str]]
1231
+ """
1232
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
1233
+ Examples:
1234
+ * abc matches the value xyz.abc.def
1235
+ """
1236
+ exact: NotRequired[pulumi.Input[str]]
1237
+ """
1238
+ The input string must match exactly the string specified here.
1239
+ Examples:
1240
+ * abc only matches the value abc.
1241
+ """
1242
+ ignore_case: NotRequired[pulumi.Input[bool]]
1243
+ """
1244
+ 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.
1245
+ """
1246
+ prefix: NotRequired[pulumi.Input[str]]
1247
+ """
1248
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
1249
+ Examples:
1250
+ * abc matches the value abc.xyz
1251
+ """
1252
+ suffix: NotRequired[pulumi.Input[str]]
1253
+ """
1254
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
1255
+ Examples:
1256
+ * abc matches the value xyz.abc
1257
+ """
1258
+ elif False:
1259
+ AuthzPolicyHttpRuleFromSourcePrincipalArgsDict: TypeAlias = Mapping[str, Any]
1260
+
1261
+ @pulumi.input_type
1262
+ class AuthzPolicyHttpRuleFromSourcePrincipalArgs:
1263
+ def __init__(__self__, *,
1264
+ contains: Optional[pulumi.Input[str]] = None,
1265
+ exact: Optional[pulumi.Input[str]] = None,
1266
+ ignore_case: Optional[pulumi.Input[bool]] = None,
1267
+ prefix: Optional[pulumi.Input[str]] = None,
1268
+ suffix: Optional[pulumi.Input[str]] = None):
1269
+ """
1270
+ :param pulumi.Input[str] contains: The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
1271
+ Examples:
1272
+ * abc matches the value xyz.abc.def
1273
+ :param pulumi.Input[str] exact: The input string must match exactly the string specified here.
1274
+ Examples:
1275
+ * abc only matches the value abc.
1276
+ :param pulumi.Input[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.
1277
+ :param pulumi.Input[str] prefix: The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
1278
+ Examples:
1279
+ * abc matches the value abc.xyz
1280
+ :param pulumi.Input[str] suffix: The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
1281
+ Examples:
1282
+ * abc matches the value xyz.abc
1283
+ """
1284
+ if contains is not None:
1285
+ pulumi.set(__self__, "contains", contains)
1286
+ if exact is not None:
1287
+ pulumi.set(__self__, "exact", exact)
1288
+ if ignore_case is not None:
1289
+ pulumi.set(__self__, "ignore_case", ignore_case)
1290
+ if prefix is not None:
1291
+ pulumi.set(__self__, "prefix", prefix)
1292
+ if suffix is not None:
1293
+ pulumi.set(__self__, "suffix", suffix)
1294
+
1295
+ @property
1296
+ @pulumi.getter
1297
+ def contains(self) -> Optional[pulumi.Input[str]]:
1298
+ """
1299
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
1300
+ Examples:
1301
+ * abc matches the value xyz.abc.def
1302
+ """
1303
+ return pulumi.get(self, "contains")
1304
+
1305
+ @contains.setter
1306
+ def contains(self, value: Optional[pulumi.Input[str]]):
1307
+ pulumi.set(self, "contains", value)
1308
+
1309
+ @property
1310
+ @pulumi.getter
1311
+ def exact(self) -> Optional[pulumi.Input[str]]:
1312
+ """
1313
+ The input string must match exactly the string specified here.
1314
+ Examples:
1315
+ * abc only matches the value abc.
1316
+ """
1317
+ return pulumi.get(self, "exact")
1318
+
1319
+ @exact.setter
1320
+ def exact(self, value: Optional[pulumi.Input[str]]):
1321
+ pulumi.set(self, "exact", value)
1322
+
1323
+ @property
1324
+ @pulumi.getter(name="ignoreCase")
1325
+ def ignore_case(self) -> Optional[pulumi.Input[bool]]:
1326
+ """
1327
+ 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.
1328
+ """
1329
+ return pulumi.get(self, "ignore_case")
1330
+
1331
+ @ignore_case.setter
1332
+ def ignore_case(self, value: Optional[pulumi.Input[bool]]):
1333
+ pulumi.set(self, "ignore_case", value)
1334
+
1335
+ @property
1336
+ @pulumi.getter
1337
+ def prefix(self) -> Optional[pulumi.Input[str]]:
1338
+ """
1339
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
1340
+ Examples:
1341
+ * abc matches the value abc.xyz
1342
+ """
1343
+ return pulumi.get(self, "prefix")
1344
+
1345
+ @prefix.setter
1346
+ def prefix(self, value: Optional[pulumi.Input[str]]):
1347
+ pulumi.set(self, "prefix", value)
1348
+
1349
+ @property
1350
+ @pulumi.getter
1351
+ def suffix(self) -> Optional[pulumi.Input[str]]:
1352
+ """
1353
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
1354
+ Examples:
1355
+ * abc matches the value xyz.abc
1356
+ """
1357
+ return pulumi.get(self, "suffix")
1358
+
1359
+ @suffix.setter
1360
+ def suffix(self, value: Optional[pulumi.Input[str]]):
1361
+ pulumi.set(self, "suffix", value)
1362
+
1363
+
1364
+ if not MYPY:
1365
+ class AuthzPolicyHttpRuleFromSourceResourceArgsDict(TypedDict):
1366
+ iam_service_account: NotRequired[pulumi.Input['AuthzPolicyHttpRuleFromSourceResourceIamServiceAccountArgsDict']]
1367
+ """
1368
+ An IAM service account to match against the source service account of the VM sending the request.
1369
+ Structure is documented below.
1370
+ """
1371
+ tag_value_id_set: NotRequired[pulumi.Input['AuthzPolicyHttpRuleFromSourceResourceTagValueIdSetArgsDict']]
1372
+ """
1373
+ A list of resource tag value permanent IDs to match against the resource manager tags value associated with the source VM of a request.
1374
+ Structure is documented below.
1375
+ """
1376
+ elif False:
1377
+ AuthzPolicyHttpRuleFromSourceResourceArgsDict: TypeAlias = Mapping[str, Any]
1378
+
1379
+ @pulumi.input_type
1380
+ class AuthzPolicyHttpRuleFromSourceResourceArgs:
1381
+ def __init__(__self__, *,
1382
+ iam_service_account: Optional[pulumi.Input['AuthzPolicyHttpRuleFromSourceResourceIamServiceAccountArgs']] = None,
1383
+ tag_value_id_set: Optional[pulumi.Input['AuthzPolicyHttpRuleFromSourceResourceTagValueIdSetArgs']] = None):
1384
+ """
1385
+ :param pulumi.Input['AuthzPolicyHttpRuleFromSourceResourceIamServiceAccountArgs'] iam_service_account: An IAM service account to match against the source service account of the VM sending the request.
1386
+ Structure is documented below.
1387
+ :param pulumi.Input['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.
1388
+ Structure is documented below.
1389
+ """
1390
+ if iam_service_account is not None:
1391
+ pulumi.set(__self__, "iam_service_account", iam_service_account)
1392
+ if tag_value_id_set is not None:
1393
+ pulumi.set(__self__, "tag_value_id_set", tag_value_id_set)
1394
+
1395
+ @property
1396
+ @pulumi.getter(name="iamServiceAccount")
1397
+ def iam_service_account(self) -> Optional[pulumi.Input['AuthzPolicyHttpRuleFromSourceResourceIamServiceAccountArgs']]:
1398
+ """
1399
+ An IAM service account to match against the source service account of the VM sending the request.
1400
+ Structure is documented below.
1401
+ """
1402
+ return pulumi.get(self, "iam_service_account")
1403
+
1404
+ @iam_service_account.setter
1405
+ def iam_service_account(self, value: Optional[pulumi.Input['AuthzPolicyHttpRuleFromSourceResourceIamServiceAccountArgs']]):
1406
+ pulumi.set(self, "iam_service_account", value)
1407
+
1408
+ @property
1409
+ @pulumi.getter(name="tagValueIdSet")
1410
+ def tag_value_id_set(self) -> Optional[pulumi.Input['AuthzPolicyHttpRuleFromSourceResourceTagValueIdSetArgs']]:
1411
+ """
1412
+ A list of resource tag value permanent IDs to match against the resource manager tags value associated with the source VM of a request.
1413
+ Structure is documented below.
1414
+ """
1415
+ return pulumi.get(self, "tag_value_id_set")
1416
+
1417
+ @tag_value_id_set.setter
1418
+ def tag_value_id_set(self, value: Optional[pulumi.Input['AuthzPolicyHttpRuleFromSourceResourceTagValueIdSetArgs']]):
1419
+ pulumi.set(self, "tag_value_id_set", value)
1420
+
1421
+
1422
+ if not MYPY:
1423
+ class AuthzPolicyHttpRuleFromSourceResourceIamServiceAccountArgsDict(TypedDict):
1424
+ contains: NotRequired[pulumi.Input[str]]
1425
+ """
1426
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
1427
+ Examples:
1428
+ * abc matches the value xyz.abc.def
1429
+ """
1430
+ exact: NotRequired[pulumi.Input[str]]
1431
+ """
1432
+ The input string must match exactly the string specified here.
1433
+ Examples:
1434
+ * abc only matches the value abc.
1435
+ """
1436
+ ignore_case: NotRequired[pulumi.Input[bool]]
1437
+ """
1438
+ 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.
1439
+ """
1440
+ prefix: NotRequired[pulumi.Input[str]]
1441
+ """
1442
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
1443
+ Examples:
1444
+ * abc matches the value abc.xyz
1445
+ """
1446
+ suffix: NotRequired[pulumi.Input[str]]
1447
+ """
1448
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
1449
+ Examples:
1450
+ * abc matches the value xyz.abc
1451
+ """
1452
+ elif False:
1453
+ AuthzPolicyHttpRuleFromSourceResourceIamServiceAccountArgsDict: TypeAlias = Mapping[str, Any]
1454
+
1455
+ @pulumi.input_type
1456
+ class AuthzPolicyHttpRuleFromSourceResourceIamServiceAccountArgs:
1457
+ def __init__(__self__, *,
1458
+ contains: Optional[pulumi.Input[str]] = None,
1459
+ exact: Optional[pulumi.Input[str]] = None,
1460
+ ignore_case: Optional[pulumi.Input[bool]] = None,
1461
+ prefix: Optional[pulumi.Input[str]] = None,
1462
+ suffix: Optional[pulumi.Input[str]] = None):
1463
+ """
1464
+ :param pulumi.Input[str] contains: The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
1465
+ Examples:
1466
+ * abc matches the value xyz.abc.def
1467
+ :param pulumi.Input[str] exact: The input string must match exactly the string specified here.
1468
+ Examples:
1469
+ * abc only matches the value abc.
1470
+ :param pulumi.Input[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.
1471
+ :param pulumi.Input[str] prefix: The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
1472
+ Examples:
1473
+ * abc matches the value abc.xyz
1474
+ :param pulumi.Input[str] suffix: The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
1475
+ Examples:
1476
+ * abc matches the value xyz.abc
1477
+ """
1478
+ if contains is not None:
1479
+ pulumi.set(__self__, "contains", contains)
1480
+ if exact is not None:
1481
+ pulumi.set(__self__, "exact", exact)
1482
+ if ignore_case is not None:
1483
+ pulumi.set(__self__, "ignore_case", ignore_case)
1484
+ if prefix is not None:
1485
+ pulumi.set(__self__, "prefix", prefix)
1486
+ if suffix is not None:
1487
+ pulumi.set(__self__, "suffix", suffix)
1488
+
1489
+ @property
1490
+ @pulumi.getter
1491
+ def contains(self) -> Optional[pulumi.Input[str]]:
1492
+ """
1493
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
1494
+ Examples:
1495
+ * abc matches the value xyz.abc.def
1496
+ """
1497
+ return pulumi.get(self, "contains")
1498
+
1499
+ @contains.setter
1500
+ def contains(self, value: Optional[pulumi.Input[str]]):
1501
+ pulumi.set(self, "contains", value)
1502
+
1503
+ @property
1504
+ @pulumi.getter
1505
+ def exact(self) -> Optional[pulumi.Input[str]]:
1506
+ """
1507
+ The input string must match exactly the string specified here.
1508
+ Examples:
1509
+ * abc only matches the value abc.
1510
+ """
1511
+ return pulumi.get(self, "exact")
1512
+
1513
+ @exact.setter
1514
+ def exact(self, value: Optional[pulumi.Input[str]]):
1515
+ pulumi.set(self, "exact", value)
1516
+
1517
+ @property
1518
+ @pulumi.getter(name="ignoreCase")
1519
+ def ignore_case(self) -> Optional[pulumi.Input[bool]]:
1520
+ """
1521
+ 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.
1522
+ """
1523
+ return pulumi.get(self, "ignore_case")
1524
+
1525
+ @ignore_case.setter
1526
+ def ignore_case(self, value: Optional[pulumi.Input[bool]]):
1527
+ pulumi.set(self, "ignore_case", value)
1528
+
1529
+ @property
1530
+ @pulumi.getter
1531
+ def prefix(self) -> Optional[pulumi.Input[str]]:
1532
+ """
1533
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
1534
+ Examples:
1535
+ * abc matches the value abc.xyz
1536
+ """
1537
+ return pulumi.get(self, "prefix")
1538
+
1539
+ @prefix.setter
1540
+ def prefix(self, value: Optional[pulumi.Input[str]]):
1541
+ pulumi.set(self, "prefix", value)
1542
+
1543
+ @property
1544
+ @pulumi.getter
1545
+ def suffix(self) -> Optional[pulumi.Input[str]]:
1546
+ """
1547
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
1548
+ Examples:
1549
+ * abc matches the value xyz.abc
1550
+ """
1551
+ return pulumi.get(self, "suffix")
1552
+
1553
+ @suffix.setter
1554
+ def suffix(self, value: Optional[pulumi.Input[str]]):
1555
+ pulumi.set(self, "suffix", value)
1556
+
1557
+
1558
+ if not MYPY:
1559
+ class AuthzPolicyHttpRuleFromSourceResourceTagValueIdSetArgsDict(TypedDict):
1560
+ ids: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
1561
+ """
1562
+ 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.
1563
+ Limited to 5 matches.
1564
+ """
1565
+ elif False:
1566
+ AuthzPolicyHttpRuleFromSourceResourceTagValueIdSetArgsDict: TypeAlias = Mapping[str, Any]
1567
+
1568
+ @pulumi.input_type
1569
+ class AuthzPolicyHttpRuleFromSourceResourceTagValueIdSetArgs:
1570
+ def __init__(__self__, *,
1571
+ ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
1572
+ """
1573
+ :param pulumi.Input[Sequence[pulumi.Input[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.
1574
+ Limited to 5 matches.
1575
+ """
1576
+ if ids is not None:
1577
+ pulumi.set(__self__, "ids", ids)
1578
+
1579
+ @property
1580
+ @pulumi.getter
1581
+ def ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1582
+ """
1583
+ 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.
1584
+ Limited to 5 matches.
1585
+ """
1586
+ return pulumi.get(self, "ids")
1587
+
1588
+ @ids.setter
1589
+ def ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1590
+ pulumi.set(self, "ids", value)
1591
+
1592
+
1593
+ if not MYPY:
1594
+ class AuthzPolicyHttpRuleToArgsDict(TypedDict):
1595
+ operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationArgsDict']]]]
1596
+ """
1597
+ 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.
1598
+ Structure is documented below.
1599
+ """
1600
+ elif False:
1601
+ AuthzPolicyHttpRuleToArgsDict: TypeAlias = Mapping[str, Any]
1602
+
1603
+ @pulumi.input_type
1604
+ class AuthzPolicyHttpRuleToArgs:
1605
+ def __init__(__self__, *,
1606
+ operations: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationArgs']]]] = None):
1607
+ """
1608
+ :param pulumi.Input[Sequence[pulumi.Input['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.
1609
+ Structure is documented below.
1610
+ """
1611
+ if operations is not None:
1612
+ pulumi.set(__self__, "operations", operations)
1613
+
1614
+ @property
1615
+ @pulumi.getter
1616
+ def operations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationArgs']]]]:
1617
+ """
1618
+ 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.
1619
+ Structure is documented below.
1620
+ """
1621
+ return pulumi.get(self, "operations")
1622
+
1623
+ @operations.setter
1624
+ def operations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationArgs']]]]):
1625
+ pulumi.set(self, "operations", value)
1626
+
1627
+
1628
+ if not MYPY:
1629
+ class AuthzPolicyHttpRuleToOperationArgsDict(TypedDict):
1630
+ header_set: NotRequired[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetArgsDict']]
1631
+ """
1632
+ A list of headers to match against in http header.
1633
+ Structure is documented below.
1634
+ """
1635
+ hosts: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHostArgsDict']]]]
1636
+ """
1637
+ 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.
1638
+ Limited to 5 matches.
1639
+ Structure is documented below.
1640
+ """
1641
+ methods: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
1642
+ """
1643
+ 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.
1644
+ """
1645
+ paths: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationPathArgsDict']]]]
1646
+ """
1647
+ 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.
1648
+ Limited to 5 matches.
1649
+ 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.
1650
+ Structure is documented below.
1651
+ """
1652
+ elif False:
1653
+ AuthzPolicyHttpRuleToOperationArgsDict: TypeAlias = Mapping[str, Any]
1654
+
1655
+ @pulumi.input_type
1656
+ class AuthzPolicyHttpRuleToOperationArgs:
1657
+ def __init__(__self__, *,
1658
+ header_set: Optional[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetArgs']] = None,
1659
+ hosts: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHostArgs']]]] = None,
1660
+ methods: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
1661
+ paths: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationPathArgs']]]] = None):
1662
+ """
1663
+ :param pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetArgs'] header_set: A list of headers to match against in http header.
1664
+ Structure is documented below.
1665
+ :param pulumi.Input[Sequence[pulumi.Input['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.
1666
+ Limited to 5 matches.
1667
+ Structure is documented below.
1668
+ :param pulumi.Input[Sequence[pulumi.Input[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.
1669
+ :param pulumi.Input[Sequence[pulumi.Input['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.
1670
+ Limited to 5 matches.
1671
+ 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.
1672
+ Structure is documented below.
1673
+ """
1674
+ if header_set is not None:
1675
+ pulumi.set(__self__, "header_set", header_set)
1676
+ if hosts is not None:
1677
+ pulumi.set(__self__, "hosts", hosts)
1678
+ if methods is not None:
1679
+ pulumi.set(__self__, "methods", methods)
1680
+ if paths is not None:
1681
+ pulumi.set(__self__, "paths", paths)
1682
+
1683
+ @property
1684
+ @pulumi.getter(name="headerSet")
1685
+ def header_set(self) -> Optional[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetArgs']]:
1686
+ """
1687
+ A list of headers to match against in http header.
1688
+ Structure is documented below.
1689
+ """
1690
+ return pulumi.get(self, "header_set")
1691
+
1692
+ @header_set.setter
1693
+ def header_set(self, value: Optional[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetArgs']]):
1694
+ pulumi.set(self, "header_set", value)
1695
+
1696
+ @property
1697
+ @pulumi.getter
1698
+ def hosts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHostArgs']]]]:
1699
+ """
1700
+ 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.
1701
+ Limited to 5 matches.
1702
+ Structure is documented below.
1703
+ """
1704
+ return pulumi.get(self, "hosts")
1705
+
1706
+ @hosts.setter
1707
+ def hosts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHostArgs']]]]):
1708
+ pulumi.set(self, "hosts", value)
1709
+
1710
+ @property
1711
+ @pulumi.getter
1712
+ def methods(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
1713
+ """
1714
+ 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.
1715
+ """
1716
+ return pulumi.get(self, "methods")
1717
+
1718
+ @methods.setter
1719
+ def methods(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
1720
+ pulumi.set(self, "methods", value)
1721
+
1722
+ @property
1723
+ @pulumi.getter
1724
+ def paths(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationPathArgs']]]]:
1725
+ """
1726
+ 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.
1727
+ Limited to 5 matches.
1728
+ 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.
1729
+ Structure is documented below.
1730
+ """
1731
+ return pulumi.get(self, "paths")
1732
+
1733
+ @paths.setter
1734
+ def paths(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationPathArgs']]]]):
1735
+ pulumi.set(self, "paths", value)
1736
+
1737
+
1738
+ if not MYPY:
1739
+ class AuthzPolicyHttpRuleToOperationHeaderSetArgsDict(TypedDict):
1740
+ headers: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgsDict']]]]
1741
+ """
1742
+ 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.
1743
+ Structure is documented below.
1744
+ """
1745
+ elif False:
1746
+ AuthzPolicyHttpRuleToOperationHeaderSetArgsDict: TypeAlias = Mapping[str, Any]
1747
+
1748
+ @pulumi.input_type
1749
+ class AuthzPolicyHttpRuleToOperationHeaderSetArgs:
1750
+ def __init__(__self__, *,
1751
+ headers: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgs']]]] = None):
1752
+ """
1753
+ :param pulumi.Input[Sequence[pulumi.Input['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.
1754
+ Structure is documented below.
1755
+ """
1756
+ if headers is not None:
1757
+ pulumi.set(__self__, "headers", headers)
1758
+
1759
+ @property
1760
+ @pulumi.getter
1761
+ def headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgs']]]]:
1762
+ """
1763
+ 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.
1764
+ Structure is documented below.
1765
+ """
1766
+ return pulumi.get(self, "headers")
1767
+
1768
+ @headers.setter
1769
+ def headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgs']]]]):
1770
+ pulumi.set(self, "headers", value)
1771
+
1772
+
1773
+ if not MYPY:
1774
+ class AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgsDict(TypedDict):
1775
+ name: NotRequired[pulumi.Input[str]]
1776
+ """
1777
+ Specifies the name of the header in the request.
1778
+ """
1779
+ value: NotRequired[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgsDict']]
1780
+ """
1781
+ Specifies how the header match will be performed.
1782
+ Structure is documented below.
1783
+ """
1784
+ elif False:
1785
+ AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgsDict: TypeAlias = Mapping[str, Any]
1786
+
1787
+ @pulumi.input_type
1788
+ class AuthzPolicyHttpRuleToOperationHeaderSetHeaderArgs:
1789
+ def __init__(__self__, *,
1790
+ name: Optional[pulumi.Input[str]] = None,
1791
+ value: Optional[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgs']] = None):
1792
+ """
1793
+ :param pulumi.Input[str] name: Specifies the name of the header in the request.
1794
+ :param pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgs'] value: Specifies how the header match will be performed.
1795
+ Structure is documented below.
1796
+ """
1797
+ if name is not None:
1798
+ pulumi.set(__self__, "name", name)
1799
+ if value is not None:
1800
+ pulumi.set(__self__, "value", value)
1801
+
1802
+ @property
1803
+ @pulumi.getter
1804
+ def name(self) -> Optional[pulumi.Input[str]]:
1805
+ """
1806
+ Specifies the name of the header in the request.
1807
+ """
1808
+ return pulumi.get(self, "name")
1809
+
1810
+ @name.setter
1811
+ def name(self, value: Optional[pulumi.Input[str]]):
1812
+ pulumi.set(self, "name", value)
1813
+
1814
+ @property
1815
+ @pulumi.getter
1816
+ def value(self) -> Optional[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgs']]:
1817
+ """
1818
+ Specifies how the header match will be performed.
1819
+ Structure is documented below.
1820
+ """
1821
+ return pulumi.get(self, "value")
1822
+
1823
+ @value.setter
1824
+ def value(self, value: Optional[pulumi.Input['AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgs']]):
1825
+ pulumi.set(self, "value", value)
1826
+
1827
+
1828
+ if not MYPY:
1829
+ class AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgsDict(TypedDict):
1830
+ contains: NotRequired[pulumi.Input[str]]
1831
+ """
1832
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
1833
+ Examples:
1834
+ * abc matches the value xyz.abc.def
1835
+ """
1836
+ exact: NotRequired[pulumi.Input[str]]
1837
+ """
1838
+ The input string must match exactly the string specified here.
1839
+ Examples:
1840
+ * abc only matches the value abc.
1841
+ """
1842
+ ignore_case: NotRequired[pulumi.Input[bool]]
1843
+ """
1844
+ 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.
1845
+ """
1846
+ prefix: NotRequired[pulumi.Input[str]]
1847
+ """
1848
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
1849
+ Examples:
1850
+ * abc matches the value abc.xyz
1851
+ """
1852
+ suffix: NotRequired[pulumi.Input[str]]
1853
+ """
1854
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
1855
+ Examples:
1856
+ * abc matches the value xyz.abc
1857
+ """
1858
+ elif False:
1859
+ AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgsDict: TypeAlias = Mapping[str, Any]
1860
+
1861
+ @pulumi.input_type
1862
+ class AuthzPolicyHttpRuleToOperationHeaderSetHeaderValueArgs:
1863
+ def __init__(__self__, *,
1864
+ contains: Optional[pulumi.Input[str]] = None,
1865
+ exact: Optional[pulumi.Input[str]] = None,
1866
+ ignore_case: Optional[pulumi.Input[bool]] = None,
1867
+ prefix: Optional[pulumi.Input[str]] = None,
1868
+ suffix: Optional[pulumi.Input[str]] = None):
1869
+ """
1870
+ :param pulumi.Input[str] contains: The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
1871
+ Examples:
1872
+ * abc matches the value xyz.abc.def
1873
+ :param pulumi.Input[str] exact: The input string must match exactly the string specified here.
1874
+ Examples:
1875
+ * abc only matches the value abc.
1876
+ :param pulumi.Input[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.
1877
+ :param pulumi.Input[str] prefix: The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
1878
+ Examples:
1879
+ * abc matches the value abc.xyz
1880
+ :param pulumi.Input[str] suffix: The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
1881
+ Examples:
1882
+ * abc matches the value xyz.abc
1883
+ """
1884
+ if contains is not None:
1885
+ pulumi.set(__self__, "contains", contains)
1886
+ if exact is not None:
1887
+ pulumi.set(__self__, "exact", exact)
1888
+ if ignore_case is not None:
1889
+ pulumi.set(__self__, "ignore_case", ignore_case)
1890
+ if prefix is not None:
1891
+ pulumi.set(__self__, "prefix", prefix)
1892
+ if suffix is not None:
1893
+ pulumi.set(__self__, "suffix", suffix)
1894
+
1895
+ @property
1896
+ @pulumi.getter
1897
+ def contains(self) -> Optional[pulumi.Input[str]]:
1898
+ """
1899
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
1900
+ Examples:
1901
+ * abc matches the value xyz.abc.def
1902
+ """
1903
+ return pulumi.get(self, "contains")
1904
+
1905
+ @contains.setter
1906
+ def contains(self, value: Optional[pulumi.Input[str]]):
1907
+ pulumi.set(self, "contains", value)
1908
+
1909
+ @property
1910
+ @pulumi.getter
1911
+ def exact(self) -> Optional[pulumi.Input[str]]:
1912
+ """
1913
+ The input string must match exactly the string specified here.
1914
+ Examples:
1915
+ * abc only matches the value abc.
1916
+ """
1917
+ return pulumi.get(self, "exact")
1918
+
1919
+ @exact.setter
1920
+ def exact(self, value: Optional[pulumi.Input[str]]):
1921
+ pulumi.set(self, "exact", value)
1922
+
1923
+ @property
1924
+ @pulumi.getter(name="ignoreCase")
1925
+ def ignore_case(self) -> Optional[pulumi.Input[bool]]:
1926
+ """
1927
+ 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.
1928
+ """
1929
+ return pulumi.get(self, "ignore_case")
1930
+
1931
+ @ignore_case.setter
1932
+ def ignore_case(self, value: Optional[pulumi.Input[bool]]):
1933
+ pulumi.set(self, "ignore_case", value)
1934
+
1935
+ @property
1936
+ @pulumi.getter
1937
+ def prefix(self) -> Optional[pulumi.Input[str]]:
1938
+ """
1939
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
1940
+ Examples:
1941
+ * abc matches the value abc.xyz
1942
+ """
1943
+ return pulumi.get(self, "prefix")
1944
+
1945
+ @prefix.setter
1946
+ def prefix(self, value: Optional[pulumi.Input[str]]):
1947
+ pulumi.set(self, "prefix", value)
1948
+
1949
+ @property
1950
+ @pulumi.getter
1951
+ def suffix(self) -> Optional[pulumi.Input[str]]:
1952
+ """
1953
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
1954
+ Examples:
1955
+ * abc matches the value xyz.abc
1956
+ """
1957
+ return pulumi.get(self, "suffix")
1958
+
1959
+ @suffix.setter
1960
+ def suffix(self, value: Optional[pulumi.Input[str]]):
1961
+ pulumi.set(self, "suffix", value)
1962
+
1963
+
1964
+ if not MYPY:
1965
+ class AuthzPolicyHttpRuleToOperationHostArgsDict(TypedDict):
1966
+ contains: NotRequired[pulumi.Input[str]]
1967
+ """
1968
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
1969
+ Examples:
1970
+ * abc matches the value xyz.abc.def
1971
+ """
1972
+ exact: NotRequired[pulumi.Input[str]]
1973
+ """
1974
+ The input string must match exactly the string specified here.
1975
+ Examples:
1976
+ * abc only matches the value abc.
1977
+ """
1978
+ ignore_case: NotRequired[pulumi.Input[bool]]
1979
+ """
1980
+ 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.
1981
+ """
1982
+ prefix: NotRequired[pulumi.Input[str]]
1983
+ """
1984
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
1985
+ Examples:
1986
+ * abc matches the value abc.xyz
1987
+ """
1988
+ suffix: NotRequired[pulumi.Input[str]]
1989
+ """
1990
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
1991
+ Examples:
1992
+ * abc matches the value xyz.abc
1993
+ """
1994
+ elif False:
1995
+ AuthzPolicyHttpRuleToOperationHostArgsDict: TypeAlias = Mapping[str, Any]
1996
+
1997
+ @pulumi.input_type
1998
+ class AuthzPolicyHttpRuleToOperationHostArgs:
1999
+ def __init__(__self__, *,
2000
+ contains: Optional[pulumi.Input[str]] = None,
2001
+ exact: Optional[pulumi.Input[str]] = None,
2002
+ ignore_case: Optional[pulumi.Input[bool]] = None,
2003
+ prefix: Optional[pulumi.Input[str]] = None,
2004
+ suffix: Optional[pulumi.Input[str]] = None):
2005
+ """
2006
+ :param pulumi.Input[str] contains: The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
2007
+ Examples:
2008
+ * abc matches the value xyz.abc.def
2009
+ :param pulumi.Input[str] exact: The input string must match exactly the string specified here.
2010
+ Examples:
2011
+ * abc only matches the value abc.
2012
+ :param pulumi.Input[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.
2013
+ :param pulumi.Input[str] prefix: The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
2014
+ Examples:
2015
+ * abc matches the value abc.xyz
2016
+ :param pulumi.Input[str] suffix: The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
2017
+ Examples:
2018
+ * abc matches the value xyz.abc
2019
+ """
2020
+ if contains is not None:
2021
+ pulumi.set(__self__, "contains", contains)
2022
+ if exact is not None:
2023
+ pulumi.set(__self__, "exact", exact)
2024
+ if ignore_case is not None:
2025
+ pulumi.set(__self__, "ignore_case", ignore_case)
2026
+ if prefix is not None:
2027
+ pulumi.set(__self__, "prefix", prefix)
2028
+ if suffix is not None:
2029
+ pulumi.set(__self__, "suffix", suffix)
2030
+
2031
+ @property
2032
+ @pulumi.getter
2033
+ def contains(self) -> Optional[pulumi.Input[str]]:
2034
+ """
2035
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
2036
+ Examples:
2037
+ * abc matches the value xyz.abc.def
2038
+ """
2039
+ return pulumi.get(self, "contains")
2040
+
2041
+ @contains.setter
2042
+ def contains(self, value: Optional[pulumi.Input[str]]):
2043
+ pulumi.set(self, "contains", value)
2044
+
2045
+ @property
2046
+ @pulumi.getter
2047
+ def exact(self) -> Optional[pulumi.Input[str]]:
2048
+ """
2049
+ The input string must match exactly the string specified here.
2050
+ Examples:
2051
+ * abc only matches the value abc.
2052
+ """
2053
+ return pulumi.get(self, "exact")
2054
+
2055
+ @exact.setter
2056
+ def exact(self, value: Optional[pulumi.Input[str]]):
2057
+ pulumi.set(self, "exact", value)
2058
+
2059
+ @property
2060
+ @pulumi.getter(name="ignoreCase")
2061
+ def ignore_case(self) -> Optional[pulumi.Input[bool]]:
2062
+ """
2063
+ 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.
2064
+ """
2065
+ return pulumi.get(self, "ignore_case")
2066
+
2067
+ @ignore_case.setter
2068
+ def ignore_case(self, value: Optional[pulumi.Input[bool]]):
2069
+ pulumi.set(self, "ignore_case", value)
2070
+
2071
+ @property
2072
+ @pulumi.getter
2073
+ def prefix(self) -> Optional[pulumi.Input[str]]:
2074
+ """
2075
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
2076
+ Examples:
2077
+ * abc matches the value abc.xyz
2078
+ """
2079
+ return pulumi.get(self, "prefix")
2080
+
2081
+ @prefix.setter
2082
+ def prefix(self, value: Optional[pulumi.Input[str]]):
2083
+ pulumi.set(self, "prefix", value)
2084
+
2085
+ @property
2086
+ @pulumi.getter
2087
+ def suffix(self) -> Optional[pulumi.Input[str]]:
2088
+ """
2089
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
2090
+ Examples:
2091
+ * abc matches the value xyz.abc
2092
+ """
2093
+ return pulumi.get(self, "suffix")
2094
+
2095
+ @suffix.setter
2096
+ def suffix(self, value: Optional[pulumi.Input[str]]):
2097
+ pulumi.set(self, "suffix", value)
2098
+
2099
+
2100
+ if not MYPY:
2101
+ class AuthzPolicyHttpRuleToOperationPathArgsDict(TypedDict):
2102
+ contains: NotRequired[pulumi.Input[str]]
2103
+ """
2104
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
2105
+ Examples:
2106
+ * abc matches the value xyz.abc.def
2107
+ """
2108
+ exact: NotRequired[pulumi.Input[str]]
2109
+ """
2110
+ The input string must match exactly the string specified here.
2111
+ Examples:
2112
+ * abc only matches the value abc.
2113
+ """
2114
+ ignore_case: NotRequired[pulumi.Input[bool]]
2115
+ """
2116
+ 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.
2117
+ """
2118
+ prefix: NotRequired[pulumi.Input[str]]
2119
+ """
2120
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
2121
+ Examples:
2122
+ * abc matches the value abc.xyz
2123
+ """
2124
+ suffix: NotRequired[pulumi.Input[str]]
2125
+ """
2126
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
2127
+ Examples:
2128
+ * abc matches the value xyz.abc
2129
+ """
2130
+ elif False:
2131
+ AuthzPolicyHttpRuleToOperationPathArgsDict: TypeAlias = Mapping[str, Any]
2132
+
2133
+ @pulumi.input_type
2134
+ class AuthzPolicyHttpRuleToOperationPathArgs:
2135
+ def __init__(__self__, *,
2136
+ contains: Optional[pulumi.Input[str]] = None,
2137
+ exact: Optional[pulumi.Input[str]] = None,
2138
+ ignore_case: Optional[pulumi.Input[bool]] = None,
2139
+ prefix: Optional[pulumi.Input[str]] = None,
2140
+ suffix: Optional[pulumi.Input[str]] = None):
2141
+ """
2142
+ :param pulumi.Input[str] contains: The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
2143
+ Examples:
2144
+ * abc matches the value xyz.abc.def
2145
+ :param pulumi.Input[str] exact: The input string must match exactly the string specified here.
2146
+ Examples:
2147
+ * abc only matches the value abc.
2148
+ :param pulumi.Input[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.
2149
+ :param pulumi.Input[str] prefix: The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
2150
+ Examples:
2151
+ * abc matches the value abc.xyz
2152
+ :param pulumi.Input[str] suffix: The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
2153
+ Examples:
2154
+ * abc matches the value xyz.abc
2155
+ """
2156
+ if contains is not None:
2157
+ pulumi.set(__self__, "contains", contains)
2158
+ if exact is not None:
2159
+ pulumi.set(__self__, "exact", exact)
2160
+ if ignore_case is not None:
2161
+ pulumi.set(__self__, "ignore_case", ignore_case)
2162
+ if prefix is not None:
2163
+ pulumi.set(__self__, "prefix", prefix)
2164
+ if suffix is not None:
2165
+ pulumi.set(__self__, "suffix", suffix)
2166
+
2167
+ @property
2168
+ @pulumi.getter
2169
+ def contains(self) -> Optional[pulumi.Input[str]]:
2170
+ """
2171
+ The input string must have the substring specified here. Note: empty contains match is not allowed, please use regex instead.
2172
+ Examples:
2173
+ * abc matches the value xyz.abc.def
2174
+ """
2175
+ return pulumi.get(self, "contains")
2176
+
2177
+ @contains.setter
2178
+ def contains(self, value: Optional[pulumi.Input[str]]):
2179
+ pulumi.set(self, "contains", value)
2180
+
2181
+ @property
2182
+ @pulumi.getter
2183
+ def exact(self) -> Optional[pulumi.Input[str]]:
2184
+ """
2185
+ The input string must match exactly the string specified here.
2186
+ Examples:
2187
+ * abc only matches the value abc.
2188
+ """
2189
+ return pulumi.get(self, "exact")
2190
+
2191
+ @exact.setter
2192
+ def exact(self, value: Optional[pulumi.Input[str]]):
2193
+ pulumi.set(self, "exact", value)
2194
+
2195
+ @property
2196
+ @pulumi.getter(name="ignoreCase")
2197
+ def ignore_case(self) -> Optional[pulumi.Input[bool]]:
2198
+ """
2199
+ 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.
2200
+ """
2201
+ return pulumi.get(self, "ignore_case")
2202
+
2203
+ @ignore_case.setter
2204
+ def ignore_case(self, value: Optional[pulumi.Input[bool]]):
2205
+ pulumi.set(self, "ignore_case", value)
2206
+
2207
+ @property
2208
+ @pulumi.getter
2209
+ def prefix(self) -> Optional[pulumi.Input[str]]:
2210
+ """
2211
+ The input string must have the prefix specified here. Note: empty prefix is not allowed, please use regex instead.
2212
+ Examples:
2213
+ * abc matches the value abc.xyz
2214
+ """
2215
+ return pulumi.get(self, "prefix")
2216
+
2217
+ @prefix.setter
2218
+ def prefix(self, value: Optional[pulumi.Input[str]]):
2219
+ pulumi.set(self, "prefix", value)
2220
+
2221
+ @property
2222
+ @pulumi.getter
2223
+ def suffix(self) -> Optional[pulumi.Input[str]]:
2224
+ """
2225
+ The input string must have the suffix specified here. Note: empty prefix is not allowed, please use regex instead.
2226
+ Examples:
2227
+ * abc matches the value xyz.abc
2228
+ """
2229
+ return pulumi.get(self, "suffix")
2230
+
2231
+ @suffix.setter
2232
+ def suffix(self, value: Optional[pulumi.Input[str]]):
2233
+ pulumi.set(self, "suffix", value)
2234
+
2235
+
2236
+ if not MYPY:
2237
+ class AuthzPolicyTargetArgsDict(TypedDict):
2238
+ load_balancing_scheme: pulumi.Input[str]
2239
+ """
2240
+ All gateways and forwarding rules referenced by this policy and extensions must share the same load balancing scheme.
2241
+ For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).
2242
+ Possible values are: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`, `INTERNAL_SELF_MANAGED`.
2243
+ """
2244
+ resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
2245
+ """
2246
+ A list of references to the Forwarding Rules on which this policy will be applied.
2247
+
2248
+ - - -
2249
+ """
2250
+ elif False:
2251
+ AuthzPolicyTargetArgsDict: TypeAlias = Mapping[str, Any]
2252
+
2253
+ @pulumi.input_type
2254
+ class AuthzPolicyTargetArgs:
2255
+ def __init__(__self__, *,
2256
+ load_balancing_scheme: pulumi.Input[str],
2257
+ resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
2258
+ """
2259
+ :param pulumi.Input[str] load_balancing_scheme: All gateways and forwarding rules referenced by this policy and extensions must share the same load balancing scheme.
2260
+ For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).
2261
+ Possible values are: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`, `INTERNAL_SELF_MANAGED`.
2262
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] resources: A list of references to the Forwarding Rules on which this policy will be applied.
2263
+
2264
+ - - -
2265
+ """
2266
+ pulumi.set(__self__, "load_balancing_scheme", load_balancing_scheme)
2267
+ if resources is not None:
2268
+ pulumi.set(__self__, "resources", resources)
2269
+
2270
+ @property
2271
+ @pulumi.getter(name="loadBalancingScheme")
2272
+ def load_balancing_scheme(self) -> pulumi.Input[str]:
2273
+ """
2274
+ All gateways and forwarding rules referenced by this policy and extensions must share the same load balancing scheme.
2275
+ For more information, refer to [Backend services overview](https://cloud.google.com/load-balancing/docs/backend-service).
2276
+ Possible values are: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`, `INTERNAL_SELF_MANAGED`.
2277
+ """
2278
+ return pulumi.get(self, "load_balancing_scheme")
2279
+
2280
+ @load_balancing_scheme.setter
2281
+ def load_balancing_scheme(self, value: pulumi.Input[str]):
2282
+ pulumi.set(self, "load_balancing_scheme", value)
2283
+
2284
+ @property
2285
+ @pulumi.getter
2286
+ def resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
2287
+ """
2288
+ A list of references to the Forwarding Rules on which this policy will be applied.
2289
+
2290
+ - - -
2291
+ """
2292
+ return pulumi.get(self, "resources")
2293
+
2294
+ @resources.setter
2295
+ def resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
2296
+ pulumi.set(self, "resources", value)
2297
+
2298
+
431
2299
  if not MYPY:
432
2300
  class ClientTlsPolicyClientCertificateArgsDict(TypedDict):
433
2301
  certificate_provider_instance: NotRequired[pulumi.Input['ClientTlsPolicyClientCertificateCertificateProviderInstanceArgsDict']]
@@ -668,6 +2536,41 @@ class ClientTlsPolicyServerValidationCaGrpcEndpointArgs:
668
2536
  pulumi.set(self, "target_uri", value)
669
2537
 
670
2538
 
2539
+ if not MYPY:
2540
+ class InterceptDeploymentGroupConnectedEndpointGroupArgsDict(TypedDict):
2541
+ name: NotRequired[pulumi.Input[str]]
2542
+ """
2543
+ (Output)
2544
+ Output only. A connected intercept endpoint group.
2545
+ """
2546
+ elif False:
2547
+ InterceptDeploymentGroupConnectedEndpointGroupArgsDict: TypeAlias = Mapping[str, Any]
2548
+
2549
+ @pulumi.input_type
2550
+ class InterceptDeploymentGroupConnectedEndpointGroupArgs:
2551
+ def __init__(__self__, *,
2552
+ name: Optional[pulumi.Input[str]] = None):
2553
+ """
2554
+ :param pulumi.Input[str] name: (Output)
2555
+ Output only. A connected intercept endpoint group.
2556
+ """
2557
+ if name is not None:
2558
+ pulumi.set(__self__, "name", name)
2559
+
2560
+ @property
2561
+ @pulumi.getter
2562
+ def name(self) -> Optional[pulumi.Input[str]]:
2563
+ """
2564
+ (Output)
2565
+ Output only. A connected intercept endpoint group.
2566
+ """
2567
+ return pulumi.get(self, "name")
2568
+
2569
+ @name.setter
2570
+ def name(self, value: Optional[pulumi.Input[str]]):
2571
+ pulumi.set(self, "name", value)
2572
+
2573
+
671
2574
  if not MYPY:
672
2575
  class MirroringDeploymentGroupConnectedEndpointGroupArgsDict(TypedDict):
673
2576
  name: NotRequired[pulumi.Input[str]]