diff --git a/CHANGELOG.md b/CHANGELOG.md index 58d99806d..1862b536e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,49 @@ Moto Changelog ============== +4.0.1 +----- +Docker Digest for 4.0.1: + + New Services: + * Personalize: + * create_schema() + * delete_schema() + * describe_schema() + * list_schemas() + + * Signer: + * cancel_signing_profile() + * get_signing_profile() + * list_signing_platforms() + * put_signing_profile() + + New Methods: + * AWS Lambda: + * create_function_url_config() + * delete_function_url_config() + * get_function_url_config() + * update_function_url_config() + + * Glue: + * update_database() + + * EC2: + * describe_volumes_modifications() + * modify_volume() + + * S3: + * delete_bucket_ownership_rule() + * get_bucket_ownership_rule() + * put_bucket_ownership_rule() + + Miscellaneous: + * CloudFormation: Fixed a bug where deletion of AWS::Route53::RecordSet would result in an error + * DynamoDB: Fixed a bug where a TableARN would always return region=us-east-1 + * EC2:create_launch_template() now supports the TagSpecifications-parameter + * EC2:describe_instance_types() now supports the Filters-parameter + * EC2:run_instances() now supports the HibernationOptions-param + 4.0.0 ----- Docker Digest for 4.0.0: _sha256:348b516e706e19544dec3643d25304e24b75e48c92b1a6d347e5cd8c349cd8cd_ diff --git a/IMPLEMENTATION_COVERAGE.md b/IMPLEMENTATION_COVERAGE.md index d6bd15a10..1e1db0b3d 100644 --- a/IMPLEMENTATION_COVERAGE.md +++ b/IMPLEMENTATION_COVERAGE.md @@ -1542,7 +1542,7 @@ ## ec2
-35% implemented +36% implemented - [ ] accept_reserved_instances_exchange_quote - [ ] accept_transit_gateway_multicast_domain_associations @@ -2718,7 +2718,7 @@ ## forecast
-9% implemented +7% implemented - [ ] create_auto_predictor - [ ] create_dataset @@ -2731,6 +2731,9 @@ - [ ] create_monitor - [ ] create_predictor - [ ] create_predictor_backtest_export_job +- [ ] create_what_if_analysis +- [ ] create_what_if_forecast +- [ ] create_what_if_forecast_export - [ ] delete_dataset - [X] delete_dataset_group - [ ] delete_dataset_import_job @@ -2742,6 +2745,9 @@ - [ ] delete_predictor - [ ] delete_predictor_backtest_export_job - [ ] delete_resource_tree +- [ ] delete_what_if_analysis +- [ ] delete_what_if_forecast +- [ ] delete_what_if_forecast_export - [ ] describe_auto_predictor - [ ] describe_dataset - [X] describe_dataset_group @@ -2753,6 +2759,9 @@ - [ ] describe_monitor - [ ] describe_predictor - [ ] describe_predictor_backtest_export_job +- [ ] describe_what_if_analysis +- [ ] describe_what_if_forecast +- [ ] describe_what_if_forecast_export - [ ] get_accuracy_metrics - [X] list_dataset_groups - [ ] list_dataset_import_jobs @@ -2766,6 +2775,9 @@ - [ ] list_predictor_backtest_export_jobs - [ ] list_predictors - [ ] list_tags_for_resource +- [ ] list_what_if_analyses +- [ ] list_what_if_forecast_exports +- [ ] list_what_if_forecasts - [ ] resume_resource - [ ] stop_resource - [ ] tag_resource @@ -4702,6 +4714,7 @@ - [X] stop_db_cluster - [X] stop_db_instance - [ ] stop_db_instance_automated_backups_replication +- [ ] switchover_read_replica
## redshift @@ -5097,7 +5110,7 @@ ## s3
-58% implemented +61% implemented - [X] abort_multipart_upload - [X] complete_multipart_upload @@ -5112,7 +5125,7 @@ - [ ] delete_bucket_inventory_configuration - [X] delete_bucket_lifecycle - [ ] delete_bucket_metrics_configuration -- [ ] delete_bucket_ownership_controls +- [X] delete_bucket_ownership_controls - [X] delete_bucket_policy - [X] delete_bucket_replication - [X] delete_bucket_tagging @@ -5135,7 +5148,7 @@ - [ ] get_bucket_metrics_configuration - [ ] get_bucket_notification - [X] get_bucket_notification_configuration -- [ ] get_bucket_ownership_controls +- [X] get_bucket_ownership_controls - [X] get_bucket_policy - [ ] get_bucket_policy_status - [X] get_bucket_replication @@ -5177,7 +5190,7 @@ - [ ] put_bucket_metrics_configuration - [ ] put_bucket_notification - [X] put_bucket_notification_configuration -- [ ] put_bucket_ownership_controls +- [X] put_bucket_ownership_controls - [X] put_bucket_policy - [X] put_bucket_replication - [ ] put_bucket_request_payment @@ -6402,6 +6415,7 @@ - sso - sso-oidc - storagegateway +- support-app - synthetics - timestream-query - transfer @@ -6418,4 +6432,4 @@ - workspaces - workspaces-web - xray -
+
\ No newline at end of file diff --git a/docs/docs/services/ec2.rst b/docs/docs/services/ec2.rst index 65c5a6412..fd3ed0b31 100644 --- a/docs/docs/services/ec2.rst +++ b/docs/docs/services/ec2.rst @@ -347,7 +347,7 @@ ec2 - [ ] describe_volume_attribute - [ ] describe_volume_status - [X] describe_volumes -- [ ] describe_volumes_modifications +- [X] describe_volumes_modifications - [X] describe_vpc_attribute - [ ] describe_vpc_classic_link - [ ] describe_vpc_classic_link_dns_support @@ -508,7 +508,7 @@ ec2 - [X] modify_transit_gateway - [ ] modify_transit_gateway_prefix_list_reference - [X] modify_transit_gateway_vpc_attachment -- [ ] modify_volume +- [X] modify_volume - [ ] modify_volume_attribute - [X] modify_vpc_attribute - [ ] modify_vpc_endpoint diff --git a/docs/docs/services/forecast.rst b/docs/docs/services/forecast.rst index 85edd95cf..a8aec17ef 100644 --- a/docs/docs/services/forecast.rst +++ b/docs/docs/services/forecast.rst @@ -36,6 +36,9 @@ forecast - [ ] create_monitor - [ ] create_predictor - [ ] create_predictor_backtest_export_job +- [ ] create_what_if_analysis +- [ ] create_what_if_forecast +- [ ] create_what_if_forecast_export - [ ] delete_dataset - [X] delete_dataset_group - [ ] delete_dataset_import_job @@ -47,6 +50,9 @@ forecast - [ ] delete_predictor - [ ] delete_predictor_backtest_export_job - [ ] delete_resource_tree +- [ ] delete_what_if_analysis +- [ ] delete_what_if_forecast +- [ ] delete_what_if_forecast_export - [ ] describe_auto_predictor - [ ] describe_dataset - [X] describe_dataset_group @@ -58,6 +64,9 @@ forecast - [ ] describe_monitor - [ ] describe_predictor - [ ] describe_predictor_backtest_export_job +- [ ] describe_what_if_analysis +- [ ] describe_what_if_forecast +- [ ] describe_what_if_forecast_export - [ ] get_accuracy_metrics - [X] list_dataset_groups - [ ] list_dataset_import_jobs @@ -71,6 +80,9 @@ forecast - [ ] list_predictor_backtest_export_jobs - [ ] list_predictors - [ ] list_tags_for_resource +- [ ] list_what_if_analyses +- [ ] list_what_if_forecast_exports +- [ ] list_what_if_forecasts - [ ] resume_resource - [ ] stop_resource - [ ] tag_resource diff --git a/docs/docs/services/rds.rst b/docs/docs/services/rds.rst index 01458fb45..807dc9f4d 100644 --- a/docs/docs/services/rds.rst +++ b/docs/docs/services/rds.rst @@ -161,4 +161,5 @@ rds - [X] stop_db_cluster - [X] stop_db_instance - [ ] stop_db_instance_automated_backups_replication +- [ ] switchover_read_replica diff --git a/docs/docs/services/s3.rst b/docs/docs/services/s3.rst index d07802e56..977feb9a2 100644 --- a/docs/docs/services/s3.rst +++ b/docs/docs/services/s3.rst @@ -105,7 +105,7 @@ s3 - [ ] put_bucket_metrics_configuration - [ ] put_bucket_notification - [X] put_bucket_notification_configuration - + The configuration can be persisted, but at the moment we only send notifications to the following targets: - AWSLambda diff --git a/moto/s3/models.py b/moto/s3/models.py index 2f2dbe8cc..3dd700757 100644 --- a/moto/s3/models.py +++ b/moto/s3/models.py @@ -1618,13 +1618,13 @@ class S3Backend(BaseBackend, CloudWatchMetricProvider): def delete_bucket_encryption(self, bucket_name): self.get_bucket(bucket_name).encryption = None - def get_bucket_ownership_rule(self, bucket_name): + def get_bucket_ownership_controls(self, bucket_name): return self.get_bucket(bucket_name).ownership_rule - def put_bucket_ownership_rule(self, bucket_name, ownership): + def put_bucket_ownership_controls(self, bucket_name, ownership): self.get_bucket(bucket_name).ownership_rule = ownership - def delete_bucket_ownership_rule(self, bucket_name): + def delete_bucket_ownership_controls(self, bucket_name): self.get_bucket(bucket_name).ownership_rule = None def get_bucket_replication(self, bucket_name): diff --git a/moto/s3/responses.py b/moto/s3/responses.py index bc16d3ed1..8241761cf 100644 --- a/moto/s3/responses.py +++ b/moto/s3/responses.py @@ -564,7 +564,7 @@ class S3Response(BaseResponse): template = self.response_template(S3_REPLICATION_CONFIG) return 200, {}, template.render(replication=replication) elif "ownershipControls" in querystring: - ownership_rule = self.backend.get_bucket_ownership_rule(bucket_name) + ownership_rule = self.backend.get_bucket_ownership_controls(bucket_name) if not ownership_rule: template = self.response_template(S3_ERROR_BUCKET_ONWERSHIP_NOT_FOUND) return 404, {}, template.render(bucket_name=bucket_name) @@ -846,7 +846,7 @@ class S3Response(BaseResponse): return "" elif "ownershipControls" in querystring: ownership_rule = self._ownership_rule_from_body() - self.backend.put_bucket_ownership_rule( + self.backend.put_bucket_ownership_controls( bucket_name, ownership=ownership_rule ) return "" @@ -943,7 +943,7 @@ class S3Response(BaseResponse): self.backend.delete_bucket_replication(bucket_name) return 204, {}, "" elif "ownershipControls" in querystring: - self.backend.delete_bucket_ownership_rule(bucket_name) + self.backend.delete_bucket_ownership_controls(bucket_name) return 204, {}, "" removed_bucket = self.backend.delete_bucket(bucket_name)