pulumi-dnsimple 3.5.0a1710156168__py3-none-any.whl → 4.3.0a1736832784__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,1204 @@
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__ = ['ContactArgs', 'Contact']
18
+
19
+ @pulumi.input_type
20
+ class ContactArgs:
21
+ def __init__(__self__, *,
22
+ address1: pulumi.Input[str],
23
+ city: pulumi.Input[str],
24
+ country: pulumi.Input[str],
25
+ email: pulumi.Input[str],
26
+ first_name: pulumi.Input[str],
27
+ last_name: pulumi.Input[str],
28
+ phone: pulumi.Input[str],
29
+ postal_code: pulumi.Input[str],
30
+ state_province: pulumi.Input[str],
31
+ address2: Optional[pulumi.Input[str]] = None,
32
+ fax: Optional[pulumi.Input[str]] = None,
33
+ job_title: Optional[pulumi.Input[str]] = None,
34
+ label: Optional[pulumi.Input[str]] = None,
35
+ organization_name: Optional[pulumi.Input[str]] = None):
36
+ """
37
+ The set of arguments for constructing a Contact resource.
38
+ :param pulumi.Input[str] address1: Address line 1
39
+ :param pulumi.Input[str] city: City
40
+ :param pulumi.Input[str] country: Country
41
+ :param pulumi.Input[str] email: Email
42
+
43
+ # Attributes Reference
44
+ :param pulumi.Input[str] first_name: First name
45
+ :param pulumi.Input[str] last_name: Last name
46
+ :param pulumi.Input[str] phone: Phone
47
+ :param pulumi.Input[str] postal_code: Postal code
48
+ :param pulumi.Input[str] state_province: State province
49
+ :param pulumi.Input[str] address2: Address line 2
50
+ :param pulumi.Input[str] fax: Fax
51
+ :param pulumi.Input[str] job_title: Job title
52
+ :param pulumi.Input[str] label: Label
53
+ :param pulumi.Input[str] organization_name: Organization name
54
+ """
55
+ pulumi.set(__self__, "address1", address1)
56
+ pulumi.set(__self__, "city", city)
57
+ pulumi.set(__self__, "country", country)
58
+ pulumi.set(__self__, "email", email)
59
+ pulumi.set(__self__, "first_name", first_name)
60
+ pulumi.set(__self__, "last_name", last_name)
61
+ pulumi.set(__self__, "phone", phone)
62
+ pulumi.set(__self__, "postal_code", postal_code)
63
+ pulumi.set(__self__, "state_province", state_province)
64
+ if address2 is not None:
65
+ pulumi.set(__self__, "address2", address2)
66
+ if fax is not None:
67
+ pulumi.set(__self__, "fax", fax)
68
+ if job_title is not None:
69
+ pulumi.set(__self__, "job_title", job_title)
70
+ if label is not None:
71
+ pulumi.set(__self__, "label", label)
72
+ if organization_name is not None:
73
+ pulumi.set(__self__, "organization_name", organization_name)
74
+
75
+ @property
76
+ @pulumi.getter
77
+ def address1(self) -> pulumi.Input[str]:
78
+ """
79
+ Address line 1
80
+ """
81
+ return pulumi.get(self, "address1")
82
+
83
+ @address1.setter
84
+ def address1(self, value: pulumi.Input[str]):
85
+ pulumi.set(self, "address1", value)
86
+
87
+ @property
88
+ @pulumi.getter
89
+ def city(self) -> pulumi.Input[str]:
90
+ """
91
+ City
92
+ """
93
+ return pulumi.get(self, "city")
94
+
95
+ @city.setter
96
+ def city(self, value: pulumi.Input[str]):
97
+ pulumi.set(self, "city", value)
98
+
99
+ @property
100
+ @pulumi.getter
101
+ def country(self) -> pulumi.Input[str]:
102
+ """
103
+ Country
104
+ """
105
+ return pulumi.get(self, "country")
106
+
107
+ @country.setter
108
+ def country(self, value: pulumi.Input[str]):
109
+ pulumi.set(self, "country", value)
110
+
111
+ @property
112
+ @pulumi.getter
113
+ def email(self) -> pulumi.Input[str]:
114
+ """
115
+ Email
116
+
117
+ # Attributes Reference
118
+ """
119
+ return pulumi.get(self, "email")
120
+
121
+ @email.setter
122
+ def email(self, value: pulumi.Input[str]):
123
+ pulumi.set(self, "email", value)
124
+
125
+ @property
126
+ @pulumi.getter(name="firstName")
127
+ def first_name(self) -> pulumi.Input[str]:
128
+ """
129
+ First name
130
+ """
131
+ return pulumi.get(self, "first_name")
132
+
133
+ @first_name.setter
134
+ def first_name(self, value: pulumi.Input[str]):
135
+ pulumi.set(self, "first_name", value)
136
+
137
+ @property
138
+ @pulumi.getter(name="lastName")
139
+ def last_name(self) -> pulumi.Input[str]:
140
+ """
141
+ Last name
142
+ """
143
+ return pulumi.get(self, "last_name")
144
+
145
+ @last_name.setter
146
+ def last_name(self, value: pulumi.Input[str]):
147
+ pulumi.set(self, "last_name", value)
148
+
149
+ @property
150
+ @pulumi.getter
151
+ def phone(self) -> pulumi.Input[str]:
152
+ """
153
+ Phone
154
+ """
155
+ return pulumi.get(self, "phone")
156
+
157
+ @phone.setter
158
+ def phone(self, value: pulumi.Input[str]):
159
+ pulumi.set(self, "phone", value)
160
+
161
+ @property
162
+ @pulumi.getter(name="postalCode")
163
+ def postal_code(self) -> pulumi.Input[str]:
164
+ """
165
+ Postal code
166
+ """
167
+ return pulumi.get(self, "postal_code")
168
+
169
+ @postal_code.setter
170
+ def postal_code(self, value: pulumi.Input[str]):
171
+ pulumi.set(self, "postal_code", value)
172
+
173
+ @property
174
+ @pulumi.getter(name="stateProvince")
175
+ def state_province(self) -> pulumi.Input[str]:
176
+ """
177
+ State province
178
+ """
179
+ return pulumi.get(self, "state_province")
180
+
181
+ @state_province.setter
182
+ def state_province(self, value: pulumi.Input[str]):
183
+ pulumi.set(self, "state_province", value)
184
+
185
+ @property
186
+ @pulumi.getter
187
+ def address2(self) -> Optional[pulumi.Input[str]]:
188
+ """
189
+ Address line 2
190
+ """
191
+ return pulumi.get(self, "address2")
192
+
193
+ @address2.setter
194
+ def address2(self, value: Optional[pulumi.Input[str]]):
195
+ pulumi.set(self, "address2", value)
196
+
197
+ @property
198
+ @pulumi.getter
199
+ def fax(self) -> Optional[pulumi.Input[str]]:
200
+ """
201
+ Fax
202
+ """
203
+ return pulumi.get(self, "fax")
204
+
205
+ @fax.setter
206
+ def fax(self, value: Optional[pulumi.Input[str]]):
207
+ pulumi.set(self, "fax", value)
208
+
209
+ @property
210
+ @pulumi.getter(name="jobTitle")
211
+ def job_title(self) -> Optional[pulumi.Input[str]]:
212
+ """
213
+ Job title
214
+ """
215
+ return pulumi.get(self, "job_title")
216
+
217
+ @job_title.setter
218
+ def job_title(self, value: Optional[pulumi.Input[str]]):
219
+ pulumi.set(self, "job_title", value)
220
+
221
+ @property
222
+ @pulumi.getter
223
+ def label(self) -> Optional[pulumi.Input[str]]:
224
+ """
225
+ Label
226
+ """
227
+ return pulumi.get(self, "label")
228
+
229
+ @label.setter
230
+ def label(self, value: Optional[pulumi.Input[str]]):
231
+ pulumi.set(self, "label", value)
232
+
233
+ @property
234
+ @pulumi.getter(name="organizationName")
235
+ def organization_name(self) -> Optional[pulumi.Input[str]]:
236
+ """
237
+ Organization name
238
+ """
239
+ return pulumi.get(self, "organization_name")
240
+
241
+ @organization_name.setter
242
+ def organization_name(self, value: Optional[pulumi.Input[str]]):
243
+ pulumi.set(self, "organization_name", value)
244
+
245
+
246
+ @pulumi.input_type
247
+ class _ContactState:
248
+ def __init__(__self__, *,
249
+ account_id: Optional[pulumi.Input[int]] = None,
250
+ address1: Optional[pulumi.Input[str]] = None,
251
+ address2: Optional[pulumi.Input[str]] = None,
252
+ city: Optional[pulumi.Input[str]] = None,
253
+ country: Optional[pulumi.Input[str]] = None,
254
+ created_at: Optional[pulumi.Input[str]] = None,
255
+ email: Optional[pulumi.Input[str]] = None,
256
+ fax: Optional[pulumi.Input[str]] = None,
257
+ fax_normalized: Optional[pulumi.Input[str]] = None,
258
+ first_name: Optional[pulumi.Input[str]] = None,
259
+ job_title: Optional[pulumi.Input[str]] = None,
260
+ label: Optional[pulumi.Input[str]] = None,
261
+ last_name: Optional[pulumi.Input[str]] = None,
262
+ organization_name: Optional[pulumi.Input[str]] = None,
263
+ phone: Optional[pulumi.Input[str]] = None,
264
+ phone_normalized: Optional[pulumi.Input[str]] = None,
265
+ postal_code: Optional[pulumi.Input[str]] = None,
266
+ state_province: Optional[pulumi.Input[str]] = None,
267
+ updated_at: Optional[pulumi.Input[str]] = None):
268
+ """
269
+ Input properties used for looking up and filtering Contact resources.
270
+ :param pulumi.Input[int] account_id: The account ID for the contact.
271
+ :param pulumi.Input[str] address1: Address line 1
272
+ :param pulumi.Input[str] address2: Address line 2
273
+ :param pulumi.Input[str] city: City
274
+ :param pulumi.Input[str] country: Country
275
+ :param pulumi.Input[str] created_at: Timestamp representing when this contact was created.
276
+ :param pulumi.Input[str] email: Email
277
+
278
+ # Attributes Reference
279
+ :param pulumi.Input[str] fax: Fax
280
+ :param pulumi.Input[str] fax_normalized: The fax number, normalized.
281
+ :param pulumi.Input[str] first_name: First name
282
+ :param pulumi.Input[str] job_title: Job title
283
+ :param pulumi.Input[str] label: Label
284
+ :param pulumi.Input[str] last_name: Last name
285
+ :param pulumi.Input[str] organization_name: Organization name
286
+ :param pulumi.Input[str] phone: Phone
287
+ :param pulumi.Input[str] phone_normalized: The phone number, normalized.
288
+ :param pulumi.Input[str] postal_code: Postal code
289
+ :param pulumi.Input[str] state_province: State province
290
+ :param pulumi.Input[str] updated_at: Timestamp representing when this contact was updated.
291
+ """
292
+ if account_id is not None:
293
+ pulumi.set(__self__, "account_id", account_id)
294
+ if address1 is not None:
295
+ pulumi.set(__self__, "address1", address1)
296
+ if address2 is not None:
297
+ pulumi.set(__self__, "address2", address2)
298
+ if city is not None:
299
+ pulumi.set(__self__, "city", city)
300
+ if country is not None:
301
+ pulumi.set(__self__, "country", country)
302
+ if created_at is not None:
303
+ pulumi.set(__self__, "created_at", created_at)
304
+ if email is not None:
305
+ pulumi.set(__self__, "email", email)
306
+ if fax is not None:
307
+ pulumi.set(__self__, "fax", fax)
308
+ if fax_normalized is not None:
309
+ pulumi.set(__self__, "fax_normalized", fax_normalized)
310
+ if first_name is not None:
311
+ pulumi.set(__self__, "first_name", first_name)
312
+ if job_title is not None:
313
+ pulumi.set(__self__, "job_title", job_title)
314
+ if label is not None:
315
+ pulumi.set(__self__, "label", label)
316
+ if last_name is not None:
317
+ pulumi.set(__self__, "last_name", last_name)
318
+ if organization_name is not None:
319
+ pulumi.set(__self__, "organization_name", organization_name)
320
+ if phone is not None:
321
+ pulumi.set(__self__, "phone", phone)
322
+ if phone_normalized is not None:
323
+ pulumi.set(__self__, "phone_normalized", phone_normalized)
324
+ if postal_code is not None:
325
+ pulumi.set(__self__, "postal_code", postal_code)
326
+ if state_province is not None:
327
+ pulumi.set(__self__, "state_province", state_province)
328
+ if updated_at is not None:
329
+ pulumi.set(__self__, "updated_at", updated_at)
330
+
331
+ @property
332
+ @pulumi.getter(name="accountId")
333
+ def account_id(self) -> Optional[pulumi.Input[int]]:
334
+ """
335
+ The account ID for the contact.
336
+ """
337
+ return pulumi.get(self, "account_id")
338
+
339
+ @account_id.setter
340
+ def account_id(self, value: Optional[pulumi.Input[int]]):
341
+ pulumi.set(self, "account_id", value)
342
+
343
+ @property
344
+ @pulumi.getter
345
+ def address1(self) -> Optional[pulumi.Input[str]]:
346
+ """
347
+ Address line 1
348
+ """
349
+ return pulumi.get(self, "address1")
350
+
351
+ @address1.setter
352
+ def address1(self, value: Optional[pulumi.Input[str]]):
353
+ pulumi.set(self, "address1", value)
354
+
355
+ @property
356
+ @pulumi.getter
357
+ def address2(self) -> Optional[pulumi.Input[str]]:
358
+ """
359
+ Address line 2
360
+ """
361
+ return pulumi.get(self, "address2")
362
+
363
+ @address2.setter
364
+ def address2(self, value: Optional[pulumi.Input[str]]):
365
+ pulumi.set(self, "address2", value)
366
+
367
+ @property
368
+ @pulumi.getter
369
+ def city(self) -> Optional[pulumi.Input[str]]:
370
+ """
371
+ City
372
+ """
373
+ return pulumi.get(self, "city")
374
+
375
+ @city.setter
376
+ def city(self, value: Optional[pulumi.Input[str]]):
377
+ pulumi.set(self, "city", value)
378
+
379
+ @property
380
+ @pulumi.getter
381
+ def country(self) -> Optional[pulumi.Input[str]]:
382
+ """
383
+ Country
384
+ """
385
+ return pulumi.get(self, "country")
386
+
387
+ @country.setter
388
+ def country(self, value: Optional[pulumi.Input[str]]):
389
+ pulumi.set(self, "country", value)
390
+
391
+ @property
392
+ @pulumi.getter(name="createdAt")
393
+ def created_at(self) -> Optional[pulumi.Input[str]]:
394
+ """
395
+ Timestamp representing when this contact was created.
396
+ """
397
+ return pulumi.get(self, "created_at")
398
+
399
+ @created_at.setter
400
+ def created_at(self, value: Optional[pulumi.Input[str]]):
401
+ pulumi.set(self, "created_at", value)
402
+
403
+ @property
404
+ @pulumi.getter
405
+ def email(self) -> Optional[pulumi.Input[str]]:
406
+ """
407
+ Email
408
+
409
+ # Attributes Reference
410
+ """
411
+ return pulumi.get(self, "email")
412
+
413
+ @email.setter
414
+ def email(self, value: Optional[pulumi.Input[str]]):
415
+ pulumi.set(self, "email", value)
416
+
417
+ @property
418
+ @pulumi.getter
419
+ def fax(self) -> Optional[pulumi.Input[str]]:
420
+ """
421
+ Fax
422
+ """
423
+ return pulumi.get(self, "fax")
424
+
425
+ @fax.setter
426
+ def fax(self, value: Optional[pulumi.Input[str]]):
427
+ pulumi.set(self, "fax", value)
428
+
429
+ @property
430
+ @pulumi.getter(name="faxNormalized")
431
+ def fax_normalized(self) -> Optional[pulumi.Input[str]]:
432
+ """
433
+ The fax number, normalized.
434
+ """
435
+ return pulumi.get(self, "fax_normalized")
436
+
437
+ @fax_normalized.setter
438
+ def fax_normalized(self, value: Optional[pulumi.Input[str]]):
439
+ pulumi.set(self, "fax_normalized", value)
440
+
441
+ @property
442
+ @pulumi.getter(name="firstName")
443
+ def first_name(self) -> Optional[pulumi.Input[str]]:
444
+ """
445
+ First name
446
+ """
447
+ return pulumi.get(self, "first_name")
448
+
449
+ @first_name.setter
450
+ def first_name(self, value: Optional[pulumi.Input[str]]):
451
+ pulumi.set(self, "first_name", value)
452
+
453
+ @property
454
+ @pulumi.getter(name="jobTitle")
455
+ def job_title(self) -> Optional[pulumi.Input[str]]:
456
+ """
457
+ Job title
458
+ """
459
+ return pulumi.get(self, "job_title")
460
+
461
+ @job_title.setter
462
+ def job_title(self, value: Optional[pulumi.Input[str]]):
463
+ pulumi.set(self, "job_title", value)
464
+
465
+ @property
466
+ @pulumi.getter
467
+ def label(self) -> Optional[pulumi.Input[str]]:
468
+ """
469
+ Label
470
+ """
471
+ return pulumi.get(self, "label")
472
+
473
+ @label.setter
474
+ def label(self, value: Optional[pulumi.Input[str]]):
475
+ pulumi.set(self, "label", value)
476
+
477
+ @property
478
+ @pulumi.getter(name="lastName")
479
+ def last_name(self) -> Optional[pulumi.Input[str]]:
480
+ """
481
+ Last name
482
+ """
483
+ return pulumi.get(self, "last_name")
484
+
485
+ @last_name.setter
486
+ def last_name(self, value: Optional[pulumi.Input[str]]):
487
+ pulumi.set(self, "last_name", value)
488
+
489
+ @property
490
+ @pulumi.getter(name="organizationName")
491
+ def organization_name(self) -> Optional[pulumi.Input[str]]:
492
+ """
493
+ Organization name
494
+ """
495
+ return pulumi.get(self, "organization_name")
496
+
497
+ @organization_name.setter
498
+ def organization_name(self, value: Optional[pulumi.Input[str]]):
499
+ pulumi.set(self, "organization_name", value)
500
+
501
+ @property
502
+ @pulumi.getter
503
+ def phone(self) -> Optional[pulumi.Input[str]]:
504
+ """
505
+ Phone
506
+ """
507
+ return pulumi.get(self, "phone")
508
+
509
+ @phone.setter
510
+ def phone(self, value: Optional[pulumi.Input[str]]):
511
+ pulumi.set(self, "phone", value)
512
+
513
+ @property
514
+ @pulumi.getter(name="phoneNormalized")
515
+ def phone_normalized(self) -> Optional[pulumi.Input[str]]:
516
+ """
517
+ The phone number, normalized.
518
+ """
519
+ return pulumi.get(self, "phone_normalized")
520
+
521
+ @phone_normalized.setter
522
+ def phone_normalized(self, value: Optional[pulumi.Input[str]]):
523
+ pulumi.set(self, "phone_normalized", value)
524
+
525
+ @property
526
+ @pulumi.getter(name="postalCode")
527
+ def postal_code(self) -> Optional[pulumi.Input[str]]:
528
+ """
529
+ Postal code
530
+ """
531
+ return pulumi.get(self, "postal_code")
532
+
533
+ @postal_code.setter
534
+ def postal_code(self, value: Optional[pulumi.Input[str]]):
535
+ pulumi.set(self, "postal_code", value)
536
+
537
+ @property
538
+ @pulumi.getter(name="stateProvince")
539
+ def state_province(self) -> Optional[pulumi.Input[str]]:
540
+ """
541
+ State province
542
+ """
543
+ return pulumi.get(self, "state_province")
544
+
545
+ @state_province.setter
546
+ def state_province(self, value: Optional[pulumi.Input[str]]):
547
+ pulumi.set(self, "state_province", value)
548
+
549
+ @property
550
+ @pulumi.getter(name="updatedAt")
551
+ def updated_at(self) -> Optional[pulumi.Input[str]]:
552
+ """
553
+ Timestamp representing when this contact was updated.
554
+ """
555
+ return pulumi.get(self, "updated_at")
556
+
557
+ @updated_at.setter
558
+ def updated_at(self, value: Optional[pulumi.Input[str]]):
559
+ pulumi.set(self, "updated_at", value)
560
+
561
+
562
+ class Contact(pulumi.CustomResource):
563
+ @overload
564
+ def __init__(__self__,
565
+ resource_name: str,
566
+ opts: Optional[pulumi.ResourceOptions] = None,
567
+ address1: Optional[pulumi.Input[str]] = None,
568
+ address2: Optional[pulumi.Input[str]] = None,
569
+ city: Optional[pulumi.Input[str]] = None,
570
+ country: Optional[pulumi.Input[str]] = None,
571
+ email: Optional[pulumi.Input[str]] = None,
572
+ fax: Optional[pulumi.Input[str]] = None,
573
+ first_name: Optional[pulumi.Input[str]] = None,
574
+ job_title: Optional[pulumi.Input[str]] = None,
575
+ label: Optional[pulumi.Input[str]] = None,
576
+ last_name: Optional[pulumi.Input[str]] = None,
577
+ organization_name: Optional[pulumi.Input[str]] = None,
578
+ phone: Optional[pulumi.Input[str]] = None,
579
+ postal_code: Optional[pulumi.Input[str]] = None,
580
+ state_province: Optional[pulumi.Input[str]] = None,
581
+ __props__=None):
582
+ """
583
+ Provides a DNSimple contact resource.
584
+
585
+ ## Example Usage
586
+
587
+ ```python
588
+ import pulumi
589
+ import pulumi_dnsimple as dnsimple
590
+
591
+ # Create a contact
592
+ me = dnsimple.Contact("me",
593
+ label="Apple Appleseed",
594
+ first_name="Apple",
595
+ last_name="Appleseed",
596
+ organization_name="Contoso",
597
+ job_title="Manager",
598
+ address1="Level 1, 2 Main St",
599
+ address2="Marsfield",
600
+ city="San Francisco",
601
+ state_province="California",
602
+ postal_code="90210",
603
+ country="US",
604
+ phone="+1401239523",
605
+ fax="+1849491024",
606
+ email="apple@contoso.com")
607
+ ```
608
+
609
+ ## Import
610
+
611
+ DNSimple contacts can be imported using their numeric ID.
612
+
613
+ bash
614
+
615
+ ```sh
616
+ $ pulumi import dnsimple:index/contact:Contact resource_name 5678
617
+ ```
618
+
619
+ The ID can be found within [DNSimple Contacts API](https://developer.dnsimple.com/v2/contacts/#listContacts). Check out [Authentication](https://developer.dnsimple.com/v2/#authentication) in API Overview for available options.
620
+
621
+ bash
622
+
623
+ curl -u 'EMAIL:PASSWORD' https://api.dnsimple.com/v2/1234/contacts?label_like=example.com | jq
624
+
625
+ {
626
+
627
+ "data": [
628
+
629
+ {
630
+
631
+ "id": 1,
632
+
633
+ "account_id": 1010,
634
+
635
+ "label": "Default",
636
+
637
+ "first_name": "First",
638
+
639
+ "last_name": "User",
640
+
641
+ "job_title": "CEO",
642
+
643
+ "organization_name": "Awesome Company",
644
+
645
+ "email": "first@example.com",
646
+
647
+ "phone": "+18001234567",
648
+
649
+ "fax": "+18011234567",
650
+
651
+ "address1": "Italian Street, 10",
652
+
653
+ "address2": "",
654
+
655
+ "city": "Roma",
656
+
657
+ "state_province": "RM",
658
+
659
+ "postal_code": "00100",
660
+
661
+ "country": "IT",
662
+
663
+ "created_at": "2013-11-08T17:23:15Z",
664
+
665
+ "updated_at": "2015-01-08T21:30:50Z"
666
+
667
+ },
668
+
669
+ {
670
+
671
+ "id": 2,
672
+
673
+ "account_id": 1010,
674
+
675
+ "label": "",
676
+
677
+ "first_name": "Second",
678
+
679
+ "last_name": "User",
680
+
681
+ "job_title": "",
682
+
683
+ "organization_name": "",
684
+
685
+ "email": "second@example.com",
686
+
687
+ "phone": "+18881234567",
688
+
689
+ "fax": "",
690
+
691
+ "address1": "French Street",
692
+
693
+ "address2": "c/o Someone",
694
+
695
+ "city": "Paris",
696
+
697
+ "state_province": "XY",
698
+
699
+ "postal_code": "00200",
700
+
701
+ "country": "FR",
702
+
703
+ "created_at": "2014-12-06T15:46:18Z",
704
+
705
+ "updated_at": "2014-12-06T15:46:18Z"
706
+
707
+ }
708
+
709
+ ],
710
+
711
+ "pagination": {
712
+
713
+ "current_page": 1,
714
+
715
+ "per_page": 30,
716
+
717
+ "total_entries": 2,
718
+
719
+ "total_pages": 1
720
+
721
+ }
722
+
723
+ }
724
+
725
+ :param str resource_name: The name of the resource.
726
+ :param pulumi.ResourceOptions opts: Options for the resource.
727
+ :param pulumi.Input[str] address1: Address line 1
728
+ :param pulumi.Input[str] address2: Address line 2
729
+ :param pulumi.Input[str] city: City
730
+ :param pulumi.Input[str] country: Country
731
+ :param pulumi.Input[str] email: Email
732
+
733
+ # Attributes Reference
734
+ :param pulumi.Input[str] fax: Fax
735
+ :param pulumi.Input[str] first_name: First name
736
+ :param pulumi.Input[str] job_title: Job title
737
+ :param pulumi.Input[str] label: Label
738
+ :param pulumi.Input[str] last_name: Last name
739
+ :param pulumi.Input[str] organization_name: Organization name
740
+ :param pulumi.Input[str] phone: Phone
741
+ :param pulumi.Input[str] postal_code: Postal code
742
+ :param pulumi.Input[str] state_province: State province
743
+ """
744
+ ...
745
+ @overload
746
+ def __init__(__self__,
747
+ resource_name: str,
748
+ args: ContactArgs,
749
+ opts: Optional[pulumi.ResourceOptions] = None):
750
+ """
751
+ Provides a DNSimple contact resource.
752
+
753
+ ## Example Usage
754
+
755
+ ```python
756
+ import pulumi
757
+ import pulumi_dnsimple as dnsimple
758
+
759
+ # Create a contact
760
+ me = dnsimple.Contact("me",
761
+ label="Apple Appleseed",
762
+ first_name="Apple",
763
+ last_name="Appleseed",
764
+ organization_name="Contoso",
765
+ job_title="Manager",
766
+ address1="Level 1, 2 Main St",
767
+ address2="Marsfield",
768
+ city="San Francisco",
769
+ state_province="California",
770
+ postal_code="90210",
771
+ country="US",
772
+ phone="+1401239523",
773
+ fax="+1849491024",
774
+ email="apple@contoso.com")
775
+ ```
776
+
777
+ ## Import
778
+
779
+ DNSimple contacts can be imported using their numeric ID.
780
+
781
+ bash
782
+
783
+ ```sh
784
+ $ pulumi import dnsimple:index/contact:Contact resource_name 5678
785
+ ```
786
+
787
+ The ID can be found within [DNSimple Contacts API](https://developer.dnsimple.com/v2/contacts/#listContacts). Check out [Authentication](https://developer.dnsimple.com/v2/#authentication) in API Overview for available options.
788
+
789
+ bash
790
+
791
+ curl -u 'EMAIL:PASSWORD' https://api.dnsimple.com/v2/1234/contacts?label_like=example.com | jq
792
+
793
+ {
794
+
795
+ "data": [
796
+
797
+ {
798
+
799
+ "id": 1,
800
+
801
+ "account_id": 1010,
802
+
803
+ "label": "Default",
804
+
805
+ "first_name": "First",
806
+
807
+ "last_name": "User",
808
+
809
+ "job_title": "CEO",
810
+
811
+ "organization_name": "Awesome Company",
812
+
813
+ "email": "first@example.com",
814
+
815
+ "phone": "+18001234567",
816
+
817
+ "fax": "+18011234567",
818
+
819
+ "address1": "Italian Street, 10",
820
+
821
+ "address2": "",
822
+
823
+ "city": "Roma",
824
+
825
+ "state_province": "RM",
826
+
827
+ "postal_code": "00100",
828
+
829
+ "country": "IT",
830
+
831
+ "created_at": "2013-11-08T17:23:15Z",
832
+
833
+ "updated_at": "2015-01-08T21:30:50Z"
834
+
835
+ },
836
+
837
+ {
838
+
839
+ "id": 2,
840
+
841
+ "account_id": 1010,
842
+
843
+ "label": "",
844
+
845
+ "first_name": "Second",
846
+
847
+ "last_name": "User",
848
+
849
+ "job_title": "",
850
+
851
+ "organization_name": "",
852
+
853
+ "email": "second@example.com",
854
+
855
+ "phone": "+18881234567",
856
+
857
+ "fax": "",
858
+
859
+ "address1": "French Street",
860
+
861
+ "address2": "c/o Someone",
862
+
863
+ "city": "Paris",
864
+
865
+ "state_province": "XY",
866
+
867
+ "postal_code": "00200",
868
+
869
+ "country": "FR",
870
+
871
+ "created_at": "2014-12-06T15:46:18Z",
872
+
873
+ "updated_at": "2014-12-06T15:46:18Z"
874
+
875
+ }
876
+
877
+ ],
878
+
879
+ "pagination": {
880
+
881
+ "current_page": 1,
882
+
883
+ "per_page": 30,
884
+
885
+ "total_entries": 2,
886
+
887
+ "total_pages": 1
888
+
889
+ }
890
+
891
+ }
892
+
893
+ :param str resource_name: The name of the resource.
894
+ :param ContactArgs args: The arguments to use to populate this resource's properties.
895
+ :param pulumi.ResourceOptions opts: Options for the resource.
896
+ """
897
+ ...
898
+ def __init__(__self__, resource_name: str, *args, **kwargs):
899
+ resource_args, opts = _utilities.get_resource_args_opts(ContactArgs, pulumi.ResourceOptions, *args, **kwargs)
900
+ if resource_args is not None:
901
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
902
+ else:
903
+ __self__._internal_init(resource_name, *args, **kwargs)
904
+
905
+ def _internal_init(__self__,
906
+ resource_name: str,
907
+ opts: Optional[pulumi.ResourceOptions] = None,
908
+ address1: Optional[pulumi.Input[str]] = None,
909
+ address2: Optional[pulumi.Input[str]] = None,
910
+ city: Optional[pulumi.Input[str]] = None,
911
+ country: Optional[pulumi.Input[str]] = None,
912
+ email: Optional[pulumi.Input[str]] = None,
913
+ fax: Optional[pulumi.Input[str]] = None,
914
+ first_name: Optional[pulumi.Input[str]] = None,
915
+ job_title: Optional[pulumi.Input[str]] = None,
916
+ label: Optional[pulumi.Input[str]] = None,
917
+ last_name: Optional[pulumi.Input[str]] = None,
918
+ organization_name: Optional[pulumi.Input[str]] = None,
919
+ phone: Optional[pulumi.Input[str]] = None,
920
+ postal_code: Optional[pulumi.Input[str]] = None,
921
+ state_province: Optional[pulumi.Input[str]] = None,
922
+ __props__=None):
923
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
924
+ if not isinstance(opts, pulumi.ResourceOptions):
925
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
926
+ if opts.id is None:
927
+ if __props__ is not None:
928
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
929
+ __props__ = ContactArgs.__new__(ContactArgs)
930
+
931
+ if address1 is None and not opts.urn:
932
+ raise TypeError("Missing required property 'address1'")
933
+ __props__.__dict__["address1"] = address1
934
+ __props__.__dict__["address2"] = address2
935
+ if city is None and not opts.urn:
936
+ raise TypeError("Missing required property 'city'")
937
+ __props__.__dict__["city"] = city
938
+ if country is None and not opts.urn:
939
+ raise TypeError("Missing required property 'country'")
940
+ __props__.__dict__["country"] = country
941
+ if email is None and not opts.urn:
942
+ raise TypeError("Missing required property 'email'")
943
+ __props__.__dict__["email"] = email
944
+ __props__.__dict__["fax"] = fax
945
+ if first_name is None and not opts.urn:
946
+ raise TypeError("Missing required property 'first_name'")
947
+ __props__.__dict__["first_name"] = first_name
948
+ __props__.__dict__["job_title"] = job_title
949
+ __props__.__dict__["label"] = label
950
+ if last_name is None and not opts.urn:
951
+ raise TypeError("Missing required property 'last_name'")
952
+ __props__.__dict__["last_name"] = last_name
953
+ __props__.__dict__["organization_name"] = organization_name
954
+ if phone is None and not opts.urn:
955
+ raise TypeError("Missing required property 'phone'")
956
+ __props__.__dict__["phone"] = phone
957
+ if postal_code is None and not opts.urn:
958
+ raise TypeError("Missing required property 'postal_code'")
959
+ __props__.__dict__["postal_code"] = postal_code
960
+ if state_province is None and not opts.urn:
961
+ raise TypeError("Missing required property 'state_province'")
962
+ __props__.__dict__["state_province"] = state_province
963
+ __props__.__dict__["account_id"] = None
964
+ __props__.__dict__["created_at"] = None
965
+ __props__.__dict__["fax_normalized"] = None
966
+ __props__.__dict__["phone_normalized"] = None
967
+ __props__.__dict__["updated_at"] = None
968
+ super(Contact, __self__).__init__(
969
+ 'dnsimple:index/contact:Contact',
970
+ resource_name,
971
+ __props__,
972
+ opts)
973
+
974
+ @staticmethod
975
+ def get(resource_name: str,
976
+ id: pulumi.Input[str],
977
+ opts: Optional[pulumi.ResourceOptions] = None,
978
+ account_id: Optional[pulumi.Input[int]] = None,
979
+ address1: Optional[pulumi.Input[str]] = None,
980
+ address2: Optional[pulumi.Input[str]] = None,
981
+ city: Optional[pulumi.Input[str]] = None,
982
+ country: Optional[pulumi.Input[str]] = None,
983
+ created_at: Optional[pulumi.Input[str]] = None,
984
+ email: Optional[pulumi.Input[str]] = None,
985
+ fax: Optional[pulumi.Input[str]] = None,
986
+ fax_normalized: Optional[pulumi.Input[str]] = None,
987
+ first_name: Optional[pulumi.Input[str]] = None,
988
+ job_title: Optional[pulumi.Input[str]] = None,
989
+ label: Optional[pulumi.Input[str]] = None,
990
+ last_name: Optional[pulumi.Input[str]] = None,
991
+ organization_name: Optional[pulumi.Input[str]] = None,
992
+ phone: Optional[pulumi.Input[str]] = None,
993
+ phone_normalized: Optional[pulumi.Input[str]] = None,
994
+ postal_code: Optional[pulumi.Input[str]] = None,
995
+ state_province: Optional[pulumi.Input[str]] = None,
996
+ updated_at: Optional[pulumi.Input[str]] = None) -> 'Contact':
997
+ """
998
+ Get an existing Contact resource's state with the given name, id, and optional extra
999
+ properties used to qualify the lookup.
1000
+
1001
+ :param str resource_name: The unique name of the resulting resource.
1002
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
1003
+ :param pulumi.ResourceOptions opts: Options for the resource.
1004
+ :param pulumi.Input[int] account_id: The account ID for the contact.
1005
+ :param pulumi.Input[str] address1: Address line 1
1006
+ :param pulumi.Input[str] address2: Address line 2
1007
+ :param pulumi.Input[str] city: City
1008
+ :param pulumi.Input[str] country: Country
1009
+ :param pulumi.Input[str] created_at: Timestamp representing when this contact was created.
1010
+ :param pulumi.Input[str] email: Email
1011
+
1012
+ # Attributes Reference
1013
+ :param pulumi.Input[str] fax: Fax
1014
+ :param pulumi.Input[str] fax_normalized: The fax number, normalized.
1015
+ :param pulumi.Input[str] first_name: First name
1016
+ :param pulumi.Input[str] job_title: Job title
1017
+ :param pulumi.Input[str] label: Label
1018
+ :param pulumi.Input[str] last_name: Last name
1019
+ :param pulumi.Input[str] organization_name: Organization name
1020
+ :param pulumi.Input[str] phone: Phone
1021
+ :param pulumi.Input[str] phone_normalized: The phone number, normalized.
1022
+ :param pulumi.Input[str] postal_code: Postal code
1023
+ :param pulumi.Input[str] state_province: State province
1024
+ :param pulumi.Input[str] updated_at: Timestamp representing when this contact was updated.
1025
+ """
1026
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
1027
+
1028
+ __props__ = _ContactState.__new__(_ContactState)
1029
+
1030
+ __props__.__dict__["account_id"] = account_id
1031
+ __props__.__dict__["address1"] = address1
1032
+ __props__.__dict__["address2"] = address2
1033
+ __props__.__dict__["city"] = city
1034
+ __props__.__dict__["country"] = country
1035
+ __props__.__dict__["created_at"] = created_at
1036
+ __props__.__dict__["email"] = email
1037
+ __props__.__dict__["fax"] = fax
1038
+ __props__.__dict__["fax_normalized"] = fax_normalized
1039
+ __props__.__dict__["first_name"] = first_name
1040
+ __props__.__dict__["job_title"] = job_title
1041
+ __props__.__dict__["label"] = label
1042
+ __props__.__dict__["last_name"] = last_name
1043
+ __props__.__dict__["organization_name"] = organization_name
1044
+ __props__.__dict__["phone"] = phone
1045
+ __props__.__dict__["phone_normalized"] = phone_normalized
1046
+ __props__.__dict__["postal_code"] = postal_code
1047
+ __props__.__dict__["state_province"] = state_province
1048
+ __props__.__dict__["updated_at"] = updated_at
1049
+ return Contact(resource_name, opts=opts, __props__=__props__)
1050
+
1051
+ @property
1052
+ @pulumi.getter(name="accountId")
1053
+ def account_id(self) -> pulumi.Output[int]:
1054
+ """
1055
+ The account ID for the contact.
1056
+ """
1057
+ return pulumi.get(self, "account_id")
1058
+
1059
+ @property
1060
+ @pulumi.getter
1061
+ def address1(self) -> pulumi.Output[str]:
1062
+ """
1063
+ Address line 1
1064
+ """
1065
+ return pulumi.get(self, "address1")
1066
+
1067
+ @property
1068
+ @pulumi.getter
1069
+ def address2(self) -> pulumi.Output[str]:
1070
+ """
1071
+ Address line 2
1072
+ """
1073
+ return pulumi.get(self, "address2")
1074
+
1075
+ @property
1076
+ @pulumi.getter
1077
+ def city(self) -> pulumi.Output[str]:
1078
+ """
1079
+ City
1080
+ """
1081
+ return pulumi.get(self, "city")
1082
+
1083
+ @property
1084
+ @pulumi.getter
1085
+ def country(self) -> pulumi.Output[str]:
1086
+ """
1087
+ Country
1088
+ """
1089
+ return pulumi.get(self, "country")
1090
+
1091
+ @property
1092
+ @pulumi.getter(name="createdAt")
1093
+ def created_at(self) -> pulumi.Output[str]:
1094
+ """
1095
+ Timestamp representing when this contact was created.
1096
+ """
1097
+ return pulumi.get(self, "created_at")
1098
+
1099
+ @property
1100
+ @pulumi.getter
1101
+ def email(self) -> pulumi.Output[str]:
1102
+ """
1103
+ Email
1104
+
1105
+ # Attributes Reference
1106
+ """
1107
+ return pulumi.get(self, "email")
1108
+
1109
+ @property
1110
+ @pulumi.getter
1111
+ def fax(self) -> pulumi.Output[str]:
1112
+ """
1113
+ Fax
1114
+ """
1115
+ return pulumi.get(self, "fax")
1116
+
1117
+ @property
1118
+ @pulumi.getter(name="faxNormalized")
1119
+ def fax_normalized(self) -> pulumi.Output[str]:
1120
+ """
1121
+ The fax number, normalized.
1122
+ """
1123
+ return pulumi.get(self, "fax_normalized")
1124
+
1125
+ @property
1126
+ @pulumi.getter(name="firstName")
1127
+ def first_name(self) -> pulumi.Output[str]:
1128
+ """
1129
+ First name
1130
+ """
1131
+ return pulumi.get(self, "first_name")
1132
+
1133
+ @property
1134
+ @pulumi.getter(name="jobTitle")
1135
+ def job_title(self) -> pulumi.Output[str]:
1136
+ """
1137
+ Job title
1138
+ """
1139
+ return pulumi.get(self, "job_title")
1140
+
1141
+ @property
1142
+ @pulumi.getter
1143
+ def label(self) -> pulumi.Output[str]:
1144
+ """
1145
+ Label
1146
+ """
1147
+ return pulumi.get(self, "label")
1148
+
1149
+ @property
1150
+ @pulumi.getter(name="lastName")
1151
+ def last_name(self) -> pulumi.Output[str]:
1152
+ """
1153
+ Last name
1154
+ """
1155
+ return pulumi.get(self, "last_name")
1156
+
1157
+ @property
1158
+ @pulumi.getter(name="organizationName")
1159
+ def organization_name(self) -> pulumi.Output[str]:
1160
+ """
1161
+ Organization name
1162
+ """
1163
+ return pulumi.get(self, "organization_name")
1164
+
1165
+ @property
1166
+ @pulumi.getter
1167
+ def phone(self) -> pulumi.Output[str]:
1168
+ """
1169
+ Phone
1170
+ """
1171
+ return pulumi.get(self, "phone")
1172
+
1173
+ @property
1174
+ @pulumi.getter(name="phoneNormalized")
1175
+ def phone_normalized(self) -> pulumi.Output[str]:
1176
+ """
1177
+ The phone number, normalized.
1178
+ """
1179
+ return pulumi.get(self, "phone_normalized")
1180
+
1181
+ @property
1182
+ @pulumi.getter(name="postalCode")
1183
+ def postal_code(self) -> pulumi.Output[str]:
1184
+ """
1185
+ Postal code
1186
+ """
1187
+ return pulumi.get(self, "postal_code")
1188
+
1189
+ @property
1190
+ @pulumi.getter(name="stateProvince")
1191
+ def state_province(self) -> pulumi.Output[str]:
1192
+ """
1193
+ State province
1194
+ """
1195
+ return pulumi.get(self, "state_province")
1196
+
1197
+ @property
1198
+ @pulumi.getter(name="updatedAt")
1199
+ def updated_at(self) -> pulumi.Output[str]:
1200
+ """
1201
+ Timestamp representing when this contact was updated.
1202
+ """
1203
+ return pulumi.get(self, "updated_at")
1204
+