pulumi-gcp 7.36.0a1723631483__py3-none-any.whl → 7.37.0a1723638212__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.
- pulumi_gcp/__init__.py +72 -0
- pulumi_gcp/accesscontextmanager/__init__.py +2 -0
- pulumi_gcp/accesscontextmanager/_inputs.py +780 -0
- pulumi_gcp/accesscontextmanager/outputs.py +601 -0
- pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_egress_policy.py +323 -0
- pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_ingress_policy.py +332 -0
- pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +2 -24
- pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +2 -24
- pulumi_gcp/applicationintegration/client.py +2 -2
- pulumi_gcp/clouddeploy/_inputs.py +21 -1
- pulumi_gcp/clouddeploy/outputs.py +15 -1
- pulumi_gcp/cloudrunv2/_inputs.py +40 -0
- pulumi_gcp/cloudrunv2/outputs.py +46 -0
- pulumi_gcp/compute/region_target_https_proxy.py +28 -0
- pulumi_gcp/container/_inputs.py +26 -0
- pulumi_gcp/container/outputs.py +29 -0
- pulumi_gcp/dataform/repository.py +80 -2
- pulumi_gcp/discoveryengine/data_store.py +93 -2
- pulumi_gcp/gkehub/_inputs.py +63 -0
- pulumi_gcp/gkehub/outputs.py +38 -0
- pulumi_gcp/logging/get_log_view_iam_policy.py +28 -2
- pulumi_gcp/logging/log_view_iam_binding.py +512 -0
- pulumi_gcp/logging/log_view_iam_member.py +512 -0
- pulumi_gcp/logging/log_view_iam_policy.py +512 -0
- pulumi_gcp/netapp/_inputs.py +6 -6
- pulumi_gcp/netapp/outputs.py +4 -4
- pulumi_gcp/networkconnectivity/regional_endpoint.py +6 -6
- pulumi_gcp/organizations/get_project.py +11 -1
- pulumi_gcp/organizations/project.py +76 -21
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/securitycenter/__init__.py +8 -0
- pulumi_gcp/securitycenter/_inputs.py +191 -0
- pulumi_gcp/securitycenter/get_v2_organization_source_iam_policy.py +146 -0
- pulumi_gcp/securitycenter/outputs.py +115 -0
- pulumi_gcp/securitycenter/v2_folder_mute_config.py +679 -0
- pulumi_gcp/securitycenter/v2_organization_source.py +416 -0
- pulumi_gcp/securitycenter/v2_organization_source_iam_binding.py +722 -0
- pulumi_gcp/securitycenter/v2_organization_source_iam_member.py +722 -0
- pulumi_gcp/securitycenter/v2_organization_source_iam_policy.py +561 -0
- pulumi_gcp/securitycenter/v2_project_mute_config.py +684 -0
- pulumi_gcp/securitycenter/v2_project_notification_config.py +559 -0
- pulumi_gcp/spanner/instance.py +0 -7
- pulumi_gcp/sql/_inputs.py +3 -3
- pulumi_gcp/sql/outputs.py +6 -6
- pulumi_gcp/storage/bucket_object.py +28 -0
- pulumi_gcp/storage/get_bucket_object.py +14 -1
- pulumi_gcp/storage/get_bucket_object_content.py +11 -1
- pulumi_gcp/storage/managed_folder.py +72 -2
- pulumi_gcp/vmwareengine/network_policy.py +6 -6
- {pulumi_gcp-7.36.0a1723631483.dist-info → pulumi_gcp-7.37.0a1723638212.dist-info}/METADATA +1 -1
- {pulumi_gcp-7.36.0a1723631483.dist-info → pulumi_gcp-7.37.0a1723638212.dist-info}/RECORD +53 -43
- {pulumi_gcp-7.36.0a1723631483.dist-info → pulumi_gcp-7.37.0a1723638212.dist-info}/WHEEL +0 -0
- {pulumi_gcp-7.36.0a1723631483.dist-info → pulumi_gcp-7.37.0a1723638212.dist-info}/top_level.txt +0 -0
@@ -39,6 +39,16 @@ __all__ = [
|
|
39
39
|
'AccessLevelsAccessLevelCustomExpr',
|
40
40
|
'AccessPolicyIamBindingCondition',
|
41
41
|
'AccessPolicyIamMemberCondition',
|
42
|
+
'ServicePerimeterDryRunEgressPolicyEgressFrom',
|
43
|
+
'ServicePerimeterDryRunEgressPolicyEgressFromSource',
|
44
|
+
'ServicePerimeterDryRunEgressPolicyEgressTo',
|
45
|
+
'ServicePerimeterDryRunEgressPolicyEgressToOperation',
|
46
|
+
'ServicePerimeterDryRunEgressPolicyEgressToOperationMethodSelector',
|
47
|
+
'ServicePerimeterDryRunIngressPolicyIngressFrom',
|
48
|
+
'ServicePerimeterDryRunIngressPolicyIngressFromSource',
|
49
|
+
'ServicePerimeterDryRunIngressPolicyIngressTo',
|
50
|
+
'ServicePerimeterDryRunIngressPolicyIngressToOperation',
|
51
|
+
'ServicePerimeterDryRunIngressPolicyIngressToOperationMethodSelector',
|
42
52
|
'ServicePerimeterEgressPolicyEgressFrom',
|
43
53
|
'ServicePerimeterEgressPolicyEgressFromSource',
|
44
54
|
'ServicePerimeterEgressPolicyEgressTo',
|
@@ -1645,6 +1655,597 @@ class AccessPolicyIamMemberCondition(dict):
|
|
1645
1655
|
return pulumi.get(self, "description")
|
1646
1656
|
|
1647
1657
|
|
1658
|
+
@pulumi.output_type
|
1659
|
+
class ServicePerimeterDryRunEgressPolicyEgressFrom(dict):
|
1660
|
+
@staticmethod
|
1661
|
+
def __key_warning(key: str):
|
1662
|
+
suggest = None
|
1663
|
+
if key == "identityType":
|
1664
|
+
suggest = "identity_type"
|
1665
|
+
elif key == "sourceRestriction":
|
1666
|
+
suggest = "source_restriction"
|
1667
|
+
|
1668
|
+
if suggest:
|
1669
|
+
pulumi.log.warn(f"Key '{key}' not found in ServicePerimeterDryRunEgressPolicyEgressFrom. Access the value via the '{suggest}' property getter instead.")
|
1670
|
+
|
1671
|
+
def __getitem__(self, key: str) -> Any:
|
1672
|
+
ServicePerimeterDryRunEgressPolicyEgressFrom.__key_warning(key)
|
1673
|
+
return super().__getitem__(key)
|
1674
|
+
|
1675
|
+
def get(self, key: str, default = None) -> Any:
|
1676
|
+
ServicePerimeterDryRunEgressPolicyEgressFrom.__key_warning(key)
|
1677
|
+
return super().get(key, default)
|
1678
|
+
|
1679
|
+
def __init__(__self__, *,
|
1680
|
+
identities: Optional[Sequence[str]] = None,
|
1681
|
+
identity_type: Optional[str] = None,
|
1682
|
+
source_restriction: Optional[str] = None,
|
1683
|
+
sources: Optional[Sequence['outputs.ServicePerimeterDryRunEgressPolicyEgressFromSource']] = None):
|
1684
|
+
"""
|
1685
|
+
:param Sequence[str] identities: A list of identities that are allowed access through this `EgressPolicy`.
|
1686
|
+
Should be in the format of email address. The email address should
|
1687
|
+
represent individual user or service account only.
|
1688
|
+
:param str identity_type: Specifies the type of identities that are allowed access to outside the
|
1689
|
+
perimeter. If left unspecified, then members of `identities` field will
|
1690
|
+
be allowed access.
|
1691
|
+
Possible values are: `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
|
1692
|
+
:param str source_restriction: Whether to enforce traffic restrictions based on `sources` field. If the `sources` field is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.
|
1693
|
+
Possible values are: `SOURCE_RESTRICTION_ENABLED`, `SOURCE_RESTRICTION_DISABLED`.
|
1694
|
+
:param Sequence['ServicePerimeterDryRunEgressPolicyEgressFromSourceArgs'] sources: Sources that this EgressPolicy authorizes access from.
|
1695
|
+
Structure is documented below.
|
1696
|
+
"""
|
1697
|
+
if identities is not None:
|
1698
|
+
pulumi.set(__self__, "identities", identities)
|
1699
|
+
if identity_type is not None:
|
1700
|
+
pulumi.set(__self__, "identity_type", identity_type)
|
1701
|
+
if source_restriction is not None:
|
1702
|
+
pulumi.set(__self__, "source_restriction", source_restriction)
|
1703
|
+
if sources is not None:
|
1704
|
+
pulumi.set(__self__, "sources", sources)
|
1705
|
+
|
1706
|
+
@property
|
1707
|
+
@pulumi.getter
|
1708
|
+
def identities(self) -> Optional[Sequence[str]]:
|
1709
|
+
"""
|
1710
|
+
A list of identities that are allowed access through this `EgressPolicy`.
|
1711
|
+
Should be in the format of email address. The email address should
|
1712
|
+
represent individual user or service account only.
|
1713
|
+
"""
|
1714
|
+
return pulumi.get(self, "identities")
|
1715
|
+
|
1716
|
+
@property
|
1717
|
+
@pulumi.getter(name="identityType")
|
1718
|
+
def identity_type(self) -> Optional[str]:
|
1719
|
+
"""
|
1720
|
+
Specifies the type of identities that are allowed access to outside the
|
1721
|
+
perimeter. If left unspecified, then members of `identities` field will
|
1722
|
+
be allowed access.
|
1723
|
+
Possible values are: `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
|
1724
|
+
"""
|
1725
|
+
return pulumi.get(self, "identity_type")
|
1726
|
+
|
1727
|
+
@property
|
1728
|
+
@pulumi.getter(name="sourceRestriction")
|
1729
|
+
def source_restriction(self) -> Optional[str]:
|
1730
|
+
"""
|
1731
|
+
Whether to enforce traffic restrictions based on `sources` field. If the `sources` field is non-empty, then this field must be set to `SOURCE_RESTRICTION_ENABLED`.
|
1732
|
+
Possible values are: `SOURCE_RESTRICTION_ENABLED`, `SOURCE_RESTRICTION_DISABLED`.
|
1733
|
+
"""
|
1734
|
+
return pulumi.get(self, "source_restriction")
|
1735
|
+
|
1736
|
+
@property
|
1737
|
+
@pulumi.getter
|
1738
|
+
def sources(self) -> Optional[Sequence['outputs.ServicePerimeterDryRunEgressPolicyEgressFromSource']]:
|
1739
|
+
"""
|
1740
|
+
Sources that this EgressPolicy authorizes access from.
|
1741
|
+
Structure is documented below.
|
1742
|
+
"""
|
1743
|
+
return pulumi.get(self, "sources")
|
1744
|
+
|
1745
|
+
|
1746
|
+
@pulumi.output_type
|
1747
|
+
class ServicePerimeterDryRunEgressPolicyEgressFromSource(dict):
|
1748
|
+
@staticmethod
|
1749
|
+
def __key_warning(key: str):
|
1750
|
+
suggest = None
|
1751
|
+
if key == "accessLevel":
|
1752
|
+
suggest = "access_level"
|
1753
|
+
|
1754
|
+
if suggest:
|
1755
|
+
pulumi.log.warn(f"Key '{key}' not found in ServicePerimeterDryRunEgressPolicyEgressFromSource. Access the value via the '{suggest}' property getter instead.")
|
1756
|
+
|
1757
|
+
def __getitem__(self, key: str) -> Any:
|
1758
|
+
ServicePerimeterDryRunEgressPolicyEgressFromSource.__key_warning(key)
|
1759
|
+
return super().__getitem__(key)
|
1760
|
+
|
1761
|
+
def get(self, key: str, default = None) -> Any:
|
1762
|
+
ServicePerimeterDryRunEgressPolicyEgressFromSource.__key_warning(key)
|
1763
|
+
return super().get(key, default)
|
1764
|
+
|
1765
|
+
def __init__(__self__, *,
|
1766
|
+
access_level: Optional[str] = None):
|
1767
|
+
"""
|
1768
|
+
:param str access_level: An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
|
1769
|
+
"""
|
1770
|
+
if access_level is not None:
|
1771
|
+
pulumi.set(__self__, "access_level", access_level)
|
1772
|
+
|
1773
|
+
@property
|
1774
|
+
@pulumi.getter(name="accessLevel")
|
1775
|
+
def access_level(self) -> Optional[str]:
|
1776
|
+
"""
|
1777
|
+
An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
|
1778
|
+
"""
|
1779
|
+
return pulumi.get(self, "access_level")
|
1780
|
+
|
1781
|
+
|
1782
|
+
@pulumi.output_type
|
1783
|
+
class ServicePerimeterDryRunEgressPolicyEgressTo(dict):
|
1784
|
+
@staticmethod
|
1785
|
+
def __key_warning(key: str):
|
1786
|
+
suggest = None
|
1787
|
+
if key == "externalResources":
|
1788
|
+
suggest = "external_resources"
|
1789
|
+
|
1790
|
+
if suggest:
|
1791
|
+
pulumi.log.warn(f"Key '{key}' not found in ServicePerimeterDryRunEgressPolicyEgressTo. Access the value via the '{suggest}' property getter instead.")
|
1792
|
+
|
1793
|
+
def __getitem__(self, key: str) -> Any:
|
1794
|
+
ServicePerimeterDryRunEgressPolicyEgressTo.__key_warning(key)
|
1795
|
+
return super().__getitem__(key)
|
1796
|
+
|
1797
|
+
def get(self, key: str, default = None) -> Any:
|
1798
|
+
ServicePerimeterDryRunEgressPolicyEgressTo.__key_warning(key)
|
1799
|
+
return super().get(key, default)
|
1800
|
+
|
1801
|
+
def __init__(__self__, *,
|
1802
|
+
external_resources: Optional[Sequence[str]] = None,
|
1803
|
+
operations: Optional[Sequence['outputs.ServicePerimeterDryRunEgressPolicyEgressToOperation']] = None,
|
1804
|
+
resources: Optional[Sequence[str]] = None):
|
1805
|
+
"""
|
1806
|
+
:param Sequence[str] external_resources: A list of external resources that are allowed to be accessed. A request
|
1807
|
+
matches if it contains an external resource in this list (Example:
|
1808
|
+
s3://bucket/path). Currently '*' is not allowed.
|
1809
|
+
:param Sequence['ServicePerimeterDryRunEgressPolicyEgressToOperationArgs'] operations: A list of `ApiOperations` that this egress rule applies to. A request matches
|
1810
|
+
if it contains an operation/service in this list.
|
1811
|
+
Structure is documented below.
|
1812
|
+
:param Sequence[str] resources: A list of resources, currently only projects in the form
|
1813
|
+
`projects/<projectnumber>`, that match this to stanza. A request matches
|
1814
|
+
if it contains a resource in this list. If * is specified for resources,
|
1815
|
+
then this `EgressTo` rule will authorize access to all resources outside
|
1816
|
+
the perimeter.
|
1817
|
+
"""
|
1818
|
+
if external_resources is not None:
|
1819
|
+
pulumi.set(__self__, "external_resources", external_resources)
|
1820
|
+
if operations is not None:
|
1821
|
+
pulumi.set(__self__, "operations", operations)
|
1822
|
+
if resources is not None:
|
1823
|
+
pulumi.set(__self__, "resources", resources)
|
1824
|
+
|
1825
|
+
@property
|
1826
|
+
@pulumi.getter(name="externalResources")
|
1827
|
+
def external_resources(self) -> Optional[Sequence[str]]:
|
1828
|
+
"""
|
1829
|
+
A list of external resources that are allowed to be accessed. A request
|
1830
|
+
matches if it contains an external resource in this list (Example:
|
1831
|
+
s3://bucket/path). Currently '*' is not allowed.
|
1832
|
+
"""
|
1833
|
+
return pulumi.get(self, "external_resources")
|
1834
|
+
|
1835
|
+
@property
|
1836
|
+
@pulumi.getter
|
1837
|
+
def operations(self) -> Optional[Sequence['outputs.ServicePerimeterDryRunEgressPolicyEgressToOperation']]:
|
1838
|
+
"""
|
1839
|
+
A list of `ApiOperations` that this egress rule applies to. A request matches
|
1840
|
+
if it contains an operation/service in this list.
|
1841
|
+
Structure is documented below.
|
1842
|
+
"""
|
1843
|
+
return pulumi.get(self, "operations")
|
1844
|
+
|
1845
|
+
@property
|
1846
|
+
@pulumi.getter
|
1847
|
+
def resources(self) -> Optional[Sequence[str]]:
|
1848
|
+
"""
|
1849
|
+
A list of resources, currently only projects in the form
|
1850
|
+
`projects/<projectnumber>`, that match this to stanza. A request matches
|
1851
|
+
if it contains a resource in this list. If * is specified for resources,
|
1852
|
+
then this `EgressTo` rule will authorize access to all resources outside
|
1853
|
+
the perimeter.
|
1854
|
+
"""
|
1855
|
+
return pulumi.get(self, "resources")
|
1856
|
+
|
1857
|
+
|
1858
|
+
@pulumi.output_type
|
1859
|
+
class ServicePerimeterDryRunEgressPolicyEgressToOperation(dict):
|
1860
|
+
@staticmethod
|
1861
|
+
def __key_warning(key: str):
|
1862
|
+
suggest = None
|
1863
|
+
if key == "methodSelectors":
|
1864
|
+
suggest = "method_selectors"
|
1865
|
+
elif key == "serviceName":
|
1866
|
+
suggest = "service_name"
|
1867
|
+
|
1868
|
+
if suggest:
|
1869
|
+
pulumi.log.warn(f"Key '{key}' not found in ServicePerimeterDryRunEgressPolicyEgressToOperation. Access the value via the '{suggest}' property getter instead.")
|
1870
|
+
|
1871
|
+
def __getitem__(self, key: str) -> Any:
|
1872
|
+
ServicePerimeterDryRunEgressPolicyEgressToOperation.__key_warning(key)
|
1873
|
+
return super().__getitem__(key)
|
1874
|
+
|
1875
|
+
def get(self, key: str, default = None) -> Any:
|
1876
|
+
ServicePerimeterDryRunEgressPolicyEgressToOperation.__key_warning(key)
|
1877
|
+
return super().get(key, default)
|
1878
|
+
|
1879
|
+
def __init__(__self__, *,
|
1880
|
+
method_selectors: Optional[Sequence['outputs.ServicePerimeterDryRunEgressPolicyEgressToOperationMethodSelector']] = None,
|
1881
|
+
service_name: Optional[str] = None):
|
1882
|
+
"""
|
1883
|
+
:param Sequence['ServicePerimeterDryRunEgressPolicyEgressToOperationMethodSelectorArgs'] method_selectors: API methods or permissions to allow. Method or permission must belong
|
1884
|
+
to the service specified by `serviceName` field. A single MethodSelector
|
1885
|
+
entry with `*` specified for the `method` field will allow all methods
|
1886
|
+
AND permissions for the service specified in `serviceName`.
|
1887
|
+
Structure is documented below.
|
1888
|
+
:param str service_name: The name of the API whose methods or permissions the `IngressPolicy` or
|
1889
|
+
`EgressPolicy` want to allow. A single `ApiOperation` with serviceName
|
1890
|
+
field set to `*` will allow all methods AND permissions for all services.
|
1891
|
+
"""
|
1892
|
+
if method_selectors is not None:
|
1893
|
+
pulumi.set(__self__, "method_selectors", method_selectors)
|
1894
|
+
if service_name is not None:
|
1895
|
+
pulumi.set(__self__, "service_name", service_name)
|
1896
|
+
|
1897
|
+
@property
|
1898
|
+
@pulumi.getter(name="methodSelectors")
|
1899
|
+
def method_selectors(self) -> Optional[Sequence['outputs.ServicePerimeterDryRunEgressPolicyEgressToOperationMethodSelector']]:
|
1900
|
+
"""
|
1901
|
+
API methods or permissions to allow. Method or permission must belong
|
1902
|
+
to the service specified by `serviceName` field. A single MethodSelector
|
1903
|
+
entry with `*` specified for the `method` field will allow all methods
|
1904
|
+
AND permissions for the service specified in `serviceName`.
|
1905
|
+
Structure is documented below.
|
1906
|
+
"""
|
1907
|
+
return pulumi.get(self, "method_selectors")
|
1908
|
+
|
1909
|
+
@property
|
1910
|
+
@pulumi.getter(name="serviceName")
|
1911
|
+
def service_name(self) -> Optional[str]:
|
1912
|
+
"""
|
1913
|
+
The name of the API whose methods or permissions the `IngressPolicy` or
|
1914
|
+
`EgressPolicy` want to allow. A single `ApiOperation` with serviceName
|
1915
|
+
field set to `*` will allow all methods AND permissions for all services.
|
1916
|
+
"""
|
1917
|
+
return pulumi.get(self, "service_name")
|
1918
|
+
|
1919
|
+
|
1920
|
+
@pulumi.output_type
|
1921
|
+
class ServicePerimeterDryRunEgressPolicyEgressToOperationMethodSelector(dict):
|
1922
|
+
def __init__(__self__, *,
|
1923
|
+
method: Optional[str] = None,
|
1924
|
+
permission: Optional[str] = None):
|
1925
|
+
"""
|
1926
|
+
:param str method: Value for `method` should be a valid method name for the corresponding
|
1927
|
+
`serviceName` in `ApiOperation`. If `*` used as value for method,
|
1928
|
+
then ALL methods and permissions are allowed.
|
1929
|
+
:param str permission: Value for permission should be a valid Cloud IAM permission for the
|
1930
|
+
corresponding `serviceName` in `ApiOperation`.
|
1931
|
+
"""
|
1932
|
+
if method is not None:
|
1933
|
+
pulumi.set(__self__, "method", method)
|
1934
|
+
if permission is not None:
|
1935
|
+
pulumi.set(__self__, "permission", permission)
|
1936
|
+
|
1937
|
+
@property
|
1938
|
+
@pulumi.getter
|
1939
|
+
def method(self) -> Optional[str]:
|
1940
|
+
"""
|
1941
|
+
Value for `method` should be a valid method name for the corresponding
|
1942
|
+
`serviceName` in `ApiOperation`. If `*` used as value for method,
|
1943
|
+
then ALL methods and permissions are allowed.
|
1944
|
+
"""
|
1945
|
+
return pulumi.get(self, "method")
|
1946
|
+
|
1947
|
+
@property
|
1948
|
+
@pulumi.getter
|
1949
|
+
def permission(self) -> Optional[str]:
|
1950
|
+
"""
|
1951
|
+
Value for permission should be a valid Cloud IAM permission for the
|
1952
|
+
corresponding `serviceName` in `ApiOperation`.
|
1953
|
+
"""
|
1954
|
+
return pulumi.get(self, "permission")
|
1955
|
+
|
1956
|
+
|
1957
|
+
@pulumi.output_type
|
1958
|
+
class ServicePerimeterDryRunIngressPolicyIngressFrom(dict):
|
1959
|
+
@staticmethod
|
1960
|
+
def __key_warning(key: str):
|
1961
|
+
suggest = None
|
1962
|
+
if key == "identityType":
|
1963
|
+
suggest = "identity_type"
|
1964
|
+
|
1965
|
+
if suggest:
|
1966
|
+
pulumi.log.warn(f"Key '{key}' not found in ServicePerimeterDryRunIngressPolicyIngressFrom. Access the value via the '{suggest}' property getter instead.")
|
1967
|
+
|
1968
|
+
def __getitem__(self, key: str) -> Any:
|
1969
|
+
ServicePerimeterDryRunIngressPolicyIngressFrom.__key_warning(key)
|
1970
|
+
return super().__getitem__(key)
|
1971
|
+
|
1972
|
+
def get(self, key: str, default = None) -> Any:
|
1973
|
+
ServicePerimeterDryRunIngressPolicyIngressFrom.__key_warning(key)
|
1974
|
+
return super().get(key, default)
|
1975
|
+
|
1976
|
+
def __init__(__self__, *,
|
1977
|
+
identities: Optional[Sequence[str]] = None,
|
1978
|
+
identity_type: Optional[str] = None,
|
1979
|
+
sources: Optional[Sequence['outputs.ServicePerimeterDryRunIngressPolicyIngressFromSource']] = None):
|
1980
|
+
"""
|
1981
|
+
:param Sequence[str] identities: A list of identities that are allowed access through this ingress policy.
|
1982
|
+
Should be in the format of email address. The email address should represent
|
1983
|
+
individual user or service account only.
|
1984
|
+
:param str identity_type: Specifies the type of identities that are allowed access from outside the
|
1985
|
+
perimeter. If left unspecified, then members of `identities` field will be
|
1986
|
+
allowed access.
|
1987
|
+
Possible values are: `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
|
1988
|
+
:param Sequence['ServicePerimeterDryRunIngressPolicyIngressFromSourceArgs'] sources: Sources that this `IngressPolicy` authorizes access from.
|
1989
|
+
Structure is documented below.
|
1990
|
+
"""
|
1991
|
+
if identities is not None:
|
1992
|
+
pulumi.set(__self__, "identities", identities)
|
1993
|
+
if identity_type is not None:
|
1994
|
+
pulumi.set(__self__, "identity_type", identity_type)
|
1995
|
+
if sources is not None:
|
1996
|
+
pulumi.set(__self__, "sources", sources)
|
1997
|
+
|
1998
|
+
@property
|
1999
|
+
@pulumi.getter
|
2000
|
+
def identities(self) -> Optional[Sequence[str]]:
|
2001
|
+
"""
|
2002
|
+
A list of identities that are allowed access through this ingress policy.
|
2003
|
+
Should be in the format of email address. The email address should represent
|
2004
|
+
individual user or service account only.
|
2005
|
+
"""
|
2006
|
+
return pulumi.get(self, "identities")
|
2007
|
+
|
2008
|
+
@property
|
2009
|
+
@pulumi.getter(name="identityType")
|
2010
|
+
def identity_type(self) -> Optional[str]:
|
2011
|
+
"""
|
2012
|
+
Specifies the type of identities that are allowed access from outside the
|
2013
|
+
perimeter. If left unspecified, then members of `identities` field will be
|
2014
|
+
allowed access.
|
2015
|
+
Possible values are: `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
|
2016
|
+
"""
|
2017
|
+
return pulumi.get(self, "identity_type")
|
2018
|
+
|
2019
|
+
@property
|
2020
|
+
@pulumi.getter
|
2021
|
+
def sources(self) -> Optional[Sequence['outputs.ServicePerimeterDryRunIngressPolicyIngressFromSource']]:
|
2022
|
+
"""
|
2023
|
+
Sources that this `IngressPolicy` authorizes access from.
|
2024
|
+
Structure is documented below.
|
2025
|
+
"""
|
2026
|
+
return pulumi.get(self, "sources")
|
2027
|
+
|
2028
|
+
|
2029
|
+
@pulumi.output_type
|
2030
|
+
class ServicePerimeterDryRunIngressPolicyIngressFromSource(dict):
|
2031
|
+
@staticmethod
|
2032
|
+
def __key_warning(key: str):
|
2033
|
+
suggest = None
|
2034
|
+
if key == "accessLevel":
|
2035
|
+
suggest = "access_level"
|
2036
|
+
|
2037
|
+
if suggest:
|
2038
|
+
pulumi.log.warn(f"Key '{key}' not found in ServicePerimeterDryRunIngressPolicyIngressFromSource. Access the value via the '{suggest}' property getter instead.")
|
2039
|
+
|
2040
|
+
def __getitem__(self, key: str) -> Any:
|
2041
|
+
ServicePerimeterDryRunIngressPolicyIngressFromSource.__key_warning(key)
|
2042
|
+
return super().__getitem__(key)
|
2043
|
+
|
2044
|
+
def get(self, key: str, default = None) -> Any:
|
2045
|
+
ServicePerimeterDryRunIngressPolicyIngressFromSource.__key_warning(key)
|
2046
|
+
return super().get(key, default)
|
2047
|
+
|
2048
|
+
def __init__(__self__, *,
|
2049
|
+
access_level: Optional[str] = None,
|
2050
|
+
resource: Optional[str] = None):
|
2051
|
+
"""
|
2052
|
+
:param str access_level: An `AccessLevel` resource name that allow resources within the
|
2053
|
+
`ServicePerimeters` to be accessed from the internet. `AccessLevels` listed
|
2054
|
+
must be in the same policy as this `ServicePerimeter`. Referencing a nonexistent
|
2055
|
+
`AccessLevel` will cause an error. If no `AccessLevel` names are listed,
|
2056
|
+
resources within the perimeter can only be accessed via Google Cloud calls
|
2057
|
+
with request origins within the perimeter.
|
2058
|
+
Example `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL.`
|
2059
|
+
If * is specified, then all IngressSources will be allowed.
|
2060
|
+
:param str resource: A Google Cloud resource that is allowed to ingress the perimeter.
|
2061
|
+
Requests from these resources will be allowed to access perimeter data.
|
2062
|
+
Currently only projects are allowed. Format `projects/{project_number}`
|
2063
|
+
The project may be in any Google Cloud organization, not just the
|
2064
|
+
organization that the perimeter is defined in. `*` is not allowed, the case
|
2065
|
+
of allowing all Google Cloud resources only is not supported.
|
2066
|
+
"""
|
2067
|
+
if access_level is not None:
|
2068
|
+
pulumi.set(__self__, "access_level", access_level)
|
2069
|
+
if resource is not None:
|
2070
|
+
pulumi.set(__self__, "resource", resource)
|
2071
|
+
|
2072
|
+
@property
|
2073
|
+
@pulumi.getter(name="accessLevel")
|
2074
|
+
def access_level(self) -> Optional[str]:
|
2075
|
+
"""
|
2076
|
+
An `AccessLevel` resource name that allow resources within the
|
2077
|
+
`ServicePerimeters` to be accessed from the internet. `AccessLevels` listed
|
2078
|
+
must be in the same policy as this `ServicePerimeter`. Referencing a nonexistent
|
2079
|
+
`AccessLevel` will cause an error. If no `AccessLevel` names are listed,
|
2080
|
+
resources within the perimeter can only be accessed via Google Cloud calls
|
2081
|
+
with request origins within the perimeter.
|
2082
|
+
Example `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL.`
|
2083
|
+
If * is specified, then all IngressSources will be allowed.
|
2084
|
+
"""
|
2085
|
+
return pulumi.get(self, "access_level")
|
2086
|
+
|
2087
|
+
@property
|
2088
|
+
@pulumi.getter
|
2089
|
+
def resource(self) -> Optional[str]:
|
2090
|
+
"""
|
2091
|
+
A Google Cloud resource that is allowed to ingress the perimeter.
|
2092
|
+
Requests from these resources will be allowed to access perimeter data.
|
2093
|
+
Currently only projects are allowed. Format `projects/{project_number}`
|
2094
|
+
The project may be in any Google Cloud organization, not just the
|
2095
|
+
organization that the perimeter is defined in. `*` is not allowed, the case
|
2096
|
+
of allowing all Google Cloud resources only is not supported.
|
2097
|
+
"""
|
2098
|
+
return pulumi.get(self, "resource")
|
2099
|
+
|
2100
|
+
|
2101
|
+
@pulumi.output_type
|
2102
|
+
class ServicePerimeterDryRunIngressPolicyIngressTo(dict):
|
2103
|
+
def __init__(__self__, *,
|
2104
|
+
operations: Optional[Sequence['outputs.ServicePerimeterDryRunIngressPolicyIngressToOperation']] = None,
|
2105
|
+
resources: Optional[Sequence[str]] = None):
|
2106
|
+
"""
|
2107
|
+
:param Sequence['ServicePerimeterDryRunIngressPolicyIngressToOperationArgs'] operations: A list of `ApiOperations` the sources specified in corresponding `IngressFrom`
|
2108
|
+
are allowed to perform in this `ServicePerimeter`.
|
2109
|
+
Structure is documented below.
|
2110
|
+
:param Sequence[str] resources: A list of resources, currently only projects in the form
|
2111
|
+
`projects/<projectnumber>`, protected by this `ServicePerimeter`
|
2112
|
+
that are allowed to be accessed by sources defined in the
|
2113
|
+
corresponding `IngressFrom`. A request matches if it contains
|
2114
|
+
a resource in this list. If `*` is specified for resources,
|
2115
|
+
then this `IngressTo` rule will authorize access to all
|
2116
|
+
resources inside the perimeter, provided that the request
|
2117
|
+
also matches the `operations` field.
|
2118
|
+
"""
|
2119
|
+
if operations is not None:
|
2120
|
+
pulumi.set(__self__, "operations", operations)
|
2121
|
+
if resources is not None:
|
2122
|
+
pulumi.set(__self__, "resources", resources)
|
2123
|
+
|
2124
|
+
@property
|
2125
|
+
@pulumi.getter
|
2126
|
+
def operations(self) -> Optional[Sequence['outputs.ServicePerimeterDryRunIngressPolicyIngressToOperation']]:
|
2127
|
+
"""
|
2128
|
+
A list of `ApiOperations` the sources specified in corresponding `IngressFrom`
|
2129
|
+
are allowed to perform in this `ServicePerimeter`.
|
2130
|
+
Structure is documented below.
|
2131
|
+
"""
|
2132
|
+
return pulumi.get(self, "operations")
|
2133
|
+
|
2134
|
+
@property
|
2135
|
+
@pulumi.getter
|
2136
|
+
def resources(self) -> Optional[Sequence[str]]:
|
2137
|
+
"""
|
2138
|
+
A list of resources, currently only projects in the form
|
2139
|
+
`projects/<projectnumber>`, protected by this `ServicePerimeter`
|
2140
|
+
that are allowed to be accessed by sources defined in the
|
2141
|
+
corresponding `IngressFrom`. A request matches if it contains
|
2142
|
+
a resource in this list. If `*` is specified for resources,
|
2143
|
+
then this `IngressTo` rule will authorize access to all
|
2144
|
+
resources inside the perimeter, provided that the request
|
2145
|
+
also matches the `operations` field.
|
2146
|
+
"""
|
2147
|
+
return pulumi.get(self, "resources")
|
2148
|
+
|
2149
|
+
|
2150
|
+
@pulumi.output_type
|
2151
|
+
class ServicePerimeterDryRunIngressPolicyIngressToOperation(dict):
|
2152
|
+
@staticmethod
|
2153
|
+
def __key_warning(key: str):
|
2154
|
+
suggest = None
|
2155
|
+
if key == "methodSelectors":
|
2156
|
+
suggest = "method_selectors"
|
2157
|
+
elif key == "serviceName":
|
2158
|
+
suggest = "service_name"
|
2159
|
+
|
2160
|
+
if suggest:
|
2161
|
+
pulumi.log.warn(f"Key '{key}' not found in ServicePerimeterDryRunIngressPolicyIngressToOperation. Access the value via the '{suggest}' property getter instead.")
|
2162
|
+
|
2163
|
+
def __getitem__(self, key: str) -> Any:
|
2164
|
+
ServicePerimeterDryRunIngressPolicyIngressToOperation.__key_warning(key)
|
2165
|
+
return super().__getitem__(key)
|
2166
|
+
|
2167
|
+
def get(self, key: str, default = None) -> Any:
|
2168
|
+
ServicePerimeterDryRunIngressPolicyIngressToOperation.__key_warning(key)
|
2169
|
+
return super().get(key, default)
|
2170
|
+
|
2171
|
+
def __init__(__self__, *,
|
2172
|
+
method_selectors: Optional[Sequence['outputs.ServicePerimeterDryRunIngressPolicyIngressToOperationMethodSelector']] = None,
|
2173
|
+
service_name: Optional[str] = None):
|
2174
|
+
"""
|
2175
|
+
:param Sequence['ServicePerimeterDryRunIngressPolicyIngressToOperationMethodSelectorArgs'] method_selectors: API methods or permissions to allow. Method or permission must belong to
|
2176
|
+
the service specified by serviceName field. A single `MethodSelector` entry
|
2177
|
+
with `*` specified for the method field will allow all methods AND
|
2178
|
+
permissions for the service specified in `serviceName`.
|
2179
|
+
Structure is documented below.
|
2180
|
+
:param str service_name: The name of the API whose methods or permissions the `IngressPolicy` or
|
2181
|
+
`EgressPolicy` want to allow. A single `ApiOperation` with `serviceName`
|
2182
|
+
field set to `*` will allow all methods AND permissions for all services.
|
2183
|
+
"""
|
2184
|
+
if method_selectors is not None:
|
2185
|
+
pulumi.set(__self__, "method_selectors", method_selectors)
|
2186
|
+
if service_name is not None:
|
2187
|
+
pulumi.set(__self__, "service_name", service_name)
|
2188
|
+
|
2189
|
+
@property
|
2190
|
+
@pulumi.getter(name="methodSelectors")
|
2191
|
+
def method_selectors(self) -> Optional[Sequence['outputs.ServicePerimeterDryRunIngressPolicyIngressToOperationMethodSelector']]:
|
2192
|
+
"""
|
2193
|
+
API methods or permissions to allow. Method or permission must belong to
|
2194
|
+
the service specified by serviceName field. A single `MethodSelector` entry
|
2195
|
+
with `*` specified for the method field will allow all methods AND
|
2196
|
+
permissions for the service specified in `serviceName`.
|
2197
|
+
Structure is documented below.
|
2198
|
+
"""
|
2199
|
+
return pulumi.get(self, "method_selectors")
|
2200
|
+
|
2201
|
+
@property
|
2202
|
+
@pulumi.getter(name="serviceName")
|
2203
|
+
def service_name(self) -> Optional[str]:
|
2204
|
+
"""
|
2205
|
+
The name of the API whose methods or permissions the `IngressPolicy` or
|
2206
|
+
`EgressPolicy` want to allow. A single `ApiOperation` with `serviceName`
|
2207
|
+
field set to `*` will allow all methods AND permissions for all services.
|
2208
|
+
"""
|
2209
|
+
return pulumi.get(self, "service_name")
|
2210
|
+
|
2211
|
+
|
2212
|
+
@pulumi.output_type
|
2213
|
+
class ServicePerimeterDryRunIngressPolicyIngressToOperationMethodSelector(dict):
|
2214
|
+
def __init__(__self__, *,
|
2215
|
+
method: Optional[str] = None,
|
2216
|
+
permission: Optional[str] = None):
|
2217
|
+
"""
|
2218
|
+
:param str method: Value for method should be a valid method name for the corresponding
|
2219
|
+
serviceName in `ApiOperation`. If `*` used as value for `method`, then
|
2220
|
+
ALL methods and permissions are allowed.
|
2221
|
+
:param str permission: Value for permission should be a valid Cloud IAM permission for the
|
2222
|
+
corresponding `serviceName` in `ApiOperation`.
|
2223
|
+
"""
|
2224
|
+
if method is not None:
|
2225
|
+
pulumi.set(__self__, "method", method)
|
2226
|
+
if permission is not None:
|
2227
|
+
pulumi.set(__self__, "permission", permission)
|
2228
|
+
|
2229
|
+
@property
|
2230
|
+
@pulumi.getter
|
2231
|
+
def method(self) -> Optional[str]:
|
2232
|
+
"""
|
2233
|
+
Value for method should be a valid method name for the corresponding
|
2234
|
+
serviceName in `ApiOperation`. If `*` used as value for `method`, then
|
2235
|
+
ALL methods and permissions are allowed.
|
2236
|
+
"""
|
2237
|
+
return pulumi.get(self, "method")
|
2238
|
+
|
2239
|
+
@property
|
2240
|
+
@pulumi.getter
|
2241
|
+
def permission(self) -> Optional[str]:
|
2242
|
+
"""
|
2243
|
+
Value for permission should be a valid Cloud IAM permission for the
|
2244
|
+
corresponding `serviceName` in `ApiOperation`.
|
2245
|
+
"""
|
2246
|
+
return pulumi.get(self, "permission")
|
2247
|
+
|
2248
|
+
|
1648
2249
|
@pulumi.output_type
|
1649
2250
|
class ServicePerimeterEgressPolicyEgressFrom(dict):
|
1650
2251
|
@staticmethod
|