pulumi-dnsimple 3.5.0a1710156168__py3-none-any.whl → 4.3.0a1736849266__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,601 @@
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__ = ['DsRecordArgs', 'DsRecord']
18
+
19
+ @pulumi.input_type
20
+ class DsRecordArgs:
21
+ def __init__(__self__, *,
22
+ algorithm: pulumi.Input[str],
23
+ domain: pulumi.Input[str],
24
+ digest: Optional[pulumi.Input[str]] = None,
25
+ digest_type: Optional[pulumi.Input[str]] = None,
26
+ keytag: Optional[pulumi.Input[str]] = None,
27
+ public_key: Optional[pulumi.Input[str]] = None):
28
+ """
29
+ The set of arguments for constructing a DsRecord resource.
30
+ :param pulumi.Input[str] algorithm: DNSSEC algorithm number as a string.
31
+ :param pulumi.Input[str] domain: The domain name or numeric ID to create the delegation signer record for.
32
+ :param pulumi.Input[str] digest: The hexidecimal representation of the digest of the corresponding DNSKEY record.
33
+ :param pulumi.Input[str] digest_type: DNSSEC digest type number as a string.
34
+ :param pulumi.Input[str] keytag: A keytag that references the corresponding DNSKEY record.
35
+ :param pulumi.Input[str] public_key: A public key that references the corresponding DNSKEY record.
36
+
37
+ # Attributes Reference
38
+ """
39
+ pulumi.set(__self__, "algorithm", algorithm)
40
+ pulumi.set(__self__, "domain", domain)
41
+ if digest is not None:
42
+ pulumi.set(__self__, "digest", digest)
43
+ if digest_type is not None:
44
+ pulumi.set(__self__, "digest_type", digest_type)
45
+ if keytag is not None:
46
+ pulumi.set(__self__, "keytag", keytag)
47
+ if public_key is not None:
48
+ pulumi.set(__self__, "public_key", public_key)
49
+
50
+ @property
51
+ @pulumi.getter
52
+ def algorithm(self) -> pulumi.Input[str]:
53
+ """
54
+ DNSSEC algorithm number as a string.
55
+ """
56
+ return pulumi.get(self, "algorithm")
57
+
58
+ @algorithm.setter
59
+ def algorithm(self, value: pulumi.Input[str]):
60
+ pulumi.set(self, "algorithm", value)
61
+
62
+ @property
63
+ @pulumi.getter
64
+ def domain(self) -> pulumi.Input[str]:
65
+ """
66
+ The domain name or numeric ID to create the delegation signer record for.
67
+ """
68
+ return pulumi.get(self, "domain")
69
+
70
+ @domain.setter
71
+ def domain(self, value: pulumi.Input[str]):
72
+ pulumi.set(self, "domain", value)
73
+
74
+ @property
75
+ @pulumi.getter
76
+ def digest(self) -> Optional[pulumi.Input[str]]:
77
+ """
78
+ The hexidecimal representation of the digest of the corresponding DNSKEY record.
79
+ """
80
+ return pulumi.get(self, "digest")
81
+
82
+ @digest.setter
83
+ def digest(self, value: Optional[pulumi.Input[str]]):
84
+ pulumi.set(self, "digest", value)
85
+
86
+ @property
87
+ @pulumi.getter(name="digestType")
88
+ def digest_type(self) -> Optional[pulumi.Input[str]]:
89
+ """
90
+ DNSSEC digest type number as a string.
91
+ """
92
+ return pulumi.get(self, "digest_type")
93
+
94
+ @digest_type.setter
95
+ def digest_type(self, value: Optional[pulumi.Input[str]]):
96
+ pulumi.set(self, "digest_type", value)
97
+
98
+ @property
99
+ @pulumi.getter
100
+ def keytag(self) -> Optional[pulumi.Input[str]]:
101
+ """
102
+ A keytag that references the corresponding DNSKEY record.
103
+ """
104
+ return pulumi.get(self, "keytag")
105
+
106
+ @keytag.setter
107
+ def keytag(self, value: Optional[pulumi.Input[str]]):
108
+ pulumi.set(self, "keytag", value)
109
+
110
+ @property
111
+ @pulumi.getter(name="publicKey")
112
+ def public_key(self) -> Optional[pulumi.Input[str]]:
113
+ """
114
+ A public key that references the corresponding DNSKEY record.
115
+
116
+ # Attributes Reference
117
+ """
118
+ return pulumi.get(self, "public_key")
119
+
120
+ @public_key.setter
121
+ def public_key(self, value: Optional[pulumi.Input[str]]):
122
+ pulumi.set(self, "public_key", value)
123
+
124
+
125
+ @pulumi.input_type
126
+ class _DsRecordState:
127
+ def __init__(__self__, *,
128
+ algorithm: Optional[pulumi.Input[str]] = None,
129
+ created_at: Optional[pulumi.Input[str]] = None,
130
+ digest: Optional[pulumi.Input[str]] = None,
131
+ digest_type: Optional[pulumi.Input[str]] = None,
132
+ domain: Optional[pulumi.Input[str]] = None,
133
+ keytag: Optional[pulumi.Input[str]] = None,
134
+ public_key: Optional[pulumi.Input[str]] = None,
135
+ updated_at: Optional[pulumi.Input[str]] = None):
136
+ """
137
+ Input properties used for looking up and filtering DsRecord resources.
138
+ :param pulumi.Input[str] algorithm: DNSSEC algorithm number as a string.
139
+ :param pulumi.Input[str] created_at: The time the DS record was created at.
140
+ :param pulumi.Input[str] digest: The hexidecimal representation of the digest of the corresponding DNSKEY record.
141
+ :param pulumi.Input[str] digest_type: DNSSEC digest type number as a string.
142
+ :param pulumi.Input[str] domain: The domain name or numeric ID to create the delegation signer record for.
143
+ :param pulumi.Input[str] keytag: A keytag that references the corresponding DNSKEY record.
144
+ :param pulumi.Input[str] public_key: A public key that references the corresponding DNSKEY record.
145
+
146
+ # Attributes Reference
147
+ :param pulumi.Input[str] updated_at: The time the DS record was last updated at.
148
+ """
149
+ if algorithm is not None:
150
+ pulumi.set(__self__, "algorithm", algorithm)
151
+ if created_at is not None:
152
+ pulumi.set(__self__, "created_at", created_at)
153
+ if digest is not None:
154
+ pulumi.set(__self__, "digest", digest)
155
+ if digest_type is not None:
156
+ pulumi.set(__self__, "digest_type", digest_type)
157
+ if domain is not None:
158
+ pulumi.set(__self__, "domain", domain)
159
+ if keytag is not None:
160
+ pulumi.set(__self__, "keytag", keytag)
161
+ if public_key is not None:
162
+ pulumi.set(__self__, "public_key", public_key)
163
+ if updated_at is not None:
164
+ pulumi.set(__self__, "updated_at", updated_at)
165
+
166
+ @property
167
+ @pulumi.getter
168
+ def algorithm(self) -> Optional[pulumi.Input[str]]:
169
+ """
170
+ DNSSEC algorithm number as a string.
171
+ """
172
+ return pulumi.get(self, "algorithm")
173
+
174
+ @algorithm.setter
175
+ def algorithm(self, value: Optional[pulumi.Input[str]]):
176
+ pulumi.set(self, "algorithm", value)
177
+
178
+ @property
179
+ @pulumi.getter(name="createdAt")
180
+ def created_at(self) -> Optional[pulumi.Input[str]]:
181
+ """
182
+ The time the DS record was created at.
183
+ """
184
+ return pulumi.get(self, "created_at")
185
+
186
+ @created_at.setter
187
+ def created_at(self, value: Optional[pulumi.Input[str]]):
188
+ pulumi.set(self, "created_at", value)
189
+
190
+ @property
191
+ @pulumi.getter
192
+ def digest(self) -> Optional[pulumi.Input[str]]:
193
+ """
194
+ The hexidecimal representation of the digest of the corresponding DNSKEY record.
195
+ """
196
+ return pulumi.get(self, "digest")
197
+
198
+ @digest.setter
199
+ def digest(self, value: Optional[pulumi.Input[str]]):
200
+ pulumi.set(self, "digest", value)
201
+
202
+ @property
203
+ @pulumi.getter(name="digestType")
204
+ def digest_type(self) -> Optional[pulumi.Input[str]]:
205
+ """
206
+ DNSSEC digest type number as a string.
207
+ """
208
+ return pulumi.get(self, "digest_type")
209
+
210
+ @digest_type.setter
211
+ def digest_type(self, value: Optional[pulumi.Input[str]]):
212
+ pulumi.set(self, "digest_type", value)
213
+
214
+ @property
215
+ @pulumi.getter
216
+ def domain(self) -> Optional[pulumi.Input[str]]:
217
+ """
218
+ The domain name or numeric ID to create the delegation signer record for.
219
+ """
220
+ return pulumi.get(self, "domain")
221
+
222
+ @domain.setter
223
+ def domain(self, value: Optional[pulumi.Input[str]]):
224
+ pulumi.set(self, "domain", value)
225
+
226
+ @property
227
+ @pulumi.getter
228
+ def keytag(self) -> Optional[pulumi.Input[str]]:
229
+ """
230
+ A keytag that references the corresponding DNSKEY record.
231
+ """
232
+ return pulumi.get(self, "keytag")
233
+
234
+ @keytag.setter
235
+ def keytag(self, value: Optional[pulumi.Input[str]]):
236
+ pulumi.set(self, "keytag", value)
237
+
238
+ @property
239
+ @pulumi.getter(name="publicKey")
240
+ def public_key(self) -> Optional[pulumi.Input[str]]:
241
+ """
242
+ A public key that references the corresponding DNSKEY record.
243
+
244
+ # Attributes Reference
245
+ """
246
+ return pulumi.get(self, "public_key")
247
+
248
+ @public_key.setter
249
+ def public_key(self, value: Optional[pulumi.Input[str]]):
250
+ pulumi.set(self, "public_key", value)
251
+
252
+ @property
253
+ @pulumi.getter(name="updatedAt")
254
+ def updated_at(self) -> Optional[pulumi.Input[str]]:
255
+ """
256
+ The time the DS record was last updated at.
257
+ """
258
+ return pulumi.get(self, "updated_at")
259
+
260
+ @updated_at.setter
261
+ def updated_at(self, value: Optional[pulumi.Input[str]]):
262
+ pulumi.set(self, "updated_at", value)
263
+
264
+
265
+ class DsRecord(pulumi.CustomResource):
266
+ @overload
267
+ def __init__(__self__,
268
+ resource_name: str,
269
+ opts: Optional[pulumi.ResourceOptions] = None,
270
+ algorithm: Optional[pulumi.Input[str]] = None,
271
+ digest: Optional[pulumi.Input[str]] = None,
272
+ digest_type: Optional[pulumi.Input[str]] = None,
273
+ domain: Optional[pulumi.Input[str]] = None,
274
+ keytag: Optional[pulumi.Input[str]] = None,
275
+ public_key: Optional[pulumi.Input[str]] = None,
276
+ __props__=None):
277
+ """
278
+ Provides a DNSimple domain delegation signer record resource.
279
+
280
+ ## Example Usage
281
+
282
+ ```python
283
+ import pulumi
284
+ import pulumi_dnsimple as dnsimple
285
+
286
+ foobar = dnsimple.DsRecord("foobar",
287
+ domain=dnsimple["domain"],
288
+ algorithm="8",
289
+ digest="6CEEA0117A02480216EBF745A7B690F938860074E4AD11AF2AC573007205682B",
290
+ digest_type="2",
291
+ key_tag="12345")
292
+ ```
293
+
294
+ ## Import
295
+
296
+ DNSimple DS record resources can be imported using their domain ID and numeric record ID.
297
+
298
+ bash
299
+
300
+ ```sh
301
+ $ pulumi import dnsimple:index/dsRecord:DsRecord resource_name example.com_5678
302
+ ```
303
+
304
+ The record ID can be found within [DNSimple DNSSEC API](https://developer.dnsimple.com/v2/domains/dnssec/#listDomainDelegationSignerRecords). Check out [Authentication](https://developer.dnsimple.com/v2/#authentication) in API Overview for available options.
305
+
306
+ bash
307
+
308
+ curl -u 'EMAIL:PASSWORD' https://api.dnsimple.com/v2/1010/domains/example.com/ds_records | jq
309
+
310
+ {
311
+
312
+ "data": [
313
+
314
+ {
315
+
316
+ "id": 24,
317
+
318
+ "domain_id": 1010,
319
+
320
+ "algorithm": "8",
321
+
322
+ "digest": "C1F6E04A5A61FBF65BF9DC8294C363CF11C89E802D926BDAB79C55D27BEFA94F",
323
+
324
+ "digest_type": "2",
325
+
326
+ "keytag": "44620",
327
+
328
+ "public_key": null,
329
+
330
+ "created_at": "2017-03-03T13:49:58Z",
331
+
332
+ "updated_at": "2017-03-03T13:49:58Z"
333
+
334
+ }
335
+
336
+ ],
337
+
338
+ "pagination": {
339
+
340
+ "current_page": 1,
341
+
342
+ "per_page": 30,
343
+
344
+ "total_entries": 1,
345
+
346
+ "total_pages": 1
347
+
348
+ }
349
+
350
+ }
351
+
352
+ :param str resource_name: The name of the resource.
353
+ :param pulumi.ResourceOptions opts: Options for the resource.
354
+ :param pulumi.Input[str] algorithm: DNSSEC algorithm number as a string.
355
+ :param pulumi.Input[str] digest: The hexidecimal representation of the digest of the corresponding DNSKEY record.
356
+ :param pulumi.Input[str] digest_type: DNSSEC digest type number as a string.
357
+ :param pulumi.Input[str] domain: The domain name or numeric ID to create the delegation signer record for.
358
+ :param pulumi.Input[str] keytag: A keytag that references the corresponding DNSKEY record.
359
+ :param pulumi.Input[str] public_key: A public key that references the corresponding DNSKEY record.
360
+
361
+ # Attributes Reference
362
+ """
363
+ ...
364
+ @overload
365
+ def __init__(__self__,
366
+ resource_name: str,
367
+ args: DsRecordArgs,
368
+ opts: Optional[pulumi.ResourceOptions] = None):
369
+ """
370
+ Provides a DNSimple domain delegation signer record resource.
371
+
372
+ ## Example Usage
373
+
374
+ ```python
375
+ import pulumi
376
+ import pulumi_dnsimple as dnsimple
377
+
378
+ foobar = dnsimple.DsRecord("foobar",
379
+ domain=dnsimple["domain"],
380
+ algorithm="8",
381
+ digest="6CEEA0117A02480216EBF745A7B690F938860074E4AD11AF2AC573007205682B",
382
+ digest_type="2",
383
+ key_tag="12345")
384
+ ```
385
+
386
+ ## Import
387
+
388
+ DNSimple DS record resources can be imported using their domain ID and numeric record ID.
389
+
390
+ bash
391
+
392
+ ```sh
393
+ $ pulumi import dnsimple:index/dsRecord:DsRecord resource_name example.com_5678
394
+ ```
395
+
396
+ The record ID can be found within [DNSimple DNSSEC API](https://developer.dnsimple.com/v2/domains/dnssec/#listDomainDelegationSignerRecords). Check out [Authentication](https://developer.dnsimple.com/v2/#authentication) in API Overview for available options.
397
+
398
+ bash
399
+
400
+ curl -u 'EMAIL:PASSWORD' https://api.dnsimple.com/v2/1010/domains/example.com/ds_records | jq
401
+
402
+ {
403
+
404
+ "data": [
405
+
406
+ {
407
+
408
+ "id": 24,
409
+
410
+ "domain_id": 1010,
411
+
412
+ "algorithm": "8",
413
+
414
+ "digest": "C1F6E04A5A61FBF65BF9DC8294C363CF11C89E802D926BDAB79C55D27BEFA94F",
415
+
416
+ "digest_type": "2",
417
+
418
+ "keytag": "44620",
419
+
420
+ "public_key": null,
421
+
422
+ "created_at": "2017-03-03T13:49:58Z",
423
+
424
+ "updated_at": "2017-03-03T13:49:58Z"
425
+
426
+ }
427
+
428
+ ],
429
+
430
+ "pagination": {
431
+
432
+ "current_page": 1,
433
+
434
+ "per_page": 30,
435
+
436
+ "total_entries": 1,
437
+
438
+ "total_pages": 1
439
+
440
+ }
441
+
442
+ }
443
+
444
+ :param str resource_name: The name of the resource.
445
+ :param DsRecordArgs args: The arguments to use to populate this resource's properties.
446
+ :param pulumi.ResourceOptions opts: Options for the resource.
447
+ """
448
+ ...
449
+ def __init__(__self__, resource_name: str, *args, **kwargs):
450
+ resource_args, opts = _utilities.get_resource_args_opts(DsRecordArgs, pulumi.ResourceOptions, *args, **kwargs)
451
+ if resource_args is not None:
452
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
453
+ else:
454
+ __self__._internal_init(resource_name, *args, **kwargs)
455
+
456
+ def _internal_init(__self__,
457
+ resource_name: str,
458
+ opts: Optional[pulumi.ResourceOptions] = None,
459
+ algorithm: Optional[pulumi.Input[str]] = None,
460
+ digest: Optional[pulumi.Input[str]] = None,
461
+ digest_type: Optional[pulumi.Input[str]] = None,
462
+ domain: Optional[pulumi.Input[str]] = None,
463
+ keytag: Optional[pulumi.Input[str]] = None,
464
+ public_key: Optional[pulumi.Input[str]] = None,
465
+ __props__=None):
466
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
467
+ if not isinstance(opts, pulumi.ResourceOptions):
468
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
469
+ if opts.id is None:
470
+ if __props__ is not None:
471
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
472
+ __props__ = DsRecordArgs.__new__(DsRecordArgs)
473
+
474
+ if algorithm is None and not opts.urn:
475
+ raise TypeError("Missing required property 'algorithm'")
476
+ __props__.__dict__["algorithm"] = algorithm
477
+ __props__.__dict__["digest"] = digest
478
+ __props__.__dict__["digest_type"] = digest_type
479
+ if domain is None and not opts.urn:
480
+ raise TypeError("Missing required property 'domain'")
481
+ __props__.__dict__["domain"] = domain
482
+ __props__.__dict__["keytag"] = keytag
483
+ __props__.__dict__["public_key"] = public_key
484
+ __props__.__dict__["created_at"] = None
485
+ __props__.__dict__["updated_at"] = None
486
+ super(DsRecord, __self__).__init__(
487
+ 'dnsimple:index/dsRecord:DsRecord',
488
+ resource_name,
489
+ __props__,
490
+ opts)
491
+
492
+ @staticmethod
493
+ def get(resource_name: str,
494
+ id: pulumi.Input[str],
495
+ opts: Optional[pulumi.ResourceOptions] = None,
496
+ algorithm: Optional[pulumi.Input[str]] = None,
497
+ created_at: Optional[pulumi.Input[str]] = None,
498
+ digest: Optional[pulumi.Input[str]] = None,
499
+ digest_type: Optional[pulumi.Input[str]] = None,
500
+ domain: Optional[pulumi.Input[str]] = None,
501
+ keytag: Optional[pulumi.Input[str]] = None,
502
+ public_key: Optional[pulumi.Input[str]] = None,
503
+ updated_at: Optional[pulumi.Input[str]] = None) -> 'DsRecord':
504
+ """
505
+ Get an existing DsRecord resource's state with the given name, id, and optional extra
506
+ properties used to qualify the lookup.
507
+
508
+ :param str resource_name: The unique name of the resulting resource.
509
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
510
+ :param pulumi.ResourceOptions opts: Options for the resource.
511
+ :param pulumi.Input[str] algorithm: DNSSEC algorithm number as a string.
512
+ :param pulumi.Input[str] created_at: The time the DS record was created at.
513
+ :param pulumi.Input[str] digest: The hexidecimal representation of the digest of the corresponding DNSKEY record.
514
+ :param pulumi.Input[str] digest_type: DNSSEC digest type number as a string.
515
+ :param pulumi.Input[str] domain: The domain name or numeric ID to create the delegation signer record for.
516
+ :param pulumi.Input[str] keytag: A keytag that references the corresponding DNSKEY record.
517
+ :param pulumi.Input[str] public_key: A public key that references the corresponding DNSKEY record.
518
+
519
+ # Attributes Reference
520
+ :param pulumi.Input[str] updated_at: The time the DS record was last updated at.
521
+ """
522
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
523
+
524
+ __props__ = _DsRecordState.__new__(_DsRecordState)
525
+
526
+ __props__.__dict__["algorithm"] = algorithm
527
+ __props__.__dict__["created_at"] = created_at
528
+ __props__.__dict__["digest"] = digest
529
+ __props__.__dict__["digest_type"] = digest_type
530
+ __props__.__dict__["domain"] = domain
531
+ __props__.__dict__["keytag"] = keytag
532
+ __props__.__dict__["public_key"] = public_key
533
+ __props__.__dict__["updated_at"] = updated_at
534
+ return DsRecord(resource_name, opts=opts, __props__=__props__)
535
+
536
+ @property
537
+ @pulumi.getter
538
+ def algorithm(self) -> pulumi.Output[str]:
539
+ """
540
+ DNSSEC algorithm number as a string.
541
+ """
542
+ return pulumi.get(self, "algorithm")
543
+
544
+ @property
545
+ @pulumi.getter(name="createdAt")
546
+ def created_at(self) -> pulumi.Output[str]:
547
+ """
548
+ The time the DS record was created at.
549
+ """
550
+ return pulumi.get(self, "created_at")
551
+
552
+ @property
553
+ @pulumi.getter
554
+ def digest(self) -> pulumi.Output[Optional[str]]:
555
+ """
556
+ The hexidecimal representation of the digest of the corresponding DNSKEY record.
557
+ """
558
+ return pulumi.get(self, "digest")
559
+
560
+ @property
561
+ @pulumi.getter(name="digestType")
562
+ def digest_type(self) -> pulumi.Output[Optional[str]]:
563
+ """
564
+ DNSSEC digest type number as a string.
565
+ """
566
+ return pulumi.get(self, "digest_type")
567
+
568
+ @property
569
+ @pulumi.getter
570
+ def domain(self) -> pulumi.Output[str]:
571
+ """
572
+ The domain name or numeric ID to create the delegation signer record for.
573
+ """
574
+ return pulumi.get(self, "domain")
575
+
576
+ @property
577
+ @pulumi.getter
578
+ def keytag(self) -> pulumi.Output[Optional[str]]:
579
+ """
580
+ A keytag that references the corresponding DNSKEY record.
581
+ """
582
+ return pulumi.get(self, "keytag")
583
+
584
+ @property
585
+ @pulumi.getter(name="publicKey")
586
+ def public_key(self) -> pulumi.Output[Optional[str]]:
587
+ """
588
+ A public key that references the corresponding DNSKEY record.
589
+
590
+ # Attributes Reference
591
+ """
592
+ return pulumi.get(self, "public_key")
593
+
594
+ @property
595
+ @pulumi.getter(name="updatedAt")
596
+ def updated_at(self) -> pulumi.Output[str]:
597
+ """
598
+ The time the DS record was last updated at.
599
+ """
600
+ return pulumi.get(self, "updated_at")
601
+