Index index by Group index by Distribution index by Vendor index by creation date index by Name Mirrors Help Search

python311-moto-server-5.0.16-1.1 RPM for noarch

From OpenSuSE Tumbleweed for noarch

Name: python311-moto-server Distribution: openSUSE Tumbleweed
Version: 5.0.16 Vendor: openSUSE
Release: 1.1 Build date: Fri Oct 4 11:42:45 2024
Group: Development/Languages/Python Build host: reproducible
Size: 10834 Source RPM: python-moto-5.0.16-1.1.src.rpm
Packager: https://bugs.opensuse.org
Url: https://github.com/getmoto/moto
Summary: Library to mock out the boto library -- moto[server]
A library that allows your python tests to mock out the boto
library. Meta package to install server extra (moto[server])

Provides

Requires

License

Apache-2.0

Changelog

* Fri Oct 04 2024 ecsos <ecsos@opensuse.org>
  - Update to 5.0.16:
    [#] New Services:
    * OpenSearch Ingestion Service:
    * create_pipeline()
    * delete_pipeline()
    * get_pipeline()
    * list_pipelines()
    * list_tags_for_resource()
    * start_pipeline()
    * stop_pipeline()
    * tag_resource()
    * untag_resource()
    * update_pipeline()
    [#] New Methods:
    * CloudFront:
    * get_invalidation()
    * Directory Service:
    * create_trust()
    * delete_trust()
    * describe_ldaps_settings()
    * describe_trusts()
    * disable_ldaps()
    * enable_ldaps()
    * EC2:
    * modify_ebs_default_kms_key_id()
    [#] Miscellaneous:
    * CloudFormation: AWS::ECS::TaskDefinition now correctly validates the provided memory parameters
    * EC2: create_network_acl_entry() now supports the Ipv6CidrBlock-parameter
    * EC2: create_tags() now takes existing tags into account before throwing a TagLimitExceeded-exception
    * Firehose: put_record_batch() no longer fails when the SnowflakeDestinationConfiguration-parameter is set
    * FSx: The FileSystemID now uses the same pattern as AWS (fs-xxxxxxxx)
    * GuardDuty: create_detector() now supports the Features-parameter
    * Polly has been updated with the latest voices
    * RDS: modify_option_groups() now correctly parses OptionsToInclude
    * ResourceGroupsTaggingAPI: get_resources() now supports EC2 NAT Gateways, route tables, subnets
    * Scheduler: create_chedule() now validates the start_date-parameter for recurrent schedule expressions
    * SNS: publish() and publish_batch now support MessageStructure=json
    * WAFv2: associate_web_acl() now allows any resource to be associated
  - Update to 5.0.15:
    [#] New Services:
    * MemoryDB:
    * create_cluster()
    * create_snapshot()
    * create_subnet_group()
    * delete_cluster()
    * delete_snapshot()
    * delete_subnet_group()
    * describe_clusters()
    * describe_snapshots()
    * describe_subnet_groups()
    * list_tags()
    * tag_resource()
    * untag_resource()
    * update_cluster()
    * WorkspacesWeb:
    * associate_browser_settings()
    * associate_network_settings()
    * associate_user_access_logging_settings()
    * associate_user_settings()
    * create_browser_settings()
    * create_network_settings()
    * create_portal()
    * create_user_access_logging_settings()
    * create_user_settings()
    * delete_browser_settings()
    * delete_network_settings()
    * delete_portal()
    * delete_user_access_logging_settings()
    * delete_user_settings()
    * get_browser_settings()
    * get_network_settings()
    * get_portal()
    * get_user_access_logging_settings()
    * get_user_settings()
    * list_browser_settings()
    * list_network_settings()
    * list_portals()
    * list_user_access_logging_settings()
    * list_user_settings()
    [#] New Methods:
    * ApiGateway:
    * get_account()
    * update_account()
    * AppSync:
    * create_api_cache()
    * delete_api_cache()
    * get_api_cache()
    [#] Miscellaneous:
    * DynamoDB: get/delete/update_item() now validates all provided keys exist
    * Firehose: create_delivery_stream() now supports the SnowflakeDestinationConfiguration-parameter
    * S3: put_object() now support conditional writes
  - Update to 5.0.14:
    [#] General:
    * All JSON files in the binary distribution are shipped compressed, significantly reducing the size on disk
    [#] New Services:
    * Shield:
    * create_subscription()
    * describe_subscription()
    * TimestreamQuery:
    * create_scheduled_query()
    * delete_scheduled_query()
    * describe_endpoints()
    * describe_scheduled_query()
    * query()
    * update_scheduled_query()
    [#] New Methods:
    * AppMesh:
    * create_virtual_node()
    * delete_virtual_node()
    * describe_virtual_node()
    * list_virtual_nodes()
    * update_virtual_node()
    * create_virtual_router()
    * delete_virtual_router()
    * describe_virtual_router()
    * list_virtual_routers()
    * update_virtual_router()
    * create_route()
    * delete_route()
    * describe_route()
    * list_routes()
    * update_route()
    [#] Miscellaneous:
    * CloudFormation templates now support the Fn::Base64-function
    * CognitoIDP: Enhanced support for MFA flows/challenges
    * DynamoDB: update_item() now validates empty string sets
    * EC2: describe_snapshots() now supports the kms-key-id filter
    * EC2: run_instances() now supports the parameter Ipv6AddressCount
    * ECS: Tasks can now be created with unknown security groups
    * IAM: generate_credentials_report() now shows active certificates
    * KMS: sign() now supports Alias ARNs
    * Route53: list_resource_record_sets() now validates record names
    * S3: create_bucket() now has additional LocationConstraint-validation
    * S3: delete_objects() now respects BucketPolicy and ObjectLocks
    * S3: head_object() now handles Range-parameter correctly
    * SageMaker: search() now supports the CONTAINS filter
    * Sagemaker Runtime: invoke_endpoint_async() now supports failure responses
    * SNS: Signature of HTTP Messages are now valid
    * SSM: get_maintenance_window() now returns an exception if the window does not exist
    * SQS: delete_message_batch() now validates there's at least one entry
  - Update to 5.0.13:
    [#] General:
    * Support for Python 3.13
    * Moto now supports whitelisting which services can be used
    [#] New Services:
    * AppMesh:
    * create_mesh()
    * delete_mesh()
    * describe_mesh()
    * list_meshes()
    * list_tags_for_resource()
    * tag_resource()
    * update_mesh()
    * Transfer:
    * create_server()
    * create_user()
    * delete_server()
    * delete_ssh_public_key()
    * delete_user()
    * describe_server()
    * describe_user()
    * import_ssh_public_key()
    [#] New Methods:
    * Athena:
    * delete_work_group()
    * CodeBuild:
    * batch_get_projects()
    * DynamoDB:
    * delete_resource_policy()
    * get_resource_policy()
    * put_resource_policy()
    * EMR:
    * get_block_public_access_configuration()
    * put_block_public_access_configuration()
    * QLDB:
    * create_ledger()
    * delete_ledger()
    * describe_ledger()
    * list_tags_for_resource()
    * tag_resource()
    * update_ledger()
    * SageMaker:
    * create_data_quality_job_definition()
    * create_model_bias_job_definition()
    * create_model_card()
    * delete_data_quality_job_definition()
    * delete_model_bias_job_definition()
    * delete_model_card()
    * describe_data_quality_job_definition()
    * describe_model_bias_job_definition()
    * describe_model_card()
    * list_data_quality_job_definitions()
    * list_model_bias_job_definitions()
    * list_model_cards()
    * list_model_card_versions()
    [#] Miscellaneous:
    * ACM-PCA: create_certificate_authority() now uses the provided Subject
    * Athena: The default work group now has the correct configuration
    * ApplicationAutoscaling - put_scheduled_action() now allows multiple actions per Namespace/Dimension/Id
    * Autoscaling: update_group() now validates that the Group exists
    * Batch: now supports parameters in Job commands
    * CloudFormation: create_change_set() now validates the provided ChangeSetName
    * CloudFormation: describe_stacks() now returns export names in the Outputs
    * CloudFormation: AWS::Events::Rule's now also creates/deletes Targets
    * CloudWatch: get_metric_data() now returns everything when querying for Metric Insights Queries
    * CodeBuild: create_project() now supports the parameter description, tags, cache, timeoutInMinutes,
      queuedTimeoutInMinutes, sourceVersion, logsConfig and vpcConfig
    * CognitoIDP: sign_up() now returns CodeDeliveryDetails
    * DynamoDB: export_table_to_point_in_time() now exports data in correct format
    * DynamoDB: update_item() now validates an empty ExpressionAttributeValues and UpdateExpression
    * DynamoDB: All applicable methods that accept a TableName-parameter now also accept the ARN of the table
    * EC2: describe_security_group_rules() now correctly exposes rules with duplicate port/protocol values
    * EC2: Terminating an instance now also terminates any NIC's
    * EventBridge: create_connection() now creates a KMS Secret
    * EventBridge: Messages are now formatted using the InputTemplate, if provided
    * KMS: describe_key() now exposes the MultiRegionConfiguration-attribute
    * Organizations: create_account() now comes preconfigured with an IAM role
    * RDS: update_db_instance() now supports the CloudwatchLogsExportConfiguration-parameter
    * ResourceGroupsTagging API now supports additional SageMaker resources
      (CompilationJobs, Domains, ModelExplainabilityJobDefinition, ModelQualityJobDefinition, HyperParameterTuningJob)
    * S3: copy_object() now respects the CopySourceIfNoneMatch-parameter
    * SageMaker: search() now supports ModelPackageGroups
    * StepFunctions now has improved JSONPath support
    * StepFunctions now supports MaxItem/MaxItemPath/MaxConcurrencyPath
    * StepFunctions now supports MaxAttempts with value 0
  - Update to 5.0.12:
    [#] General:
    * The MotoProxy can now be run on Windows
    [#] New Services:
    * DirectConnect:
    * create_connection()
    * delete_connection()
    * describe_connections()
    * update_connection()
    * DynamoDB:
    * describe_export()
    * export_table_to_point_in_time()
    * list_export()
    * NetworkManager:
    * create_device()
    * create_link()
    * create_link()
    * delete_device()
    * delete_link()
    * delete_site()
    * get_devices()
    * get_links()
    * get_sites()
    * list_tags_for_resource()
    * SageMaker:
    * list_endpoints()
    * list_endpoint_configs()
    * create_auto_ml_job_v2()
    * describe_auto_ml_job_v2()
    * list_auto_ml_jobs()
    * stop_auto_ml_job()
    * create_compilation_job()
    * describe_compilation_job()
    * list_compilation_jobs()
    * delete_compilation_job()
    * create_domain()
    * describe_domain()
    * list_domains()
    * delete_domain()
    * create_model_explainability_job_definition()
    * describe_model_explainability_job_definition()
    * list_model_explainability_job_definitions()
    * delete_model_explainability_job_definition()
    * create_hyper_parameter_tuning_job()
    * describe_hyper_parameter_tuning_job()
    * list_hyper_parameter_tuning_jobs()
    * delete_hyper_parameter_tuning_job()
    * create_model_quality_job_definition()
    * describe_model_quality_job_definition()
    * list_model_quality_job_definitions()
    * delete_model_quality_job_definition()
    * Route53:
    * list_tags_for_resource()
    [#] Miscellaneous:
    * ACM: export_certificate() now only allows exporting private certificates
    * ACM: DomainValidationOptions now have SUCCESS-status, fixing the `certificate_validated` waiter
    * Athena: QueryResults are now stored in S3
    * CloudFormation: update_stack() now persists the new parameters provided
    * CloudFormation: update_stack() now understands UsePreviousValue=False
    * CloudFormation: update_stack() now throws an exception when using UsePreviousValue=True and a new parameter value
    * CloudFormation: update_stack() is now able to update resources where only the parameters have changed
    * CloudFormation: AWS::S3::Bucket resources will now create/update Tags
    * CloudFormation: AWS::S3::Bucket resources are no longer recreated for every update
    * CognitoIDP: initiate_auth() now supports USERNAME_PASSWORD_AUTH and SMS/Software Token MFA
    * CognitoIDP: initiate_auth() now returns th email in the ID-token claims
    * DynamoDB: query() now sorts the results correctly when querying GSI data with identical hash keys
    * EC2: describe_security_group_rules() now enumerates multiple rules correctly
    * EC2: run_instances() can now use $Default or $Latest launch template version
    * Events: list_targets_by_rule() now supports pagination
    * EventBridge Scheduler - get_schedule() now returns the ActionAfterCompletion
    * Firehose: create_delivery_stream() now creates S3 files with the correct filename if no prefix is provided
    * IOT: Certificates hashes can now be computed using the DER encoding, per the AWS spec
      This is an opt-in behaviour, and can be enabled with the following configuration:
      @mock_aws(config={"iot": {"use_valid_cert": True}})
    * ResourceGroupsTaggingAPI: tag_resources() now supports SageMaker resources
    * S3: head_object()/get_object() now support the PartNumber-argument
    * S3: put_object() now correctly enforces the BucketPolicy when creating new objects
    * SESv2: send_email() now returns the MessageId
  - Update to 5.0.11:
    [#] New Methods:
    * ServiceDiscovery:
    * deregister_instance()
    * discover_instances()
    * discover_instances_revision()
    * get_instance()
    * get_instances_health_status()
    * list_instances()
    * register_instance()
    * update_http_namespace()
    * update_instance_custom_health_status()
    [#] Miscellaneous:
    * DynamoDB: transact_write_items() no longer throws a ValidationException when passing multiple set actions, only when passing multiple set clauses
    * DynamoDB: transact_write_items() no longer throws an Exception when ExpressionAttributeNames are not provided
      (Both bugs were introduced in 5.0.10)
    * IOT-data: update_thing_shadow() now calculates the delta correctly
    * ResourceGroupsTagging: get_resources() now supports EFS resources
  - Update to 5.0.10:
    [#] General:
    * CloudFormation now supports cfn-lint v1, as well as v0
    [#] New Services:
    * FSX:
    * create_file_system()
    * delete_file_system()
    * describe_file_systems()
    * tag_resource()
    * untag_resource()
    * OpenSearch Serverless:
    * batch_get_collection()
    * create_collection()
    * create_security_policy()
    * create_vpc_endpoint()
    * delete_collection()
    * get_security_policy()
    * list_collections()
    * list_security_policies()
    * list_tags_for_resource()
    * tag_resource()
    * untag_resource()
    * update_security_policy()
    * Shield:
    * create_protection()
    * delete_protection()
    * describe_protection()
    * list_protections()
    * list_tags_for_resource()
    * tag_resource()
    * untag_resource()
    [#] New Methods:
    * Sagemaker:
    * create_cluster()
    * delete_cluster()
    * describe_cluster()
    * list_clusters()
    * list_cluster_nodes()
    [#] Miscellaneous:
    * CognitoIDP: admin_list_groups_by_user() now supports pagination
    * DynamoDB: transact_write_items() now validates the number of SET expressions
    * DynamoDB: update_item() now validates unused ExpressionAttributeValues
    * DynamoDB: query() now supports pagination when querying Global Indexes
    * EC2: describe_images() - feat: support filtering images by ExecutableUsers=['self']
    * EC2: describe_route_tables() now supports the filter `route.transit-gateway-id`
    * EC2: update_security_group_rule_descriptions_ingress() now supports updating multiple descriptions
    * EKS: create_nodegroup() now supports the `taints`-parameter
    * ELBv2: add_listener_certificates() now validates when adding too many certificates (> 25)
    * ELBv2: describe_target_health() now handles unknown/deregistered/terminated instances better
    * ResourceGroupsTaggingAPI: get_resources() now supports ResourceType=s3:bucket
    * RDS: Clusters now have the `creating`-status on create, and `available` immediately after - in line with AWS
    * SSM: get_parameter() now supports ARN's for the Name-parameter
  - Update to 5.0.9:
    [#] General:
    * Fixed an InfiniteRecursion-bug when accessing S3-buckets that was introduced in 5.0.8
    [#] New Methods:
    * SSO-Admin:
    * list_accounts_for_provisioned_permission_set()
    * list_instances()
    * list_permission_sets_provisioned_to_account()
    * provision_permission_set()
    * update_instance()
    [#] Miscellaneous:
    * DynamoDB: query() now handles pagination correctly on a GSI without a range key
    * IAM: create_policy() now returns tags correctly
    * S3: list_objects(): The default value for MaxKeys can now be configured, using an environment variable:
      MOTO_S3_DEFAULT_MAX_KEYS=1
  - Update to 5.0.8:
    [#] General:
    * Improved support for non-generic partitions (China, GovCloud, ISO-regions).
      All ARN's now contain the correct partition for resources created in those regions.
    [#] New Services:
    * NetworkManager:
    * create_global_network()
    * describe_global_networks()
    * create_core_network()
    * create_global_network()
    * delete_core_network()
    * list_core_networks()
    * get_core_network()
    * tag_resource()
    * untag_resource()
    [#] Miscellaneous:
    * ResilienceHub: list_app_assessments() can now return pre-configured results
    * ResourceGroupTagging: get_resources() now returns results when filtering on "lambda:function"
    * S3: delete_object_tagging()/put_object_tagging() now send an EventBridge notification
  - Update to 5.0.7:
    [#] New Services:
    * Sagemaker Metrics:
    * batch_put_metrics()
    [#] New Methods:
    * DynamoDB:
    * describe_import()
    * import_table()
    * EMR Serverless:
    * cancel_job_run()
    * get_job_run()
    * list_job_runs()
    * start_job_run()
    * IAM:
    * tag_instance_profile()
    * untag_instance_profile()
    * Panorama:
    * create_node_from_template_job()
    * describe_node_from_template_job()
    * list_nodes()
    * SSO-Admin:
    * describe_account_assignment_creation_status()
    * describe_account_assignment_deletion_status()
    * WAFv2:
    * create_ip_set()
    * delete_ip_set()
    * list_ip_sets()
    * get_ip_set()
    * update_ip_set()
    * put_logging_configuration()
    * get_logging_configuration()
    * list_logging_configurations()
    * delete_logging_configuration()
    [#] Miscellaneous:
    * Athena: start_query_execution() now supports the ExecutionParameters-parameter
    * DynamoDB: Tables now support DeleteProtection
    * DynamoDB: update_item() no longer throws an error when deleting an item from an empty set
    * DynamoDB: update_item() no throws an error when adding an empty set
    * EC2: delete_network_acl() now throws an error when the ACL still has associations attached to it
    * EC2: describe_route_tables() now supports the `route.nat-gateway-id` filter
    * EC2: revoke_security_group_ingress/_egress() now throw an error when an unknown Security Group is passed
  - Update to 5.0.6:
    [#] New Services:
    * Bedrock:
    * create_model_customization_job()
    * delete_custom_model()
    * delete_model_invocation_logging_configuration()
    * get_custom_model()
    * get_model_customization_job()
    * get_model_invocation_logging_configuration()
    * list_custom_models()
    * list_model_customization_jobs()
    * list_tags_for_resource()
    * put_model_invocation_logging_configuration()
    * stop_model_customization_job()
    * tag_resource()
    * untag_resource()
    * BedrockAgent:
    * create_agent()
    * create_knowledge_base()
    * delete_agent()
    * delete_knowledge_base()
    * get_agent()
    * get_knowledge_base()
    * list_agents()
    * list_knowledge_bases()
    * list_tags_for_resource()
    * tag_resource()
    * untag_resource()
    [#] New Methods:
    * EC2:
    * describe_addresses_attributes()
    * Rekognition:
    * detect_custom_labels()
    * Sagemaker:
    * update_trial_component()
    [#] Miscellaneous:
    * CloudFront: update_distribution() now supports the CacheBehaviours-parameter
    * DynamoDB: query() now acts correctly when paginating GSI tables without range keys
    * EC2: RouteTables can now have multiple propagations
    * EC2: describe_instances() now now filter by product-code and product-code.type
    * EC2: describe_security_group_rules() now validates the format of the incoming security group id's
    * ECS: update_service() now supports the loadBalancers-parameter
    * Logs: describe_metric_filter() now has the correct validation for metricNamespaces
    * IOT: search_index() now supports thingTypeName
    * SFN: send_task_failure()/send_task_success() now work correctly when using the Parser
    * SNS: subscribe() now throws an exception if the endpoint doesn't exist
    * SQS: Improved queue name validation
  - Update to 5.0.5:
    [#] General:
    * DynamoDB: scan() now returns items in a alphabetical order
    [#] New Methods:
    * SecretsManager:
    * batch_get_secret_value()
    [#] Miscellaneous:
    * ApplicationAutoscaling: put_scaling_policy() now generates CW alarms for DynamoDB and ECS
    * DynamoDB: Fix pagination for scan()/query()
    * DynamoDB: batch_write_item() now validates for duplicate DELETE or PUT requests
    * Events: put_events() now validates that input-values cannot be empty
    * IOT: create_topic_rule() now validates name-format
    * ResourceGroupsTaggingAPI: tag_resources() now supports RDS snapshots
    * SFN: Fixed a bug where the executionInput was double encoded
  - Update to 5.0.4:
    [#] General:
    * Lambda: The results of a Dockerless invocation can now be configured.
      See http://docs.getmoto.org/en/latest/docs/services/lambda.html
    * StepFunctions can now execute the provided StepFunctionMachine (opt-in), instead of returning static data (still the default).
      See http://docs.getmoto.org/en/latest/docs/services/stepfunctions.html
    [#] New Service:
    * ElastiCache:
    * list_tags_for_resource()
    * ResilienceHub:
    * create_app()
    * create_app_version_app_component()
    * create_app_version_resource()
    * create_resiliency_policy()
    * describe_app()
    * describe_resiliency_policy()
    * import_resources_to_draft_app_version()
    * list_app_assessments()
    * list_app_version_app_components()
    * list_app_version_resources()
    * list_app_versions()
    * list_apps()
    * list_resiliency_policies()
    * list_tags_for_resource()
    * publish_app_version()
    * tag_resource()
    * untag_resource()
    * Workspaces:
    * create_tags()
    * create_workspace_image()
    * create_workspaces()
    * deregister_workspace_directory()
    * describe_client_properties()
    * describe_tags()
    * describe_workspace_directories()
    * describe_workspace_image_permissions()
    * describe_workspace_images()
    * describe_workspaces()
    * modify_client_properties()
    * modify_selfservice_permissions()
    * modify_workspace_creation_properties()
    * register_workspace_directory()
    * update_workspace_image_permission()
    [#] Miscellaneous:
    * APIGateway: update_usage_plan() now supports some remove-operations
    * Autoscaling: describe_auto_scaling_groups() now returns a dynamic CreatedTime
    * CloudFormation: Outputs now support Conditions
    * CloudFormation: Outputs now return Descriptions
    * CognitoIDP: admin_update_user_attributes() and admin_delete_user_attributes now correctly update the UserLastModifiedDate
    * DynamoDB: query() no longer requires the LastEvaluatedKey to exist
    * EC2: describe_vpc_endpoint_services() now supports all services
    * Kinesis: list_streams() now returns StreamSummaries
    * Lambda: get_policy() now throws an error when no statements exist
    * ResourceGroupsTaggingAPI now supports DynamoDB tables
    * ResourceGroupsTaggingAPI now supports SSM documents
    * S3: EventBridge notifications are now supported for ObjectRestore:Post
    * S3: restore_object() now contains limited validation when supplying both Days- and Type-argument
    * S3: select_object_content() now supports Compressed requests and CSV responses
    * SecretsManager: list_secrets() now handles negative matches correctly
    * SNS: delete_endpoint() is now an idempotent operation, just like AWS
  - Fix rpmlint warning: python-bytecode-inconsistent-mtime
* Mon Mar 25 2024 Steve Kowalik <steven.kowalik@suse.com>
  - Update to 5.0.3:
    [#] General:
    * New configuration options for:
      + Passing URL's through the proxy
      + Configuring Docker-less services in ServerMode
    * Removed the `python-jose` and `sshpubkeys` dependencies in favor of
      `joserfc`.
    [#] Miscellaneous:
    * ApiGateway: update_usage_plan() now supports adding apiStages
    * Athena: get_query_execution() now returns exact OutputLocation file
    * Autoscaling: describe_auto_scaling_groups() now supports the
      filters-argument
    * CloudFront: create_distribution() now supports CustomHeaders
    * CloudFront: update_distribution() now handles updates to
      DistributionConfig correctly
    * CloudFormation - Now supports creation and deletion of
      AWS::EMR::Cluster
    * CloudFormation - Now supports creation and deletion of
      AWS::EMR::SecurityConfiguration
    * CloudFormation - Now supports creation and deletion of
      AWS::EFS::AccessPoint
    * CloudFormation - Now supports creation and deletion of
      AWS::EFS::FileSystem
    * CloudFormation - Now supports creation and deletion of
      AWS::EMR::InstanceGroupConfig
    * CloudFormation - Now supports deletion of AWS::Logs::LogGroup
    * CloudFormation: delete_stack() now handles resource dependencies better
    * CloudWatch: put_metric_data() now supports large (compressed) requests
    * CognitoIDP: admin_initiate_auth() and respond_to_auth_challenge()
      now support SMS_MFA
    * DynamoDB: transact_write_items() now raises ValidationException when
      putting and deleting the same item
    * EC2: authorize_security_group_egress/_ingress now support the
      TagSpecifications-argument
    * EC2: describe_security_group_rules() now supports Tag-filters
    * S3: EventBridge notifications are now supported for
      ObjectCreated:POST/COPY/MULTIPART_UPLOAD and ObjectDeleted
    * SNS: subscribe() now adds support the `$or`, `equals-ignore-case` and
      `suffix` features in a FilterPolicy
    * SQS: send_message() should respect DelaySeconds of 0
    * AWSLambda: The ImageConfig.EntryPoint of a function is now used when
      invoking it in a Docker container
    * CognitoIDP now allows public actions even if IAM auth is enabled
    * DynamoDB: create_table() now validates the number of KeySchema-items
    * EC2: modify_image_attributes() now supports all LaunchPermissions
    * ECS: register_task_definition() now has improved validation around
      `memory`-parameters
    * Glue: create_database() now supports the `tags`-parameter
    * IAM: assume_user()/create_user()/get_caller_identity() now return the
      correct partition for China (aws-cn) when called from a Chinese region
    * ResourceGroupsTagging: get_resources() now supports ELB resources
    * Route53: list_hosted_zones() now supports pagination
    * S3: put_bucket_notification_configuration() now supports
      EventBridge-notifications
    * SES now returns errors in the correct format
* Thu Feb 08 2024 Steve Kowalik <steven.kowalik@suse.com>
  - Update to 5.0.1:
    [#]# New Methods:
    * SecretsManager:
    * remove_regions_from_replication()
    * replicate_secret_to_regions()
    [#]# General:
    * All decorators have been replaced with a single decorator: `mock_aws`
    * The `mock_batch_simple` and `mock_lambda_simple` decorators can now be
      configured using the `config`-parameter:
    * It is now possible to configure methods/services which should reach out
      to AWS.
    * All requests now return a RequestId
    [#]# Miscellaneous:
    * AWSLambda: create_event_source_mapping() now supports Kinesis streams
      as targets
    * CloudFront: Removed error handling for InvalidOriginServer, as our
      validation was too strict
    * DynamoDB: batch_execute_statement() now supports for
      Update/Insert/Delete-statements
    * DynamoDB: query() now correctly handles calls where both Limit and
      ScanIndexForward are supplied
    * EC2: Now supports availability zones for eu-central-2 (Zurich)
    * S3: list_objects_v2() can now return more then 1000 results max (again)
    * S3: copy_object() now allows in-place copies when bucket versioning
      is enabled
    * SecretsManager: create_secrets() now supports the parameters
      AddReplicaRegions and ForceOverwriteReplicaSecret
    * SecretsManager: list_secrets() now supports the filters primary-region
      and owning-service
    * IAM: The AWS managed Policies are no longer loaded by default.
    * S3: list_objects() now returns a hashed ContinuationToken
* Thu Dec 28 2023 Ben Greiner <code@bnavigator.de>
  - Update to 4.2.12
    [#]# Miscellaneous:
    * AWSLambda: list_functions() now returns a default PackageType
      (ZIP) if not specified
    * CloudFormation: AWS::EC2::LaunchTemplate resources now support
      Fn::GetAtt operations
    * CognitoIDP: admin_initiate_auth() now correctly returns a
      Challenge when 2FA is enabled
    * DynamoDB: execute_statement() now supports INSERT/UPDATE/DELETE
      queries
    * EC2: describe_availability_zones() now supports the
      ZoneNames/ZoneIds-parameters
    * KMS: encrypt() now validates payloads that are too large
    * ResourceGroupTaggingAPI: get_resources() now supports SQS
      queues
    * Route53: list_hosted_zone()/list_hosted_zones_by_name() now
      return the CallerReference
    * S3: copy() now respects the ExtraArgs-parameter when using
      MultiPart uploads
    * S3: list_object_versions() now supports pagination
    * S3: put_object_tagging() now validates the number of tags
      provided
* Sat Dec 09 2023 Ben Greiner <code@bnavigator.de>
  - Update to 4.2.11
    [#]# New Methods:
    * Lambda:
    * DeleteFunctionEventInvokeConfig()
    * GetFunctionEventInvokeConfig()
    * ListFunctionEventInvokeConfigs()
    * PutFunctionEventInvokeConfig()
    * UpdateFunctionEventInvokeConfig()
    * Logs:
    * describe_export_tasks()
    [#]# Miscellaneous:
    * DynamoDB: put_item() now returns old item for
      ConditionalCheckFailed exceptions
    * DynamoDB: scan() now returns the correct ScannedCount when
      passing the Limit-parameter
    * DynamoDB: transact_write_items() now validates that Keys in
      Update-queries are not empty
    * IOT: create_thing()/describe_thing() now returns the thingId
    * Logs: create_export_task() now actually exports the data to S3
    * ResourceGroupsTaggingAPI: get_resources() now supports ACM
      certificates
  - Moto 4.2.10
    [#]# New Methods:
    * CognitoIdentity: list_identity_pools()
    [#]# Miscellaneous:
    * Autoscaling: describe_tags() now supports the key/value filters
    * CloudFormation: AWS::Logs::LogGroup now supports tags
    * CloudWatch: get_metric_data() no longer throws an error when
      supplying >10 queries
    * CognitoIdentity: get_credentials_for_identity() now returns
      Expiration as a number, fixing compatibility with the GoLang
      SDK
    * EFS: describe_access_points() now supports the
      FileSystemId-parameter
    * LakeFormation: list_permissions() now supports the
      DataLocation-parameter
    * LakeFormation: register_resource() now throws an exception when
      registering an existing resource
    * SQS: Ensure all responses are in JSON-format when required,
      fixing compatibility with the Ruby SDK
* Fri Nov 24 2023 Ben Greiner <code@bnavigator.de>
  - Update to 4.2.9
    [#]# General:
    * Fix compatibility with botocore 1.32.1
    [#]# Miscellaneous:
    * ECS: Tagging is now supported for Tasks
    * LakeFormation: deregister_resource() now throws the correct
      error for unknown resources
    * LakeFormation: list_permissions() now supports Parameters
    * RDS: create_db_instance() now validates the engine parameter
    * Transcribe: TranscriptionJobs now support the
      Subtitles-parameter
  - Moto 4.2.8
    [#]# General:
    * Support for Python 3.12
    * Support for a Simple Lambda backend, that will mock functions
      without invoking a Docker container. Use the decorator
      `mock_lambda_simple` for this feature.
    [#]# New Methods:
    [#]## IdentityStore:
    * describe_group()
    [#]## Signer:
    * list_tags_by_resource()
    * tag_resource()
    * untag_resource()
    [#]# Miscellaneous:
    * DynamoDB: create_table() now throws an error when supplying an
      unknown KeyType
    * DynamoDB: query() now throws an error when supplying a
      ExpressionAttributeValue that doesn't start with a ':'
    * EC2: describe_hosts() now returns the AllocationTime-attribute
    * ECS: register_task_definition() now throws an exception if the
      ContainerDefinition has missing keys
    * ECR: describe_images() now returns the supplied
      imageDigest-values, instead of random values
    * EFS: AccessPoints now have the correct identifier format
    * Lambda: Various methods now support the FunctionName in the
      format 'name:qualifier'
    * MQ: create_configuration() is now possible for engine-type
      'RABBITMQ'
    * RDS: create_db_cluster() now throws an error if the provided
      engine is not supported
    * RDS: create_db_instance() now throws an error if the provided
      engine does not match the cluster engine
    * RDS: delete_db_cluster() now throws an error if any instances
      are still active
    * SageMaker: list_model_packages() and
      list_model_package_groups() no longer throw an error on
      pagination
* Wed Nov 22 2023 Benjamin Greiner <code@bnavigator.de>
  - Fix python-multipart requirement
* Sun Nov 05 2023 Ben Greiner <code@bnavigator.de>
  - Update to 4.2.7
    [#]# New Services:
    [#]## Inspector2:
    * associate_member()
    * batch_get_account_status()
    * create_filter()
    * delete_filter()
    * describe_organization_configuration()
    * disable()
    * disable_delegated_admin_account()
    * disassociate_member()
    * enable()
    * enable_delegated_admin_account()
    * get_member()
    * list_delegated_admin_accounts()
    * list_filters()
    * list_findings()
    * list_members()
    * list_tags_for_resource()
    * tag_resource()
    * untag_resource()
    * update_organization_configuration()
    [#]# New Methods:
    [#]## ECR:
    * batch_get_repository_scanning_configuration()
    * put_registry_scanning_configuration()
    [#]#  Miscellaneous:
    * Batch: submit_job() now returns the jobArn-attribute
    * DynamoDB: execute_statement() has now support for nested
      WHERE-clauses with functions
    * DynamoDB: update_item() now returns item for
      ConditionalCheckFailed-exceptions
    * EC2: create_key_pair() and describe_key_pair(s)() now support
      tags
    * Route53: get_hosted_zone() now returns the CallerReference
    * S3: get_object/put_object() now accepts AccessPoint ARN's
    * S3Control: create_access_point() now returns the correct Alias
    * SES: list_identities() now supports the IdentityType-parameter
    * SNS: create_platform_application has improved error handling
  - Moto 4.2.6
    [#]# New Services:
    [#]## IVS:
    * batch_get_channel()
    * create_channel()
    * delete_channel()
    * get_channel()
    * list_channels()
    * update_channel()
    [#]# New Methods:
    [#]## LakeFormation:
    * add_lf_tags_to_resource()
    * get_resource_lf_tags()
    * remove_lf_tags_from_resource()
    * update_lf_tag()
    [#]## Sagemaker:
    * describe_model_package_group()
    * update_model_package()
    [#]# Miscellaneous:
    * Batch: submit_job() now behaves correctly when passing the
      arrayProperties-parameter
    * DynamoDB: Improved PartiQL parser, with support for different
      types (Decimals/Booleans) and queries with quoted table-names
    * EC2: TagSpecifications now throw an error if the ResourceType is
      not provided
    * EC2: run_instances()/describe_instances() now always return the
      same attributes (before, both operations were missing different
      fields)
    * EC2: associate_dhcp_options() now supports DhcpOptionsId=default
    * EC2: create_key_pair() now supports the KeyType-parameter
    * EC2: run_instances() now returns the Placement.HostId attribute
    * ELBv2: modify_target_group_attributes() now has additional
      validations
    * Events: put_events() now throws a warning when Detail field is
      not a dict
    * IOT: update_thing() now behaves correctly with empty attributes
    * S3: head_object() now raises a MethodNotAllowed for
      DeleteMarkers
  - Moto 4.2.5
    [#]# General:
    * Introducing: MotoProxy! An alternative to the MotoServer. See
      the docs: http://docs.getmoto.org/en/latest/docs/proxy_mode.html
    [#]# New Methods:
    [#]## Sagemaker:
    * list_model_package_groups()
    [#]# Miscellaneous:
    * CognitoIDP: update_user_pool() no longer overrides default
      settings
    * CognitoIDP: set_user_mfa_preference() now allows the settings to
      be cleared
    * EC2: Transit Gateway Peering Attachments are now supported
      across accounts
    * EC2: delete_fleets() now sets the correct status
    * ECS: The Task-statuses now automatically advance
    * Glue: get_databases/get_tables() now return the CatalogId
    * IAM: list_groups() now returns the CreateDate-attribute
    * Redshift: describe_clusters() now returns the
      TotalStorageCapacityInMegabytes
    * SES: Templates now support if/else constructs
  - Moto 4.2.4
    [#]# New Methods:
    [#]## OpenSearch:
    * list_domain_names()
    [#]# Miscellaneous:
    * DynamoDB: Fixed a bug where binary data could not be queried
      (introduced in 4.2.3)
    * EC2: VPC Peering Connections are now supported across accounts
    * ECS: register_task_definition() now validates the PidMode has
      the correct value
    * S3: put_bucket_notification_configuration() now supports SNS
      Topic targets
  - Moto 4.2.3
    [#]# New Services:
    [#]## RoboMaker:
    * create_robot_application()
    * delete_robot_application()
    * describe_robot_application()
    * list_robot_applications()
    [#]# New Methods:
    [#]## ElasticBeanstalk:
    * delete_application()
    [#]## Events:
    * create_partner_event_source()
    * delete_partner_event_source()
    * describe_event_source()
    * describe_partner_event_source()
    * put_partner_events()
    [#]# Miscellaneous:
    * Core: The mocked ACCESS_KEY has been changed from `foobar_key`
      to `FOOBARKEY`, to align with AWS guidelines
    * Core: set_initial_no_auth_action_count() now supports SSM
      actions
    * Core: Fixed a memory leak when comparing requests (introduced in
      4.1.13)
    * Athena: get_query_execution() now returns a StatementType
      dependent on the provided query
    * DynamoDB: query() now throws an exception when the
      KeyConditionExpression contains a literal value
    * EBS: put_snapshot_block() now supports random bytes
    * EC2: describe_transit_gateways() now supports filtering by tags
    * ELBv2: describe_target_groups() now throws an exception for
      invalid input parameters
    * ELBv2: describe_target_groups() now sorts the result before
      returning it
    * ELBv2: create_target_group() now has improved validation and
      default values
    * ELBv2: create_rule() now creates links between the TargetGroups
      and LoadBalancers
    * Events: put_events() now support HTTP targets
    * IAM policy validation now takes the provided Resource-argument
      into account when validating access to STS-resources
    * IAM: get_role() now returns the LastUsed-parameter, provided the
      role was assumed and used
    * KMS: sign/verify now uses the original message when signing, not
      the base64-version
    * Lambda: invoke() now loads any Layers provided in the
      create_function()
    * S3: put_bucket_logging() now supports bucket policies (as well
      as ACP's)
    * S3: Range requests are now more permissive (following AWS'
      behaviour)
    * SFN: list_executions() now returns the StopDate-attribute
  - Moto 4.2.2
    * See 4.2.1 - no functional changes.
  - Moto 4.2.1
    [#]# New Services:
    [#]## Sagemaker Runtime:
    * invoke_endpoint()
    [#]# New Methods:
    [#]## CognitoIDP:
    * describe_resource_server()
    * list_resource_servers()
    [#]## CognitoIDP:
    * create_cache_cluster()
    * delete_cache_cluster()
    * describe_cache_clusters()
    [#]## IdentityStore:
    * list_users()
    [#]## Logs:
    * describe_query_results()
    * get_query_results()
    * list_tags_for_resource()
    * tag_resource()
    * untag_resource()
    [#]## Sagemaker:
    * list_notebook_instances()
    [#]# Miscellaneous:
    * EC2: describe_transit_gateways() now returns the ARN
    * IAM policies now allow S3 accesspoint arns
    * KMS: sign() now supports RSASSA_PSS_SHA_384, RSASSA_PSS_SHA_512
      and RSASSA_PKCS1_* algorithms
    * Logs: Now supports two subscription filters
    * RDS: Clusters now support the ServerlessV2ScalingConfiguration
      parameter
    * ResourceGroupsTaggingAPI: tag_resource() now supports RDS
      resources
    * S3: CrossAccount access can now be disabled, using
      MOTO_S3_ALLOW_CROSSACCOUNT_ACCESS=false
    * SecretsManager: Allow creation/update of secrets without values
    * SES: set_identity_mail_from_domain() - the Identity can now also
      be an email
  - Moto 4.2.0
    [#]# General:
    * The Docker image is now based on Python 3.11 (instead of 3.7)
  - Moto 4.1.15
    [#]# New Services:
    [#]## APIGateway Management API:
    * delete_connection()
    * get_connection()
    * post_to_connection()
    [#]# New Methods:
    [#]## Autoscaling:
    * delete_warm_pool()
    * describe_warm_pool()
    * put_warm_pool()
    [#]## IdentityStore:
    * list_groups()
    [#]## IOTData:
    * list_named_shadows_for_thing()
    [#]## MQ:
    * list_tags()
    [#]## ServiceDiscovery:
    * update_private_dns_namespace()
    * update_public_dns_namespace()
    [#]# Miscellaneous:
    * ACM-PCA: create_certificate_authority() now supports the
      KeyStorageSecurityStandard-parameter
    * Batch: create_job_definition() now returns more default fields
      in the containerProperties field
    * CloudTrail: get_trail_status now works with MultiRegion trails
    * CognitoIDP: UserPools now return the
      AccountRecoverySetting-field by default
    * DynamoDB: query() now throws an exception when providing empty
      ProjectionExpressions/FilterExpressions
    * EC2: describe_vpc_endpoint_services() now returns user-defined
      ones
    * EC2: run_instances() now supports the Monitoring-attribute
    * IOT: group names can now contain special characters
    * IOTData now supports named shadows
    * KMS: create_key() now supports KeySpecs RSA_3072 and RSA_4096
    * KMS: create_key() now validates the provided KeySpec
    * Lambda: create_function() now fails when creating a function
      with a name that already exists
    * Lambda: put_function_concurrency() now errors on a quota that
      exceeds the value set by MOTO_LAMBDA_CONCURRENCY_QUOTA
    * Lambda: update_function_code() now supports the
      ImageUri-attribute
    * RDS: describe_db_cluster_snapshots() now returns the
      TagList-property
    * ResourceTaggingsAPI: Now supports Glue resources
    * S3: Authentication now allows specific resources in the IAM
      access policy
    * S3: select_object_content() now takes RecordDelimiter into
      account
    * Scheduler: create_scheduler() now errors on duplicate names
    * TimestreamWrite: create_table() now supports the
      Schema-attribute
  - Moto 4.1.14
    [#]# New Methods:
    [#]## SageMaker:
    * create_model_package()
    * create_model_package_group()
    * describe_model_package()
    * list_model_packages()
    [#]# Miscellaneous:
    * CloudFormation: describe_stack_instances() now returns the
      StackInstanceStatus-attribute
    * CloudFront: update_distribution() now supports the
      DefaultRootObject-parameter
    * CloudWatch: get_metric_data() now support (simple) Expressions
    * CognitoIDP: initiate_auth() and admin_initiate_auth() now throw
      a NotAuthorizedError for disabled users
    * EC2 VPC's: Add CloudFront, Ground Station and Lattice prefix
      lists
    * IOT: search_index() now returns the connectivity-attribute
    * Organizations: Introduce more trusted service principals
    * RDS: create_db_cluster() now supports the
      VpcSecurityGroupIds-parameter
    * S3: Optional support for CRC32C checksums
    * SNS: publish_batch() now sends the required
      `MessageDeduplicationId` for FIFO queues
    * SQS: send_message_batch() now only throws a
      `BatchRequestTooLong` if the sum of all messages exceed the
      limit
* Wed Jul 26 2023 Steve Kowalik <steven.kowalik@suse.com>
  - Update to 4.1.13, partial changes:
    * CloudFront: create_distribution() now correctly handles a single alias
    * CloudFront - CustomOrigins now have default timeouts if not supplied
    * IOTData: publish() can now handle non-Unicode bytes
    * RDS: Automated snapshots now have the appropriate SnapshotType
    * CloudFront: create_invalidation() now behaves correctly when supplying a
      single Path
    * CodeBuild: create_project() now accepts all ServiceRole ARN's, not just
      ARN's that end in /service-role/
    * DynamoDB now supports ProjectionExpressions on (nested) lists
    * EC2: create_flow_logs() now allows different LogDestinations for a
      single ResourceId
    * EC2: create_volume() now supports the Throughput-parameter
    * ECR: put_image() now correctly overwrites tags on images with multiple tags
    * Lambda: delete_layer_version() now also accepts function ARNs
    * RDS: Further improve Global Cluster behaviour
    * S3: GET/PUT requests now return Access-Control headers, if a CORS
      configuration has been set
    * S3: put_bucket_lifecycle_configuration() now supports multiple Transitions
    * SESv2: create_contact_list() now correctly reads Topics with special
      characters
    * SESv2: send_email() now correctly reads raw emails
    * Organizations: create_policy() now supports the Tags-parameter
    * RDS: creation times of all objects are now in UTC
    * Redshift: creation times of all objects are now in UTC
    * S3: Bucket names are now global, meaning they have to be unique across
      accounts
    * S3: select_object_content() now supports None-values
    * SecretsManager - update_secret() now supports the Description-parameter
    * SNS: Topics are no longer accessible across regions (only across accounts)
    * SQS: Requests and responses in JSON-format are now supported
    * Core: The `date`-header is now returned for all operations
    * EC2: create_route() now takes the `VpcEndpointId`-parameter into account
    * S3: aligned checksum calculation with how AWS behaves
    * S3: copy_object() now behaves correctly when copying objects in
      encrypted buckets
    * S3: put_object_legal_hold() now takes the VersionId-parameter into account
    * S3: put_object_retention() now takes the VersionId-parameter into account
    * SNS: Topics can now be accessed across accounts
    * Kinesis: Improve calculations on stream limits
    * EC2: Improve logic behind describe_image_attribute()
    * S3: Various improvements to the logic behind copy_object()
    * Scheduler: update_schedule() now supports the GroupName-parameter
    * SNS: MessageDeduplicationId is now forwarded to SQS queues
    * EC2: replace_route() now supports the NetworkInterfaceId-parameter
    * S3: copy_object() now adds a checksum to a copied object if requested
    * SES: Templates now allow a single curly brace, and no longer assume
      it's part of a variable
    * STS: assume_role() now stores the AccessKey in the requesting account
    * DynamoDB: update_item() now supports number-sets in the
      AttributeUpdates-parameter
    * DynamoDB: query() - The KeyConditionExpression now allows enclosing the
      sort key condition in brackets
    * EC2: assign_private_ip_addresses() now supports the
      PrivateIpAddresses-argument
    * ECR: put_image() now supports the imageManifestMediaType parameter
    * Logs: put_subscription_filter() now supports KinesisStream destinations
    * RDS: describe_db_clusters() now supports filtering by db-cluster-id and
      engine
    * SQS: Improvements in the deduplication-logic
    * RDS: describe_db_clusters() now accepts an ARN as identifier
    * SecretsManager now supports partial ARN's
    * Athena: Now automatically creates the default WorkGroup called `primary`
    * CognitoIDP: the ID-token now uses the key cognito:username
    * EC2: describe_security_group_rules() now provides the correct value
      for the IsEgress-parameter
    * IOT: delete_certificate() now supports the forceDelete-parameter
    * CognitoIDP: The idToken now contains the cognito:groups attribute
    * DynamoDB: scan() now respects the Projection-attribute of a GSI/LSI
    * KMS: encrypt(), decrypt(), re_encrypt() now accept aliases as arguments
    * KMS: list_aliases() now supports the KeyId-parameter
    * Lambda: FIFO Queues are now supported event sources
    * DynamoDB: create_table() now deals correctly with non-key attributes
      supplied as part of the KeySchema
    * CognitoIDP: admin_update_user_attributes() now checks for duplicate emails
    * ECS: create_cluster() now supports the parameters configuration,
      capacityProviders, defaultCapacityProviderStrategy
    * ECS: delete_cluster() now marks the cluster as INACTIVE, rather than
      removing it outright, in-line with how AWS behaves
    * ECS: run_task() no longer crashes when providing launchType=FARGATE
    * ECS now has improved tagging-support
    * Kinesis now supports the streamARN-parameter for all arguments
    * S3: Improved bucket policy enforcement
    * Batch: register_job_definition() now supports type="multinode"
    * EC2: describe_launch_template_versions() now supports $Latest and
      $Default versions
    * ECS: start_task() now supports the tags-parameter
    * S3: put_bucket_logging() now actually logs incoming requests, when enabled
    * SES: Fixed a bug where the service was not region-aware, i.e. all
      resources were shared across regions
    * SES: improved parser support for email templates
    * RDS: create_db_instance() now supports the PreferredMaintenanceWindow
      and PreferredBackupWindow-parameters
* Sat Jan 21 2023 Ben Greiner <code@bnavigator.de>
  - Update to 4.1.0
    * Dropped support for Py 3.6
    * Moto now uses setup.cfg to hold our packaging configuration,
      instead of setup.py, making Moto compatible with more recent
      Pip-versions
  - Moto 4.0.13
    [#]# New Methods:
    * EC2:
    - get_password_data()
    * Sagemaker:
    - update_pipeline()
    * SecretsManager:
    - cancel_rotate_secret()
    [#]# Miscellaneous:
    * CloudWatch: put_metric_data() now supports the
      StatisticValues-parameter
    * CognitoIDP: sign_out() now also invalidates the AccessToken
    * IAM: get_account_authorization_details() now returns the
      Tags-attribute
    * IOT: create_keys_and_certificate() now creates valid
      certificates, instead of random data
  - Moto 4.0.12
    [#]# General:
    * Fixes our Kinesis-compatibility with botocore>=1.29.31 -
      earlier Moto-versions will connect to AWS when using this
      botocore-version
    [#] New Methods:
    * Athena:
    - get_query_results()
    - list_query_executions()
    * RDS:
    - promote_read_replica()
    * Sagemaker:
    - create_pipeline()
    - delete_pipeline()
    - list_pipelines()
    [#]# Miscellaneous:
    * AWSLambda: publish_function() and update_function_code() now
      only increment the version if the source code has changed
    * CognitoIDP: Passwords are now validated using the
      PasswordPolicy (either supplied, or the default)
    * CloudFormation: create_stack() now propagates parameters
      StackPolicyBody and TimeoutInMinutes
    * CloudFormation: create_stack_instances() now returns the actual
      OperationId
    * CloudFormation: create_stack_set() now validates the provided
      name
    * CloudFormation: create_stack_set() now supports the
      DeploymentTargets-parameter
    * CloudFormation: create_stack_set() now actually creates the
      provided resources
    * CloudFormation: create_stack_set() now propagates parameters
      AdministrationRoleARN and ExecutionRoleName
    * CloudFormation: describe_stack_set() now returns the attributes
      Description, PermissionModel
    * CloudFormation: delete_stack_set() now validates that no
      instances are present before deleting the set
    * CloudWatch: get_metric_data() now supports the Label-parameter
    * EC2: allocate_address() now has improved behaviour for the
      Domain-parameter
    * EC2: create_volume() now supports the Iops-parameter
    * ECR: Improved ImageManifest support
    * KMS: describe_key() now returns an AccessDeniedException if the
      supplied policy does not allow this action
    * Route53: change_resource_record_sets() has additional
      validations
    * Route53: create_hosted_zone() now also creates a SOA-record by
      default
    * S3: put_object() now returns the ChecksumAlgorithm-attribute if
      supplied
    * SSM: describe_parameters() now has improved support for
      filtering by tags
  - Drop remove-mock.patch -- fixed upstream
* Mon Nov 21 2022 Ben Greiner <code@bnavigator.de>
  - Update to 4.0.10
    [#]# New Methods:
    * CloudFront:
    * get_distribution_config()
    * Organizations:
    * delete_organizational_unit()
    [#]# Miscellaneous:
    * APIGateway: put_integration_response() now supports the
      responseParameters-parameter
    * Cloudformation now supports the creation/update/deletion of
      AWS::SSM::Parameter
    * Cloudformation: create_stack() now returns the attribute
      EnableTerminationProtection
    * CloudWatch: put_metric_data() now supports the
      MetricData.Values parameter
    * DynamoDB: transact_write_items() now supports the
      ReturnValuesOnConditionCheckFailure-parameter
    * RDS: describe_db_cluster now returns the
      EarliestRestorableTime-attribute
    * S3: get_object() and head_object() now correctly handle the
      IfModifiedSince-parameter
* Sat Nov 19 2022 Ben Greiner <code@bnavigator.de>
  - Update to 4.0.9
    [#]# Miscellaneous:
    * CloudTrail: describe_trails() now returns the correct
      (MultiRegion) trails
    * CloudWatch:tag_resource() now allows tagting new Alarms that
      didn't have tags yet
    * EC2: create_instances() now supports the
      `IamInstanceProfile`-parameter
    * EC2: describe_route_tables() now supports the
      `route.vpc-peering-connection-id`-filter
    * EC2: modify_vpc_attribute() now supports the
      enableNetworkAddressUsageMetrics-attribute
    * S3: delete_objects() now works against the JS SDK v3.197.0
* Fri Oct 28 2022 Ben Greiner <code@bnavigator.de>
  - Update to 4.0.8
    * General:
    * Unpins the werkzeug-dependency - Moto now works with
      werkzeug==2.2.2
    * Fixes the Docker-build to run on M1 Macbooks.
    * New Services:
    * ServiceQuotas:
    * get_service_quota()
    * list_aws_default_service_quotas()
    * New Methods:
    * CloudFront: list_invalidations()
    * RDS: modify_db_cluster()
    * Miscellaneous:
    * Lambda:delete_function() - fixed an issue where the wrong
      Function would be deleted when providing a qualifier
    * ECR:put_image() now removes any existing images that have the
      provided tag
    * IAM:detach_user/group/role_policy() now throws the correct
      error message when the policy is not attached in the first
      place
    * S3:list_object_versions(): Fix delimiter to take prefix into
      account
    * S3: Now closes file handles as early as possible when
      deleting files/multipart uploads
    * Sagamaker:describe_training_job() now throws the correct
      exception when trying to explain a non-existing job
* Thu Oct 13 2022 Ben Greiner <code@bnavigator.de>
  - Update to 4.0.7
    * New Services:
    * Comprehend:
    * create_entity_recognizer()
    * delete_entity_recognizer()
    * describe_entity_recognizer()
    * list_entity_recognizers()
    * list_tags_for_resource()
    * stop_training_entity_recognizer()
    * MeteringMarketplace:
    * batch_meter_usage()
    * New Methods:
    * EC2:
    * modify_vpc_endpoint()
    * MediaConnect:
    * grant_flow_entitlements()
    * revoke_flow_entitlement()
    * update_flow_entitlement()
    * update_flow_output()
    * Miscellaneous:
    * DynamoDB:transact_write_items() - Now includes validation if
      multipel operations are provided in the same item
    * EC2:cancel_spot_fleet_request() - Fixed a bug where instances
      were always terminated
    * EC2:create_instances() - Now uses the private IP address as
      as provided in the NetworkInterface
    * EC2:describe_instance_types() - Now supports all filters
    * ECS:run_task() - Now creates/attaches an ENI if appropriate
    * S3: Fixed an issue where file handles were not closed on
      large uploads
  - Release 4.0.6
    * General:
    * Moto can now be seeded, which will make identifiers
      deterministic. See
      http://docs.getmoto.org/en/latest/docs/configuration/recorder/index.html
    * The format for access-key and role ids has been changed, and
      is now generated using the same algorithm that AWS uses
    * Miscellaneous:
    * AWSLambda:add_permission() now properly handles the
      PrincipalOrgID-param
    * DynamoDB:update_item() now validates duplicate
      UpdateExpressions
    * EC2 now exposes instance types in the correct availability
      zones for us-west-1 (us-west-1a and us-west-1b)
    * EC2 has various improvements around the handling of
      RouteTableAssociations
    * Glue:get_tables() now supports the Expression-parameter
    * Organizations:create_organization() now uses a default value
      for FeatureSet=ALL
    * RDS:describe_db_subnet_groups() now returns the
      DBSubnetGroupArn-attribute
    * S3:upload_file() now supports the ExtraArgs:
      ChecksumAlgorithm-parameter
    * SSM:list_commands() now returns the
      DeliveryTimedOutCount-attribute
  - Release 4.0.5
    * General:
    * Moto now has a Recorder, to easily record and replay a given
      set of requests. See
      http://docs.getmoto.org/en/latest/docs/configuration/recorder/index.html
    * Miscellaneous:
    * CloudFormation now supports the creation/update/deletion of
      AWS::EC2::LaunchTemplate
    * Glue:start_job_run() now respects the
      MaxConcurrentRuns-parameter
    * S3:get_object() now performs rudimentary BucketPolicy
      validation
    * StateManager now supports `glue::job_run`, managing how long
      it takes to for a Glue job to become 'SUCCEEDED'
  - Release 4.0.3
    * General:
    * Compatible with openapi-spec-validator 0.5.x
    * New Methods:
    * Kinesis:
    * update_stream_mode()
    * WAFv2:
    * associate_web_acl()
    * delete_web_acl()
    * disassociate_web_acl()
    * get_web_acl()
    * get_web_acl_for_resource()
    * list_rule_groups()
    * list_tags_for_resource()
    * tag_resource()
    * untag_resource()
    * update_web_acl()
    * Miscellaneous:
    * DynamoDB:query() now has improved support for
      KeyConditionExpression
    * Kinesis:put_records() now validates the size/number of
      records, following AWS' behaviour
  - Release 4.0.2
    * New Services:
    * Amazon Managed Prometheus (AMP)
    * create_rule_groups_namespace()
    * create_workspace()
    * delete_rule_groups_namespace()
    * delete_workspace()
    * describe_rule_groups_namespace()
    * describe_workspace()
    * list_rule_groups_namespaces()
    * list_tags_for_resource()
    * list_workspaces()
    * put_rule_groups_namespace()
    * tag_resource()
    * untag_resource()
    * update_workspace_alias()
    * Miscellaneous:
    * APIGateway:put_method() now supports the
      requestParameters-parameter
    * AutoScaling:create_auto_scaling_group() now supports the
      MixedInstancesPolicy-parameter
    * CloudWatchLogs:filter_log_events() now supports the
      filterPattern-parameter
    * DynamoDB:batch_put_item() now has validatior for empty keys
    * Kinesis:create_stream() now supports stream-mode=OnDemand
    * S3:head_object() now returns the PartsCount-header
    * SNS:subscribe() now has increased support for the
      FilterPolicy-argument
    * SSM now returns the
      /aws/service/ami-amazon-linux-latest-parameters as provided
      by AWS
  - Release 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
  - Release 4.0.0
    * General:
    * Introduces MultiAccount support (see
      http://docs.getmoto.org/en/latest/docs/multi_account.html)
    * Removes deprecated decorators mock_dynamodb2 and mock_rds2
    * The API for the TreadedMotoServer is now considered stable
    * Dependencies:
    * The responses-module now has a minimum version of 0.13.0
  - Release 3.1.18
    * General:
    * Flask has now also been pinned to 2.1.x, as that is the
      latest release that works with werkzeug 2.1.x
    * New Methods:
    * EC2:
    * create_fleet()
    * describe_fleets()
    * describe_fleet_instances()
    * delete_fleets()
    * SES:
    * describe_configuration_set()
    * send_bulk_templated_email()
    * Miscellaneous:
    * EC2: describe_key_pairs() now returns the KeyPairId-attribute
    * EC2: import_key_pair() now returns the KeyPairId-attribute
    * EC2: describe_launch_templates() now behaves correctly when
      called with an unknown template name
    * RDS: create_db_instance() now returns the
      AvailabilityZone-attribute
    * RDS: describe_db_instances() now returns the
      AvailabilityZone-attribute
  - Release 3.1.17
    * General:
    * Werkzeug has been pinned to 2.1.x, as the latest 2.2.x
      releases cause some issues
    * New Services:
    * CodeBuild:
    * batch_get_builds()
    * delete_project()
    * list_builds()
    * list_builds_for_project()
    * start_build()
    * stop_build()
    * Cost Explorer:
    * create_cost_category_definition()
    * delete_cost_category_definition()
    * describe_cost_category_definition()
    * update_cost_category_definition()
    * EMR Serverless:
    * create_application()
    * delete_application()
    * get_application()
    * list_applications()
    * start_application()
    * start_job_run()
    * stop_application()
    * update_application()
    * New Methods:
    * Autoscaling:
    * delete_scheduled_action()
    * describe_scheduled_actions()
    * put_scheduled_update_group_action()
    * CloudFront:
    * create_distribution_with_tags()
    * create_invalidation()
    * list_tags_for_resource()
    * Glue:
    * create_schema()
    * delete_schema()
    * get_schema_by_definition()
    * get_schema_version()
    * put_schema_version_metadata()
    * register_schema_version()
    * Greengrass:
    * associate_role_to_group()
    * create_deployment()
    * disassociate_role_from_group()
    * get_associated_role()
    * get_deployment_status()
    * list_deployments()
    * reset_deployments()
    * IAM:
    * update_assume_role_policy()
    * IOT:
    * list_targets_for_policy()
    * KMS:
    * replicate_key()
    * MediaConnect:
    * add_flow_sources()
    * update_flow_source()
    * Miscellaneous:
    * CloudFormation now supports the creation of
      AWS::AutoScaling::ScheduledAction
    * CognitoIDP now supports pagination for list_groups() and
      list_users_in_group()
    * EC2:describe_instances() now supports the filter 'key-name'
    * IAM:create_access_key() now limits the number of keys per
      user to 2
* Mon Jun 27 2022 Ben Greiner <code@bnavigator.de>
  - Update to 3.1.16
    * New Methods:
    * Autoscaling:
    * enable_metrics_collection()
    * Miscellaneous:
    * Fixes a dependency-error that popped up in 3.1.15.
  - Release 3.1.15
    * Known bugs:
    * Some services will throw an error: Missing module
      'openapi_spec_validator'.
    * New Methods:
    * Databrew:
    * create_profile_job()
    * create_recipe_job()
    * delete_job()
    * describe_job()
    * list_jobs()
    * update_profile_job()
    * update_recipe_job()
    * Glue:
    * create_registry()
    * Greengrass:
    * create_group()
    * create_group_version()
    * delete_group()
    * get_group()
    * get_group_version()
    * list_groups()
    * list_group_versions()
    * update_group()
    * KMS:
    * sign()
    * verify()
    * Route53Resolver:
    * associate_resolver_endpoint_ip_address()
    * disassociate_resolver_endpoint_ip_address()
  - Release 3.1.14
    * New Methods:
    * Greengrass:
    * create_function_definition()
    * create_resource_definition()
    * create_function_definition_version()
    * create_resource_definition_version()
    * create_subscription_definition()
    * create_subscription_definition_version()
    * delete_function_definition()
    * delete_resource_definition()
    * delete_subscription_definition()
    * get_function_definition()
    * get_function_definition_version()
    * get_resource_definition()
    * get_resource_definition_version()
    * get_subscription_definition()
    * get_subscription_definition_version()
    * list_function_definitions()
    * list_function_definition_versions()
    * list_resource_definitions()
    * list_resource_definition_versions()
    * list_subscription_definitions()
    * list_subscription_definition_versions()
    * update_function_definition()
    * update_resource_definition()
    * update_subscription_definition()
    * EKS:
    * list_tags_for_resources()
    * tag_resource()
    * untag_resource()
    * Route53:
    * associate_vpc_with_hosted_zone()
    * disassociate_vpc_from_hosted_zone()
    * update_health_check()
    * update_hosted_zone_comment()
    * Miscellaneous:
    * APIGateway:put_integration() now supports the
      requestParameters-parameter
    * EC2:create_route() now validates whether a route already
      exists
  - Add remove-mock.patch -- https://trello.com/c/S6eADbii
* Wed Jun 15 2022 Yogalakshmi Arunachalam <yarunachalam@suse.com>
  - Update to 3.1.13
    New Methods:
    * EC2:
    * create_default_vpc()
    * Greengrass:
    * create_device_definition()
    * create_device_definition_version()
    * delete_core_definition()
    * delete_device_definition()
    * get_core_definition()
    * get_core_definition_version()
    * get_device_definition()
    * get_device_definition_version()
    * list_core_definitions()
    * list_core_definition_versions()
    * list_device_definitions()
    * list_device_definition_versions()
    * update_core_definition()
    * update_device_definition()
    * SSO Admin:
    * create_permission_set()
    * delete_permission_set()
    * describe_permission_set()
    * list_permission_sets()
    * update_permission_set()
    * Route53:
    * get_dnssec()
    * get_health_check()
    * Miscellaneous:
    * StateManager now supports `s3::keyrestore`, managing how long it takes to restore S3 objects from Glacier.
  - Update to 3.1.12
    New Services:
    * Greengrass:
    * create_core_definition()
    * create_core_definition_version()
    Internal Changes:
    * The data structure containing all of Moto's state has been updated to support multiple accounts
  - Update to 3.1.11
    New Methods:
    * GuardDuty:
    * create_filter()
    * delete_detector()
    * delete_filter()
    * enable_organization_admin_account()
    * get_detector()
    * get_filter()
    * list_organization_admin_accounts()
    * update_detector()
    * update_filter()
    * KMS:
    * create_grant()
    * list_grants()
    * list_retirable_grants()
    * retire_grant()
    * revoke_grant()
    Miscellaneous:
    * EC2:describe_network_acls() now supports the `entry.egress`-filter
    * EC2:run_instances() now supports validation for the KeyPair-parameter. This is disabled by default - set MOTO_ENABLE_KEYPAIR_VALIDATION to true to enable this.
    * EC2:run_instances() now supports validation for the ImageId-parameter. This is disabled by default - set MOTO_ENABLE_AMI_VALIDATION to true to enable this.
  - Update to 3.1.10
    New Methods:
    * APIGateway:
    * import_rest_api()
    * put_rest_api()
    * Glue:
    * get_tags()
    * tag_resource()
    * untag_resource()
    Miscellaneous:
    * APIGateway:put_integration() now supports the passthroughBehavior-parameter
    * APIGatewayV2:create_authorizer() now supports the AuthorizerPayloadFormatVersion-parameter
    * AWSLamba:publish_layer_version() now supports the CompatibleArchitectures-parameter
    * DAX:create_cluster() now supports the ClusterEndpointEncryptionType-parameter
    * EC2:describe_route_tables() now supports the filter `route.gateway-id`
    * EC2:run_instances() now validates whether the Placement-parameter has a valid availabilty zone
    * ECS:list_services() now supports the launchType-parameter
    * ELB:describe_instance_health() now returns the OutOfService-status when appropriate
    * Organizations:list_accounts_for_parent() now supports pagination
    * Organizations:list_organizational_units_for_parent() now supports pagination
  - Update to 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
* Tue May 10 2022 Ben Greiner <code@bnavigator.de>
  - Update to 3.1.8
    General:
    * Moto now supports a way to delay state transitions.
      See http://docs.getmoto.org/en/latest/docs/configuration/state_transition/index.html
    * Moto now supports `@mock_batch_simple`, a way to mock the
      Batch-service without invoking Docker. New Methods:
    * CognitoIDP:
    - global_sign_out()
    - update_group()
    - update_user_attributes()
    * DataBrew:
    - delete_recipe_version()
    - list_recipe_versions()
    - publish_recipe()
    * IAM:
    - create_service_linked_role()
    - delete_service_linked_role()
    - get_service_linked_role_deletion_status()
    * Sagemaker:
    - update_endpoint_weights_and_capacities()
    Miscellaneous:
    * EC2: request_spot_fleet() now supports the parameters
      LaunchTemplateConfigs, InstanceInterruptionBehavior
    * EC2: request_spot_instances() now supports the
      InstanceInterruptionBehavior-parameter
    * EC2: The status of a SpotInstances request now automatically
      transitions to 'Active/Fulfilled'
    * EC2: Tags specified into create_launch_template() are now
      passed through when calling `run_instances()` with this
      template
    * RDS: describe_db_instances() now supports the filter
      `db-cluster-id`
    * TimestreamWrite: create_table() now supports the
      MagneticStoreWriteProps-parameter
    * TimestreamWrite: update_table() now supports the
      MagneticStoreWriteProps-parameter
  - Release 3.1.7
    New Methods:
    * SES:
    - get_identity_verification_attributes()
    Miscellaneous:
    * CognitoIDP: UserPools now come with default values for the
      following attributes: Policies, AdminCreateUserConfig,
      EmailConfiguration, VerificationMessageTemplate
    * ELBv2: Improved the response-format of the `create_rule()` and
      `set_rule_priorities()`-methods
    * MediaConnect: Now has the correct format for flow/source ARN's
    * Organizations: Fixes the behaviour for close_account()
    * Sagemaker: Now supports tagging of Models, EndpointConfigs,
      ProcessingJobs
  - The tests require mock which is not pulled in implicitly anymore
* Mon Apr 25 2022 Ben Greiner <code@bnavigator.de>
  - Update to 3.1.6
    New Methods:
    * Organizations:
    * close_account()
    Miscellaneous:
    * Autoscaling: the BlockDeviceMappings in LaunchConfigurations
      and LaunchTemplates are now respected when launching EC2
      instances
    * CloudWatch: get_metric_data() now supports the
      Dimensions-parameter
    * ELB: set_rule_priorities() now correctly returns the
      Rules-attribute
    * ELBv2: create_target_group() now supports the Tags-parameter
    * Events: delete_rule() now verifies whether any targets are
      still attached before deletion
  - Release 3.1.5
    New Methods:
    * ApplicationAutoscaling:
    * delete_scheduled_action()
    * describe_scheduled_actions()
    * put_scheduled_action()
    * Databrew:
    * create_ruleset()
    * delete_ruleset()
    * list_rulesets()
    * update_recipe()
    * update_ruleset()
    * EC2:
    * describe_network_interface_attribute()
    Miscellaneous:
    * Glue:get_partitions() now supports the Expression-parameter
    * RDS:delete_db_cluster() now supports the
      FinalDBSnapshotIdentifier-parameter
    * S3 actions can now send notifications for (a subset of)
      supported events and targets
  - Release 3.1.4
      General:
    * Compatible with botocore 1.24.30. The IOTData service in
      older versions of Moto is incompatible with botocore >=
      1.24.30, due to the fact that AWS changed their URL
      endpoints.
      New Services:
    * QuickSight:
    * create_data_set()
    * create_group()
    * create_group_membership()
    * create_ingestion()
    * delete_group()
    * delete_user()
    * describe_group()
    * describe_group_membership()
    * describe_user()
    * list_groups()
    * list_group_memberships()
    * list_users()
    * register_user()
    * update_group()
    * describe_group()
    * describe_group()
    * describe_group()
    * Rekognition:
    * get_text_detection()
    * start_text_detection()
      New Methods:
    * EC2:
    * delete_launch_template()
    * ECS:
    * create_capacity_provider()
    * delete_capacity_provider()
    * describe_capacity_providers()
      Miscellaneous:
    * Autoscaling:put_scaling_policy() now supports the parameters
      MetricAggregationType, MinAdjustmentMagnitude,
      EstimatedInstanceWarmup, PredictiveScalingConfiguration
    * Autoscaling:create_auto_scaling_group() now supports launch
      template versions '$Latest' and '$Default'
    * RDS: Improved tagging support for Clusters and
      ClusterSnapshots
* Sun Mar 27 2022 Ben Greiner <code@bnavigator.de>
  - Update to 3.1.3
    New Methods:
    * TimestreamWrite:
    * list_tags_for_resource()
    * tag_resource()
    * untag_resource()
    Miscellaneous:
    * EC2:run_instances(): Fixed a bug when supplying the
      NetworkInterfaces.Groups-parameter
    * Logs:delete_metric_filter(): Fixed a bug where the
      logGroupName-validator was too strict
  - Release 3.1.2
    Known Bugs:
    * EC2:run_instances(): This call will fail when supplying the
      NetworkInterfaces.Groups-parameter
    New Methods:
    * ELB
    * attach_load_balancer_to_subnets()
    * detach_load_balancer_from_subnets()
    * describe_load_balancer_policies()
    * delete_load_balancer_policy()
    * enable_availability_zones_for_load_balancer()
    * disable_availability_zones_for_load_balancer()
    * ELBv2:
    * add_listener_certificates()
    * describe_listener_certificates()
    * remove_listener_certificates()
    * Glue:
    * get_job()
    * get_job_run()
    * start_job_run()
    Miscellaneous:
    * AWSLambda:add_permission() now supports the
      Qualifier-parameter
    * ELB:create_load_balancer() now retrieves the subnets based on
      the AvailabilityZones-parameter
    * ELB:create_load_balancer() now creates a default
      SecurityGroup, if none is provided
    * ELBv2:create_load_balancer() now supports the
      SubnetMappings-parameter
    * ELBv2:create_listener() now supports the AlpnPolicy-parameter
    * ELBv2: Improved tagging support
    * ELBv2: Exposes the TargetGroupStickinessConfig-attribute when
      describing a Action of type ForwardConfig
  - Release 3.1.1
    New Methods:
    * AWSLambda:
    * create_alias()
    * delete_alias()
    * delete_layer_version()
    * get_alias()
    * get_layer_version()
    * update_alias()
    * EFS:
    * create_access_point()
    * delete_access_point()
    * describe_access_points()
    * describe_lifecycle_configuration()
    * describe_mount_target_security_groups()
    * list_tags_for_resource()
    * modify_mount_target_security_groups()
    * put_lifecycle_configuration()
    * tag_resource()
    * untag_resource()
    Miscellaneous:
    * AWSLambda: get_function now returns the parameters Tags,
      LastUpdateStatus, TracingConfig
    * ELBV2:describe_tags() now supports ListenerRules.
  - Release 3.1.0
    General:
    * Users of `mock_dynamodb2` should start using `mock_dynamodb`
      instead. The `mock_dynamodb`-decorator has been repurposed to
      mock the latest version of DynamoDB, making the behaviour
      equivalent to `mock_dynamodb2`. The
      `mock_dynamodb2`-decorator is now considered deprecated, and
      will be removed in the next major version.
    * Similarly, users of the `mock_rds2` should start using
      `mock_rds` instead. The `mock_rds`-decorator has been
      repurposed to mock the latest version of RDS, making the
      behaviour equivalent to `mock_rds2`. The
      `mock_rds2`-decorator has also been deprecated, and will be
      removed in the next major version.
    Internal Changes:
    * We've upgraded our linting process to use Black 22.1.0, and
      have enabled more pylint rules. Please continue to run `make
      lint` prior to creating a PR, to ensure any changes are
      formatted correctly.
  - Release 3.0.7
    General:
    * Compatible with the latest `responses`-release (0.19.0)
    New Services:
    * DataBrew:
    * create_recipe()
    * get_recipe()
    * list_recipes()
    * Pinpoint:
    * create_app()
    * delete_app()
    * delete_event_stream()
    * get_app()
    * get_application_settings()
    * get_apps()
    * get_event_stream()
    * list_tags_for_resource()
    * put_event_stream()
    * tag_resource()
    * untag_resource()
    * update_application_settings()
  - Release 3.0.6
    General:
    * Feature to start the MotoServer from within Python (in beta)
    Miscellaneous:
    * CloudFormation now supports creation of type
      AWS::EC2::VPCEndpoint
    * ECS: run_task() - The task count now defaults to 1
  - Release 3.0.5
    New Services:
    * Textract:
    * get_document_text_detection()
    * start_document_text_detection()
    New Methods:
    * APIGateway:
    * delete_gateway_responses()
    * get_gateway_response()
    * get_gateway_responses()
    * put_gateway_response()
    * CloudTrail:
    * add_tags()
    * get_event_selectors()
    * get_insight_selectors()
    * list_tags()
    * put_event_selectors()
    * put_insight_selectors()
    * remove_tags()
    * update_trail()
    * CognitoIDP:
    * admin_set_user_mfa_preference()
    * S3Control:
    * create_access_point()
    * delete_access_point()
    * delete_access_point_policy()
    * get_access_point()
    * get_access_point_policy()
    * get_access_point_policy_status()
    Miscellaneous:
    * APIGateway: put_integration() now supports the
      timeoutInMillis-parameter
    * AWSLambda: Made the docker image repository selectable via
      the `MOTO_DOCKER_LAMBDA_IMAGE` environment variable.
    * Batch: register_job_definition() now supports the parameters
      `platformCapabilities`, `propagateTags` and `retryStrategy`
    * IAM: list_entities_for_policy() now returns the
      RoleId/GroupId/UserId-attributes
    * S3Control is now available in ServerMode.
* Tue Feb 22 2022 Dirk Müller <dmueller@suse.com>
  - update to 3.0.4:
    New Services:
    * Redshift-Data:
    * cancel_statement()
    * describe_statement()
    * execute_statement()
    * get_statement_result()
    * Servicediscovery/Cloudmap:
    * create_http_namespace()
    * create_private_dns_namespace()
    * create_public_dns_namespace()
    * create_service()
    * delete_namespace()
    * delete_service()
    * get_namespace()
    * get_operation()
    * get_service()
    * list_namespaces()
    * list_operations()
    * list_services()
    * list_tags_for_resource()
    * tag_resource()
    * untag_resource()
    * update_service()
    New Methods:
    * Athena:
    * create_data_catalog()
    * get_data_catalog()
    * list_data_catalogs()
    * SES:
    * get_identity_mail_from_domain_attributes()
    * set_identity_mail_from_domain()
    Miscellaneous:
    * SSM: Global infrastructure parameters supplied by AWS are now available
    * in Moto
* Tue Feb 22 2022 Dirk Müller <dmueller@suse.com>
  - update to 3.0.3:
    * New Services:
    * APIGatewayV2
    * create_api()
    * create_authorizer()
    * create_integration()
    * create_integration_response()
    * create_model()
    * create_route()
    * create_route_response()
    * create_vpc_link()
    * delete_api()
    * delete_authorizer()
    * delete_cors_configuration()
    * delete_integration()
    * delete_integration_response()
    * delete_model()
    * delete_route()
    * delete_route_request_parameter()
    * delete_route_response()
    * delete_vpc_link()
    * get_api()
    * get_apis()
    * get_authorizer()
    * get_integration()
    * get_integration_response()
    * get_integration_responses()
    * get_integrations()
    * get_model()
    * get_route()
    * get_route_response()
    * get_routes()
    * get_tags()
    * get_vpc_link()
    * get_vpc_links()
    * reimport_api()
    * tag_resource()
    * untag_resource()
    * update_api()
    * update_authorizer()
    * update_integration()
    * update_integration_response()
    * update_model()
    * update_route()
    * update_vpc_link()
    * New Methods:
    * APIGateway:
    * create_vpc_link()
    * delete_vpc_link()
    * get_vpc_link()
    * get_vpc_links()
      EC2:
    * create_vpc_endpoint_service_configuration()
    * delete_vpc_endpoint_service_configurations()
    * describe_vpc_endpoint_service_configurations()
    * describe_vpc_endpoint_service_permissions()
    * modify_vpc_endpoint_service_configuration()
    * modify_vpc_endpoint_service_permissions()
    * Route53:
    * create_reusable_delegation_set()
    * delete_reusable_delegation_set()
    * get_hosted_zone_count()
    * get_reusable_delegation_set()
    * list_reusable_delegation_sets()
    * Miscellaneous:
    * CognitoIDP:
    * initiate_auth()/admin_initiate_auth(): improved behaviour of the AuthFlow-parameter
    * EC2:
    * describe_instance_types() now returns the GpuInfo-attribute
    * Redshift:
    * describe_cluster_snapshots() now supports the SnapshotType-parameter
* Mon Jan 31 2022 Steve Kowalik <steven.kowalik@suse.com>
  - Update to 3.0.2:
    * Miscellaneous:
    * Improved configuration options for Docker-instances started by
      AWSLambda and Batch
    * New Methods:
    * EC2:
    * create_snapshots()
    * Logs:
    * create_export_task()
    * Organizations:
    * remove_account_from_organization()
    * Miscellaneous:
    * DynamoDB: transact_write_items() now throws a
      MultipleTransactionsException when appropriate
    * DynamoDB: Now throws the appropriate InvalidConditionExpression when
      a ConditionExpression contains reserved keywords
    * Organizations: delete_organization() now validates whether all
      accounts are deleted
    * SecretsManager: The attributes CreatedDate and LastChangedDate are
      now returned for secrets
    * SNS: Simplistic email validation is now in place before sending emails
    * Removed:
    - All deprecated decorators have been removed
    * Changes:
    - The behaviour of the class-decorator has been reworked - the state
      is now reset before every test-method.
    - ECS ARN's are now using the long format.
    * Rebranded:
    - The new mock_s3control-decorator has been introduced. The existing
      S3control methods (get/put/delete_public_access_block) are no longer
      available via mock_s3, only via mock_s3control.
    * General:
    - Python 3.5 support has been removed
    - Python 3.10 is now supported
  - Add graphql-core to {Build,}Requires
  - Remove importlib-metadata from {Build,}Requires
* Thu Jan 06 2022 Ben Greiner <code@bnavigator.de>
  - Update to 2.3.0
    * It is now possible to use a mocked region. This will throw an
      error by default, but can be enabled using the
      `MOTO_ALLOW_NONEXISTENT_REGION`-environment variable.
    * Performance improvements - only the backend for the requested
      region is now loaded into memory, instead of (naively) loading
      a backend for every region.
* Fri Dec 24 2021 Ben Greiner <code@bnavigator.de>
  - Update to 2.2.20
    - New Services:
    * ElasticsearchService:
    * create_elasticsearch_domain()
    * delete_elasticsearch_domain()
    * describe_elasticsearch_domain()
    * list_domain_names()
    - New Methods:
    * EC2:
    * disable_ebs_encryption_by_default()
    * enable_ebs_encryption_by_default()
    * get_ebs_encryption_by_default()
    * Redshift:
    * pause_cluster()
    * resume_cluster()
    - Miscellanous:
    * ELBv2: create_listener now supports the
      DefaultActions.ForwardConfig parameter
    * Redshift: restore_from_cluster_snapshot() now supports the
      NodeType and NumberOfNodes-parameters
    * Sagemaker: list_experiments() now supports pagination
    * Sagemaker: list_trials() now supports pagination
    * Sagemaker: list_trial_components() now supports pagination
  - Release 2.2.19
    - General:
    * Support for ap-southeast-3
  - Release 2.2.18
    - New Services:
    * ElastiCache:
    * create_user()
    * delete_user()
    * describe_users()
    * GuardDuty:
    * create_detector()
    * list_detectors()
    - New Methods:
    * IAM:
    * list_open_id_connect_provider_tags()
    * tag_open_id_connect_provider()
    * untag_open_id_connect_provider()
    * update_open_id_connect_provider_thumbprint()
    * IOT:
    * create_domain_configuration()
    * delete_domain_configuration()
    * describe_domain_configuration()
    * list_domain_configurations()
    * update_domain_configuration()
    - Miscellaneous:
    * ResourceGroupTaggingAPI now supports Lambda Functions
    * SecretsManager:list_secrets() now supports negative filters
  - Release 2.2.17
    - New Services:
    * CloudFront:
    * create_distribution()
    * delete_distribution()
    * get_distribution()
    * list_distributions()
    - New Methods:
    * Autoscaling:
    * describe_tags()
    * CloudFormation:
    * get_stack_policy()
    * set_stack_policy()
    * DynamoDB:
    * restore_table_to_point_in_time()
    * Glue:
    * delete_database()
    * list_jobs()
    * IAM:
    * update_group()
    * Route53 Resolver:
    * associate_resolver_rule()
    * create_resolver_rule()
    * delete_resolver_rule()
    * disassociate_resolver_rule()
    * get_resolver_rule()
    * get_resolver_rule_association()
    * list_resolver_rules()
    * list_resolver_rule_associations()
    - Miscellaneous:
    * Batch: register_job_definition() now supports the
      timeout-parameter
    * Batch: submit_job() now supports the timeout-parameter
    * EC2: describe_network_interfaces() now supports the
      `attachment.instance-id` filter
  - Release 2.2.16
    - New Services:
    * SimpleDB:
    * create_domain()
    * delete_domain()
    * get_attributes()
    * list_domains()
    * put_attributes()
    - New Methods:
    * Glue:
    * create_job
    * Route53 Resolver:
    * create_resolver_endpoint()
    * delete_resolver_endpoint()
    * get_resolver_endpoint()
    * list_resolver_endpoints()
    * list_resolver_endpoint_ip_addresses()
    * list_tags_for_resource()
    * tag_resource()
    * untag_resource()
    * update_resolver_endpoint()
    - Miscellaneous:
    * Moto now supports mocking S3-equivalent libraries such as
      Ceph
    * Cognito IDP now exposes the `cognito:groups`-attribute as
      part of the AccessToken
  - Release 2.2.15
    - General:
    * Fixed the dependency bug - `moto install[all]` now installs
      all required dependencies again.
  - Release 2.2.14
    - Known bugs:
    * Running `pip install moto[all]` will not install all required
      dependencies.
    - General:
    * Improved documentation for both users and contributors:
      http://docs.getmoto.org/en/latest/
    * The `@mock_all`-decorator is now available to mock all
      services at the same time
    * The
      `moto.core.patch_client`/`moto.core.patch_resource`-methods
      are now available to patch boto3-clients and -resources
      instantiated after the mock was started. This provides a
      workaround when encountering InvalidAccessKeyId-errors.
    - New Methods:
    * APIGateway:
    * delete_base_path_mapping()
    * EC2:
    * assign_ipv6_addresses()
    * assign_private_ip_addresses()
    * unassign_ipv6_addresses()
    * unassign_private_ip_addresses()
    * SSM:
    * create_maintenance_window()
    * delete_maintenance_window()
    * get_maintenance_window()
    - Miscellaneous:
    * CloudFormation no longer throws errors when trying to update
      unsupported resources.
    * CloudTrail:get_trail_status() now also supports ARN's as a
      parameter
    * CognitoIDP:list_users() now supports the
      AttributesToGet-parameter
    * IOT:attach_policy() now supports Cognito IdentityPools as a
      target
    * IOT:list_job_executions_for_thing() now supports pagination
    * Kinesis:split_shards() now behaves more like AWS, by closing
      the original shard and creating two new ones
    * Logs:put_log_events() now enforces timestamp-validation
    * S3:create_multipart_upload() now supports the
      Tagging-parameter
    * SSM:get_parameters_by_path() now support filtering by label
  - Release 2.2.13
    - General:
    * The mock_dynamodb and mock_rds-decorators have been
      deprecated, and will be repurposed in a later release. Please
      see https://github.com/spulec/moto/issues/4526 for more
      information.
    - New Methods:
    * API Gateway:
    * get_base_path_mappings()
    * Cognito Identity:
    * list_identities()
    * DirectoryService:
    * disable_sso()
    * enable_sso()
    * connect_directory()
    * create_alias()
    * create_microsoft_ad()
    * EMR Containers:
    * cancel_job_run()
    * describe_job_run()
    * list_job_runs()
    * start_job_run()
    * IAM:
    * list_policy_tags()
    * tag_policy()
    * untag_policy()
    * Sagemaker:
    * create_processing_job()
    * describe_processing_job()
    * list_processing_jobs()
    - Miscellaneous:
    * CloudFormation: Now supports creation of Custom:: resources.
      Note that this only works in ServerMode.
  - Release 2.2.12
    - New Services:
    * EMR Containers:
    * create_virtual_cluster()
    * delete_virtual_cluster()
    * describe_virtual_cluster()
    * list_virtual_clusters()
    * DirectoryService:
    * add_tags_to_resource()
    * create_directory()
    * delete_directory()
    * describe_directories()
    * get_directory_limits()
    * list_tags_for_resource()
    * remove_tags_for_resource()
    - New Methods:
    * API Gateway:
    * create_base_path_mapping()
    * get_base_path_mappings()
    * CognitoIDP:
    * add_custom_attributes()
    * admin_delete_user_attributes()
    * Glue:
    * start_crawler()
    * stop_crawler()
    * Sagemaker:
    * add_tags()
    * associate_trial_component()
    * create_experiment()
    * create_trial()
    * create_trial_component()
    * delete_experiment()
    * delete_tags()
    * delete_trial()
    * delete_trial_component()
    * describe_experiment()
    * describe_trial()
    * describe_trial_component()
    * disassociate_trial_component()
    * list_associations()
    * list_experiments()
    * list_trial_components()
    * list_trials()
    * search()
    * SES:
    * describe_receipt_rule_set()
    * update_receipt_rule()
    - Miscellaneous:
    * KMS: Now returns default AWS aliases (alias/aws/s3, etc)
  - Release 2.2.11
    - General:
    * Support for AWS China regions
    * ECS now has an option to enable long-format ARNs, by setting
      the environment variable MOTO_ECS_NEW_ARN=true Alternatively,
      use the `put_account_setting` to enable long-format for the
      current user.
    - New Services:
    * Timestream:
    * create_database()
    * create_table()
    * delete_database()
    * delete_table()
    * describe_database()
    * describe_endpoints()
    * describe_table()
    * list_databases()
    * list_tables()
    * update_database()
    * update_table()
    * write_records()
    - New Methods:
    * CognitoIDP:
    * admin_confirm_sign_up()
    * update_user_pool()
    * ECS:
    * delete_account_setting()
    * list_account_settings()
    * put_account_setting()
    * Route53:
    * create_query_logging_config()
    * delete_query_logging_config()
    * get_query_logging_config()
    * list_query_logging_config()
    * SES
    * describe_receipt_rule()
    * get_identity_notification_attributes()
    * set_identity_feedback_forwarding_enabled()
    - Miscellaneous:
    * CloudFormation: Support create/update/delete of resource
      AWS::Logs::ResourcePolicy
    * CloudFormation:get_template_summary() now returns the
      Parameters-attribute
    * CognitoIDP: Allow the UserAttributes email or phone_number to
      be used as username
    * CognitoIDP: Improved behaviour for the
      ForgotPassword()-feature
  - Release 2.2.10
    - New Services:
    * CloudTrail:
    * create_trail()
    * delete_trail()
    * describe_trails()
    * get_trail()
    * get_trail_status()
    * list_trails()
    * start_logging()
    * stop_logging()
    - New Methods:
    * CognitoIDP:
    * admin_reset_user_password()
    * S3:
    * delete_bucket_replication()
    * get_bucket_replication()
    * put_bucket_replication()
    - Miscellaneous:
    * ACM: describe_certificate(): the InUseBy-attribute will now
      show the appropriate Elastic Load Balancers
    * AWSLambda: If you're running Linux, 'host.docker.internal' is
      now added as an extra host in the Docker container used to
      invoke the function. This makes it easier for
      Lambda-functions to communicate with other servers running on
      the host-system.
    * CloudFormation: Now supports update/deletion of type
      AWS::SNS::Topic
    * CognitoIdentityProvider: list_users() now has improved
      support for the Filter-parameter
    * Kinesis: describe_stream() now supports the Filter-parameter
    * S3: list_object_versions() now supports the Delimiter and
      KeyMarker-parameter
  - Release 2.2.9
    - General:
    * Moto is now compatible with Sure 2.x
    - New Methods:
    * Kinesis:
    * list_shards()
    * RDS:
    * create_db_cluster()
    * delete_db_cluster()
    * describe_db_clusters()
    * restore_db_instance_from_db_snapshot()
    * start_db_cluster()
    * stop_db_cluster()
    * S3:
    * get_object_legal_hold()
    - Miscellaneous:
    * CF: Now supports creation of AWS::EC2::VPNGateway
    * CF: Now supports deletion of AWS::Events::Rule
    * EC2: create_volume() now supports the VolumeType-parameter
    * EC2: describe_customer_gateways() now supports the
      CustomerGatewayIds-parameter
    * EC2: describe_security_groups() now has improved support for
      the Filters-parameter
    * EC2: describe_spot_instance_requests() now supports the
      SpotInstanceRequestIds-parameter
    * EC2: describe_transit_gateways() now supports the
      TransitGatewayIds-parameter
  - Release 2.2.8
    - New Services:
    * ACM:
    * export_certificate()
    * APIGateway:
    * create_request_validator()
    * delete_request_validator()
    * get_request_validators()
    * update_request_validator()
    - Miscellaneous:
    * APIGateway: update_rest_api() now has improved support for
      the patchOperations-parameter
    * Batch: register_job_definition() now supports the
      tags-parameter
    * CloudFormation: Stack Events are now propagated to SNS when
      the NotificationARNs-parameter is supplied.
    * EC2: describe_vpc_endpoint_services() now returns the default
      endpoints for implemented services
    * IOT: list_job_executions_for_job() now supports the
      status-parameter
    * IOT: list_job_executions_for_thing() now supports the
      status-parameter
    * KMS: list_resource_tags() now supports an ARN as the
      KeyId-parameter
    * KMS: tag_resource() now supports an ARN as the
      KeyId-parameter
    * KMS: untag_resource() now supports an ARN as the
      KeyId-parameter
    * SecretsManager: update_secret() now supports the
      ClientRequestToken-parameter
  - Release 2.2.7
    - General:
    * Performance improvements when using Moto in Server Mode. Only
      services that are actually used will now be loaded into
      memory, greatly reducing the waiting times when starting the
      server, making an initial request and calling the reset-api.
    - New Services:
    * Firehose
    * create_delivery_stream()
    * delete_delivery_stream()
    * describe_delivery_stream()
    * list_delivery_streams()
    * list_tags_for_delivery_stream()
    * put_record()
    * put_record_batch()
    * tag_delivery_stream()
    * untag_delivery_stream()
    * update_destination()
    - New Methods:
    * Autoscaling:
    * delete_lifecycle_hook()
    * describe_lifecycle_hooks()
    * put_lifecycle_hook()
    * EC2:
    * associate_subnet_cidr_block()
    * create_carrier_gateway()
    * delete_carrier_gateway()
    * describe_carrier_gateways()
    * describe_spot_price_history()
    * disassociate_subnet_cidr_block()
    * update_security_group_rule_descriptions_egress()
    * update_security_group_rule_descriptions_ingress()
    * Logs:
    * delete_metric_filter()
    * describe_metric_filters()
    * put_metric_filter()
    * SageMaker:
    * list_training_jobs()
    * Transcribe
    * create_vocabulary()
    * delete_transcription_job()
    * delete_vocabulary()
    * get_transcription_job()
    * get_vocabulary()
    * list_transcription_jobs()
    * start_transcription_job()
    - Miscellaneous:
    * DynamoDB: Improved support for the
      ReturnConsumedCapacity-parameter across all methods
    * EC2:create_route() now supports the parameters
      CarrierGatewayId, DestinationPrefixListId
    * EC2:create_subnet() now supports the Ipv6CidrBlock-parameter
    * EC2:describe_nat_gateways() now supports the
      NatGatewayIds-parameter
    * EC2:describe_vpn_gateways() now supports the
      VpnGatewayIds-parameter
    * EC2:modify_network_interface_attribute() now supports the
      SourceDestCheck-parameter
    * EC2:replace_route() now supports the parameters
      DestinationIpv6CidrBlock, DestinationPrefixListId,
      NatGatewayId, EgressOnlyInternetGatewayId, TransitGatewayId
    * EC2:run_instances() now supports the
      InstanceMarketOptions.MarketType-parameter
    * Logs:put_log_events() now supports Firehose as a destination
    * Logs:put_subscription_filter() now supports Firehose as a
      destination
    * S3:create_bucket(): Improved error handling for duplicate
      buckets
    * S3:head_object() now validates incoming calls when using the
      `set_initial_no_auth_action_count`-decorator
    * SSM:put_parameter() now supports the DataType-parameter
  - Release 2.2.6
    - General:
    * `pip install` will no longer log a warning when installing a
      service that does not have any dependencies Example: `pip
      install moto[acm]`
    - New Services:
      ElasticTranscoder:
    * create_pipeline
    * delete_pipeline
    * list_pipelines
    * read_pipeline
    * update_pipeline
    - New Methods:
    * DynamoDB:
    * describe_endpoints()
    - Miscellaneous:
    * AWSLambda now sends logs to CloudWatch when Docker encounters
      an error, to make debugging easier
    * AWSLambda: For all methods, the FunctionName-parameter can be
      either the Lambda name or the Lambda ARN
    * AWSLambda:list_functions() now returns only the latest
      version by default
    * AWSLambda:invoke() now returns the correct Payload for
      invocations that resulted in an error
    * CloudFormation now supports the creation of type
      AWS::IAM::ManagedPolicy
    * CloudFormation now supports the deletion of type
      AWS::IAM::InstanceProfile
    * CloudFormation now supports the deletion of type
      AWS::IAM::Role
    * CloudWatch:create_log_group() now has proper validation for
      the length of the logGroupName-parameter
    * CloudWatch:describe_log_groups() now has proper validation
      for the limit-parameter
    * CloudWatch:describe_log_streams() now has proper validation
      for the limit-parameter
    * CloudWatch:get_log_events() now has proper validation for the
      limit-parameter
    * CloudWatch:filter_log_events() now has proper validation for
      the limit-parameter
    * DynamoDB:update_item(): fixed a bug where an item was
      created, despite throwing an error
    * DynamoDB:update_item() now throws an error when both
      UpdateExpression and AttributeUpdates are supplied
    * EC2:modify_instance_attribute() now supports
      Attribute="disableApiTermination"
    * S3 now supports direct uploads using the requests-library
      without having to specify the 'Content-Type' header
    * S3 now supports creating S3 buckets that start with a service
      name, i.e. `iot-bucket`
    * S3 now returns the RequestID in every response
    * S3:list_parts() now supports the MaxPart-parameter
    * SQS:get_queue_attributes() now behaves correctly when the
      AttributeNames-parameter is not provided
    * SQS:receive_message() no longer accepts queue-names for the
      QueueUrl-parameter, as per AWS' spec
    * SQS: The sqs.Queue-class no longer accepts queue-names, only
      queue-URLs, as per AWS' spec
  - Release 2.2.5
    - General:
    * Python 3.9 is now officially supported
    - Known bugs:
    * SQS:get_queue_attributes() throws an error when the
      AttributeNames-parameter is not provided
    - New Methods:
    * DynamoDB (API v20111205, now deprecated)
    * UpdateItem
    * EC2:
    * modify_vpc_peering_connection_options()
    * Glue:
    * create_crawler()
    * delete_crawler()
    * get_crawler()
    * get_crawlers()
    * SSM:
    * describe_document_permission()
    * modify_document_permission()
    - Miscellaneous:
    * CloudFormation:create_stack() now has validation for an empty
      Outputs-parameter
    * EC2 now returns errors in the correct format, fixing various
      bugs with `terraform destroy`
    * EC2:authorize_security_group_egress() now returns the
      securityGroupRuleSet-attribute
    * EC2:authorize_security_group_ingress() now returns the
      securityGroupRuleSet-attribute
    * EC2:create_route() now supports the
      EgressOnlyInternetGatewayId-parameter
    * EC2:create_route_table() now adds an IPv6-route when enabled
    * EC2:describe_security_groups() now returns the
      ipv6Ranges-attribute
    * EC2:describe_vpc_peering_connection() now supports the
      VpcPeeringConnectionIds-parameter
    * Organisations:detach_policy() now actually detaches a policy
    - before it was essentially a no-op
    * Route53:create_health_check() now supports the
      CallerReference-parameter
    * Route53:create_health_check() now support default values for
      integer-parameters such as
      Port/RequestInterval/FailureThreshold
    * Route53:create_health_check() now supports several additional
      parameters such as
      MeasureLatency/Inverted/Disabled/EnableSNI/ChildHealthChecks
    * SQS:create_queue() now supports the queue-attributes
      FifoThroughputLimit and DeduplicationScope
  - Release 2.2.4
    - New Methods:
    * ConfigService:
    * delete_config_rule()
    * describe_config_rule()
    * put_config_rule()
    * EC2:
    * create_egress_only_internet_gateway()
    * delete_egress_only_internet_gateway()
    * describe_egress_only_internet_gateways()
    * Fargate:
    * create_fargate_profile()
    * delete_fargate_profile()
    * describe_fargate_profile()
    * list_fargate_profiles()
    * IOT:
    * deprecate_thing_type()
    * S3:
    * get_object_lock_configuration()
    * put_object_legal_hold()
    * put_object_lock_configuration()
    * put_object_retention()
    - Miscellaneous:
    * CloudFormation:describe_stack_resource() now throws an
      exception of the LogicalResourceId does not exist
    * CloudFormation: AWS::Events::Rule now supports the
      EventPattern-property
    * CloudFormation: Improved Parameter handling
    * EC2:describe_instances() now handles wildcards correctly when
      filtering by tags
    * EC2:terminate_instances() now throws an exception when trying
      to terminate a protected instance
    * ELBv2:describe_rules() now returns the correct value for the
      IsDefault-attribute
    * IOT:create_thing() now throws an exception if the thing type
      is deprecated
    * IOT:update_thing() now throws an exception if the thing type
      is deprecated
    * S3:create_bucket() now supports the
      ObjectLockEnabledForBucket-parameter
    * S3:putObject() is fixed for the Java SDK, which failed with a
      eTag-validation
  - Release  2.2.3
    - New Methods:
    * EC2:
    * create_managed_prefix_list()
    * delete_managed_prefix_list()
    * describe_managed_prefix_lists()
    * describe_prefix_lists()
    * get_managed_prefix_list_entries()
    * delete_vpc_endpoints()
    * disassociate_transit_gateway_route_table()
    * modify_managed_prefix_list()
    * ECR:
    * delete_lifecycle_policy()
    * delete_registry_policy()
    * describe_image_scan_findings()
    * describe_registry()
    * get_lifecycle_policy()
    * get_registry_policy()
    * put_lifecycle_policy()
    * put_registry_policy()
    * put_replication_configuration()
    * start_image_scan()
    * CloudWatch:
    * list_tags_for_resource()
    * tag_resource()
    * untag_resource()
    - Miscellaneous:
    * CloudWatch: put_metric_alarm() now supports the parameters
      ExtendedStatistic, TreatMissingData,
      EvaluateLowSampleCountPercentile, ThresholdMetricId, Tags
    * CognitoIdentity: create_identity_pool() now supports the
      IdentityPoolTags-parameter
    * CognitoIDP: initiate_auth() now supports the
      'USER_PASSWORD_AUTH'-flow
    * EC2: allocate_address()  now supports the
      TagSpecifications-parameter
    * EC2: create_route() now supports the
      TransitGatewayId-parameter
    * EC2: delete_route() now supports the
      DestinationIpv6CidrBlock-parameter
    * EC2: describe_nat_gateways() now returns the
      connectivityType-attribute
    * ECR: delete_repository() now supports the force-parameter
    * EventBridge: put_events() now supports ARN's for the
      EventBusName-parameter
    * EventBridge: put_rule() now supports the Tags-parameter
    * IOT: create_policy_version() now throws the
      VersionsLimitExceededException if appropriate
* Fri Aug 13 2021 Ben Greiner <code@bnavigator.de>
  - Update to 2.2.2 (bsc#1198331)
    General:
    * Removed the dependency on pkg_resources that was broken in 2.2.1
    New Services:
    * WafV2:
    * create_web_acl()
    * list_web_acls()
    New Methods:
    * Autoscaling:
    * delete_tags()
    * resume_processes()
    * ConfigService:
    * list_tags_for_resource()
    * tag_resource()
    * untag_resource()
    * EC2:
    * accept_transit_gateway_peering_attachment()
    * create_transit_gateway_peering_attachment()
    * delete_transit_gateway_peering_attachment()
    * describe_transit_gateway_peering_attachments()
    * reject_transit_gateway_peering_attachment()
    * ECR:
    * delete_repository_policy()
    * get_repository_policy()
    * list_tags_for_resource()
    * put_image_tag_mutability()
    * put_image_scanning_configuration()
    * set_repository_policy()
    * tag_resource()
    * untag_resource()
    * KMS:
    * update_alias()
    * Logs:
    * delete_resource_policy()
    * describe_resource_policies()
    * RDS:
    * modify_db_subnet_group()
    Miscellaneous:
    * CloudFormation: Improved support for AWS::ECR::Repository
    * CloudFormation: execute_change_set() now properly updates the status of a stack
    * CognitoIDP: list_users() now supports username/status in the Filter-attribute
    * ECR: create_repository() now supports the parameters encryptionConfiguration, imageScanningConfiguration, imageTagMutability
    * Events: put_permission() now supports the Policy and Condition-parameters
    * Events: remove_permission() now supports the RemoveAllPermissions-parameter
    * Kinesis: create_delivery_stream() now supports the ElasticsearchDestinationConfiguration-parameter
    * SecretsManager: create_secret() now supports the KmsKeyId-parameter
    * SecretsManager: update_secret() now supports the KmsKeyId-parameter
  - Release 2.2.1
    Known bugs:
    * Moto still depends on setuptools (or more specifically pkg_resources),
      but this module is not listed as a dependency.
    General:
    * We removed Py3.5 support
    * We removed some unnecessary dependencies for the EC2/SQS services.
    New Services:
    * EFS:
    * create_file_system
    * create_mount_target
    * delete_file_system
    * delete_mount_target
    * describe_backup_policy
    * describe_file_systems
    * describe_mount_target
    New Methods:
    * CognitoIDP:
    * admin_user_global_sign_out()
    * EC2:
    * associate_transit_gateway_route_table()
    * delete_transit_gateway_vpc_attachment()
    * disable_transit_gateway_route_table_propagation()
    * enable_transit_gateway_route_table_propagation()
    * modify_vpc_tenancy()
    * modify_transit_gateway_vpc_attachment()
    * Events:
    * update_connection()
    Miscellaneous:
    * EC2 - describe_route_tables() now returns the associationState-attribute
    * EKS - list_clusters() received a pagination bug fix
    * IOT - describe_certificate() now returns the validity-attribute
    * SQS - create_queue() now supports empty tags
    * SQS - set_queue_attributes() now supports setting an empty policy
  - Release 2.2.0
    General Changes:
    * Support for Python 2.7 has been removed.
      The last release with Python2 support is now 2.1.0
    New Methods:
    * API Gateway:
    * delete_domain_name()
    * delete_method()
    * update_domain_name()
    * update_method()
    * update_method_response()
    * CognitoIdentity:
    * update_identity_pool()
    * EC2:
    * create_transit_gateway()
    * create_transit_gateway_route()
    * create_transit_gateway_route_table()
    * create_transit_gateway_vpc_attachment()
    * delete_transit_gateway()
    * delete_transit_gateway_route()
    * delete_transit_gateway_route_table()
    * describe_transit_gateway_attachments()
    * describe_transit_gateway_route_tables()
    * describe_transit_gateway_vpc_attachments()
    * describe_transit_gateways()
    * modify_transit_gateway()
    * search_transit_gateway_routes()
    * Events:
    * delete_api_destination()
    * delete_connection()
    * describe_connection()
    * update_api_destination()
    * Logs:
    * put_resource_policy()
    * Organizations:
    * delete_organization()
    * S3:
    * delete_bucket_website()
    Miscellaneous:
    * API Gateway - add_integration() now supports the parameters integration_method, tls_config, cache_namespace
    * API Gateway - add_method() now supports the parameters request_models, operation_name, authorizer_id, authorization_scopes, request_validator_id
    * API Gateway - create_integration() now supports the parameters tls_config, cache_namespace
    * API Gateway - create_method() now supports the parameters request_models, operation_name, authorizer_id, authorization_scopes, request_validator_id
    * API Gateway - create_method_response() now supports the parameters response_models, response_parameters
    * API Gateway - create_response() now supports the parameters response_models, response_parameters
    * API Gateway - create_rest_api() now supports the parameters minimum_compression_size
    * API Gateway - create_stage() now supports the parameters tags, tracing_enabled
    * API Gateway - delete_stage() now throws a StageNotFoundException when appropriate
    * API Gateway - get_api_key() now throws a ApiKeyNotFoundException when appropriate
    * API Gateway - get_integration_response() now throws a NoIntegrationResponseDefined when appropriate
    * API Gateway - get_method() now throws a MethodNotFoundException when appropriate
    * ApplicationAutoscaling - put_scaling_policy() now correctly processes the policy_type and policy_body parameters when overwriting an existing policy
    * CloudFormation - now supports the creation of AWS::EC2::TransitGateway
    * CloudWatch - put_metric_alarm() now supports the parameter rule
    * CloudWatch - get_metric_statistics() now supports the parameter dimensions
    * EC2 - create_customer_gateway() now supports the parameter tags
    * EC2 - create_security_group() now supports the parameter tags
    * EC2 - create_vpn_connection() now supports the parameter transit_gateway_id, tags
    * EC2 - create_vpn_gateway() now supports the parameter amazon_side_asn, availability_zone, tags
    * EC2 - get_all_customer_gateways() now has improved support for the filter parameter
    * ECS - create_service() now has support for the parameter service_registries
    * ELBv2 - create_load_balancer() now has support for the parameter loadbalancer_type
    * Events - create_api_destination() now has support for the parameter invocation_rate_limit_per_second
    * Events - create_event_bus() now has support for the parameter tags
    * IAM - create_instance_profile() now has support for the parameter tags
    * IAM - create_policy() now has support for the parameter tags
    * Logs - create_log_group() now has support for the parameter kms_key_id
    * SecretsManager - list_secrets() now supports pagination
  - Release 2.1.0
    General Changes:
    * Reduced the default value of DEFAULT_KEY_BUFFER_SIZE (introduced in 2.0.9).
      In practice, this means that large S3 uploads will now be cached on disk, instead of in-memory.
    * Removes `cfn-lint` as a dependency for the SSM-module.
    New Methods:
    * Kinesis
    * decrease_stream_retention_period
    * increase_stream_retention_period
    Miscellaneous:
    * CognitoIDP:admin_create_user(): Fixed a bug where user-supplied attributes would be ignored/overwritten
    * ELBv2:create_rule(): Increased support for Condition-parameter, to also allow http-header/http-request-method/host-header/path-pattern/query-string/source-ip
  - Release 2.0.11
    New Services:
    * MediaStoreData
    * delete_object
    * get_object
    * list_items
    * put_object
    New Methods:
    * CognitoIDP
    * get_user
    * MediaConnect
    * add_flow_outputs
    * add_flow_vpc_interfaces
    * remove_flow_output
    * remove_flow_vpc_interface
    Miscellaneous:
    * ApplicationAutoscaling:put_scaling_policy() now supports StepScaling
    * ApplicationAutoscaling:register_scalable_target() now supports custom resources
    * CloudFormation: Now resolves default SSM parameters (AWS::SSM::Parameter::Value<>)
    * DynamoDB:update_item(): Fix bug for Action:DELETE without value supplied
    * EC2:create_network_interface() now supports the TagSpecification-parameter
    * ELBv2:modify_listener(): improved behaviour for the Certificates-parameter
    * Lambda:invoke() now returns header: content-type=application/json
    * Logs:put_log_events() now returns the correct error message when the stream does not exist
    * IOT:update_thing_shadow() now properly maintains state
    * S3: Listing parts on an aborted upload now throws the correct error
    * S3:delete_objects() now correctly ignores unknown keys
    * S3:list_object_versions() now returns the Prefix-attribute
    * S3:upload_part() now throws the correct error when providing a negative part number
    * SES:verify_domain_identity() and verify_domain_identity() are now idempotent
    * SNS:create_platform_endpoint() now returns an existing endpoint if the token and attributes are the same
    * SQS:delete_message_batch() now throws an error when duplicate messages are supplied
    * SQS:send_messages() now throws an error for FIFO queues if the MessageGroupId-parameter is not supplied
  - Release 2.0.10
    New Services:
    * EKS
    * create_cluster
    * create_nodegroup
    * delete_cluster
    * delete_nodegroup
    * list_clusters
    * list_nodegroup
    Miscellaneous:
    * DynamoDB: Fixed a bug where it's not possible to call update_item on a GSI
    * EMR: now supports clusters with multiple master nodes
    * EMR:terminate_job_flows() now throws an exception when trying to terminate; protected job flows
    * MediaPackage: Implement NotFoundExceptions for delete_channel/describe_origin_endpoint/delete_origin_endpoint/update_origin_endpoint
    * S3:list_users_response() now returns the IsTruncated-attribute
  - Release 2.0.9
    General Changes:
    * Introduction of a new environment variable: MOTO_S3_DEFAULT_KEY_BUFFER_SIZE
      This allows you to set the in-memory buffer size for multipart uploads. The default size is (and always was) 16MB.
      Exceeding this buffer size will cause the contents to be written/saved to a temporary file.
    New Methods:
    * API Gateway:
    * update_rest_api()
    * DynamoDB:
    * create_backup()
    * delete_backup()
    * describe_backup()
    * list_backups()
    * restore_table_from_backup()
    * Events:
    * create_api_destination()
    * create_connection()
    * describe_api_destination()
    * list_api_destinations()
    * list_connections()
    * Logs
    * start_query()
    Miscellaneous:
    * Batch:
    * Now uses the exit code of the Docker-container to decide job status
    * Supports job-dependencies
    * CloudFormation:
    * Create/Update support for AWS::ElasticLoadBalancingV2::ListenerRule
    * Update support for AWS::ElasticLoadBalancingV2::Listener
    * Glacier:
    * Vault names can now contain special characters
    * MediaPackage:
    * describe_channel() now throws a NotFoundException for unknown channels
    * Organisations:
    * Improve tagging support
    * S3:
    * Now supports '.' as a metadata character
    * S3 Config:
    * Fixed the response format for ACLs
    * SSM:
    * get_parameter() now throws correct exception for unknown parameters/versions
    * get_parameters() can now fetch specific versions and labeled parameters
    * get_parameter_history() now supports pagination
    * Parameter-names can now contain hyphens
    * Only the last 100 parameter versions are now kept, as per AWS' behaviour
  - Release 2.0.8
    General Changes:
    * Moto is now compatible with Flask/werkzeug 2.0
    New Methods:
    * MediaStore:
    * delete_container()
    * list_tags_for_resource()
    * Resource Groups:
    * get_group_configuration()
    * put_group_configuration()
    Miscellaneous:
    * APIGateway:update_usage_plan() now also supports the '/name', '/description' and '/productCode' paths.
    * CloudWatch:get_metric_statistics() now supports the 'unit'-parameter
    * EC2:run_instances() now supports the 'KmsKeyId'-parameter
    * EC2:run_instances() now supports TagSpecifications with ResourceType: 'Volume'
    * SES:test_render_template() now throws an exception if not all attributes are supplied
    * SSM:put_parameter() now supports the 'tags'-parameter
    * SQS:change_message_visibility() now throws an exception if the VisibilityTimeout is too large (> 43200 seconds)
    * SQS:receive_messages() has a bugfix: it now calculates the MessageRetentionPeriod from when the message was send, rather than from when the queue was created
  - Release 2.0.7
    General Changes:
    * When running Moto Server inside Docker, it is now possible to specify the service you want to run, using an environment variable (MOTO_SERVICE)
    * CloudWatchLogs models now appear in the Moto API dashboard
    New Services:
    * DMS
    * create_replication_task()
    * delete_replication_task()
    * describe_replication_tasks()
    * start_replication_task()
    * stop_replication_task()
    New Methods:
    * AWSLambda:
    * update_secret_version_stage()
    * CognitoIDP:
    * get_user_pool_mfa_config()
    * set_user_pool_mfa_config()
    Miscellaneous:
    * CloudWatchLogs:filter_log_events() now supports pagination
    * CloudWatchLogs:describe_log_streams() now supports pagination
    * EC2:describe_network_acls() now supports the filter 'owner-id'
    * EC2:modify_network_interface_attribute() now allows multiple security groups to be specified
    * SecretsManager:rotate_secret() now triggers the Lambda that is specified
  - Release 2.0.6
    New Methods:
    * EMR
    * list_instances()
    Miscellaneous:
    * API Gateway:put_integration_response() - Fixed a bug where an error would be thrown if the responseTemplates-parameter was not specified
    * Autoscaling - Fixed a bug where creating an ASG would remove manually created EC2-instances
    * CloudFormation support for:
    * AWS::SageMaker::Endpoint
    * AWS::SageMaker::EndpointConfig
    * AWS::SageMaker::Model
    * AWS::SageMaker::NotebookInstanceLifecycleConfig
    * CloudWatchLogs:filter_log_events() now supports pagination
    * DynamoDB: Now enforces Hash and Range key size limits
    * ECS:register_task_definition() now persists the taskRoleArn and executionRoleArn-parameters
    * EMR:describe_cluster() now returns the ClusterArn-attribute
    * EMR:run_job_flow() now returns the ClusterArn-attribute
    * EMR:describe_job_flows() now returns the ClusterArn-attribute
    * IOT:list_principal_thigns() now returns the name, instead of the ARN
    * Route53:get_all_rrsets() now returns the record sets in the right sort order
    * S3:get_object() now returns the NoSuchVersion-exception when the versionId was not found (instead of the InvalidVersion)
    * SQS:send_message() now supports the MessageSystemAttributes-parameter
* Thu Apr 15 2021 Ben Greiner <code@bnavigator.de>
  - Update to 2.0.5
    * New Services MediaStore
    * ACM now supports the MOTO_ACM_VALIDATION_WAIT-environment
      variable, to configure the wait time before the status on new
      certificates move from PENDING_VALIDATION to ISSUED
    * CloudFormation support for AWS::SageMaker::NotebookInstance
    * EMR:run_job_flow() now creates the appropriate EC2 security
      groups in a private subnet
    * Events:put_events() has improved support for the
      EventPattern-parameter in create_archive/put_rule
    * Events:put_targets() now support SQS queues
    * IAM:get_user() now returns the Tags-attribute
    * Fixed a bug where Moto would break on systems with a default
      encoding other than UTF-8
  - Release 2.0.4
    * Events:put_targets() now supports SQS queues
    * Support:describe_cases() no longer requires the
      caseIdList-parameter
  - Release 2.0.3
    * New methods for Support
    * CF now returns the PhysicalResourceId-attributes for
      AWS::EC2::NatGateway/AWS::EC2::Route/
      AWS::EC2::SubnetRouteTableAssociation
    * CognitoIDP:sign_up() now throws an UsernameExistsException if
      appropriate
    * DynamoDB now validates the case sensitivity for begins_with/
      between operators
    * EC2:associate_route_table() now supports the
      GatewayId-parameter
    * EC2:authorize_egress() now throws a InvalidPermission.
      Duplicate-exception if appropriate
    * EC2:authorize_security_group_egress() now throws a
      InvalidGroup.NotFound-exception
    * EC2:authorize_security_group_ingress() now throws a
      InvalidGroup.NotFound-exception
    * Events:describe_rule() now returns the ManagedBy/
      CreatedBy-parameters
    * Events:put_events() now supports providing an ARN for the
      EventBusName-parameter
    * Route53:list_hosted_zones_by_name() now returns the
      DNSName-parameter
    * S3:put_object_acl() now throws a NoSuchKey-exception if the
      object does not exist
    * SES:send_templated_email() now throws a
      TemplateDoesNotExist-exception if the template has not been
      created first
    * SSM:put_parameter() now throws an exception for empty values
  - Release 2.0.2
    * New Osaka region is now supported
    * New Service MediaPackage
    New Methods:
    * Redshift: authorize_cluster_security_group_ingress
    * Secrets Manager: untag_resource
  - Release 2.0.1
    * New Service Media Connect
    * New Methods for API Gateway, Events
  - Release 2.0.0
    * When installing, it is now required to specify the service you
      want to use:
      pip install moto[service1,service2]
      pip install moto[all]
      This will ensure that only the required dependencies are
      downloaded.
      See the README for more information.
    * Moved CI to Github Actions
    * Moto no longer hogs the _default_mock from responses
    * Internal testing is now executed using Pytest (instead of Nose)
    * CORS is now enabled when running MotoServer
    * AWS Lambda and Batch now support Podman as an alternative to
      Docker
    * New Services:
      Forecast
      MediaLive
      Support
      Transcribe
  - See CHANGELOG.md for a more detailed list of changes.
  - Drop patches merged upstream:
    * moto-pr3273-escape-sequences.patch
    * moto-pr3308-fix-test_s3.patch
    * moto-pr3412-fix-cfn-lint.patch
    * moto-pr3444-fix-docker.patch
    * moto-pr3575-managedblockchain-botocore-api.patch
    * remove_nose.patch
    * denose_exceptions.patch
* Sat Jan 02 2021 Benjamin Greiner <code@bnavigator.de>
  - Fix test suite failures because of newer packages
    * Add moto-pr3273-escape-sequences.patch gh#spulec/moto#3273
    * Add moto-pr3308-fix-test_s3.patch gh#spulec/moto#3308
    * Add moto-pr3412-fix-cfn-lint.patch gh#spulec/moto#3412
    * Add moto-pr3444-fix-docker.patch gh#spulec/moto#3444
    * Add moto-pr3575-managedblockchain-botocore-api.patch
      gh#spulec/moto#3575
    * Refresh denose_exceptions.patch
  - Fix Leap and python36 flavor failure, because importlib_resources
    is required for older Pythons -- gh#spulec/moto#3576

Files

/usr/share/licenses/python311-moto-server
/usr/share/licenses/python311-moto-server/LICENSE


Generated by rpm2html 1.8.1

Fabrice Bellet, Sat Nov 16 23:53:07 2024