pulumi-ns1 3.2.0a1710245297__py3-none-any.whl → 3.6.0a1736849591__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.
pulumi_ns1/record.py CHANGED
@@ -4,9 +4,14 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
10
  from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
10
15
  from . import _utilities
11
16
  from . import outputs
12
17
  from ._inputs import *
@@ -23,7 +28,8 @@ class RecordArgs:
23
28
  blocked_tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
24
29
  filters: Optional[pulumi.Input[Sequence[pulumi.Input['RecordFilterArgs']]]] = None,
25
30
  link: Optional[pulumi.Input[str]] = None,
26
- meta: Optional[pulumi.Input[Mapping[str, Any]]] = None,
31
+ meta: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
32
+ override_address_records: Optional[pulumi.Input[bool]] = None,
27
33
  override_ttl: Optional[pulumi.Input[bool]] = None,
28
34
  regions: Optional[pulumi.Input[Sequence[pulumi.Input['RecordRegionArgs']]]] = None,
29
35
  short_answers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
@@ -47,6 +53,7 @@ class RecordArgs:
47
53
  just groupings based on metadata, and are called "Answer Groups" in the NS1 UI,
48
54
  but remain `regions` here for legacy reasons. Regions are
49
55
  documented below. Please note the ordering requirement!
56
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: map of tags in the form of `"key" = "value"` where both key and value are strings
50
57
  :param pulumi.Input[int] ttl: The records' time to live (in seconds).
51
58
  :param pulumi.Input[bool] use_client_subnet: Whether to use EDNS client subnet data when
52
59
  available(in filter chain).
@@ -66,6 +73,8 @@ class RecordArgs:
66
73
  pulumi.set(__self__, "link", link)
67
74
  if meta is not None:
68
75
  pulumi.set(__self__, "meta", meta)
76
+ if override_address_records is not None:
77
+ pulumi.set(__self__, "override_address_records", override_address_records)
69
78
  if override_ttl is not None:
70
79
  pulumi.set(__self__, "override_ttl", override_ttl)
71
80
  if regions is not None:
@@ -170,13 +179,22 @@ class RecordArgs:
170
179
 
171
180
  @property
172
181
  @pulumi.getter
173
- def meta(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
182
+ def meta(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
174
183
  return pulumi.get(self, "meta")
175
184
 
176
185
  @meta.setter
177
- def meta(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
186
+ def meta(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
178
187
  pulumi.set(self, "meta", value)
179
188
 
189
+ @property
190
+ @pulumi.getter(name="overrideAddressRecords")
191
+ def override_address_records(self) -> Optional[pulumi.Input[bool]]:
192
+ return pulumi.get(self, "override_address_records")
193
+
194
+ @override_address_records.setter
195
+ def override_address_records(self, value: Optional[pulumi.Input[bool]]):
196
+ pulumi.set(self, "override_address_records", value)
197
+
180
198
  @property
181
199
  @pulumi.getter(name="overrideTtl")
182
200
  def override_ttl(self) -> Optional[pulumi.Input[bool]]:
@@ -203,10 +221,8 @@ class RecordArgs:
203
221
 
204
222
  @property
205
223
  @pulumi.getter(name="shortAnswers")
224
+ @_utilities.deprecated("""short_answers will be deprecated in a future release. It is suggested to migrate to a regular \"answers\" block.""")
206
225
  def short_answers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
207
- warnings.warn("""short_answers will be deprecated in a future release. It is suggested to migrate to a regular \"answers\" block.""", DeprecationWarning)
208
- pulumi.log.warn("""short_answers is deprecated: short_answers will be deprecated in a future release. It is suggested to migrate to a regular \"answers\" block.""")
209
-
210
226
  return pulumi.get(self, "short_answers")
211
227
 
212
228
  @short_answers.setter
@@ -216,6 +232,9 @@ class RecordArgs:
216
232
  @property
217
233
  @pulumi.getter
218
234
  def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
235
+ """
236
+ map of tags in the form of `"key" = "value"` where both key and value are strings
237
+ """
219
238
  return pulumi.get(self, "tags")
220
239
 
221
240
  @tags.setter
@@ -258,7 +277,8 @@ class _RecordState:
258
277
  domain: Optional[pulumi.Input[str]] = None,
259
278
  filters: Optional[pulumi.Input[Sequence[pulumi.Input['RecordFilterArgs']]]] = None,
260
279
  link: Optional[pulumi.Input[str]] = None,
261
- meta: Optional[pulumi.Input[Mapping[str, Any]]] = None,
280
+ meta: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
281
+ override_address_records: Optional[pulumi.Input[bool]] = None,
262
282
  override_ttl: Optional[pulumi.Input[bool]] = None,
263
283
  regions: Optional[pulumi.Input[Sequence[pulumi.Input['RecordRegionArgs']]]] = None,
264
284
  short_answers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
@@ -281,6 +301,7 @@ class _RecordState:
281
301
  just groupings based on metadata, and are called "Answer Groups" in the NS1 UI,
282
302
  but remain `regions` here for legacy reasons. Regions are
283
303
  documented below. Please note the ordering requirement!
304
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: map of tags in the form of `"key" = "value"` where both key and value are strings
284
305
  :param pulumi.Input[int] ttl: The records' time to live (in seconds).
285
306
  :param pulumi.Input[str] type: The records' RR type.
286
307
  :param pulumi.Input[bool] use_client_subnet: Whether to use EDNS client subnet data when
@@ -302,6 +323,8 @@ class _RecordState:
302
323
  pulumi.set(__self__, "link", link)
303
324
  if meta is not None:
304
325
  pulumi.set(__self__, "meta", meta)
326
+ if override_address_records is not None:
327
+ pulumi.set(__self__, "override_address_records", override_address_records)
305
328
  if override_ttl is not None:
306
329
  pulumi.set(__self__, "override_ttl", override_ttl)
307
330
  if regions is not None:
@@ -385,13 +408,22 @@ class _RecordState:
385
408
 
386
409
  @property
387
410
  @pulumi.getter
388
- def meta(self) -> Optional[pulumi.Input[Mapping[str, Any]]]:
411
+ def meta(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
389
412
  return pulumi.get(self, "meta")
390
413
 
391
414
  @meta.setter
392
- def meta(self, value: Optional[pulumi.Input[Mapping[str, Any]]]):
415
+ def meta(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
393
416
  pulumi.set(self, "meta", value)
394
417
 
418
+ @property
419
+ @pulumi.getter(name="overrideAddressRecords")
420
+ def override_address_records(self) -> Optional[pulumi.Input[bool]]:
421
+ return pulumi.get(self, "override_address_records")
422
+
423
+ @override_address_records.setter
424
+ def override_address_records(self, value: Optional[pulumi.Input[bool]]):
425
+ pulumi.set(self, "override_address_records", value)
426
+
395
427
  @property
396
428
  @pulumi.getter(name="overrideTtl")
397
429
  def override_ttl(self) -> Optional[pulumi.Input[bool]]:
@@ -418,10 +450,8 @@ class _RecordState:
418
450
 
419
451
  @property
420
452
  @pulumi.getter(name="shortAnswers")
453
+ @_utilities.deprecated("""short_answers will be deprecated in a future release. It is suggested to migrate to a regular \"answers\" block.""")
421
454
  def short_answers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
422
- warnings.warn("""short_answers will be deprecated in a future release. It is suggested to migrate to a regular \"answers\" block.""", DeprecationWarning)
423
- pulumi.log.warn("""short_answers is deprecated: short_answers will be deprecated in a future release. It is suggested to migrate to a regular \"answers\" block.""")
424
-
425
455
  return pulumi.get(self, "short_answers")
426
456
 
427
457
  @short_answers.setter
@@ -431,6 +461,9 @@ class _RecordState:
431
461
  @property
432
462
  @pulumi.getter
433
463
  def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
464
+ """
465
+ map of tags in the form of `"key" = "value"` where both key and value are strings
466
+ """
434
467
  return pulumi.get(self, "tags")
435
468
 
436
469
  @tags.setter
@@ -495,14 +528,15 @@ class Record(pulumi.CustomResource):
495
528
  def __init__(__self__,
496
529
  resource_name: str,
497
530
  opts: Optional[pulumi.ResourceOptions] = None,
498
- answers: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RecordAnswerArgs']]]]] = None,
531
+ answers: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RecordAnswerArgs', 'RecordAnswerArgsDict']]]]] = None,
499
532
  blocked_tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
500
533
  domain: Optional[pulumi.Input[str]] = None,
501
- filters: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RecordFilterArgs']]]]] = None,
534
+ filters: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RecordFilterArgs', 'RecordFilterArgsDict']]]]] = None,
502
535
  link: Optional[pulumi.Input[str]] = None,
503
- meta: Optional[pulumi.Input[Mapping[str, Any]]] = None,
536
+ meta: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
537
+ override_address_records: Optional[pulumi.Input[bool]] = None,
504
538
  override_ttl: Optional[pulumi.Input[bool]] = None,
505
- regions: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RecordRegionArgs']]]]] = None,
539
+ regions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RecordRegionArgs', 'RecordRegionArgsDict']]]]] = None,
506
540
  short_answers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
507
541
  tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
508
542
  ttl: Optional[pulumi.Input[int]] = None,
@@ -513,6 +547,120 @@ class Record(pulumi.CustomResource):
513
547
  """
514
548
  Provides a NS1 Record resource. This can be used to create, modify, and delete records.
515
549
 
550
+ ## Example Usage
551
+
552
+ ```python
553
+ import pulumi
554
+ import json
555
+ import pulumi_external as external
556
+ import pulumi_ns1 as ns1
557
+ import pulumi_std as std
558
+
559
+ example = ns1.Zone("example", zone="terraform.example.io")
560
+ ns1 = ns1.DataSource("ns1",
561
+ name="ns1_source",
562
+ sourcetype="nsone_v1")
563
+ foo = ns1.DataFeed("foo",
564
+ name="foo_feed",
565
+ source_id=ns1.id,
566
+ config={
567
+ "label": "foo",
568
+ })
569
+ bar = ns1.DataFeed("bar",
570
+ name="bar_feed",
571
+ source_id=ns1.id,
572
+ config={
573
+ "label": "bar",
574
+ })
575
+ www = ns1.Record("www",
576
+ zone=tld["zone"],
577
+ domain=f"www.{tld['zone']}",
578
+ type="CNAME",
579
+ ttl=60,
580
+ meta={
581
+ "up": "true",
582
+ },
583
+ regions=[
584
+ {
585
+ "name": "east",
586
+ "meta": {
587
+ "georegion": "US-EAST",
588
+ },
589
+ },
590
+ {
591
+ "name": "usa",
592
+ "meta": {
593
+ "country": "US",
594
+ },
595
+ },
596
+ ],
597
+ answers=[
598
+ {
599
+ "answer": f"sub1.{tld['zone']}",
600
+ "region": "east",
601
+ "meta": {
602
+ "up": foo.id.apply(lambda id: f"{{\\"feed\\":\\"{id}\\"}}"),
603
+ },
604
+ },
605
+ {
606
+ "answer": f"sub2.{tld['zone']}",
607
+ "meta": {
608
+ "up": bar.id.apply(lambda id: f"{{\\"feed\\":\\"{id}\\"}}"),
609
+ "connections": "3",
610
+ },
611
+ },
612
+ {
613
+ "answer": f"sub3.{tld['zone']}",
614
+ "meta": {
615
+ "pulsar": json.dumps([{
616
+ "job_id": "abcdef",
617
+ "bias": "*0.55",
618
+ "a5m_cutoff": 0.9,
619
+ }]),
620
+ "subdivisions": json.dumps({
621
+ "BR": [
622
+ "SP",
623
+ "SC",
624
+ ],
625
+ "DZ": [
626
+ "01",
627
+ "02",
628
+ "03",
629
+ ],
630
+ }),
631
+ },
632
+ },
633
+ ],
634
+ filters=[{
635
+ "filter": "select_first_n",
636
+ "config": {
637
+ "N": "1",
638
+ },
639
+ }])
640
+ # Some other non-NS1 provider that returns a zone with a trailing dot and a domain with a leading dot.
641
+ baz = external.index.Source("baz",
642
+ zone=terraform.example.io.,
643
+ domain=.www.terraform.example.io)
644
+ # Basic record showing how to clean a zone or domain field that comes from
645
+ # another non-NS1 resource. DNS names often end in '.' characters to signify
646
+ # the root of the DNS tree, but the NS1 provider does not support this.
647
+ #
648
+ # In other cases, a domain or zone may be passed in with a preceding dot ('.')
649
+ # character which would likewise lead the system to fail.
650
+ external = ns1.Record("external",
651
+ zone=std.replace(text=zone,
652
+ search="/(^\\\\.)|(\\\\.$)/",
653
+ replace="").result,
654
+ domain=std.replace(text=domain,
655
+ search="/(^\\\\.)|(\\\\.$)/",
656
+ replace="").result,
657
+ type="CNAME")
658
+ ```
659
+
660
+ ## NS1 Documentation
661
+
662
+ [Record Api Doc](https://ns1.com/api#records)
663
+
516
664
  ## Import
517
665
 
518
666
  ```sh
@@ -527,18 +675,19 @@ class Record(pulumi.CustomResource):
527
675
 
528
676
  :param str resource_name: The name of the resource.
529
677
  :param pulumi.ResourceOptions opts: Options for the resource.
530
- :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RecordAnswerArgs']]]] answers: One or more NS1 answers for the records' specified type.
678
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RecordAnswerArgs', 'RecordAnswerArgsDict']]]] answers: One or more NS1 answers for the records' specified type.
531
679
  Answers are documented below.
532
680
  :param pulumi.Input[str] domain: The records' domain. Cannot have leading or trailing
533
681
  dots - see the example above and `FQDN formatting` below.
534
- :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RecordFilterArgs']]]] filters: One or more NS1 filters for the record(order matters).
682
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RecordFilterArgs', 'RecordFilterArgsDict']]]] filters: One or more NS1 filters for the record(order matters).
535
683
  Filters are documented below.
536
684
  :param pulumi.Input[str] link: The target record to link to. This means this record is a
537
685
  'linked' record, and it inherits all properties from its target.
538
- :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RecordRegionArgs']]]] regions: One or more "regions" for the record. These are really
686
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RecordRegionArgs', 'RecordRegionArgsDict']]]] regions: One or more "regions" for the record. These are really
539
687
  just groupings based on metadata, and are called "Answer Groups" in the NS1 UI,
540
688
  but remain `regions` here for legacy reasons. Regions are
541
689
  documented below. Please note the ordering requirement!
690
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: map of tags in the form of `"key" = "value"` where both key and value are strings
542
691
  :param pulumi.Input[int] ttl: The records' time to live (in seconds).
543
692
  :param pulumi.Input[str] type: The records' RR type.
544
693
  :param pulumi.Input[bool] use_client_subnet: Whether to use EDNS client subnet data when
@@ -557,6 +706,120 @@ class Record(pulumi.CustomResource):
557
706
  """
558
707
  Provides a NS1 Record resource. This can be used to create, modify, and delete records.
559
708
 
709
+ ## Example Usage
710
+
711
+ ```python
712
+ import pulumi
713
+ import json
714
+ import pulumi_external as external
715
+ import pulumi_ns1 as ns1
716
+ import pulumi_std as std
717
+
718
+ example = ns1.Zone("example", zone="terraform.example.io")
719
+ ns1 = ns1.DataSource("ns1",
720
+ name="ns1_source",
721
+ sourcetype="nsone_v1")
722
+ foo = ns1.DataFeed("foo",
723
+ name="foo_feed",
724
+ source_id=ns1.id,
725
+ config={
726
+ "label": "foo",
727
+ })
728
+ bar = ns1.DataFeed("bar",
729
+ name="bar_feed",
730
+ source_id=ns1.id,
731
+ config={
732
+ "label": "bar",
733
+ })
734
+ www = ns1.Record("www",
735
+ zone=tld["zone"],
736
+ domain=f"www.{tld['zone']}",
737
+ type="CNAME",
738
+ ttl=60,
739
+ meta={
740
+ "up": "true",
741
+ },
742
+ regions=[
743
+ {
744
+ "name": "east",
745
+ "meta": {
746
+ "georegion": "US-EAST",
747
+ },
748
+ },
749
+ {
750
+ "name": "usa",
751
+ "meta": {
752
+ "country": "US",
753
+ },
754
+ },
755
+ ],
756
+ answers=[
757
+ {
758
+ "answer": f"sub1.{tld['zone']}",
759
+ "region": "east",
760
+ "meta": {
761
+ "up": foo.id.apply(lambda id: f"{{\\"feed\\":\\"{id}\\"}}"),
762
+ },
763
+ },
764
+ {
765
+ "answer": f"sub2.{tld['zone']}",
766
+ "meta": {
767
+ "up": bar.id.apply(lambda id: f"{{\\"feed\\":\\"{id}\\"}}"),
768
+ "connections": "3",
769
+ },
770
+ },
771
+ {
772
+ "answer": f"sub3.{tld['zone']}",
773
+ "meta": {
774
+ "pulsar": json.dumps([{
775
+ "job_id": "abcdef",
776
+ "bias": "*0.55",
777
+ "a5m_cutoff": 0.9,
778
+ }]),
779
+ "subdivisions": json.dumps({
780
+ "BR": [
781
+ "SP",
782
+ "SC",
783
+ ],
784
+ "DZ": [
785
+ "01",
786
+ "02",
787
+ "03",
788
+ ],
789
+ }),
790
+ },
791
+ },
792
+ ],
793
+ filters=[{
794
+ "filter": "select_first_n",
795
+ "config": {
796
+ "N": "1",
797
+ },
798
+ }])
799
+ # Some other non-NS1 provider that returns a zone with a trailing dot and a domain with a leading dot.
800
+ baz = external.index.Source("baz",
801
+ zone=terraform.example.io.,
802
+ domain=.www.terraform.example.io)
803
+ # Basic record showing how to clean a zone or domain field that comes from
804
+ # another non-NS1 resource. DNS names often end in '.' characters to signify
805
+ # the root of the DNS tree, but the NS1 provider does not support this.
806
+ #
807
+ # In other cases, a domain or zone may be passed in with a preceding dot ('.')
808
+ # character which would likewise lead the system to fail.
809
+ external = ns1.Record("external",
810
+ zone=std.replace(text=zone,
811
+ search="/(^\\\\.)|(\\\\.$)/",
812
+ replace="").result,
813
+ domain=std.replace(text=domain,
814
+ search="/(^\\\\.)|(\\\\.$)/",
815
+ replace="").result,
816
+ type="CNAME")
817
+ ```
818
+
819
+ ## NS1 Documentation
820
+
821
+ [Record Api Doc](https://ns1.com/api#records)
822
+
560
823
  ## Import
561
824
 
562
825
  ```sh
@@ -584,14 +847,15 @@ class Record(pulumi.CustomResource):
584
847
  def _internal_init(__self__,
585
848
  resource_name: str,
586
849
  opts: Optional[pulumi.ResourceOptions] = None,
587
- answers: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RecordAnswerArgs']]]]] = None,
850
+ answers: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RecordAnswerArgs', 'RecordAnswerArgsDict']]]]] = None,
588
851
  blocked_tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
589
852
  domain: Optional[pulumi.Input[str]] = None,
590
- filters: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RecordFilterArgs']]]]] = None,
853
+ filters: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RecordFilterArgs', 'RecordFilterArgsDict']]]]] = None,
591
854
  link: Optional[pulumi.Input[str]] = None,
592
- meta: Optional[pulumi.Input[Mapping[str, Any]]] = None,
855
+ meta: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
856
+ override_address_records: Optional[pulumi.Input[bool]] = None,
593
857
  override_ttl: Optional[pulumi.Input[bool]] = None,
594
- regions: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RecordRegionArgs']]]]] = None,
858
+ regions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RecordRegionArgs', 'RecordRegionArgsDict']]]]] = None,
595
859
  short_answers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
596
860
  tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
597
861
  ttl: Optional[pulumi.Input[int]] = None,
@@ -615,6 +879,7 @@ class Record(pulumi.CustomResource):
615
879
  __props__.__dict__["filters"] = filters
616
880
  __props__.__dict__["link"] = link
617
881
  __props__.__dict__["meta"] = meta
882
+ __props__.__dict__["override_address_records"] = override_address_records
618
883
  __props__.__dict__["override_ttl"] = override_ttl
619
884
  __props__.__dict__["regions"] = regions
620
885
  __props__.__dict__["short_answers"] = short_answers
@@ -637,14 +902,15 @@ class Record(pulumi.CustomResource):
637
902
  def get(resource_name: str,
638
903
  id: pulumi.Input[str],
639
904
  opts: Optional[pulumi.ResourceOptions] = None,
640
- answers: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RecordAnswerArgs']]]]] = None,
905
+ answers: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RecordAnswerArgs', 'RecordAnswerArgsDict']]]]] = None,
641
906
  blocked_tags: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
642
907
  domain: Optional[pulumi.Input[str]] = None,
643
- filters: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RecordFilterArgs']]]]] = None,
908
+ filters: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RecordFilterArgs', 'RecordFilterArgsDict']]]]] = None,
644
909
  link: Optional[pulumi.Input[str]] = None,
645
- meta: Optional[pulumi.Input[Mapping[str, Any]]] = None,
910
+ meta: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
911
+ override_address_records: Optional[pulumi.Input[bool]] = None,
646
912
  override_ttl: Optional[pulumi.Input[bool]] = None,
647
- regions: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RecordRegionArgs']]]]] = None,
913
+ regions: Optional[pulumi.Input[Sequence[pulumi.Input[Union['RecordRegionArgs', 'RecordRegionArgsDict']]]]] = None,
648
914
  short_answers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
649
915
  tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
650
916
  ttl: Optional[pulumi.Input[int]] = None,
@@ -658,18 +924,19 @@ class Record(pulumi.CustomResource):
658
924
  :param str resource_name: The unique name of the resulting resource.
659
925
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
660
926
  :param pulumi.ResourceOptions opts: Options for the resource.
661
- :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RecordAnswerArgs']]]] answers: One or more NS1 answers for the records' specified type.
927
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RecordAnswerArgs', 'RecordAnswerArgsDict']]]] answers: One or more NS1 answers for the records' specified type.
662
928
  Answers are documented below.
663
929
  :param pulumi.Input[str] domain: The records' domain. Cannot have leading or trailing
664
930
  dots - see the example above and `FQDN formatting` below.
665
- :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RecordFilterArgs']]]] filters: One or more NS1 filters for the record(order matters).
931
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RecordFilterArgs', 'RecordFilterArgsDict']]]] filters: One or more NS1 filters for the record(order matters).
666
932
  Filters are documented below.
667
933
  :param pulumi.Input[str] link: The target record to link to. This means this record is a
668
934
  'linked' record, and it inherits all properties from its target.
669
- :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['RecordRegionArgs']]]] regions: One or more "regions" for the record. These are really
935
+ :param pulumi.Input[Sequence[pulumi.Input[Union['RecordRegionArgs', 'RecordRegionArgsDict']]]] regions: One or more "regions" for the record. These are really
670
936
  just groupings based on metadata, and are called "Answer Groups" in the NS1 UI,
671
937
  but remain `regions` here for legacy reasons. Regions are
672
938
  documented below. Please note the ordering requirement!
939
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: map of tags in the form of `"key" = "value"` where both key and value are strings
673
940
  :param pulumi.Input[int] ttl: The records' time to live (in seconds).
674
941
  :param pulumi.Input[str] type: The records' RR type.
675
942
  :param pulumi.Input[bool] use_client_subnet: Whether to use EDNS client subnet data when
@@ -689,6 +956,7 @@ class Record(pulumi.CustomResource):
689
956
  __props__.__dict__["filters"] = filters
690
957
  __props__.__dict__["link"] = link
691
958
  __props__.__dict__["meta"] = meta
959
+ __props__.__dict__["override_address_records"] = override_address_records
692
960
  __props__.__dict__["override_ttl"] = override_ttl
693
961
  __props__.__dict__["regions"] = regions
694
962
  __props__.__dict__["short_answers"] = short_answers
@@ -742,9 +1010,14 @@ class Record(pulumi.CustomResource):
742
1010
 
743
1011
  @property
744
1012
  @pulumi.getter
745
- def meta(self) -> pulumi.Output[Optional[Mapping[str, Any]]]:
1013
+ def meta(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
746
1014
  return pulumi.get(self, "meta")
747
1015
 
1016
+ @property
1017
+ @pulumi.getter(name="overrideAddressRecords")
1018
+ def override_address_records(self) -> pulumi.Output[Optional[bool]]:
1019
+ return pulumi.get(self, "override_address_records")
1020
+
748
1021
  @property
749
1022
  @pulumi.getter(name="overrideTtl")
750
1023
  def override_ttl(self) -> pulumi.Output[Optional[bool]]:
@@ -763,15 +1036,16 @@ class Record(pulumi.CustomResource):
763
1036
 
764
1037
  @property
765
1038
  @pulumi.getter(name="shortAnswers")
1039
+ @_utilities.deprecated("""short_answers will be deprecated in a future release. It is suggested to migrate to a regular \"answers\" block.""")
766
1040
  def short_answers(self) -> pulumi.Output[Optional[Sequence[str]]]:
767
- warnings.warn("""short_answers will be deprecated in a future release. It is suggested to migrate to a regular \"answers\" block.""", DeprecationWarning)
768
- pulumi.log.warn("""short_answers is deprecated: short_answers will be deprecated in a future release. It is suggested to migrate to a regular \"answers\" block.""")
769
-
770
1041
  return pulumi.get(self, "short_answers")
771
1042
 
772
1043
  @property
773
1044
  @pulumi.getter
774
1045
  def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
1046
+ """
1047
+ map of tags in the form of `"key" = "value"` where both key and value are strings
1048
+ """
775
1049
  return pulumi.get(self, "tags")
776
1050
 
777
1051
  @property