Prep release 4.2.10 (#7064)
This commit is contained in:
parent
4146737321
commit
9e7295ddef
1
.github/workflows/build.yml
vendored
1
.github/workflows/build.yml
vendored
@ -102,6 +102,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
permissions:
|
||||||
id-token: write
|
id-token: write
|
||||||
|
packages: write
|
||||||
needs: [dotnettest, javatest, test, testserver ]
|
needs: [dotnettest, javatest, test, testserver ]
|
||||||
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'getmoto/moto' }}
|
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && github.repository == 'getmoto/moto' }}
|
||||||
steps:
|
steps:
|
||||||
|
18
CHANGELOG.md
18
CHANGELOG.md
@ -1,6 +1,24 @@
|
|||||||
Moto Changelog
|
Moto Changelog
|
||||||
==============
|
==============
|
||||||
|
|
||||||
|
4.2.10
|
||||||
|
-----
|
||||||
|
Docker Digest for 4.2.10: <autopopulateddigest>
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
4.2.9
|
4.2.9
|
||||||
-----
|
-----
|
||||||
Docker Digest for 4.2.9: _sha256:4e9d89322b5ca9196fa7efda78b1269580be7aa6879894950e2728edc946573f_
|
Docker Digest for 4.2.9: _sha256:4e9d89322b5ca9196fa7efda78b1269580be7aa6879894950e2728edc946573f_
|
||||||
|
@ -1137,7 +1137,7 @@
|
|||||||
|
|
||||||
## cognito-identity
|
## cognito-identity
|
||||||
<details>
|
<details>
|
||||||
<summary>34% implemented</summary>
|
<summary>39% implemented</summary>
|
||||||
|
|
||||||
- [X] create_identity_pool
|
- [X] create_identity_pool
|
||||||
- [ ] delete_identities
|
- [ ] delete_identities
|
||||||
@ -1151,7 +1151,7 @@
|
|||||||
- [X] get_open_id_token_for_developer_identity
|
- [X] get_open_id_token_for_developer_identity
|
||||||
- [ ] get_principal_tag_attribute_map
|
- [ ] get_principal_tag_attribute_map
|
||||||
- [X] list_identities
|
- [X] list_identities
|
||||||
- [ ] list_identity_pools
|
- [X] list_identity_pools
|
||||||
- [ ] list_tags_for_resource
|
- [ ] list_tags_for_resource
|
||||||
- [ ] lookup_developer_identity
|
- [ ] lookup_developer_identity
|
||||||
- [ ] merge_developer_identities
|
- [ ] merge_developer_identities
|
||||||
@ -1921,6 +1921,7 @@
|
|||||||
- [ ] associate_enclave_certificate_iam_role
|
- [ ] associate_enclave_certificate_iam_role
|
||||||
- [X] associate_iam_instance_profile
|
- [X] associate_iam_instance_profile
|
||||||
- [ ] associate_instance_event_window
|
- [ ] associate_instance_event_window
|
||||||
|
- [ ] associate_ipam_byoasn
|
||||||
- [ ] associate_ipam_resource_discovery
|
- [ ] associate_ipam_resource_discovery
|
||||||
- [ ] associate_nat_gateway_address
|
- [ ] associate_nat_gateway_address
|
||||||
- [X] associate_route_table
|
- [X] associate_route_table
|
||||||
@ -2111,6 +2112,7 @@
|
|||||||
- [ ] delete_vpn_connection_route
|
- [ ] delete_vpn_connection_route
|
||||||
- [X] delete_vpn_gateway
|
- [X] delete_vpn_gateway
|
||||||
- [ ] deprovision_byoip_cidr
|
- [ ] deprovision_byoip_cidr
|
||||||
|
- [ ] deprovision_ipam_byoasn
|
||||||
- [ ] deprovision_ipam_pool_cidr
|
- [ ] deprovision_ipam_pool_cidr
|
||||||
- [ ] deprovision_public_ipv4_pool_cidr
|
- [ ] deprovision_public_ipv4_pool_cidr
|
||||||
- [X] deregister_image
|
- [X] deregister_image
|
||||||
@ -2173,6 +2175,7 @@
|
|||||||
- [X] describe_instance_types
|
- [X] describe_instance_types
|
||||||
- [X] describe_instances
|
- [X] describe_instances
|
||||||
- [X] describe_internet_gateways
|
- [X] describe_internet_gateways
|
||||||
|
- [ ] describe_ipam_byoasn
|
||||||
- [ ] describe_ipam_pools
|
- [ ] describe_ipam_pools
|
||||||
- [ ] describe_ipam_resource_discoveries
|
- [ ] describe_ipam_resource_discoveries
|
||||||
- [ ] describe_ipam_resource_discovery_associations
|
- [ ] describe_ipam_resource_discovery_associations
|
||||||
@ -2291,6 +2294,7 @@
|
|||||||
- [ ] disassociate_enclave_certificate_iam_role
|
- [ ] disassociate_enclave_certificate_iam_role
|
||||||
- [X] disassociate_iam_instance_profile
|
- [X] disassociate_iam_instance_profile
|
||||||
- [ ] disassociate_instance_event_window
|
- [ ] disassociate_instance_event_window
|
||||||
|
- [ ] disassociate_ipam_byoasn
|
||||||
- [ ] disassociate_ipam_resource_discovery
|
- [ ] disassociate_ipam_resource_discovery
|
||||||
- [ ] disassociate_nat_gateway_address
|
- [ ] disassociate_nat_gateway_address
|
||||||
- [X] disassociate_route_table
|
- [X] disassociate_route_table
|
||||||
@ -2339,6 +2343,7 @@
|
|||||||
- [ ] get_instance_uefi_data
|
- [ ] get_instance_uefi_data
|
||||||
- [ ] get_ipam_address_history
|
- [ ] get_ipam_address_history
|
||||||
- [ ] get_ipam_discovered_accounts
|
- [ ] get_ipam_discovered_accounts
|
||||||
|
- [ ] get_ipam_discovered_public_addresses
|
||||||
- [ ] get_ipam_discovered_resource_cidrs
|
- [ ] get_ipam_discovered_resource_cidrs
|
||||||
- [ ] get_ipam_pool_allocations
|
- [ ] get_ipam_pool_allocations
|
||||||
- [ ] get_ipam_pool_cidrs
|
- [ ] get_ipam_pool_cidrs
|
||||||
@ -2444,6 +2449,7 @@
|
|||||||
- [ ] move_address_to_vpc
|
- [ ] move_address_to_vpc
|
||||||
- [ ] move_byoip_cidr_to_ipam
|
- [ ] move_byoip_cidr_to_ipam
|
||||||
- [ ] provision_byoip_cidr
|
- [ ] provision_byoip_cidr
|
||||||
|
- [ ] provision_ipam_byoasn
|
||||||
- [ ] provision_ipam_pool_cidr
|
- [ ] provision_ipam_pool_cidr
|
||||||
- [ ] provision_public_ipv4_pool_cidr
|
- [ ] provision_public_ipv4_pool_cidr
|
||||||
- [ ] purchase_capacity_block
|
- [ ] purchase_capacity_block
|
||||||
@ -2521,7 +2527,7 @@
|
|||||||
|
|
||||||
## ecr
|
## ecr
|
||||||
<details>
|
<details>
|
||||||
<summary>68% implemented</summary>
|
<summary>65% implemented</summary>
|
||||||
|
|
||||||
- [ ] batch_check_layer_availability
|
- [ ] batch_check_layer_availability
|
||||||
- [X] batch_delete_image
|
- [X] batch_delete_image
|
||||||
@ -2563,7 +2569,9 @@
|
|||||||
- [ ] start_lifecycle_policy_preview
|
- [ ] start_lifecycle_policy_preview
|
||||||
- [X] tag_resource
|
- [X] tag_resource
|
||||||
- [X] untag_resource
|
- [X] untag_resource
|
||||||
|
- [ ] update_pull_through_cache_rule
|
||||||
- [ ] upload_layer_part
|
- [ ] upload_layer_part
|
||||||
|
- [ ] validate_pull_through_cache_rule
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
## ecs
|
## ecs
|
||||||
@ -3286,7 +3294,7 @@
|
|||||||
|
|
||||||
## glue
|
## glue
|
||||||
<details>
|
<details>
|
||||||
<summary>32% implemented</summary>
|
<summary>31% implemented</summary>
|
||||||
|
|
||||||
- [X] batch_create_partition
|
- [X] batch_create_partition
|
||||||
- [ ] batch_delete_connection
|
- [ ] batch_delete_connection
|
||||||
@ -3366,6 +3374,8 @@
|
|||||||
- [ ] get_classifiers
|
- [ ] get_classifiers
|
||||||
- [ ] get_column_statistics_for_partition
|
- [ ] get_column_statistics_for_partition
|
||||||
- [ ] get_column_statistics_for_table
|
- [ ] get_column_statistics_for_table
|
||||||
|
- [ ] get_column_statistics_task_run
|
||||||
|
- [ ] get_column_statistics_task_runs
|
||||||
- [ ] get_connection
|
- [ ] get_connection
|
||||||
- [ ] get_connections
|
- [ ] get_connections
|
||||||
- [X] get_crawler
|
- [X] get_crawler
|
||||||
@ -3426,6 +3436,7 @@
|
|||||||
- [ ] get_workflow_runs
|
- [ ] get_workflow_runs
|
||||||
- [ ] import_catalog_to_glue
|
- [ ] import_catalog_to_glue
|
||||||
- [ ] list_blueprints
|
- [ ] list_blueprints
|
||||||
|
- [ ] list_column_statistics_task_runs
|
||||||
- [X] list_crawlers
|
- [X] list_crawlers
|
||||||
- [ ] list_crawls
|
- [ ] list_crawls
|
||||||
- [ ] list_custom_entity_types
|
- [ ] list_custom_entity_types
|
||||||
@ -3456,6 +3467,7 @@
|
|||||||
- [ ] run_statement
|
- [ ] run_statement
|
||||||
- [ ] search_tables
|
- [ ] search_tables
|
||||||
- [ ] start_blueprint_run
|
- [ ] start_blueprint_run
|
||||||
|
- [ ] start_column_statistics_task_run
|
||||||
- [X] start_crawler
|
- [X] start_crawler
|
||||||
- [ ] start_crawler_schedule
|
- [ ] start_crawler_schedule
|
||||||
- [ ] start_data_quality_rule_recommendation_run
|
- [ ] start_data_quality_rule_recommendation_run
|
||||||
@ -3467,6 +3479,7 @@
|
|||||||
- [ ] start_ml_labeling_set_generation_task_run
|
- [ ] start_ml_labeling_set_generation_task_run
|
||||||
- [X] start_trigger
|
- [X] start_trigger
|
||||||
- [ ] start_workflow_run
|
- [ ] start_workflow_run
|
||||||
|
- [ ] stop_column_statistics_task_run
|
||||||
- [X] stop_crawler
|
- [X] stop_crawler
|
||||||
- [ ] stop_crawler_schedule
|
- [ ] stop_crawler_schedule
|
||||||
- [X] stop_session
|
- [X] stop_session
|
||||||
@ -5331,6 +5344,7 @@
|
|||||||
- [X] create_ingestion
|
- [X] create_ingestion
|
||||||
- [ ] create_namespace
|
- [ ] create_namespace
|
||||||
- [ ] create_refresh_schedule
|
- [ ] create_refresh_schedule
|
||||||
|
- [ ] create_role_membership
|
||||||
- [ ] create_template
|
- [ ] create_template
|
||||||
- [ ] create_template_alias
|
- [ ] create_template_alias
|
||||||
- [ ] create_theme
|
- [ ] create_theme
|
||||||
@ -5352,6 +5366,8 @@
|
|||||||
- [ ] delete_iam_policy_assignment
|
- [ ] delete_iam_policy_assignment
|
||||||
- [ ] delete_namespace
|
- [ ] delete_namespace
|
||||||
- [ ] delete_refresh_schedule
|
- [ ] delete_refresh_schedule
|
||||||
|
- [ ] delete_role_custom_permission
|
||||||
|
- [ ] delete_role_membership
|
||||||
- [ ] delete_template
|
- [ ] delete_template
|
||||||
- [ ] delete_template_alias
|
- [ ] delete_template_alias
|
||||||
- [ ] delete_theme
|
- [ ] delete_theme
|
||||||
@ -5389,6 +5405,7 @@
|
|||||||
- [ ] describe_ip_restriction
|
- [ ] describe_ip_restriction
|
||||||
- [ ] describe_namespace
|
- [ ] describe_namespace
|
||||||
- [ ] describe_refresh_schedule
|
- [ ] describe_refresh_schedule
|
||||||
|
- [ ] describe_role_custom_permission
|
||||||
- [ ] describe_template
|
- [ ] describe_template
|
||||||
- [ ] describe_template_alias
|
- [ ] describe_template_alias
|
||||||
- [ ] describe_template_definition
|
- [ ] describe_template_definition
|
||||||
@ -5422,6 +5439,7 @@
|
|||||||
- [ ] list_ingestions
|
- [ ] list_ingestions
|
||||||
- [ ] list_namespaces
|
- [ ] list_namespaces
|
||||||
- [ ] list_refresh_schedules
|
- [ ] list_refresh_schedules
|
||||||
|
- [ ] list_role_memberships
|
||||||
- [ ] list_tags_for_resource
|
- [ ] list_tags_for_resource
|
||||||
- [ ] list_template_aliases
|
- [ ] list_template_aliases
|
||||||
- [ ] list_template_versions
|
- [ ] list_template_versions
|
||||||
@ -5466,6 +5484,7 @@
|
|||||||
- [ ] update_ip_restriction
|
- [ ] update_ip_restriction
|
||||||
- [ ] update_public_sharing_settings
|
- [ ] update_public_sharing_settings
|
||||||
- [ ] update_refresh_schedule
|
- [ ] update_refresh_schedule
|
||||||
|
- [ ] update_role_custom_permission
|
||||||
- [ ] update_template
|
- [ ] update_template
|
||||||
- [ ] update_template_alias
|
- [ ] update_template_alias
|
||||||
- [ ] update_template_permissions
|
- [ ] update_template_permissions
|
||||||
@ -5691,7 +5710,7 @@
|
|||||||
|
|
||||||
## redshift
|
## redshift
|
||||||
<details>
|
<details>
|
||||||
<summary>23% implemented</summary>
|
<summary>22% implemented</summary>
|
||||||
|
|
||||||
- [ ] accept_reserved_node_exchange
|
- [ ] accept_reserved_node_exchange
|
||||||
- [ ] add_partner
|
- [ ] add_partner
|
||||||
@ -5715,6 +5734,7 @@
|
|||||||
- [ ] create_event_subscription
|
- [ ] create_event_subscription
|
||||||
- [ ] create_hsm_client_certificate
|
- [ ] create_hsm_client_certificate
|
||||||
- [ ] create_hsm_configuration
|
- [ ] create_hsm_configuration
|
||||||
|
- [ ] create_redshift_idc_application
|
||||||
- [ ] create_scheduled_action
|
- [ ] create_scheduled_action
|
||||||
- [X] create_snapshot_copy_grant
|
- [X] create_snapshot_copy_grant
|
||||||
- [ ] create_snapshot_schedule
|
- [ ] create_snapshot_schedule
|
||||||
@ -5733,6 +5753,7 @@
|
|||||||
- [ ] delete_hsm_client_certificate
|
- [ ] delete_hsm_client_certificate
|
||||||
- [ ] delete_hsm_configuration
|
- [ ] delete_hsm_configuration
|
||||||
- [ ] delete_partner
|
- [ ] delete_partner
|
||||||
|
- [ ] delete_redshift_idc_application
|
||||||
- [ ] delete_resource_policy
|
- [ ] delete_resource_policy
|
||||||
- [ ] delete_scheduled_action
|
- [ ] delete_scheduled_action
|
||||||
- [X] delete_snapshot_copy_grant
|
- [X] delete_snapshot_copy_grant
|
||||||
@ -5767,6 +5788,7 @@
|
|||||||
- [ ] describe_node_configuration_options
|
- [ ] describe_node_configuration_options
|
||||||
- [ ] describe_orderable_cluster_options
|
- [ ] describe_orderable_cluster_options
|
||||||
- [ ] describe_partners
|
- [ ] describe_partners
|
||||||
|
- [ ] describe_redshift_idc_applications
|
||||||
- [ ] describe_reserved_node_exchange_status
|
- [ ] describe_reserved_node_exchange_status
|
||||||
- [ ] describe_reserved_node_offerings
|
- [ ] describe_reserved_node_offerings
|
||||||
- [ ] describe_reserved_nodes
|
- [ ] describe_reserved_nodes
|
||||||
@ -5802,6 +5824,7 @@
|
|||||||
- [ ] modify_custom_domain_association
|
- [ ] modify_custom_domain_association
|
||||||
- [ ] modify_endpoint_access
|
- [ ] modify_endpoint_access
|
||||||
- [ ] modify_event_subscription
|
- [ ] modify_event_subscription
|
||||||
|
- [ ] modify_redshift_idc_application
|
||||||
- [ ] modify_scheduled_action
|
- [ ] modify_scheduled_action
|
||||||
- [X] modify_snapshot_copy_retention_period
|
- [X] modify_snapshot_copy_retention_period
|
||||||
- [ ] modify_snapshot_schedule
|
- [ ] modify_snapshot_schedule
|
||||||
@ -7215,31 +7238,59 @@
|
|||||||
|
|
||||||
## sso-admin
|
## sso-admin
|
||||||
<details>
|
<details>
|
||||||
<summary>21% implemented</summary>
|
<summary>10% implemented</summary>
|
||||||
|
|
||||||
- [ ] attach_customer_managed_policy_reference_to_permission_set
|
- [ ] attach_customer_managed_policy_reference_to_permission_set
|
||||||
- [ ] attach_managed_policy_to_permission_set
|
- [ ] attach_managed_policy_to_permission_set
|
||||||
- [X] create_account_assignment
|
- [X] create_account_assignment
|
||||||
|
- [ ] create_application
|
||||||
|
- [ ] create_application_assignment
|
||||||
|
- [ ] create_instance
|
||||||
- [ ] create_instance_access_control_attribute_configuration
|
- [ ] create_instance_access_control_attribute_configuration
|
||||||
- [X] create_permission_set
|
- [X] create_permission_set
|
||||||
|
- [ ] create_trusted_token_issuer
|
||||||
- [X] delete_account_assignment
|
- [X] delete_account_assignment
|
||||||
|
- [ ] delete_application
|
||||||
|
- [ ] delete_application_access_scope
|
||||||
|
- [ ] delete_application_assignment
|
||||||
|
- [ ] delete_application_authentication_method
|
||||||
|
- [ ] delete_application_grant
|
||||||
- [ ] delete_inline_policy_from_permission_set
|
- [ ] delete_inline_policy_from_permission_set
|
||||||
|
- [ ] delete_instance
|
||||||
- [ ] delete_instance_access_control_attribute_configuration
|
- [ ] delete_instance_access_control_attribute_configuration
|
||||||
- [X] delete_permission_set
|
- [X] delete_permission_set
|
||||||
- [ ] delete_permissions_boundary_from_permission_set
|
- [ ] delete_permissions_boundary_from_permission_set
|
||||||
|
- [ ] delete_trusted_token_issuer
|
||||||
- [ ] describe_account_assignment_creation_status
|
- [ ] describe_account_assignment_creation_status
|
||||||
- [ ] describe_account_assignment_deletion_status
|
- [ ] describe_account_assignment_deletion_status
|
||||||
|
- [ ] describe_application
|
||||||
|
- [ ] describe_application_assignment
|
||||||
|
- [ ] describe_application_provider
|
||||||
|
- [ ] describe_instance
|
||||||
- [ ] describe_instance_access_control_attribute_configuration
|
- [ ] describe_instance_access_control_attribute_configuration
|
||||||
- [X] describe_permission_set
|
- [X] describe_permission_set
|
||||||
- [ ] describe_permission_set_provisioning_status
|
- [ ] describe_permission_set_provisioning_status
|
||||||
|
- [ ] describe_trusted_token_issuer
|
||||||
- [ ] detach_customer_managed_policy_reference_from_permission_set
|
- [ ] detach_customer_managed_policy_reference_from_permission_set
|
||||||
- [ ] detach_managed_policy_from_permission_set
|
- [ ] detach_managed_policy_from_permission_set
|
||||||
|
- [ ] get_application_access_scope
|
||||||
|
- [ ] get_application_assignment_configuration
|
||||||
|
- [ ] get_application_authentication_method
|
||||||
|
- [ ] get_application_grant
|
||||||
- [ ] get_inline_policy_for_permission_set
|
- [ ] get_inline_policy_for_permission_set
|
||||||
- [ ] get_permissions_boundary_for_permission_set
|
- [ ] get_permissions_boundary_for_permission_set
|
||||||
- [ ] list_account_assignment_creation_status
|
- [ ] list_account_assignment_creation_status
|
||||||
- [ ] list_account_assignment_deletion_status
|
- [ ] list_account_assignment_deletion_status
|
||||||
- [X] list_account_assignments
|
- [X] list_account_assignments
|
||||||
|
- [ ] list_account_assignments_for_principal
|
||||||
- [ ] list_accounts_for_provisioned_permission_set
|
- [ ] list_accounts_for_provisioned_permission_set
|
||||||
|
- [ ] list_application_access_scopes
|
||||||
|
- [ ] list_application_assignments
|
||||||
|
- [ ] list_application_assignments_for_principal
|
||||||
|
- [ ] list_application_authentication_methods
|
||||||
|
- [ ] list_application_grants
|
||||||
|
- [ ] list_application_providers
|
||||||
|
- [ ] list_applications
|
||||||
- [ ] list_customer_managed_policy_references_in_permission_set
|
- [ ] list_customer_managed_policy_references_in_permission_set
|
||||||
- [ ] list_instances
|
- [ ] list_instances
|
||||||
- [ ] list_managed_policies_in_permission_set
|
- [ ] list_managed_policies_in_permission_set
|
||||||
@ -7247,13 +7298,21 @@
|
|||||||
- [X] list_permission_sets
|
- [X] list_permission_sets
|
||||||
- [ ] list_permission_sets_provisioned_to_account
|
- [ ] list_permission_sets_provisioned_to_account
|
||||||
- [ ] list_tags_for_resource
|
- [ ] list_tags_for_resource
|
||||||
|
- [ ] list_trusted_token_issuers
|
||||||
- [ ] provision_permission_set
|
- [ ] provision_permission_set
|
||||||
|
- [ ] put_application_access_scope
|
||||||
|
- [ ] put_application_assignment_configuration
|
||||||
|
- [ ] put_application_authentication_method
|
||||||
|
- [ ] put_application_grant
|
||||||
- [ ] put_inline_policy_to_permission_set
|
- [ ] put_inline_policy_to_permission_set
|
||||||
- [ ] put_permissions_boundary_to_permission_set
|
- [ ] put_permissions_boundary_to_permission_set
|
||||||
- [ ] tag_resource
|
- [ ] tag_resource
|
||||||
- [ ] untag_resource
|
- [ ] untag_resource
|
||||||
|
- [ ] update_application
|
||||||
|
- [ ] update_instance
|
||||||
- [ ] update_instance_access_control_attribute_configuration
|
- [ ] update_instance_access_control_attribute_configuration
|
||||||
- [X] update_permission_set
|
- [X] update_permission_set
|
||||||
|
- [ ] update_trusted_token_issuer
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
## stepfunctions
|
## stepfunctions
|
||||||
@ -7675,7 +7734,6 @@
|
|||||||
- lookoutvision
|
- lookoutvision
|
||||||
- m2
|
- m2
|
||||||
- machinelearning
|
- machinelearning
|
||||||
- macie
|
|
||||||
- macie2
|
- macie2
|
||||||
- managedblockchain-query
|
- managedblockchain-query
|
||||||
- marketplace-catalog
|
- marketplace-catalog
|
||||||
@ -7763,6 +7821,7 @@
|
|||||||
- tnb
|
- tnb
|
||||||
- transfer
|
- transfer
|
||||||
- translate
|
- translate
|
||||||
|
- trustedadvisor
|
||||||
- verifiedpermissions
|
- verifiedpermissions
|
||||||
- voice-id
|
- voice-id
|
||||||
- vpc-lattice
|
- vpc-lattice
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
include README.md LICENSE AUTHORS.md
|
include README.md LICENSE AUTHORS.md
|
||||||
include requirements.txt requirements-dev.txt
|
include requirements.txt requirements-dev.txt
|
||||||
|
include moto/py.typed
|
||||||
include moto/config/resources/aws_managed_rules.json
|
include moto/config/resources/aws_managed_rules.json
|
||||||
include moto/ec2/_models/*.py
|
|
||||||
include moto/ec2/resources/instance_types.json
|
include moto/ec2/resources/instance_types.json
|
||||||
include moto/ec2/resources/instance_type_offerings/*/*.json
|
include moto/ec2/resources/instance_type_offerings/*/*.json
|
||||||
include moto/ec2/resources/latest_amis/*.json
|
include moto/ec2/resources/latest_amis/*.json
|
||||||
@ -14,7 +14,6 @@ include moto/moto_proxy/*
|
|||||||
include moto/moto_proxy/certs/__init__.py
|
include moto/moto_proxy/certs/__init__.py
|
||||||
include moto/moto_proxy/certs/req.conf.tmpl
|
include moto/moto_proxy/certs/req.conf.tmpl
|
||||||
include moto/rds/resources/cluster_options/*.json
|
include moto/rds/resources/cluster_options/*.json
|
||||||
include moto/servicequotas/resources/*/*.json
|
|
||||||
include moto/ssm/resources/*.json
|
include moto/ssm/resources/*.json
|
||||||
include moto/ssm/resources/ami-amazon-linux-latest/*.json
|
include moto/ssm/resources/ami-amazon-linux-latest/*.json
|
||||||
include moto/ssm/resources/ecs/optimized_amis/*.json
|
include moto/ssm/resources/ecs/optimized_amis/*.json
|
||||||
|
@ -8,6 +8,12 @@
|
|||||||
FAQ
|
FAQ
|
||||||
======
|
======
|
||||||
|
|
||||||
|
Why is my test data disappearing?
|
||||||
|
###################################
|
||||||
|
To prevent state from leaking across different tests, Moto automatically deletes any created data after a Moto-decorator ends.
|
||||||
|
|
||||||
|
So make sure that your decorator is active for the entire duration of the test-method.
|
||||||
|
|
||||||
Is Moto concurrency safe?
|
Is Moto concurrency safe?
|
||||||
############################
|
############################
|
||||||
|
|
||||||
|
@ -254,23 +254,33 @@ Here is an example:
|
|||||||
with mock_s3():
|
with mock_s3():
|
||||||
yield boto3.client("s3", region_name="us-east-1")
|
yield boto3.client("s3", region_name="us-east-1")
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def create_bucket1(s3):
|
||||||
|
boto3.client("s3").create_bucket(Bucket="b1")
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def create_bucket2(s3):
|
||||||
|
boto3.client("s3").create_bucket(Bucket="b2")
|
||||||
|
|
||||||
|
def test_s3_directly(s3):
|
||||||
|
s3.create_bucket(Bucket="somebucket")
|
||||||
|
|
||||||
|
result = s3.list_buckets()
|
||||||
|
assert len(result["Buckets"]) == 1
|
||||||
|
|
||||||
|
def test_bucket_creation(create_bucket1, create_bucket2):
|
||||||
|
buckets = boto3.client("s3").list_buckets()["Buckets"]
|
||||||
|
assert len(result["Buckets"]) == 2
|
||||||
|
|
||||||
|
|
||||||
In the code sample above, all of the AWS/mocked fixtures take in a parameter of `aws_credentials`,
|
In the code sample above, all of the AWS/mocked fixtures take in a parameter of `aws_credentials`,
|
||||||
which sets the proper fake environment variables. The fake environment variables are used so that `botocore` doesn't try to locate real
|
which sets the proper fake environment variables. The fake environment variables are used so that `botocore` doesn't try to locate real
|
||||||
credentials on your system.
|
credentials on your system.
|
||||||
|
|
||||||
Next, once you need to do anything with the mocked AWS environment, do something like:
|
With Moto activated within the fixture, we can pass it to a test-method to ensure that any other AWS-calls are also mocked inside that test method.
|
||||||
|
We can also combine multiple fixtures that use the same Moto-fixture.
|
||||||
|
|
||||||
.. sourcecode:: python
|
Moto will delete any data after the mock ends, so the state is not shared across methods.
|
||||||
|
|
||||||
def test_create_bucket(s3):
|
|
||||||
# s3 is a fixture defined above that yields a boto3 s3 client.
|
|
||||||
# Feel free to instantiate another boto3 S3 client -- Keep note of the region though.
|
|
||||||
s3.create_bucket(Bucket="somebucket")
|
|
||||||
|
|
||||||
result = s3.list_buckets()
|
|
||||||
assert len(result["Buckets"]) == 1
|
|
||||||
assert result["Buckets"][0]["Name"] == "somebucket"
|
|
||||||
|
|
||||||
|
|
||||||
.. _pesky_imports_section:
|
.. _pesky_imports_section:
|
||||||
|
@ -64,7 +64,6 @@ autoscaling
|
|||||||
- [X] describe_tags
|
- [X] describe_tags
|
||||||
|
|
||||||
Pagination is not yet implemented.
|
Pagination is not yet implemented.
|
||||||
Only the `auto-scaling-group` and `propagate-at-launch` filters are implemented.
|
|
||||||
|
|
||||||
|
|
||||||
- [ ] describe_termination_policy_types
|
- [ ] describe_termination_policy_types
|
||||||
|
@ -41,7 +41,11 @@ cognito-identity
|
|||||||
The MaxResults-parameter has not yet been implemented
|
The MaxResults-parameter has not yet been implemented
|
||||||
|
|
||||||
|
|
||||||
- [ ] list_identity_pools
|
- [X] list_identity_pools
|
||||||
|
|
||||||
|
The MaxResults-parameter has not yet been implemented
|
||||||
|
|
||||||
|
|
||||||
- [ ] list_tags_for_resource
|
- [ ] list_tags_for_resource
|
||||||
- [ ] lookup_developer_identity
|
- [ ] lookup_developer_identity
|
||||||
- [ ] merge_developer_identities
|
- [ ] merge_developer_identities
|
||||||
|
@ -48,6 +48,7 @@ ec2
|
|||||||
- [ ] associate_enclave_certificate_iam_role
|
- [ ] associate_enclave_certificate_iam_role
|
||||||
- [X] associate_iam_instance_profile
|
- [X] associate_iam_instance_profile
|
||||||
- [ ] associate_instance_event_window
|
- [ ] associate_instance_event_window
|
||||||
|
- [ ] associate_ipam_byoasn
|
||||||
- [ ] associate_ipam_resource_discovery
|
- [ ] associate_ipam_resource_discovery
|
||||||
- [ ] associate_nat_gateway_address
|
- [ ] associate_nat_gateway_address
|
||||||
- [X] associate_route_table
|
- [X] associate_route_table
|
||||||
@ -242,6 +243,7 @@ ec2
|
|||||||
- [ ] delete_vpn_connection_route
|
- [ ] delete_vpn_connection_route
|
||||||
- [X] delete_vpn_gateway
|
- [X] delete_vpn_gateway
|
||||||
- [ ] deprovision_byoip_cidr
|
- [ ] deprovision_byoip_cidr
|
||||||
|
- [ ] deprovision_ipam_byoasn
|
||||||
- [ ] deprovision_ipam_pool_cidr
|
- [ ] deprovision_ipam_pool_cidr
|
||||||
- [ ] deprovision_public_ipv4_pool_cidr
|
- [ ] deprovision_public_ipv4_pool_cidr
|
||||||
- [X] deregister_image
|
- [X] deregister_image
|
||||||
@ -312,6 +314,7 @@ ec2
|
|||||||
- [X] describe_instance_types
|
- [X] describe_instance_types
|
||||||
- [X] describe_instances
|
- [X] describe_instances
|
||||||
- [X] describe_internet_gateways
|
- [X] describe_internet_gateways
|
||||||
|
- [ ] describe_ipam_byoasn
|
||||||
- [ ] describe_ipam_pools
|
- [ ] describe_ipam_pools
|
||||||
- [ ] describe_ipam_resource_discoveries
|
- [ ] describe_ipam_resource_discoveries
|
||||||
- [ ] describe_ipam_resource_discovery_associations
|
- [ ] describe_ipam_resource_discovery_associations
|
||||||
@ -449,6 +452,7 @@ ec2
|
|||||||
- [ ] disassociate_enclave_certificate_iam_role
|
- [ ] disassociate_enclave_certificate_iam_role
|
||||||
- [X] disassociate_iam_instance_profile
|
- [X] disassociate_iam_instance_profile
|
||||||
- [ ] disassociate_instance_event_window
|
- [ ] disassociate_instance_event_window
|
||||||
|
- [ ] disassociate_ipam_byoasn
|
||||||
- [ ] disassociate_ipam_resource_discovery
|
- [ ] disassociate_ipam_resource_discovery
|
||||||
- [ ] disassociate_nat_gateway_address
|
- [ ] disassociate_nat_gateway_address
|
||||||
- [X] disassociate_route_table
|
- [X] disassociate_route_table
|
||||||
@ -497,6 +501,7 @@ ec2
|
|||||||
- [ ] get_instance_uefi_data
|
- [ ] get_instance_uefi_data
|
||||||
- [ ] get_ipam_address_history
|
- [ ] get_ipam_address_history
|
||||||
- [ ] get_ipam_discovered_accounts
|
- [ ] get_ipam_discovered_accounts
|
||||||
|
- [ ] get_ipam_discovered_public_addresses
|
||||||
- [ ] get_ipam_discovered_resource_cidrs
|
- [ ] get_ipam_discovered_resource_cidrs
|
||||||
- [ ] get_ipam_pool_allocations
|
- [ ] get_ipam_pool_allocations
|
||||||
- [ ] get_ipam_pool_cidrs
|
- [ ] get_ipam_pool_cidrs
|
||||||
@ -606,6 +611,7 @@ ec2
|
|||||||
- [ ] move_address_to_vpc
|
- [ ] move_address_to_vpc
|
||||||
- [ ] move_byoip_cidr_to_ipam
|
- [ ] move_byoip_cidr_to_ipam
|
||||||
- [ ] provision_byoip_cidr
|
- [ ] provision_byoip_cidr
|
||||||
|
- [ ] provision_ipam_byoasn
|
||||||
- [ ] provision_ipam_pool_cidr
|
- [ ] provision_ipam_pool_cidr
|
||||||
- [ ] provision_public_ipv4_pool_cidr
|
- [ ] provision_public_ipv4_pool_cidr
|
||||||
- [ ] purchase_capacity_block
|
- [ ] purchase_capacity_block
|
||||||
|
@ -77,5 +77,7 @@ ecr
|
|||||||
- [ ] start_lifecycle_policy_preview
|
- [ ] start_lifecycle_policy_preview
|
||||||
- [X] tag_resource
|
- [X] tag_resource
|
||||||
- [X] untag_resource
|
- [X] untag_resource
|
||||||
|
- [ ] update_pull_through_cache_rule
|
||||||
- [ ] upload_layer_part
|
- [ ] upload_layer_part
|
||||||
|
- [ ] validate_pull_through_cache_rule
|
||||||
|
|
||||||
|
@ -107,6 +107,8 @@ glue
|
|||||||
- [ ] get_classifiers
|
- [ ] get_classifiers
|
||||||
- [ ] get_column_statistics_for_partition
|
- [ ] get_column_statistics_for_partition
|
||||||
- [ ] get_column_statistics_for_table
|
- [ ] get_column_statistics_for_table
|
||||||
|
- [ ] get_column_statistics_task_run
|
||||||
|
- [ ] get_column_statistics_task_runs
|
||||||
- [ ] get_connection
|
- [ ] get_connection
|
||||||
- [ ] get_connections
|
- [ ] get_connections
|
||||||
- [X] get_crawler
|
- [X] get_crawler
|
||||||
@ -179,6 +181,7 @@ glue
|
|||||||
- [ ] get_workflow_runs
|
- [ ] get_workflow_runs
|
||||||
- [ ] import_catalog_to_glue
|
- [ ] import_catalog_to_glue
|
||||||
- [ ] list_blueprints
|
- [ ] list_blueprints
|
||||||
|
- [ ] list_column_statistics_task_runs
|
||||||
- [X] list_crawlers
|
- [X] list_crawlers
|
||||||
- [ ] list_crawls
|
- [ ] list_crawls
|
||||||
- [ ] list_custom_entity_types
|
- [ ] list_custom_entity_types
|
||||||
@ -209,6 +212,7 @@ glue
|
|||||||
- [ ] run_statement
|
- [ ] run_statement
|
||||||
- [ ] search_tables
|
- [ ] search_tables
|
||||||
- [ ] start_blueprint_run
|
- [ ] start_blueprint_run
|
||||||
|
- [ ] start_column_statistics_task_run
|
||||||
- [X] start_crawler
|
- [X] start_crawler
|
||||||
- [ ] start_crawler_schedule
|
- [ ] start_crawler_schedule
|
||||||
- [ ] start_data_quality_rule_recommendation_run
|
- [ ] start_data_quality_rule_recommendation_run
|
||||||
@ -220,6 +224,7 @@ glue
|
|||||||
- [ ] start_ml_labeling_set_generation_task_run
|
- [ ] start_ml_labeling_set_generation_task_run
|
||||||
- [X] start_trigger
|
- [X] start_trigger
|
||||||
- [ ] start_workflow_run
|
- [ ] start_workflow_run
|
||||||
|
- [ ] stop_column_statistics_task_run
|
||||||
- [X] stop_crawler
|
- [X] stop_crawler
|
||||||
- [ ] stop_crawler_schedule
|
- [ ] stop_crawler_schedule
|
||||||
- [X] stop_session
|
- [X] stop_session
|
||||||
|
@ -64,7 +64,7 @@ lakeformation
|
|||||||
- [X] list_lf_tags
|
- [X] list_lf_tags
|
||||||
- [X] list_permissions
|
- [X] list_permissions
|
||||||
|
|
||||||
No parameters have been implemented yet
|
No pagination has been implemented yet.
|
||||||
|
|
||||||
|
|
||||||
- [X] list_resources
|
- [X] list_resources
|
||||||
|
@ -42,6 +42,7 @@ quicksight
|
|||||||
- [X] create_ingestion
|
- [X] create_ingestion
|
||||||
- [ ] create_namespace
|
- [ ] create_namespace
|
||||||
- [ ] create_refresh_schedule
|
- [ ] create_refresh_schedule
|
||||||
|
- [ ] create_role_membership
|
||||||
- [ ] create_template
|
- [ ] create_template
|
||||||
- [ ] create_template_alias
|
- [ ] create_template_alias
|
||||||
- [ ] create_theme
|
- [ ] create_theme
|
||||||
@ -63,6 +64,8 @@ quicksight
|
|||||||
- [ ] delete_iam_policy_assignment
|
- [ ] delete_iam_policy_assignment
|
||||||
- [ ] delete_namespace
|
- [ ] delete_namespace
|
||||||
- [ ] delete_refresh_schedule
|
- [ ] delete_refresh_schedule
|
||||||
|
- [ ] delete_role_custom_permission
|
||||||
|
- [ ] delete_role_membership
|
||||||
- [ ] delete_template
|
- [ ] delete_template
|
||||||
- [ ] delete_template_alias
|
- [ ] delete_template_alias
|
||||||
- [ ] delete_theme
|
- [ ] delete_theme
|
||||||
@ -100,6 +103,7 @@ quicksight
|
|||||||
- [ ] describe_ip_restriction
|
- [ ] describe_ip_restriction
|
||||||
- [ ] describe_namespace
|
- [ ] describe_namespace
|
||||||
- [ ] describe_refresh_schedule
|
- [ ] describe_refresh_schedule
|
||||||
|
- [ ] describe_role_custom_permission
|
||||||
- [ ] describe_template
|
- [ ] describe_template
|
||||||
- [ ] describe_template_alias
|
- [ ] describe_template_alias
|
||||||
- [ ] describe_template_definition
|
- [ ] describe_template_definition
|
||||||
@ -141,6 +145,7 @@ quicksight
|
|||||||
- [ ] list_ingestions
|
- [ ] list_ingestions
|
||||||
- [ ] list_namespaces
|
- [ ] list_namespaces
|
||||||
- [ ] list_refresh_schedules
|
- [ ] list_refresh_schedules
|
||||||
|
- [ ] list_role_memberships
|
||||||
- [ ] list_tags_for_resource
|
- [ ] list_tags_for_resource
|
||||||
- [ ] list_template_aliases
|
- [ ] list_template_aliases
|
||||||
- [ ] list_template_versions
|
- [ ] list_template_versions
|
||||||
@ -194,6 +199,7 @@ quicksight
|
|||||||
- [ ] update_ip_restriction
|
- [ ] update_ip_restriction
|
||||||
- [ ] update_public_sharing_settings
|
- [ ] update_public_sharing_settings
|
||||||
- [ ] update_refresh_schedule
|
- [ ] update_refresh_schedule
|
||||||
|
- [ ] update_role_custom_permission
|
||||||
- [ ] update_template
|
- [ ] update_template
|
||||||
- [ ] update_template_alias
|
- [ ] update_template_alias
|
||||||
- [ ] update_template_permissions
|
- [ ] update_template_permissions
|
||||||
|
@ -47,6 +47,7 @@ redshift
|
|||||||
- [ ] create_event_subscription
|
- [ ] create_event_subscription
|
||||||
- [ ] create_hsm_client_certificate
|
- [ ] create_hsm_client_certificate
|
||||||
- [ ] create_hsm_configuration
|
- [ ] create_hsm_configuration
|
||||||
|
- [ ] create_redshift_idc_application
|
||||||
- [ ] create_scheduled_action
|
- [ ] create_scheduled_action
|
||||||
- [X] create_snapshot_copy_grant
|
- [X] create_snapshot_copy_grant
|
||||||
- [ ] create_snapshot_schedule
|
- [ ] create_snapshot_schedule
|
||||||
@ -65,6 +66,7 @@ redshift
|
|||||||
- [ ] delete_hsm_client_certificate
|
- [ ] delete_hsm_client_certificate
|
||||||
- [ ] delete_hsm_configuration
|
- [ ] delete_hsm_configuration
|
||||||
- [ ] delete_partner
|
- [ ] delete_partner
|
||||||
|
- [ ] delete_redshift_idc_application
|
||||||
- [ ] delete_resource_policy
|
- [ ] delete_resource_policy
|
||||||
- [ ] delete_scheduled_action
|
- [ ] delete_scheduled_action
|
||||||
- [X] delete_snapshot_copy_grant
|
- [X] delete_snapshot_copy_grant
|
||||||
@ -99,6 +101,7 @@ redshift
|
|||||||
- [ ] describe_node_configuration_options
|
- [ ] describe_node_configuration_options
|
||||||
- [ ] describe_orderable_cluster_options
|
- [ ] describe_orderable_cluster_options
|
||||||
- [ ] describe_partners
|
- [ ] describe_partners
|
||||||
|
- [ ] describe_redshift_idc_applications
|
||||||
- [ ] describe_reserved_node_exchange_status
|
- [ ] describe_reserved_node_exchange_status
|
||||||
- [ ] describe_reserved_node_offerings
|
- [ ] describe_reserved_node_offerings
|
||||||
- [ ] describe_reserved_nodes
|
- [ ] describe_reserved_nodes
|
||||||
@ -134,6 +137,7 @@ redshift
|
|||||||
- [ ] modify_custom_domain_association
|
- [ ] modify_custom_domain_association
|
||||||
- [ ] modify_endpoint_access
|
- [ ] modify_endpoint_access
|
||||||
- [ ] modify_event_subscription
|
- [ ] modify_event_subscription
|
||||||
|
- [ ] modify_redshift_idc_application
|
||||||
- [ ] modify_scheduled_action
|
- [ ] modify_scheduled_action
|
||||||
- [X] modify_snapshot_copy_retention_period
|
- [X] modify_snapshot_copy_retention_period
|
||||||
- [ ] modify_snapshot_schedule
|
- [ ] modify_snapshot_schedule
|
||||||
|
@ -30,20 +30,40 @@ sso-admin
|
|||||||
- [ ] attach_customer_managed_policy_reference_to_permission_set
|
- [ ] attach_customer_managed_policy_reference_to_permission_set
|
||||||
- [ ] attach_managed_policy_to_permission_set
|
- [ ] attach_managed_policy_to_permission_set
|
||||||
- [X] create_account_assignment
|
- [X] create_account_assignment
|
||||||
|
- [ ] create_application
|
||||||
|
- [ ] create_application_assignment
|
||||||
|
- [ ] create_instance
|
||||||
- [ ] create_instance_access_control_attribute_configuration
|
- [ ] create_instance_access_control_attribute_configuration
|
||||||
- [X] create_permission_set
|
- [X] create_permission_set
|
||||||
|
- [ ] create_trusted_token_issuer
|
||||||
- [X] delete_account_assignment
|
- [X] delete_account_assignment
|
||||||
|
- [ ] delete_application
|
||||||
|
- [ ] delete_application_access_scope
|
||||||
|
- [ ] delete_application_assignment
|
||||||
|
- [ ] delete_application_authentication_method
|
||||||
|
- [ ] delete_application_grant
|
||||||
- [ ] delete_inline_policy_from_permission_set
|
- [ ] delete_inline_policy_from_permission_set
|
||||||
|
- [ ] delete_instance
|
||||||
- [ ] delete_instance_access_control_attribute_configuration
|
- [ ] delete_instance_access_control_attribute_configuration
|
||||||
- [X] delete_permission_set
|
- [X] delete_permission_set
|
||||||
- [ ] delete_permissions_boundary_from_permission_set
|
- [ ] delete_permissions_boundary_from_permission_set
|
||||||
|
- [ ] delete_trusted_token_issuer
|
||||||
- [ ] describe_account_assignment_creation_status
|
- [ ] describe_account_assignment_creation_status
|
||||||
- [ ] describe_account_assignment_deletion_status
|
- [ ] describe_account_assignment_deletion_status
|
||||||
|
- [ ] describe_application
|
||||||
|
- [ ] describe_application_assignment
|
||||||
|
- [ ] describe_application_provider
|
||||||
|
- [ ] describe_instance
|
||||||
- [ ] describe_instance_access_control_attribute_configuration
|
- [ ] describe_instance_access_control_attribute_configuration
|
||||||
- [X] describe_permission_set
|
- [X] describe_permission_set
|
||||||
- [ ] describe_permission_set_provisioning_status
|
- [ ] describe_permission_set_provisioning_status
|
||||||
|
- [ ] describe_trusted_token_issuer
|
||||||
- [ ] detach_customer_managed_policy_reference_from_permission_set
|
- [ ] detach_customer_managed_policy_reference_from_permission_set
|
||||||
- [ ] detach_managed_policy_from_permission_set
|
- [ ] detach_managed_policy_from_permission_set
|
||||||
|
- [ ] get_application_access_scope
|
||||||
|
- [ ] get_application_assignment_configuration
|
||||||
|
- [ ] get_application_authentication_method
|
||||||
|
- [ ] get_application_grant
|
||||||
- [ ] get_inline_policy_for_permission_set
|
- [ ] get_inline_policy_for_permission_set
|
||||||
- [ ] get_permissions_boundary_for_permission_set
|
- [ ] get_permissions_boundary_for_permission_set
|
||||||
- [ ] list_account_assignment_creation_status
|
- [ ] list_account_assignment_creation_status
|
||||||
@ -53,7 +73,15 @@ sso-admin
|
|||||||
Pagination has not yet been implemented
|
Pagination has not yet been implemented
|
||||||
|
|
||||||
|
|
||||||
|
- [ ] list_account_assignments_for_principal
|
||||||
- [ ] list_accounts_for_provisioned_permission_set
|
- [ ] list_accounts_for_provisioned_permission_set
|
||||||
|
- [ ] list_application_access_scopes
|
||||||
|
- [ ] list_application_assignments
|
||||||
|
- [ ] list_application_assignments_for_principal
|
||||||
|
- [ ] list_application_authentication_methods
|
||||||
|
- [ ] list_application_grants
|
||||||
|
- [ ] list_application_providers
|
||||||
|
- [ ] list_applications
|
||||||
- [ ] list_customer_managed_policy_references_in_permission_set
|
- [ ] list_customer_managed_policy_references_in_permission_set
|
||||||
- [ ] list_instances
|
- [ ] list_instances
|
||||||
- [ ] list_managed_policies_in_permission_set
|
- [ ] list_managed_policies_in_permission_set
|
||||||
@ -61,11 +89,19 @@ sso-admin
|
|||||||
- [X] list_permission_sets
|
- [X] list_permission_sets
|
||||||
- [ ] list_permission_sets_provisioned_to_account
|
- [ ] list_permission_sets_provisioned_to_account
|
||||||
- [ ] list_tags_for_resource
|
- [ ] list_tags_for_resource
|
||||||
|
- [ ] list_trusted_token_issuers
|
||||||
- [ ] provision_permission_set
|
- [ ] provision_permission_set
|
||||||
|
- [ ] put_application_access_scope
|
||||||
|
- [ ] put_application_assignment_configuration
|
||||||
|
- [ ] put_application_authentication_method
|
||||||
|
- [ ] put_application_grant
|
||||||
- [ ] put_inline_policy_to_permission_set
|
- [ ] put_inline_policy_to_permission_set
|
||||||
- [ ] put_permissions_boundary_to_permission_set
|
- [ ] put_permissions_boundary_to_permission_set
|
||||||
- [ ] tag_resource
|
- [ ] tag_resource
|
||||||
- [ ] untag_resource
|
- [ ] untag_resource
|
||||||
|
- [ ] update_application
|
||||||
|
- [ ] update_instance
|
||||||
- [ ] update_instance_access_control_attribute_configuration
|
- [ ] update_instance_access_control_attribute_configuration
|
||||||
- [X] update_permission_set
|
- [X] update_permission_set
|
||||||
|
- [ ] update_trusted_token_issuer
|
||||||
|
|
||||||
|
@ -472,10 +472,10 @@ class FakeAutoScalingGroup(CloudFormationModel):
|
|||||||
@tags.setter
|
@tags.setter
|
||||||
def tags(self, tags: List[Dict[str, str]]) -> None:
|
def tags(self, tags: List[Dict[str, str]]) -> None:
|
||||||
for tag in tags:
|
for tag in tags:
|
||||||
if "resource_id" not in tag or not tag["resource_id"]:
|
if "ResourceId" not in tag or not tag["ResourceId"]:
|
||||||
tag["resource_id"] = self.name
|
tag["ResourceId"] = self.name
|
||||||
if "resource_type" not in tag or not tag["resource_type"]:
|
if "ResourceType" not in tag or not tag["ResourceType"]:
|
||||||
tag["resource_type"] = "auto-scaling-group"
|
tag["ResourceType"] = "auto-scaling-group"
|
||||||
self._tags = tags
|
self._tags = tags
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@ -1376,31 +1376,31 @@ class AutoScalingBackend(BaseBackend):
|
|||||||
|
|
||||||
def create_or_update_tags(self, tags: List[Dict[str, str]]) -> None:
|
def create_or_update_tags(self, tags: List[Dict[str, str]]) -> None:
|
||||||
for tag in tags:
|
for tag in tags:
|
||||||
group_name = tag["resource_id"]
|
group_name = tag["ResourceId"]
|
||||||
group = self.autoscaling_groups[group_name]
|
group = self.autoscaling_groups[group_name]
|
||||||
old_tags = group.tags
|
old_tags = group.tags
|
||||||
|
|
||||||
new_tags = []
|
new_tags = []
|
||||||
# if key was in old_tags, update old tag
|
# if key was in old_tags, update old tag
|
||||||
for old_tag in old_tags:
|
for old_tag in old_tags:
|
||||||
if old_tag["key"] == tag["key"]:
|
if old_tag["Key"] == tag["Key"]:
|
||||||
new_tags.append(tag)
|
new_tags.append(tag)
|
||||||
else:
|
else:
|
||||||
new_tags.append(old_tag)
|
new_tags.append(old_tag)
|
||||||
|
|
||||||
# if key was never in old_tag's add it (create tag)
|
# if key was never in old_tag's add it (create tag)
|
||||||
if not any(new_tag["key"] == tag["key"] for new_tag in new_tags):
|
if not any(new_tag["Key"] == tag["Key"] for new_tag in new_tags):
|
||||||
new_tags.append(tag)
|
new_tags.append(tag)
|
||||||
|
|
||||||
group.tags = new_tags
|
group.tags = new_tags
|
||||||
|
|
||||||
def delete_tags(self, tags: List[Dict[str, str]]) -> None:
|
def delete_tags(self, tags: List[Dict[str, str]]) -> None:
|
||||||
for tag_to_delete in tags:
|
for tag_to_delete in tags:
|
||||||
group_name = tag_to_delete["resource_id"]
|
group_name = tag_to_delete["ResourceId"]
|
||||||
key_to_delete = tag_to_delete["key"]
|
key_to_delete = tag_to_delete["Key"]
|
||||||
group = self.autoscaling_groups[group_name]
|
group = self.autoscaling_groups[group_name]
|
||||||
old_tags = group.tags
|
old_tags = group.tags
|
||||||
group.tags = [x for x in old_tags if x["key"] != key_to_delete]
|
group.tags = [x for x in old_tags if x["Key"] != key_to_delete]
|
||||||
|
|
||||||
def attach_load_balancers(
|
def attach_load_balancers(
|
||||||
self, group_name: str, load_balancer_names: List[str]
|
self, group_name: str, load_balancer_names: List[str]
|
||||||
@ -1563,18 +1563,16 @@ class AutoScalingBackend(BaseBackend):
|
|||||||
tags = list(itertools.chain(*[r.tags for r in resources]))
|
tags = list(itertools.chain(*[r.tags for r in resources]))
|
||||||
for f in filters:
|
for f in filters:
|
||||||
if f["Name"] == "auto-scaling-group":
|
if f["Name"] == "auto-scaling-group":
|
||||||
tags = [t for t in tags if t["resource_id"] in f["Values"]]
|
tags = [t for t in tags if t["ResourceId"] in f["Values"]]
|
||||||
if f["Name"] == "propagate-at-launch":
|
if f["Name"] == "propagate-at-launch":
|
||||||
values = [v.lower() for v in f["Values"]]
|
values = [v.lower() for v in f["Values"]]
|
||||||
tags = [
|
tags = [
|
||||||
t
|
t for t in tags if t.get("PropagateAtLaunch", "").lower() in values
|
||||||
for t in tags
|
|
||||||
if t.get("propagate_at_launch", "").lower() in values
|
|
||||||
]
|
]
|
||||||
if f["Name"] == "key":
|
if f["Name"] == "key":
|
||||||
tags = [t for t in tags if t["key"] in f["Values"]]
|
tags = [t for t in tags if t["Key"] in f["Values"]]
|
||||||
if f["Name"] == "value":
|
if f["Name"] == "value":
|
||||||
tags = [t for t in tags if t["value"] in f["Values"]]
|
tags = [t for t in tags if t["Value"] in f["Values"]]
|
||||||
return tags
|
return tags
|
||||||
|
|
||||||
def enable_metrics_collection(self, group_name: str, metrics: List[str]) -> None:
|
def enable_metrics_collection(self, group_name: str, metrics: List[str]) -> None:
|
||||||
|
@ -93,7 +93,7 @@ class AutoScalingResponse(BaseResponse):
|
|||||||
target_group_arns=self._get_multi_param("TargetGroupARNs.member"),
|
target_group_arns=self._get_multi_param("TargetGroupARNs.member"),
|
||||||
placement_group=self._get_param("PlacementGroup"),
|
placement_group=self._get_param("PlacementGroup"),
|
||||||
termination_policies=self._get_multi_param("TerminationPolicies.member"),
|
termination_policies=self._get_multi_param("TerminationPolicies.member"),
|
||||||
tags=self._get_list_prefix("Tags.member"),
|
tags=params.get("Tags", []),
|
||||||
capacity_rebalance=self._get_bool_param("CapacityRebalance", False),
|
capacity_rebalance=self._get_bool_param("CapacityRebalance", False),
|
||||||
new_instances_protected_from_scale_in=self._get_bool_param(
|
new_instances_protected_from_scale_in=self._get_bool_param(
|
||||||
"NewInstancesProtectedFromScaleIn", False
|
"NewInstancesProtectedFromScaleIn", False
|
||||||
@ -260,16 +260,14 @@ class AutoScalingResponse(BaseResponse):
|
|||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
def create_or_update_tags(self) -> str:
|
def create_or_update_tags(self) -> str:
|
||||||
tags = self._get_list_prefix("Tags.member")
|
self.autoscaling_backend.create_or_update_tags(
|
||||||
|
self._get_params().get("Tags", [])
|
||||||
self.autoscaling_backend.create_or_update_tags(tags)
|
)
|
||||||
template = self.response_template(UPDATE_AUTOSCALING_GROUP_TEMPLATE)
|
template = self.response_template(UPDATE_AUTOSCALING_GROUP_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
def delete_tags(self) -> str:
|
def delete_tags(self) -> str:
|
||||||
tags = self._get_list_prefix("Tags.member")
|
self.autoscaling_backend.delete_tags(self._get_params().get("Tags", []))
|
||||||
|
|
||||||
self.autoscaling_backend.delete_tags(tags)
|
|
||||||
template = self.response_template(UPDATE_AUTOSCALING_GROUP_TEMPLATE)
|
template = self.response_template(UPDATE_AUTOSCALING_GROUP_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@ -1427,11 +1425,11 @@ DESCRIBE_TAGS_TEMPLATE = """<DescribeTagsResponse xmlns="http://autoscaling.amaz
|
|||||||
<Tags>
|
<Tags>
|
||||||
{% for tag in tags %}
|
{% for tag in tags %}
|
||||||
<member>
|
<member>
|
||||||
<ResourceId>{{ tag.resource_id }}</ResourceId>
|
<ResourceId>{{ tag.resource_id or tag.ResourceId }}</ResourceId>
|
||||||
<ResourceType>{{ tag.resource_type }}</ResourceType>
|
<ResourceType>{{ tag.resource_type or tag.ResourceType }}</ResourceType>
|
||||||
<Key>{{ tag.key }}</Key>
|
<Key>{{ tag.key or tag.Key }}</Key>
|
||||||
<Value>{{ tag.value }}</Value>
|
<Value>{{ tag.value or tag.Value }}</Value>
|
||||||
<PropagateAtLaunch>{{ tag.propagate_at_launch }}</PropagateAtLaunch>
|
<PropagateAtLaunch>{{ tag.propagate_at_launch or tag.PropagateAtLaunch }}</PropagateAtLaunch>
|
||||||
</member>
|
</member>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</Tags>
|
</Tags>
|
||||||
|
0
moto/py.typed
Normal file
0
moto/py.typed
Normal file
@ -41,6 +41,9 @@ package_dir =
|
|||||||
moto = moto
|
moto = moto
|
||||||
include_package_data = True
|
include_package_data = True
|
||||||
|
|
||||||
|
[options.package_data]
|
||||||
|
moto = py.typed
|
||||||
|
|
||||||
[options.extras_require]
|
[options.extras_require]
|
||||||
all =
|
all =
|
||||||
python-jose[cryptography]>=3.1.0,<4.0.0
|
python-jose[cryptography]>=3.1.0,<4.0.0
|
||||||
|
@ -355,8 +355,29 @@ def test_autoscaling_group_with_elb():
|
|||||||
cf.create_stack(StackName="web_stack", TemplateBody=web_setup_template_json)
|
cf.create_stack(StackName="web_stack", TemplateBody=web_setup_template_json)
|
||||||
|
|
||||||
autoscale_group = client.describe_auto_scaling_groups()["AutoScalingGroups"][0]
|
autoscale_group = client.describe_auto_scaling_groups()["AutoScalingGroups"][0]
|
||||||
|
asg_name = autoscale_group["AutoScalingGroupName"]
|
||||||
assert "my-launch-config" in autoscale_group["LaunchConfigurationName"]
|
assert "my-launch-config" in autoscale_group["LaunchConfigurationName"]
|
||||||
assert autoscale_group["LoadBalancerNames"] == ["my-elb"]
|
assert autoscale_group["LoadBalancerNames"] == ["my-elb"]
|
||||||
|
assert len(autoscale_group["Tags"]) == 2
|
||||||
|
assert {
|
||||||
|
"ResourceId": asg_name,
|
||||||
|
"ResourceType": "auto-scaling-group",
|
||||||
|
"Key": "propagated-test-tag",
|
||||||
|
"Value": "propagated-test-tag-value",
|
||||||
|
"PropagateAtLaunch": True,
|
||||||
|
} in autoscale_group["Tags"]
|
||||||
|
assert {
|
||||||
|
"ResourceId": asg_name,
|
||||||
|
"ResourceType": "auto-scaling-group",
|
||||||
|
"Key": "not-propagated-test-tag",
|
||||||
|
"Value": "not-propagated-test-tag-value",
|
||||||
|
"PropagateAtLaunch": False,
|
||||||
|
} in autoscale_group["Tags"]
|
||||||
|
|
||||||
|
tags = client.describe_tags(
|
||||||
|
Filters=[{"Name": "auto-scaling-group", "Values": [asg_name]}]
|
||||||
|
)["Tags"]
|
||||||
|
assert tags == autoscale_group["Tags"]
|
||||||
|
|
||||||
# Confirm the Launch config was actually created
|
# Confirm the Launch config was actually created
|
||||||
assert len(client.describe_launch_configurations()["LaunchConfigurations"]) == 1
|
assert len(client.describe_launch_configurations()["LaunchConfigurations"]) == 1
|
||||||
|
Loading…
Reference in New Issue
Block a user