-
Notifications
You must be signed in to change notification settings - Fork 62
/
route_53.jl
3490 lines (3224 loc) · 150 KB
/
route_53.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# This file is auto-generated by AWSMetadata.jl
using AWS
using AWS.AWSServices: route_53
using AWS.Compat
using AWS.UUIDs
"""
activate_key_signing_key(hosted_zone_id, name)
activate_key_signing_key(hosted_zone_id, name, params::Dict{String,<:Any})
Activates a key-signing key (KSK) so that it can be used for signing by DNSSEC. This
operation changes the KSK status to ACTIVE.
# Arguments
- `hosted_zone_id`: A unique string used to identify a hosted zone.
- `name`: A string used to identify a key-signing key (KSK). Name can include numbers,
letters, and underscores (_). Name must be unique for each key-signing key in the same
hosted zone.
"""
function activate_key_signing_key(
HostedZoneId, Name; aws_config::AbstractAWSConfig=global_aws_config()
)
return route_53(
"POST",
"/2013-04-01/keysigningkey/$(HostedZoneId)/$(Name)/activate";
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
function activate_key_signing_key(
HostedZoneId,
Name,
params::AbstractDict{String};
aws_config::AbstractAWSConfig=global_aws_config(),
)
return route_53(
"POST",
"/2013-04-01/keysigningkey/$(HostedZoneId)/$(Name)/activate",
params;
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
"""
associate_vpcwith_hosted_zone(id, vpc)
associate_vpcwith_hosted_zone(id, vpc, params::Dict{String,<:Any})
Associates an Amazon VPC with a private hosted zone. To perform the association, the VPC
and the private hosted zone must already exist. You can't convert a public hosted zone into
a private hosted zone. If you want to associate a VPC that was created by using one
Amazon Web Services account with a private hosted zone that was created by using a
different account, the Amazon Web Services account that created the private hosted zone
must first submit a CreateVPCAssociationAuthorization request. Then the account that
created the VPC must submit an AssociateVPCWithHostedZone request. When granting access,
the hosted zone and the Amazon VPC must belong to the same partition. A partition is a
group of Amazon Web Services Regions. Each Amazon Web Services account is scoped to one
partition. The following are the supported partitions: aws - Amazon Web Services Regions
aws-cn - China Regions aws-us-gov - Amazon Web Services GovCloud (US) Region For
more information, see Access Management in the Amazon Web Services General Reference.
# Arguments
- `id`: The ID of the private hosted zone that you want to associate an Amazon VPC with.
Note that you can't associate a VPC with a hosted zone that doesn't have an existing VPC
association.
- `vpc`: A complex type that contains information about the VPC that you want to associate
with a private hosted zone.
# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"Comment"`: Optional: A comment about the association request.
"""
function associate_vpcwith_hosted_zone(
Id, VPC; aws_config::AbstractAWSConfig=global_aws_config()
)
return route_53(
"POST",
"/2013-04-01/hostedzone/$(Id)/associatevpc",
Dict{String,Any}("VPC" => VPC);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
function associate_vpcwith_hosted_zone(
Id, VPC, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()
)
return route_53(
"POST",
"/2013-04-01/hostedzone/$(Id)/associatevpc",
Dict{String,Any}(mergewith(_merge, Dict{String,Any}("VPC" => VPC), params));
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
"""
change_cidr_collection(changes, cidr_collection_id)
change_cidr_collection(changes, cidr_collection_id, params::Dict{String,<:Any})
Creates, changes, or deletes CIDR blocks within a collection. Contains authoritative IP
information mapping blocks to one or multiple locations. A change request can update
multiple locations in a collection at a time, which is helpful if you want to move one or
more CIDR blocks from one location to another in one transaction, without downtime.
Limits The max number of CIDR blocks included in the request is 1000. As a result, big
updates require multiple API calls. PUT and DELETE_IF_EXISTS Use ChangeCidrCollection to
perform the following actions: PUT: Create a CIDR block within the specified collection.
DELETE_IF_EXISTS: Delete an existing CIDR block from the collection.
# Arguments
- `changes`: Information about changes to a CIDR collection.
- `cidr_collection_id`: The UUID of the CIDR collection to update.
# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"CollectionVersion"`: A sequential counter that Amazon Route 53 sets to 1 when you
create a collection and increments it by 1 each time you update the collection. We
recommend that you use ListCidrCollection to get the current value of CollectionVersion for
the collection that you want to update, and then include that value with the change
request. This prevents Route 53 from overwriting an intervening update: If the value in
the request matches the value of CollectionVersion in the collection, Route 53 updates the
collection. If the value of CollectionVersion in the collection is greater than the value
in the request, the collection was changed after you got the version number. Route 53 does
not update the collection, and it returns a CidrCollectionVersionMismatch error.
"""
function change_cidr_collection(
Changes, CidrCollectionId; aws_config::AbstractAWSConfig=global_aws_config()
)
return route_53(
"POST",
"/2013-04-01/cidrcollection/$(CidrCollectionId)",
Dict{String,Any}("Changes" => Changes);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
function change_cidr_collection(
Changes,
CidrCollectionId,
params::AbstractDict{String};
aws_config::AbstractAWSConfig=global_aws_config(),
)
return route_53(
"POST",
"/2013-04-01/cidrcollection/$(CidrCollectionId)",
Dict{String,Any}(mergewith(_merge, Dict{String,Any}("Changes" => Changes), params));
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
"""
change_resource_record_sets(change_batch, id)
change_resource_record_sets(change_batch, id, params::Dict{String,<:Any})
Creates, changes, or deletes a resource record set, which contains authoritative DNS
information for a specified domain name or subdomain name. For example, you can use
ChangeResourceRecordSets to create a resource record set that routes traffic for
test.example.com to a web server that has an IP address of 192.0.2.44. Deleting Resource
Record Sets To delete a resource record set, you must specify all the same values that you
specified when you created it. Change Batches and Transactional Changes The request body
must include a document with a ChangeResourceRecordSetsRequest element. The request body
contains a list of change items, known as a change batch. Change batches are considered
transactional changes. Route 53 validates the changes in the request and then either makes
all or none of the changes in the change batch request. This ensures that DNS routing isn't
adversely affected by partial changes to the resource record sets in a hosted zone. For
example, suppose a change batch request contains two changes: it deletes the CNAME resource
record set for www.example.com and creates an alias resource record set for
www.example.com. If validation for both records succeeds, Route 53 deletes the first
resource record set and creates the second resource record set in a single operation. If
validation for either the DELETE or the CREATE action fails, then the request is canceled,
and the original CNAME record continues to exist. If you try to delete the same resource
record set more than once in a single change batch, Route 53 returns an InvalidChangeBatch
error. Traffic Flow To create resource record sets for complex routing configurations,
use either the traffic flow visual editor in the Route 53 console or the API actions for
traffic policies and traffic policy instances. Save the configuration as a traffic policy,
then associate the traffic policy with one or more domain names (such as example.com) or
subdomain names (such as www.example.com), in the same hosted zone or in multiple hosted
zones. You can roll back the updates if the new configuration isn't performing as expected.
For more information, see Using Traffic Flow to Route DNS Traffic in the Amazon Route 53
Developer Guide. Create, Delete, and Upsert Use ChangeResourceRecordsSetsRequest to
perform the following actions: CREATE: Creates a resource record set that has the
specified values. DELETE: Deletes an existing resource record set that has the specified
values. UPSERT: If a resource set exists Route 53 updates it with the values in the
request. Syntaxes for Creating, Updating, and Deleting Resource Record Sets The syntax
for a request depends on the type of resource record set that you want to create, delete,
or update, such as weighted, alias, or failover. The XML elements in your request must
appear in the order listed in the syntax. For an example for each type of resource record
set, see \"Examples.\" Don't refer to the syntax in the \"Parameter Syntax\" section, which
includes all of the elements for every kind of resource record set that you can create,
delete, or update by using ChangeResourceRecordSets. Change Propagation to Route 53 DNS
Servers When you submit a ChangeResourceRecordSets request, Route 53 propagates your
changes to all of the Route 53 authoritative DNS servers. While your changes are
propagating, GetChange returns a status of PENDING. When propagation is complete, GetChange
returns a status of INSYNC. Changes generally propagate to all Route 53 name servers within
60 seconds. For more information, see GetChange. Limits on ChangeResourceRecordSets
Requests For information about the limits on a ChangeResourceRecordSets request, see
Limits in the Amazon Route 53 Developer Guide.
# Arguments
- `change_batch`: A complex type that contains an optional comment and the Changes element.
- `id`: The ID of the hosted zone that contains the resource record sets that you want to
change.
"""
function change_resource_record_sets(
ChangeBatch, Id; aws_config::AbstractAWSConfig=global_aws_config()
)
return route_53(
"POST",
"/2013-04-01/hostedzone/$(Id)/rrset/",
Dict{String,Any}("ChangeBatch" => ChangeBatch);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
function change_resource_record_sets(
ChangeBatch,
Id,
params::AbstractDict{String};
aws_config::AbstractAWSConfig=global_aws_config(),
)
return route_53(
"POST",
"/2013-04-01/hostedzone/$(Id)/rrset/",
Dict{String,Any}(
mergewith(_merge, Dict{String,Any}("ChangeBatch" => ChangeBatch), params)
);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
"""
change_tags_for_resource(resource_id, resource_type)
change_tags_for_resource(resource_id, resource_type, params::Dict{String,<:Any})
Adds, edits, or deletes tags for a health check or a hosted zone. For information about
using tags for cost allocation, see Using Cost Allocation Tags in the Billing and Cost
Management User Guide.
# Arguments
- `resource_id`: The ID of the resource for which you want to add, change, or delete tags.
- `resource_type`: The type of the resource. The resource type for health checks is
healthcheck. The resource type for hosted zones is hostedzone.
# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"AddTags"`: A complex type that contains a list of the tags that you want to add to the
specified health check or hosted zone and/or the tags that you want to edit Value for. You
can add a maximum of 10 tags to a health check or a hosted zone.
- `"RemoveTagKeys"`: A complex type that contains a list of the tags that you want to
delete from the specified health check or hosted zone. You can specify up to 10 keys.
"""
function change_tags_for_resource(
ResourceId, ResourceType; aws_config::AbstractAWSConfig=global_aws_config()
)
return route_53(
"POST",
"/2013-04-01/tags/$(ResourceType)/$(ResourceId)";
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
function change_tags_for_resource(
ResourceId,
ResourceType,
params::AbstractDict{String};
aws_config::AbstractAWSConfig=global_aws_config(),
)
return route_53(
"POST",
"/2013-04-01/tags/$(ResourceType)/$(ResourceId)",
params;
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
"""
create_cidr_collection(caller_reference, name)
create_cidr_collection(caller_reference, name, params::Dict{String,<:Any})
Creates a CIDR collection in the current Amazon Web Services account.
# Arguments
- `caller_reference`: A client-specific token that allows requests to be securely retried
so that the intended outcome will only occur once, retries receive a similar response, and
there are no additional edge cases to handle.
- `name`: A unique identifier for the account that can be used to reference the collection
from other API calls.
"""
function create_cidr_collection(
CallerReference, Name; aws_config::AbstractAWSConfig=global_aws_config()
)
return route_53(
"POST",
"/2013-04-01/cidrcollection",
Dict{String,Any}("CallerReference" => CallerReference, "Name" => Name);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
function create_cidr_collection(
CallerReference,
Name,
params::AbstractDict{String};
aws_config::AbstractAWSConfig=global_aws_config(),
)
return route_53(
"POST",
"/2013-04-01/cidrcollection",
Dict{String,Any}(
mergewith(
_merge,
Dict{String,Any}("CallerReference" => CallerReference, "Name" => Name),
params,
),
);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
"""
create_health_check(caller_reference, health_check_config)
create_health_check(caller_reference, health_check_config, params::Dict{String,<:Any})
Creates a new health check. For information about adding health checks to resource record
sets, see HealthCheckId in ChangeResourceRecordSets. ELB Load Balancers If you're
registering EC2 instances with an Elastic Load Balancing (ELB) load balancer, do not create
Amazon Route 53 health checks for the EC2 instances. When you register an EC2 instance with
a load balancer, you configure settings for an ELB health check, which performs a similar
function to a Route 53 health check. Private Hosted Zones You can associate health checks
with failover resource record sets in a private hosted zone. Note the following: Route 53
health checkers are outside the VPC. To check the health of an endpoint within a VPC by IP
address, you must assign a public IP address to the instance in the VPC. You can
configure a health checker to check the health of an external resource that the instance
relies on, such as a database server. You can create a CloudWatch metric, associate an
alarm with the metric, and then create a health check that is based on the state of the
alarm. For example, you might create a CloudWatch metric that checks the status of the
Amazon EC2 StatusCheckFailed metric, add an alarm to the metric, and then create a health
check that is based on the state of the alarm. For information about creating CloudWatch
metrics and alarms by using the CloudWatch console, see the Amazon CloudWatch User Guide.
# Arguments
- `caller_reference`: A unique string that identifies the request and that allows you to
retry a failed CreateHealthCheck request without the risk of creating two identical health
checks: If you send a CreateHealthCheck request with the same CallerReference and
settings as a previous request, and if the health check doesn't exist, Amazon Route 53
creates the health check. If the health check does exist, Route 53 returns the settings for
the existing health check. If you send a CreateHealthCheck request with the same
CallerReference as a deleted health check, regardless of the settings, Route 53 returns a
HealthCheckAlreadyExists error. If you send a CreateHealthCheck request with the same
CallerReference as an existing health check but with different settings, Route 53 returns a
HealthCheckAlreadyExists error. If you send a CreateHealthCheck request with a unique
CallerReference but settings identical to an existing health check, Route 53 creates the
health check.
- `health_check_config`: A complex type that contains settings for a new health check.
"""
function create_health_check(
CallerReference, HealthCheckConfig; aws_config::AbstractAWSConfig=global_aws_config()
)
return route_53(
"POST",
"/2013-04-01/healthcheck",
Dict{String,Any}(
"CallerReference" => CallerReference, "HealthCheckConfig" => HealthCheckConfig
);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
function create_health_check(
CallerReference,
HealthCheckConfig,
params::AbstractDict{String};
aws_config::AbstractAWSConfig=global_aws_config(),
)
return route_53(
"POST",
"/2013-04-01/healthcheck",
Dict{String,Any}(
mergewith(
_merge,
Dict{String,Any}(
"CallerReference" => CallerReference,
"HealthCheckConfig" => HealthCheckConfig,
),
params,
),
);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
"""
create_hosted_zone(caller_reference, name)
create_hosted_zone(caller_reference, name, params::Dict{String,<:Any})
Creates a new public or private hosted zone. You create records in a public hosted zone to
define how you want to route traffic on the internet for a domain, such as example.com, and
its subdomains (apex.example.com, acme.example.com). You create records in a private hosted
zone to define how you want to route traffic for a domain and its subdomains within one or
more Amazon Virtual Private Clouds (Amazon VPCs). You can't convert a public hosted zone
to a private hosted zone or vice versa. Instead, you must create a new hosted zone with the
same name and create new resource record sets. For more information about charges for
hosted zones, see Amazon Route 53 Pricing. Note the following: You can't create a hosted
zone for a top-level domain (TLD) such as .com. For public hosted zones, Route 53
automatically creates a default SOA record and four NS records for the zone. For more
information about SOA and NS records, see NS and SOA Records that Route 53 Creates for a
Hosted Zone in the Amazon Route 53 Developer Guide. If you want to use the same name
servers for multiple public hosted zones, you can optionally associate a reusable
delegation set with the hosted zone. See the DelegationSetId element. If your domain is
registered with a registrar other than Route 53, you must update the name servers with
your registrar to make Route 53 the DNS service for the domain. For more information, see
Migrating DNS Service for an Existing Domain to Amazon Route 53 in the Amazon Route 53
Developer Guide. When you submit a CreateHostedZone request, the initial status of the
hosted zone is PENDING. For public hosted zones, this means that the NS and SOA records are
not yet available on all Route 53 DNS servers. When the NS and SOA records are available,
the status of the zone changes to INSYNC. The CreateHostedZone request requires the caller
to have an ec2:DescribeVpcs permission. When creating private hosted zones, the Amazon VPC
must belong to the same partition where the hosted zone is created. A partition is a group
of Amazon Web Services Regions. Each Amazon Web Services account is scoped to one
partition. The following are the supported partitions: aws - Amazon Web Services Regions
aws-cn - China Regions aws-us-gov - Amazon Web Services GovCloud (US) Region For
more information, see Access Management in the Amazon Web Services General Reference.
# Arguments
- `caller_reference`: A unique string that identifies the request and that allows failed
CreateHostedZone requests to be retried without the risk of executing the operation twice.
You must use a unique CallerReference string every time you submit a CreateHostedZone
request. CallerReference can be any unique string, for example, a date/time stamp.
- `name`: The name of the domain. Specify a fully qualified domain name, for example,
www.example.com. The trailing dot is optional; Amazon Route 53 assumes that the domain
name is fully qualified. This means that Route 53 treats www.example.com (without a
trailing dot) and www.example.com. (with a trailing dot) as identical. If you're creating a
public hosted zone, this is the name you have registered with your DNS registrar. If your
domain name is registered with a registrar other than Route 53, change the name servers
for your domain to the set of NameServers that CreateHostedZone returns in DelegationSet.
# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"DelegationSetId"`: If you want to associate a reusable delegation set with this hosted
zone, the ID that Amazon Route 53 assigned to the reusable delegation set when you created
it. For more information about reusable delegation sets, see CreateReusableDelegationSet.
- `"HostedZoneConfig"`: (Optional) A complex type that contains the following optional
values: For public and private hosted zones, an optional comment For private hosted
zones, an optional PrivateZone element If you don't specify a comment or the PrivateZone
element, omit HostedZoneConfig and the other elements.
- `"VPC"`: (Private hosted zones only) A complex type that contains information about the
Amazon VPC that you're associating with this hosted zone. You can specify only one Amazon
VPC when you create a private hosted zone. If you are associating a VPC with a hosted zone
with this request, the paramaters VPCId and VPCRegion are also required. To associate
additional Amazon VPCs with the hosted zone, use AssociateVPCWithHostedZone after you
create a hosted zone.
"""
function create_hosted_zone(
CallerReference, Name; aws_config::AbstractAWSConfig=global_aws_config()
)
return route_53(
"POST",
"/2013-04-01/hostedzone",
Dict{String,Any}("CallerReference" => CallerReference, "Name" => Name);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
function create_hosted_zone(
CallerReference,
Name,
params::AbstractDict{String};
aws_config::AbstractAWSConfig=global_aws_config(),
)
return route_53(
"POST",
"/2013-04-01/hostedzone",
Dict{String,Any}(
mergewith(
_merge,
Dict{String,Any}("CallerReference" => CallerReference, "Name" => Name),
params,
),
);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
"""
create_key_signing_key(caller_reference, hosted_zone_id, key_management_service_arn, name, status)
create_key_signing_key(caller_reference, hosted_zone_id, key_management_service_arn, name, status, params::Dict{String,<:Any})
Creates a new key-signing key (KSK) associated with a hosted zone. You can only have two
KSKs per hosted zone.
# Arguments
- `caller_reference`: A unique string that identifies the request.
- `hosted_zone_id`: The unique string (ID) used to identify a hosted zone.
- `key_management_service_arn`: The Amazon resource name (ARN) for a customer managed key
in Key Management Service (KMS). The KeyManagementServiceArn must be unique for each
key-signing key (KSK) in a single hosted zone. To see an example of KeyManagementServiceArn
that grants the correct permissions for DNSSEC, scroll down to Example. You must configure
the customer managed customer managed key as follows: Status Enabled Key spec
ECC_NIST_P256 Key usage Sign and verify Key policy The key policy must give permission
for the following actions: DescribeKey GetPublicKey Sign The key policy must also
include the Amazon Route 53 service in the principal for your account. Specify the
following: \"Service\": \"dnssec-route53.amazonaws.com\" For more information about
working with a customer managed key in KMS, see Key Management Service concepts.
- `name`: A string used to identify a key-signing key (KSK). Name can include numbers,
letters, and underscores (_). Name must be unique for each key-signing key in the same
hosted zone.
- `status`: A string specifying the initial status of the key-signing key (KSK). You can
set the value to ACTIVE or INACTIVE.
"""
function create_key_signing_key(
CallerReference,
HostedZoneId,
KeyManagementServiceArn,
Name,
Status;
aws_config::AbstractAWSConfig=global_aws_config(),
)
return route_53(
"POST",
"/2013-04-01/keysigningkey",
Dict{String,Any}(
"CallerReference" => CallerReference,
"HostedZoneId" => HostedZoneId,
"KeyManagementServiceArn" => KeyManagementServiceArn,
"Name" => Name,
"Status" => Status,
);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
function create_key_signing_key(
CallerReference,
HostedZoneId,
KeyManagementServiceArn,
Name,
Status,
params::AbstractDict{String};
aws_config::AbstractAWSConfig=global_aws_config(),
)
return route_53(
"POST",
"/2013-04-01/keysigningkey",
Dict{String,Any}(
mergewith(
_merge,
Dict{String,Any}(
"CallerReference" => CallerReference,
"HostedZoneId" => HostedZoneId,
"KeyManagementServiceArn" => KeyManagementServiceArn,
"Name" => Name,
"Status" => Status,
),
params,
),
);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
"""
create_query_logging_config(cloud_watch_logs_log_group_arn, hosted_zone_id)
create_query_logging_config(cloud_watch_logs_log_group_arn, hosted_zone_id, params::Dict{String,<:Any})
Creates a configuration for DNS query logging. After you create a query logging
configuration, Amazon Route 53 begins to publish log data to an Amazon CloudWatch Logs log
group. DNS query logs contain information about the queries that Route 53 receives for a
specified public hosted zone, such as the following: Route 53 edge location that
responded to the DNS query Domain or subdomain that was requested DNS record type, such
as A or AAAA DNS response code, such as NoError or ServFail Log Group and Resource
Policy Before you create a query logging configuration, perform the following operations.
If you create a query logging configuration using the Route 53 console, Route 53 performs
these operations automatically. Create a CloudWatch Logs log group, and make note of the
ARN, which you specify when you create a query logging configuration. Note the following:
You must create the log group in the us-east-1 region. You must use the same Amazon Web
Services account to create the log group and the hosted zone that you want to configure
query logging for. When you create log groups for query logging, we recommend that you
use a consistent prefix, for example: /aws/route53/hosted zone name In the next step,
you'll create a resource policy, which controls access to one or more log groups and the
associated Amazon Web Services resources, such as Route 53 hosted zones. There's a limit on
the number of resource policies that you can create, so we recommend that you use a
consistent prefix so you can use the same resource policy for all the log groups that you
create for query logging. Create a CloudWatch Logs resource policy, and give it the
permissions that Route 53 needs to create log streams and to send query logs to log
streams. For the value of Resource, specify the ARN for the log group that you created in
the previous step. To use the same resource policy for all the CloudWatch Logs log groups
that you created for query logging configurations, replace the hosted zone name with *, for
example: arn:aws:logs:us-east-1:123412341234:log-group:/aws/route53/* To avoid the
confused deputy problem, a security issue where an entity without a permission for an
action can coerce a more-privileged entity to perform it, you can optionally limit the
permissions that a service has to a resource in a resource-based policy by supplying the
following values: For aws:SourceArn, supply the hosted zone ARN used in creating the
query logging configuration. For example, aws:SourceArn:
arn:aws:route53:::hostedzone/hosted zone ID. For aws:SourceAccount, supply the account ID
for the account that creates the query logging configuration. For example,
aws:SourceAccount:111111111111. For more information, see The confused deputy problem in
the Amazon Web Services IAM User Guide. You can't use the CloudWatch console to create or
edit a resource policy. You must use the CloudWatch API, one of the Amazon Web Services
SDKs, or the CLI. Log Streams and Edge Locations When Route 53 finishes creating the
configuration for DNS query logging, it does the following: Creates a log stream for an
edge location the first time that the edge location responds to DNS queries for the
specified hosted zone. That log stream is used to log all queries that Route 53 responds to
for that edge location. Begins to send query logs to the applicable log stream. The
name of each log stream is in the following format: hosted zone ID/edge location code
The edge location code is a three-letter code and an arbitrarily assigned number, for
example, DFW3. The three-letter code typically corresponds with the International Air
Transport Association airport code for an airport near the edge location. (These
abbreviations might change in the future.) For a list of edge locations, see \"The Route 53
Global Network\" on the Route 53 Product Details page. Queries That Are Logged Query logs
contain only the queries that DNS resolvers forward to Route 53. If a DNS resolver has
already cached the response to a query (such as the IP address for a load balancer for
example.com), the resolver will continue to return the cached response. It doesn't forward
another query to Route 53 until the TTL for the corresponding resource record set expires.
Depending on how many DNS queries are submitted for a resource record set, and depending on
the TTL for that resource record set, query logs might contain information about only one
query out of every several thousand queries that are submitted to DNS. For more information
about how DNS works, see Routing Internet Traffic to Your Website or Web Application in the
Amazon Route 53 Developer Guide. Log File Format For a list of the values in each query
log and the format of each value, see Logging DNS Queries in the Amazon Route 53 Developer
Guide. Pricing For information about charges for query logs, see Amazon CloudWatch
Pricing. How to Stop Logging If you want Route 53 to stop sending query logs to
CloudWatch Logs, delete the query logging configuration. For more information, see
DeleteQueryLoggingConfig.
# Arguments
- `cloud_watch_logs_log_group_arn`: The Amazon Resource Name (ARN) for the log group that
you want to Amazon Route 53 to send query logs to. This is the format of the ARN:
arn:aws:logs:region:account-id:log-group:log_group_name To get the ARN for a log group,
you can use the CloudWatch console, the DescribeLogGroups API action, the
describe-log-groups command, or the applicable command in one of the Amazon Web Services
SDKs.
- `hosted_zone_id`: The ID of the hosted zone that you want to log queries for. You can log
queries only for public hosted zones.
"""
function create_query_logging_config(
CloudWatchLogsLogGroupArn,
HostedZoneId;
aws_config::AbstractAWSConfig=global_aws_config(),
)
return route_53(
"POST",
"/2013-04-01/queryloggingconfig",
Dict{String,Any}(
"CloudWatchLogsLogGroupArn" => CloudWatchLogsLogGroupArn,
"HostedZoneId" => HostedZoneId,
);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
function create_query_logging_config(
CloudWatchLogsLogGroupArn,
HostedZoneId,
params::AbstractDict{String};
aws_config::AbstractAWSConfig=global_aws_config(),
)
return route_53(
"POST",
"/2013-04-01/queryloggingconfig",
Dict{String,Any}(
mergewith(
_merge,
Dict{String,Any}(
"CloudWatchLogsLogGroupArn" => CloudWatchLogsLogGroupArn,
"HostedZoneId" => HostedZoneId,
),
params,
),
);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
"""
create_reusable_delegation_set(caller_reference)
create_reusable_delegation_set(caller_reference, params::Dict{String,<:Any})
Creates a delegation set (a group of four name servers) that can be reused by multiple
hosted zones that were created by the same Amazon Web Services account. You can also
create a reusable delegation set that uses the four name servers that are associated with
an existing hosted zone. Specify the hosted zone ID in the CreateReusableDelegationSet
request. You can't associate a reusable delegation set with a private hosted zone. For
information about using a reusable delegation set to configure white label name servers,
see Configuring White Label Name Servers. The process for migrating existing hosted zones
to use a reusable delegation set is comparable to the process for configuring white label
name servers. You need to perform the following steps: Create a reusable delegation set.
Recreate hosted zones, and reduce the TTL to 60 seconds or less. Recreate resource
record sets in the new hosted zones. Change the registrar's name servers to use the name
servers for the new hosted zones. Monitor traffic for the website or application.
Change TTLs back to their original values. If you want to migrate existing hosted zones
to use a reusable delegation set, the existing hosted zones can't use any of the name
servers that are assigned to the reusable delegation set. If one or more hosted zones do
use one or more name servers that are assigned to the reusable delegation set, you can do
one of the following: For small numbers of hosted zones—up to a few hundred—it's
relatively easy to create reusable delegation sets until you get one that has four name
servers that don't overlap with any of the name servers in your hosted zones. For larger
numbers of hosted zones, the easiest solution is to use more than one reusable delegation
set. For larger numbers of hosted zones, you can also migrate hosted zones that have
overlapping name servers to hosted zones that don't have overlapping name servers, then
migrate the hosted zones again to use the reusable delegation set.
# Arguments
- `caller_reference`: A unique string that identifies the request, and that allows you to
retry failed CreateReusableDelegationSet requests without the risk of executing the
operation twice. You must use a unique CallerReference string every time you submit a
CreateReusableDelegationSet request. CallerReference can be any unique string, for example
a date/time stamp.
# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"HostedZoneId"`: If you want to mark the delegation set for an existing hosted zone as
reusable, the ID for that hosted zone.
"""
function create_reusable_delegation_set(
CallerReference; aws_config::AbstractAWSConfig=global_aws_config()
)
return route_53(
"POST",
"/2013-04-01/delegationset",
Dict{String,Any}("CallerReference" => CallerReference);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
function create_reusable_delegation_set(
CallerReference,
params::AbstractDict{String};
aws_config::AbstractAWSConfig=global_aws_config(),
)
return route_53(
"POST",
"/2013-04-01/delegationset",
Dict{String,Any}(
mergewith(
_merge, Dict{String,Any}("CallerReference" => CallerReference), params
),
);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
"""
create_traffic_policy(document, name)
create_traffic_policy(document, name, params::Dict{String,<:Any})
Creates a traffic policy, which you use to create multiple DNS resource record sets for one
domain name (such as example.com) or one subdomain name (such as www.example.com).
# Arguments
- `document`: The definition of this traffic policy in JSON format. For more information,
see Traffic Policy Document Format.
- `name`: The name of the traffic policy.
# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"Comment"`: (Optional) Any comments that you want to include about the traffic policy.
"""
function create_traffic_policy(
Document, Name; aws_config::AbstractAWSConfig=global_aws_config()
)
return route_53(
"POST",
"/2013-04-01/trafficpolicy",
Dict{String,Any}("Document" => Document, "Name" => Name);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
function create_traffic_policy(
Document,
Name,
params::AbstractDict{String};
aws_config::AbstractAWSConfig=global_aws_config(),
)
return route_53(
"POST",
"/2013-04-01/trafficpolicy",
Dict{String,Any}(
mergewith(
_merge, Dict{String,Any}("Document" => Document, "Name" => Name), params
),
);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
"""
create_traffic_policy_instance(hosted_zone_id, name, ttl, traffic_policy_id, traffic_policy_version)
create_traffic_policy_instance(hosted_zone_id, name, ttl, traffic_policy_id, traffic_policy_version, params::Dict{String,<:Any})
Creates resource record sets in a specified hosted zone based on the settings in a
specified traffic policy version. In addition, CreateTrafficPolicyInstance associates the
resource record sets with a specified domain name (such as example.com) or subdomain name
(such as www.example.com). Amazon Route 53 responds to DNS queries for the domain or
subdomain name by using the resource record sets that CreateTrafficPolicyInstance created.
# Arguments
- `hosted_zone_id`: The ID of the hosted zone that you want Amazon Route 53 to create
resource record sets in by using the configuration in a traffic policy.
- `name`: The domain name (such as example.com) or subdomain name (such as www.example.com)
for which Amazon Route 53 responds to DNS queries by using the resource record sets that
Route 53 creates for this traffic policy instance.
- `ttl`: (Optional) The TTL that you want Amazon Route 53 to assign to all of the resource
record sets that it creates in the specified hosted zone.
- `traffic_policy_id`: The ID of the traffic policy that you want to use to create resource
record sets in the specified hosted zone.
- `traffic_policy_version`: The version of the traffic policy that you want to use to
create resource record sets in the specified hosted zone.
"""
function create_traffic_policy_instance(
HostedZoneId,
Name,
TTL,
TrafficPolicyId,
TrafficPolicyVersion;
aws_config::AbstractAWSConfig=global_aws_config(),
)
return route_53(
"POST",
"/2013-04-01/trafficpolicyinstance",
Dict{String,Any}(
"HostedZoneId" => HostedZoneId,
"Name" => Name,
"TTL" => TTL,
"TrafficPolicyId" => TrafficPolicyId,
"TrafficPolicyVersion" => TrafficPolicyVersion,
);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
function create_traffic_policy_instance(
HostedZoneId,
Name,
TTL,
TrafficPolicyId,
TrafficPolicyVersion,
params::AbstractDict{String};
aws_config::AbstractAWSConfig=global_aws_config(),
)
return route_53(
"POST",
"/2013-04-01/trafficpolicyinstance",
Dict{String,Any}(
mergewith(
_merge,
Dict{String,Any}(
"HostedZoneId" => HostedZoneId,
"Name" => Name,
"TTL" => TTL,
"TrafficPolicyId" => TrafficPolicyId,
"TrafficPolicyVersion" => TrafficPolicyVersion,
),
params,
),
);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
"""
create_traffic_policy_version(document, id)
create_traffic_policy_version(document, id, params::Dict{String,<:Any})
Creates a new version of an existing traffic policy. When you create a new version of a
traffic policy, you specify the ID of the traffic policy that you want to update and a
JSON-formatted document that describes the new version. You use traffic policies to create
multiple DNS resource record sets for one domain name (such as example.com) or one
subdomain name (such as www.example.com). You can create a maximum of 1000 versions of a
traffic policy. If you reach the limit and need to create another version, you'll need to
start a new traffic policy.
# Arguments
- `document`: The definition of this version of the traffic policy, in JSON format. You
specified the JSON in the CreateTrafficPolicyVersion request. For more information about
the JSON format, see CreateTrafficPolicy.
- `id`: The ID of the traffic policy for which you want to create a new version.
# Optional Parameters
Optional parameters can be passed as a `params::Dict{String,<:Any}`. Valid keys are:
- `"Comment"`: The comment that you specified in the CreateTrafficPolicyVersion request, if
any.
"""
function create_traffic_policy_version(
Document, Id; aws_config::AbstractAWSConfig=global_aws_config()
)
return route_53(
"POST",
"/2013-04-01/trafficpolicy/$(Id)",
Dict{String,Any}("Document" => Document);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
function create_traffic_policy_version(
Document,
Id,
params::AbstractDict{String};
aws_config::AbstractAWSConfig=global_aws_config(),
)
return route_53(
"POST",
"/2013-04-01/trafficpolicy/$(Id)",
Dict{String,Any}(
mergewith(_merge, Dict{String,Any}("Document" => Document), params)
);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
"""
create_vpcassociation_authorization(id, vpc)
create_vpcassociation_authorization(id, vpc, params::Dict{String,<:Any})
Authorizes the Amazon Web Services account that created a specified VPC to submit an
AssociateVPCWithHostedZone request to associate the VPC with a specified hosted zone that
was created by a different account. To submit a CreateVPCAssociationAuthorization request,
you must use the account that created the hosted zone. After you authorize the association,
use the account that created the VPC to submit an AssociateVPCWithHostedZone request. If
you want to associate multiple VPCs that you created by using one account with a hosted
zone that you created by using a different account, you must submit one authorization
request for each VPC.
# Arguments
- `id`: The ID of the private hosted zone that you want to authorize associating a VPC with.
- `vpc`: A complex type that contains the VPC ID and region for the VPC that you want to
authorize associating with your hosted zone.
"""
function create_vpcassociation_authorization(
Id, VPC; aws_config::AbstractAWSConfig=global_aws_config()
)
return route_53(
"POST",
"/2013-04-01/hostedzone/$(Id)/authorizevpcassociation",
Dict{String,Any}("VPC" => VPC);
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
function create_vpcassociation_authorization(
Id, VPC, params::AbstractDict{String}; aws_config::AbstractAWSConfig=global_aws_config()
)
return route_53(
"POST",
"/2013-04-01/hostedzone/$(Id)/authorizevpcassociation",
Dict{String,Any}(mergewith(_merge, Dict{String,Any}("VPC" => VPC), params));
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
"""
deactivate_key_signing_key(hosted_zone_id, name)
deactivate_key_signing_key(hosted_zone_id, name, params::Dict{String,<:Any})
Deactivates a key-signing key (KSK) so that it will not be used for signing by DNSSEC. This
operation changes the KSK status to INACTIVE.
# Arguments
- `hosted_zone_id`: A unique string used to identify a hosted zone.
- `name`: A string used to identify a key-signing key (KSK).
"""
function deactivate_key_signing_key(
HostedZoneId, Name; aws_config::AbstractAWSConfig=global_aws_config()
)
return route_53(
"POST",
"/2013-04-01/keysigningkey/$(HostedZoneId)/$(Name)/deactivate";
aws_config=aws_config,
feature_set=SERVICE_FEATURE_SET,
)
end
function deactivate_key_signing_key(
HostedZoneId,
Name,
params::AbstractDict{String};
aws_config::AbstractAWSConfig=global_aws_config(),
)
return route_53(
"POST",