pulumi-dnsimple 3.5.0a1721425071__py3-none-any.whl → 4.0.0__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.

Potentially problematic release.


This version of pulumi-dnsimple might be problematic. Click here for more details.

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