diff --git a/CHANGELOG.md b/CHANGELOG.md index e8b5ff825..0b04dda1a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,40 @@ Moto Changelog ============== +3.1.9 +----- +Docker Digest for 3.1.9: + + New Services: + * EBS: + * complete_snapshot() + * get_snapshot_block() + * list_changed_blocks() + * list_snapshot_blocks() + * put_snapshot_block() + * start_snapshot() + + New Methods: + * CloudFront: + * update_distribution() + * Datasets: + * create_dataset() + * delete_dataset() + * describe_dataset() + * list_datasets() + * update_dataset() + * Glue: + * list_crawlers() + * Rekognition: + * get_face_search() + * start_face_seach() + + Miscellaneous: + * EC2:describe_vpc_endpoints() now supports the `vpc-endpoint-type`-filter + * RDS:create_db_cluster() now supports the EnableCloudwatchLogsExports-parameter + * RDS:create_db_instance() now supports the EnableCloudwatchLogsExports-parameter + * SSM now integrates with SecretsManager + 3.1.8 ----- Docker Digest for 3.1.8: _sha256:a7d8c55eec8d75d75dd2532a6a0a9647935238236a54e4de7bb3f72bc28b7bf8_ diff --git a/IMPLEMENTATION_COVERAGE.md b/IMPLEMENTATION_COVERAGE.md index ab106b596..5143fb9df 100644 --- a/IMPLEMENTATION_COVERAGE.md +++ b/IMPLEMENTATION_COVERAGE.md @@ -536,7 +536,7 @@ ## cloudfront
-4% implemented +5% implemented - [ ] associate_alias - [ ] create_cache_policy @@ -620,7 +620,7 @@ - [ ] untag_resource - [ ] update_cache_policy - [ ] update_cloud_front_origin_access_identity -- [ ] update_distribution +- [X] update_distribution - [ ] update_field_level_encryption_config - [ ] update_field_level_encryption_profile - [ ] update_function @@ -1069,7 +1069,7 @@ ## databrew
-27% implemented +34% implemented - [ ] batch_delete_recipe_version - [X] create_dataset @@ -1802,6 +1802,7 @@ - [ ] get_groups_for_capacity_reservation - [ ] get_host_reservation_purchase_preview - [ ] get_instance_types_from_instance_requirements +- [ ] get_instance_uefi_data - [ ] get_ipam_address_history - [ ] get_ipam_pool_allocations - [ ] get_ipam_pool_cidrs @@ -2789,7 +2790,7 @@ - [ ] get_workflow_runs - [ ] import_catalog_to_glue - [ ] list_blueprints -- [ ] list_crawlers +- [X] list_crawlers - [ ] list_custom_entity_types - [ ] list_dev_endpoints - [X] list_jobs @@ -4516,7 +4517,7 @@ ## rekognition
-3% implemented +6% implemented - [ ] compare_faces - [ ] create_collection @@ -4546,7 +4547,7 @@ - [ ] get_celebrity_recognition - [ ] get_content_moderation - [ ] get_face_detection -- [ ] get_face_search +- [X] get_face_search - [ ] get_label_detection - [ ] get_person_tracking - [ ] get_segment_detection @@ -4564,7 +4565,7 @@ - [ ] start_celebrity_recognition - [ ] start_content_moderation - [ ] start_face_detection -- [ ] start_face_search +- [X] start_face_search - [ ] start_label_detection - [ ] start_person_tracking - [ ] start_project_version diff --git a/docs/docs/services/cloudfront.rst b/docs/docs/services/cloudfront.rst index ff6ff703e..48c983208 100644 --- a/docs/docs/services/cloudfront.rst +++ b/docs/docs/services/cloudfront.rst @@ -30,8 +30,10 @@ cloudfront - [ ] create_cloud_front_origin_access_identity - [X] create_distribution - This has been tested against an S3-distribution with the simplest possible configuration. - Please raise an issue if we're not persisting/returning the correct attributes for your use-case. + This has been tested against an S3-distribution with the + simplest possible configuration. Please raise an issue if + we're not persisting/returning the correct attributes for your + use-case. - [ ] create_distribution_with_tags @@ -122,13 +124,10 @@ cloudfront - [ ] update_cache_policy - [ ] update_cloud_front_origin_access_identity - [X] update_distribution - + The IfMatch-value is ignored - any value is considered valid. Calling this function without a value is invalid, per AWS' behaviour - - This implementation is immature, and tests the basic - functionality of updating an exisint distribution with very - simple changes. + - [ ] update_field_level_encryption_config - [ ] update_field_level_encryption_profile diff --git a/docs/docs/services/ec2.rst b/docs/docs/services/ec2.rst index 47b9237ac..555f9feee 100644 --- a/docs/docs/services/ec2.rst +++ b/docs/docs/services/ec2.rst @@ -427,6 +427,7 @@ ec2 - [ ] get_groups_for_capacity_reservation - [ ] get_host_reservation_purchase_preview - [ ] get_instance_types_from_instance_requirements +- [ ] get_instance_uefi_data - [ ] get_ipam_address_history - [ ] get_ipam_pool_allocations - [ ] get_ipam_pool_cidrs diff --git a/docs/docs/services/glue.rst b/docs/docs/services/glue.rst index 1eba5dc41..611ae3732 100644 --- a/docs/docs/services/glue.rst +++ b/docs/docs/services/glue.rst @@ -150,7 +150,7 @@ glue - [ ] get_workflow_runs - [ ] import_catalog_to_glue - [ ] list_blueprints -- [ ] list_crawlers +- [X] list_crawlers - [ ] list_custom_entity_types - [ ] list_dev_endpoints - [X] list_jobs diff --git a/docs/docs/services/rekognition.rst b/docs/docs/services/rekognition.rst index f88c64bb5..f38bdf7bf 100644 --- a/docs/docs/services/rekognition.rst +++ b/docs/docs/services/rekognition.rst @@ -55,7 +55,11 @@ rekognition - [ ] get_celebrity_recognition - [ ] get_content_moderation - [ ] get_face_detection -- [ ] get_face_search +- [X] get_face_search + + This returns hardcoded values and none of the parameters are taken into account. + + - [ ] get_label_detection - [ ] get_person_tracking - [ ] get_segment_detection @@ -77,7 +81,7 @@ rekognition - [ ] start_celebrity_recognition - [ ] start_content_moderation - [ ] start_face_detection -- [ ] start_face_search +- [X] start_face_search - [ ] start_label_detection - [ ] start_person_tracking - [ ] start_project_version diff --git a/moto/backend_index.py b/moto/backend_index.py index e9e122a33..e29332752 100644 --- a/moto/backend_index.py +++ b/moto/backend_index.py @@ -1,4 +1,4 @@ -# autogenerated by ./scripts/update_backend_index.py +# autogenerated by scripts/update_backend_index.py import re backend_url_patterns = [ @@ -92,7 +92,10 @@ backend_url_patterns = [ ("medialive", re.compile("https?://medialive\\.(.+)\\.amazonaws.com")), ("mediapackage", re.compile("https?://mediapackage\\.(.+)\\.amazonaws.com")), ("mediastore", re.compile("https?://mediastore\\.(.+)\\.amazonaws\\.com")), - ("mediastore-data", re.compile("https?://data.mediastore\\.(.+)\\.amazonaws.com")), + ( + "mediastore-data", + re.compile("https?://data\\.mediastore\\.(.+)\\.amazonaws.com"), + ), ("mq", re.compile("https?://mq\\.(.+)\\.amazonaws\\.com")), ("opsworks", re.compile("https?://opsworks\\.us-east-1\\.amazonaws.com")), ("organizations", re.compile("https?://organizations\\.(.+)\\.amazonaws\\.com")), @@ -126,7 +129,7 @@ backend_url_patterns = [ "s3control", re.compile("https?://([0-9]+)\\.s3-control\\.(.+)\\.amazonaws\\.com"), ), - ("sagemaker", re.compile("https?://api.sagemaker\\.(.+)\\.amazonaws.com")), + ("sagemaker", re.compile("https?://api\\.sagemaker\\.(.+)\\.amazonaws.com")), ("sdb", re.compile("https?://sdb\\.(.+)\\.amazonaws\\.com")), ("secretsmanager", re.compile("https?://secretsmanager\\.(.+)\\.amazonaws\\.com")), ( diff --git a/moto/cloudformation/models.py b/moto/cloudformation/models.py index b50fd7e1b..855050bf4 100644 --- a/moto/cloudformation/models.py +++ b/moto/cloudformation/models.py @@ -528,6 +528,12 @@ def filter_stacks(all_stacks, status_filter): class CloudFormationBackend(BaseBackend): + """ + CustomResources are supported when running Moto in ServerMode. + Because creating these resources involves running a Lambda-function that informs the MotoServer about the status of the resources, the MotoServer has to be reachable for outside connections. + This means it has to run inside a Docker-container, or be started using `moto_server -h 0.0.0.0`. + """ + def __init__(self, region=None): self.stacks = OrderedDict() self.stacksets = OrderedDict() diff --git a/moto/mediastoredata/urls.py b/moto/mediastoredata/urls.py index 64d1c8f82..2180b7b08 100644 --- a/moto/mediastoredata/urls.py +++ b/moto/mediastoredata/urls.py @@ -1,7 +1,7 @@ from .responses import MediaStoreDataResponse url_bases = [ - r"https?://data.mediastore\.(.+)\.amazonaws.com", + r"https?://data\.mediastore\.(.+)\.amazonaws.com", ] response = MediaStoreDataResponse() diff --git a/moto/sagemaker/urls.py b/moto/sagemaker/urls.py index 292d3ed8f..49bbd7324 100644 --- a/moto/sagemaker/urls.py +++ b/moto/sagemaker/urls.py @@ -1,7 +1,7 @@ from .responses import SageMakerResponse url_bases = [ - r"https?://api.sagemaker\.(.+)\.amazonaws.com", + r"https?://api\.sagemaker\.(.+)\.amazonaws.com", ] url_paths = { diff --git a/moto/ssm/models.py b/moto/ssm/models.py index 6ef936aa0..fbafb746e 100644 --- a/moto/ssm/models.py +++ b/moto/ssm/models.py @@ -834,6 +834,8 @@ class SimpleSystemManagerBackend(BaseBackend): - /aws/service/global-infrastructure/services Note that these are hardcoded, so they may be out of date for new services/regions. + + Integration with SecretsManager is also supported. """ def __init__(self, region):