capo-cloudfront 0.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- capo_cloudfront/__init__.py +52 -0
- capo_cloudfront/_async.py +25 -0
- capo_cloudfront/_auth/_identity.py +16 -0
- capo_cloudfront/_auth/_providers.py +318 -0
- capo_cloudfront/_auth/_signers.py +84 -0
- capo_cloudfront/_auth/_sigv4.py +382 -0
- capo_cloudfront/_auth/_zapros_handler.py +62 -0
- capo_cloudfront/_iter.py +113 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/associate_alias.py +128 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/associate_distribution_tenant_web_acl.py +164 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/associate_distribution_web_acl.py +161 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/copy_distribution.py +464 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_anycast_ip_list.py +177 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_cache_policy.py +183 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_cloud_front_origin_access_identity.py +170 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_connection_function.py +184 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_connection_group.py +169 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_continuous_deployment_policy.py +175 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_distribution.py +468 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_distribution_tenant.py +199 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_distribution_with_tags.py +468 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_field_level_encryption_config.py +187 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_field_level_encryption_profile.py +187 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_function.py +176 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_invalidation.py +177 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_invalidation_for_distribution_tenant.py +170 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_key_group.py +163 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_key_value_store.py +178 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_monitoring_subscription.py +163 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_origin_access_control.py +162 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_origin_request_policy.py +185 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_public_key.py +160 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_realtime_log_config.py +156 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_response_headers_policy.py +185 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_streaming_distribution.py +206 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_streaming_distribution_with_tags.py +209 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_trust_store.py +172 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/create_vpc_origin.py +177 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_anycast_ip_list.py +136 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_cache_policy.py +130 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_cloud_front_origin_access_identity.py +129 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_connection_function.py +133 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_connection_group.py +130 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_continuous_deployment_policy.py +130 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_distribution.py +130 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_distribution_tenant.py +125 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_field_level_encryption_config.py +127 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_field_level_encryption_profile.py +127 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_function.py +127 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_key_group.py +120 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_key_value_store.py +130 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_monitoring_subscription.py +146 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_origin_access_control.py +127 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_origin_request_policy.py +130 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_public_key.py +125 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_realtime_log_config.py +122 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_resource_policy.py +126 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_response_headers_policy.py +130 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_streaming_distribution.py +127 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_trust_store.py +128 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/delete_vpc_origin.py +170 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/describe_connection_function.py +156 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/describe_function.py +149 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/describe_key_value_store.py +150 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/disassociate_distribution_tenant_web_acl.py +155 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/disassociate_distribution_web_acl.py +154 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_anycast_ip_list.py +150 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_cache_policy.py +142 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_cache_policy_config.py +144 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_cloud_front_origin_access_identity.py +146 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_cloud_front_origin_access_identity_config.py +147 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_connection_function.py +154 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_connection_group.py +142 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_connection_group_by_routing_endpoint.py +142 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_continuous_deployment_policy.py +144 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_continuous_deployment_policy_config.py +147 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_distribution.py +142 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_distribution_config.py +144 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_distribution_tenant.py +142 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_distribution_tenant_by_domain.py +142 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_field_level_encryption.py +144 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_field_level_encryption_config.py +144 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_field_level_encryption_profile.py +144 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_field_level_encryption_profile_config.py +147 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_function.py +151 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_invalidation.py +149 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_invalidation_for_distribution_tenant.py +149 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_key_group.py +137 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_key_group_config.py +139 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_managed_certificate_details.py +138 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_monitoring_subscription.py +155 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_origin_access_control.py +148 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_origin_access_control_config.py +144 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_origin_request_policy.py +148 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_origin_request_policy_config.py +144 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_public_key.py +142 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_public_key_config.py +144 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_realtime_log_config.py +143 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_resource_policy.py +147 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_response_headers_policy.py +144 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_response_headers_policy_config.py +144 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_streaming_distribution.py +144 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_streaming_distribution_config.py +144 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_trust_store.py +143 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/get_vpc_origin.py +148 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_anycast_ip_lists.py +148 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_cache_policies.py +148 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_cloud_front_origin_access_identities.py +137 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_conflicting_aliases.py +146 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_connection_functions.py +152 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_connection_groups.py +146 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_continuous_deployment_policies.py +145 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_distribution_tenants.py +150 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_distribution_tenants_by_customization.py +145 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions.py +137 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_anycast_ip_list_id.py +155 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_cache_policy_id.py +150 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_connection_function.py +147 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_connection_mode.py +148 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_key_group.py +144 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_origin_request_policy_id.py +153 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_owned_resource.py +153 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_realtime_log_config.py +147 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_response_headers_policy_id.py +153 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_trust_store.py +145 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_vpc_origin_id.py +153 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_distributions_by_web_acl_id.py +144 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_domain_conflicts.py +150 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_field_level_encryption_configs.py +137 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_field_level_encryption_profiles.py +137 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_functions.py +143 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_invalidations.py +152 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_invalidations_for_distribution_tenant.py +145 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_key_groups.py +135 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_key_value_stores.py +147 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_origin_access_controls.py +137 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_origin_request_policies.py +148 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_public_keys.py +135 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_realtime_log_configs.py +149 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_response_headers_policies.py +148 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_streaming_distributions.py +137 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_tags_for_resource.py +142 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_trust_stores.py +145 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/list_vpc_origins.py +146 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/publish_connection_function.py +158 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/publish_function.py +155 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/put_resource_policy.py +157 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/tag_resource.py +121 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/test_connection_function.py +172 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/test_function.py +167 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/untag_resource.py +123 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_anycast_ip_list.py +174 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_cache_policy.py +196 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_cloud_front_origin_access_identity.py +184 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_connection_function.py +179 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_connection_group.py +178 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_continuous_deployment_policy.py +180 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_distribution.py +468 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_distribution_tenant.py +205 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_distribution_with_staging_config.py +444 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_domain_association.py +166 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_field_level_encryption_config.py +198 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_field_level_encryption_profile.py +206 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_function.py +176 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_key_group.py +171 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_key_value_store.py +166 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_origin_access_control.py +178 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_origin_request_policy.py +198 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_public_key.py +176 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_realtime_log_config.py +153 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_response_headers_policy.py +198 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_streaming_distribution.py +211 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_trust_store.py +172 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/update_vpc_origin.py +196 -0
- capo_cloudfront/_operations/cloudfront2020_05_31/verify_dns_configuration.py +141 -0
- capo_cloudfront/_pagination.py +21 -0
- capo_cloudfront/_protocol/__init__.py +1 -0
- capo_cloudfront/_protocol/errors.py +59 -0
- capo_cloudfront/_protocol/eventstream.py +238 -0
- capo_cloudfront/_protocol/xml.py +27 -0
- capo_cloudfront/_rule_engine/__init__.py +0 -0
- capo_cloudfront/_rule_engine/_aws_partition.py +160 -0
- capo_cloudfront/_rule_engine/_endpoint_rule_set.py +272 -0
- capo_cloudfront/_rule_engine/_endpoint_runtime.py +389 -0
- capo_cloudfront/_services/_aws_config.py +152 -0
- capo_cloudfront/_services/_pipeline.py +198 -0
- capo_cloudfront/_services/async_cloud_front.py +9719 -0
- capo_cloudfront/_services/cloud_front.py +9540 -0
- capo_cloudfront/errors/__init__.py +377 -0
- capo_cloudfront/errors/_base.py +94 -0
- capo_cloudfront/errors/access_denied.py +46 -0
- capo_cloudfront/errors/batch_too_large.py +49 -0
- capo_cloudfront/errors/cache_policy_already_exists.py +49 -0
- capo_cloudfront/errors/cache_policy_in_use.py +49 -0
- capo_cloudfront/errors/cannot_change_immutable_public_key_fields.py +51 -0
- capo_cloudfront/errors/cannot_delete_entity_while_in_use.py +51 -0
- capo_cloudfront/errors/cannot_update_entity_while_in_use.py +51 -0
- capo_cloudfront/errors/cloud_front_origin_access_identity_already_exists.py +51 -0
- capo_cloudfront/errors/cloud_front_origin_access_identity_in_use.py +51 -0
- capo_cloudfront/errors/cname_already_exists.py +49 -0
- capo_cloudfront/errors/continuous_deployment_policy_already_exists.py +51 -0
- capo_cloudfront/errors/continuous_deployment_policy_in_use.py +51 -0
- capo_cloudfront/errors/distribution_already_exists.py +49 -0
- capo_cloudfront/errors/distribution_not_disabled.py +49 -0
- capo_cloudfront/errors/entity_already_exists.py +49 -0
- capo_cloudfront/errors/entity_limit_exceeded.py +49 -0
- capo_cloudfront/errors/entity_not_found.py +49 -0
- capo_cloudfront/errors/entity_size_limit_exceeded.py +49 -0
- capo_cloudfront/errors/field_level_encryption_config_already_exists.py +51 -0
- capo_cloudfront/errors/field_level_encryption_config_in_use.py +51 -0
- capo_cloudfront/errors/field_level_encryption_profile_already_exists.py +51 -0
- capo_cloudfront/errors/field_level_encryption_profile_in_use.py +51 -0
- capo_cloudfront/errors/field_level_encryption_profile_size_exceeded.py +51 -0
- capo_cloudfront/errors/function_already_exists.py +49 -0
- capo_cloudfront/errors/function_in_use.py +49 -0
- capo_cloudfront/errors/function_size_limit_exceeded.py +49 -0
- capo_cloudfront/errors/illegal_delete.py +49 -0
- capo_cloudfront/errors/illegal_field_level_encryption_config_association_with_cache_behavior.py +61 -0
- capo_cloudfront/errors/illegal_origin_access_configuration.py +51 -0
- capo_cloudfront/errors/illegal_update.py +49 -0
- capo_cloudfront/errors/inconsistent_quantities.py +49 -0
- capo_cloudfront/errors/invalid_argument.py +49 -0
- capo_cloudfront/errors/invalid_association.py +49 -0
- capo_cloudfront/errors/invalid_default_root_object.py +49 -0
- capo_cloudfront/errors/invalid_domain_name_for_origin_access_control.py +51 -0
- capo_cloudfront/errors/invalid_error_code.py +49 -0
- capo_cloudfront/errors/invalid_forward_cookies.py +49 -0
- capo_cloudfront/errors/invalid_function_association.py +51 -0
- capo_cloudfront/errors/invalid_geo_restriction_parameter.py +51 -0
- capo_cloudfront/errors/invalid_headers_for_s3_origin.py +49 -0
- capo_cloudfront/errors/invalid_if_match_version.py +49 -0
- capo_cloudfront/errors/invalid_lambda_function_association.py +51 -0
- capo_cloudfront/errors/invalid_location_code.py +49 -0
- capo_cloudfront/errors/invalid_minimum_protocol_version.py +51 -0
- capo_cloudfront/errors/invalid_origin.py +49 -0
- capo_cloudfront/errors/invalid_origin_access_control.py +51 -0
- capo_cloudfront/errors/invalid_origin_access_identity.py +51 -0
- capo_cloudfront/errors/invalid_origin_keepalive_timeout.py +51 -0
- capo_cloudfront/errors/invalid_origin_read_timeout.py +49 -0
- capo_cloudfront/errors/invalid_protocol_settings.py +49 -0
- capo_cloudfront/errors/invalid_query_string_parameters.py +51 -0
- capo_cloudfront/errors/invalid_relative_path.py +49 -0
- capo_cloudfront/errors/invalid_required_protocol.py +49 -0
- capo_cloudfront/errors/invalid_response_code.py +49 -0
- capo_cloudfront/errors/invalid_tagging.py +49 -0
- capo_cloudfront/errors/invalid_ttl_order.py +49 -0
- capo_cloudfront/errors/invalid_viewer_certificate.py +49 -0
- capo_cloudfront/errors/invalid_web_acl_id.py +49 -0
- capo_cloudfront/errors/key_group_already_exists.py +49 -0
- capo_cloudfront/errors/missing_body.py +46 -0
- capo_cloudfront/errors/monitoring_subscription_already_exists.py +51 -0
- capo_cloudfront/errors/no_such_cache_policy.py +49 -0
- capo_cloudfront/errors/no_such_cloud_front_origin_access_identity.py +51 -0
- capo_cloudfront/errors/no_such_continuous_deployment_policy.py +51 -0
- capo_cloudfront/errors/no_such_distribution.py +49 -0
- capo_cloudfront/errors/no_such_field_level_encryption_config.py +51 -0
- capo_cloudfront/errors/no_such_field_level_encryption_profile.py +51 -0
- capo_cloudfront/errors/no_such_function_exists.py +49 -0
- capo_cloudfront/errors/no_such_invalidation.py +49 -0
- capo_cloudfront/errors/no_such_monitoring_subscription.py +51 -0
- capo_cloudfront/errors/no_such_origin.py +46 -0
- capo_cloudfront/errors/no_such_origin_access_control.py +49 -0
- capo_cloudfront/errors/no_such_origin_request_policy.py +49 -0
- capo_cloudfront/errors/no_such_public_key.py +49 -0
- capo_cloudfront/errors/no_such_realtime_log_config.py +49 -0
- capo_cloudfront/errors/no_such_resource.py +49 -0
- capo_cloudfront/errors/no_such_response_headers_policy.py +51 -0
- capo_cloudfront/errors/no_such_streaming_distribution.py +51 -0
- capo_cloudfront/errors/origin_access_control_already_exists.py +51 -0
- capo_cloudfront/errors/origin_access_control_in_use.py +49 -0
- capo_cloudfront/errors/origin_request_policy_already_exists.py +51 -0
- capo_cloudfront/errors/origin_request_policy_in_use.py +49 -0
- capo_cloudfront/errors/precondition_failed.py +49 -0
- capo_cloudfront/errors/public_key_already_exists.py +49 -0
- capo_cloudfront/errors/public_key_in_use.py +49 -0
- capo_cloudfront/errors/query_arg_profile_empty.py +49 -0
- capo_cloudfront/errors/realtime_log_config_already_exists.py +51 -0
- capo_cloudfront/errors/realtime_log_config_in_use.py +49 -0
- capo_cloudfront/errors/realtime_log_config_owner_mismatch.py +51 -0
- capo_cloudfront/errors/resource_in_use.py +49 -0
- capo_cloudfront/errors/resource_not_disabled.py +49 -0
- capo_cloudfront/errors/response_headers_policy_already_exists.py +51 -0
- capo_cloudfront/errors/response_headers_policy_in_use.py +51 -0
- capo_cloudfront/errors/staging_distribution_in_use.py +49 -0
- capo_cloudfront/errors/streaming_distribution_already_exists.py +51 -0
- capo_cloudfront/errors/streaming_distribution_not_disabled.py +51 -0
- capo_cloudfront/errors/test_function_failed.py +49 -0
- capo_cloudfront/errors/too_long_csp_in_response_headers_policy.py +51 -0
- capo_cloudfront/errors/too_many_cache_behaviors.py +49 -0
- capo_cloudfront/errors/too_many_cache_policies.py +49 -0
- capo_cloudfront/errors/too_many_certificates.py +49 -0
- capo_cloudfront/errors/too_many_cloud_front_origin_access_identities.py +51 -0
- capo_cloudfront/errors/too_many_continuous_deployment_policies.py +51 -0
- capo_cloudfront/errors/too_many_cookie_names_in_white_list.py +51 -0
- capo_cloudfront/errors/too_many_cookies_in_cache_policy.py +51 -0
- capo_cloudfront/errors/too_many_cookies_in_origin_request_policy.py +51 -0
- capo_cloudfront/errors/too_many_custom_headers_in_response_headers_policy.py +51 -0
- capo_cloudfront/errors/too_many_distribution_cnam_es.py +49 -0
- capo_cloudfront/errors/too_many_distributions.py +49 -0
- capo_cloudfront/errors/too_many_distributions_associated_to_cache_policy.py +51 -0
- capo_cloudfront/errors/too_many_distributions_associated_to_field_level_encryption_config.py +61 -0
- capo_cloudfront/errors/too_many_distributions_associated_to_key_group.py +51 -0
- capo_cloudfront/errors/too_many_distributions_associated_to_origin_access_control.py +57 -0
- capo_cloudfront/errors/too_many_distributions_associated_to_origin_request_policy.py +57 -0
- capo_cloudfront/errors/too_many_distributions_associated_to_response_headers_policy.py +57 -0
- capo_cloudfront/errors/too_many_distributions_with_function_associations.py +51 -0
- capo_cloudfront/errors/too_many_distributions_with_lambda_associations.py +51 -0
- capo_cloudfront/errors/too_many_distributions_with_single_function_arn.py +51 -0
- capo_cloudfront/errors/too_many_field_level_encryption_configs.py +51 -0
- capo_cloudfront/errors/too_many_field_level_encryption_content_type_profiles.py +51 -0
- capo_cloudfront/errors/too_many_field_level_encryption_encryption_entities.py +51 -0
- capo_cloudfront/errors/too_many_field_level_encryption_field_patterns.py +51 -0
- capo_cloudfront/errors/too_many_field_level_encryption_profiles.py +51 -0
- capo_cloudfront/errors/too_many_field_level_encryption_query_arg_profiles.py +51 -0
- capo_cloudfront/errors/too_many_function_associations.py +51 -0
- capo_cloudfront/errors/too_many_functions.py +49 -0
- capo_cloudfront/errors/too_many_headers_in_cache_policy.py +51 -0
- capo_cloudfront/errors/too_many_headers_in_forwarded_values.py +51 -0
- capo_cloudfront/errors/too_many_headers_in_origin_request_policy.py +51 -0
- capo_cloudfront/errors/too_many_invalidations_in_progress.py +51 -0
- capo_cloudfront/errors/too_many_key_groups.py +49 -0
- capo_cloudfront/errors/too_many_key_groups_associated_to_distribution.py +51 -0
- capo_cloudfront/errors/too_many_lambda_function_associations.py +51 -0
- capo_cloudfront/errors/too_many_origin_access_controls.py +51 -0
- capo_cloudfront/errors/too_many_origin_custom_headers.py +51 -0
- capo_cloudfront/errors/too_many_origin_groups_per_distribution.py +51 -0
- capo_cloudfront/errors/too_many_origin_request_policies.py +51 -0
- capo_cloudfront/errors/too_many_origins.py +49 -0
- capo_cloudfront/errors/too_many_public_keys.py +49 -0
- capo_cloudfront/errors/too_many_public_keys_in_key_group.py +51 -0
- capo_cloudfront/errors/too_many_query_string_parameters.py +51 -0
- capo_cloudfront/errors/too_many_query_strings_in_cache_policy.py +51 -0
- capo_cloudfront/errors/too_many_query_strings_in_origin_request_policy.py +51 -0
- capo_cloudfront/errors/too_many_realtime_log_configs.py +49 -0
- capo_cloudfront/errors/too_many_remove_headers_in_response_headers_policy.py +51 -0
- capo_cloudfront/errors/too_many_response_headers_policies.py +51 -0
- capo_cloudfront/errors/too_many_streaming_distribution_cnam_es.py +51 -0
- capo_cloudfront/errors/too_many_streaming_distributions.py +51 -0
- capo_cloudfront/errors/too_many_trusted_signers.py +49 -0
- capo_cloudfront/errors/trusted_key_group_does_not_exist.py +51 -0
- capo_cloudfront/errors/trusted_signer_does_not_exist.py +49 -0
- capo_cloudfront/errors/unsupported_operation.py +49 -0
- capo_cloudfront/py.typed +0 -0
- capo_cloudfront/types/_prelude/blob.py +22 -0
- capo_cloudfront/types/_prelude/timestamp.py +22 -0
- capo_cloudfront/types/access_control_allow_headers_list.py +41 -0
- capo_cloudfront/types/access_control_allow_methods_list.py +63 -0
- capo_cloudfront/types/access_control_allow_origins_list.py +41 -0
- capo_cloudfront/types/access_control_expose_headers_list.py +41 -0
- capo_cloudfront/types/active_trusted_key_groups.py +57 -0
- capo_cloudfront/types/active_trusted_signers.py +53 -0
- capo_cloudfront/types/alias_icp_recordal.py +50 -0
- capo_cloudfront/types/alias_icp_recordals.py +49 -0
- capo_cloudfront/types/alias_list.py +37 -0
- capo_cloudfront/types/alias_string.py +5 -0
- capo_cloudfront/types/aliases.py +44 -0
- capo_cloudfront/types/allowed_methods.py +60 -0
- capo_cloudfront/types/anycast_ip_list.py +132 -0
- capo_cloudfront/types/anycast_ip_list_collection.py +83 -0
- capo_cloudfront/types/anycast_ip_list_name.py +5 -0
- capo_cloudfront/types/anycast_ip_list_summaries.py +51 -0
- capo_cloudfront/types/anycast_ip_list_summary.py +122 -0
- capo_cloudfront/types/anycast_ips.py +37 -0
- capo_cloudfront/types/associate_alias_request.py +27 -0
- capo_cloudfront/types/associate_distribution_tenant_web_acl_request.py +40 -0
- capo_cloudfront/types/associate_distribution_tenant_web_acl_result.py +41 -0
- capo_cloudfront/types/associate_distribution_web_acl_request.py +40 -0
- capo_cloudfront/types/associate_distribution_web_acl_result.py +41 -0
- capo_cloudfront/types/aws_account_number_list.py +37 -0
- capo_cloudfront/types/boolean.py +5 -0
- capo_cloudfront/types/ca_certificates_bundle_s3_location.py +57 -0
- capo_cloudfront/types/ca_certificates_bundle_source.py +52 -0
- capo_cloudfront/types/cache_behavior.py +274 -0
- capo_cloudfront/types/cache_behavior_list.py +47 -0
- capo_cloudfront/types/cache_behaviors.py +48 -0
- capo_cloudfront/types/cache_policy.py +68 -0
- capo_cloudfront/types/cache_policy_config.py +86 -0
- capo_cloudfront/types/cache_policy_cookie_behavior.py +29 -0
- capo_cloudfront/types/cache_policy_cookies_config.py +59 -0
- capo_cloudfront/types/cache_policy_header_behavior.py +27 -0
- capo_cloudfront/types/cache_policy_headers_config.py +55 -0
- capo_cloudfront/types/cache_policy_list.py +66 -0
- capo_cloudfront/types/cache_policy_query_string_behavior.py +31 -0
- capo_cloudfront/types/cache_policy_query_strings_config.py +64 -0
- capo_cloudfront/types/cache_policy_summary.py +55 -0
- capo_cloudfront/types/cache_policy_summary_list.py +51 -0
- capo_cloudfront/types/cache_policy_type.py +27 -0
- capo_cloudfront/types/cache_tag_config.py +32 -0
- capo_cloudfront/types/cached_methods.py +45 -0
- capo_cloudfront/types/certificate.py +32 -0
- capo_cloudfront/types/certificate_source.py +28 -0
- capo_cloudfront/types/certificate_transparency_logging_preference.py +29 -0
- capo_cloudfront/types/cloud_front_origin_access_identity.py +68 -0
- capo_cloudfront/types/cloud_front_origin_access_identity_config.py +46 -0
- capo_cloudfront/types/cloud_front_origin_access_identity_list.py +93 -0
- capo_cloudfront/types/cloud_front_origin_access_identity_summary.py +54 -0
- capo_cloudfront/types/cloud_front_origin_access_identity_summary_list.py +65 -0
- capo_cloudfront/types/comment_type.py +5 -0
- capo_cloudfront/types/conflicting_alias.py +44 -0
- capo_cloudfront/types/conflicting_aliases.py +49 -0
- capo_cloudfront/types/conflicting_aliases_list.py +61 -0
- capo_cloudfront/types/connection_function_association.py +34 -0
- capo_cloudfront/types/connection_function_summary.py +128 -0
- capo_cloudfront/types/connection_function_summary_list.py +59 -0
- capo_cloudfront/types/connection_function_test_result.py +103 -0
- capo_cloudfront/types/connection_group.py +131 -0
- capo_cloudfront/types/connection_group_association_filter.py +32 -0
- capo_cloudfront/types/connection_group_summary.py +126 -0
- capo_cloudfront/types/connection_group_summary_list.py +55 -0
- capo_cloudfront/types/connection_mode.py +27 -0
- capo_cloudfront/types/content_type_profile.py +52 -0
- capo_cloudfront/types/content_type_profile_config.py +60 -0
- capo_cloudfront/types/content_type_profile_list.py +51 -0
- capo_cloudfront/types/content_type_profiles.py +50 -0
- capo_cloudfront/types/continuous_deployment_policy.py +75 -0
- capo_cloudfront/types/continuous_deployment_policy_config.py +71 -0
- capo_cloudfront/types/continuous_deployment_policy_list.py +70 -0
- capo_cloudfront/types/continuous_deployment_policy_summary.py +48 -0
- capo_cloudfront/types/continuous_deployment_policy_summary_list.py +65 -0
- capo_cloudfront/types/continuous_deployment_policy_type.py +29 -0
- capo_cloudfront/types/continuous_deployment_single_header_config.py +46 -0
- capo_cloudfront/types/continuous_deployment_single_weight_config.py +55 -0
- capo_cloudfront/types/cookie_name_list.py +37 -0
- capo_cloudfront/types/cookie_names.py +48 -0
- capo_cloudfront/types/cookie_preference.py +54 -0
- capo_cloudfront/types/copy_distribution_request.py +46 -0
- capo_cloudfront/types/copy_distribution_result.py +42 -0
- capo_cloudfront/types/create_anycast_ip_list_request.py +88 -0
- capo_cloudfront/types/create_anycast_ip_list_result.py +41 -0
- capo_cloudfront/types/create_cache_policy_request.py +44 -0
- capo_cloudfront/types/create_cache_policy_result.py +43 -0
- capo_cloudfront/types/create_cloud_front_origin_access_identity_request.py +50 -0
- capo_cloudfront/types/create_cloud_front_origin_access_identity_result.py +51 -0
- capo_cloudfront/types/create_connection_function_request.py +86 -0
- capo_cloudfront/types/create_connection_function_result.py +49 -0
- capo_cloudfront/types/create_connection_group_request.py +69 -0
- capo_cloudfront/types/create_connection_group_result.py +47 -0
- capo_cloudfront/types/create_continuous_deployment_policy_request.py +50 -0
- capo_cloudfront/types/create_continuous_deployment_policy_result.py +49 -0
- capo_cloudfront/types/create_distribution_request.py +44 -0
- capo_cloudfront/types/create_distribution_result.py +43 -0
- capo_cloudfront/types/create_distribution_tenant_request.py +137 -0
- capo_cloudfront/types/create_distribution_tenant_result.py +47 -0
- capo_cloudfront/types/create_distribution_with_tags_request.py +48 -0
- capo_cloudfront/types/create_distribution_with_tags_result.py +45 -0
- capo_cloudfront/types/create_field_level_encryption_config_request.py +48 -0
- capo_cloudfront/types/create_field_level_encryption_config_result.py +49 -0
- capo_cloudfront/types/create_field_level_encryption_profile_request.py +50 -0
- capo_cloudfront/types/create_field_level_encryption_profile_result.py +49 -0
- capo_cloudfront/types/create_function_request.py +77 -0
- capo_cloudfront/types/create_function_result.py +47 -0
- capo_cloudfront/types/create_invalidation_for_distribution_tenant_request.py +48 -0
- capo_cloudfront/types/create_invalidation_for_distribution_tenant_result.py +42 -0
- capo_cloudfront/types/create_invalidation_request.py +47 -0
- capo_cloudfront/types/create_invalidation_result.py +41 -0
- capo_cloudfront/types/create_key_group_request.py +42 -0
- capo_cloudfront/types/create_key_group_result.py +43 -0
- capo_cloudfront/types/create_key_value_store_request.py +69 -0
- capo_cloudfront/types/create_key_value_store_result.py +43 -0
- capo_cloudfront/types/create_monitoring_subscription_request.py +51 -0
- capo_cloudfront/types/create_monitoring_subscription_result.py +44 -0
- capo_cloudfront/types/create_origin_access_control_request.py +48 -0
- capo_cloudfront/types/create_origin_access_control_result.py +49 -0
- capo_cloudfront/types/create_origin_request_policy_request.py +48 -0
- capo_cloudfront/types/create_origin_request_policy_result.py +49 -0
- capo_cloudfront/types/create_public_key_request.py +42 -0
- capo_cloudfront/types/create_public_key_result.py +43 -0
- capo_cloudfront/types/create_realtime_log_config_request.py +75 -0
- capo_cloudfront/types/create_realtime_log_config_result.py +44 -0
- capo_cloudfront/types/create_response_headers_policy_request.py +46 -0
- capo_cloudfront/types/create_response_headers_policy_result.py +49 -0
- capo_cloudfront/types/create_streaming_distribution_request.py +46 -0
- capo_cloudfront/types/create_streaming_distribution_result.py +49 -0
- capo_cloudfront/types/create_streaming_distribution_with_tags_request.py +50 -0
- capo_cloudfront/types/create_streaming_distribution_with_tags_result.py +49 -0
- capo_cloudfront/types/create_trust_store_request.py +82 -0
- capo_cloudfront/types/create_trust_store_result.py +41 -0
- capo_cloudfront/types/create_vpc_origin_request.py +57 -0
- capo_cloudfront/types/create_vpc_origin_result.py +43 -0
- capo_cloudfront/types/custom_error_response.py +55 -0
- capo_cloudfront/types/custom_error_response_list.py +51 -0
- capo_cloudfront/types/custom_error_responses.py +50 -0
- capo_cloudfront/types/custom_headers.py +50 -0
- capo_cloudfront/types/custom_origin_config.py +133 -0
- capo_cloudfront/types/customization_action_type.py +27 -0
- capo_cloudfront/types/customizations.py +76 -0
- capo_cloudfront/types/default_cache_behavior.py +268 -0
- capo_cloudfront/types/delete_anycast_ip_list_request.py +27 -0
- capo_cloudfront/types/delete_cache_policy_request.py +27 -0
- capo_cloudfront/types/delete_cloud_front_origin_access_identity_request.py +29 -0
- capo_cloudfront/types/delete_connection_function_request.py +30 -0
- capo_cloudfront/types/delete_connection_group_request.py +29 -0
- capo_cloudfront/types/delete_continuous_deployment_policy_request.py +29 -0
- capo_cloudfront/types/delete_distribution_request.py +27 -0
- capo_cloudfront/types/delete_distribution_tenant_request.py +29 -0
- capo_cloudfront/types/delete_field_level_encryption_config_request.py +29 -0
- capo_cloudfront/types/delete_field_level_encryption_profile_request.py +29 -0
- capo_cloudfront/types/delete_function_request.py +28 -0
- capo_cloudfront/types/delete_key_group_request.py +27 -0
- capo_cloudfront/types/delete_key_value_store_request.py +28 -0
- capo_cloudfront/types/delete_monitoring_subscription_request.py +27 -0
- capo_cloudfront/types/delete_monitoring_subscription_result.py +21 -0
- capo_cloudfront/types/delete_origin_access_control_request.py +29 -0
- capo_cloudfront/types/delete_origin_request_policy_request.py +29 -0
- capo_cloudfront/types/delete_public_key_request.py +27 -0
- capo_cloudfront/types/delete_realtime_log_config_request.py +39 -0
- capo_cloudfront/types/delete_resource_policy_request.py +34 -0
- capo_cloudfront/types/delete_response_headers_policy_request.py +29 -0
- capo_cloudfront/types/delete_streaming_distribution_request.py +29 -0
- capo_cloudfront/types/delete_trust_store_request.py +28 -0
- capo_cloudfront/types/delete_vpc_origin_request.py +27 -0
- capo_cloudfront/types/delete_vpc_origin_result.py +41 -0
- capo_cloudfront/types/describe_connection_function_request.py +30 -0
- capo_cloudfront/types/describe_connection_function_result.py +47 -0
- capo_cloudfront/types/describe_function_request.py +28 -0
- capo_cloudfront/types/describe_function_result.py +45 -0
- capo_cloudfront/types/describe_key_value_store_request.py +27 -0
- capo_cloudfront/types/describe_key_value_store_result.py +43 -0
- capo_cloudfront/types/disassociate_distribution_tenant_web_acl_request.py +29 -0
- capo_cloudfront/types/disassociate_distribution_tenant_web_acl_result.py +34 -0
- capo_cloudfront/types/disassociate_distribution_web_acl_request.py +29 -0
- capo_cloudfront/types/disassociate_distribution_web_acl_result.py +34 -0
- capo_cloudfront/types/distribution.py +167 -0
- capo_cloudfront/types/distribution_config.py +374 -0
- capo_cloudfront/types/distribution_config_with_tags.py +57 -0
- capo_cloudfront/types/distribution_id_list.py +85 -0
- capo_cloudfront/types/distribution_id_list_summary.py +39 -0
- capo_cloudfront/types/distribution_id_owner.py +40 -0
- capo_cloudfront/types/distribution_id_owner_item_list.py +53 -0
- capo_cloudfront/types/distribution_id_owner_list.py +85 -0
- capo_cloudfront/types/distribution_id_string.py +5 -0
- capo_cloudfront/types/distribution_list.py +83 -0
- capo_cloudfront/types/distribution_resource_id.py +39 -0
- capo_cloudfront/types/distribution_resource_type.py +27 -0
- capo_cloudfront/types/distribution_summary.py +384 -0
- capo_cloudfront/types/distribution_summary_list.py +51 -0
- capo_cloudfront/types/distribution_tenant.py +163 -0
- capo_cloudfront/types/distribution_tenant_association_filter.py +39 -0
- capo_cloudfront/types/distribution_tenant_list.py +57 -0
- capo_cloudfront/types/distribution_tenant_summary.py +154 -0
- capo_cloudfront/types/dns_configuration.py +56 -0
- capo_cloudfront/types/dns_configuration_list.py +49 -0
- capo_cloudfront/types/dns_configuration_status.py +28 -0
- capo_cloudfront/types/domain_conflict.py +69 -0
- capo_cloudfront/types/domain_conflicts_list.py +47 -0
- capo_cloudfront/types/domain_item.py +32 -0
- capo_cloudfront/types/domain_list.py +45 -0
- capo_cloudfront/types/domain_result.py +46 -0
- capo_cloudfront/types/domain_result_list.py +45 -0
- capo_cloudfront/types/domain_status.py +27 -0
- capo_cloudfront/types/encryption_entities.py +50 -0
- capo_cloudfront/types/encryption_entity.py +57 -0
- capo_cloudfront/types/encryption_entity_list.py +49 -0
- capo_cloudfront/types/end_point.py +52 -0
- capo_cloudfront/types/end_point_list.py +45 -0
- capo_cloudfront/types/event_type.py +29 -0
- capo_cloudfront/types/field_level_encryption.py +72 -0
- capo_cloudfront/types/field_level_encryption_config.py +81 -0
- capo_cloudfront/types/field_level_encryption_list.py +68 -0
- capo_cloudfront/types/field_level_encryption_profile.py +78 -0
- capo_cloudfront/types/field_level_encryption_profile_config.py +72 -0
- capo_cloudfront/types/field_level_encryption_profile_list.py +70 -0
- capo_cloudfront/types/field_level_encryption_profile_summary.py +89 -0
- capo_cloudfront/types/field_level_encryption_profile_summary_list.py +65 -0
- capo_cloudfront/types/field_level_encryption_summary.py +100 -0
- capo_cloudfront/types/field_level_encryption_summary_list.py +59 -0
- capo_cloudfront/types/field_list.py +37 -0
- capo_cloudfront/types/field_pattern_list.py +37 -0
- capo_cloudfront/types/field_patterns.py +48 -0
- capo_cloudfront/types/float.py +5 -0
- capo_cloudfront/types/format.py +24 -0
- capo_cloudfront/types/forwarded_values.py +81 -0
- capo_cloudfront/types/frame_options_list.py +27 -0
- capo_cloudfront/types/function_arn.py +5 -0
- capo_cloudfront/types/function_association.py +47 -0
- capo_cloudfront/types/function_association_list.py +51 -0
- capo_cloudfront/types/function_associations.py +50 -0
- capo_cloudfront/types/function_blob.py +25 -0
- capo_cloudfront/types/function_config.py +69 -0
- capo_cloudfront/types/function_event_object.py +25 -0
- capo_cloudfront/types/function_execution_log_list.py +39 -0
- capo_cloudfront/types/function_list.py +66 -0
- capo_cloudfront/types/function_metadata.py +76 -0
- capo_cloudfront/types/function_name.py +5 -0
- capo_cloudfront/types/function_runtime.py +27 -0
- capo_cloudfront/types/function_stage.py +27 -0
- capo_cloudfront/types/function_summary.py +76 -0
- capo_cloudfront/types/function_summary_list.py +49 -0
- capo_cloudfront/types/geo_restriction.py +63 -0
- capo_cloudfront/types/geo_restriction_customization.py +62 -0
- capo_cloudfront/types/geo_restriction_type.py +28 -0
- capo_cloudfront/types/get_anycast_ip_list_request.py +25 -0
- capo_cloudfront/types/get_anycast_ip_list_result.py +41 -0
- capo_cloudfront/types/get_cache_policy_config_request.py +27 -0
- capo_cloudfront/types/get_cache_policy_config_result.py +45 -0
- capo_cloudfront/types/get_cache_policy_request.py +25 -0
- capo_cloudfront/types/get_cache_policy_result.py +41 -0
- capo_cloudfront/types/get_cloud_front_origin_access_identity_config_request.py +27 -0
- capo_cloudfront/types/get_cloud_front_origin_access_identity_config_result.py +51 -0
- capo_cloudfront/types/get_cloud_front_origin_access_identity_request.py +27 -0
- capo_cloudfront/types/get_cloud_front_origin_access_identity_result.py +49 -0
- capo_cloudfront/types/get_connection_function_request.py +30 -0
- capo_cloudfront/types/get_connection_function_result.py +49 -0
- capo_cloudfront/types/get_connection_group_by_routing_endpoint_request.py +27 -0
- capo_cloudfront/types/get_connection_group_by_routing_endpoint_result.py +46 -0
- capo_cloudfront/types/get_connection_group_request.py +25 -0
- capo_cloudfront/types/get_connection_group_result.py +45 -0
- capo_cloudfront/types/get_continuous_deployment_policy_config_request.py +27 -0
- capo_cloudfront/types/get_continuous_deployment_policy_config_result.py +50 -0
- capo_cloudfront/types/get_continuous_deployment_policy_request.py +27 -0
- capo_cloudfront/types/get_continuous_deployment_policy_result.py +47 -0
- capo_cloudfront/types/get_distribution_config_request.py +27 -0
- capo_cloudfront/types/get_distribution_config_result.py +47 -0
- capo_cloudfront/types/get_distribution_request.py +25 -0
- capo_cloudfront/types/get_distribution_result.py +41 -0
- capo_cloudfront/types/get_distribution_tenant_by_domain_request.py +27 -0
- capo_cloudfront/types/get_distribution_tenant_by_domain_result.py +46 -0
- capo_cloudfront/types/get_distribution_tenant_request.py +27 -0
- capo_cloudfront/types/get_distribution_tenant_result.py +47 -0
- capo_cloudfront/types/get_field_level_encryption_config_request.py +27 -0
- capo_cloudfront/types/get_field_level_encryption_config_result.py +47 -0
- capo_cloudfront/types/get_field_level_encryption_profile_config_request.py +27 -0
- capo_cloudfront/types/get_field_level_encryption_profile_config_result.py +51 -0
- capo_cloudfront/types/get_field_level_encryption_profile_request.py +27 -0
- capo_cloudfront/types/get_field_level_encryption_profile_result.py +47 -0
- capo_cloudfront/types/get_field_level_encryption_request.py +27 -0
- capo_cloudfront/types/get_field_level_encryption_result.py +47 -0
- capo_cloudfront/types/get_function_request.py +28 -0
- capo_cloudfront/types/get_function_result.py +43 -0
- capo_cloudfront/types/get_invalidation_for_distribution_tenant_request.py +29 -0
- capo_cloudfront/types/get_invalidation_for_distribution_tenant_result.py +39 -0
- capo_cloudfront/types/get_invalidation_request.py +27 -0
- capo_cloudfront/types/get_invalidation_result.py +38 -0
- capo_cloudfront/types/get_key_group_config_request.py +25 -0
- capo_cloudfront/types/get_key_group_config_result.py +45 -0
- capo_cloudfront/types/get_key_group_request.py +25 -0
- capo_cloudfront/types/get_key_group_result.py +41 -0
- capo_cloudfront/types/get_managed_certificate_details_request.py +27 -0
- capo_cloudfront/types/get_managed_certificate_details_result.py +44 -0
- capo_cloudfront/types/get_monitoring_subscription_request.py +27 -0
- capo_cloudfront/types/get_monitoring_subscription_result.py +44 -0
- capo_cloudfront/types/get_origin_access_control_config_request.py +27 -0
- capo_cloudfront/types/get_origin_access_control_config_result.py +47 -0
- capo_cloudfront/types/get_origin_access_control_request.py +27 -0
- capo_cloudfront/types/get_origin_access_control_result.py +47 -0
- capo_cloudfront/types/get_origin_request_policy_config_request.py +27 -0
- capo_cloudfront/types/get_origin_request_policy_config_result.py +47 -0
- capo_cloudfront/types/get_origin_request_policy_request.py +27 -0
- capo_cloudfront/types/get_origin_request_policy_result.py +47 -0
- capo_cloudfront/types/get_public_key_config_request.py +25 -0
- capo_cloudfront/types/get_public_key_config_result.py +45 -0
- capo_cloudfront/types/get_public_key_request.py +25 -0
- capo_cloudfront/types/get_public_key_result.py +41 -0
- capo_cloudfront/types/get_realtime_log_config_request.py +39 -0
- capo_cloudfront/types/get_realtime_log_config_result.py +42 -0
- capo_cloudfront/types/get_resource_policy_request.py +32 -0
- capo_cloudfront/types/get_resource_policy_result.py +37 -0
- capo_cloudfront/types/get_response_headers_policy_config_request.py +27 -0
- capo_cloudfront/types/get_response_headers_policy_config_result.py +47 -0
- capo_cloudfront/types/get_response_headers_policy_request.py +27 -0
- capo_cloudfront/types/get_response_headers_policy_result.py +47 -0
- capo_cloudfront/types/get_streaming_distribution_config_request.py +27 -0
- capo_cloudfront/types/get_streaming_distribution_config_result.py +47 -0
- capo_cloudfront/types/get_streaming_distribution_request.py +27 -0
- capo_cloudfront/types/get_streaming_distribution_result.py +47 -0
- capo_cloudfront/types/get_trust_store_request.py +25 -0
- capo_cloudfront/types/get_trust_store_result.py +41 -0
- capo_cloudfront/types/get_vpc_origin_request.py +25 -0
- capo_cloudfront/types/get_vpc_origin_result.py +41 -0
- capo_cloudfront/types/grpc_config.py +32 -0
- capo_cloudfront/types/header_list.py +37 -0
- capo_cloudfront/types/headers.py +44 -0
- capo_cloudfront/types/http_version.py +29 -0
- capo_cloudfront/types/icp_recordal_status.py +28 -0
- capo_cloudfront/types/import_source.py +49 -0
- capo_cloudfront/types/import_source_type.py +24 -0
- capo_cloudfront/types/integer.py +5 -0
- capo_cloudfront/types/invalidation.py +76 -0
- capo_cloudfront/types/invalidation_batch.py +45 -0
- capo_cloudfront/types/invalidation_list.py +83 -0
- capo_cloudfront/types/invalidation_summary.py +57 -0
- capo_cloudfront/types/invalidation_summary_list.py +51 -0
- capo_cloudfront/types/ip_address_type.py +28 -0
- capo_cloudfront/types/ipam_cidr_config.py +63 -0
- capo_cloudfront/types/ipam_cidr_config_list.py +47 -0
- capo_cloudfront/types/ipam_cidr_status.py +37 -0
- capo_cloudfront/types/ipam_config.py +51 -0
- capo_cloudfront/types/item_selection.py +28 -0
- capo_cloudfront/types/key_group.py +68 -0
- capo_cloudfront/types/key_group_config.py +54 -0
- capo_cloudfront/types/key_group_list.py +66 -0
- capo_cloudfront/types/key_group_summary.py +38 -0
- capo_cloudfront/types/key_group_summary_list.py +49 -0
- capo_cloudfront/types/key_pair_id_list.py +37 -0
- capo_cloudfront/types/key_pair_ids.py +48 -0
- capo_cloudfront/types/key_value_store.py +80 -0
- capo_cloudfront/types/key_value_store_arn.py +5 -0
- capo_cloudfront/types/key_value_store_association.py +34 -0
- capo_cloudfront/types/key_value_store_association_list.py +59 -0
- capo_cloudfront/types/key_value_store_associations.py +52 -0
- capo_cloudfront/types/key_value_store_comment.py +5 -0
- capo_cloudfront/types/key_value_store_list.py +68 -0
- capo_cloudfront/types/key_value_store_name.py +5 -0
- capo_cloudfront/types/key_value_store_summary_list.py +49 -0
- capo_cloudfront/types/kg_key_pair_ids.py +45 -0
- capo_cloudfront/types/kg_key_pair_ids_list.py +45 -0
- capo_cloudfront/types/kinesis_stream_config.py +40 -0
- capo_cloudfront/types/lambda_function_arn.py +5 -0
- capo_cloudfront/types/lambda_function_association.py +59 -0
- capo_cloudfront/types/lambda_function_association_list.py +59 -0
- capo_cloudfront/types/lambda_function_associations.py +52 -0
- capo_cloudfront/types/list_anycast_ip_lists_request.py +28 -0
- capo_cloudfront/types/list_anycast_ip_lists_result.py +42 -0
- capo_cloudfront/types/list_cache_policies_request.py +31 -0
- capo_cloudfront/types/list_cache_policies_result.py +42 -0
- capo_cloudfront/types/list_cloud_front_origin_access_identities_request.py +30 -0
- capo_cloudfront/types/list_cloud_front_origin_access_identities_result.py +48 -0
- capo_cloudfront/types/list_conflicting_aliases_max_items_integer.py +5 -0
- capo_cloudfront/types/list_conflicting_aliases_request.py +38 -0
- capo_cloudfront/types/list_conflicting_aliases_result.py +44 -0
- capo_cloudfront/types/list_connection_functions_request.py +52 -0
- capo_cloudfront/types/list_connection_functions_result.py +52 -0
- capo_cloudfront/types/list_connection_groups_request.py +60 -0
- capo_cloudfront/types/list_connection_groups_result.py +50 -0
- capo_cloudfront/types/list_continuous_deployment_policies_request.py +30 -0
- capo_cloudfront/types/list_continuous_deployment_policies_result.py +46 -0
- capo_cloudfront/types/list_distribution_tenants_by_customization_request.py +54 -0
- capo_cloudfront/types/list_distribution_tenants_by_customization_result.py +52 -0
- capo_cloudfront/types/list_distribution_tenants_request.py +59 -0
- capo_cloudfront/types/list_distribution_tenants_result.py +52 -0
- capo_cloudfront/types/list_distributions_by_anycast_ip_list_id_request.py +32 -0
- capo_cloudfront/types/list_distributions_by_anycast_ip_list_id_result.py +43 -0
- capo_cloudfront/types/list_distributions_by_cache_policy_id_request.py +32 -0
- capo_cloudfront/types/list_distributions_by_cache_policy_id_result.py +44 -0
- capo_cloudfront/types/list_distributions_by_connection_function_request.py +32 -0
- capo_cloudfront/types/list_distributions_by_connection_function_result.py +43 -0
- capo_cloudfront/types/list_distributions_by_connection_mode_request.py +33 -0
- capo_cloudfront/types/list_distributions_by_connection_mode_result.py +43 -0
- capo_cloudfront/types/list_distributions_by_key_group_request.py +32 -0
- capo_cloudfront/types/list_distributions_by_key_group_result.py +43 -0
- capo_cloudfront/types/list_distributions_by_origin_request_policy_id_request.py +32 -0
- capo_cloudfront/types/list_distributions_by_origin_request_policy_id_result.py +44 -0
- capo_cloudfront/types/list_distributions_by_owned_resource_request.py +32 -0
- capo_cloudfront/types/list_distributions_by_owned_resource_result.py +44 -0
- capo_cloudfront/types/list_distributions_by_realtime_log_config_request.py +58 -0
- capo_cloudfront/types/list_distributions_by_realtime_log_config_result.py +43 -0
- capo_cloudfront/types/list_distributions_by_response_headers_policy_id_request.py +32 -0
- capo_cloudfront/types/list_distributions_by_response_headers_policy_id_result.py +43 -0
- capo_cloudfront/types/list_distributions_by_trust_store_request.py +32 -0
- capo_cloudfront/types/list_distributions_by_trust_store_result.py +43 -0
- capo_cloudfront/types/list_distributions_by_vpc_origin_id_request.py +32 -0
- capo_cloudfront/types/list_distributions_by_vpc_origin_id_result.py +43 -0
- capo_cloudfront/types/list_distributions_by_web_acl_id_request.py +32 -0
- capo_cloudfront/types/list_distributions_by_web_acl_id_result.py +44 -0
- capo_cloudfront/types/list_distributions_request.py +28 -0
- capo_cloudfront/types/list_distributions_result.py +42 -0
- capo_cloudfront/types/list_domain_conflicts_request.py +74 -0
- capo_cloudfront/types/list_domain_conflicts_result.py +50 -0
- capo_cloudfront/types/list_field_level_encryption_configs_request.py +30 -0
- capo_cloudfront/types/list_field_level_encryption_configs_result.py +44 -0
- capo_cloudfront/types/list_field_level_encryption_profiles_request.py +30 -0
- capo_cloudfront/types/list_field_level_encryption_profiles_result.py +48 -0
- capo_cloudfront/types/list_functions_request.py +31 -0
- capo_cloudfront/types/list_functions_result.py +38 -0
- capo_cloudfront/types/list_invalidations_for_distribution_tenant_request.py +32 -0
- capo_cloudfront/types/list_invalidations_for_distribution_tenant_result.py +43 -0
- capo_cloudfront/types/list_invalidations_request.py +30 -0
- capo_cloudfront/types/list_invalidations_result.py +42 -0
- capo_cloudfront/types/list_key_groups_request.py +28 -0
- capo_cloudfront/types/list_key_groups_result.py +38 -0
- capo_cloudfront/types/list_key_value_stores_request.py +30 -0
- capo_cloudfront/types/list_key_value_stores_result.py +42 -0
- capo_cloudfront/types/list_origin_access_controls_request.py +30 -0
- capo_cloudfront/types/list_origin_access_controls_result.py +44 -0
- capo_cloudfront/types/list_origin_request_policies_request.py +35 -0
- capo_cloudfront/types/list_origin_request_policies_result.py +44 -0
- capo_cloudfront/types/list_public_keys_request.py +28 -0
- capo_cloudfront/types/list_public_keys_result.py +38 -0
- capo_cloudfront/types/list_realtime_log_configs_request.py +30 -0
- capo_cloudfront/types/list_realtime_log_configs_result.py +44 -0
- capo_cloudfront/types/list_response_headers_policies_request.py +35 -0
- capo_cloudfront/types/list_response_headers_policies_result.py +44 -0
- capo_cloudfront/types/list_streaming_distributions_request.py +30 -0
- capo_cloudfront/types/list_streaming_distributions_result.py +44 -0
- capo_cloudfront/types/list_tags_for_resource_request.py +25 -0
- capo_cloudfront/types/list_tags_for_resource_result.py +36 -0
- capo_cloudfront/types/list_trust_stores_request.py +38 -0
- capo_cloudfront/types/list_trust_stores_result.py +50 -0
- capo_cloudfront/types/list_vpc_origins_request.py +28 -0
- capo_cloudfront/types/list_vpc_origins_result.py +38 -0
- capo_cloudfront/types/location_list.py +37 -0
- capo_cloudfront/types/logging_config.py +58 -0
- capo_cloudfront/types/long.py +5 -0
- capo_cloudfront/types/managed_certificate_details.py +90 -0
- capo_cloudfront/types/managed_certificate_request.py +78 -0
- capo_cloudfront/types/managed_certificate_status.py +32 -0
- capo_cloudfront/types/method.py +32 -0
- capo_cloudfront/types/methods_list.py +45 -0
- capo_cloudfront/types/minimum_protocol_version.py +34 -0
- capo_cloudfront/types/monitoring_subscription.py +46 -0
- capo_cloudfront/types/origin.py +174 -0
- capo_cloudfront/types/origin_access_control.py +52 -0
- capo_cloudfront/types/origin_access_control_config.py +102 -0
- capo_cloudfront/types/origin_access_control_list.py +85 -0
- capo_cloudfront/types/origin_access_control_origin_types.py +31 -0
- capo_cloudfront/types/origin_access_control_signing_behaviors.py +30 -0
- capo_cloudfront/types/origin_access_control_signing_protocols.py +26 -0
- capo_cloudfront/types/origin_access_control_summary.py +111 -0
- capo_cloudfront/types/origin_access_control_summary_list.py +59 -0
- capo_cloudfront/types/origin_custom_header.py +41 -0
- capo_cloudfront/types/origin_custom_headers_list.py +51 -0
- capo_cloudfront/types/origin_group.py +88 -0
- capo_cloudfront/types/origin_group_failover_criteria.py +42 -0
- capo_cloudfront/types/origin_group_list.py +45 -0
- capo_cloudfront/types/origin_group_member.py +32 -0
- capo_cloudfront/types/origin_group_member_list.py +49 -0
- capo_cloudfront/types/origin_group_members.py +49 -0
- capo_cloudfront/types/origin_group_selection_criteria.py +29 -0
- capo_cloudfront/types/origin_groups.py +48 -0
- capo_cloudfront/types/origin_list.py +45 -0
- capo_cloudfront/types/origin_mtls_config.py +32 -0
- capo_cloudfront/types/origin_protocol_policy.py +28 -0
- capo_cloudfront/types/origin_request_policy.py +72 -0
- capo_cloudfront/types/origin_request_policy_config.py +98 -0
- capo_cloudfront/types/origin_request_policy_cookie_behavior.py +31 -0
- capo_cloudfront/types/origin_request_policy_cookies_config.py +61 -0
- capo_cloudfront/types/origin_request_policy_header_behavior.py +32 -0
- capo_cloudfront/types/origin_request_policy_headers_config.py +57 -0
- capo_cloudfront/types/origin_request_policy_list.py +68 -0
- capo_cloudfront/types/origin_request_policy_query_string_behavior.py +31 -0
- capo_cloudfront/types/origin_request_policy_query_strings_config.py +64 -0
- capo_cloudfront/types/origin_request_policy_summary.py +63 -0
- capo_cloudfront/types/origin_request_policy_summary_list.py +59 -0
- capo_cloudfront/types/origin_request_policy_type.py +27 -0
- capo_cloudfront/types/origin_shield.py +42 -0
- capo_cloudfront/types/origin_shield_region.py +5 -0
- capo_cloudfront/types/origin_ssl_protocols.py +47 -0
- capo_cloudfront/types/origins.py +45 -0
- capo_cloudfront/types/parameter.py +41 -0
- capo_cloudfront/types/parameter_definition.py +53 -0
- capo_cloudfront/types/parameter_definition_schema.py +42 -0
- capo_cloudfront/types/parameter_definitions.py +47 -0
- capo_cloudfront/types/parameter_name.py +5 -0
- capo_cloudfront/types/parameter_value.py +5 -0
- capo_cloudfront/types/parameters.py +45 -0
- capo_cloudfront/types/parameters_in_cache_key_and_forwarded_to_origin.py +118 -0
- capo_cloudfront/types/path_list.py +37 -0
- capo_cloudfront/types/paths.py +44 -0
- capo_cloudfront/types/price_class.py +29 -0
- capo_cloudfront/types/public_key.py +68 -0
- capo_cloudfront/types/public_key_config.py +55 -0
- capo_cloudfront/types/public_key_id_list.py +37 -0
- capo_cloudfront/types/public_key_list.py +66 -0
- capo_cloudfront/types/public_key_summary.py +72 -0
- capo_cloudfront/types/public_key_summary_list.py +49 -0
- capo_cloudfront/types/publish_connection_function_request.py +30 -0
- capo_cloudfront/types/publish_connection_function_result.py +44 -0
- capo_cloudfront/types/publish_function_request.py +28 -0
- capo_cloudfront/types/publish_function_result.py +42 -0
- capo_cloudfront/types/put_resource_policy_request.py +40 -0
- capo_cloudfront/types/put_resource_policy_result.py +30 -0
- capo_cloudfront/types/query_arg_profile.py +40 -0
- capo_cloudfront/types/query_arg_profile_config.py +60 -0
- capo_cloudfront/types/query_arg_profile_list.py +49 -0
- capo_cloudfront/types/query_arg_profiles.py +50 -0
- capo_cloudfront/types/query_string_cache_keys.py +52 -0
- capo_cloudfront/types/query_string_cache_keys_list.py +39 -0
- capo_cloudfront/types/query_string_names.py +50 -0
- capo_cloudfront/types/query_string_names_list.py +37 -0
- capo_cloudfront/types/realtime_log_config.py +79 -0
- capo_cloudfront/types/realtime_log_config_list.py +47 -0
- capo_cloudfront/types/realtime_log_configs.py +75 -0
- capo_cloudfront/types/realtime_metrics_subscription_config.py +50 -0
- capo_cloudfront/types/realtime_metrics_subscription_status.py +29 -0
- capo_cloudfront/types/referrer_policy_list.py +33 -0
- capo_cloudfront/types/resource_arn.py +5 -0
- capo_cloudfront/types/resource_id.py +5 -0
- capo_cloudfront/types/response_headers_policy.py +70 -0
- capo_cloudfront/types/response_headers_policy_access_control_allow_headers.py +57 -0
- capo_cloudfront/types/response_headers_policy_access_control_allow_methods.py +57 -0
- capo_cloudfront/types/response_headers_policy_access_control_allow_methods_values.py +39 -0
- capo_cloudfront/types/response_headers_policy_access_control_allow_origins.py +57 -0
- capo_cloudfront/types/response_headers_policy_access_control_expose_headers.py +56 -0
- capo_cloudfront/types/response_headers_policy_config.py +141 -0
- capo_cloudfront/types/response_headers_policy_content_security_policy.py +47 -0
- capo_cloudfront/types/response_headers_policy_content_type_options.py +36 -0
- capo_cloudfront/types/response_headers_policy_cors_config.py +147 -0
- capo_cloudfront/types/response_headers_policy_custom_header.py +53 -0
- capo_cloudfront/types/response_headers_policy_custom_header_list.py +65 -0
- capo_cloudfront/types/response_headers_policy_custom_headers_config.py +56 -0
- capo_cloudfront/types/response_headers_policy_frame_options.py +55 -0
- capo_cloudfront/types/response_headers_policy_list.py +68 -0
- capo_cloudfront/types/response_headers_policy_referrer_policy.py +57 -0
- capo_cloudfront/types/response_headers_policy_remove_header.py +34 -0
- capo_cloudfront/types/response_headers_policy_remove_header_list.py +65 -0
- capo_cloudfront/types/response_headers_policy_remove_headers_config.py +56 -0
- capo_cloudfront/types/response_headers_policy_security_headers_config.py +144 -0
- capo_cloudfront/types/response_headers_policy_server_timing_headers_config.py +44 -0
- capo_cloudfront/types/response_headers_policy_strict_transport_security.py +69 -0
- capo_cloudfront/types/response_headers_policy_summary.py +67 -0
- capo_cloudfront/types/response_headers_policy_summary_list.py +59 -0
- capo_cloudfront/types/response_headers_policy_type.py +27 -0
- capo_cloudfront/types/response_headers_policy_xss_protection.py +61 -0
- capo_cloudfront/types/restrictions.py +40 -0
- capo_cloudfront/types/s3_origin.py +40 -0
- capo_cloudfront/types/s3_origin_config.py +41 -0
- capo_cloudfront/types/sampling_rate.py +5 -0
- capo_cloudfront/types/sensitive_string_type.py +5 -0
- capo_cloudfront/types/server_certificate_id.py +5 -0
- capo_cloudfront/types/session_stickiness_config.py +40 -0
- capo_cloudfront/types/signer.py +46 -0
- capo_cloudfront/types/signer_list.py +45 -0
- capo_cloudfront/types/ssl_protocol.py +29 -0
- capo_cloudfront/types/ssl_protocols_list.py +45 -0
- capo_cloudfront/types/ssl_support_method.py +28 -0
- capo_cloudfront/types/staging_distribution_dns_name_list.py +41 -0
- capo_cloudfront/types/staging_distribution_dns_names.py +54 -0
- capo_cloudfront/types/status_code_list.py +37 -0
- capo_cloudfront/types/status_codes.py +47 -0
- capo_cloudfront/types/streaming_distribution.py +116 -0
- capo_cloudfront/types/streaming_distribution_config.py +133 -0
- capo_cloudfront/types/streaming_distribution_config_with_tags.py +59 -0
- capo_cloudfront/types/streaming_distribution_list.py +85 -0
- capo_cloudfront/types/streaming_distribution_summary.py +158 -0
- capo_cloudfront/types/streaming_distribution_summary_list.py +59 -0
- capo_cloudfront/types/streaming_logging_config.py +49 -0
- capo_cloudfront/types/string.py +5 -0
- capo_cloudfront/types/string_schema_config.py +50 -0
- capo_cloudfront/types/tag.py +40 -0
- capo_cloudfront/types/tag_key.py +6 -0
- capo_cloudfront/types/tag_key_list.py +37 -0
- capo_cloudfront/types/tag_keys.py +34 -0
- capo_cloudfront/types/tag_list.py +45 -0
- capo_cloudfront/types/tag_resource_request.py +39 -0
- capo_cloudfront/types/tag_value.py +5 -0
- capo_cloudfront/types/tags.py +34 -0
- capo_cloudfront/types/tenant_config.py +42 -0
- capo_cloudfront/types/test_connection_function_request.py +64 -0
- capo_cloudfront/types/test_connection_function_result.py +44 -0
- capo_cloudfront/types/test_function_request.py +60 -0
- capo_cloudfront/types/test_function_result.py +38 -0
- capo_cloudfront/types/test_result.py +91 -0
- capo_cloudfront/types/timestamp.py +25 -0
- capo_cloudfront/types/traffic_config.py +82 -0
- capo_cloudfront/types/trust_store.py +111 -0
- capo_cloudfront/types/trust_store_config.py +55 -0
- capo_cloudfront/types/trust_store_list.py +49 -0
- capo_cloudfront/types/trust_store_status.py +28 -0
- capo_cloudfront/types/trust_store_summary.py +112 -0
- capo_cloudfront/types/trusted_key_group_id_list.py +37 -0
- capo_cloudfront/types/trusted_key_groups.py +59 -0
- capo_cloudfront/types/trusted_signers.py +59 -0
- capo_cloudfront/types/untag_resource_request.py +39 -0
- capo_cloudfront/types/update_anycast_ip_list_request.py +63 -0
- capo_cloudfront/types/update_anycast_ip_list_result.py +40 -0
- capo_cloudfront/types/update_cache_policy_request.py +49 -0
- capo_cloudfront/types/update_cache_policy_result.py +41 -0
- capo_cloudfront/types/update_cloud_front_origin_access_identity_request.py +55 -0
- capo_cloudfront/types/update_cloud_front_origin_access_identity_result.py +49 -0
- capo_cloudfront/types/update_connection_function_request.py +72 -0
- capo_cloudfront/types/update_connection_function_result.py +47 -0
- capo_cloudfront/types/update_connection_group_request.py +53 -0
- capo_cloudfront/types/update_connection_group_result.py +47 -0
- capo_cloudfront/types/update_continuous_deployment_policy_request.py +55 -0
- capo_cloudfront/types/update_continuous_deployment_policy_result.py +47 -0
- capo_cloudfront/types/update_distribution_request.py +49 -0
- capo_cloudfront/types/update_distribution_result.py +41 -0
- capo_cloudfront/types/update_distribution_tenant_request.py +117 -0
- capo_cloudfront/types/update_distribution_tenant_result.py +47 -0
- capo_cloudfront/types/update_distribution_with_staging_config_request.py +31 -0
- capo_cloudfront/types/update_distribution_with_staging_config_result.py +42 -0
- capo_cloudfront/types/update_domain_association_request.py +59 -0
- capo_cloudfront/types/update_domain_association_result.py +41 -0
- capo_cloudfront/types/update_field_level_encryption_config_request.py +53 -0
- capo_cloudfront/types/update_field_level_encryption_config_result.py +47 -0
- capo_cloudfront/types/update_field_level_encryption_profile_request.py +55 -0
- capo_cloudfront/types/update_field_level_encryption_profile_result.py +47 -0
- capo_cloudfront/types/update_function_request.py +63 -0
- capo_cloudfront/types/update_function_result.py +45 -0
- capo_cloudfront/types/update_key_group_request.py +47 -0
- capo_cloudfront/types/update_key_group_result.py +41 -0
- capo_cloudfront/types/update_key_value_store_request.py +38 -0
- capo_cloudfront/types/update_key_value_store_result.py +41 -0
- capo_cloudfront/types/update_origin_access_control_request.py +53 -0
- capo_cloudfront/types/update_origin_access_control_result.py +47 -0
- capo_cloudfront/types/update_origin_request_policy_request.py +53 -0
- capo_cloudfront/types/update_origin_request_policy_result.py +47 -0
- capo_cloudfront/types/update_public_key_request.py +47 -0
- capo_cloudfront/types/update_public_key_result.py +41 -0
- capo_cloudfront/types/update_realtime_log_config_request.py +75 -0
- capo_cloudfront/types/update_realtime_log_config_result.py +44 -0
- capo_cloudfront/types/update_response_headers_policy_request.py +51 -0
- capo_cloudfront/types/update_response_headers_policy_result.py +47 -0
- capo_cloudfront/types/update_streaming_distribution_request.py +51 -0
- capo_cloudfront/types/update_streaming_distribution_result.py +47 -0
- capo_cloudfront/types/update_trust_store_request.py +53 -0
- capo_cloudfront/types/update_trust_store_result.py +41 -0
- capo_cloudfront/types/update_vpc_origin_request.py +51 -0
- capo_cloudfront/types/update_vpc_origin_result.py +41 -0
- capo_cloudfront/types/validation_token_detail.py +46 -0
- capo_cloudfront/types/validation_token_detail_list.py +49 -0
- capo_cloudfront/types/validation_token_host.py +27 -0
- capo_cloudfront/types/verify_dns_configuration_request.py +41 -0
- capo_cloudfront/types/verify_dns_configuration_result.py +44 -0
- capo_cloudfront/types/viewer_certificate.py +121 -0
- capo_cloudfront/types/viewer_mtls_config.py +57 -0
- capo_cloudfront/types/viewer_mtls_mode.py +28 -0
- capo_cloudfront/types/viewer_protocol_policy.py +28 -0
- capo_cloudfront/types/vpc_origin.py +109 -0
- capo_cloudfront/types/vpc_origin_config.py +56 -0
- capo_cloudfront/types/vpc_origin_endpoint_config.py +99 -0
- capo_cloudfront/types/vpc_origin_list.py +83 -0
- capo_cloudfront/types/vpc_origin_summary.py +104 -0
- capo_cloudfront/types/vpc_origin_summary_list.py +49 -0
- capo_cloudfront/types/web_acl_customization.py +48 -0
- capo_cloudfront-0.2.0.dist-info/METADATA +98 -0
- capo_cloudfront-0.2.0.dist-info/RECORD +1020 -0
- capo_cloudfront-0.2.0.dist-info/WHEEL +5 -0
- capo_cloudfront-0.2.0.dist-info/licenses/LICENSE +21 -0
- capo_cloudfront-0.2.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,382 @@
|
|
|
1
|
+
"""AWS Signature Version 4 — single-chunk signing.
|
|
2
|
+
|
|
3
|
+
Reference:
|
|
4
|
+
https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv-create-signed-request.html
|
|
5
|
+
|
|
6
|
+
Verified byte-for-byte against ``botocore.auth.S3SigV4Auth`` / ``SigV4Auth``
|
|
7
|
+
across S3 GET/PUT/POST, query-string, session-token, and non-S3 (IAM)
|
|
8
|
+
canonicalization paths.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from __future__ import annotations
|
|
12
|
+
|
|
13
|
+
import datetime as _dt
|
|
14
|
+
import hashlib
|
|
15
|
+
import hmac
|
|
16
|
+
import re
|
|
17
|
+
from typing import Any, Literal, TypedDict
|
|
18
|
+
from urllib.parse import quote, unquote
|
|
19
|
+
|
|
20
|
+
import zapros
|
|
21
|
+
from pywhatwgurl import URLSearchParams
|
|
22
|
+
from zapros import Headers, Request
|
|
23
|
+
from zapros._utils import get_host_header_value
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def build_sigv4_auth_scheme(
|
|
27
|
+
signing_name: str, region: str | None
|
|
28
|
+
) -> dict[str, Any] | None:
|
|
29
|
+
"""Return a sigv4 auth scheme dict for the given signing name and region.
|
|
30
|
+
|
|
31
|
+
Returns None when region is not set so callers can use it in an ``or`` chain.
|
|
32
|
+
"""
|
|
33
|
+
if region is None:
|
|
34
|
+
return None
|
|
35
|
+
return {
|
|
36
|
+
"name": "sigv4",
|
|
37
|
+
"signingName": signing_name,
|
|
38
|
+
"signingRegion": region,
|
|
39
|
+
"disableDoubleEncoding": False,
|
|
40
|
+
"disableNormalizePath": False,
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class SigV4AuthContext(TypedDict):
|
|
45
|
+
type: Literal["sig_v4"]
|
|
46
|
+
access_key_id: str
|
|
47
|
+
secret_access_key: str
|
|
48
|
+
session_token: str | None
|
|
49
|
+
signing_region: str
|
|
50
|
+
signing_name: str
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
_SIGV4_ALGORITHM = "AWS4-HMAC-SHA256"
|
|
54
|
+
_EMPTY_PAYLOAD_SHA256 = hashlib.sha256(b"").hexdigest()
|
|
55
|
+
|
|
56
|
+
# Headers excluded from the signed-headers set. Mirrors botocore's denylist:
|
|
57
|
+
# these are hop-by-hop / mutable in transit, so signing them would break
|
|
58
|
+
# proxies or duplicate values already added by the transport layer.
|
|
59
|
+
_UNSIGNED_HEADERS = frozenset(
|
|
60
|
+
{
|
|
61
|
+
"authorization",
|
|
62
|
+
"cache-control",
|
|
63
|
+
"connection",
|
|
64
|
+
"expect",
|
|
65
|
+
"from",
|
|
66
|
+
"keep-alive",
|
|
67
|
+
"max-forwards",
|
|
68
|
+
"pragma",
|
|
69
|
+
"referer",
|
|
70
|
+
"te",
|
|
71
|
+
"trailer",
|
|
72
|
+
"transfer-encoding",
|
|
73
|
+
"upgrade",
|
|
74
|
+
"user-agent",
|
|
75
|
+
"x-amzn-trace-id",
|
|
76
|
+
"content-length",
|
|
77
|
+
"accept",
|
|
78
|
+
"accept-encoding",
|
|
79
|
+
}
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
_MULTI_SPACE = re.compile(r" +")
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def _uri_encode(value: str) -> str:
|
|
86
|
+
"""RFC 3986 percent-encoding using only the unreserved set as safe."""
|
|
87
|
+
return quote(value, safe="-_.~")
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def _canonical_path(path: str, *, service: str) -> str:
|
|
91
|
+
"""Build CanonicalURI.
|
|
92
|
+
|
|
93
|
+
Per the SigV4 spec, every segment is URI-encoded; for services other
|
|
94
|
+
than S3 each segment is URI-encoded **twice**. S3 keeps the path
|
|
95
|
+
exactly as provided (no normalization, no double-encoding).
|
|
96
|
+
"""
|
|
97
|
+
if not path:
|
|
98
|
+
return "/"
|
|
99
|
+
if service == "s3":
|
|
100
|
+
return path if path.startswith("/") else "/" + path
|
|
101
|
+
decoded = unquote(path)
|
|
102
|
+
first = quote(decoded, safe="/~")
|
|
103
|
+
return quote(first, safe="/~")
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
def _canonical_query(query: str) -> str:
|
|
107
|
+
"""Build CanonicalQueryString from a raw query string (with or without ``?``)."""
|
|
108
|
+
if not query:
|
|
109
|
+
return ""
|
|
110
|
+
if query.startswith("?"):
|
|
111
|
+
query = query[1:]
|
|
112
|
+
if not query:
|
|
113
|
+
return ""
|
|
114
|
+
sp = URLSearchParams(query)
|
|
115
|
+
encoded = sorted((_uri_encode(k), _uri_encode(v)) for k, v in sp.entries())
|
|
116
|
+
return "&".join(f"{k}={v}" for k, v in encoded)
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
def _trim_header_value(value: str) -> str:
|
|
120
|
+
"""Trim leading/trailing whitespace and collapse internal whitespace runs.
|
|
121
|
+
|
|
122
|
+
Spec note: the canonical form treats sequential whitespace inside an
|
|
123
|
+
unquoted value as a single space. We do not parse quoted-string syntax;
|
|
124
|
+
the conservative collapse is correct for every header AWS actually signs.
|
|
125
|
+
"""
|
|
126
|
+
return _MULTI_SPACE.sub(" ", value.strip())
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
def _canonical_headers(headers: Headers) -> tuple[str, str]:
|
|
130
|
+
"""Return ``(canonical_headers, signed_headers)``."""
|
|
131
|
+
grouped: dict[str, list[str]] = {}
|
|
132
|
+
for name in headers:
|
|
133
|
+
lname = name.lower()
|
|
134
|
+
if lname in _UNSIGNED_HEADERS:
|
|
135
|
+
continue
|
|
136
|
+
grouped[lname] = [_trim_header_value(v) for v in headers.getall(name)]
|
|
137
|
+
|
|
138
|
+
signed = sorted(grouped)
|
|
139
|
+
canonical = "".join(f"{name}:{','.join(grouped[name])}\n" for name in signed)
|
|
140
|
+
return canonical, ";".join(signed)
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
def _build_canonical_request(
|
|
144
|
+
*,
|
|
145
|
+
method: str,
|
|
146
|
+
path: str,
|
|
147
|
+
query: str,
|
|
148
|
+
headers: Headers,
|
|
149
|
+
payload_hash: str,
|
|
150
|
+
service: str,
|
|
151
|
+
) -> tuple[str, str]:
|
|
152
|
+
canonical_uri = _canonical_path(path, service=service)
|
|
153
|
+
canonical_query = _canonical_query(query)
|
|
154
|
+
canonical_headers, signed_headers = _canonical_headers(headers)
|
|
155
|
+
canonical_request = (
|
|
156
|
+
f"{method}\n"
|
|
157
|
+
f"{canonical_uri}\n"
|
|
158
|
+
f"{canonical_query}\n"
|
|
159
|
+
f"{canonical_headers}\n"
|
|
160
|
+
f"{signed_headers}\n"
|
|
161
|
+
f"{payload_hash}"
|
|
162
|
+
)
|
|
163
|
+
return canonical_request, signed_headers
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
def _derive_signing_key(secret: str, date: str, region: str, service: str) -> bytes:
|
|
167
|
+
k_date = hmac.new(
|
|
168
|
+
b"AWS4" + secret.encode("utf-8"), date.encode("ascii"), hashlib.sha256
|
|
169
|
+
).digest()
|
|
170
|
+
k_region = hmac.new(k_date, region.encode("utf-8"), hashlib.sha256).digest()
|
|
171
|
+
k_service = hmac.new(k_region, service.encode("utf-8"), hashlib.sha256).digest()
|
|
172
|
+
return hmac.new(k_service, b"aws4_request", hashlib.sha256).digest()
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
def _amz_now() -> _dt.datetime:
|
|
176
|
+
return _dt.datetime.now(_dt.timezone.utc)
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
def _canonical_query_from_pairs(pairs: list[tuple[str, str]]) -> str:
|
|
180
|
+
"""CanonicalQueryString from raw (unencoded) key/value pairs."""
|
|
181
|
+
encoded = sorted((_uri_encode(k), _uri_encode(v)) for k, v in pairs)
|
|
182
|
+
return "&".join(f"{k}={v}" for k, v in encoded)
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
def sign_sigv4(
|
|
186
|
+
request: Request,
|
|
187
|
+
ctx: SigV4AuthContext,
|
|
188
|
+
body: bytes | None,
|
|
189
|
+
) -> Request:
|
|
190
|
+
"""Return a new ``Request`` carrying SigV4 single-chunk auth headers.
|
|
191
|
+
|
|
192
|
+
Pass ``body=None`` to sign with ``UNSIGNED-PAYLOAD`` (streaming requests).
|
|
193
|
+
The original ``request.body`` is forwarded unchanged in that case.
|
|
194
|
+
"""
|
|
195
|
+
service = ctx["signing_name"]
|
|
196
|
+
region = ctx["signing_region"]
|
|
197
|
+
|
|
198
|
+
headers = request.headers.copy()
|
|
199
|
+
|
|
200
|
+
# X-Amz-Date — honor caller-supplied value (allows deterministic tests).
|
|
201
|
+
existing_date = headers.get("X-Amz-Date")
|
|
202
|
+
if existing_date:
|
|
203
|
+
amz_date = existing_date
|
|
204
|
+
date_stamp = amz_date[:8]
|
|
205
|
+
else:
|
|
206
|
+
now = _amz_now()
|
|
207
|
+
amz_date = now.strftime("%Y%m%dT%H%M%SZ")
|
|
208
|
+
date_stamp = now.strftime("%Y%m%d")
|
|
209
|
+
headers["X-Amz-Date"] = amz_date
|
|
210
|
+
|
|
211
|
+
# Payload hash. For S3, x-amz-content-sha256 is mandatory and must be set
|
|
212
|
+
# BEFORE computing the canonical request (it gets signed).
|
|
213
|
+
payload_hash = headers.get("X-Amz-Content-SHA256")
|
|
214
|
+
if payload_hash is None:
|
|
215
|
+
if body is None:
|
|
216
|
+
payload_hash = "UNSIGNED-PAYLOAD"
|
|
217
|
+
else:
|
|
218
|
+
payload_hash = (
|
|
219
|
+
hashlib.sha256(body).hexdigest() if body else _EMPTY_PAYLOAD_SHA256
|
|
220
|
+
)
|
|
221
|
+
if service == "s3":
|
|
222
|
+
headers["X-Amz-Content-SHA256"] = payload_hash
|
|
223
|
+
|
|
224
|
+
# Session token (STS / assumed-role credentials).
|
|
225
|
+
session_token = ctx.get("session_token")
|
|
226
|
+
if session_token:
|
|
227
|
+
headers["X-Amz-Security-Token"] = session_token
|
|
228
|
+
|
|
229
|
+
# Host header is added by Request.__init__ from the URL; defensive fallback.
|
|
230
|
+
if "host" not in headers and request.url.hostname:
|
|
231
|
+
headers["Host"] = get_host_header_value(request.url)
|
|
232
|
+
|
|
233
|
+
canonical_request, signed_headers = _build_canonical_request(
|
|
234
|
+
method=request.method.upper(),
|
|
235
|
+
path=request.url.pathname,
|
|
236
|
+
query=request.url.search,
|
|
237
|
+
headers=headers,
|
|
238
|
+
payload_hash=payload_hash,
|
|
239
|
+
service=service,
|
|
240
|
+
)
|
|
241
|
+
|
|
242
|
+
credential_scope = f"{date_stamp}/{region}/{service}/aws4_request"
|
|
243
|
+
string_to_sign = (
|
|
244
|
+
f"{_SIGV4_ALGORITHM}\n"
|
|
245
|
+
f"{amz_date}\n"
|
|
246
|
+
f"{credential_scope}\n"
|
|
247
|
+
f"{hashlib.sha256(canonical_request.encode('utf-8')).hexdigest()}"
|
|
248
|
+
)
|
|
249
|
+
|
|
250
|
+
signing_key = _derive_signing_key(
|
|
251
|
+
ctx["secret_access_key"], date_stamp, region, service
|
|
252
|
+
)
|
|
253
|
+
signature = hmac.new(
|
|
254
|
+
signing_key, string_to_sign.encode("utf-8"), hashlib.sha256
|
|
255
|
+
).hexdigest()
|
|
256
|
+
|
|
257
|
+
headers["Authorization"] = (
|
|
258
|
+
f"{_SIGV4_ALGORITHM} "
|
|
259
|
+
f"Credential={ctx['access_key_id']}/{credential_scope},"
|
|
260
|
+
f"SignedHeaders={signed_headers},"
|
|
261
|
+
f"Signature={signature}"
|
|
262
|
+
)
|
|
263
|
+
|
|
264
|
+
effective_body = body if body is not None else request.body
|
|
265
|
+
if effective_body is not None:
|
|
266
|
+
return Request(
|
|
267
|
+
request.url,
|
|
268
|
+
request.method,
|
|
269
|
+
headers,
|
|
270
|
+
body=effective_body,
|
|
271
|
+
context=request.context,
|
|
272
|
+
)
|
|
273
|
+
return Request(request.url, request.method, headers, context=request.context)
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
def presign_sigv4(
|
|
277
|
+
request: Request,
|
|
278
|
+
ctx: SigV4AuthContext,
|
|
279
|
+
*,
|
|
280
|
+
expires_in: int = 3600,
|
|
281
|
+
now: _dt.datetime | None = None,
|
|
282
|
+
) -> Request:
|
|
283
|
+
"""Return a new ``Request`` whose URL carries SigV4 query-string auth.
|
|
284
|
+
|
|
285
|
+
The signature travels in the URL (``X-Amz-*`` query params), so the result
|
|
286
|
+
is usable standalone (browser, curl). Payload is signed as
|
|
287
|
+
``UNSIGNED-PAYLOAD``, so the body is not bound by the signature.
|
|
288
|
+
|
|
289
|
+
``expires_in`` is the validity window in seconds; range 1..604800 (7 days),
|
|
290
|
+
bounded by the max lifetime of the derived signing key.
|
|
291
|
+
"""
|
|
292
|
+
if not 1 <= expires_in <= 604800:
|
|
293
|
+
raise ValueError(f"expires_in must be in [1, 604800], got {expires_in}")
|
|
294
|
+
|
|
295
|
+
sign_time = now or _amz_now()
|
|
296
|
+
if sign_time.tzinfo is None:
|
|
297
|
+
raise ValueError("now must be timezone-aware (UTC)")
|
|
298
|
+
|
|
299
|
+
service = ctx["signing_name"]
|
|
300
|
+
region = ctx["signing_region"]
|
|
301
|
+
|
|
302
|
+
amz_date = sign_time.strftime("%Y%m%dT%H%M%SZ")
|
|
303
|
+
date_stamp = sign_time.strftime("%Y%m%d")
|
|
304
|
+
credential_scope = f"{date_stamp}/{region}/{service}/aws4_request"
|
|
305
|
+
|
|
306
|
+
# Canonical headers: host is mandatory; anything else already on the request
|
|
307
|
+
# is signed too (and must then be sent alongside the URL). Strip the headers
|
|
308
|
+
# that belong in the query string to avoid header/query value conflicts
|
|
309
|
+
# (which AWS rejects as InvalidRequest).
|
|
310
|
+
headers = request.headers.copy()
|
|
311
|
+
for h in (
|
|
312
|
+
"Authorization",
|
|
313
|
+
"X-Amz-Date",
|
|
314
|
+
"X-Amz-Content-SHA256",
|
|
315
|
+
"X-Amz-Security-Token",
|
|
316
|
+
):
|
|
317
|
+
if h in headers:
|
|
318
|
+
del headers[h]
|
|
319
|
+
if "host" not in headers and request.url.hostname:
|
|
320
|
+
headers["Host"] = get_host_header_value(request.url)
|
|
321
|
+
|
|
322
|
+
canonical_headers, signed_headers = _canonical_headers(headers)
|
|
323
|
+
|
|
324
|
+
# Signed query params (raw values). X-Amz-Signature is appended afterwards.
|
|
325
|
+
amz_params: list[tuple[str, str]] = [
|
|
326
|
+
("X-Amz-Algorithm", _SIGV4_ALGORITHM),
|
|
327
|
+
("X-Amz-Credential", f"{ctx['access_key_id']}/{credential_scope}"),
|
|
328
|
+
("X-Amz-Date", amz_date),
|
|
329
|
+
("X-Amz-Expires", str(expires_in)),
|
|
330
|
+
("X-Amz-SignedHeaders", signed_headers),
|
|
331
|
+
]
|
|
332
|
+
session_token = ctx.get("session_token")
|
|
333
|
+
if session_token:
|
|
334
|
+
# S3 and most services require the token inside the canonical query.
|
|
335
|
+
# (A few — e.g. iotdevicegateway — want it appended post-signature
|
|
336
|
+
# instead; handle those as a special case if you ever target them.)
|
|
337
|
+
amz_params.append(("X-Amz-Security-Token", session_token))
|
|
338
|
+
|
|
339
|
+
existing = list(URLSearchParams(request.url.search).entries())
|
|
340
|
+
canonical_query = _canonical_query_from_pairs(existing + amz_params)
|
|
341
|
+
|
|
342
|
+
canonical_request = (
|
|
343
|
+
f"{request.method.upper()}\n"
|
|
344
|
+
f"{_canonical_path(request.url.pathname, service=service)}\n"
|
|
345
|
+
f"{canonical_query}\n"
|
|
346
|
+
f"{canonical_headers}\n"
|
|
347
|
+
f"{signed_headers}\n"
|
|
348
|
+
f"UNSIGNED-PAYLOAD"
|
|
349
|
+
)
|
|
350
|
+
|
|
351
|
+
string_to_sign = (
|
|
352
|
+
f"{_SIGV4_ALGORITHM}\n"
|
|
353
|
+
f"{amz_date}\n"
|
|
354
|
+
f"{credential_scope}\n"
|
|
355
|
+
f"{hashlib.sha256(canonical_request.encode('utf-8')).hexdigest()}"
|
|
356
|
+
)
|
|
357
|
+
signing_key = _derive_signing_key(
|
|
358
|
+
ctx["secret_access_key"], date_stamp, region, service
|
|
359
|
+
)
|
|
360
|
+
signature = hmac.new(
|
|
361
|
+
signing_key, string_to_sign.encode("utf-8"), hashlib.sha256
|
|
362
|
+
).hexdigest()
|
|
363
|
+
|
|
364
|
+
# X-Amz-Signature is hex (no encoding needed) and is NOT part of the
|
|
365
|
+
# canonical query. The sorted canonical query doubles as the URL query.
|
|
366
|
+
final_query = f"{canonical_query}&X-Amz-Signature={signature}"
|
|
367
|
+
|
|
368
|
+
url = request.url
|
|
369
|
+
fragment = url.hash or ""
|
|
370
|
+
presigned_href = zapros.URL(
|
|
371
|
+
f"{url.protocol}//{url.host}{url.pathname}?{final_query}{fragment}"
|
|
372
|
+
)
|
|
373
|
+
|
|
374
|
+
if request.body is not None:
|
|
375
|
+
return Request(
|
|
376
|
+
presigned_href,
|
|
377
|
+
request.method,
|
|
378
|
+
headers,
|
|
379
|
+
body=request.body,
|
|
380
|
+
context=request.context,
|
|
381
|
+
)
|
|
382
|
+
return Request(presigned_href, request.method, headers, context=request.context)
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
from typing import Optional, cast
|
|
2
|
+
|
|
3
|
+
from zapros import (
|
|
4
|
+
AsyncBaseHandler,
|
|
5
|
+
AsyncBaseMiddleware,
|
|
6
|
+
AsyncSyncMismatchError,
|
|
7
|
+
BaseHandler,
|
|
8
|
+
BaseMiddleware,
|
|
9
|
+
Request,
|
|
10
|
+
)
|
|
11
|
+
from zapros._models import Response
|
|
12
|
+
|
|
13
|
+
from ._signers import Signer
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def ensure_async_handler(
|
|
17
|
+
handler: AsyncBaseHandler | BaseHandler,
|
|
18
|
+
) -> AsyncBaseHandler:
|
|
19
|
+
if isinstance(handler, AsyncBaseHandler):
|
|
20
|
+
return handler
|
|
21
|
+
raise AsyncSyncMismatchError(
|
|
22
|
+
"Handler was expected to be an AsyncBaseHandler, but it is not."
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def ensure_sync_handler(
|
|
27
|
+
handler: AsyncBaseHandler | BaseHandler,
|
|
28
|
+
) -> BaseHandler:
|
|
29
|
+
if isinstance(handler, BaseHandler):
|
|
30
|
+
return handler
|
|
31
|
+
raise AsyncSyncMismatchError(
|
|
32
|
+
"Handler was expected to be a BaseHandler, but it is not."
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class AuthMiddleware(BaseMiddleware, AsyncBaseMiddleware):
|
|
37
|
+
"""Sign the outgoing request using the Signer placed in ``context["signer"]``.
|
|
38
|
+
|
|
39
|
+
The generated ``get_signer`` in each operation module resolves the
|
|
40
|
+
effective auth scheme to a concrete :class:`Signer` and threads it
|
|
41
|
+
through ``request.context`` before dispatch. This middleware does the
|
|
42
|
+
actual signing; ``None`` means the operation opted out via
|
|
43
|
+
``@optionalAuth`` and the request passes through untouched.
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
def __init__(self, next_handler: BaseHandler | AsyncBaseHandler) -> None:
|
|
47
|
+
self.next = cast(BaseHandler, next_handler)
|
|
48
|
+
self.async_next = cast(AsyncBaseHandler, next_handler)
|
|
49
|
+
|
|
50
|
+
def handle(self, request: Request) -> Response:
|
|
51
|
+
next_handler = ensure_sync_handler(self.next)
|
|
52
|
+
signer = cast(Optional[Signer], request.context.get("signer"))
|
|
53
|
+
if signer is not None:
|
|
54
|
+
request = signer.sign(request)
|
|
55
|
+
return next_handler.handle(request)
|
|
56
|
+
|
|
57
|
+
async def ahandle(self, request: Request) -> Response:
|
|
58
|
+
next_handler = ensure_async_handler(self.async_next)
|
|
59
|
+
signer = cast(Optional[Signer], request.context.get("signer"))
|
|
60
|
+
if signer is not None:
|
|
61
|
+
request = await signer.asign(request)
|
|
62
|
+
return await next_handler.ahandle(request)
|
capo_cloudfront/_iter.py
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"""Iterator helpers used by generated streaming operations.
|
|
2
|
+
|
|
3
|
+
Hand-written, not regenerated.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
from collections.abc import AsyncIterable, AsyncIterator, Callable, Iterable, Iterator
|
|
9
|
+
from typing import Generic, TypeVar, cast
|
|
10
|
+
|
|
11
|
+
T = TypeVar("T")
|
|
12
|
+
U = TypeVar("U")
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class AnyIterator(AsyncIterator[T], Iterator[T], Generic[T]):
|
|
16
|
+
"""A type that is both a synchronous and asynchronous iterator.
|
|
17
|
+
|
|
18
|
+
Streaming output fields use this so the same TypedDict type works for
|
|
19
|
+
both sync and async operation variants.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
...
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class StaticAnyIterator(AnyIterator[T], Generic[T]):
|
|
26
|
+
"""An :class:`AnyIterator` backed by static, in-memory content.
|
|
27
|
+
|
|
28
|
+
Used when streaming output is produced from already-materialized bytes
|
|
29
|
+
rather than a live stream. The ``content`` is yielded once and remains
|
|
30
|
+
accessible as a public attribute.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
def __init__(self, content: T) -> None:
|
|
34
|
+
self.content = content
|
|
35
|
+
self._consumed = False
|
|
36
|
+
|
|
37
|
+
def __next__(self) -> T:
|
|
38
|
+
if self._consumed:
|
|
39
|
+
raise StopIteration
|
|
40
|
+
self._consumed = True
|
|
41
|
+
return self.content
|
|
42
|
+
|
|
43
|
+
async def __anext__(self) -> T:
|
|
44
|
+
if self._consumed:
|
|
45
|
+
raise StopAsyncIteration
|
|
46
|
+
self._consumed = True
|
|
47
|
+
return self.content
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def map_sync_iterator(iterable: Iterable[T], fn: Callable[[T], U]) -> Iterator[U]:
|
|
51
|
+
"""Map ``fn`` over a synchronous iterable, yielding results lazily."""
|
|
52
|
+
for item in iterable:
|
|
53
|
+
yield fn(item)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
async def map_async_iterator(
|
|
57
|
+
async_iterable: AsyncIterable[T], fn: Callable[[T], U]
|
|
58
|
+
) -> AsyncIterator[U]:
|
|
59
|
+
"""Map ``fn`` over an asynchronous iterable, yielding results lazily."""
|
|
60
|
+
async for item in async_iterable:
|
|
61
|
+
yield fn(item)
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def chain_sync_iterator(*iterables: Iterable[T]) -> Iterator[T]:
|
|
65
|
+
"""Yield items from each iterable in order."""
|
|
66
|
+
for iterable in iterables:
|
|
67
|
+
yield from iterable
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
async def chain_async_iterator(
|
|
71
|
+
prefix: Iterable[T], rest: AsyncIterable[T]
|
|
72
|
+
) -> AsyncIterator[T]:
|
|
73
|
+
"""Yield the synchronous ``prefix`` items, then the async ``rest`` items."""
|
|
74
|
+
for item in prefix:
|
|
75
|
+
yield item
|
|
76
|
+
async for item in rest:
|
|
77
|
+
yield item
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def ensure_async_iterator(value: AsyncIterator[T] | T) -> AnyIterator[T]:
|
|
81
|
+
"""Return ``value`` as an :class:`AnyIterator`.
|
|
82
|
+
|
|
83
|
+
An async iterator is returned unchanged; a single value is wrapped in a
|
|
84
|
+
fresh single-item async iterator.
|
|
85
|
+
"""
|
|
86
|
+
if isinstance(value, AsyncIterator):
|
|
87
|
+
return cast(AnyIterator[T], value)
|
|
88
|
+
|
|
89
|
+
return StaticAnyIterator(value)
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
def ensure_sync_iterator(value: Iterator[T] | T) -> AnyIterator[T]:
|
|
93
|
+
"""Return ``value`` as an :class:`AnyIterator`.
|
|
94
|
+
|
|
95
|
+
A sync iterator is returned unchanged; a single value is wrapped in a
|
|
96
|
+
fresh single-item sync iterator.
|
|
97
|
+
"""
|
|
98
|
+
if isinstance(value, Iterator):
|
|
99
|
+
return cast(AnyIterator[T], value)
|
|
100
|
+
|
|
101
|
+
return StaticAnyIterator(value)
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
__all__ = [
|
|
105
|
+
"AnyIterator",
|
|
106
|
+
"StaticAnyIterator",
|
|
107
|
+
"chain_async_iterator",
|
|
108
|
+
"chain_sync_iterator",
|
|
109
|
+
"ensure_async_iterator",
|
|
110
|
+
"ensure_sync_iterator",
|
|
111
|
+
"map_async_iterator",
|
|
112
|
+
"map_sync_iterator",
|
|
113
|
+
]
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"""Generated from Smithy shape ``com.amazonaws.cloudfront#AssociateAlias``."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Any
|
|
6
|
+
from urllib.parse import quote
|
|
7
|
+
|
|
8
|
+
import zapros
|
|
9
|
+
from typing_extensions import Never
|
|
10
|
+
|
|
11
|
+
import capo_cloudfront._auth._signers
|
|
12
|
+
import capo_cloudfront._auth._sigv4
|
|
13
|
+
import capo_cloudfront.errors.access_denied
|
|
14
|
+
import capo_cloudfront.errors.illegal_update
|
|
15
|
+
import capo_cloudfront.errors.invalid_argument
|
|
16
|
+
import capo_cloudfront.errors.no_such_distribution
|
|
17
|
+
import capo_cloudfront.errors.too_many_distribution_cnam_es
|
|
18
|
+
import capo_cloudfront.types.associate_alias_request
|
|
19
|
+
from capo_cloudfront._protocol.errors import parse_error_metadata
|
|
20
|
+
from capo_cloudfront._protocol.xml import fromstring
|
|
21
|
+
from capo_cloudfront._rule_engine._endpoint_rule_set import EndpointParams, resolve
|
|
22
|
+
from capo_cloudfront._services._pipeline import AsyncOperationOptions, OperationOptions
|
|
23
|
+
from capo_cloudfront.errors import UnknownServiceError
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def handle_error(response: zapros.Response) -> Never:
|
|
27
|
+
root = fromstring(response.read())
|
|
28
|
+
code, message = parse_error_metadata(root)
|
|
29
|
+
match code:
|
|
30
|
+
case "AccessDenied":
|
|
31
|
+
raise capo_cloudfront.errors.access_denied.AccessDenied.from_xml(root)
|
|
32
|
+
case "IllegalUpdate":
|
|
33
|
+
raise capo_cloudfront.errors.illegal_update.IllegalUpdate.from_xml(root)
|
|
34
|
+
case "InvalidArgument":
|
|
35
|
+
raise capo_cloudfront.errors.invalid_argument.InvalidArgument.from_xml(root)
|
|
36
|
+
case "NoSuchDistribution":
|
|
37
|
+
raise capo_cloudfront.errors.no_such_distribution.NoSuchDistribution.from_xml(
|
|
38
|
+
root
|
|
39
|
+
)
|
|
40
|
+
case "TooManyDistributionCNAMEs":
|
|
41
|
+
raise capo_cloudfront.errors.too_many_distribution_cnam_es.TooManyDistributionCNAMEs.from_xml(
|
|
42
|
+
root
|
|
43
|
+
)
|
|
44
|
+
case _:
|
|
45
|
+
raise UnknownServiceError(code=code, message=message, response=response)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def get_signer(
|
|
49
|
+
options: AsyncOperationOptions | OperationOptions,
|
|
50
|
+
auth_schemes: list[dict[str, Any]] | None = None,
|
|
51
|
+
) -> capo_cloudfront._auth._signers.Signer | None:
|
|
52
|
+
name_to_schema = {s["name"]: s for s in (auth_schemes or [])} # noqa: F841
|
|
53
|
+
if options.credentials_provider is not None:
|
|
54
|
+
sigv4_config = (
|
|
55
|
+
name_to_schema.get("sigv4")
|
|
56
|
+
or name_to_schema.get("sigv4a")
|
|
57
|
+
or name_to_schema.get("sigv4-s3express")
|
|
58
|
+
or capo_cloudfront._auth._sigv4.build_sigv4_auth_scheme(
|
|
59
|
+
"cloudfront", options.region
|
|
60
|
+
)
|
|
61
|
+
)
|
|
62
|
+
if sigv4_config is not None:
|
|
63
|
+
return capo_cloudfront._auth._signers.SigV4Signer(
|
|
64
|
+
options.credentials_provider, auth_scheme=sigv4_config
|
|
65
|
+
)
|
|
66
|
+
raise RuntimeError("Auth was not resolved")
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def build_request(
|
|
70
|
+
options: OperationOptions | AsyncOperationOptions,
|
|
71
|
+
input_: capo_cloudfront.types.associate_alias_request.AssociateAliasRequest,
|
|
72
|
+
) -> zapros.Request:
|
|
73
|
+
endpoint = resolve(
|
|
74
|
+
EndpointParams(
|
|
75
|
+
UseDualStack=options.use_dual_stack,
|
|
76
|
+
UseFIPS=options.use_fips,
|
|
77
|
+
Endpoint=options.endpoint,
|
|
78
|
+
Region=options.region,
|
|
79
|
+
)
|
|
80
|
+
) # noqa: F841
|
|
81
|
+
url = (
|
|
82
|
+
endpoint.url.rstrip("/")
|
|
83
|
+
+ "/2020-05-31/distribution/{TargetDistributionId}/associate-alias"
|
|
84
|
+
)
|
|
85
|
+
url = url.replace(
|
|
86
|
+
"{TargetDistributionId}", quote(str(input_["target_distribution_id"]), safe="")
|
|
87
|
+
)
|
|
88
|
+
params: dict[str, str] = {}
|
|
89
|
+
if "alias" in input_:
|
|
90
|
+
params["Alias"] = str(input_["alias"])
|
|
91
|
+
headers: dict[str, str] = {k: ", ".join(v) for k, v in endpoint.headers.items()}
|
|
92
|
+
body: bytes | None = b""
|
|
93
|
+
signer = get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
|
|
94
|
+
normalized_url = zapros.URL(url)
|
|
95
|
+
normalized_url.search_params.update(params)
|
|
96
|
+
return zapros.Request(
|
|
97
|
+
normalized_url, "PUT", headers=headers, body=body, context={"signer": signer}
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
def associate_alias(
|
|
102
|
+
options: OperationOptions,
|
|
103
|
+
input_: capo_cloudfront.types.associate_alias_request.AssociateAliasRequest,
|
|
104
|
+
) -> tuple[None, zapros.Response]:
|
|
105
|
+
response = options.client.handler.handle(build_request(options, input_))
|
|
106
|
+
try:
|
|
107
|
+
if response.status >= 400:
|
|
108
|
+
response.read()
|
|
109
|
+
handle_error(response)
|
|
110
|
+
return None, response
|
|
111
|
+
except BaseException:
|
|
112
|
+
response.close()
|
|
113
|
+
raise
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
async def async_associate_alias(
|
|
117
|
+
options: AsyncOperationOptions,
|
|
118
|
+
input_: capo_cloudfront.types.associate_alias_request.AssociateAliasRequest,
|
|
119
|
+
) -> tuple[None, zapros.Response]:
|
|
120
|
+
response = await options.client.handler.ahandle(build_request(options, input_))
|
|
121
|
+
try:
|
|
122
|
+
if response.status >= 400:
|
|
123
|
+
await response.aread()
|
|
124
|
+
handle_error(response)
|
|
125
|
+
return None, response
|
|
126
|
+
except BaseException:
|
|
127
|
+
await response.aclose()
|
|
128
|
+
raise
|