pulumi-vault 5.21.0a1709368526__py3-none-any.whl → 6.5.0a1736836139__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. pulumi_vault/__init__.py +52 -0
  2. pulumi_vault/_inputs.py +560 -0
  3. pulumi_vault/_utilities.py +41 -5
  4. pulumi_vault/ad/get_access_credentials.py +26 -9
  5. pulumi_vault/ad/secret_backend.py +16 -142
  6. pulumi_vault/ad/secret_library.py +16 -9
  7. pulumi_vault/ad/secret_role.py +14 -9
  8. pulumi_vault/alicloud/auth_backend_role.py +76 -190
  9. pulumi_vault/approle/auth_backend_login.py +12 -7
  10. pulumi_vault/approle/auth_backend_role.py +77 -191
  11. pulumi_vault/approle/auth_backend_role_secret_id.py +106 -7
  12. pulumi_vault/approle/get_auth_backend_role_id.py +18 -5
  13. pulumi_vault/audit.py +30 -21
  14. pulumi_vault/audit_request_header.py +11 -2
  15. pulumi_vault/auth_backend.py +66 -14
  16. pulumi_vault/aws/auth_backend_cert.py +18 -9
  17. pulumi_vault/aws/auth_backend_client.py +267 -22
  18. pulumi_vault/aws/auth_backend_config_identity.py +14 -9
  19. pulumi_vault/aws/auth_backend_identity_whitelist.py +20 -15
  20. pulumi_vault/aws/auth_backend_login.py +19 -22
  21. pulumi_vault/aws/auth_backend_role.py +77 -191
  22. pulumi_vault/aws/auth_backend_role_tag.py +12 -7
  23. pulumi_vault/aws/auth_backend_roletag_blacklist.py +18 -13
  24. pulumi_vault/aws/auth_backend_sts_role.py +14 -9
  25. pulumi_vault/aws/get_access_credentials.py +38 -9
  26. pulumi_vault/aws/get_static_access_credentials.py +19 -5
  27. pulumi_vault/aws/secret_backend.py +77 -9
  28. pulumi_vault/aws/secret_backend_role.py +185 -9
  29. pulumi_vault/aws/secret_backend_static_role.py +20 -11
  30. pulumi_vault/azure/_inputs.py +24 -0
  31. pulumi_vault/azure/auth_backend_config.py +153 -15
  32. pulumi_vault/azure/auth_backend_role.py +77 -191
  33. pulumi_vault/azure/backend.py +227 -21
  34. pulumi_vault/azure/backend_role.py +42 -37
  35. pulumi_vault/azure/get_access_credentials.py +41 -7
  36. pulumi_vault/azure/outputs.py +5 -0
  37. pulumi_vault/cert_auth_backend_role.py +87 -267
  38. pulumi_vault/config/__init__.pyi +5 -0
  39. pulumi_vault/config/_inputs.py +73 -0
  40. pulumi_vault/config/outputs.py +35 -0
  41. pulumi_vault/config/ui_custom_message.py +529 -0
  42. pulumi_vault/config/vars.py +5 -0
  43. pulumi_vault/consul/secret_backend.py +28 -19
  44. pulumi_vault/consul/secret_backend_role.py +18 -78
  45. pulumi_vault/database/_inputs.py +2770 -881
  46. pulumi_vault/database/outputs.py +721 -838
  47. pulumi_vault/database/secret_backend_connection.py +119 -112
  48. pulumi_vault/database/secret_backend_role.py +31 -22
  49. pulumi_vault/database/secret_backend_static_role.py +87 -13
  50. pulumi_vault/database/secrets_mount.py +427 -136
  51. pulumi_vault/egp_policy.py +16 -11
  52. pulumi_vault/gcp/_inputs.py +111 -0
  53. pulumi_vault/gcp/auth_backend.py +250 -33
  54. pulumi_vault/gcp/auth_backend_role.py +77 -269
  55. pulumi_vault/gcp/get_auth_backend_role.py +43 -5
  56. pulumi_vault/gcp/outputs.py +5 -0
  57. pulumi_vault/gcp/secret_backend.py +287 -12
  58. pulumi_vault/gcp/secret_impersonated_account.py +76 -15
  59. pulumi_vault/gcp/secret_roleset.py +31 -24
  60. pulumi_vault/gcp/secret_static_account.py +39 -32
  61. pulumi_vault/generic/endpoint.py +24 -17
  62. pulumi_vault/generic/get_secret.py +64 -8
  63. pulumi_vault/generic/secret.py +21 -16
  64. pulumi_vault/get_auth_backend.py +24 -7
  65. pulumi_vault/get_auth_backends.py +51 -9
  66. pulumi_vault/get_namespace.py +226 -0
  67. pulumi_vault/get_namespaces.py +153 -0
  68. pulumi_vault/get_nomad_access_token.py +31 -11
  69. pulumi_vault/get_policy_document.py +34 -19
  70. pulumi_vault/get_raft_autopilot_state.py +29 -10
  71. pulumi_vault/github/_inputs.py +55 -0
  72. pulumi_vault/github/auth_backend.py +19 -14
  73. pulumi_vault/github/outputs.py +5 -0
  74. pulumi_vault/github/team.py +16 -11
  75. pulumi_vault/github/user.py +16 -11
  76. pulumi_vault/identity/entity.py +20 -13
  77. pulumi_vault/identity/entity_alias.py +20 -13
  78. pulumi_vault/identity/entity_policies.py +28 -11
  79. pulumi_vault/identity/get_entity.py +42 -10
  80. pulumi_vault/identity/get_group.py +47 -9
  81. pulumi_vault/identity/get_oidc_client_creds.py +21 -7
  82. pulumi_vault/identity/get_oidc_openid_config.py +39 -9
  83. pulumi_vault/identity/get_oidc_public_keys.py +29 -10
  84. pulumi_vault/identity/group.py +58 -39
  85. pulumi_vault/identity/group_alias.py +16 -9
  86. pulumi_vault/identity/group_member_entity_ids.py +28 -66
  87. pulumi_vault/identity/group_member_group_ids.py +40 -19
  88. pulumi_vault/identity/group_policies.py +20 -7
  89. pulumi_vault/identity/mfa_duo.py +11 -6
  90. pulumi_vault/identity/mfa_login_enforcement.py +15 -6
  91. pulumi_vault/identity/mfa_okta.py +11 -6
  92. pulumi_vault/identity/mfa_pingid.py +7 -2
  93. pulumi_vault/identity/mfa_totp.py +7 -2
  94. pulumi_vault/identity/oidc.py +12 -7
  95. pulumi_vault/identity/oidc_assignment.py +24 -11
  96. pulumi_vault/identity/oidc_client.py +36 -23
  97. pulumi_vault/identity/oidc_key.py +30 -17
  98. pulumi_vault/identity/oidc_key_allowed_client_id.py +28 -15
  99. pulumi_vault/identity/oidc_provider.py +36 -21
  100. pulumi_vault/identity/oidc_role.py +42 -21
  101. pulumi_vault/identity/oidc_scope.py +20 -13
  102. pulumi_vault/identity/outputs.py +8 -3
  103. pulumi_vault/jwt/_inputs.py +55 -0
  104. pulumi_vault/jwt/auth_backend.py +45 -40
  105. pulumi_vault/jwt/auth_backend_role.py +133 -254
  106. pulumi_vault/jwt/outputs.py +5 -0
  107. pulumi_vault/kmip/secret_backend.py +24 -19
  108. pulumi_vault/kmip/secret_role.py +14 -9
  109. pulumi_vault/kmip/secret_scope.py +14 -9
  110. pulumi_vault/kubernetes/auth_backend_config.py +57 -5
  111. pulumi_vault/kubernetes/auth_backend_role.py +70 -177
  112. pulumi_vault/kubernetes/get_auth_backend_config.py +60 -8
  113. pulumi_vault/kubernetes/get_auth_backend_role.py +40 -5
  114. pulumi_vault/kubernetes/get_service_account_token.py +39 -11
  115. pulumi_vault/kubernetes/secret_backend.py +316 -27
  116. pulumi_vault/kubernetes/secret_backend_role.py +137 -46
  117. pulumi_vault/kv/_inputs.py +36 -4
  118. pulumi_vault/kv/get_secret.py +25 -8
  119. pulumi_vault/kv/get_secret_subkeys_v2.py +33 -10
  120. pulumi_vault/kv/get_secret_v2.py +85 -9
  121. pulumi_vault/kv/get_secrets_list.py +24 -11
  122. pulumi_vault/kv/get_secrets_list_v2.py +37 -15
  123. pulumi_vault/kv/outputs.py +8 -3
  124. pulumi_vault/kv/secret.py +23 -16
  125. pulumi_vault/kv/secret_backend_v2.py +20 -11
  126. pulumi_vault/kv/secret_v2.py +59 -50
  127. pulumi_vault/ldap/auth_backend.py +127 -166
  128. pulumi_vault/ldap/auth_backend_group.py +14 -9
  129. pulumi_vault/ldap/auth_backend_user.py +14 -9
  130. pulumi_vault/ldap/get_dynamic_credentials.py +23 -5
  131. pulumi_vault/ldap/get_static_credentials.py +24 -5
  132. pulumi_vault/ldap/secret_backend.py +354 -82
  133. pulumi_vault/ldap/secret_backend_dynamic_role.py +18 -11
  134. pulumi_vault/ldap/secret_backend_library_set.py +16 -9
  135. pulumi_vault/ldap/secret_backend_static_role.py +73 -12
  136. pulumi_vault/managed/_inputs.py +289 -132
  137. pulumi_vault/managed/keys.py +29 -57
  138. pulumi_vault/managed/outputs.py +89 -132
  139. pulumi_vault/mfa_duo.py +18 -11
  140. pulumi_vault/mfa_okta.py +18 -11
  141. pulumi_vault/mfa_pingid.py +18 -11
  142. pulumi_vault/mfa_totp.py +24 -17
  143. pulumi_vault/mongodbatlas/secret_backend.py +20 -15
  144. pulumi_vault/mongodbatlas/secret_role.py +47 -38
  145. pulumi_vault/mount.py +391 -51
  146. pulumi_vault/namespace.py +68 -83
  147. pulumi_vault/nomad_secret_backend.py +18 -13
  148. pulumi_vault/nomad_secret_role.py +14 -9
  149. pulumi_vault/okta/_inputs.py +47 -8
  150. pulumi_vault/okta/auth_backend.py +485 -39
  151. pulumi_vault/okta/auth_backend_group.py +14 -9
  152. pulumi_vault/okta/auth_backend_user.py +14 -9
  153. pulumi_vault/okta/outputs.py +13 -8
  154. pulumi_vault/outputs.py +5 -0
  155. pulumi_vault/password_policy.py +20 -13
  156. pulumi_vault/pkisecret/__init__.py +3 -0
  157. pulumi_vault/pkisecret/_inputs.py +81 -0
  158. pulumi_vault/pkisecret/backend_config_cluster.py +369 -0
  159. pulumi_vault/pkisecret/backend_config_est.py +619 -0
  160. pulumi_vault/pkisecret/get_backend_config_est.py +251 -0
  161. pulumi_vault/pkisecret/get_backend_issuer.py +67 -9
  162. pulumi_vault/pkisecret/get_backend_issuers.py +21 -8
  163. pulumi_vault/pkisecret/get_backend_key.py +24 -9
  164. pulumi_vault/pkisecret/get_backend_keys.py +21 -8
  165. pulumi_vault/pkisecret/outputs.py +69 -0
  166. pulumi_vault/pkisecret/secret_backend_cert.py +18 -11
  167. pulumi_vault/pkisecret/secret_backend_config_ca.py +16 -11
  168. pulumi_vault/pkisecret/secret_backend_config_issuers.py +14 -9
  169. pulumi_vault/pkisecret/secret_backend_config_urls.py +67 -11
  170. pulumi_vault/pkisecret/secret_backend_crl_config.py +14 -9
  171. pulumi_vault/pkisecret/secret_backend_intermediate_cert_request.py +16 -11
  172. pulumi_vault/pkisecret/secret_backend_intermediate_set_signed.py +22 -17
  173. pulumi_vault/pkisecret/secret_backend_issuer.py +14 -9
  174. pulumi_vault/pkisecret/secret_backend_key.py +14 -9
  175. pulumi_vault/pkisecret/secret_backend_role.py +21 -14
  176. pulumi_vault/pkisecret/secret_backend_root_cert.py +16 -48
  177. pulumi_vault/pkisecret/secret_backend_root_sign_intermediate.py +18 -56
  178. pulumi_vault/pkisecret/secret_backend_sign.py +18 -54
  179. pulumi_vault/plugin.py +595 -0
  180. pulumi_vault/plugin_pinned_version.py +298 -0
  181. pulumi_vault/policy.py +14 -9
  182. pulumi_vault/provider.py +48 -53
  183. pulumi_vault/pulumi-plugin.json +2 -1
  184. pulumi_vault/quota_lease_count.py +60 -6
  185. pulumi_vault/quota_rate_limit.py +56 -2
  186. pulumi_vault/rabbitmq/_inputs.py +61 -0
  187. pulumi_vault/rabbitmq/outputs.py +5 -0
  188. pulumi_vault/rabbitmq/secret_backend.py +18 -13
  189. pulumi_vault/rabbitmq/secret_backend_role.py +54 -47
  190. pulumi_vault/raft_autopilot.py +14 -9
  191. pulumi_vault/raft_snapshot_agent_config.py +129 -224
  192. pulumi_vault/rgp_policy.py +14 -9
  193. pulumi_vault/saml/auth_backend.py +22 -17
  194. pulumi_vault/saml/auth_backend_role.py +92 -197
  195. pulumi_vault/secrets/__init__.py +3 -0
  196. pulumi_vault/secrets/_inputs.py +110 -0
  197. pulumi_vault/secrets/outputs.py +94 -0
  198. pulumi_vault/secrets/sync_association.py +56 -71
  199. pulumi_vault/secrets/sync_aws_destination.py +242 -27
  200. pulumi_vault/secrets/sync_azure_destination.py +92 -31
  201. pulumi_vault/secrets/sync_config.py +9 -4
  202. pulumi_vault/secrets/sync_gcp_destination.py +158 -25
  203. pulumi_vault/secrets/sync_gh_destination.py +189 -13
  204. pulumi_vault/secrets/sync_github_apps.py +375 -0
  205. pulumi_vault/secrets/sync_vercel_destination.py +74 -13
  206. pulumi_vault/ssh/_inputs.py +28 -28
  207. pulumi_vault/ssh/outputs.py +11 -28
  208. pulumi_vault/ssh/secret_backend_ca.py +108 -9
  209. pulumi_vault/ssh/secret_backend_role.py +85 -118
  210. pulumi_vault/terraformcloud/secret_backend.py +7 -54
  211. pulumi_vault/terraformcloud/secret_creds.py +14 -20
  212. pulumi_vault/terraformcloud/secret_role.py +16 -74
  213. pulumi_vault/token.py +28 -23
  214. pulumi_vault/tokenauth/auth_backend_role.py +78 -199
  215. pulumi_vault/transform/alphabet.py +16 -9
  216. pulumi_vault/transform/get_decode.py +45 -17
  217. pulumi_vault/transform/get_encode.py +45 -17
  218. pulumi_vault/transform/role.py +16 -9
  219. pulumi_vault/transform/template.py +30 -21
  220. pulumi_vault/transform/transformation.py +12 -7
  221. pulumi_vault/transit/get_decrypt.py +26 -21
  222. pulumi_vault/transit/get_encrypt.py +24 -19
  223. pulumi_vault/transit/secret_backend_key.py +27 -93
  224. pulumi_vault/transit/secret_cache_config.py +12 -7
  225. {pulumi_vault-5.21.0a1709368526.dist-info → pulumi_vault-6.5.0a1736836139.dist-info}/METADATA +8 -7
  226. pulumi_vault-6.5.0a1736836139.dist-info/RECORD +256 -0
  227. {pulumi_vault-5.21.0a1709368526.dist-info → pulumi_vault-6.5.0a1736836139.dist-info}/WHEEL +1 -1
  228. pulumi_vault-5.21.0a1709368526.dist-info/RECORD +0 -244
  229. {pulumi_vault-5.21.0a1709368526.dist-info → pulumi_vault-6.5.0a1736836139.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,375 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
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__ = ['SyncGithubAppsArgs', 'SyncGithubApps']
18
+
19
+ @pulumi.input_type
20
+ class SyncGithubAppsArgs:
21
+ def __init__(__self__, *,
22
+ app_id: pulumi.Input[int],
23
+ private_key: pulumi.Input[str],
24
+ name: Optional[pulumi.Input[str]] = None,
25
+ namespace: Optional[pulumi.Input[str]] = None):
26
+ """
27
+ The set of arguments for constructing a SyncGithubApps resource.
28
+ :param pulumi.Input[int] app_id: The GitHub application ID.
29
+ :param pulumi.Input[str] private_key: The content of a PEM formatted private key generated on GitHub for the app.
30
+ :param pulumi.Input[str] name: The user-defined name of the GitHub App configuration.
31
+ :param pulumi.Input[str] namespace: The namespace to provision the resource in.
32
+ The value should not contain leading or trailing forward slashes.
33
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
34
+ """
35
+ pulumi.set(__self__, "app_id", app_id)
36
+ pulumi.set(__self__, "private_key", private_key)
37
+ if name is not None:
38
+ pulumi.set(__self__, "name", name)
39
+ if namespace is not None:
40
+ pulumi.set(__self__, "namespace", namespace)
41
+
42
+ @property
43
+ @pulumi.getter(name="appId")
44
+ def app_id(self) -> pulumi.Input[int]:
45
+ """
46
+ The GitHub application ID.
47
+ """
48
+ return pulumi.get(self, "app_id")
49
+
50
+ @app_id.setter
51
+ def app_id(self, value: pulumi.Input[int]):
52
+ pulumi.set(self, "app_id", value)
53
+
54
+ @property
55
+ @pulumi.getter(name="privateKey")
56
+ def private_key(self) -> pulumi.Input[str]:
57
+ """
58
+ The content of a PEM formatted private key generated on GitHub for the app.
59
+ """
60
+ return pulumi.get(self, "private_key")
61
+
62
+ @private_key.setter
63
+ def private_key(self, value: pulumi.Input[str]):
64
+ pulumi.set(self, "private_key", value)
65
+
66
+ @property
67
+ @pulumi.getter
68
+ def name(self) -> Optional[pulumi.Input[str]]:
69
+ """
70
+ The user-defined name of the GitHub App configuration.
71
+ """
72
+ return pulumi.get(self, "name")
73
+
74
+ @name.setter
75
+ def name(self, value: Optional[pulumi.Input[str]]):
76
+ pulumi.set(self, "name", value)
77
+
78
+ @property
79
+ @pulumi.getter
80
+ def namespace(self) -> Optional[pulumi.Input[str]]:
81
+ """
82
+ The namespace to provision the resource in.
83
+ The value should not contain leading or trailing forward slashes.
84
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
85
+ """
86
+ return pulumi.get(self, "namespace")
87
+
88
+ @namespace.setter
89
+ def namespace(self, value: Optional[pulumi.Input[str]]):
90
+ pulumi.set(self, "namespace", value)
91
+
92
+
93
+ @pulumi.input_type
94
+ class _SyncGithubAppsState:
95
+ def __init__(__self__, *,
96
+ app_id: Optional[pulumi.Input[int]] = None,
97
+ fingerprint: Optional[pulumi.Input[str]] = None,
98
+ name: Optional[pulumi.Input[str]] = None,
99
+ namespace: Optional[pulumi.Input[str]] = None,
100
+ private_key: Optional[pulumi.Input[str]] = None):
101
+ """
102
+ Input properties used for looking up and filtering SyncGithubApps resources.
103
+ :param pulumi.Input[int] app_id: The GitHub application ID.
104
+ :param pulumi.Input[str] fingerprint: A fingerprint of a private key.
105
+ :param pulumi.Input[str] name: The user-defined name of the GitHub App configuration.
106
+ :param pulumi.Input[str] namespace: The namespace to provision the resource in.
107
+ The value should not contain leading or trailing forward slashes.
108
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
109
+ :param pulumi.Input[str] private_key: The content of a PEM formatted private key generated on GitHub for the app.
110
+ """
111
+ if app_id is not None:
112
+ pulumi.set(__self__, "app_id", app_id)
113
+ if fingerprint is not None:
114
+ pulumi.set(__self__, "fingerprint", fingerprint)
115
+ if name is not None:
116
+ pulumi.set(__self__, "name", name)
117
+ if namespace is not None:
118
+ pulumi.set(__self__, "namespace", namespace)
119
+ if private_key is not None:
120
+ pulumi.set(__self__, "private_key", private_key)
121
+
122
+ @property
123
+ @pulumi.getter(name="appId")
124
+ def app_id(self) -> Optional[pulumi.Input[int]]:
125
+ """
126
+ The GitHub application ID.
127
+ """
128
+ return pulumi.get(self, "app_id")
129
+
130
+ @app_id.setter
131
+ def app_id(self, value: Optional[pulumi.Input[int]]):
132
+ pulumi.set(self, "app_id", value)
133
+
134
+ @property
135
+ @pulumi.getter
136
+ def fingerprint(self) -> Optional[pulumi.Input[str]]:
137
+ """
138
+ A fingerprint of a private key.
139
+ """
140
+ return pulumi.get(self, "fingerprint")
141
+
142
+ @fingerprint.setter
143
+ def fingerprint(self, value: Optional[pulumi.Input[str]]):
144
+ pulumi.set(self, "fingerprint", value)
145
+
146
+ @property
147
+ @pulumi.getter
148
+ def name(self) -> Optional[pulumi.Input[str]]:
149
+ """
150
+ The user-defined name of the GitHub App configuration.
151
+ """
152
+ return pulumi.get(self, "name")
153
+
154
+ @name.setter
155
+ def name(self, value: Optional[pulumi.Input[str]]):
156
+ pulumi.set(self, "name", value)
157
+
158
+ @property
159
+ @pulumi.getter
160
+ def namespace(self) -> Optional[pulumi.Input[str]]:
161
+ """
162
+ The namespace to provision the resource in.
163
+ The value should not contain leading or trailing forward slashes.
164
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
165
+ """
166
+ return pulumi.get(self, "namespace")
167
+
168
+ @namespace.setter
169
+ def namespace(self, value: Optional[pulumi.Input[str]]):
170
+ pulumi.set(self, "namespace", value)
171
+
172
+ @property
173
+ @pulumi.getter(name="privateKey")
174
+ def private_key(self) -> Optional[pulumi.Input[str]]:
175
+ """
176
+ The content of a PEM formatted private key generated on GitHub for the app.
177
+ """
178
+ return pulumi.get(self, "private_key")
179
+
180
+ @private_key.setter
181
+ def private_key(self, value: Optional[pulumi.Input[str]]):
182
+ pulumi.set(self, "private_key", value)
183
+
184
+
185
+ class SyncGithubApps(pulumi.CustomResource):
186
+ @overload
187
+ def __init__(__self__,
188
+ resource_name: str,
189
+ opts: Optional[pulumi.ResourceOptions] = None,
190
+ app_id: Optional[pulumi.Input[int]] = None,
191
+ name: Optional[pulumi.Input[str]] = None,
192
+ namespace: Optional[pulumi.Input[str]] = None,
193
+ private_key: Optional[pulumi.Input[str]] = None,
194
+ __props__=None):
195
+ """
196
+ ## Example Usage
197
+
198
+ ```python
199
+ import pulumi
200
+ import pulumi_std as std
201
+ import pulumi_vault as vault
202
+
203
+ github_apps = vault.secrets.SyncGithubApps("github-apps",
204
+ name="gh-apps",
205
+ app_id=app_id,
206
+ private_key=std.file(input=privatekey_file).result)
207
+ ```
208
+
209
+ ## Import
210
+
211
+ GitHub Apps Secrets sync configuration endpoint can be imported using the `name`, e.g.
212
+
213
+ ```sh
214
+ $ pulumi import vault:secrets/syncGithubApps:SyncGithubApps gh github-apps
215
+ ```
216
+
217
+ :param str resource_name: The name of the resource.
218
+ :param pulumi.ResourceOptions opts: Options for the resource.
219
+ :param pulumi.Input[int] app_id: The GitHub application ID.
220
+ :param pulumi.Input[str] name: The user-defined name of the GitHub App configuration.
221
+ :param pulumi.Input[str] namespace: The namespace to provision the resource in.
222
+ The value should not contain leading or trailing forward slashes.
223
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
224
+ :param pulumi.Input[str] private_key: The content of a PEM formatted private key generated on GitHub for the app.
225
+ """
226
+ ...
227
+ @overload
228
+ def __init__(__self__,
229
+ resource_name: str,
230
+ args: SyncGithubAppsArgs,
231
+ opts: Optional[pulumi.ResourceOptions] = None):
232
+ """
233
+ ## Example Usage
234
+
235
+ ```python
236
+ import pulumi
237
+ import pulumi_std as std
238
+ import pulumi_vault as vault
239
+
240
+ github_apps = vault.secrets.SyncGithubApps("github-apps",
241
+ name="gh-apps",
242
+ app_id=app_id,
243
+ private_key=std.file(input=privatekey_file).result)
244
+ ```
245
+
246
+ ## Import
247
+
248
+ GitHub Apps Secrets sync configuration endpoint can be imported using the `name`, e.g.
249
+
250
+ ```sh
251
+ $ pulumi import vault:secrets/syncGithubApps:SyncGithubApps gh github-apps
252
+ ```
253
+
254
+ :param str resource_name: The name of the resource.
255
+ :param SyncGithubAppsArgs args: The arguments to use to populate this resource's properties.
256
+ :param pulumi.ResourceOptions opts: Options for the resource.
257
+ """
258
+ ...
259
+ def __init__(__self__, resource_name: str, *args, **kwargs):
260
+ resource_args, opts = _utilities.get_resource_args_opts(SyncGithubAppsArgs, pulumi.ResourceOptions, *args, **kwargs)
261
+ if resource_args is not None:
262
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
263
+ else:
264
+ __self__._internal_init(resource_name, *args, **kwargs)
265
+
266
+ def _internal_init(__self__,
267
+ resource_name: str,
268
+ opts: Optional[pulumi.ResourceOptions] = None,
269
+ app_id: Optional[pulumi.Input[int]] = None,
270
+ name: Optional[pulumi.Input[str]] = None,
271
+ namespace: Optional[pulumi.Input[str]] = None,
272
+ private_key: Optional[pulumi.Input[str]] = None,
273
+ __props__=None):
274
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
275
+ if not isinstance(opts, pulumi.ResourceOptions):
276
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
277
+ if opts.id is None:
278
+ if __props__ is not None:
279
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
280
+ __props__ = SyncGithubAppsArgs.__new__(SyncGithubAppsArgs)
281
+
282
+ if app_id is None and not opts.urn:
283
+ raise TypeError("Missing required property 'app_id'")
284
+ __props__.__dict__["app_id"] = app_id
285
+ __props__.__dict__["name"] = name
286
+ __props__.__dict__["namespace"] = namespace
287
+ if private_key is None and not opts.urn:
288
+ raise TypeError("Missing required property 'private_key'")
289
+ __props__.__dict__["private_key"] = None if private_key is None else pulumi.Output.secret(private_key)
290
+ __props__.__dict__["fingerprint"] = None
291
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["privateKey"])
292
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
293
+ super(SyncGithubApps, __self__).__init__(
294
+ 'vault:secrets/syncGithubApps:SyncGithubApps',
295
+ resource_name,
296
+ __props__,
297
+ opts)
298
+
299
+ @staticmethod
300
+ def get(resource_name: str,
301
+ id: pulumi.Input[str],
302
+ opts: Optional[pulumi.ResourceOptions] = None,
303
+ app_id: Optional[pulumi.Input[int]] = None,
304
+ fingerprint: Optional[pulumi.Input[str]] = None,
305
+ name: Optional[pulumi.Input[str]] = None,
306
+ namespace: Optional[pulumi.Input[str]] = None,
307
+ private_key: Optional[pulumi.Input[str]] = None) -> 'SyncGithubApps':
308
+ """
309
+ Get an existing SyncGithubApps resource's state with the given name, id, and optional extra
310
+ properties used to qualify the lookup.
311
+
312
+ :param str resource_name: The unique name of the resulting resource.
313
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
314
+ :param pulumi.ResourceOptions opts: Options for the resource.
315
+ :param pulumi.Input[int] app_id: The GitHub application ID.
316
+ :param pulumi.Input[str] fingerprint: A fingerprint of a private key.
317
+ :param pulumi.Input[str] name: The user-defined name of the GitHub App configuration.
318
+ :param pulumi.Input[str] namespace: The namespace to provision the resource in.
319
+ The value should not contain leading or trailing forward slashes.
320
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
321
+ :param pulumi.Input[str] private_key: The content of a PEM formatted private key generated on GitHub for the app.
322
+ """
323
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
324
+
325
+ __props__ = _SyncGithubAppsState.__new__(_SyncGithubAppsState)
326
+
327
+ __props__.__dict__["app_id"] = app_id
328
+ __props__.__dict__["fingerprint"] = fingerprint
329
+ __props__.__dict__["name"] = name
330
+ __props__.__dict__["namespace"] = namespace
331
+ __props__.__dict__["private_key"] = private_key
332
+ return SyncGithubApps(resource_name, opts=opts, __props__=__props__)
333
+
334
+ @property
335
+ @pulumi.getter(name="appId")
336
+ def app_id(self) -> pulumi.Output[int]:
337
+ """
338
+ The GitHub application ID.
339
+ """
340
+ return pulumi.get(self, "app_id")
341
+
342
+ @property
343
+ @pulumi.getter
344
+ def fingerprint(self) -> pulumi.Output[str]:
345
+ """
346
+ A fingerprint of a private key.
347
+ """
348
+ return pulumi.get(self, "fingerprint")
349
+
350
+ @property
351
+ @pulumi.getter
352
+ def name(self) -> pulumi.Output[str]:
353
+ """
354
+ The user-defined name of the GitHub App configuration.
355
+ """
356
+ return pulumi.get(self, "name")
357
+
358
+ @property
359
+ @pulumi.getter
360
+ def namespace(self) -> pulumi.Output[Optional[str]]:
361
+ """
362
+ The namespace to provision the resource in.
363
+ The value should not contain leading or trailing forward slashes.
364
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
365
+ """
366
+ return pulumi.get(self, "namespace")
367
+
368
+ @property
369
+ @pulumi.getter(name="privateKey")
370
+ def private_key(self) -> pulumi.Output[str]:
371
+ """
372
+ The content of a PEM formatted private key generated on GitHub for the app.
373
+ """
374
+ return pulumi.get(self, "private_key")
375
+
@@ -4,9 +4,14 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
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
10
15
  from .. import _utilities
11
16
 
12
17
  __all__ = ['SyncVercelDestinationArgs', 'SyncVercelDestination']
@@ -17,6 +22,7 @@ class SyncVercelDestinationArgs:
17
22
  access_token: pulumi.Input[str],
18
23
  deployment_environments: pulumi.Input[Sequence[pulumi.Input[str]]],
19
24
  project_id: pulumi.Input[str],
25
+ granularity: Optional[pulumi.Input[str]] = None,
20
26
  name: Optional[pulumi.Input[str]] = None,
21
27
  namespace: Optional[pulumi.Input[str]] = None,
22
28
  secret_name_template: Optional[pulumi.Input[str]] = None,
@@ -28,10 +34,12 @@ class SyncVercelDestinationArgs:
28
34
  :param pulumi.Input[Sequence[pulumi.Input[str]]] deployment_environments: Deployment environments where the environment variables
29
35
  are available. Accepts `development`, `preview` and `production`.
30
36
  :param pulumi.Input[str] project_id: Project ID where to manage environment variables.
37
+ :param pulumi.Input[str] granularity: Determines what level of information is synced as a distinct resource
38
+ at the destination. Supports `secret-path` and `secret-key`.
31
39
  :param pulumi.Input[str] name: Unique name of the GitHub destination.
32
40
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
33
41
  The value should not contain leading or trailing forward slashes.
34
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
42
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
35
43
  :param pulumi.Input[str] secret_name_template: Template describing how to generate external secret names.
36
44
  Supports a subset of the Go Template syntax.
37
45
  :param pulumi.Input[str] team_id: Team ID where to manage environment variables.
@@ -39,6 +47,8 @@ class SyncVercelDestinationArgs:
39
47
  pulumi.set(__self__, "access_token", access_token)
40
48
  pulumi.set(__self__, "deployment_environments", deployment_environments)
41
49
  pulumi.set(__self__, "project_id", project_id)
50
+ if granularity is not None:
51
+ pulumi.set(__self__, "granularity", granularity)
42
52
  if name is not None:
43
53
  pulumi.set(__self__, "name", name)
44
54
  if namespace is not None:
@@ -86,6 +96,19 @@ class SyncVercelDestinationArgs:
86
96
  def project_id(self, value: pulumi.Input[str]):
87
97
  pulumi.set(self, "project_id", value)
88
98
 
99
+ @property
100
+ @pulumi.getter
101
+ def granularity(self) -> Optional[pulumi.Input[str]]:
102
+ """
103
+ Determines what level of information is synced as a distinct resource
104
+ at the destination. Supports `secret-path` and `secret-key`.
105
+ """
106
+ return pulumi.get(self, "granularity")
107
+
108
+ @granularity.setter
109
+ def granularity(self, value: Optional[pulumi.Input[str]]):
110
+ pulumi.set(self, "granularity", value)
111
+
89
112
  @property
90
113
  @pulumi.getter
91
114
  def name(self) -> Optional[pulumi.Input[str]]:
@@ -104,7 +127,7 @@ class SyncVercelDestinationArgs:
104
127
  """
105
128
  The namespace to provision the resource in.
106
129
  The value should not contain leading or trailing forward slashes.
107
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
130
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
108
131
  """
109
132
  return pulumi.get(self, "namespace")
110
133
 
@@ -143,6 +166,7 @@ class _SyncVercelDestinationState:
143
166
  def __init__(__self__, *,
144
167
  access_token: Optional[pulumi.Input[str]] = None,
145
168
  deployment_environments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
169
+ granularity: Optional[pulumi.Input[str]] = None,
146
170
  name: Optional[pulumi.Input[str]] = None,
147
171
  namespace: Optional[pulumi.Input[str]] = None,
148
172
  project_id: Optional[pulumi.Input[str]] = None,
@@ -155,10 +179,12 @@ class _SyncVercelDestinationState:
155
179
  variables.
156
180
  :param pulumi.Input[Sequence[pulumi.Input[str]]] deployment_environments: Deployment environments where the environment variables
157
181
  are available. Accepts `development`, `preview` and `production`.
182
+ :param pulumi.Input[str] granularity: Determines what level of information is synced as a distinct resource
183
+ at the destination. Supports `secret-path` and `secret-key`.
158
184
  :param pulumi.Input[str] name: Unique name of the GitHub destination.
159
185
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
160
186
  The value should not contain leading or trailing forward slashes.
161
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
187
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
162
188
  :param pulumi.Input[str] project_id: Project ID where to manage environment variables.
163
189
  :param pulumi.Input[str] secret_name_template: Template describing how to generate external secret names.
164
190
  Supports a subset of the Go Template syntax.
@@ -169,6 +195,8 @@ class _SyncVercelDestinationState:
169
195
  pulumi.set(__self__, "access_token", access_token)
170
196
  if deployment_environments is not None:
171
197
  pulumi.set(__self__, "deployment_environments", deployment_environments)
198
+ if granularity is not None:
199
+ pulumi.set(__self__, "granularity", granularity)
172
200
  if name is not None:
173
201
  pulumi.set(__self__, "name", name)
174
202
  if namespace is not None:
@@ -208,6 +236,19 @@ class _SyncVercelDestinationState:
208
236
  def deployment_environments(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
209
237
  pulumi.set(self, "deployment_environments", value)
210
238
 
239
+ @property
240
+ @pulumi.getter
241
+ def granularity(self) -> Optional[pulumi.Input[str]]:
242
+ """
243
+ Determines what level of information is synced as a distinct resource
244
+ at the destination. Supports `secret-path` and `secret-key`.
245
+ """
246
+ return pulumi.get(self, "granularity")
247
+
248
+ @granularity.setter
249
+ def granularity(self, value: Optional[pulumi.Input[str]]):
250
+ pulumi.set(self, "granularity", value)
251
+
211
252
  @property
212
253
  @pulumi.getter
213
254
  def name(self) -> Optional[pulumi.Input[str]]:
@@ -226,7 +267,7 @@ class _SyncVercelDestinationState:
226
267
  """
227
268
  The namespace to provision the resource in.
228
269
  The value should not contain leading or trailing forward slashes.
229
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
270
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
230
271
  """
231
272
  return pulumi.get(self, "namespace")
232
273
 
@@ -291,6 +332,7 @@ class SyncVercelDestination(pulumi.CustomResource):
291
332
  opts: Optional[pulumi.ResourceOptions] = None,
292
333
  access_token: Optional[pulumi.Input[str]] = None,
293
334
  deployment_environments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
335
+ granularity: Optional[pulumi.Input[str]] = None,
294
336
  name: Optional[pulumi.Input[str]] = None,
295
337
  namespace: Optional[pulumi.Input[str]] = None,
296
338
  project_id: Optional[pulumi.Input[str]] = None,
@@ -305,8 +347,9 @@ class SyncVercelDestination(pulumi.CustomResource):
305
347
  import pulumi_vault as vault
306
348
 
307
349
  vercel = vault.secrets.SyncVercelDestination("vercel",
308
- access_token=var["access_token"],
309
- project_id=var["project_id"],
350
+ name="vercel-dest",
351
+ access_token=access_token,
352
+ project_id=project_id,
310
353
  deployment_environments=[
311
354
  "development",
312
355
  "preview",
@@ -320,7 +363,7 @@ class SyncVercelDestination(pulumi.CustomResource):
320
363
  GitHub Secrets sync destinations can be imported using the `name`, e.g.
321
364
 
322
365
  ```sh
323
- $ pulumi import vault:secrets/syncVercelDestination:SyncVercelDestination vercel vercel-dest
366
+ $ pulumi import vault:secrets/syncVercelDestination:SyncVercelDestination vercel vercel-dest
324
367
  ```
325
368
 
326
369
  :param str resource_name: The name of the resource.
@@ -329,10 +372,12 @@ class SyncVercelDestination(pulumi.CustomResource):
329
372
  variables.
330
373
  :param pulumi.Input[Sequence[pulumi.Input[str]]] deployment_environments: Deployment environments where the environment variables
331
374
  are available. Accepts `development`, `preview` and `production`.
375
+ :param pulumi.Input[str] granularity: Determines what level of information is synced as a distinct resource
376
+ at the destination. Supports `secret-path` and `secret-key`.
332
377
  :param pulumi.Input[str] name: Unique name of the GitHub destination.
333
378
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
334
379
  The value should not contain leading or trailing forward slashes.
335
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
380
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
336
381
  :param pulumi.Input[str] project_id: Project ID where to manage environment variables.
337
382
  :param pulumi.Input[str] secret_name_template: Template describing how to generate external secret names.
338
383
  Supports a subset of the Go Template syntax.
@@ -352,8 +397,9 @@ class SyncVercelDestination(pulumi.CustomResource):
352
397
  import pulumi_vault as vault
353
398
 
354
399
  vercel = vault.secrets.SyncVercelDestination("vercel",
355
- access_token=var["access_token"],
356
- project_id=var["project_id"],
400
+ name="vercel-dest",
401
+ access_token=access_token,
402
+ project_id=project_id,
357
403
  deployment_environments=[
358
404
  "development",
359
405
  "preview",
@@ -367,7 +413,7 @@ class SyncVercelDestination(pulumi.CustomResource):
367
413
  GitHub Secrets sync destinations can be imported using the `name`, e.g.
368
414
 
369
415
  ```sh
370
- $ pulumi import vault:secrets/syncVercelDestination:SyncVercelDestination vercel vercel-dest
416
+ $ pulumi import vault:secrets/syncVercelDestination:SyncVercelDestination vercel vercel-dest
371
417
  ```
372
418
 
373
419
  :param str resource_name: The name of the resource.
@@ -387,6 +433,7 @@ class SyncVercelDestination(pulumi.CustomResource):
387
433
  opts: Optional[pulumi.ResourceOptions] = None,
388
434
  access_token: Optional[pulumi.Input[str]] = None,
389
435
  deployment_environments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
436
+ granularity: Optional[pulumi.Input[str]] = None,
390
437
  name: Optional[pulumi.Input[str]] = None,
391
438
  namespace: Optional[pulumi.Input[str]] = None,
392
439
  project_id: Optional[pulumi.Input[str]] = None,
@@ -407,6 +454,7 @@ class SyncVercelDestination(pulumi.CustomResource):
407
454
  if deployment_environments is None and not opts.urn:
408
455
  raise TypeError("Missing required property 'deployment_environments'")
409
456
  __props__.__dict__["deployment_environments"] = deployment_environments
457
+ __props__.__dict__["granularity"] = granularity
410
458
  __props__.__dict__["name"] = name
411
459
  __props__.__dict__["namespace"] = namespace
412
460
  if project_id is None and not opts.urn:
@@ -429,6 +477,7 @@ class SyncVercelDestination(pulumi.CustomResource):
429
477
  opts: Optional[pulumi.ResourceOptions] = None,
430
478
  access_token: Optional[pulumi.Input[str]] = None,
431
479
  deployment_environments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
480
+ granularity: Optional[pulumi.Input[str]] = None,
432
481
  name: Optional[pulumi.Input[str]] = None,
433
482
  namespace: Optional[pulumi.Input[str]] = None,
434
483
  project_id: Optional[pulumi.Input[str]] = None,
@@ -446,10 +495,12 @@ class SyncVercelDestination(pulumi.CustomResource):
446
495
  variables.
447
496
  :param pulumi.Input[Sequence[pulumi.Input[str]]] deployment_environments: Deployment environments where the environment variables
448
497
  are available. Accepts `development`, `preview` and `production`.
498
+ :param pulumi.Input[str] granularity: Determines what level of information is synced as a distinct resource
499
+ at the destination. Supports `secret-path` and `secret-key`.
449
500
  :param pulumi.Input[str] name: Unique name of the GitHub destination.
450
501
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
451
502
  The value should not contain leading or trailing forward slashes.
452
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
503
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
453
504
  :param pulumi.Input[str] project_id: Project ID where to manage environment variables.
454
505
  :param pulumi.Input[str] secret_name_template: Template describing how to generate external secret names.
455
506
  Supports a subset of the Go Template syntax.
@@ -462,6 +513,7 @@ class SyncVercelDestination(pulumi.CustomResource):
462
513
 
463
514
  __props__.__dict__["access_token"] = access_token
464
515
  __props__.__dict__["deployment_environments"] = deployment_environments
516
+ __props__.__dict__["granularity"] = granularity
465
517
  __props__.__dict__["name"] = name
466
518
  __props__.__dict__["namespace"] = namespace
467
519
  __props__.__dict__["project_id"] = project_id
@@ -488,6 +540,15 @@ class SyncVercelDestination(pulumi.CustomResource):
488
540
  """
489
541
  return pulumi.get(self, "deployment_environments")
490
542
 
543
+ @property
544
+ @pulumi.getter
545
+ def granularity(self) -> pulumi.Output[Optional[str]]:
546
+ """
547
+ Determines what level of information is synced as a distinct resource
548
+ at the destination. Supports `secret-path` and `secret-key`.
549
+ """
550
+ return pulumi.get(self, "granularity")
551
+
491
552
  @property
492
553
  @pulumi.getter
493
554
  def name(self) -> pulumi.Output[str]:
@@ -502,7 +563,7 @@ class SyncVercelDestination(pulumi.CustomResource):
502
563
  """
503
564
  The namespace to provision the resource in.
504
565
  The value should not contain leading or trailing forward slashes.
505
- The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault#namespace).
566
+ The `namespace` is always relative to the provider's configured [namespace](https://www.terraform.io/docs/providers/vault/index.html#namespace).
506
567
  """
507
568
  return pulumi.get(self, "namespace")
508
569