pulumi-dnsimple 5.1.0a1768541715__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.
@@ -0,0 +1,839 @@
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
+ from . import outputs
17
+ from ._inputs import *
18
+
19
+ __all__ = ['RegisteredDomainArgs', 'RegisteredDomain']
20
+
21
+ @pulumi.input_type
22
+ class RegisteredDomainArgs:
23
+ def __init__(__self__, *,
24
+ contact_id: pulumi.Input[_builtins.int],
25
+ name: pulumi.Input[_builtins.str],
26
+ auto_renew_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
27
+ dnssec_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
28
+ extended_attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
29
+ premium_price: Optional[pulumi.Input[_builtins.str]] = None,
30
+ timeouts: Optional[pulumi.Input['RegisteredDomainTimeoutsArgs']] = None,
31
+ transfer_lock_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
32
+ whois_privacy_enabled: Optional[pulumi.Input[_builtins.bool]] = None):
33
+ """
34
+ The set of arguments for constructing a RegisteredDomain resource.
35
+ :param pulumi.Input[_builtins.int] contact_id: The ID of the contact to be used for the domain registration. The contact ID can be changed after the domain has been registered. The change will result in a new registrant change, which may result in a [60-day lock](https://support.dnsimple.com/articles/icann-60-day-lock-registrant-change/).
36
+ :param pulumi.Input[_builtins.str] name: The domain name to be registered.
37
+ :param pulumi.Input[_builtins.bool] auto_renew_enabled: Whether the domain should be set to auto-renew (default: `false`).
38
+ :param pulumi.Input[_builtins.bool] dnssec_enabled: Whether the domain should have DNSSEC enabled (default: `false`).
39
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] extended_attributes: A map of extended attributes to be set for the domain registration. To see if there are any required extended attributes for any TLD use our [Lists the TLD Extended Attributes API](https://developer.dnsimple.com/v2/tlds/#getTldExtendedAttributes). The values provided in the `extended_attributes` will also be sent when a registrant change is initiated as part of changing the `contact_id`.
40
+ :param pulumi.Input[_builtins.str] premium_price: The premium price for the domain registration. This is only required if the domain is a premium domain. You can use our [Check domain API](https://developer.dnsimple.com/v2/registrar/#checkDomain) to check if a domain is premium and [Retrieve domain prices API](https://developer.dnsimple.com/v2/registrar/#getDomainPrices) to retrieve the premium price for a domain.
41
+ :param pulumi.Input['RegisteredDomainTimeoutsArgs'] timeouts: (see below for nested schema).
42
+ :param pulumi.Input[_builtins.bool] transfer_lock_enabled: Whether the domain transfer lock protection is enabled (default: `true`).
43
+ :param pulumi.Input[_builtins.bool] whois_privacy_enabled: Whether the domain should have WHOIS privacy enabled (default: `false`).
44
+ """
45
+ pulumi.set(__self__, "contact_id", contact_id)
46
+ pulumi.set(__self__, "name", name)
47
+ if auto_renew_enabled is not None:
48
+ pulumi.set(__self__, "auto_renew_enabled", auto_renew_enabled)
49
+ if dnssec_enabled is not None:
50
+ pulumi.set(__self__, "dnssec_enabled", dnssec_enabled)
51
+ if extended_attributes is not None:
52
+ pulumi.set(__self__, "extended_attributes", extended_attributes)
53
+ if premium_price is not None:
54
+ pulumi.set(__self__, "premium_price", premium_price)
55
+ if timeouts is not None:
56
+ pulumi.set(__self__, "timeouts", timeouts)
57
+ if transfer_lock_enabled is not None:
58
+ pulumi.set(__self__, "transfer_lock_enabled", transfer_lock_enabled)
59
+ if whois_privacy_enabled is not None:
60
+ pulumi.set(__self__, "whois_privacy_enabled", whois_privacy_enabled)
61
+
62
+ @_builtins.property
63
+ @pulumi.getter(name="contactId")
64
+ def contact_id(self) -> pulumi.Input[_builtins.int]:
65
+ """
66
+ The ID of the contact to be used for the domain registration. The contact ID can be changed after the domain has been registered. The change will result in a new registrant change, which may result in a [60-day lock](https://support.dnsimple.com/articles/icann-60-day-lock-registrant-change/).
67
+ """
68
+ return pulumi.get(self, "contact_id")
69
+
70
+ @contact_id.setter
71
+ def contact_id(self, value: pulumi.Input[_builtins.int]):
72
+ pulumi.set(self, "contact_id", value)
73
+
74
+ @_builtins.property
75
+ @pulumi.getter
76
+ def name(self) -> pulumi.Input[_builtins.str]:
77
+ """
78
+ The domain name to be registered.
79
+ """
80
+ return pulumi.get(self, "name")
81
+
82
+ @name.setter
83
+ def name(self, value: pulumi.Input[_builtins.str]):
84
+ pulumi.set(self, "name", value)
85
+
86
+ @_builtins.property
87
+ @pulumi.getter(name="autoRenewEnabled")
88
+ def auto_renew_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
89
+ """
90
+ Whether the domain should be set to auto-renew (default: `false`).
91
+ """
92
+ return pulumi.get(self, "auto_renew_enabled")
93
+
94
+ @auto_renew_enabled.setter
95
+ def auto_renew_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
96
+ pulumi.set(self, "auto_renew_enabled", value)
97
+
98
+ @_builtins.property
99
+ @pulumi.getter(name="dnssecEnabled")
100
+ def dnssec_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
101
+ """
102
+ Whether the domain should have DNSSEC enabled (default: `false`).
103
+ """
104
+ return pulumi.get(self, "dnssec_enabled")
105
+
106
+ @dnssec_enabled.setter
107
+ def dnssec_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
108
+ pulumi.set(self, "dnssec_enabled", value)
109
+
110
+ @_builtins.property
111
+ @pulumi.getter(name="extendedAttributes")
112
+ def extended_attributes(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
113
+ """
114
+ A map of extended attributes to be set for the domain registration. To see if there are any required extended attributes for any TLD use our [Lists the TLD Extended Attributes API](https://developer.dnsimple.com/v2/tlds/#getTldExtendedAttributes). The values provided in the `extended_attributes` will also be sent when a registrant change is initiated as part of changing the `contact_id`.
115
+ """
116
+ return pulumi.get(self, "extended_attributes")
117
+
118
+ @extended_attributes.setter
119
+ def extended_attributes(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
120
+ pulumi.set(self, "extended_attributes", value)
121
+
122
+ @_builtins.property
123
+ @pulumi.getter(name="premiumPrice")
124
+ def premium_price(self) -> Optional[pulumi.Input[_builtins.str]]:
125
+ """
126
+ The premium price for the domain registration. This is only required if the domain is a premium domain. You can use our [Check domain API](https://developer.dnsimple.com/v2/registrar/#checkDomain) to check if a domain is premium and [Retrieve domain prices API](https://developer.dnsimple.com/v2/registrar/#getDomainPrices) to retrieve the premium price for a domain.
127
+ """
128
+ return pulumi.get(self, "premium_price")
129
+
130
+ @premium_price.setter
131
+ def premium_price(self, value: Optional[pulumi.Input[_builtins.str]]):
132
+ pulumi.set(self, "premium_price", value)
133
+
134
+ @_builtins.property
135
+ @pulumi.getter
136
+ def timeouts(self) -> Optional[pulumi.Input['RegisteredDomainTimeoutsArgs']]:
137
+ """
138
+ (see below for nested schema).
139
+ """
140
+ return pulumi.get(self, "timeouts")
141
+
142
+ @timeouts.setter
143
+ def timeouts(self, value: Optional[pulumi.Input['RegisteredDomainTimeoutsArgs']]):
144
+ pulumi.set(self, "timeouts", value)
145
+
146
+ @_builtins.property
147
+ @pulumi.getter(name="transferLockEnabled")
148
+ def transfer_lock_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
149
+ """
150
+ Whether the domain transfer lock protection is enabled (default: `true`).
151
+ """
152
+ return pulumi.get(self, "transfer_lock_enabled")
153
+
154
+ @transfer_lock_enabled.setter
155
+ def transfer_lock_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
156
+ pulumi.set(self, "transfer_lock_enabled", value)
157
+
158
+ @_builtins.property
159
+ @pulumi.getter(name="whoisPrivacyEnabled")
160
+ def whois_privacy_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
161
+ """
162
+ Whether the domain should have WHOIS privacy enabled (default: `false`).
163
+ """
164
+ return pulumi.get(self, "whois_privacy_enabled")
165
+
166
+ @whois_privacy_enabled.setter
167
+ def whois_privacy_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
168
+ pulumi.set(self, "whois_privacy_enabled", value)
169
+
170
+
171
+ @pulumi.input_type
172
+ class _RegisteredDomainState:
173
+ def __init__(__self__, *,
174
+ account_id: Optional[pulumi.Input[_builtins.int]] = None,
175
+ auto_renew_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
176
+ contact_id: Optional[pulumi.Input[_builtins.int]] = None,
177
+ dnssec_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
178
+ domain_registration: Optional[pulumi.Input['RegisteredDomainDomainRegistrationArgs']] = None,
179
+ expires_at: Optional[pulumi.Input[_builtins.str]] = None,
180
+ extended_attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
181
+ name: Optional[pulumi.Input[_builtins.str]] = None,
182
+ premium_price: Optional[pulumi.Input[_builtins.str]] = None,
183
+ registrant_change: Optional[pulumi.Input['RegisteredDomainRegistrantChangeArgs']] = None,
184
+ state: Optional[pulumi.Input[_builtins.str]] = None,
185
+ timeouts: Optional[pulumi.Input['RegisteredDomainTimeoutsArgs']] = None,
186
+ transfer_lock_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
187
+ unicode_name: Optional[pulumi.Input[_builtins.str]] = None,
188
+ whois_privacy_enabled: Optional[pulumi.Input[_builtins.bool]] = None):
189
+ """
190
+ Input properties used for looking up and filtering RegisteredDomain resources.
191
+ :param pulumi.Input[_builtins.bool] auto_renew_enabled: Whether the domain should be set to auto-renew (default: `false`).
192
+ :param pulumi.Input[_builtins.int] contact_id: The ID of the contact to be used for the domain registration. The contact ID can be changed after the domain has been registered. The change will result in a new registrant change, which may result in a [60-day lock](https://support.dnsimple.com/articles/icann-60-day-lock-registrant-change/).
193
+ :param pulumi.Input[_builtins.bool] dnssec_enabled: Whether the domain should have DNSSEC enabled (default: `false`).
194
+ :param pulumi.Input['RegisteredDomainDomainRegistrationArgs'] domain_registration: The domain registration details. (see below for nested schema)
195
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] extended_attributes: A map of extended attributes to be set for the domain registration. To see if there are any required extended attributes for any TLD use our [Lists the TLD Extended Attributes API](https://developer.dnsimple.com/v2/tlds/#getTldExtendedAttributes). The values provided in the `extended_attributes` will also be sent when a registrant change is initiated as part of changing the `contact_id`.
196
+ :param pulumi.Input[_builtins.str] name: The domain name to be registered.
197
+ :param pulumi.Input[_builtins.str] premium_price: The premium price for the domain registration. This is only required if the domain is a premium domain. You can use our [Check domain API](https://developer.dnsimple.com/v2/registrar/#checkDomain) to check if a domain is premium and [Retrieve domain prices API](https://developer.dnsimple.com/v2/registrar/#getDomainPrices) to retrieve the premium price for a domain.
198
+ :param pulumi.Input['RegisteredDomainRegistrantChangeArgs'] registrant_change: The registrant change details.
199
+ :param pulumi.Input[_builtins.str] state: (String) - The state of the domain registration.
200
+ :param pulumi.Input['RegisteredDomainTimeoutsArgs'] timeouts: (see below for nested schema).
201
+ :param pulumi.Input[_builtins.bool] transfer_lock_enabled: Whether the domain transfer lock protection is enabled (default: `true`).
202
+ :param pulumi.Input[_builtins.str] unicode_name: The domain name in Unicode format.
203
+ :param pulumi.Input[_builtins.bool] whois_privacy_enabled: Whether the domain should have WHOIS privacy enabled (default: `false`).
204
+ """
205
+ if account_id is not None:
206
+ pulumi.set(__self__, "account_id", account_id)
207
+ if auto_renew_enabled is not None:
208
+ pulumi.set(__self__, "auto_renew_enabled", auto_renew_enabled)
209
+ if contact_id is not None:
210
+ pulumi.set(__self__, "contact_id", contact_id)
211
+ if dnssec_enabled is not None:
212
+ pulumi.set(__self__, "dnssec_enabled", dnssec_enabled)
213
+ if domain_registration is not None:
214
+ pulumi.set(__self__, "domain_registration", domain_registration)
215
+ if expires_at is not None:
216
+ pulumi.set(__self__, "expires_at", expires_at)
217
+ if extended_attributes is not None:
218
+ pulumi.set(__self__, "extended_attributes", extended_attributes)
219
+ if name is not None:
220
+ pulumi.set(__self__, "name", name)
221
+ if premium_price is not None:
222
+ pulumi.set(__self__, "premium_price", premium_price)
223
+ if registrant_change is not None:
224
+ pulumi.set(__self__, "registrant_change", registrant_change)
225
+ if state is not None:
226
+ pulumi.set(__self__, "state", state)
227
+ if timeouts is not None:
228
+ pulumi.set(__self__, "timeouts", timeouts)
229
+ if transfer_lock_enabled is not None:
230
+ pulumi.set(__self__, "transfer_lock_enabled", transfer_lock_enabled)
231
+ if unicode_name is not None:
232
+ pulumi.set(__self__, "unicode_name", unicode_name)
233
+ if whois_privacy_enabled is not None:
234
+ pulumi.set(__self__, "whois_privacy_enabled", whois_privacy_enabled)
235
+
236
+ @_builtins.property
237
+ @pulumi.getter(name="accountId")
238
+ def account_id(self) -> Optional[pulumi.Input[_builtins.int]]:
239
+ return pulumi.get(self, "account_id")
240
+
241
+ @account_id.setter
242
+ def account_id(self, value: Optional[pulumi.Input[_builtins.int]]):
243
+ pulumi.set(self, "account_id", value)
244
+
245
+ @_builtins.property
246
+ @pulumi.getter(name="autoRenewEnabled")
247
+ def auto_renew_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
248
+ """
249
+ Whether the domain should be set to auto-renew (default: `false`).
250
+ """
251
+ return pulumi.get(self, "auto_renew_enabled")
252
+
253
+ @auto_renew_enabled.setter
254
+ def auto_renew_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
255
+ pulumi.set(self, "auto_renew_enabled", value)
256
+
257
+ @_builtins.property
258
+ @pulumi.getter(name="contactId")
259
+ def contact_id(self) -> Optional[pulumi.Input[_builtins.int]]:
260
+ """
261
+ The ID of the contact to be used for the domain registration. The contact ID can be changed after the domain has been registered. The change will result in a new registrant change, which may result in a [60-day lock](https://support.dnsimple.com/articles/icann-60-day-lock-registrant-change/).
262
+ """
263
+ return pulumi.get(self, "contact_id")
264
+
265
+ @contact_id.setter
266
+ def contact_id(self, value: Optional[pulumi.Input[_builtins.int]]):
267
+ pulumi.set(self, "contact_id", value)
268
+
269
+ @_builtins.property
270
+ @pulumi.getter(name="dnssecEnabled")
271
+ def dnssec_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
272
+ """
273
+ Whether the domain should have DNSSEC enabled (default: `false`).
274
+ """
275
+ return pulumi.get(self, "dnssec_enabled")
276
+
277
+ @dnssec_enabled.setter
278
+ def dnssec_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
279
+ pulumi.set(self, "dnssec_enabled", value)
280
+
281
+ @_builtins.property
282
+ @pulumi.getter(name="domainRegistration")
283
+ def domain_registration(self) -> Optional[pulumi.Input['RegisteredDomainDomainRegistrationArgs']]:
284
+ """
285
+ The domain registration details. (see below for nested schema)
286
+ """
287
+ return pulumi.get(self, "domain_registration")
288
+
289
+ @domain_registration.setter
290
+ def domain_registration(self, value: Optional[pulumi.Input['RegisteredDomainDomainRegistrationArgs']]):
291
+ pulumi.set(self, "domain_registration", value)
292
+
293
+ @_builtins.property
294
+ @pulumi.getter(name="expiresAt")
295
+ def expires_at(self) -> Optional[pulumi.Input[_builtins.str]]:
296
+ return pulumi.get(self, "expires_at")
297
+
298
+ @expires_at.setter
299
+ def expires_at(self, value: Optional[pulumi.Input[_builtins.str]]):
300
+ pulumi.set(self, "expires_at", value)
301
+
302
+ @_builtins.property
303
+ @pulumi.getter(name="extendedAttributes")
304
+ def extended_attributes(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
305
+ """
306
+ A map of extended attributes to be set for the domain registration. To see if there are any required extended attributes for any TLD use our [Lists the TLD Extended Attributes API](https://developer.dnsimple.com/v2/tlds/#getTldExtendedAttributes). The values provided in the `extended_attributes` will also be sent when a registrant change is initiated as part of changing the `contact_id`.
307
+ """
308
+ return pulumi.get(self, "extended_attributes")
309
+
310
+ @extended_attributes.setter
311
+ def extended_attributes(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
312
+ pulumi.set(self, "extended_attributes", value)
313
+
314
+ @_builtins.property
315
+ @pulumi.getter
316
+ def name(self) -> Optional[pulumi.Input[_builtins.str]]:
317
+ """
318
+ The domain name to be registered.
319
+ """
320
+ return pulumi.get(self, "name")
321
+
322
+ @name.setter
323
+ def name(self, value: Optional[pulumi.Input[_builtins.str]]):
324
+ pulumi.set(self, "name", value)
325
+
326
+ @_builtins.property
327
+ @pulumi.getter(name="premiumPrice")
328
+ def premium_price(self) -> Optional[pulumi.Input[_builtins.str]]:
329
+ """
330
+ The premium price for the domain registration. This is only required if the domain is a premium domain. You can use our [Check domain API](https://developer.dnsimple.com/v2/registrar/#checkDomain) to check if a domain is premium and [Retrieve domain prices API](https://developer.dnsimple.com/v2/registrar/#getDomainPrices) to retrieve the premium price for a domain.
331
+ """
332
+ return pulumi.get(self, "premium_price")
333
+
334
+ @premium_price.setter
335
+ def premium_price(self, value: Optional[pulumi.Input[_builtins.str]]):
336
+ pulumi.set(self, "premium_price", value)
337
+
338
+ @_builtins.property
339
+ @pulumi.getter(name="registrantChange")
340
+ def registrant_change(self) -> Optional[pulumi.Input['RegisteredDomainRegistrantChangeArgs']]:
341
+ """
342
+ The registrant change details.
343
+ """
344
+ return pulumi.get(self, "registrant_change")
345
+
346
+ @registrant_change.setter
347
+ def registrant_change(self, value: Optional[pulumi.Input['RegisteredDomainRegistrantChangeArgs']]):
348
+ pulumi.set(self, "registrant_change", value)
349
+
350
+ @_builtins.property
351
+ @pulumi.getter
352
+ def state(self) -> Optional[pulumi.Input[_builtins.str]]:
353
+ """
354
+ (String) - The state of the domain registration.
355
+ """
356
+ return pulumi.get(self, "state")
357
+
358
+ @state.setter
359
+ def state(self, value: Optional[pulumi.Input[_builtins.str]]):
360
+ pulumi.set(self, "state", value)
361
+
362
+ @_builtins.property
363
+ @pulumi.getter
364
+ def timeouts(self) -> Optional[pulumi.Input['RegisteredDomainTimeoutsArgs']]:
365
+ """
366
+ (see below for nested schema).
367
+ """
368
+ return pulumi.get(self, "timeouts")
369
+
370
+ @timeouts.setter
371
+ def timeouts(self, value: Optional[pulumi.Input['RegisteredDomainTimeoutsArgs']]):
372
+ pulumi.set(self, "timeouts", value)
373
+
374
+ @_builtins.property
375
+ @pulumi.getter(name="transferLockEnabled")
376
+ def transfer_lock_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
377
+ """
378
+ Whether the domain transfer lock protection is enabled (default: `true`).
379
+ """
380
+ return pulumi.get(self, "transfer_lock_enabled")
381
+
382
+ @transfer_lock_enabled.setter
383
+ def transfer_lock_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
384
+ pulumi.set(self, "transfer_lock_enabled", value)
385
+
386
+ @_builtins.property
387
+ @pulumi.getter(name="unicodeName")
388
+ def unicode_name(self) -> Optional[pulumi.Input[_builtins.str]]:
389
+ """
390
+ The domain name in Unicode format.
391
+ """
392
+ return pulumi.get(self, "unicode_name")
393
+
394
+ @unicode_name.setter
395
+ def unicode_name(self, value: Optional[pulumi.Input[_builtins.str]]):
396
+ pulumi.set(self, "unicode_name", value)
397
+
398
+ @_builtins.property
399
+ @pulumi.getter(name="whoisPrivacyEnabled")
400
+ def whois_privacy_enabled(self) -> Optional[pulumi.Input[_builtins.bool]]:
401
+ """
402
+ Whether the domain should have WHOIS privacy enabled (default: `false`).
403
+ """
404
+ return pulumi.get(self, "whois_privacy_enabled")
405
+
406
+ @whois_privacy_enabled.setter
407
+ def whois_privacy_enabled(self, value: Optional[pulumi.Input[_builtins.bool]]):
408
+ pulumi.set(self, "whois_privacy_enabled", value)
409
+
410
+
411
+ @pulumi.type_token("dnsimple:index/registeredDomain:RegisteredDomain")
412
+ class RegisteredDomain(pulumi.CustomResource):
413
+ @overload
414
+ def __init__(__self__,
415
+ resource_name: str,
416
+ opts: Optional[pulumi.ResourceOptions] = None,
417
+ auto_renew_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
418
+ contact_id: Optional[pulumi.Input[_builtins.int]] = None,
419
+ dnssec_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
420
+ extended_attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
421
+ name: Optional[pulumi.Input[_builtins.str]] = None,
422
+ premium_price: Optional[pulumi.Input[_builtins.str]] = None,
423
+ timeouts: Optional[pulumi.Input[Union['RegisteredDomainTimeoutsArgs', 'RegisteredDomainTimeoutsArgsDict']]] = None,
424
+ transfer_lock_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
425
+ whois_privacy_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
426
+ __props__=None):
427
+ """
428
+ Provides a DNSimple registered domain resource.
429
+
430
+ ## Example Usage
431
+
432
+ The simplest example below requires a contact (existing or a new one to be created) and basic domain information.
433
+
434
+ ```python
435
+ import pulumi
436
+ import pulumi_dnsimple as dnsimple
437
+
438
+ alice_main = dnsimple.Contact("alice_main",
439
+ label="Alice",
440
+ first_name="Alice",
441
+ last_name="Appleseed",
442
+ organization_name="Contoso",
443
+ job_title="Manager",
444
+ address1="Level 1, 2 Main St",
445
+ city="San Francisco",
446
+ state_province="California",
447
+ postal_code="90210",
448
+ country="US",
449
+ phone="+1.401239523",
450
+ email="apple@contoso.com")
451
+ example_com = dnsimple.RegisteredDomain("example_com",
452
+ name="example.com",
453
+ contact_id=alice_main.id)
454
+ ```
455
+
456
+ ### Example with more settings
457
+
458
+ ```python
459
+ import pulumi
460
+ import pulumi_dnsimple as dnsimple
461
+
462
+ example_com = dnsimple.RegisteredDomain("example_com",
463
+ name="example.com",
464
+ contact_id=alice_main["id"],
465
+ auto_renew_enabled=True,
466
+ transfer_lock_enabled=True,
467
+ whois_privacy_enabled=True,
468
+ dnssec_enabled=False)
469
+ ```
470
+
471
+ ### Example with extended attributes
472
+
473
+ Some domain extensions require additional information during registration. You can check if a domain extension requires extended attributes using the [TLD Extended Attributes API](https://developer.dnsimple.com/v2/tlds/#getTldExtendedAttributes).
474
+
475
+ ```python
476
+ import pulumi
477
+ import pulumi_dnsimple as dnsimple
478
+
479
+ example_bio = dnsimple.RegisteredDomain("example_bio",
480
+ name="example.bio",
481
+ contact_id=alice_main["id"],
482
+ auto_renew_enabled=True,
483
+ extended_attributes={
484
+ "bio_agree": "I Agree",
485
+ })
486
+ ```
487
+
488
+ ## Import
489
+
490
+ DNSimple registered domains can be imported using their domain name and **optionally** with domain registration ID.
491
+
492
+ **Importing registered domain example.com:**
493
+
494
+ bash
495
+
496
+ ```sh
497
+ $ pulumi import dnsimple:index/registeredDomain:RegisteredDomain example example.com
498
+ ```
499
+
500
+ **Importing registered domain example.com with domain registration ID 1234:**
501
+
502
+ bash
503
+
504
+ ```sh
505
+ $ pulumi import dnsimple:index/registeredDomain:RegisteredDomain example example.com_1234
506
+ ```
507
+
508
+ :param str resource_name: The name of the resource.
509
+ :param pulumi.ResourceOptions opts: Options for the resource.
510
+ :param pulumi.Input[_builtins.bool] auto_renew_enabled: Whether the domain should be set to auto-renew (default: `false`).
511
+ :param pulumi.Input[_builtins.int] contact_id: The ID of the contact to be used for the domain registration. The contact ID can be changed after the domain has been registered. The change will result in a new registrant change, which may result in a [60-day lock](https://support.dnsimple.com/articles/icann-60-day-lock-registrant-change/).
512
+ :param pulumi.Input[_builtins.bool] dnssec_enabled: Whether the domain should have DNSSEC enabled (default: `false`).
513
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] extended_attributes: A map of extended attributes to be set for the domain registration. To see if there are any required extended attributes for any TLD use our [Lists the TLD Extended Attributes API](https://developer.dnsimple.com/v2/tlds/#getTldExtendedAttributes). The values provided in the `extended_attributes` will also be sent when a registrant change is initiated as part of changing the `contact_id`.
514
+ :param pulumi.Input[_builtins.str] name: The domain name to be registered.
515
+ :param pulumi.Input[_builtins.str] premium_price: The premium price for the domain registration. This is only required if the domain is a premium domain. You can use our [Check domain API](https://developer.dnsimple.com/v2/registrar/#checkDomain) to check if a domain is premium and [Retrieve domain prices API](https://developer.dnsimple.com/v2/registrar/#getDomainPrices) to retrieve the premium price for a domain.
516
+ :param pulumi.Input[Union['RegisteredDomainTimeoutsArgs', 'RegisteredDomainTimeoutsArgsDict']] timeouts: (see below for nested schema).
517
+ :param pulumi.Input[_builtins.bool] transfer_lock_enabled: Whether the domain transfer lock protection is enabled (default: `true`).
518
+ :param pulumi.Input[_builtins.bool] whois_privacy_enabled: Whether the domain should have WHOIS privacy enabled (default: `false`).
519
+ """
520
+ ...
521
+ @overload
522
+ def __init__(__self__,
523
+ resource_name: str,
524
+ args: RegisteredDomainArgs,
525
+ opts: Optional[pulumi.ResourceOptions] = None):
526
+ """
527
+ Provides a DNSimple registered domain resource.
528
+
529
+ ## Example Usage
530
+
531
+ The simplest example below requires a contact (existing or a new one to be created) and basic domain information.
532
+
533
+ ```python
534
+ import pulumi
535
+ import pulumi_dnsimple as dnsimple
536
+
537
+ alice_main = dnsimple.Contact("alice_main",
538
+ label="Alice",
539
+ first_name="Alice",
540
+ last_name="Appleseed",
541
+ organization_name="Contoso",
542
+ job_title="Manager",
543
+ address1="Level 1, 2 Main St",
544
+ city="San Francisco",
545
+ state_province="California",
546
+ postal_code="90210",
547
+ country="US",
548
+ phone="+1.401239523",
549
+ email="apple@contoso.com")
550
+ example_com = dnsimple.RegisteredDomain("example_com",
551
+ name="example.com",
552
+ contact_id=alice_main.id)
553
+ ```
554
+
555
+ ### Example with more settings
556
+
557
+ ```python
558
+ import pulumi
559
+ import pulumi_dnsimple as dnsimple
560
+
561
+ example_com = dnsimple.RegisteredDomain("example_com",
562
+ name="example.com",
563
+ contact_id=alice_main["id"],
564
+ auto_renew_enabled=True,
565
+ transfer_lock_enabled=True,
566
+ whois_privacy_enabled=True,
567
+ dnssec_enabled=False)
568
+ ```
569
+
570
+ ### Example with extended attributes
571
+
572
+ Some domain extensions require additional information during registration. You can check if a domain extension requires extended attributes using the [TLD Extended Attributes API](https://developer.dnsimple.com/v2/tlds/#getTldExtendedAttributes).
573
+
574
+ ```python
575
+ import pulumi
576
+ import pulumi_dnsimple as dnsimple
577
+
578
+ example_bio = dnsimple.RegisteredDomain("example_bio",
579
+ name="example.bio",
580
+ contact_id=alice_main["id"],
581
+ auto_renew_enabled=True,
582
+ extended_attributes={
583
+ "bio_agree": "I Agree",
584
+ })
585
+ ```
586
+
587
+ ## Import
588
+
589
+ DNSimple registered domains can be imported using their domain name and **optionally** with domain registration ID.
590
+
591
+ **Importing registered domain example.com:**
592
+
593
+ bash
594
+
595
+ ```sh
596
+ $ pulumi import dnsimple:index/registeredDomain:RegisteredDomain example example.com
597
+ ```
598
+
599
+ **Importing registered domain example.com with domain registration ID 1234:**
600
+
601
+ bash
602
+
603
+ ```sh
604
+ $ pulumi import dnsimple:index/registeredDomain:RegisteredDomain example example.com_1234
605
+ ```
606
+
607
+ :param str resource_name: The name of the resource.
608
+ :param RegisteredDomainArgs args: The arguments to use to populate this resource's properties.
609
+ :param pulumi.ResourceOptions opts: Options for the resource.
610
+ """
611
+ ...
612
+ def __init__(__self__, resource_name: str, *args, **kwargs):
613
+ resource_args, opts = _utilities.get_resource_args_opts(RegisteredDomainArgs, pulumi.ResourceOptions, *args, **kwargs)
614
+ if resource_args is not None:
615
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
616
+ else:
617
+ __self__._internal_init(resource_name, *args, **kwargs)
618
+
619
+ def _internal_init(__self__,
620
+ resource_name: str,
621
+ opts: Optional[pulumi.ResourceOptions] = None,
622
+ auto_renew_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
623
+ contact_id: Optional[pulumi.Input[_builtins.int]] = None,
624
+ dnssec_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
625
+ extended_attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
626
+ name: Optional[pulumi.Input[_builtins.str]] = None,
627
+ premium_price: Optional[pulumi.Input[_builtins.str]] = None,
628
+ timeouts: Optional[pulumi.Input[Union['RegisteredDomainTimeoutsArgs', 'RegisteredDomainTimeoutsArgsDict']]] = None,
629
+ transfer_lock_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
630
+ whois_privacy_enabled: Optional[pulumi.Input[_builtins.bool]] = 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__ = RegisteredDomainArgs.__new__(RegisteredDomainArgs)
639
+
640
+ __props__.__dict__["auto_renew_enabled"] = auto_renew_enabled
641
+ if contact_id is None and not opts.urn:
642
+ raise TypeError("Missing required property 'contact_id'")
643
+ __props__.__dict__["contact_id"] = contact_id
644
+ __props__.__dict__["dnssec_enabled"] = dnssec_enabled
645
+ __props__.__dict__["extended_attributes"] = extended_attributes
646
+ if name is None and not opts.urn:
647
+ raise TypeError("Missing required property 'name'")
648
+ __props__.__dict__["name"] = name
649
+ __props__.__dict__["premium_price"] = premium_price
650
+ __props__.__dict__["timeouts"] = timeouts
651
+ __props__.__dict__["transfer_lock_enabled"] = transfer_lock_enabled
652
+ __props__.__dict__["whois_privacy_enabled"] = whois_privacy_enabled
653
+ __props__.__dict__["account_id"] = None
654
+ __props__.__dict__["domain_registration"] = None
655
+ __props__.__dict__["expires_at"] = None
656
+ __props__.__dict__["registrant_change"] = None
657
+ __props__.__dict__["state"] = None
658
+ __props__.__dict__["unicode_name"] = None
659
+ super(RegisteredDomain, __self__).__init__(
660
+ 'dnsimple:index/registeredDomain:RegisteredDomain',
661
+ resource_name,
662
+ __props__,
663
+ opts)
664
+
665
+ @staticmethod
666
+ def get(resource_name: str,
667
+ id: pulumi.Input[str],
668
+ opts: Optional[pulumi.ResourceOptions] = None,
669
+ account_id: Optional[pulumi.Input[_builtins.int]] = None,
670
+ auto_renew_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
671
+ contact_id: Optional[pulumi.Input[_builtins.int]] = None,
672
+ dnssec_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
673
+ domain_registration: Optional[pulumi.Input[Union['RegisteredDomainDomainRegistrationArgs', 'RegisteredDomainDomainRegistrationArgsDict']]] = None,
674
+ expires_at: Optional[pulumi.Input[_builtins.str]] = None,
675
+ extended_attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
676
+ name: Optional[pulumi.Input[_builtins.str]] = None,
677
+ premium_price: Optional[pulumi.Input[_builtins.str]] = None,
678
+ registrant_change: Optional[pulumi.Input[Union['RegisteredDomainRegistrantChangeArgs', 'RegisteredDomainRegistrantChangeArgsDict']]] = None,
679
+ state: Optional[pulumi.Input[_builtins.str]] = None,
680
+ timeouts: Optional[pulumi.Input[Union['RegisteredDomainTimeoutsArgs', 'RegisteredDomainTimeoutsArgsDict']]] = None,
681
+ transfer_lock_enabled: Optional[pulumi.Input[_builtins.bool]] = None,
682
+ unicode_name: Optional[pulumi.Input[_builtins.str]] = None,
683
+ whois_privacy_enabled: Optional[pulumi.Input[_builtins.bool]] = None) -> 'RegisteredDomain':
684
+ """
685
+ Get an existing RegisteredDomain resource's state with the given name, id, and optional extra
686
+ properties used to qualify the lookup.
687
+
688
+ :param str resource_name: The unique name of the resulting resource.
689
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
690
+ :param pulumi.ResourceOptions opts: Options for the resource.
691
+ :param pulumi.Input[_builtins.bool] auto_renew_enabled: Whether the domain should be set to auto-renew (default: `false`).
692
+ :param pulumi.Input[_builtins.int] contact_id: The ID of the contact to be used for the domain registration. The contact ID can be changed after the domain has been registered. The change will result in a new registrant change, which may result in a [60-day lock](https://support.dnsimple.com/articles/icann-60-day-lock-registrant-change/).
693
+ :param pulumi.Input[_builtins.bool] dnssec_enabled: Whether the domain should have DNSSEC enabled (default: `false`).
694
+ :param pulumi.Input[Union['RegisteredDomainDomainRegistrationArgs', 'RegisteredDomainDomainRegistrationArgsDict']] domain_registration: The domain registration details. (see below for nested schema)
695
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] extended_attributes: A map of extended attributes to be set for the domain registration. To see if there are any required extended attributes for any TLD use our [Lists the TLD Extended Attributes API](https://developer.dnsimple.com/v2/tlds/#getTldExtendedAttributes). The values provided in the `extended_attributes` will also be sent when a registrant change is initiated as part of changing the `contact_id`.
696
+ :param pulumi.Input[_builtins.str] name: The domain name to be registered.
697
+ :param pulumi.Input[_builtins.str] premium_price: The premium price for the domain registration. This is only required if the domain is a premium domain. You can use our [Check domain API](https://developer.dnsimple.com/v2/registrar/#checkDomain) to check if a domain is premium and [Retrieve domain prices API](https://developer.dnsimple.com/v2/registrar/#getDomainPrices) to retrieve the premium price for a domain.
698
+ :param pulumi.Input[Union['RegisteredDomainRegistrantChangeArgs', 'RegisteredDomainRegistrantChangeArgsDict']] registrant_change: The registrant change details.
699
+ :param pulumi.Input[_builtins.str] state: (String) - The state of the domain registration.
700
+ :param pulumi.Input[Union['RegisteredDomainTimeoutsArgs', 'RegisteredDomainTimeoutsArgsDict']] timeouts: (see below for nested schema).
701
+ :param pulumi.Input[_builtins.bool] transfer_lock_enabled: Whether the domain transfer lock protection is enabled (default: `true`).
702
+ :param pulumi.Input[_builtins.str] unicode_name: The domain name in Unicode format.
703
+ :param pulumi.Input[_builtins.bool] whois_privacy_enabled: Whether the domain should have WHOIS privacy enabled (default: `false`).
704
+ """
705
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
706
+
707
+ __props__ = _RegisteredDomainState.__new__(_RegisteredDomainState)
708
+
709
+ __props__.__dict__["account_id"] = account_id
710
+ __props__.__dict__["auto_renew_enabled"] = auto_renew_enabled
711
+ __props__.__dict__["contact_id"] = contact_id
712
+ __props__.__dict__["dnssec_enabled"] = dnssec_enabled
713
+ __props__.__dict__["domain_registration"] = domain_registration
714
+ __props__.__dict__["expires_at"] = expires_at
715
+ __props__.__dict__["extended_attributes"] = extended_attributes
716
+ __props__.__dict__["name"] = name
717
+ __props__.__dict__["premium_price"] = premium_price
718
+ __props__.__dict__["registrant_change"] = registrant_change
719
+ __props__.__dict__["state"] = state
720
+ __props__.__dict__["timeouts"] = timeouts
721
+ __props__.__dict__["transfer_lock_enabled"] = transfer_lock_enabled
722
+ __props__.__dict__["unicode_name"] = unicode_name
723
+ __props__.__dict__["whois_privacy_enabled"] = whois_privacy_enabled
724
+ return RegisteredDomain(resource_name, opts=opts, __props__=__props__)
725
+
726
+ @_builtins.property
727
+ @pulumi.getter(name="accountId")
728
+ def account_id(self) -> pulumi.Output[_builtins.int]:
729
+ return pulumi.get(self, "account_id")
730
+
731
+ @_builtins.property
732
+ @pulumi.getter(name="autoRenewEnabled")
733
+ def auto_renew_enabled(self) -> pulumi.Output[_builtins.bool]:
734
+ """
735
+ Whether the domain should be set to auto-renew (default: `false`).
736
+ """
737
+ return pulumi.get(self, "auto_renew_enabled")
738
+
739
+ @_builtins.property
740
+ @pulumi.getter(name="contactId")
741
+ def contact_id(self) -> pulumi.Output[_builtins.int]:
742
+ """
743
+ The ID of the contact to be used for the domain registration. The contact ID can be changed after the domain has been registered. The change will result in a new registrant change, which may result in a [60-day lock](https://support.dnsimple.com/articles/icann-60-day-lock-registrant-change/).
744
+ """
745
+ return pulumi.get(self, "contact_id")
746
+
747
+ @_builtins.property
748
+ @pulumi.getter(name="dnssecEnabled")
749
+ def dnssec_enabled(self) -> pulumi.Output[_builtins.bool]:
750
+ """
751
+ Whether the domain should have DNSSEC enabled (default: `false`).
752
+ """
753
+ return pulumi.get(self, "dnssec_enabled")
754
+
755
+ @_builtins.property
756
+ @pulumi.getter(name="domainRegistration")
757
+ def domain_registration(self) -> pulumi.Output['outputs.RegisteredDomainDomainRegistration']:
758
+ """
759
+ The domain registration details. (see below for nested schema)
760
+ """
761
+ return pulumi.get(self, "domain_registration")
762
+
763
+ @_builtins.property
764
+ @pulumi.getter(name="expiresAt")
765
+ def expires_at(self) -> pulumi.Output[_builtins.str]:
766
+ return pulumi.get(self, "expires_at")
767
+
768
+ @_builtins.property
769
+ @pulumi.getter(name="extendedAttributes")
770
+ def extended_attributes(self) -> pulumi.Output[Optional[Mapping[str, _builtins.str]]]:
771
+ """
772
+ A map of extended attributes to be set for the domain registration. To see if there are any required extended attributes for any TLD use our [Lists the TLD Extended Attributes API](https://developer.dnsimple.com/v2/tlds/#getTldExtendedAttributes). The values provided in the `extended_attributes` will also be sent when a registrant change is initiated as part of changing the `contact_id`.
773
+ """
774
+ return pulumi.get(self, "extended_attributes")
775
+
776
+ @_builtins.property
777
+ @pulumi.getter
778
+ def name(self) -> pulumi.Output[_builtins.str]:
779
+ """
780
+ The domain name to be registered.
781
+ """
782
+ return pulumi.get(self, "name")
783
+
784
+ @_builtins.property
785
+ @pulumi.getter(name="premiumPrice")
786
+ def premium_price(self) -> pulumi.Output[Optional[_builtins.str]]:
787
+ """
788
+ The premium price for the domain registration. This is only required if the domain is a premium domain. You can use our [Check domain API](https://developer.dnsimple.com/v2/registrar/#checkDomain) to check if a domain is premium and [Retrieve domain prices API](https://developer.dnsimple.com/v2/registrar/#getDomainPrices) to retrieve the premium price for a domain.
789
+ """
790
+ return pulumi.get(self, "premium_price")
791
+
792
+ @_builtins.property
793
+ @pulumi.getter(name="registrantChange")
794
+ def registrant_change(self) -> pulumi.Output['outputs.RegisteredDomainRegistrantChange']:
795
+ """
796
+ The registrant change details.
797
+ """
798
+ return pulumi.get(self, "registrant_change")
799
+
800
+ @_builtins.property
801
+ @pulumi.getter
802
+ def state(self) -> pulumi.Output[_builtins.str]:
803
+ """
804
+ (String) - The state of the domain registration.
805
+ """
806
+ return pulumi.get(self, "state")
807
+
808
+ @_builtins.property
809
+ @pulumi.getter
810
+ def timeouts(self) -> pulumi.Output[Optional['outputs.RegisteredDomainTimeouts']]:
811
+ """
812
+ (see below for nested schema).
813
+ """
814
+ return pulumi.get(self, "timeouts")
815
+
816
+ @_builtins.property
817
+ @pulumi.getter(name="transferLockEnabled")
818
+ def transfer_lock_enabled(self) -> pulumi.Output[_builtins.bool]:
819
+ """
820
+ Whether the domain transfer lock protection is enabled (default: `true`).
821
+ """
822
+ return pulumi.get(self, "transfer_lock_enabled")
823
+
824
+ @_builtins.property
825
+ @pulumi.getter(name="unicodeName")
826
+ def unicode_name(self) -> pulumi.Output[_builtins.str]:
827
+ """
828
+ The domain name in Unicode format.
829
+ """
830
+ return pulumi.get(self, "unicode_name")
831
+
832
+ @_builtins.property
833
+ @pulumi.getter(name="whoisPrivacyEnabled")
834
+ def whois_privacy_enabled(self) -> pulumi.Output[_builtins.bool]:
835
+ """
836
+ Whether the domain should have WHOIS privacy enabled (default: `false`).
837
+ """
838
+ return pulumi.get(self, "whois_privacy_enabled")
839
+