pulumi-vault 5.21.0a1710160723__py3-none-any.whl → 6.5.0a1736850018__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 +22 -7
  5. pulumi_vault/ad/secret_backend.py +14 -144
  6. pulumi_vault/ad/secret_library.py +14 -11
  7. pulumi_vault/ad/secret_role.py +12 -11
  8. pulumi_vault/alicloud/auth_backend_role.py +74 -192
  9. pulumi_vault/approle/auth_backend_login.py +12 -11
  10. pulumi_vault/approle/auth_backend_role.py +75 -193
  11. pulumi_vault/approle/auth_backend_role_secret_id.py +106 -11
  12. pulumi_vault/approle/get_auth_backend_role_id.py +18 -9
  13. pulumi_vault/audit.py +24 -27
  14. pulumi_vault/audit_request_header.py +11 -6
  15. pulumi_vault/auth_backend.py +64 -12
  16. pulumi_vault/aws/auth_backend_cert.py +12 -7
  17. pulumi_vault/aws/auth_backend_client.py +265 -24
  18. pulumi_vault/aws/auth_backend_config_identity.py +12 -11
  19. pulumi_vault/aws/auth_backend_identity_whitelist.py +18 -17
  20. pulumi_vault/aws/auth_backend_login.py +19 -22
  21. pulumi_vault/aws/auth_backend_role.py +75 -193
  22. pulumi_vault/aws/auth_backend_role_tag.py +12 -7
  23. pulumi_vault/aws/auth_backend_roletag_blacklist.py +18 -17
  24. pulumi_vault/aws/auth_backend_sts_role.py +12 -11
  25. pulumi_vault/aws/get_access_credentials.py +34 -7
  26. pulumi_vault/aws/get_static_access_credentials.py +19 -5
  27. pulumi_vault/aws/secret_backend.py +75 -7
  28. pulumi_vault/aws/secret_backend_role.py +183 -11
  29. pulumi_vault/aws/secret_backend_static_role.py +14 -11
  30. pulumi_vault/azure/_inputs.py +24 -0
  31. pulumi_vault/azure/auth_backend_config.py +151 -17
  32. pulumi_vault/azure/auth_backend_role.py +75 -193
  33. pulumi_vault/azure/backend.py +223 -29
  34. pulumi_vault/azure/backend_role.py +42 -41
  35. pulumi_vault/azure/get_access_credentials.py +39 -11
  36. pulumi_vault/azure/outputs.py +5 -0
  37. pulumi_vault/cert_auth_backend_role.py +87 -271
  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 +22 -25
  44. pulumi_vault/consul/secret_backend_role.py +14 -80
  45. pulumi_vault/database/_inputs.py +2770 -881
  46. pulumi_vault/database/outputs.py +721 -838
  47. pulumi_vault/database/secret_backend_connection.py +117 -114
  48. pulumi_vault/database/secret_backend_role.py +29 -24
  49. pulumi_vault/database/secret_backend_static_role.py +85 -15
  50. pulumi_vault/database/secrets_mount.py +425 -138
  51. pulumi_vault/egp_policy.py +16 -15
  52. pulumi_vault/gcp/_inputs.py +111 -0
  53. pulumi_vault/gcp/auth_backend.py +248 -35
  54. pulumi_vault/gcp/auth_backend_role.py +75 -271
  55. pulumi_vault/gcp/get_auth_backend_role.py +43 -9
  56. pulumi_vault/gcp/outputs.py +5 -0
  57. pulumi_vault/gcp/secret_backend.py +287 -16
  58. pulumi_vault/gcp/secret_impersonated_account.py +74 -17
  59. pulumi_vault/gcp/secret_roleset.py +29 -26
  60. pulumi_vault/gcp/secret_static_account.py +37 -34
  61. pulumi_vault/generic/endpoint.py +22 -21
  62. pulumi_vault/generic/get_secret.py +68 -12
  63. pulumi_vault/generic/secret.py +19 -14
  64. pulumi_vault/get_auth_backend.py +24 -11
  65. pulumi_vault/get_auth_backends.py +33 -11
  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 -15
  69. pulumi_vault/get_policy_document.py +34 -23
  70. pulumi_vault/get_raft_autopilot_state.py +29 -14
  71. pulumi_vault/github/_inputs.py +55 -0
  72. pulumi_vault/github/auth_backend.py +17 -16
  73. pulumi_vault/github/outputs.py +5 -0
  74. pulumi_vault/github/team.py +14 -13
  75. pulumi_vault/github/user.py +14 -13
  76. pulumi_vault/identity/entity.py +18 -15
  77. pulumi_vault/identity/entity_alias.py +18 -15
  78. pulumi_vault/identity/entity_policies.py +24 -19
  79. pulumi_vault/identity/get_entity.py +40 -14
  80. pulumi_vault/identity/get_group.py +45 -13
  81. pulumi_vault/identity/get_oidc_client_creds.py +21 -11
  82. pulumi_vault/identity/get_oidc_openid_config.py +39 -13
  83. pulumi_vault/identity/get_oidc_public_keys.py +29 -14
  84. pulumi_vault/identity/group.py +50 -49
  85. pulumi_vault/identity/group_alias.py +14 -11
  86. pulumi_vault/identity/group_member_entity_ids.py +24 -74
  87. pulumi_vault/identity/group_member_group_ids.py +36 -27
  88. pulumi_vault/identity/group_policies.py +16 -15
  89. pulumi_vault/identity/mfa_duo.py +9 -8
  90. pulumi_vault/identity/mfa_login_enforcement.py +13 -8
  91. pulumi_vault/identity/mfa_okta.py +9 -8
  92. pulumi_vault/identity/mfa_pingid.py +5 -4
  93. pulumi_vault/identity/mfa_totp.py +5 -4
  94. pulumi_vault/identity/oidc.py +12 -11
  95. pulumi_vault/identity/oidc_assignment.py +22 -13
  96. pulumi_vault/identity/oidc_client.py +34 -25
  97. pulumi_vault/identity/oidc_key.py +28 -19
  98. pulumi_vault/identity/oidc_key_allowed_client_id.py +28 -19
  99. pulumi_vault/identity/oidc_provider.py +34 -23
  100. pulumi_vault/identity/oidc_role.py +40 -27
  101. pulumi_vault/identity/oidc_scope.py +18 -15
  102. pulumi_vault/identity/outputs.py +8 -3
  103. pulumi_vault/jwt/_inputs.py +55 -0
  104. pulumi_vault/jwt/auth_backend.py +39 -46
  105. pulumi_vault/jwt/auth_backend_role.py +131 -260
  106. pulumi_vault/jwt/outputs.py +5 -0
  107. pulumi_vault/kmip/secret_backend.py +22 -21
  108. pulumi_vault/kmip/secret_role.py +12 -11
  109. pulumi_vault/kmip/secret_scope.py +12 -11
  110. pulumi_vault/kubernetes/auth_backend_config.py +55 -7
  111. pulumi_vault/kubernetes/auth_backend_role.py +68 -179
  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 -15
  115. pulumi_vault/kubernetes/secret_backend.py +314 -29
  116. pulumi_vault/kubernetes/secret_backend_role.py +135 -56
  117. pulumi_vault/kv/_inputs.py +36 -4
  118. pulumi_vault/kv/get_secret.py +23 -12
  119. pulumi_vault/kv/get_secret_subkeys_v2.py +31 -14
  120. pulumi_vault/kv/get_secret_v2.py +89 -9
  121. pulumi_vault/kv/get_secrets_list.py +22 -15
  122. pulumi_vault/kv/get_secrets_list_v2.py +35 -19
  123. pulumi_vault/kv/outputs.py +8 -3
  124. pulumi_vault/kv/secret.py +19 -18
  125. pulumi_vault/kv/secret_backend_v2.py +12 -11
  126. pulumi_vault/kv/secret_v2.py +55 -52
  127. pulumi_vault/ldap/auth_backend.py +125 -168
  128. pulumi_vault/ldap/auth_backend_group.py +12 -11
  129. pulumi_vault/ldap/auth_backend_user.py +12 -11
  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 +352 -84
  133. pulumi_vault/ldap/secret_backend_dynamic_role.py +12 -11
  134. pulumi_vault/ldap/secret_backend_library_set.py +14 -11
  135. pulumi_vault/ldap/secret_backend_static_role.py +67 -12
  136. pulumi_vault/managed/_inputs.py +289 -132
  137. pulumi_vault/managed/keys.py +27 -43
  138. pulumi_vault/managed/outputs.py +89 -132
  139. pulumi_vault/mfa_duo.py +16 -13
  140. pulumi_vault/mfa_okta.py +16 -13
  141. pulumi_vault/mfa_pingid.py +16 -13
  142. pulumi_vault/mfa_totp.py +22 -19
  143. pulumi_vault/mongodbatlas/secret_backend.py +18 -17
  144. pulumi_vault/mongodbatlas/secret_role.py +41 -38
  145. pulumi_vault/mount.py +389 -65
  146. pulumi_vault/namespace.py +26 -21
  147. pulumi_vault/nomad_secret_backend.py +16 -15
  148. pulumi_vault/nomad_secret_role.py +12 -11
  149. pulumi_vault/okta/_inputs.py +47 -8
  150. pulumi_vault/okta/auth_backend.py +483 -41
  151. pulumi_vault/okta/auth_backend_group.py +12 -11
  152. pulumi_vault/okta/auth_backend_user.py +12 -11
  153. pulumi_vault/okta/outputs.py +13 -8
  154. pulumi_vault/outputs.py +5 -0
  155. pulumi_vault/password_policy.py +18 -15
  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 +63 -7
  162. pulumi_vault/pkisecret/get_backend_issuers.py +21 -12
  163. pulumi_vault/pkisecret/get_backend_key.py +24 -13
  164. pulumi_vault/pkisecret/get_backend_keys.py +21 -12
  165. pulumi_vault/pkisecret/outputs.py +69 -0
  166. pulumi_vault/pkisecret/secret_backend_cert.py +18 -15
  167. pulumi_vault/pkisecret/secret_backend_config_ca.py +16 -15
  168. pulumi_vault/pkisecret/secret_backend_config_issuers.py +12 -11
  169. pulumi_vault/pkisecret/secret_backend_config_urls.py +59 -11
  170. pulumi_vault/pkisecret/secret_backend_crl_config.py +14 -13
  171. pulumi_vault/pkisecret/secret_backend_intermediate_cert_request.py +16 -15
  172. pulumi_vault/pkisecret/secret_backend_intermediate_set_signed.py +22 -21
  173. pulumi_vault/pkisecret/secret_backend_issuer.py +12 -11
  174. pulumi_vault/pkisecret/secret_backend_key.py +12 -7
  175. pulumi_vault/pkisecret/secret_backend_role.py +19 -16
  176. pulumi_vault/pkisecret/secret_backend_root_cert.py +16 -52
  177. pulumi_vault/pkisecret/secret_backend_root_sign_intermediate.py +18 -62
  178. pulumi_vault/pkisecret/secret_backend_sign.py +18 -60
  179. pulumi_vault/plugin.py +595 -0
  180. pulumi_vault/plugin_pinned_version.py +298 -0
  181. pulumi_vault/policy.py +12 -7
  182. pulumi_vault/provider.py +48 -53
  183. pulumi_vault/pulumi-plugin.json +2 -1
  184. pulumi_vault/quota_lease_count.py +58 -8
  185. pulumi_vault/quota_rate_limit.py +54 -4
  186. pulumi_vault/rabbitmq/_inputs.py +61 -0
  187. pulumi_vault/rabbitmq/outputs.py +5 -0
  188. pulumi_vault/rabbitmq/secret_backend.py +16 -15
  189. pulumi_vault/rabbitmq/secret_backend_role.py +52 -49
  190. pulumi_vault/raft_autopilot.py +12 -11
  191. pulumi_vault/raft_snapshot_agent_config.py +121 -311
  192. pulumi_vault/rgp_policy.py +14 -13
  193. pulumi_vault/saml/auth_backend.py +20 -19
  194. pulumi_vault/saml/auth_backend_role.py +90 -199
  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 -75
  199. pulumi_vault/secrets/sync_aws_destination.py +240 -29
  200. pulumi_vault/secrets/sync_azure_destination.py +90 -33
  201. pulumi_vault/secrets/sync_config.py +7 -6
  202. pulumi_vault/secrets/sync_gcp_destination.py +156 -27
  203. pulumi_vault/secrets/sync_gh_destination.py +187 -15
  204. pulumi_vault/secrets/sync_github_apps.py +375 -0
  205. pulumi_vault/secrets/sync_vercel_destination.py +72 -15
  206. pulumi_vault/ssh/_inputs.py +28 -32
  207. pulumi_vault/ssh/outputs.py +11 -32
  208. pulumi_vault/ssh/secret_backend_ca.py +106 -11
  209. pulumi_vault/ssh/secret_backend_role.py +83 -120
  210. pulumi_vault/terraformcloud/secret_backend.py +5 -56
  211. pulumi_vault/terraformcloud/secret_creds.py +14 -24
  212. pulumi_vault/terraformcloud/secret_role.py +14 -76
  213. pulumi_vault/token.py +26 -25
  214. pulumi_vault/tokenauth/auth_backend_role.py +76 -201
  215. pulumi_vault/transform/alphabet.py +16 -13
  216. pulumi_vault/transform/get_decode.py +45 -21
  217. pulumi_vault/transform/get_encode.py +45 -21
  218. pulumi_vault/transform/role.py +16 -13
  219. pulumi_vault/transform/template.py +30 -25
  220. pulumi_vault/transform/transformation.py +12 -7
  221. pulumi_vault/transit/get_decrypt.py +26 -25
  222. pulumi_vault/transit/get_encrypt.py +24 -19
  223. pulumi_vault/transit/secret_backend_key.py +25 -97
  224. pulumi_vault/transit/secret_cache_config.py +12 -11
  225. {pulumi_vault-5.21.0a1710160723.dist-info → pulumi_vault-6.5.0a1736850018.dist-info}/METADATA +8 -7
  226. pulumi_vault-6.5.0a1736850018.dist-info/RECORD +256 -0
  227. {pulumi_vault-5.21.0a1710160723.dist-info → pulumi_vault-6.5.0a1736850018.dist-info}/WHEEL +1 -1
  228. pulumi_vault-5.21.0a1710160723.dist-info/RECORD +0 -244
  229. {pulumi_vault-5.21.0a1710160723.dist-info → pulumi_vault-6.5.0a1736850018.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,
@@ -300,14 +342,14 @@ class SyncVercelDestination(pulumi.CustomResource):
300
342
  """
301
343
  ## Example Usage
302
344
 
303
- <!--Start PulumiCodeChooser -->
304
345
  ```python
305
346
  import pulumi
306
347
  import pulumi_vault as vault
307
348
 
308
349
  vercel = vault.secrets.SyncVercelDestination("vercel",
309
- access_token=var["access_token"],
310
- project_id=var["project_id"],
350
+ name="vercel-dest",
351
+ access_token=access_token,
352
+ project_id=project_id,
311
353
  deployment_environments=[
312
354
  "development",
313
355
  "preview",
@@ -315,7 +357,6 @@ class SyncVercelDestination(pulumi.CustomResource):
315
357
  ],
316
358
  secret_name_template="vault_{{ .MountAccessor | lowercase }}_{{ .SecretPath | lowercase }}")
317
359
  ```
318
- <!--End PulumiCodeChooser -->
319
360
 
320
361
  ## Import
321
362
 
@@ -331,10 +372,12 @@ class SyncVercelDestination(pulumi.CustomResource):
331
372
  variables.
332
373
  :param pulumi.Input[Sequence[pulumi.Input[str]]] deployment_environments: Deployment environments where the environment variables
333
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`.
334
377
  :param pulumi.Input[str] name: Unique name of the GitHub destination.
335
378
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
336
379
  The value should not contain leading or trailing forward slashes.
337
- 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).
338
381
  :param pulumi.Input[str] project_id: Project ID where to manage environment variables.
339
382
  :param pulumi.Input[str] secret_name_template: Template describing how to generate external secret names.
340
383
  Supports a subset of the Go Template syntax.
@@ -349,14 +392,14 @@ class SyncVercelDestination(pulumi.CustomResource):
349
392
  """
350
393
  ## Example Usage
351
394
 
352
- <!--Start PulumiCodeChooser -->
353
395
  ```python
354
396
  import pulumi
355
397
  import pulumi_vault as vault
356
398
 
357
399
  vercel = vault.secrets.SyncVercelDestination("vercel",
358
- access_token=var["access_token"],
359
- project_id=var["project_id"],
400
+ name="vercel-dest",
401
+ access_token=access_token,
402
+ project_id=project_id,
360
403
  deployment_environments=[
361
404
  "development",
362
405
  "preview",
@@ -364,7 +407,6 @@ class SyncVercelDestination(pulumi.CustomResource):
364
407
  ],
365
408
  secret_name_template="vault_{{ .MountAccessor | lowercase }}_{{ .SecretPath | lowercase }}")
366
409
  ```
367
- <!--End PulumiCodeChooser -->
368
410
 
369
411
  ## Import
370
412
 
@@ -391,6 +433,7 @@ class SyncVercelDestination(pulumi.CustomResource):
391
433
  opts: Optional[pulumi.ResourceOptions] = None,
392
434
  access_token: Optional[pulumi.Input[str]] = None,
393
435
  deployment_environments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
436
+ granularity: Optional[pulumi.Input[str]] = None,
394
437
  name: Optional[pulumi.Input[str]] = None,
395
438
  namespace: Optional[pulumi.Input[str]] = None,
396
439
  project_id: Optional[pulumi.Input[str]] = None,
@@ -411,6 +454,7 @@ class SyncVercelDestination(pulumi.CustomResource):
411
454
  if deployment_environments is None and not opts.urn:
412
455
  raise TypeError("Missing required property 'deployment_environments'")
413
456
  __props__.__dict__["deployment_environments"] = deployment_environments
457
+ __props__.__dict__["granularity"] = granularity
414
458
  __props__.__dict__["name"] = name
415
459
  __props__.__dict__["namespace"] = namespace
416
460
  if project_id is None and not opts.urn:
@@ -433,6 +477,7 @@ class SyncVercelDestination(pulumi.CustomResource):
433
477
  opts: Optional[pulumi.ResourceOptions] = None,
434
478
  access_token: Optional[pulumi.Input[str]] = None,
435
479
  deployment_environments: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
480
+ granularity: Optional[pulumi.Input[str]] = None,
436
481
  name: Optional[pulumi.Input[str]] = None,
437
482
  namespace: Optional[pulumi.Input[str]] = None,
438
483
  project_id: Optional[pulumi.Input[str]] = None,
@@ -450,10 +495,12 @@ class SyncVercelDestination(pulumi.CustomResource):
450
495
  variables.
451
496
  :param pulumi.Input[Sequence[pulumi.Input[str]]] deployment_environments: Deployment environments where the environment variables
452
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`.
453
500
  :param pulumi.Input[str] name: Unique name of the GitHub destination.
454
501
  :param pulumi.Input[str] namespace: The namespace to provision the resource in.
455
502
  The value should not contain leading or trailing forward slashes.
456
- 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).
457
504
  :param pulumi.Input[str] project_id: Project ID where to manage environment variables.
458
505
  :param pulumi.Input[str] secret_name_template: Template describing how to generate external secret names.
459
506
  Supports a subset of the Go Template syntax.
@@ -466,6 +513,7 @@ class SyncVercelDestination(pulumi.CustomResource):
466
513
 
467
514
  __props__.__dict__["access_token"] = access_token
468
515
  __props__.__dict__["deployment_environments"] = deployment_environments
516
+ __props__.__dict__["granularity"] = granularity
469
517
  __props__.__dict__["name"] = name
470
518
  __props__.__dict__["namespace"] = namespace
471
519
  __props__.__dict__["project_id"] = project_id
@@ -492,6 +540,15 @@ class SyncVercelDestination(pulumi.CustomResource):
492
540
  """
493
541
  return pulumi.get(self, "deployment_environments")
494
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
+
495
552
  @property
496
553
  @pulumi.getter
497
554
  def name(self) -> pulumi.Output[str]:
@@ -506,7 +563,7 @@ class SyncVercelDestination(pulumi.CustomResource):
506
563
  """
507
564
  The namespace to provision the resource in.
508
565
  The value should not contain leading or trailing forward slashes.
509
- 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).
510
567
  """
511
568
  return pulumi.get(self, "namespace")
512
569