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
@@ -61,6 +61,26 @@ __all__ = [
|
|
61
61
|
'AccessPolicyIamBindingConditionArgsDict',
|
62
62
|
'AccessPolicyIamMemberConditionArgs',
|
63
63
|
'AccessPolicyIamMemberConditionArgsDict',
|
64
|
+
'ServicePerimeterDryRunEgressPolicyEgressFromArgs',
|
65
|
+
'ServicePerimeterDryRunEgressPolicyEgressFromArgsDict',
|
66
|
+
'ServicePerimeterDryRunEgressPolicyEgressFromSourceArgs',
|
67
|
+
'ServicePerimeterDryRunEgressPolicyEgressFromSourceArgsDict',
|
68
|
+
'ServicePerimeterDryRunEgressPolicyEgressToArgs',
|
69
|
+
'ServicePerimeterDryRunEgressPolicyEgressToArgsDict',
|
70
|
+
'ServicePerimeterDryRunEgressPolicyEgressToOperationArgs',
|
71
|
+
'ServicePerimeterDryRunEgressPolicyEgressToOperationArgsDict',
|
72
|
+
'ServicePerimeterDryRunEgressPolicyEgressToOperationMethodSelectorArgs',
|
73
|
+
'ServicePerimeterDryRunEgressPolicyEgressToOperationMethodSelectorArgsDict',
|
74
|
+
'ServicePerimeterDryRunIngressPolicyIngressFromArgs',
|
75
|
+
'ServicePerimeterDryRunIngressPolicyIngressFromArgsDict',
|
76
|
+
'ServicePerimeterDryRunIngressPolicyIngressFromSourceArgs',
|
77
|
+
'ServicePerimeterDryRunIngressPolicyIngressFromSourceArgsDict',
|
78
|
+
'ServicePerimeterDryRunIngressPolicyIngressToArgs',
|
79
|
+
'ServicePerimeterDryRunIngressPolicyIngressToArgsDict',
|
80
|
+
'ServicePerimeterDryRunIngressPolicyIngressToOperationArgs',
|
81
|
+
'ServicePerimeterDryRunIngressPolicyIngressToOperationArgsDict',
|
82
|
+
'ServicePerimeterDryRunIngressPolicyIngressToOperationMethodSelectorArgs',
|
83
|
+
'ServicePerimeterDryRunIngressPolicyIngressToOperationMethodSelectorArgsDict',
|
64
84
|
'ServicePerimeterEgressPolicyEgressFromArgs',
|
65
85
|
'ServicePerimeterEgressPolicyEgressFromArgsDict',
|
66
86
|
'ServicePerimeterEgressPolicyEgressFromSourceArgs',
|
@@ -2207,6 +2227,766 @@ class AccessPolicyIamMemberConditionArgs:
|
|
2207
2227
|
pulumi.set(self, "description", value)
|
2208
2228
|
|
2209
2229
|
|
2230
|
+
if not MYPY:
|
2231
|
+
class ServicePerimeterDryRunEgressPolicyEgressFromArgsDict(TypedDict):
|
2232
|
+
identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
2233
|
+
"""
|
2234
|
+
A list of identities that are allowed access through this `EgressPolicy`.
|
2235
|
+
Should be in the format of email address. The email address should
|
2236
|
+
represent individual user or service account only.
|
2237
|
+
"""
|
2238
|
+
identity_type: NotRequired[pulumi.Input[str]]
|
2239
|
+
"""
|
2240
|
+
Specifies the type of identities that are allowed access to outside the
|
2241
|
+
perimeter. If left unspecified, then members of `identities` field will
|
2242
|
+
be allowed access.
|
2243
|
+
Possible values are: `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
|
2244
|
+
"""
|
2245
|
+
source_restriction: NotRequired[pulumi.Input[str]]
|
2246
|
+
"""
|
2247
|
+
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`.
|
2248
|
+
Possible values are: `SOURCE_RESTRICTION_ENABLED`, `SOURCE_RESTRICTION_DISABLED`.
|
2249
|
+
"""
|
2250
|
+
sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressFromSourceArgsDict']]]]
|
2251
|
+
"""
|
2252
|
+
Sources that this EgressPolicy authorizes access from.
|
2253
|
+
Structure is documented below.
|
2254
|
+
"""
|
2255
|
+
elif False:
|
2256
|
+
ServicePerimeterDryRunEgressPolicyEgressFromArgsDict: TypeAlias = Mapping[str, Any]
|
2257
|
+
|
2258
|
+
@pulumi.input_type
|
2259
|
+
class ServicePerimeterDryRunEgressPolicyEgressFromArgs:
|
2260
|
+
def __init__(__self__, *,
|
2261
|
+
identities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
2262
|
+
identity_type: Optional[pulumi.Input[str]] = None,
|
2263
|
+
source_restriction: Optional[pulumi.Input[str]] = None,
|
2264
|
+
sources: Optional[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressFromSourceArgs']]]] = None):
|
2265
|
+
"""
|
2266
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] identities: A list of identities that are allowed access through this `EgressPolicy`.
|
2267
|
+
Should be in the format of email address. The email address should
|
2268
|
+
represent individual user or service account only.
|
2269
|
+
:param pulumi.Input[str] identity_type: Specifies the type of identities that are allowed access to outside the
|
2270
|
+
perimeter. If left unspecified, then members of `identities` field will
|
2271
|
+
be allowed access.
|
2272
|
+
Possible values are: `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
|
2273
|
+
:param pulumi.Input[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`.
|
2274
|
+
Possible values are: `SOURCE_RESTRICTION_ENABLED`, `SOURCE_RESTRICTION_DISABLED`.
|
2275
|
+
:param pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressFromSourceArgs']]] sources: Sources that this EgressPolicy authorizes access from.
|
2276
|
+
Structure is documented below.
|
2277
|
+
"""
|
2278
|
+
if identities is not None:
|
2279
|
+
pulumi.set(__self__, "identities", identities)
|
2280
|
+
if identity_type is not None:
|
2281
|
+
pulumi.set(__self__, "identity_type", identity_type)
|
2282
|
+
if source_restriction is not None:
|
2283
|
+
pulumi.set(__self__, "source_restriction", source_restriction)
|
2284
|
+
if sources is not None:
|
2285
|
+
pulumi.set(__self__, "sources", sources)
|
2286
|
+
|
2287
|
+
@property
|
2288
|
+
@pulumi.getter
|
2289
|
+
def identities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
2290
|
+
"""
|
2291
|
+
A list of identities that are allowed access through this `EgressPolicy`.
|
2292
|
+
Should be in the format of email address. The email address should
|
2293
|
+
represent individual user or service account only.
|
2294
|
+
"""
|
2295
|
+
return pulumi.get(self, "identities")
|
2296
|
+
|
2297
|
+
@identities.setter
|
2298
|
+
def identities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
2299
|
+
pulumi.set(self, "identities", value)
|
2300
|
+
|
2301
|
+
@property
|
2302
|
+
@pulumi.getter(name="identityType")
|
2303
|
+
def identity_type(self) -> Optional[pulumi.Input[str]]:
|
2304
|
+
"""
|
2305
|
+
Specifies the type of identities that are allowed access to outside the
|
2306
|
+
perimeter. If left unspecified, then members of `identities` field will
|
2307
|
+
be allowed access.
|
2308
|
+
Possible values are: `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
|
2309
|
+
"""
|
2310
|
+
return pulumi.get(self, "identity_type")
|
2311
|
+
|
2312
|
+
@identity_type.setter
|
2313
|
+
def identity_type(self, value: Optional[pulumi.Input[str]]):
|
2314
|
+
pulumi.set(self, "identity_type", value)
|
2315
|
+
|
2316
|
+
@property
|
2317
|
+
@pulumi.getter(name="sourceRestriction")
|
2318
|
+
def source_restriction(self) -> Optional[pulumi.Input[str]]:
|
2319
|
+
"""
|
2320
|
+
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`.
|
2321
|
+
Possible values are: `SOURCE_RESTRICTION_ENABLED`, `SOURCE_RESTRICTION_DISABLED`.
|
2322
|
+
"""
|
2323
|
+
return pulumi.get(self, "source_restriction")
|
2324
|
+
|
2325
|
+
@source_restriction.setter
|
2326
|
+
def source_restriction(self, value: Optional[pulumi.Input[str]]):
|
2327
|
+
pulumi.set(self, "source_restriction", value)
|
2328
|
+
|
2329
|
+
@property
|
2330
|
+
@pulumi.getter
|
2331
|
+
def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressFromSourceArgs']]]]:
|
2332
|
+
"""
|
2333
|
+
Sources that this EgressPolicy authorizes access from.
|
2334
|
+
Structure is documented below.
|
2335
|
+
"""
|
2336
|
+
return pulumi.get(self, "sources")
|
2337
|
+
|
2338
|
+
@sources.setter
|
2339
|
+
def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressFromSourceArgs']]]]):
|
2340
|
+
pulumi.set(self, "sources", value)
|
2341
|
+
|
2342
|
+
|
2343
|
+
if not MYPY:
|
2344
|
+
class ServicePerimeterDryRunEgressPolicyEgressFromSourceArgsDict(TypedDict):
|
2345
|
+
access_level: NotRequired[pulumi.Input[str]]
|
2346
|
+
"""
|
2347
|
+
An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
|
2348
|
+
"""
|
2349
|
+
elif False:
|
2350
|
+
ServicePerimeterDryRunEgressPolicyEgressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
|
2351
|
+
|
2352
|
+
@pulumi.input_type
|
2353
|
+
class ServicePerimeterDryRunEgressPolicyEgressFromSourceArgs:
|
2354
|
+
def __init__(__self__, *,
|
2355
|
+
access_level: Optional[pulumi.Input[str]] = None):
|
2356
|
+
"""
|
2357
|
+
:param pulumi.Input[str] access_level: An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
|
2358
|
+
"""
|
2359
|
+
if access_level is not None:
|
2360
|
+
pulumi.set(__self__, "access_level", access_level)
|
2361
|
+
|
2362
|
+
@property
|
2363
|
+
@pulumi.getter(name="accessLevel")
|
2364
|
+
def access_level(self) -> Optional[pulumi.Input[str]]:
|
2365
|
+
"""
|
2366
|
+
An AccessLevel resource name that allows resources outside the ServicePerimeter to be accessed from the inside.
|
2367
|
+
"""
|
2368
|
+
return pulumi.get(self, "access_level")
|
2369
|
+
|
2370
|
+
@access_level.setter
|
2371
|
+
def access_level(self, value: Optional[pulumi.Input[str]]):
|
2372
|
+
pulumi.set(self, "access_level", value)
|
2373
|
+
|
2374
|
+
|
2375
|
+
if not MYPY:
|
2376
|
+
class ServicePerimeterDryRunEgressPolicyEgressToArgsDict(TypedDict):
|
2377
|
+
external_resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
2378
|
+
"""
|
2379
|
+
A list of external resources that are allowed to be accessed. A request
|
2380
|
+
matches if it contains an external resource in this list (Example:
|
2381
|
+
s3://bucket/path). Currently '*' is not allowed.
|
2382
|
+
"""
|
2383
|
+
operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressToOperationArgsDict']]]]
|
2384
|
+
"""
|
2385
|
+
A list of `ApiOperations` that this egress rule applies to. A request matches
|
2386
|
+
if it contains an operation/service in this list.
|
2387
|
+
Structure is documented below.
|
2388
|
+
"""
|
2389
|
+
resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
2390
|
+
"""
|
2391
|
+
A list of resources, currently only projects in the form
|
2392
|
+
`projects/<projectnumber>`, that match this to stanza. A request matches
|
2393
|
+
if it contains a resource in this list. If * is specified for resources,
|
2394
|
+
then this `EgressTo` rule will authorize access to all resources outside
|
2395
|
+
the perimeter.
|
2396
|
+
"""
|
2397
|
+
elif False:
|
2398
|
+
ServicePerimeterDryRunEgressPolicyEgressToArgsDict: TypeAlias = Mapping[str, Any]
|
2399
|
+
|
2400
|
+
@pulumi.input_type
|
2401
|
+
class ServicePerimeterDryRunEgressPolicyEgressToArgs:
|
2402
|
+
def __init__(__self__, *,
|
2403
|
+
external_resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
2404
|
+
operations: Optional[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressToOperationArgs']]]] = None,
|
2405
|
+
resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
|
2406
|
+
"""
|
2407
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] external_resources: A list of external resources that are allowed to be accessed. A request
|
2408
|
+
matches if it contains an external resource in this list (Example:
|
2409
|
+
s3://bucket/path). Currently '*' is not allowed.
|
2410
|
+
:param pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressToOperationArgs']]] operations: A list of `ApiOperations` that this egress rule applies to. A request matches
|
2411
|
+
if it contains an operation/service in this list.
|
2412
|
+
Structure is documented below.
|
2413
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] resources: A list of resources, currently only projects in the form
|
2414
|
+
`projects/<projectnumber>`, that match this to stanza. A request matches
|
2415
|
+
if it contains a resource in this list. If * is specified for resources,
|
2416
|
+
then this `EgressTo` rule will authorize access to all resources outside
|
2417
|
+
the perimeter.
|
2418
|
+
"""
|
2419
|
+
if external_resources is not None:
|
2420
|
+
pulumi.set(__self__, "external_resources", external_resources)
|
2421
|
+
if operations is not None:
|
2422
|
+
pulumi.set(__self__, "operations", operations)
|
2423
|
+
if resources is not None:
|
2424
|
+
pulumi.set(__self__, "resources", resources)
|
2425
|
+
|
2426
|
+
@property
|
2427
|
+
@pulumi.getter(name="externalResources")
|
2428
|
+
def external_resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
2429
|
+
"""
|
2430
|
+
A list of external resources that are allowed to be accessed. A request
|
2431
|
+
matches if it contains an external resource in this list (Example:
|
2432
|
+
s3://bucket/path). Currently '*' is not allowed.
|
2433
|
+
"""
|
2434
|
+
return pulumi.get(self, "external_resources")
|
2435
|
+
|
2436
|
+
@external_resources.setter
|
2437
|
+
def external_resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
2438
|
+
pulumi.set(self, "external_resources", value)
|
2439
|
+
|
2440
|
+
@property
|
2441
|
+
@pulumi.getter
|
2442
|
+
def operations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressToOperationArgs']]]]:
|
2443
|
+
"""
|
2444
|
+
A list of `ApiOperations` that this egress rule applies to. A request matches
|
2445
|
+
if it contains an operation/service in this list.
|
2446
|
+
Structure is documented below.
|
2447
|
+
"""
|
2448
|
+
return pulumi.get(self, "operations")
|
2449
|
+
|
2450
|
+
@operations.setter
|
2451
|
+
def operations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressToOperationArgs']]]]):
|
2452
|
+
pulumi.set(self, "operations", value)
|
2453
|
+
|
2454
|
+
@property
|
2455
|
+
@pulumi.getter
|
2456
|
+
def resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
2457
|
+
"""
|
2458
|
+
A list of resources, currently only projects in the form
|
2459
|
+
`projects/<projectnumber>`, that match this to stanza. A request matches
|
2460
|
+
if it contains a resource in this list. If * is specified for resources,
|
2461
|
+
then this `EgressTo` rule will authorize access to all resources outside
|
2462
|
+
the perimeter.
|
2463
|
+
"""
|
2464
|
+
return pulumi.get(self, "resources")
|
2465
|
+
|
2466
|
+
@resources.setter
|
2467
|
+
def resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
2468
|
+
pulumi.set(self, "resources", value)
|
2469
|
+
|
2470
|
+
|
2471
|
+
if not MYPY:
|
2472
|
+
class ServicePerimeterDryRunEgressPolicyEgressToOperationArgsDict(TypedDict):
|
2473
|
+
method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressToOperationMethodSelectorArgsDict']]]]
|
2474
|
+
"""
|
2475
|
+
API methods or permissions to allow. Method or permission must belong
|
2476
|
+
to the service specified by `serviceName` field. A single MethodSelector
|
2477
|
+
entry with `*` specified for the `method` field will allow all methods
|
2478
|
+
AND permissions for the service specified in `serviceName`.
|
2479
|
+
Structure is documented below.
|
2480
|
+
"""
|
2481
|
+
service_name: NotRequired[pulumi.Input[str]]
|
2482
|
+
"""
|
2483
|
+
The name of the API whose methods or permissions the `IngressPolicy` or
|
2484
|
+
`EgressPolicy` want to allow. A single `ApiOperation` with serviceName
|
2485
|
+
field set to `*` will allow all methods AND permissions for all services.
|
2486
|
+
"""
|
2487
|
+
elif False:
|
2488
|
+
ServicePerimeterDryRunEgressPolicyEgressToOperationArgsDict: TypeAlias = Mapping[str, Any]
|
2489
|
+
|
2490
|
+
@pulumi.input_type
|
2491
|
+
class ServicePerimeterDryRunEgressPolicyEgressToOperationArgs:
|
2492
|
+
def __init__(__self__, *,
|
2493
|
+
method_selectors: Optional[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressToOperationMethodSelectorArgs']]]] = None,
|
2494
|
+
service_name: Optional[pulumi.Input[str]] = None):
|
2495
|
+
"""
|
2496
|
+
:param pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressToOperationMethodSelectorArgs']]] method_selectors: API methods or permissions to allow. Method or permission must belong
|
2497
|
+
to the service specified by `serviceName` field. A single MethodSelector
|
2498
|
+
entry with `*` specified for the `method` field will allow all methods
|
2499
|
+
AND permissions for the service specified in `serviceName`.
|
2500
|
+
Structure is documented below.
|
2501
|
+
:param pulumi.Input[str] service_name: The name of the API whose methods or permissions the `IngressPolicy` or
|
2502
|
+
`EgressPolicy` want to allow. A single `ApiOperation` with serviceName
|
2503
|
+
field set to `*` will allow all methods AND permissions for all services.
|
2504
|
+
"""
|
2505
|
+
if method_selectors is not None:
|
2506
|
+
pulumi.set(__self__, "method_selectors", method_selectors)
|
2507
|
+
if service_name is not None:
|
2508
|
+
pulumi.set(__self__, "service_name", service_name)
|
2509
|
+
|
2510
|
+
@property
|
2511
|
+
@pulumi.getter(name="methodSelectors")
|
2512
|
+
def method_selectors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressToOperationMethodSelectorArgs']]]]:
|
2513
|
+
"""
|
2514
|
+
API methods or permissions to allow. Method or permission must belong
|
2515
|
+
to the service specified by `serviceName` field. A single MethodSelector
|
2516
|
+
entry with `*` specified for the `method` field will allow all methods
|
2517
|
+
AND permissions for the service specified in `serviceName`.
|
2518
|
+
Structure is documented below.
|
2519
|
+
"""
|
2520
|
+
return pulumi.get(self, "method_selectors")
|
2521
|
+
|
2522
|
+
@method_selectors.setter
|
2523
|
+
def method_selectors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunEgressPolicyEgressToOperationMethodSelectorArgs']]]]):
|
2524
|
+
pulumi.set(self, "method_selectors", value)
|
2525
|
+
|
2526
|
+
@property
|
2527
|
+
@pulumi.getter(name="serviceName")
|
2528
|
+
def service_name(self) -> Optional[pulumi.Input[str]]:
|
2529
|
+
"""
|
2530
|
+
The name of the API whose methods or permissions the `IngressPolicy` or
|
2531
|
+
`EgressPolicy` want to allow. A single `ApiOperation` with serviceName
|
2532
|
+
field set to `*` will allow all methods AND permissions for all services.
|
2533
|
+
"""
|
2534
|
+
return pulumi.get(self, "service_name")
|
2535
|
+
|
2536
|
+
@service_name.setter
|
2537
|
+
def service_name(self, value: Optional[pulumi.Input[str]]):
|
2538
|
+
pulumi.set(self, "service_name", value)
|
2539
|
+
|
2540
|
+
|
2541
|
+
if not MYPY:
|
2542
|
+
class ServicePerimeterDryRunEgressPolicyEgressToOperationMethodSelectorArgsDict(TypedDict):
|
2543
|
+
method: NotRequired[pulumi.Input[str]]
|
2544
|
+
"""
|
2545
|
+
Value for `method` should be a valid method name for the corresponding
|
2546
|
+
`serviceName` in `ApiOperation`. If `*` used as value for method,
|
2547
|
+
then ALL methods and permissions are allowed.
|
2548
|
+
"""
|
2549
|
+
permission: NotRequired[pulumi.Input[str]]
|
2550
|
+
"""
|
2551
|
+
Value for permission should be a valid Cloud IAM permission for the
|
2552
|
+
corresponding `serviceName` in `ApiOperation`.
|
2553
|
+
"""
|
2554
|
+
elif False:
|
2555
|
+
ServicePerimeterDryRunEgressPolicyEgressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
|
2556
|
+
|
2557
|
+
@pulumi.input_type
|
2558
|
+
class ServicePerimeterDryRunEgressPolicyEgressToOperationMethodSelectorArgs:
|
2559
|
+
def __init__(__self__, *,
|
2560
|
+
method: Optional[pulumi.Input[str]] = None,
|
2561
|
+
permission: Optional[pulumi.Input[str]] = None):
|
2562
|
+
"""
|
2563
|
+
:param pulumi.Input[str] method: Value for `method` should be a valid method name for the corresponding
|
2564
|
+
`serviceName` in `ApiOperation`. If `*` used as value for method,
|
2565
|
+
then ALL methods and permissions are allowed.
|
2566
|
+
:param pulumi.Input[str] permission: Value for permission should be a valid Cloud IAM permission for the
|
2567
|
+
corresponding `serviceName` in `ApiOperation`.
|
2568
|
+
"""
|
2569
|
+
if method is not None:
|
2570
|
+
pulumi.set(__self__, "method", method)
|
2571
|
+
if permission is not None:
|
2572
|
+
pulumi.set(__self__, "permission", permission)
|
2573
|
+
|
2574
|
+
@property
|
2575
|
+
@pulumi.getter
|
2576
|
+
def method(self) -> Optional[pulumi.Input[str]]:
|
2577
|
+
"""
|
2578
|
+
Value for `method` should be a valid method name for the corresponding
|
2579
|
+
`serviceName` in `ApiOperation`. If `*` used as value for method,
|
2580
|
+
then ALL methods and permissions are allowed.
|
2581
|
+
"""
|
2582
|
+
return pulumi.get(self, "method")
|
2583
|
+
|
2584
|
+
@method.setter
|
2585
|
+
def method(self, value: Optional[pulumi.Input[str]]):
|
2586
|
+
pulumi.set(self, "method", value)
|
2587
|
+
|
2588
|
+
@property
|
2589
|
+
@pulumi.getter
|
2590
|
+
def permission(self) -> Optional[pulumi.Input[str]]:
|
2591
|
+
"""
|
2592
|
+
Value for permission should be a valid Cloud IAM permission for the
|
2593
|
+
corresponding `serviceName` in `ApiOperation`.
|
2594
|
+
"""
|
2595
|
+
return pulumi.get(self, "permission")
|
2596
|
+
|
2597
|
+
@permission.setter
|
2598
|
+
def permission(self, value: Optional[pulumi.Input[str]]):
|
2599
|
+
pulumi.set(self, "permission", value)
|
2600
|
+
|
2601
|
+
|
2602
|
+
if not MYPY:
|
2603
|
+
class ServicePerimeterDryRunIngressPolicyIngressFromArgsDict(TypedDict):
|
2604
|
+
identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
2605
|
+
"""
|
2606
|
+
A list of identities that are allowed access through this ingress policy.
|
2607
|
+
Should be in the format of email address. The email address should represent
|
2608
|
+
individual user or service account only.
|
2609
|
+
"""
|
2610
|
+
identity_type: NotRequired[pulumi.Input[str]]
|
2611
|
+
"""
|
2612
|
+
Specifies the type of identities that are allowed access from outside the
|
2613
|
+
perimeter. If left unspecified, then members of `identities` field will be
|
2614
|
+
allowed access.
|
2615
|
+
Possible values are: `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
|
2616
|
+
"""
|
2617
|
+
sources: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressFromSourceArgsDict']]]]
|
2618
|
+
"""
|
2619
|
+
Sources that this `IngressPolicy` authorizes access from.
|
2620
|
+
Structure is documented below.
|
2621
|
+
"""
|
2622
|
+
elif False:
|
2623
|
+
ServicePerimeterDryRunIngressPolicyIngressFromArgsDict: TypeAlias = Mapping[str, Any]
|
2624
|
+
|
2625
|
+
@pulumi.input_type
|
2626
|
+
class ServicePerimeterDryRunIngressPolicyIngressFromArgs:
|
2627
|
+
def __init__(__self__, *,
|
2628
|
+
identities: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
2629
|
+
identity_type: Optional[pulumi.Input[str]] = None,
|
2630
|
+
sources: Optional[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressFromSourceArgs']]]] = None):
|
2631
|
+
"""
|
2632
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] identities: A list of identities that are allowed access through this ingress policy.
|
2633
|
+
Should be in the format of email address. The email address should represent
|
2634
|
+
individual user or service account only.
|
2635
|
+
:param pulumi.Input[str] identity_type: Specifies the type of identities that are allowed access from outside the
|
2636
|
+
perimeter. If left unspecified, then members of `identities` field will be
|
2637
|
+
allowed access.
|
2638
|
+
Possible values are: `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
|
2639
|
+
:param pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressFromSourceArgs']]] sources: Sources that this `IngressPolicy` authorizes access from.
|
2640
|
+
Structure is documented below.
|
2641
|
+
"""
|
2642
|
+
if identities is not None:
|
2643
|
+
pulumi.set(__self__, "identities", identities)
|
2644
|
+
if identity_type is not None:
|
2645
|
+
pulumi.set(__self__, "identity_type", identity_type)
|
2646
|
+
if sources is not None:
|
2647
|
+
pulumi.set(__self__, "sources", sources)
|
2648
|
+
|
2649
|
+
@property
|
2650
|
+
@pulumi.getter
|
2651
|
+
def identities(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
2652
|
+
"""
|
2653
|
+
A list of identities that are allowed access through this ingress policy.
|
2654
|
+
Should be in the format of email address. The email address should represent
|
2655
|
+
individual user or service account only.
|
2656
|
+
"""
|
2657
|
+
return pulumi.get(self, "identities")
|
2658
|
+
|
2659
|
+
@identities.setter
|
2660
|
+
def identities(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
2661
|
+
pulumi.set(self, "identities", value)
|
2662
|
+
|
2663
|
+
@property
|
2664
|
+
@pulumi.getter(name="identityType")
|
2665
|
+
def identity_type(self) -> Optional[pulumi.Input[str]]:
|
2666
|
+
"""
|
2667
|
+
Specifies the type of identities that are allowed access from outside the
|
2668
|
+
perimeter. If left unspecified, then members of `identities` field will be
|
2669
|
+
allowed access.
|
2670
|
+
Possible values are: `ANY_IDENTITY`, `ANY_USER_ACCOUNT`, `ANY_SERVICE_ACCOUNT`.
|
2671
|
+
"""
|
2672
|
+
return pulumi.get(self, "identity_type")
|
2673
|
+
|
2674
|
+
@identity_type.setter
|
2675
|
+
def identity_type(self, value: Optional[pulumi.Input[str]]):
|
2676
|
+
pulumi.set(self, "identity_type", value)
|
2677
|
+
|
2678
|
+
@property
|
2679
|
+
@pulumi.getter
|
2680
|
+
def sources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressFromSourceArgs']]]]:
|
2681
|
+
"""
|
2682
|
+
Sources that this `IngressPolicy` authorizes access from.
|
2683
|
+
Structure is documented below.
|
2684
|
+
"""
|
2685
|
+
return pulumi.get(self, "sources")
|
2686
|
+
|
2687
|
+
@sources.setter
|
2688
|
+
def sources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressFromSourceArgs']]]]):
|
2689
|
+
pulumi.set(self, "sources", value)
|
2690
|
+
|
2691
|
+
|
2692
|
+
if not MYPY:
|
2693
|
+
class ServicePerimeterDryRunIngressPolicyIngressFromSourceArgsDict(TypedDict):
|
2694
|
+
access_level: NotRequired[pulumi.Input[str]]
|
2695
|
+
"""
|
2696
|
+
An `AccessLevel` resource name that allow resources within the
|
2697
|
+
`ServicePerimeters` to be accessed from the internet. `AccessLevels` listed
|
2698
|
+
must be in the same policy as this `ServicePerimeter`. Referencing a nonexistent
|
2699
|
+
`AccessLevel` will cause an error. If no `AccessLevel` names are listed,
|
2700
|
+
resources within the perimeter can only be accessed via Google Cloud calls
|
2701
|
+
with request origins within the perimeter.
|
2702
|
+
Example `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL.`
|
2703
|
+
If * is specified, then all IngressSources will be allowed.
|
2704
|
+
"""
|
2705
|
+
resource: NotRequired[pulumi.Input[str]]
|
2706
|
+
"""
|
2707
|
+
A Google Cloud resource that is allowed to ingress the perimeter.
|
2708
|
+
Requests from these resources will be allowed to access perimeter data.
|
2709
|
+
Currently only projects are allowed. Format `projects/{project_number}`
|
2710
|
+
The project may be in any Google Cloud organization, not just the
|
2711
|
+
organization that the perimeter is defined in. `*` is not allowed, the case
|
2712
|
+
of allowing all Google Cloud resources only is not supported.
|
2713
|
+
"""
|
2714
|
+
elif False:
|
2715
|
+
ServicePerimeterDryRunIngressPolicyIngressFromSourceArgsDict: TypeAlias = Mapping[str, Any]
|
2716
|
+
|
2717
|
+
@pulumi.input_type
|
2718
|
+
class ServicePerimeterDryRunIngressPolicyIngressFromSourceArgs:
|
2719
|
+
def __init__(__self__, *,
|
2720
|
+
access_level: Optional[pulumi.Input[str]] = None,
|
2721
|
+
resource: Optional[pulumi.Input[str]] = None):
|
2722
|
+
"""
|
2723
|
+
:param pulumi.Input[str] access_level: An `AccessLevel` resource name that allow resources within the
|
2724
|
+
`ServicePerimeters` to be accessed from the internet. `AccessLevels` listed
|
2725
|
+
must be in the same policy as this `ServicePerimeter`. Referencing a nonexistent
|
2726
|
+
`AccessLevel` will cause an error. If no `AccessLevel` names are listed,
|
2727
|
+
resources within the perimeter can only be accessed via Google Cloud calls
|
2728
|
+
with request origins within the perimeter.
|
2729
|
+
Example `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL.`
|
2730
|
+
If * is specified, then all IngressSources will be allowed.
|
2731
|
+
:param pulumi.Input[str] resource: A Google Cloud resource that is allowed to ingress the perimeter.
|
2732
|
+
Requests from these resources will be allowed to access perimeter data.
|
2733
|
+
Currently only projects are allowed. Format `projects/{project_number}`
|
2734
|
+
The project may be in any Google Cloud organization, not just the
|
2735
|
+
organization that the perimeter is defined in. `*` is not allowed, the case
|
2736
|
+
of allowing all Google Cloud resources only is not supported.
|
2737
|
+
"""
|
2738
|
+
if access_level is not None:
|
2739
|
+
pulumi.set(__self__, "access_level", access_level)
|
2740
|
+
if resource is not None:
|
2741
|
+
pulumi.set(__self__, "resource", resource)
|
2742
|
+
|
2743
|
+
@property
|
2744
|
+
@pulumi.getter(name="accessLevel")
|
2745
|
+
def access_level(self) -> Optional[pulumi.Input[str]]:
|
2746
|
+
"""
|
2747
|
+
An `AccessLevel` resource name that allow resources within the
|
2748
|
+
`ServicePerimeters` to be accessed from the internet. `AccessLevels` listed
|
2749
|
+
must be in the same policy as this `ServicePerimeter`. Referencing a nonexistent
|
2750
|
+
`AccessLevel` will cause an error. If no `AccessLevel` names are listed,
|
2751
|
+
resources within the perimeter can only be accessed via Google Cloud calls
|
2752
|
+
with request origins within the perimeter.
|
2753
|
+
Example `accessPolicies/MY_POLICY/accessLevels/MY_LEVEL.`
|
2754
|
+
If * is specified, then all IngressSources will be allowed.
|
2755
|
+
"""
|
2756
|
+
return pulumi.get(self, "access_level")
|
2757
|
+
|
2758
|
+
@access_level.setter
|
2759
|
+
def access_level(self, value: Optional[pulumi.Input[str]]):
|
2760
|
+
pulumi.set(self, "access_level", value)
|
2761
|
+
|
2762
|
+
@property
|
2763
|
+
@pulumi.getter
|
2764
|
+
def resource(self) -> Optional[pulumi.Input[str]]:
|
2765
|
+
"""
|
2766
|
+
A Google Cloud resource that is allowed to ingress the perimeter.
|
2767
|
+
Requests from these resources will be allowed to access perimeter data.
|
2768
|
+
Currently only projects are allowed. Format `projects/{project_number}`
|
2769
|
+
The project may be in any Google Cloud organization, not just the
|
2770
|
+
organization that the perimeter is defined in. `*` is not allowed, the case
|
2771
|
+
of allowing all Google Cloud resources only is not supported.
|
2772
|
+
"""
|
2773
|
+
return pulumi.get(self, "resource")
|
2774
|
+
|
2775
|
+
@resource.setter
|
2776
|
+
def resource(self, value: Optional[pulumi.Input[str]]):
|
2777
|
+
pulumi.set(self, "resource", value)
|
2778
|
+
|
2779
|
+
|
2780
|
+
if not MYPY:
|
2781
|
+
class ServicePerimeterDryRunIngressPolicyIngressToArgsDict(TypedDict):
|
2782
|
+
operations: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressToOperationArgsDict']]]]
|
2783
|
+
"""
|
2784
|
+
A list of `ApiOperations` the sources specified in corresponding `IngressFrom`
|
2785
|
+
are allowed to perform in this `ServicePerimeter`.
|
2786
|
+
Structure is documented below.
|
2787
|
+
"""
|
2788
|
+
resources: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|
2789
|
+
"""
|
2790
|
+
A list of resources, currently only projects in the form
|
2791
|
+
`projects/<projectnumber>`, protected by this `ServicePerimeter`
|
2792
|
+
that are allowed to be accessed by sources defined in the
|
2793
|
+
corresponding `IngressFrom`. A request matches if it contains
|
2794
|
+
a resource in this list. If `*` is specified for resources,
|
2795
|
+
then this `IngressTo` rule will authorize access to all
|
2796
|
+
resources inside the perimeter, provided that the request
|
2797
|
+
also matches the `operations` field.
|
2798
|
+
"""
|
2799
|
+
elif False:
|
2800
|
+
ServicePerimeterDryRunIngressPolicyIngressToArgsDict: TypeAlias = Mapping[str, Any]
|
2801
|
+
|
2802
|
+
@pulumi.input_type
|
2803
|
+
class ServicePerimeterDryRunIngressPolicyIngressToArgs:
|
2804
|
+
def __init__(__self__, *,
|
2805
|
+
operations: Optional[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressToOperationArgs']]]] = None,
|
2806
|
+
resources: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
|
2807
|
+
"""
|
2808
|
+
:param pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressToOperationArgs']]] operations: A list of `ApiOperations` the sources specified in corresponding `IngressFrom`
|
2809
|
+
are allowed to perform in this `ServicePerimeter`.
|
2810
|
+
Structure is documented below.
|
2811
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] resources: A list of resources, currently only projects in the form
|
2812
|
+
`projects/<projectnumber>`, protected by this `ServicePerimeter`
|
2813
|
+
that are allowed to be accessed by sources defined in the
|
2814
|
+
corresponding `IngressFrom`. A request matches if it contains
|
2815
|
+
a resource in this list. If `*` is specified for resources,
|
2816
|
+
then this `IngressTo` rule will authorize access to all
|
2817
|
+
resources inside the perimeter, provided that the request
|
2818
|
+
also matches the `operations` field.
|
2819
|
+
"""
|
2820
|
+
if operations is not None:
|
2821
|
+
pulumi.set(__self__, "operations", operations)
|
2822
|
+
if resources is not None:
|
2823
|
+
pulumi.set(__self__, "resources", resources)
|
2824
|
+
|
2825
|
+
@property
|
2826
|
+
@pulumi.getter
|
2827
|
+
def operations(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressToOperationArgs']]]]:
|
2828
|
+
"""
|
2829
|
+
A list of `ApiOperations` the sources specified in corresponding `IngressFrom`
|
2830
|
+
are allowed to perform in this `ServicePerimeter`.
|
2831
|
+
Structure is documented below.
|
2832
|
+
"""
|
2833
|
+
return pulumi.get(self, "operations")
|
2834
|
+
|
2835
|
+
@operations.setter
|
2836
|
+
def operations(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressToOperationArgs']]]]):
|
2837
|
+
pulumi.set(self, "operations", value)
|
2838
|
+
|
2839
|
+
@property
|
2840
|
+
@pulumi.getter
|
2841
|
+
def resources(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
2842
|
+
"""
|
2843
|
+
A list of resources, currently only projects in the form
|
2844
|
+
`projects/<projectnumber>`, protected by this `ServicePerimeter`
|
2845
|
+
that are allowed to be accessed by sources defined in the
|
2846
|
+
corresponding `IngressFrom`. A request matches if it contains
|
2847
|
+
a resource in this list. If `*` is specified for resources,
|
2848
|
+
then this `IngressTo` rule will authorize access to all
|
2849
|
+
resources inside the perimeter, provided that the request
|
2850
|
+
also matches the `operations` field.
|
2851
|
+
"""
|
2852
|
+
return pulumi.get(self, "resources")
|
2853
|
+
|
2854
|
+
@resources.setter
|
2855
|
+
def resources(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
2856
|
+
pulumi.set(self, "resources", value)
|
2857
|
+
|
2858
|
+
|
2859
|
+
if not MYPY:
|
2860
|
+
class ServicePerimeterDryRunIngressPolicyIngressToOperationArgsDict(TypedDict):
|
2861
|
+
method_selectors: NotRequired[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressToOperationMethodSelectorArgsDict']]]]
|
2862
|
+
"""
|
2863
|
+
API methods or permissions to allow. Method or permission must belong to
|
2864
|
+
the service specified by serviceName field. A single `MethodSelector` entry
|
2865
|
+
with `*` specified for the method field will allow all methods AND
|
2866
|
+
permissions for the service specified in `serviceName`.
|
2867
|
+
Structure is documented below.
|
2868
|
+
"""
|
2869
|
+
service_name: NotRequired[pulumi.Input[str]]
|
2870
|
+
"""
|
2871
|
+
The name of the API whose methods or permissions the `IngressPolicy` or
|
2872
|
+
`EgressPolicy` want to allow. A single `ApiOperation` with `serviceName`
|
2873
|
+
field set to `*` will allow all methods AND permissions for all services.
|
2874
|
+
"""
|
2875
|
+
elif False:
|
2876
|
+
ServicePerimeterDryRunIngressPolicyIngressToOperationArgsDict: TypeAlias = Mapping[str, Any]
|
2877
|
+
|
2878
|
+
@pulumi.input_type
|
2879
|
+
class ServicePerimeterDryRunIngressPolicyIngressToOperationArgs:
|
2880
|
+
def __init__(__self__, *,
|
2881
|
+
method_selectors: Optional[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressToOperationMethodSelectorArgs']]]] = None,
|
2882
|
+
service_name: Optional[pulumi.Input[str]] = None):
|
2883
|
+
"""
|
2884
|
+
:param pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressToOperationMethodSelectorArgs']]] method_selectors: API methods or permissions to allow. Method or permission must belong to
|
2885
|
+
the service specified by serviceName field. A single `MethodSelector` entry
|
2886
|
+
with `*` specified for the method field will allow all methods AND
|
2887
|
+
permissions for the service specified in `serviceName`.
|
2888
|
+
Structure is documented below.
|
2889
|
+
:param pulumi.Input[str] service_name: The name of the API whose methods or permissions the `IngressPolicy` or
|
2890
|
+
`EgressPolicy` want to allow. A single `ApiOperation` with `serviceName`
|
2891
|
+
field set to `*` will allow all methods AND permissions for all services.
|
2892
|
+
"""
|
2893
|
+
if method_selectors is not None:
|
2894
|
+
pulumi.set(__self__, "method_selectors", method_selectors)
|
2895
|
+
if service_name is not None:
|
2896
|
+
pulumi.set(__self__, "service_name", service_name)
|
2897
|
+
|
2898
|
+
@property
|
2899
|
+
@pulumi.getter(name="methodSelectors")
|
2900
|
+
def method_selectors(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressToOperationMethodSelectorArgs']]]]:
|
2901
|
+
"""
|
2902
|
+
API methods or permissions to allow. Method or permission must belong to
|
2903
|
+
the service specified by serviceName field. A single `MethodSelector` entry
|
2904
|
+
with `*` specified for the method field will allow all methods AND
|
2905
|
+
permissions for the service specified in `serviceName`.
|
2906
|
+
Structure is documented below.
|
2907
|
+
"""
|
2908
|
+
return pulumi.get(self, "method_selectors")
|
2909
|
+
|
2910
|
+
@method_selectors.setter
|
2911
|
+
def method_selectors(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ServicePerimeterDryRunIngressPolicyIngressToOperationMethodSelectorArgs']]]]):
|
2912
|
+
pulumi.set(self, "method_selectors", value)
|
2913
|
+
|
2914
|
+
@property
|
2915
|
+
@pulumi.getter(name="serviceName")
|
2916
|
+
def service_name(self) -> Optional[pulumi.Input[str]]:
|
2917
|
+
"""
|
2918
|
+
The name of the API whose methods or permissions the `IngressPolicy` or
|
2919
|
+
`EgressPolicy` want to allow. A single `ApiOperation` with `serviceName`
|
2920
|
+
field set to `*` will allow all methods AND permissions for all services.
|
2921
|
+
"""
|
2922
|
+
return pulumi.get(self, "service_name")
|
2923
|
+
|
2924
|
+
@service_name.setter
|
2925
|
+
def service_name(self, value: Optional[pulumi.Input[str]]):
|
2926
|
+
pulumi.set(self, "service_name", value)
|
2927
|
+
|
2928
|
+
|
2929
|
+
if not MYPY:
|
2930
|
+
class ServicePerimeterDryRunIngressPolicyIngressToOperationMethodSelectorArgsDict(TypedDict):
|
2931
|
+
method: NotRequired[pulumi.Input[str]]
|
2932
|
+
"""
|
2933
|
+
Value for method should be a valid method name for the corresponding
|
2934
|
+
serviceName in `ApiOperation`. If `*` used as value for `method`, then
|
2935
|
+
ALL methods and permissions are allowed.
|
2936
|
+
"""
|
2937
|
+
permission: NotRequired[pulumi.Input[str]]
|
2938
|
+
"""
|
2939
|
+
Value for permission should be a valid Cloud IAM permission for the
|
2940
|
+
corresponding `serviceName` in `ApiOperation`.
|
2941
|
+
"""
|
2942
|
+
elif False:
|
2943
|
+
ServicePerimeterDryRunIngressPolicyIngressToOperationMethodSelectorArgsDict: TypeAlias = Mapping[str, Any]
|
2944
|
+
|
2945
|
+
@pulumi.input_type
|
2946
|
+
class ServicePerimeterDryRunIngressPolicyIngressToOperationMethodSelectorArgs:
|
2947
|
+
def __init__(__self__, *,
|
2948
|
+
method: Optional[pulumi.Input[str]] = None,
|
2949
|
+
permission: Optional[pulumi.Input[str]] = None):
|
2950
|
+
"""
|
2951
|
+
:param pulumi.Input[str] method: Value for method should be a valid method name for the corresponding
|
2952
|
+
serviceName in `ApiOperation`. If `*` used as value for `method`, then
|
2953
|
+
ALL methods and permissions are allowed.
|
2954
|
+
:param pulumi.Input[str] permission: Value for permission should be a valid Cloud IAM permission for the
|
2955
|
+
corresponding `serviceName` in `ApiOperation`.
|
2956
|
+
"""
|
2957
|
+
if method is not None:
|
2958
|
+
pulumi.set(__self__, "method", method)
|
2959
|
+
if permission is not None:
|
2960
|
+
pulumi.set(__self__, "permission", permission)
|
2961
|
+
|
2962
|
+
@property
|
2963
|
+
@pulumi.getter
|
2964
|
+
def method(self) -> Optional[pulumi.Input[str]]:
|
2965
|
+
"""
|
2966
|
+
Value for method should be a valid method name for the corresponding
|
2967
|
+
serviceName in `ApiOperation`. If `*` used as value for `method`, then
|
2968
|
+
ALL methods and permissions are allowed.
|
2969
|
+
"""
|
2970
|
+
return pulumi.get(self, "method")
|
2971
|
+
|
2972
|
+
@method.setter
|
2973
|
+
def method(self, value: Optional[pulumi.Input[str]]):
|
2974
|
+
pulumi.set(self, "method", value)
|
2975
|
+
|
2976
|
+
@property
|
2977
|
+
@pulumi.getter
|
2978
|
+
def permission(self) -> Optional[pulumi.Input[str]]:
|
2979
|
+
"""
|
2980
|
+
Value for permission should be a valid Cloud IAM permission for the
|
2981
|
+
corresponding `serviceName` in `ApiOperation`.
|
2982
|
+
"""
|
2983
|
+
return pulumi.get(self, "permission")
|
2984
|
+
|
2985
|
+
@permission.setter
|
2986
|
+
def permission(self, value: Optional[pulumi.Input[str]]):
|
2987
|
+
pulumi.set(self, "permission", value)
|
2988
|
+
|
2989
|
+
|
2210
2990
|
if not MYPY:
|
2211
2991
|
class ServicePerimeterEgressPolicyEgressFromArgsDict(TypedDict):
|
2212
2992
|
identities: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
|