pulumi-vault 7.6.0a1764657486__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_vault/__init__.py +1399 -0
- pulumi_vault/_inputs.py +2701 -0
- pulumi_vault/_utilities.py +331 -0
- pulumi_vault/ad/__init__.py +12 -0
- pulumi_vault/ad/get_access_credentials.py +177 -0
- pulumi_vault/ad/secret_backend.py +1916 -0
- pulumi_vault/ad/secret_library.py +546 -0
- pulumi_vault/ad/secret_role.py +499 -0
- pulumi_vault/alicloud/__init__.py +9 -0
- pulumi_vault/alicloud/auth_backend_role.py +866 -0
- pulumi_vault/approle/__init__.py +12 -0
- pulumi_vault/approle/auth_backend_login.py +571 -0
- pulumi_vault/approle/auth_backend_role.py +1082 -0
- pulumi_vault/approle/auth_backend_role_secret_id.py +796 -0
- pulumi_vault/approle/get_auth_backend_role_id.py +169 -0
- pulumi_vault/audit.py +499 -0
- pulumi_vault/audit_request_header.py +277 -0
- pulumi_vault/auth_backend.py +565 -0
- pulumi_vault/aws/__init__.py +22 -0
- pulumi_vault/aws/auth_backend_cert.py +420 -0
- pulumi_vault/aws/auth_backend_client.py +1259 -0
- pulumi_vault/aws/auth_backend_config_identity.py +494 -0
- pulumi_vault/aws/auth_backend_identity_whitelist.py +380 -0
- pulumi_vault/aws/auth_backend_login.py +1046 -0
- pulumi_vault/aws/auth_backend_role.py +1961 -0
- pulumi_vault/aws/auth_backend_role_tag.py +638 -0
- pulumi_vault/aws/auth_backend_roletag_blacklist.py +366 -0
- pulumi_vault/aws/auth_backend_sts_role.py +414 -0
- pulumi_vault/aws/get_access_credentials.py +369 -0
- pulumi_vault/aws/get_static_access_credentials.py +137 -0
- pulumi_vault/aws/secret_backend.py +2018 -0
- pulumi_vault/aws/secret_backend_role.py +1188 -0
- pulumi_vault/aws/secret_backend_static_role.py +639 -0
- pulumi_vault/azure/__init__.py +15 -0
- pulumi_vault/azure/_inputs.py +108 -0
- pulumi_vault/azure/auth_backend_config.py +1096 -0
- pulumi_vault/azure/auth_backend_role.py +1176 -0
- pulumi_vault/azure/backend.py +1793 -0
- pulumi_vault/azure/backend_role.py +883 -0
- pulumi_vault/azure/get_access_credentials.py +400 -0
- pulumi_vault/azure/outputs.py +107 -0
- pulumi_vault/cert_auth_backend_role.py +1539 -0
- pulumi_vault/config/__init__.py +9 -0
- pulumi_vault/config/__init__.pyi +164 -0
- pulumi_vault/config/_inputs.py +73 -0
- pulumi_vault/config/outputs.py +1225 -0
- pulumi_vault/config/ui_custom_message.py +530 -0
- pulumi_vault/config/vars.py +230 -0
- pulumi_vault/consul/__init__.py +10 -0
- pulumi_vault/consul/secret_backend.py +1517 -0
- pulumi_vault/consul/secret_backend_role.py +847 -0
- pulumi_vault/database/__init__.py +14 -0
- pulumi_vault/database/_inputs.py +11907 -0
- pulumi_vault/database/outputs.py +8496 -0
- pulumi_vault/database/secret_backend_connection.py +1676 -0
- pulumi_vault/database/secret_backend_role.py +840 -0
- pulumi_vault/database/secret_backend_static_role.py +881 -0
- pulumi_vault/database/secrets_mount.py +2160 -0
- pulumi_vault/egp_policy.py +399 -0
- pulumi_vault/gcp/__init__.py +17 -0
- pulumi_vault/gcp/_inputs.py +441 -0
- pulumi_vault/gcp/auth_backend.py +1486 -0
- pulumi_vault/gcp/auth_backend_role.py +1235 -0
- pulumi_vault/gcp/get_auth_backend_role.py +514 -0
- pulumi_vault/gcp/outputs.py +302 -0
- pulumi_vault/gcp/secret_backend.py +1807 -0
- pulumi_vault/gcp/secret_impersonated_account.py +484 -0
- pulumi_vault/gcp/secret_roleset.py +554 -0
- pulumi_vault/gcp/secret_static_account.py +557 -0
- pulumi_vault/generic/__init__.py +11 -0
- pulumi_vault/generic/endpoint.py +786 -0
- pulumi_vault/generic/get_secret.py +306 -0
- pulumi_vault/generic/secret.py +486 -0
- pulumi_vault/get_auth_backend.py +226 -0
- pulumi_vault/get_auth_backends.py +170 -0
- pulumi_vault/get_namespace.py +226 -0
- pulumi_vault/get_namespaces.py +202 -0
- pulumi_vault/get_nomad_access_token.py +210 -0
- pulumi_vault/get_policy_document.py +160 -0
- pulumi_vault/get_raft_autopilot_state.py +267 -0
- pulumi_vault/github/__init__.py +13 -0
- pulumi_vault/github/_inputs.py +225 -0
- pulumi_vault/github/auth_backend.py +1194 -0
- pulumi_vault/github/outputs.py +174 -0
- pulumi_vault/github/team.py +380 -0
- pulumi_vault/github/user.py +380 -0
- pulumi_vault/identity/__init__.py +35 -0
- pulumi_vault/identity/entity.py +447 -0
- pulumi_vault/identity/entity_alias.py +398 -0
- pulumi_vault/identity/entity_policies.py +455 -0
- pulumi_vault/identity/get_entity.py +384 -0
- pulumi_vault/identity/get_group.py +467 -0
- pulumi_vault/identity/get_oidc_client_creds.py +175 -0
- pulumi_vault/identity/get_oidc_openid_config.py +334 -0
- pulumi_vault/identity/get_oidc_public_keys.py +179 -0
- pulumi_vault/identity/group.py +805 -0
- pulumi_vault/identity/group_alias.py +386 -0
- pulumi_vault/identity/group_member_entity_ids.py +444 -0
- pulumi_vault/identity/group_member_group_ids.py +467 -0
- pulumi_vault/identity/group_policies.py +471 -0
- pulumi_vault/identity/mfa_duo.py +674 -0
- pulumi_vault/identity/mfa_login_enforcement.py +566 -0
- pulumi_vault/identity/mfa_okta.py +626 -0
- pulumi_vault/identity/mfa_pingid.py +616 -0
- pulumi_vault/identity/mfa_totp.py +758 -0
- pulumi_vault/identity/oidc.py +268 -0
- pulumi_vault/identity/oidc_assignment.py +375 -0
- pulumi_vault/identity/oidc_client.py +667 -0
- pulumi_vault/identity/oidc_key.py +474 -0
- pulumi_vault/identity/oidc_key_allowed_client_id.py +298 -0
- pulumi_vault/identity/oidc_provider.py +550 -0
- pulumi_vault/identity/oidc_role.py +543 -0
- pulumi_vault/identity/oidc_scope.py +355 -0
- pulumi_vault/identity/outputs.py +137 -0
- pulumi_vault/jwt/__init__.py +12 -0
- pulumi_vault/jwt/_inputs.py +225 -0
- pulumi_vault/jwt/auth_backend.py +1347 -0
- pulumi_vault/jwt/auth_backend_role.py +1847 -0
- pulumi_vault/jwt/outputs.py +174 -0
- pulumi_vault/kmip/__init__.py +11 -0
- pulumi_vault/kmip/secret_backend.py +1591 -0
- pulumi_vault/kmip/secret_role.py +1194 -0
- pulumi_vault/kmip/secret_scope.py +372 -0
- pulumi_vault/kubernetes/__init__.py +15 -0
- pulumi_vault/kubernetes/auth_backend_config.py +654 -0
- pulumi_vault/kubernetes/auth_backend_role.py +1031 -0
- pulumi_vault/kubernetes/get_auth_backend_config.py +280 -0
- pulumi_vault/kubernetes/get_auth_backend_role.py +470 -0
- pulumi_vault/kubernetes/get_service_account_token.py +344 -0
- pulumi_vault/kubernetes/secret_backend.py +1341 -0
- pulumi_vault/kubernetes/secret_backend_role.py +1140 -0
- pulumi_vault/kv/__init__.py +18 -0
- pulumi_vault/kv/_inputs.py +124 -0
- pulumi_vault/kv/get_secret.py +240 -0
- pulumi_vault/kv/get_secret_subkeys_v2.py +275 -0
- pulumi_vault/kv/get_secret_v2.py +315 -0
- pulumi_vault/kv/get_secrets_list.py +186 -0
- pulumi_vault/kv/get_secrets_list_v2.py +243 -0
- pulumi_vault/kv/outputs.py +102 -0
- pulumi_vault/kv/secret.py +397 -0
- pulumi_vault/kv/secret_backend_v2.py +455 -0
- pulumi_vault/kv/secret_v2.py +970 -0
- pulumi_vault/ldap/__init__.py +19 -0
- pulumi_vault/ldap/_inputs.py +225 -0
- pulumi_vault/ldap/auth_backend.py +2520 -0
- pulumi_vault/ldap/auth_backend_group.py +386 -0
- pulumi_vault/ldap/auth_backend_user.py +439 -0
- pulumi_vault/ldap/get_dynamic_credentials.py +181 -0
- pulumi_vault/ldap/get_static_credentials.py +192 -0
- pulumi_vault/ldap/outputs.py +174 -0
- pulumi_vault/ldap/secret_backend.py +2207 -0
- pulumi_vault/ldap/secret_backend_dynamic_role.py +767 -0
- pulumi_vault/ldap/secret_backend_library_set.py +552 -0
- pulumi_vault/ldap/secret_backend_static_role.py +541 -0
- pulumi_vault/managed/__init__.py +11 -0
- pulumi_vault/managed/_inputs.py +944 -0
- pulumi_vault/managed/keys.py +398 -0
- pulumi_vault/managed/outputs.py +667 -0
- pulumi_vault/mfa_duo.py +589 -0
- pulumi_vault/mfa_okta.py +623 -0
- pulumi_vault/mfa_pingid.py +670 -0
- pulumi_vault/mfa_totp.py +620 -0
- pulumi_vault/mongodbatlas/__init__.py +10 -0
- pulumi_vault/mongodbatlas/secret_backend.py +388 -0
- pulumi_vault/mongodbatlas/secret_role.py +726 -0
- pulumi_vault/mount.py +1262 -0
- pulumi_vault/namespace.py +452 -0
- pulumi_vault/nomad_secret_backend.py +1559 -0
- pulumi_vault/nomad_secret_role.py +489 -0
- pulumi_vault/oci_auth_backend.py +676 -0
- pulumi_vault/oci_auth_backend_role.py +852 -0
- pulumi_vault/okta/__init__.py +13 -0
- pulumi_vault/okta/_inputs.py +320 -0
- pulumi_vault/okta/auth_backend.py +1231 -0
- pulumi_vault/okta/auth_backend_group.py +369 -0
- pulumi_vault/okta/auth_backend_user.py +416 -0
- pulumi_vault/okta/outputs.py +244 -0
- pulumi_vault/outputs.py +502 -0
- pulumi_vault/pkisecret/__init__.py +38 -0
- pulumi_vault/pkisecret/_inputs.py +270 -0
- pulumi_vault/pkisecret/backend_acme_eab.py +550 -0
- pulumi_vault/pkisecret/backend_config_acme.py +690 -0
- pulumi_vault/pkisecret/backend_config_auto_tidy.py +1370 -0
- pulumi_vault/pkisecret/backend_config_cluster.py +370 -0
- pulumi_vault/pkisecret/backend_config_cmpv2.py +693 -0
- pulumi_vault/pkisecret/backend_config_est.py +756 -0
- pulumi_vault/pkisecret/backend_config_scep.py +738 -0
- pulumi_vault/pkisecret/get_backend_cert_metadata.py +277 -0
- pulumi_vault/pkisecret/get_backend_config_cmpv2.py +226 -0
- pulumi_vault/pkisecret/get_backend_config_est.py +251 -0
- pulumi_vault/pkisecret/get_backend_config_scep.py +271 -0
- pulumi_vault/pkisecret/get_backend_issuer.py +395 -0
- pulumi_vault/pkisecret/get_backend_issuers.py +192 -0
- pulumi_vault/pkisecret/get_backend_key.py +211 -0
- pulumi_vault/pkisecret/get_backend_keys.py +192 -0
- pulumi_vault/pkisecret/outputs.py +270 -0
- pulumi_vault/pkisecret/secret_backend_cert.py +1315 -0
- pulumi_vault/pkisecret/secret_backend_config_ca.py +386 -0
- pulumi_vault/pkisecret/secret_backend_config_issuers.py +392 -0
- pulumi_vault/pkisecret/secret_backend_config_urls.py +462 -0
- pulumi_vault/pkisecret/secret_backend_crl_config.py +846 -0
- pulumi_vault/pkisecret/secret_backend_intermediate_cert_request.py +1629 -0
- pulumi_vault/pkisecret/secret_backend_intermediate_set_signed.py +444 -0
- pulumi_vault/pkisecret/secret_backend_issuer.py +1089 -0
- pulumi_vault/pkisecret/secret_backend_key.py +613 -0
- pulumi_vault/pkisecret/secret_backend_role.py +2694 -0
- pulumi_vault/pkisecret/secret_backend_root_cert.py +2134 -0
- pulumi_vault/pkisecret/secret_backend_root_sign_intermediate.py +2031 -0
- pulumi_vault/pkisecret/secret_backend_sign.py +1194 -0
- pulumi_vault/plugin.py +596 -0
- pulumi_vault/plugin_pinned_version.py +299 -0
- pulumi_vault/policy.py +279 -0
- pulumi_vault/provider.py +781 -0
- pulumi_vault/pulumi-plugin.json +5 -0
- pulumi_vault/py.typed +0 -0
- pulumi_vault/quota_lease_count.py +504 -0
- pulumi_vault/quota_rate_limit.py +751 -0
- pulumi_vault/rabbitmq/__init__.py +12 -0
- pulumi_vault/rabbitmq/_inputs.py +235 -0
- pulumi_vault/rabbitmq/outputs.py +144 -0
- pulumi_vault/rabbitmq/secret_backend.py +1437 -0
- pulumi_vault/rabbitmq/secret_backend_role.py +496 -0
- pulumi_vault/raft_autopilot.py +609 -0
- pulumi_vault/raft_snapshot_agent_config.py +1591 -0
- pulumi_vault/rgp_policy.py +349 -0
- pulumi_vault/saml/__init__.py +12 -0
- pulumi_vault/saml/_inputs.py +225 -0
- pulumi_vault/saml/auth_backend.py +811 -0
- pulumi_vault/saml/auth_backend_role.py +1068 -0
- pulumi_vault/saml/outputs.py +174 -0
- pulumi_vault/scep_auth_backend_role.py +908 -0
- pulumi_vault/secrets/__init__.py +18 -0
- pulumi_vault/secrets/_inputs.py +110 -0
- pulumi_vault/secrets/outputs.py +94 -0
- pulumi_vault/secrets/sync_association.py +450 -0
- pulumi_vault/secrets/sync_aws_destination.py +780 -0
- pulumi_vault/secrets/sync_azure_destination.py +736 -0
- pulumi_vault/secrets/sync_config.py +303 -0
- pulumi_vault/secrets/sync_gcp_destination.py +572 -0
- pulumi_vault/secrets/sync_gh_destination.py +688 -0
- pulumi_vault/secrets/sync_github_apps.py +376 -0
- pulumi_vault/secrets/sync_vercel_destination.py +603 -0
- pulumi_vault/ssh/__init__.py +13 -0
- pulumi_vault/ssh/_inputs.py +76 -0
- pulumi_vault/ssh/get_secret_backend_sign.py +294 -0
- pulumi_vault/ssh/outputs.py +51 -0
- pulumi_vault/ssh/secret_backend_ca.py +588 -0
- pulumi_vault/ssh/secret_backend_role.py +1493 -0
- pulumi_vault/terraformcloud/__init__.py +11 -0
- pulumi_vault/terraformcloud/secret_backend.py +1321 -0
- pulumi_vault/terraformcloud/secret_creds.py +445 -0
- pulumi_vault/terraformcloud/secret_role.py +563 -0
- pulumi_vault/token.py +1026 -0
- pulumi_vault/tokenauth/__init__.py +9 -0
- pulumi_vault/tokenauth/auth_backend_role.py +1135 -0
- pulumi_vault/transform/__init__.py +14 -0
- pulumi_vault/transform/alphabet.py +348 -0
- pulumi_vault/transform/get_decode.py +287 -0
- pulumi_vault/transform/get_encode.py +291 -0
- pulumi_vault/transform/role.py +350 -0
- pulumi_vault/transform/template.py +592 -0
- pulumi_vault/transform/transformation.py +608 -0
- pulumi_vault/transit/__init__.py +15 -0
- pulumi_vault/transit/get_cmac.py +256 -0
- pulumi_vault/transit/get_decrypt.py +181 -0
- pulumi_vault/transit/get_encrypt.py +174 -0
- pulumi_vault/transit/get_sign.py +328 -0
- pulumi_vault/transit/get_verify.py +373 -0
- pulumi_vault/transit/secret_backend_key.py +1202 -0
- pulumi_vault/transit/secret_cache_config.py +302 -0
- pulumi_vault-7.6.0a1764657486.dist-info/METADATA +92 -0
- pulumi_vault-7.6.0a1764657486.dist-info/RECORD +274 -0
- pulumi_vault-7.6.0a1764657486.dist-info/WHEEL +5 -0
- pulumi_vault-7.6.0a1764657486.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,805 @@
|
|
|
1
|
+
# coding=utf-8
|
|
2
|
+
# *** WARNING: this file was generated by pulumi-language-python. ***
|
|
3
|
+
# *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
|
+
|
|
5
|
+
import builtins as _builtins
|
|
6
|
+
import warnings
|
|
7
|
+
import sys
|
|
8
|
+
import pulumi
|
|
9
|
+
import pulumi.runtime
|
|
10
|
+
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
|
11
|
+
if sys.version_info >= (3, 11):
|
|
12
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
|
13
|
+
else:
|
|
14
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
|
15
|
+
from .. import _utilities
|
|
16
|
+
|
|
17
|
+
__all__ = ['GroupArgs', 'Group']
|
|
18
|
+
|
|
19
|
+
@pulumi.input_type
|
|
20
|
+
class GroupArgs:
|
|
21
|
+
def __init__(__self__, *,
|
|
22
|
+
external_member_entity_ids: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
23
|
+
external_member_group_ids: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
24
|
+
external_policies: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
25
|
+
member_entity_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
26
|
+
member_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
27
|
+
metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
28
|
+
name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
29
|
+
namespace: Optional[pulumi.Input[_builtins.str]] = None,
|
|
30
|
+
policies: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
31
|
+
type: Optional[pulumi.Input[_builtins.str]] = None):
|
|
32
|
+
"""
|
|
33
|
+
The set of arguments for constructing a Group resource.
|
|
34
|
+
:param pulumi.Input[_builtins.bool] external_member_entity_ids: `false` by default. If set to `true`, this resource will ignore any Entity IDs
|
|
35
|
+
returned from Vault or specified in the resource. You can use
|
|
36
|
+
`identity.GroupMemberEntityIds` to manage Entity IDs for this group in a
|
|
37
|
+
decoupled manner.
|
|
38
|
+
:param pulumi.Input[_builtins.bool] external_member_group_ids: `false` by default. If set to `true`, this resource will ignore any Group IDs
|
|
39
|
+
returned from Vault or specified in the resource. You can use
|
|
40
|
+
`identity.GroupMemberGroupIds` to manage Group IDs for this group in a
|
|
41
|
+
decoupled manner.
|
|
42
|
+
:param pulumi.Input[_builtins.bool] external_policies: `false` by default. If set to `true`, this resource will ignore any policies returned from
|
|
43
|
+
Vault or specified in the resource. You can use `identity.GroupPolicies` to manage
|
|
44
|
+
policies for this group in a decoupled manner.
|
|
45
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] member_entity_ids: A list of Entity IDs to be assigned as group members. Not allowed on `external` groups.
|
|
46
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] member_group_ids: A list of Group IDs to be assigned as group members. Not allowed on `external` groups.
|
|
47
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] metadata: A Map of additional metadata to associate with the group.
|
|
48
|
+
:param pulumi.Input[_builtins.str] name: Name of the identity group to create.
|
|
49
|
+
:param pulumi.Input[_builtins.str] namespace: The namespace to provision the resource in.
|
|
50
|
+
The value should not contain leading or trailing forward slashes.
|
|
51
|
+
The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
|
|
52
|
+
*Available only for Vault Enterprise*.
|
|
53
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] policies: A list of policies to apply to the group.
|
|
54
|
+
:param pulumi.Input[_builtins.str] type: Type of the group, internal or external. Defaults to `internal`.
|
|
55
|
+
"""
|
|
56
|
+
if external_member_entity_ids is not None:
|
|
57
|
+
pulumi.set(__self__, "external_member_entity_ids", external_member_entity_ids)
|
|
58
|
+
if external_member_group_ids is not None:
|
|
59
|
+
pulumi.set(__self__, "external_member_group_ids", external_member_group_ids)
|
|
60
|
+
if external_policies is not None:
|
|
61
|
+
pulumi.set(__self__, "external_policies", external_policies)
|
|
62
|
+
if member_entity_ids is not None:
|
|
63
|
+
pulumi.set(__self__, "member_entity_ids", member_entity_ids)
|
|
64
|
+
if member_group_ids is not None:
|
|
65
|
+
pulumi.set(__self__, "member_group_ids", member_group_ids)
|
|
66
|
+
if metadata is not None:
|
|
67
|
+
pulumi.set(__self__, "metadata", metadata)
|
|
68
|
+
if name is not None:
|
|
69
|
+
pulumi.set(__self__, "name", name)
|
|
70
|
+
if namespace is not None:
|
|
71
|
+
pulumi.set(__self__, "namespace", namespace)
|
|
72
|
+
if policies is not None:
|
|
73
|
+
pulumi.set(__self__, "policies", policies)
|
|
74
|
+
if type is not None:
|
|
75
|
+
pulumi.set(__self__, "type", type)
|
|
76
|
+
|
|
77
|
+
@_builtins.property
|
|
78
|
+
@pulumi.getter(name="externalMemberEntityIds")
|
|
79
|
+
def external_member_entity_ids(self) -> Optional[pulumi.Input[_builtins.bool]]:
|
|
80
|
+
"""
|
|
81
|
+
`false` by default. If set to `true`, this resource will ignore any Entity IDs
|
|
82
|
+
returned from Vault or specified in the resource. You can use
|
|
83
|
+
`identity.GroupMemberEntityIds` to manage Entity IDs for this group in a
|
|
84
|
+
decoupled manner.
|
|
85
|
+
"""
|
|
86
|
+
return pulumi.get(self, "external_member_entity_ids")
|
|
87
|
+
|
|
88
|
+
@external_member_entity_ids.setter
|
|
89
|
+
def external_member_entity_ids(self, value: Optional[pulumi.Input[_builtins.bool]]):
|
|
90
|
+
pulumi.set(self, "external_member_entity_ids", value)
|
|
91
|
+
|
|
92
|
+
@_builtins.property
|
|
93
|
+
@pulumi.getter(name="externalMemberGroupIds")
|
|
94
|
+
def external_member_group_ids(self) -> Optional[pulumi.Input[_builtins.bool]]:
|
|
95
|
+
"""
|
|
96
|
+
`false` by default. If set to `true`, this resource will ignore any Group IDs
|
|
97
|
+
returned from Vault or specified in the resource. You can use
|
|
98
|
+
`identity.GroupMemberGroupIds` to manage Group IDs for this group in a
|
|
99
|
+
decoupled manner.
|
|
100
|
+
"""
|
|
101
|
+
return pulumi.get(self, "external_member_group_ids")
|
|
102
|
+
|
|
103
|
+
@external_member_group_ids.setter
|
|
104
|
+
def external_member_group_ids(self, value: Optional[pulumi.Input[_builtins.bool]]):
|
|
105
|
+
pulumi.set(self, "external_member_group_ids", value)
|
|
106
|
+
|
|
107
|
+
@_builtins.property
|
|
108
|
+
@pulumi.getter(name="externalPolicies")
|
|
109
|
+
def external_policies(self) -> Optional[pulumi.Input[_builtins.bool]]:
|
|
110
|
+
"""
|
|
111
|
+
`false` by default. If set to `true`, this resource will ignore any policies returned from
|
|
112
|
+
Vault or specified in the resource. You can use `identity.GroupPolicies` to manage
|
|
113
|
+
policies for this group in a decoupled manner.
|
|
114
|
+
"""
|
|
115
|
+
return pulumi.get(self, "external_policies")
|
|
116
|
+
|
|
117
|
+
@external_policies.setter
|
|
118
|
+
def external_policies(self, value: Optional[pulumi.Input[_builtins.bool]]):
|
|
119
|
+
pulumi.set(self, "external_policies", value)
|
|
120
|
+
|
|
121
|
+
@_builtins.property
|
|
122
|
+
@pulumi.getter(name="memberEntityIds")
|
|
123
|
+
def member_entity_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
|
124
|
+
"""
|
|
125
|
+
A list of Entity IDs to be assigned as group members. Not allowed on `external` groups.
|
|
126
|
+
"""
|
|
127
|
+
return pulumi.get(self, "member_entity_ids")
|
|
128
|
+
|
|
129
|
+
@member_entity_ids.setter
|
|
130
|
+
def member_entity_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
|
131
|
+
pulumi.set(self, "member_entity_ids", value)
|
|
132
|
+
|
|
133
|
+
@_builtins.property
|
|
134
|
+
@pulumi.getter(name="memberGroupIds")
|
|
135
|
+
def member_group_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
|
136
|
+
"""
|
|
137
|
+
A list of Group IDs to be assigned as group members. Not allowed on `external` groups.
|
|
138
|
+
"""
|
|
139
|
+
return pulumi.get(self, "member_group_ids")
|
|
140
|
+
|
|
141
|
+
@member_group_ids.setter
|
|
142
|
+
def member_group_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
|
143
|
+
pulumi.set(self, "member_group_ids", value)
|
|
144
|
+
|
|
145
|
+
@_builtins.property
|
|
146
|
+
@pulumi.getter
|
|
147
|
+
def metadata(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
|
|
148
|
+
"""
|
|
149
|
+
A Map of additional metadata to associate with the group.
|
|
150
|
+
"""
|
|
151
|
+
return pulumi.get(self, "metadata")
|
|
152
|
+
|
|
153
|
+
@metadata.setter
|
|
154
|
+
def metadata(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
|
|
155
|
+
pulumi.set(self, "metadata", value)
|
|
156
|
+
|
|
157
|
+
@_builtins.property
|
|
158
|
+
@pulumi.getter
|
|
159
|
+
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
160
|
+
"""
|
|
161
|
+
Name of the identity group to create.
|
|
162
|
+
"""
|
|
163
|
+
return pulumi.get(self, "name")
|
|
164
|
+
|
|
165
|
+
@name.setter
|
|
166
|
+
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
167
|
+
pulumi.set(self, "name", value)
|
|
168
|
+
|
|
169
|
+
@_builtins.property
|
|
170
|
+
@pulumi.getter
|
|
171
|
+
def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
172
|
+
"""
|
|
173
|
+
The namespace to provision the resource in.
|
|
174
|
+
The value should not contain leading or trailing forward slashes.
|
|
175
|
+
The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
|
|
176
|
+
*Available only for Vault Enterprise*.
|
|
177
|
+
"""
|
|
178
|
+
return pulumi.get(self, "namespace")
|
|
179
|
+
|
|
180
|
+
@namespace.setter
|
|
181
|
+
def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
182
|
+
pulumi.set(self, "namespace", value)
|
|
183
|
+
|
|
184
|
+
@_builtins.property
|
|
185
|
+
@pulumi.getter
|
|
186
|
+
def policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
|
187
|
+
"""
|
|
188
|
+
A list of policies to apply to the group.
|
|
189
|
+
"""
|
|
190
|
+
return pulumi.get(self, "policies")
|
|
191
|
+
|
|
192
|
+
@policies.setter
|
|
193
|
+
def policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
|
194
|
+
pulumi.set(self, "policies", value)
|
|
195
|
+
|
|
196
|
+
@_builtins.property
|
|
197
|
+
@pulumi.getter
|
|
198
|
+
def type(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
199
|
+
"""
|
|
200
|
+
Type of the group, internal or external. Defaults to `internal`.
|
|
201
|
+
"""
|
|
202
|
+
return pulumi.get(self, "type")
|
|
203
|
+
|
|
204
|
+
@type.setter
|
|
205
|
+
def type(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
206
|
+
pulumi.set(self, "type", value)
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
@pulumi.input_type
|
|
210
|
+
class _GroupState:
|
|
211
|
+
def __init__(__self__, *,
|
|
212
|
+
external_member_entity_ids: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
213
|
+
external_member_group_ids: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
214
|
+
external_policies: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
215
|
+
member_entity_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
216
|
+
member_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
217
|
+
metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
218
|
+
name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
219
|
+
namespace: Optional[pulumi.Input[_builtins.str]] = None,
|
|
220
|
+
policies: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
221
|
+
type: Optional[pulumi.Input[_builtins.str]] = None):
|
|
222
|
+
"""
|
|
223
|
+
Input properties used for looking up and filtering Group resources.
|
|
224
|
+
:param pulumi.Input[_builtins.bool] external_member_entity_ids: `false` by default. If set to `true`, this resource will ignore any Entity IDs
|
|
225
|
+
returned from Vault or specified in the resource. You can use
|
|
226
|
+
`identity.GroupMemberEntityIds` to manage Entity IDs for this group in a
|
|
227
|
+
decoupled manner.
|
|
228
|
+
:param pulumi.Input[_builtins.bool] external_member_group_ids: `false` by default. If set to `true`, this resource will ignore any Group IDs
|
|
229
|
+
returned from Vault or specified in the resource. You can use
|
|
230
|
+
`identity.GroupMemberGroupIds` to manage Group IDs for this group in a
|
|
231
|
+
decoupled manner.
|
|
232
|
+
:param pulumi.Input[_builtins.bool] external_policies: `false` by default. If set to `true`, this resource will ignore any policies returned from
|
|
233
|
+
Vault or specified in the resource. You can use `identity.GroupPolicies` to manage
|
|
234
|
+
policies for this group in a decoupled manner.
|
|
235
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] member_entity_ids: A list of Entity IDs to be assigned as group members. Not allowed on `external` groups.
|
|
236
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] member_group_ids: A list of Group IDs to be assigned as group members. Not allowed on `external` groups.
|
|
237
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] metadata: A Map of additional metadata to associate with the group.
|
|
238
|
+
:param pulumi.Input[_builtins.str] name: Name of the identity group to create.
|
|
239
|
+
:param pulumi.Input[_builtins.str] namespace: The namespace to provision the resource in.
|
|
240
|
+
The value should not contain leading or trailing forward slashes.
|
|
241
|
+
The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
|
|
242
|
+
*Available only for Vault Enterprise*.
|
|
243
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] policies: A list of policies to apply to the group.
|
|
244
|
+
:param pulumi.Input[_builtins.str] type: Type of the group, internal or external. Defaults to `internal`.
|
|
245
|
+
"""
|
|
246
|
+
if external_member_entity_ids is not None:
|
|
247
|
+
pulumi.set(__self__, "external_member_entity_ids", external_member_entity_ids)
|
|
248
|
+
if external_member_group_ids is not None:
|
|
249
|
+
pulumi.set(__self__, "external_member_group_ids", external_member_group_ids)
|
|
250
|
+
if external_policies is not None:
|
|
251
|
+
pulumi.set(__self__, "external_policies", external_policies)
|
|
252
|
+
if member_entity_ids is not None:
|
|
253
|
+
pulumi.set(__self__, "member_entity_ids", member_entity_ids)
|
|
254
|
+
if member_group_ids is not None:
|
|
255
|
+
pulumi.set(__self__, "member_group_ids", member_group_ids)
|
|
256
|
+
if metadata is not None:
|
|
257
|
+
pulumi.set(__self__, "metadata", metadata)
|
|
258
|
+
if name is not None:
|
|
259
|
+
pulumi.set(__self__, "name", name)
|
|
260
|
+
if namespace is not None:
|
|
261
|
+
pulumi.set(__self__, "namespace", namespace)
|
|
262
|
+
if policies is not None:
|
|
263
|
+
pulumi.set(__self__, "policies", policies)
|
|
264
|
+
if type is not None:
|
|
265
|
+
pulumi.set(__self__, "type", type)
|
|
266
|
+
|
|
267
|
+
@_builtins.property
|
|
268
|
+
@pulumi.getter(name="externalMemberEntityIds")
|
|
269
|
+
def external_member_entity_ids(self) -> Optional[pulumi.Input[_builtins.bool]]:
|
|
270
|
+
"""
|
|
271
|
+
`false` by default. If set to `true`, this resource will ignore any Entity IDs
|
|
272
|
+
returned from Vault or specified in the resource. You can use
|
|
273
|
+
`identity.GroupMemberEntityIds` to manage Entity IDs for this group in a
|
|
274
|
+
decoupled manner.
|
|
275
|
+
"""
|
|
276
|
+
return pulumi.get(self, "external_member_entity_ids")
|
|
277
|
+
|
|
278
|
+
@external_member_entity_ids.setter
|
|
279
|
+
def external_member_entity_ids(self, value: Optional[pulumi.Input[_builtins.bool]]):
|
|
280
|
+
pulumi.set(self, "external_member_entity_ids", value)
|
|
281
|
+
|
|
282
|
+
@_builtins.property
|
|
283
|
+
@pulumi.getter(name="externalMemberGroupIds")
|
|
284
|
+
def external_member_group_ids(self) -> Optional[pulumi.Input[_builtins.bool]]:
|
|
285
|
+
"""
|
|
286
|
+
`false` by default. If set to `true`, this resource will ignore any Group IDs
|
|
287
|
+
returned from Vault or specified in the resource. You can use
|
|
288
|
+
`identity.GroupMemberGroupIds` to manage Group IDs for this group in a
|
|
289
|
+
decoupled manner.
|
|
290
|
+
"""
|
|
291
|
+
return pulumi.get(self, "external_member_group_ids")
|
|
292
|
+
|
|
293
|
+
@external_member_group_ids.setter
|
|
294
|
+
def external_member_group_ids(self, value: Optional[pulumi.Input[_builtins.bool]]):
|
|
295
|
+
pulumi.set(self, "external_member_group_ids", value)
|
|
296
|
+
|
|
297
|
+
@_builtins.property
|
|
298
|
+
@pulumi.getter(name="externalPolicies")
|
|
299
|
+
def external_policies(self) -> Optional[pulumi.Input[_builtins.bool]]:
|
|
300
|
+
"""
|
|
301
|
+
`false` by default. If set to `true`, this resource will ignore any policies returned from
|
|
302
|
+
Vault or specified in the resource. You can use `identity.GroupPolicies` to manage
|
|
303
|
+
policies for this group in a decoupled manner.
|
|
304
|
+
"""
|
|
305
|
+
return pulumi.get(self, "external_policies")
|
|
306
|
+
|
|
307
|
+
@external_policies.setter
|
|
308
|
+
def external_policies(self, value: Optional[pulumi.Input[_builtins.bool]]):
|
|
309
|
+
pulumi.set(self, "external_policies", value)
|
|
310
|
+
|
|
311
|
+
@_builtins.property
|
|
312
|
+
@pulumi.getter(name="memberEntityIds")
|
|
313
|
+
def member_entity_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
|
314
|
+
"""
|
|
315
|
+
A list of Entity IDs to be assigned as group members. Not allowed on `external` groups.
|
|
316
|
+
"""
|
|
317
|
+
return pulumi.get(self, "member_entity_ids")
|
|
318
|
+
|
|
319
|
+
@member_entity_ids.setter
|
|
320
|
+
def member_entity_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
|
321
|
+
pulumi.set(self, "member_entity_ids", value)
|
|
322
|
+
|
|
323
|
+
@_builtins.property
|
|
324
|
+
@pulumi.getter(name="memberGroupIds")
|
|
325
|
+
def member_group_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
|
326
|
+
"""
|
|
327
|
+
A list of Group IDs to be assigned as group members. Not allowed on `external` groups.
|
|
328
|
+
"""
|
|
329
|
+
return pulumi.get(self, "member_group_ids")
|
|
330
|
+
|
|
331
|
+
@member_group_ids.setter
|
|
332
|
+
def member_group_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
|
333
|
+
pulumi.set(self, "member_group_ids", value)
|
|
334
|
+
|
|
335
|
+
@_builtins.property
|
|
336
|
+
@pulumi.getter
|
|
337
|
+
def metadata(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
|
|
338
|
+
"""
|
|
339
|
+
A Map of additional metadata to associate with the group.
|
|
340
|
+
"""
|
|
341
|
+
return pulumi.get(self, "metadata")
|
|
342
|
+
|
|
343
|
+
@metadata.setter
|
|
344
|
+
def metadata(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
|
|
345
|
+
pulumi.set(self, "metadata", value)
|
|
346
|
+
|
|
347
|
+
@_builtins.property
|
|
348
|
+
@pulumi.getter
|
|
349
|
+
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
350
|
+
"""
|
|
351
|
+
Name of the identity group to create.
|
|
352
|
+
"""
|
|
353
|
+
return pulumi.get(self, "name")
|
|
354
|
+
|
|
355
|
+
@name.setter
|
|
356
|
+
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
357
|
+
pulumi.set(self, "name", value)
|
|
358
|
+
|
|
359
|
+
@_builtins.property
|
|
360
|
+
@pulumi.getter
|
|
361
|
+
def namespace(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
362
|
+
"""
|
|
363
|
+
The namespace to provision the resource in.
|
|
364
|
+
The value should not contain leading or trailing forward slashes.
|
|
365
|
+
The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
|
|
366
|
+
*Available only for Vault Enterprise*.
|
|
367
|
+
"""
|
|
368
|
+
return pulumi.get(self, "namespace")
|
|
369
|
+
|
|
370
|
+
@namespace.setter
|
|
371
|
+
def namespace(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
372
|
+
pulumi.set(self, "namespace", value)
|
|
373
|
+
|
|
374
|
+
@_builtins.property
|
|
375
|
+
@pulumi.getter
|
|
376
|
+
def policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
|
377
|
+
"""
|
|
378
|
+
A list of policies to apply to the group.
|
|
379
|
+
"""
|
|
380
|
+
return pulumi.get(self, "policies")
|
|
381
|
+
|
|
382
|
+
@policies.setter
|
|
383
|
+
def policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
|
384
|
+
pulumi.set(self, "policies", value)
|
|
385
|
+
|
|
386
|
+
@_builtins.property
|
|
387
|
+
@pulumi.getter
|
|
388
|
+
def type(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
389
|
+
"""
|
|
390
|
+
Type of the group, internal or external. Defaults to `internal`.
|
|
391
|
+
"""
|
|
392
|
+
return pulumi.get(self, "type")
|
|
393
|
+
|
|
394
|
+
@type.setter
|
|
395
|
+
def type(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
396
|
+
pulumi.set(self, "type", value)
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
@pulumi.type_token("vault:identity/group:Group")
|
|
400
|
+
class Group(pulumi.CustomResource):
|
|
401
|
+
@overload
|
|
402
|
+
def __init__(__self__,
|
|
403
|
+
resource_name: str,
|
|
404
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
405
|
+
external_member_entity_ids: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
406
|
+
external_member_group_ids: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
407
|
+
external_policies: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
408
|
+
member_entity_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
409
|
+
member_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
410
|
+
metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
411
|
+
name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
412
|
+
namespace: Optional[pulumi.Input[_builtins.str]] = None,
|
|
413
|
+
policies: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
414
|
+
type: Optional[pulumi.Input[_builtins.str]] = None,
|
|
415
|
+
__props__=None):
|
|
416
|
+
"""
|
|
417
|
+
Creates an Identity Group for Vault. The [Identity secrets engine](https://www.vaultproject.io/docs/secrets/identity/index.html) is the identity management solution for Vault.
|
|
418
|
+
|
|
419
|
+
A group can contain multiple entities as its members. A group can also have subgroups. Policies set on the group is granted to all members of the group. During request time, when the token's entity ID is being evaluated for the policies that it has access to; along with the policies on the entity itself, policies that are inherited due to group memberships are also granted.
|
|
420
|
+
|
|
421
|
+
## Example Usage
|
|
422
|
+
|
|
423
|
+
### Internal Group
|
|
424
|
+
|
|
425
|
+
```python
|
|
426
|
+
import pulumi
|
|
427
|
+
import pulumi_vault as vault
|
|
428
|
+
|
|
429
|
+
internal = vault.identity.Group("internal",
|
|
430
|
+
name="internal",
|
|
431
|
+
type="internal",
|
|
432
|
+
policies=[
|
|
433
|
+
"dev",
|
|
434
|
+
"test",
|
|
435
|
+
],
|
|
436
|
+
metadata={
|
|
437
|
+
"version": "2",
|
|
438
|
+
})
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
### External Group
|
|
442
|
+
|
|
443
|
+
```python
|
|
444
|
+
import pulumi
|
|
445
|
+
import pulumi_vault as vault
|
|
446
|
+
|
|
447
|
+
group = vault.identity.Group("group",
|
|
448
|
+
name="external",
|
|
449
|
+
type="external",
|
|
450
|
+
policies=["test"],
|
|
451
|
+
metadata={
|
|
452
|
+
"version": "1",
|
|
453
|
+
})
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
## Caveats
|
|
457
|
+
|
|
458
|
+
It's important to note that Vault identity groups names are *case-insensitive*. For example the following resources would be equivalent.
|
|
459
|
+
Applying this configuration would result in the provider failing to create one of the identity groups, since the resources share the same `name`.
|
|
460
|
+
|
|
461
|
+
This sort of pattern should be avoided:
|
|
462
|
+
```python
|
|
463
|
+
import pulumi
|
|
464
|
+
import pulumi_vault as vault
|
|
465
|
+
|
|
466
|
+
internal = vault.identity.Group("internal",
|
|
467
|
+
name="internal",
|
|
468
|
+
type="internal",
|
|
469
|
+
policies=[
|
|
470
|
+
"dev",
|
|
471
|
+
"test",
|
|
472
|
+
],
|
|
473
|
+
metadata={
|
|
474
|
+
"version": "2",
|
|
475
|
+
})
|
|
476
|
+
internal_group = vault.identity.Group("Internal",
|
|
477
|
+
name="Internal",
|
|
478
|
+
type="internal",
|
|
479
|
+
policies=[
|
|
480
|
+
"dev",
|
|
481
|
+
"test",
|
|
482
|
+
],
|
|
483
|
+
metadata={
|
|
484
|
+
"version": "2",
|
|
485
|
+
})
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
## Import
|
|
489
|
+
|
|
490
|
+
Identity group can be imported using the `id`, e.g.
|
|
491
|
+
|
|
492
|
+
```sh
|
|
493
|
+
$ pulumi import vault:identity/group:Group test 'fcbf1efb-2b69-4209-bed8-811e3475dad3'
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
:param str resource_name: The name of the resource.
|
|
497
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
498
|
+
:param pulumi.Input[_builtins.bool] external_member_entity_ids: `false` by default. If set to `true`, this resource will ignore any Entity IDs
|
|
499
|
+
returned from Vault or specified in the resource. You can use
|
|
500
|
+
`identity.GroupMemberEntityIds` to manage Entity IDs for this group in a
|
|
501
|
+
decoupled manner.
|
|
502
|
+
:param pulumi.Input[_builtins.bool] external_member_group_ids: `false` by default. If set to `true`, this resource will ignore any Group IDs
|
|
503
|
+
returned from Vault or specified in the resource. You can use
|
|
504
|
+
`identity.GroupMemberGroupIds` to manage Group IDs for this group in a
|
|
505
|
+
decoupled manner.
|
|
506
|
+
:param pulumi.Input[_builtins.bool] external_policies: `false` by default. If set to `true`, this resource will ignore any policies returned from
|
|
507
|
+
Vault or specified in the resource. You can use `identity.GroupPolicies` to manage
|
|
508
|
+
policies for this group in a decoupled manner.
|
|
509
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] member_entity_ids: A list of Entity IDs to be assigned as group members. Not allowed on `external` groups.
|
|
510
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] member_group_ids: A list of Group IDs to be assigned as group members. Not allowed on `external` groups.
|
|
511
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] metadata: A Map of additional metadata to associate with the group.
|
|
512
|
+
:param pulumi.Input[_builtins.str] name: Name of the identity group to create.
|
|
513
|
+
:param pulumi.Input[_builtins.str] namespace: The namespace to provision the resource in.
|
|
514
|
+
The value should not contain leading or trailing forward slashes.
|
|
515
|
+
The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
|
|
516
|
+
*Available only for Vault Enterprise*.
|
|
517
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] policies: A list of policies to apply to the group.
|
|
518
|
+
:param pulumi.Input[_builtins.str] type: Type of the group, internal or external. Defaults to `internal`.
|
|
519
|
+
"""
|
|
520
|
+
...
|
|
521
|
+
@overload
|
|
522
|
+
def __init__(__self__,
|
|
523
|
+
resource_name: str,
|
|
524
|
+
args: Optional[GroupArgs] = None,
|
|
525
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
|
526
|
+
"""
|
|
527
|
+
Creates an Identity Group for Vault. The [Identity secrets engine](https://www.vaultproject.io/docs/secrets/identity/index.html) is the identity management solution for Vault.
|
|
528
|
+
|
|
529
|
+
A group can contain multiple entities as its members. A group can also have subgroups. Policies set on the group is granted to all members of the group. During request time, when the token's entity ID is being evaluated for the policies that it has access to; along with the policies on the entity itself, policies that are inherited due to group memberships are also granted.
|
|
530
|
+
|
|
531
|
+
## Example Usage
|
|
532
|
+
|
|
533
|
+
### Internal Group
|
|
534
|
+
|
|
535
|
+
```python
|
|
536
|
+
import pulumi
|
|
537
|
+
import pulumi_vault as vault
|
|
538
|
+
|
|
539
|
+
internal = vault.identity.Group("internal",
|
|
540
|
+
name="internal",
|
|
541
|
+
type="internal",
|
|
542
|
+
policies=[
|
|
543
|
+
"dev",
|
|
544
|
+
"test",
|
|
545
|
+
],
|
|
546
|
+
metadata={
|
|
547
|
+
"version": "2",
|
|
548
|
+
})
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
### External Group
|
|
552
|
+
|
|
553
|
+
```python
|
|
554
|
+
import pulumi
|
|
555
|
+
import pulumi_vault as vault
|
|
556
|
+
|
|
557
|
+
group = vault.identity.Group("group",
|
|
558
|
+
name="external",
|
|
559
|
+
type="external",
|
|
560
|
+
policies=["test"],
|
|
561
|
+
metadata={
|
|
562
|
+
"version": "1",
|
|
563
|
+
})
|
|
564
|
+
```
|
|
565
|
+
|
|
566
|
+
## Caveats
|
|
567
|
+
|
|
568
|
+
It's important to note that Vault identity groups names are *case-insensitive*. For example the following resources would be equivalent.
|
|
569
|
+
Applying this configuration would result in the provider failing to create one of the identity groups, since the resources share the same `name`.
|
|
570
|
+
|
|
571
|
+
This sort of pattern should be avoided:
|
|
572
|
+
```python
|
|
573
|
+
import pulumi
|
|
574
|
+
import pulumi_vault as vault
|
|
575
|
+
|
|
576
|
+
internal = vault.identity.Group("internal",
|
|
577
|
+
name="internal",
|
|
578
|
+
type="internal",
|
|
579
|
+
policies=[
|
|
580
|
+
"dev",
|
|
581
|
+
"test",
|
|
582
|
+
],
|
|
583
|
+
metadata={
|
|
584
|
+
"version": "2",
|
|
585
|
+
})
|
|
586
|
+
internal_group = vault.identity.Group("Internal",
|
|
587
|
+
name="Internal",
|
|
588
|
+
type="internal",
|
|
589
|
+
policies=[
|
|
590
|
+
"dev",
|
|
591
|
+
"test",
|
|
592
|
+
],
|
|
593
|
+
metadata={
|
|
594
|
+
"version": "2",
|
|
595
|
+
})
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
## Import
|
|
599
|
+
|
|
600
|
+
Identity group can be imported using the `id`, e.g.
|
|
601
|
+
|
|
602
|
+
```sh
|
|
603
|
+
$ pulumi import vault:identity/group:Group test 'fcbf1efb-2b69-4209-bed8-811e3475dad3'
|
|
604
|
+
```
|
|
605
|
+
|
|
606
|
+
:param str resource_name: The name of the resource.
|
|
607
|
+
:param GroupArgs args: The arguments to use to populate this resource's properties.
|
|
608
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
609
|
+
"""
|
|
610
|
+
...
|
|
611
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
|
612
|
+
resource_args, opts = _utilities.get_resource_args_opts(GroupArgs, pulumi.ResourceOptions, *args, **kwargs)
|
|
613
|
+
if resource_args is not None:
|
|
614
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
|
615
|
+
else:
|
|
616
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
|
617
|
+
|
|
618
|
+
def _internal_init(__self__,
|
|
619
|
+
resource_name: str,
|
|
620
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
621
|
+
external_member_entity_ids: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
622
|
+
external_member_group_ids: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
623
|
+
external_policies: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
624
|
+
member_entity_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
625
|
+
member_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
626
|
+
metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
627
|
+
name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
628
|
+
namespace: Optional[pulumi.Input[_builtins.str]] = None,
|
|
629
|
+
policies: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
630
|
+
type: Optional[pulumi.Input[_builtins.str]] = None,
|
|
631
|
+
__props__=None):
|
|
632
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
|
633
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
|
634
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
|
635
|
+
if opts.id is None:
|
|
636
|
+
if __props__ is not None:
|
|
637
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
|
638
|
+
__props__ = GroupArgs.__new__(GroupArgs)
|
|
639
|
+
|
|
640
|
+
__props__.__dict__["external_member_entity_ids"] = external_member_entity_ids
|
|
641
|
+
__props__.__dict__["external_member_group_ids"] = external_member_group_ids
|
|
642
|
+
__props__.__dict__["external_policies"] = external_policies
|
|
643
|
+
__props__.__dict__["member_entity_ids"] = member_entity_ids
|
|
644
|
+
__props__.__dict__["member_group_ids"] = member_group_ids
|
|
645
|
+
__props__.__dict__["metadata"] = metadata
|
|
646
|
+
__props__.__dict__["name"] = name
|
|
647
|
+
__props__.__dict__["namespace"] = namespace
|
|
648
|
+
__props__.__dict__["policies"] = policies
|
|
649
|
+
__props__.__dict__["type"] = type
|
|
650
|
+
super(Group, __self__).__init__(
|
|
651
|
+
'vault:identity/group:Group',
|
|
652
|
+
resource_name,
|
|
653
|
+
__props__,
|
|
654
|
+
opts)
|
|
655
|
+
|
|
656
|
+
@staticmethod
|
|
657
|
+
def get(resource_name: str,
|
|
658
|
+
id: pulumi.Input[str],
|
|
659
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
660
|
+
external_member_entity_ids: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
661
|
+
external_member_group_ids: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
662
|
+
external_policies: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
663
|
+
member_entity_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
664
|
+
member_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
665
|
+
metadata: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
666
|
+
name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
667
|
+
namespace: Optional[pulumi.Input[_builtins.str]] = None,
|
|
668
|
+
policies: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
669
|
+
type: Optional[pulumi.Input[_builtins.str]] = None) -> 'Group':
|
|
670
|
+
"""
|
|
671
|
+
Get an existing Group resource's state with the given name, id, and optional extra
|
|
672
|
+
properties used to qualify the lookup.
|
|
673
|
+
|
|
674
|
+
:param str resource_name: The unique name of the resulting resource.
|
|
675
|
+
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
|
676
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
677
|
+
:param pulumi.Input[_builtins.bool] external_member_entity_ids: `false` by default. If set to `true`, this resource will ignore any Entity IDs
|
|
678
|
+
returned from Vault or specified in the resource. You can use
|
|
679
|
+
`identity.GroupMemberEntityIds` to manage Entity IDs for this group in a
|
|
680
|
+
decoupled manner.
|
|
681
|
+
:param pulumi.Input[_builtins.bool] external_member_group_ids: `false` by default. If set to `true`, this resource will ignore any Group IDs
|
|
682
|
+
returned from Vault or specified in the resource. You can use
|
|
683
|
+
`identity.GroupMemberGroupIds` to manage Group IDs for this group in a
|
|
684
|
+
decoupled manner.
|
|
685
|
+
:param pulumi.Input[_builtins.bool] external_policies: `false` by default. If set to `true`, this resource will ignore any policies returned from
|
|
686
|
+
Vault or specified in the resource. You can use `identity.GroupPolicies` to manage
|
|
687
|
+
policies for this group in a decoupled manner.
|
|
688
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] member_entity_ids: A list of Entity IDs to be assigned as group members. Not allowed on `external` groups.
|
|
689
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] member_group_ids: A list of Group IDs to be assigned as group members. Not allowed on `external` groups.
|
|
690
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] metadata: A Map of additional metadata to associate with the group.
|
|
691
|
+
:param pulumi.Input[_builtins.str] name: Name of the identity group to create.
|
|
692
|
+
:param pulumi.Input[_builtins.str] namespace: The namespace to provision the resource in.
|
|
693
|
+
The value should not contain leading or trailing forward slashes.
|
|
694
|
+
The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
|
|
695
|
+
*Available only for Vault Enterprise*.
|
|
696
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] policies: A list of policies to apply to the group.
|
|
697
|
+
:param pulumi.Input[_builtins.str] type: Type of the group, internal or external. Defaults to `internal`.
|
|
698
|
+
"""
|
|
699
|
+
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
|
700
|
+
|
|
701
|
+
__props__ = _GroupState.__new__(_GroupState)
|
|
702
|
+
|
|
703
|
+
__props__.__dict__["external_member_entity_ids"] = external_member_entity_ids
|
|
704
|
+
__props__.__dict__["external_member_group_ids"] = external_member_group_ids
|
|
705
|
+
__props__.__dict__["external_policies"] = external_policies
|
|
706
|
+
__props__.__dict__["member_entity_ids"] = member_entity_ids
|
|
707
|
+
__props__.__dict__["member_group_ids"] = member_group_ids
|
|
708
|
+
__props__.__dict__["metadata"] = metadata
|
|
709
|
+
__props__.__dict__["name"] = name
|
|
710
|
+
__props__.__dict__["namespace"] = namespace
|
|
711
|
+
__props__.__dict__["policies"] = policies
|
|
712
|
+
__props__.__dict__["type"] = type
|
|
713
|
+
return Group(resource_name, opts=opts, __props__=__props__)
|
|
714
|
+
|
|
715
|
+
@_builtins.property
|
|
716
|
+
@pulumi.getter(name="externalMemberEntityIds")
|
|
717
|
+
def external_member_entity_ids(self) -> pulumi.Output[Optional[_builtins.bool]]:
|
|
718
|
+
"""
|
|
719
|
+
`false` by default. If set to `true`, this resource will ignore any Entity IDs
|
|
720
|
+
returned from Vault or specified in the resource. You can use
|
|
721
|
+
`identity.GroupMemberEntityIds` to manage Entity IDs for this group in a
|
|
722
|
+
decoupled manner.
|
|
723
|
+
"""
|
|
724
|
+
return pulumi.get(self, "external_member_entity_ids")
|
|
725
|
+
|
|
726
|
+
@_builtins.property
|
|
727
|
+
@pulumi.getter(name="externalMemberGroupIds")
|
|
728
|
+
def external_member_group_ids(self) -> pulumi.Output[Optional[_builtins.bool]]:
|
|
729
|
+
"""
|
|
730
|
+
`false` by default. If set to `true`, this resource will ignore any Group IDs
|
|
731
|
+
returned from Vault or specified in the resource. You can use
|
|
732
|
+
`identity.GroupMemberGroupIds` to manage Group IDs for this group in a
|
|
733
|
+
decoupled manner.
|
|
734
|
+
"""
|
|
735
|
+
return pulumi.get(self, "external_member_group_ids")
|
|
736
|
+
|
|
737
|
+
@_builtins.property
|
|
738
|
+
@pulumi.getter(name="externalPolicies")
|
|
739
|
+
def external_policies(self) -> pulumi.Output[Optional[_builtins.bool]]:
|
|
740
|
+
"""
|
|
741
|
+
`false` by default. If set to `true`, this resource will ignore any policies returned from
|
|
742
|
+
Vault or specified in the resource. You can use `identity.GroupPolicies` to manage
|
|
743
|
+
policies for this group in a decoupled manner.
|
|
744
|
+
"""
|
|
745
|
+
return pulumi.get(self, "external_policies")
|
|
746
|
+
|
|
747
|
+
@_builtins.property
|
|
748
|
+
@pulumi.getter(name="memberEntityIds")
|
|
749
|
+
def member_entity_ids(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
|
|
750
|
+
"""
|
|
751
|
+
A list of Entity IDs to be assigned as group members. Not allowed on `external` groups.
|
|
752
|
+
"""
|
|
753
|
+
return pulumi.get(self, "member_entity_ids")
|
|
754
|
+
|
|
755
|
+
@_builtins.property
|
|
756
|
+
@pulumi.getter(name="memberGroupIds")
|
|
757
|
+
def member_group_ids(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
|
|
758
|
+
"""
|
|
759
|
+
A list of Group IDs to be assigned as group members. Not allowed on `external` groups.
|
|
760
|
+
"""
|
|
761
|
+
return pulumi.get(self, "member_group_ids")
|
|
762
|
+
|
|
763
|
+
@_builtins.property
|
|
764
|
+
@pulumi.getter
|
|
765
|
+
def metadata(self) -> pulumi.Output[Optional[Mapping[str, _builtins.str]]]:
|
|
766
|
+
"""
|
|
767
|
+
A Map of additional metadata to associate with the group.
|
|
768
|
+
"""
|
|
769
|
+
return pulumi.get(self, "metadata")
|
|
770
|
+
|
|
771
|
+
@_builtins.property
|
|
772
|
+
@pulumi.getter
|
|
773
|
+
def name(self) -> pulumi.Output[_builtins.str]:
|
|
774
|
+
"""
|
|
775
|
+
Name of the identity group to create.
|
|
776
|
+
"""
|
|
777
|
+
return pulumi.get(self, "name")
|
|
778
|
+
|
|
779
|
+
@_builtins.property
|
|
780
|
+
@pulumi.getter
|
|
781
|
+
def namespace(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
782
|
+
"""
|
|
783
|
+
The namespace to provision the resource in.
|
|
784
|
+
The value should not contain leading or trailing forward slashes.
|
|
785
|
+
The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
|
|
786
|
+
*Available only for Vault Enterprise*.
|
|
787
|
+
"""
|
|
788
|
+
return pulumi.get(self, "namespace")
|
|
789
|
+
|
|
790
|
+
@_builtins.property
|
|
791
|
+
@pulumi.getter
|
|
792
|
+
def policies(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
|
|
793
|
+
"""
|
|
794
|
+
A list of policies to apply to the group.
|
|
795
|
+
"""
|
|
796
|
+
return pulumi.get(self, "policies")
|
|
797
|
+
|
|
798
|
+
@_builtins.property
|
|
799
|
+
@pulumi.getter
|
|
800
|
+
def type(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
801
|
+
"""
|
|
802
|
+
Type of the group, internal or external. Defaults to `internal`.
|
|
803
|
+
"""
|
|
804
|
+
return pulumi.get(self, "type")
|
|
805
|
+
|