97 Commits

Author SHA1 Message Date
Bert Blommers
aa70ee254d
Remove deprecated decorators + boto dependency (#4378) 2022-01-18 14:18:57 -01:00
Bert Blommers
3d105361ef
Route53 - Error on batch changes that are too large (#4674) 2021-12-10 08:47:27 -01:00
Bert Blommers
7776668a5a
Route53 tech debt (#4673) 2021-12-09 21:33:09 -01:00
Bert Blommers
194098c7de
Route53 - Improve error handling (#4672) 2021-12-08 14:42:08 -01:00
Bert Blommers
4befb671f0
Paginator - make development easier + docs (#4650) 2021-12-03 15:33:35 -01:00
kbalk
958a129f97
Route53Resolver: Add resolver endpoint-related APIs (#4559) 2021-11-17 19:06:35 -01:00
Bert Blommers
f923d0d1e0
Feature: Custom cloudformation resources (#4512) 2021-11-03 20:00:42 -01:00
kbalk
665c8aa3bc
Route53 query-logging-config APIs (#4437) 2021-10-22 21:47:29 +00:00
Bert Blommers
14a69c7524
Techdebt: Enable pylint rules (#4432) 2021-10-18 19:44:29 +00:00
Bert Blommers
36e66d32b9
Route53 - Update impl cov to show change_resource_record_sets (#4401) 2021-10-12 22:04:43 +00:00
Bert Blommers
0b9f5adec2
Tech debt - Fix more URL regexes (#4380) 2021-10-08 10:03:05 +00:00
Bert Blommers
e88e73aac7
Rewrite deprecated Route53 tests (#4327) 2021-09-23 10:27:09 +00:00
Bert Blommers
fdf27a70e9
Route53 - Persist CallerReference (#3788) 2021-08-22 10:51:21 +01:00
Waldemar Hummer
f4f8527955
Merge LocalStack changes into upstream moto (#4082)
* fix OPTIONS requests on non-existing API GW integrations

* add cloudformation models for API Gateway deployments

* bump version

* add backdoor to return CloudWatch metrics

* Updating implementation coverage

* Updating implementation coverage

* add cloudformation models for API Gateway deployments

* Updating implementation coverage

* Updating implementation coverage

* Implemented get-caller-identity returning real data depending on the access key used.

* bump version

* minor fixes

* fix Number data_type for SQS message attribute

* fix handling of encoding errors

* bump version

* make CF stack queryable before starting to initialize its resources

* bump version

* fix integration_method for API GW method integrations

* fix undefined status in CF FakeStack

* Fix apigateway issues with terraform v0.12.21
* resource_methods -> add handle for "DELETE" method
* integrations -> fix issue that "httpMethod" wasn't included in body request (this value was set as the value from refer method resource)

* bump version

* Fix setting http method for API gateway integrations (#6)

* bump version

* remove duplicate methods

* add storage class to S3 Key when completing multipart upload (#7)

* fix SQS performance issues; bump version

* add pagination to SecretsManager list-secrets (#9)

* fix default parameter groups in RDS

* fix adding S3 metadata headers with names containing dots (#13)

* Updating implementation coverage

* Updating implementation coverage

* add cloudformation models for API Gateway deployments

* Updating implementation coverage

* Updating implementation coverage

* Implemented get-caller-identity returning real data depending on the access key used.

* make CF stack queryable before starting to initialize its resources

* bump version

* remove duplicate methods

* fix adding S3 metadata headers with names containing dots (#13)

* Update amis.json to support EKS AMI mocks (#15)

* fix PascalCase for boolean value in ListMultipartUploads response (#17); fix _get_multi_param to parse nested list/dict query params

* determine non-zero container exit code in Batch API

* support filtering by dimensions in CW get_metric_statistics

* fix storing attributes for ELBv2 Route entities; API GW refactorings for TF tests

* add missing fields for API GW resources

* fix error messages for Route53 (TF-compat)

* various fixes for IAM resources (tf-compat)

* minor fixes for API GW models (tf-compat)

* minor fixes for API GW responses (tf-compat)

* add s3 exception for bucket notification filter rule validation

* change the way RESTErrors generate the response body and content-type header

* fix lint errors and disable "black" syntax enforcement

* remove return type hint in RESTError.get_body

* add RESTError XML template for IAM exceptions

* add support for API GW minimumCompressionSize

* fix casing getting PrivateDnsEnabled API GW attribute

* minor fixes for error responses

* fix escaping special chars for IAM role descriptions (tf-compat)

* minor fixes and tagging support for API GW and ELB v2 (tf-compat)

* Merge branch 'master' into localstack

* add "AlarmRule" attribute to enable support for composite CloudWatch metrics

* fix recursive parsing of complex/nested query params

* bump version

* add API to delete S3 website configurations (#18)

* use dict copy to allow parallelism and avoid concurrent modification exceptions in S3

* fix precondition check for etags in S3 (#19)

* minor fix for user filtering in Cognito

* fix API Gateway error response; avoid returning empty response templates (tf-compat)

* support tags and tracingEnabled attribute for API GW stages

* fix boolean value in S3 encryption response (#20)

* fix connection arn structure

* fix api destination arn structure

* black format

* release 2.0.3.37

* fix s3 exception tests

see botocore/parsers.py:1002 where RequestId is removed from parsed

* remove python 2 from build action

* add test failure annotations in build action

* fix events test arn comparisons

* fix s3 encryption response test

* return default value "0" if EC2 availableIpAddressCount is empty

* fix extracting SecurityGroupIds for EC2 VPC endpoints

* support deleting/updating API Gateway DomainNames

* fix(events): Return empty string instead of null when no pattern is specified in EventPattern (tf-compat) (#22)

* fix logic and revert CF changes to get tests running again (#21)

* add support for EC2 customer gateway API (#25)

* add support for EC2 Transit Gateway APIs (#24)

* feat(logs): add `kmsKeyId` into `LogGroup` entity (#23)

* minor change in ELBv2 logic to fix tests

* feat(events): add APIs to describe and delete CloudWatch Events connections (#26)

* add support for EC2 transit gateway route tables (#27)

* pass transit gateway route table ID in Describe API, minor refactoring (#29)

* add support for EC2 Transit Gateway Routes (#28)

* fix region on ACM certificate import (#31)

* add support for EC2 transit gateway attachments (#30)

* add support for EC2 Transit Gateway VPN attachments (#32)

* fix account ID for logs API

* add support for DeleteOrganization API

* feat(events): store raw filter representation for CloudWatch events patterns (tf-compat) (#36)

* feat(events): add support to describe/update/delete CloudWatch API destinations (#35)

* add Cognito UpdateIdentityPool, CW Logs PutResourcePolicy

* feat(events): add support for tags in EventBus API (#38)

* fix parameter validation for Batch compute environments (tf-compat)

* revert merge conflicts in IMPLEMENTATION_COVERAGE.md

* format code using black

* restore original README; re-enable and fix CloudFormation tests

* restore tests and old logic for CF stack parameters from SSM

* parameterize RequestId/RequestID in response messages and revert related test changes

* undo LocalStack-specific adaptations

* minor fix

* Update CodeCov config to reflect removal of Py2

* undo change related to CW metric filtering; add additional test for CW metric statistics with dimensions

* Terraform - Extend whitelist of running tests

Co-authored-by: acsbendi <acsbendi28@gmail.com>
Co-authored-by: Phan Duong <duongpv@outlook.com>
Co-authored-by: Thomas Rausch <thomas@thrau.at>
Co-authored-by: Macwan Nevil <macnev2013@gmail.com>
Co-authored-by: Dominik Schubert <dominik.schubert91@gmail.com>
Co-authored-by: Gonzalo Saad <saad.gonzalo.ale@gmail.com>
Co-authored-by: Mohit Alonja <monty16597@users.noreply.github.com>
Co-authored-by: Miguel Gagliardo <migag9@gmail.com>
Co-authored-by: Bert Blommers <info@bertblommers.nl>
2021-07-26 15:21:17 +01:00
Bert Blommers
7693d77333
Remove Py2 support (#3915) 2021-07-26 07:40:39 +01:00
psheets
b9a42816bd
Fixed validation on custom-resource in applicationautoscaling (#4026)
* Added ResourceTypeExceptions

* Added test for custom-resource

Co-authored-by: Phil Sheets <p.sheets@fetchrewards.com>
2021-06-23 16:57:09 +01:00
Ivan Zubenko
d3f20694a9
sort Route53 resource record sets (#3864)
* sort Route53 resource record sets

* address comments
2021-04-20 12:50:05 +01:00
tony-dot-sh
1b288b6936
DNSName key retrieval for list-hosted-zones-by-dns-name (#3774)
* DNSName key retrieval for list-hosted-zones-by-dns-name per https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListHostedZonesByName.html#API_ListHostedZonesByName_RequestSyntax

* Route53

 - uncomment return to be shared by zone list response
 - add test to return list hosted zone by dns name without '.' in FQDN

Co-authored-by: Tony Greising-Murschel <tony@platform.sh>
2021-03-16 12:58:16 +00:00
Rafael de Elvira
8a95878a81
Route53: Implement dummy GetChange endpoint (#3486)
* Route53: Implement dummy GetChange endpoint

* fix typo in GET_CHANGE_RESPONSE
2020-11-20 07:21:05 +00:00
Ayush Ghosh
7f73015f02
Fix XML encoding in Route53 JInja2 Templates #3469 (#3473)
* Use Jinja2 escape functionality to escape html attributes in value response

* Add tests

* fix formatting
2020-11-18 07:23:49 +00:00
Karthikeyan Singaravelan
7054143701
Fix deprecation warnings due to invalid escape sequences. (#3273)
* Fix deprecation warnings due to invalid escape sequences.

* Fix linter error.
2020-09-10 09:20:26 +01:00
jweite
49d92861c0
Iam cloudformation update, singificant cloudformation refactoring (#3218)
* IAM User Cloudformation Enhancements: update, delete, getatt.

* AWS::IAM::Policy Support

* Added unit tests for AWS:IAM:Policy for roles and groups.  Fixed bug related to groups.

* AWS:IAM:AccessKey CloudFormation support.

* Refactor of CloudFormation parsing.py methods to simplify and standardize how they call to the models.  Adjusted some models accordingly.

* Further model CloudFormation support changes to align with revised CloudFormation logic.  Mostly avoidance of getting resoure name from properties.

* Support for Kinesis Stream RetentionPeriodHours param.

* Kinesis Stream Cloudformation Tag Support.

* Added omitted 'region' param to boto3.client() calls in new tests.

Co-authored-by: Joseph Weitekamp <jweite@amazon.com>
2020-08-27 10:11:47 +01:00
Adam Richie-Halford
9a9a1d8413
Decentralize cloudformation naming responsibilities (#3201)
* #3127 - Decentralize CF naming responsibilities

* Decentralize CloudFormation naming responsibilities

* Update URLs in cloudformation_resource_type functions

* Fix flake8 errors

* Black formatting

* Add a bunch of imports to populate CloudFormationModel.__subclasses__

* Add noqa to s3 models import statement in cloudformation/parsing.py

* Black formatting

* Remove debugging print statement

Co-authored-by: Bert Blommers <info@bertblommers.nl>
2020-08-01 15:23:36 +01:00
Jon Nangle
9fdeaca589 Support GeoLocation and Failover on Route 53 2020-03-02 12:46:15 +00:00
Dejan Levec
877f3b056a Add IsTruncated to Route53.list_resource_record_sets 2019-12-27 19:32:31 +01:00
Asher Foa
96e5b1993d Run black on moto & test directories. 2019-10-31 10:36:05 -07:00
Don Kuntz
35507f33df
Don't error out on route53.list_tags_for_resource when resource has no tags
Without the added `return {}`, calling route53.list_tags_for_resource
when called with a ResourceId of a resource without any tags would
result in the error:
    jinja2.exceptions.UndefinedError: 'None' has no attribute 'items'

Because the LIST_TAGS_FOR_RESOURCE_RESPONSE was given None instead of
empty dict.

This now allows list_tags_for_resource to be called without issue on
tag-less resources.
2019-08-28 13:57:42 -05:00
sblumin
a2ac341e3d added support to UPSERT records that are not simple routing policy 2019-07-17 16:37:47 -07:00
Steve Pulec
414ff930ed
Merge branch 'master' into mark-alias-target 2019-07-07 23:11:53 -05:00
Steve Pulec
574055da2c
Merge pull request #2245 from vrtdev/bugfix/r53-delete-type
Route53 Delete: respect the given Type
2019-07-06 17:29:19 -05:00
Niels Laukens
5f46aa8c50
Reduced readability to please flake8 2019-06-18 11:04:19 +02:00
Niels Laukens
a5d1b22534
Fix CloudFormation usage 2019-06-18 11:04:03 +02:00
Niels Laukens
6e97881896
Route53 Delete: respect the given Type 2019-06-17 15:53:32 +02:00
Niels Laukens
9ef69a617a
Route53 get_record_sets: sort names lexicographically 2019-06-14 17:07:59 +02:00
Niels Laukens
a9319fad04
Route53 get_record_sets: filter type after name
According to the documentation [1], name should be filtered first,
followed by type.

> If you specify both Name and Type
> The results begin with the first resource record set in the list
> whose name is greater than or equal to Name, and whose type is
> greater than or equal to Type.

[1]: https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListResourceRecordSets.html
2019-06-14 16:15:14 +02:00
Elliott Butler
9bd15b5a09
Fix route53 alias response.
This commit
* includes the work by @elliotmb in #1694,
* removes the AliasTarget.DNSName copy into a RecordSet.Value,
* fixes and adds tests.
2019-05-31 10:54:18 +01:00
Mark Challoner
d61ce0584b
Check record type when upserting.
Previously this was not checked so an existing record (e.g. with type A) would be overwritten on upsert by a record with the same name but different type (e.g. TXT).

This commit also:

* publicizes the type variable appending the underscore affix (required to maintain compatibility with CloudFormation which sets type as the CF type),
* fixes a wrong assumption in tests that UPSERT applies a change to Type (it creates a distinct record instead),
* Updates ACM model to use serial_number instead of deprecated and remove serial causing Travis failures.
2019-03-01 16:44:50 +00:00
Tatsuya Hoshino
293b25a8f9 Add a missing trailing dot to the Name of ResourceRecordSet
AWS Route53 treats www.example.com (without a trailing dot)
and www.example.com. (with a trailing dot) as identical.
Hence, after creating a `www.example.com` record,
`www.example.com.` name is saved in Route53.
But moto treated `www.example.com` and `www.example.com.` as different.

This commit fixes the moto behavior.
2018-11-20 21:43:59 +09:00
Steve Pulec
7737832bf3 Fix bug adding None TTL to route53 responses. 2018-03-29 10:08:39 -04:00
Giorgos-Christos Dimitriou
f18259d49e Change REPONSE to RESPONSE for consistency (#1538) 2018-03-26 12:26:24 -07:00
Andrey Melentyev
4e390530a7 Do not treat StartRecordName and StartRecordType in the list_resource_record_sets as filters
According to AWS API reference and Boto documentation they are to begin the record listing from,
not for filtering. So their current behavior in moto is not consistent with AWS.
2017-10-23 21:58:39 +02:00
Terry Cain
ae6f9dcb71
Fixes #1282 2017-10-21 22:10:45 +01:00
Terry Cain
17d9701d19
Updated R53 ID's to match what AWS do now 2017-09-22 23:50:01 +01:00
Abhinav I
06d65fd3da Added test cases that covers route53 client's <change_resource_record_sets> function. Also added validation to throw a ClientError when the record set does not match the hosted zone's config 2017-04-28 21:26:32 +05:30
Steve Pulec
a6e762340d Merge pull request #867 from 2rs2ts/flexible-route53-hostedzoneid-lookup
Be flexible with Route53 Hosted Zone IDs with /hostedzone/ prefix
2017-03-16 22:55:13 -04:00
Andrew Garrett
f2b7ba03b4 Forgot that lstrip works on character sets, not substrings
I suppose this is one way to do it. I could have also split and taken
the last element. Not sure which is best. 🤔
2017-03-17 02:45:58 +00:00
Andrew Garrett
6346e44c9d Be flexible with Route53 Hosted Zone IDs with /hostedzone/ prefix
We will continue to store just the unique ID, but since the AWS API
returns /hostedzone/<id>, we should accept attempts to pass that back.
For example, both just the ID as well as /hostedzone/<id> work for
specifying the HostedZoneId of a ResourceRecordSet in CloudFormation. So
we should support that too.

Signed-off-by: Scott Greene <scott.greene@getbraintree.com>
2017-03-14 19:52:36 +00:00
Andrew Garrett
b9ea947aa0 Add ListHostedZonesByName 2017-03-13 15:27:45 +00:00
Steve Pulec
6d422d1f37 Add BaseModel to all models. 2017-03-11 23:41:12 -05:00
Steve Pulec
3b4ef2cf15 Merge in master. 2017-03-05 09:58:39 -05:00