Core: Add RequestId-header to all responses (#7210)
This commit is contained in:
parent
168b869350
commit
1f1e0caca3
@ -1,6 +1,7 @@
|
|||||||
|
from moto.core.common_types import TYPE_RESPONSE
|
||||||
from moto.core.responses import BaseResponse
|
from moto.core.responses import BaseResponse
|
||||||
from moto.core.utils import iso_8601_datetime_with_milliseconds
|
from moto.core.utils import iso_8601_datetime_with_milliseconds
|
||||||
from moto.utilities.aws_headers import amz_crc32, amzn_request_id
|
from moto.utilities.aws_headers import amz_crc32
|
||||||
|
|
||||||
from .models import AutoScalingBackend, autoscaling_backends
|
from .models import AutoScalingBackend, autoscaling_backends
|
||||||
|
|
||||||
@ -13,6 +14,10 @@ class AutoScalingResponse(BaseResponse):
|
|||||||
def autoscaling_backend(self) -> AutoScalingBackend:
|
def autoscaling_backend(self) -> AutoScalingBackend:
|
||||||
return autoscaling_backends[self.current_account][self.region]
|
return autoscaling_backends[self.current_account][self.region]
|
||||||
|
|
||||||
|
@amz_crc32
|
||||||
|
def call_action(self) -> TYPE_RESPONSE:
|
||||||
|
return super().call_action()
|
||||||
|
|
||||||
def create_launch_configuration(self) -> str:
|
def create_launch_configuration(self) -> str:
|
||||||
instance_monitoring_string = self._get_param("InstanceMonitoring.Enabled")
|
instance_monitoring_string = self._get_param("InstanceMonitoring.Enabled")
|
||||||
if instance_monitoring_string == "true":
|
if instance_monitoring_string == "true":
|
||||||
@ -139,8 +144,6 @@ class AutoScalingResponse(BaseResponse):
|
|||||||
template = self.response_template(DESCRIBE_SCALING_ACTIVITIES_TEMPLATE)
|
template = self.response_template(DESCRIBE_SCALING_ACTIVITIES_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amz_crc32
|
|
||||||
@amzn_request_id
|
|
||||||
def attach_instances(self) -> str:
|
def attach_instances(self) -> str:
|
||||||
group_name = self._get_param("AutoScalingGroupName")
|
group_name = self._get_param("AutoScalingGroupName")
|
||||||
instance_ids = self._get_multi_param("InstanceIds.member")
|
instance_ids = self._get_multi_param("InstanceIds.member")
|
||||||
@ -148,8 +151,6 @@ class AutoScalingResponse(BaseResponse):
|
|||||||
template = self.response_template(ATTACH_INSTANCES_TEMPLATE)
|
template = self.response_template(ATTACH_INSTANCES_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amz_crc32
|
|
||||||
@amzn_request_id
|
|
||||||
def set_instance_health(self) -> str:
|
def set_instance_health(self) -> str:
|
||||||
instance_id = self._get_param("InstanceId")
|
instance_id = self._get_param("InstanceId")
|
||||||
health_status = self._get_param("HealthStatus")
|
health_status = self._get_param("HealthStatus")
|
||||||
@ -159,8 +160,6 @@ class AutoScalingResponse(BaseResponse):
|
|||||||
template = self.response_template(SET_INSTANCE_HEALTH_TEMPLATE)
|
template = self.response_template(SET_INSTANCE_HEALTH_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amz_crc32
|
|
||||||
@amzn_request_id
|
|
||||||
def detach_instances(self) -> str:
|
def detach_instances(self) -> str:
|
||||||
group_name = self._get_param("AutoScalingGroupName")
|
group_name = self._get_param("AutoScalingGroupName")
|
||||||
instance_ids = self._get_multi_param("InstanceIds.member")
|
instance_ids = self._get_multi_param("InstanceIds.member")
|
||||||
@ -175,8 +174,6 @@ class AutoScalingResponse(BaseResponse):
|
|||||||
template = self.response_template(DETACH_INSTANCES_TEMPLATE)
|
template = self.response_template(DETACH_INSTANCES_TEMPLATE)
|
||||||
return template.render(detached_instances=detached_instances)
|
return template.render(detached_instances=detached_instances)
|
||||||
|
|
||||||
@amz_crc32
|
|
||||||
@amzn_request_id
|
|
||||||
def attach_load_balancer_target_groups(self) -> str:
|
def attach_load_balancer_target_groups(self) -> str:
|
||||||
group_name = self._get_param("AutoScalingGroupName")
|
group_name = self._get_param("AutoScalingGroupName")
|
||||||
target_group_arns = self._get_multi_param("TargetGroupARNs.member")
|
target_group_arns = self._get_multi_param("TargetGroupARNs.member")
|
||||||
@ -187,8 +184,6 @@ class AutoScalingResponse(BaseResponse):
|
|||||||
template = self.response_template(ATTACH_LOAD_BALANCER_TARGET_GROUPS_TEMPLATE)
|
template = self.response_template(ATTACH_LOAD_BALANCER_TARGET_GROUPS_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amz_crc32
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_load_balancer_target_groups(self) -> str:
|
def describe_load_balancer_target_groups(self) -> str:
|
||||||
group_name = self._get_param("AutoScalingGroupName")
|
group_name = self._get_param("AutoScalingGroupName")
|
||||||
target_group_arns = (
|
target_group_arns = (
|
||||||
@ -197,8 +192,6 @@ class AutoScalingResponse(BaseResponse):
|
|||||||
template = self.response_template(DESCRIBE_LOAD_BALANCER_TARGET_GROUPS)
|
template = self.response_template(DESCRIBE_LOAD_BALANCER_TARGET_GROUPS)
|
||||||
return template.render(target_group_arns=target_group_arns)
|
return template.render(target_group_arns=target_group_arns)
|
||||||
|
|
||||||
@amz_crc32
|
|
||||||
@amzn_request_id
|
|
||||||
def detach_load_balancer_target_groups(self) -> str:
|
def detach_load_balancer_target_groups(self) -> str:
|
||||||
group_name = self._get_param("AutoScalingGroupName")
|
group_name = self._get_param("AutoScalingGroupName")
|
||||||
target_group_arns = self._get_multi_param("TargetGroupARNs.member")
|
target_group_arns = self._get_multi_param("TargetGroupARNs.member")
|
||||||
@ -347,8 +340,6 @@ class AutoScalingResponse(BaseResponse):
|
|||||||
template = self.response_template(EXECUTE_POLICY_TEMPLATE)
|
template = self.response_template(EXECUTE_POLICY_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amz_crc32
|
|
||||||
@amzn_request_id
|
|
||||||
def attach_load_balancers(self) -> str:
|
def attach_load_balancers(self) -> str:
|
||||||
group_name = self._get_param("AutoScalingGroupName")
|
group_name = self._get_param("AutoScalingGroupName")
|
||||||
load_balancer_names = self._get_multi_param("LoadBalancerNames.member")
|
load_balancer_names = self._get_multi_param("LoadBalancerNames.member")
|
||||||
@ -356,16 +347,12 @@ class AutoScalingResponse(BaseResponse):
|
|||||||
template = self.response_template(ATTACH_LOAD_BALANCERS_TEMPLATE)
|
template = self.response_template(ATTACH_LOAD_BALANCERS_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amz_crc32
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_load_balancers(self) -> str:
|
def describe_load_balancers(self) -> str:
|
||||||
group_name = self._get_param("AutoScalingGroupName")
|
group_name = self._get_param("AutoScalingGroupName")
|
||||||
load_balancers = self.autoscaling_backend.describe_load_balancers(group_name)
|
load_balancers = self.autoscaling_backend.describe_load_balancers(group_name)
|
||||||
template = self.response_template(DESCRIBE_LOAD_BALANCERS_TEMPLATE)
|
template = self.response_template(DESCRIBE_LOAD_BALANCERS_TEMPLATE)
|
||||||
return template.render(load_balancers=load_balancers)
|
return template.render(load_balancers=load_balancers)
|
||||||
|
|
||||||
@amz_crc32
|
|
||||||
@amzn_request_id
|
|
||||||
def detach_load_balancers(self) -> str:
|
def detach_load_balancers(self) -> str:
|
||||||
group_name = self._get_param("AutoScalingGroupName")
|
group_name = self._get_param("AutoScalingGroupName")
|
||||||
load_balancer_names = self._get_multi_param("LoadBalancerNames.member")
|
load_balancer_names = self._get_multi_param("LoadBalancerNames.member")
|
||||||
@ -373,8 +360,6 @@ class AutoScalingResponse(BaseResponse):
|
|||||||
template = self.response_template(DETACH_LOAD_BALANCERS_TEMPLATE)
|
template = self.response_template(DETACH_LOAD_BALANCERS_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amz_crc32
|
|
||||||
@amzn_request_id
|
|
||||||
def enter_standby(self) -> str:
|
def enter_standby(self) -> str:
|
||||||
group_name = self._get_param("AutoScalingGroupName")
|
group_name = self._get_param("AutoScalingGroupName")
|
||||||
instance_ids = self._get_multi_param("InstanceIds.member")
|
instance_ids = self._get_multi_param("InstanceIds.member")
|
||||||
@ -399,8 +384,6 @@ class AutoScalingResponse(BaseResponse):
|
|||||||
timestamp=iso_8601_datetime_with_milliseconds(),
|
timestamp=iso_8601_datetime_with_milliseconds(),
|
||||||
)
|
)
|
||||||
|
|
||||||
@amz_crc32
|
|
||||||
@amzn_request_id
|
|
||||||
def exit_standby(self) -> str:
|
def exit_standby(self) -> str:
|
||||||
group_name = self._get_param("AutoScalingGroupName")
|
group_name = self._get_param("AutoScalingGroupName")
|
||||||
instance_ids = self._get_multi_param("InstanceIds.member")
|
instance_ids = self._get_multi_param("InstanceIds.member")
|
||||||
@ -445,8 +428,6 @@ class AutoScalingResponse(BaseResponse):
|
|||||||
template = self.response_template(SET_INSTANCE_PROTECTION_TEMPLATE)
|
template = self.response_template(SET_INSTANCE_PROTECTION_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amz_crc32
|
|
||||||
@amzn_request_id
|
|
||||||
def terminate_instance_in_auto_scaling_group(self) -> str:
|
def terminate_instance_in_auto_scaling_group(self) -> str:
|
||||||
instance_id = self._get_param("InstanceId")
|
instance_id = self._get_param("InstanceId")
|
||||||
should_decrement_string = self._get_param("ShouldDecrementDesiredCapacity")
|
should_decrement_string = self._get_param("ShouldDecrementDesiredCapacity")
|
||||||
|
@ -5,7 +5,7 @@ from urllib.parse import unquote
|
|||||||
|
|
||||||
from moto.core.responses import TYPE_RESPONSE, BaseResponse
|
from moto.core.responses import TYPE_RESPONSE, BaseResponse
|
||||||
from moto.core.utils import path_url
|
from moto.core.utils import path_url
|
||||||
from moto.utilities.aws_headers import amz_crc32, amzn_request_id
|
from moto.utilities.aws_headers import amz_crc32
|
||||||
|
|
||||||
from .exceptions import (
|
from .exceptions import (
|
||||||
FunctionAlreadyExists,
|
FunctionAlreadyExists,
|
||||||
@ -129,9 +129,8 @@ class LambdaResponse(BaseResponse):
|
|||||||
raise ValueError("Cannot handle request")
|
raise ValueError("Cannot handle request")
|
||||||
|
|
||||||
@amz_crc32
|
@amz_crc32
|
||||||
@amzn_request_id
|
def invoke(
|
||||||
def invoke( # type: ignore
|
self, request: Any, full_url: str, headers: Any
|
||||||
self, request=None, full_url="", headers=None
|
|
||||||
) -> Tuple[int, Dict[str, str], Union[str, bytes]]:
|
) -> Tuple[int, Dict[str, str], Union[str, bytes]]:
|
||||||
self.setup_class(request, full_url, headers)
|
self.setup_class(request, full_url, headers)
|
||||||
if request.method == "POST":
|
if request.method == "POST":
|
||||||
@ -140,7 +139,6 @@ class LambdaResponse(BaseResponse):
|
|||||||
raise ValueError("Cannot handle request")
|
raise ValueError("Cannot handle request")
|
||||||
|
|
||||||
@amz_crc32
|
@amz_crc32
|
||||||
@amzn_request_id
|
|
||||||
def invoke_async(
|
def invoke_async(
|
||||||
self, request: Any, full_url: str, headers: Any
|
self, request: Any, full_url: str, headers: Any
|
||||||
) -> Tuple[int, Dict[str, str], Union[str, bytes]]:
|
) -> Tuple[int, Dict[str, str], Union[str, bytes]]:
|
||||||
|
@ -3,7 +3,6 @@ from urllib.parse import unquote, urlsplit
|
|||||||
|
|
||||||
from moto.core.models import default_user_config
|
from moto.core.models import default_user_config
|
||||||
from moto.core.responses import BaseResponse
|
from moto.core.responses import BaseResponse
|
||||||
from moto.utilities.aws_headers import amzn_request_id
|
|
||||||
|
|
||||||
from .models import BatchBackend, batch_backends
|
from .models import BatchBackend, batch_backends
|
||||||
|
|
||||||
@ -25,8 +24,6 @@ class BatchResponse(BaseResponse):
|
|||||||
# Return element after the /v1/*
|
# Return element after the /v1/*
|
||||||
return urlsplit(self.uri).path.lstrip("/").split("/")[1]
|
return urlsplit(self.uri).path.lstrip("/").split("/")[1]
|
||||||
|
|
||||||
# CreateComputeEnvironment
|
|
||||||
@amzn_request_id
|
|
||||||
def createcomputeenvironment(self) -> str:
|
def createcomputeenvironment(self) -> str:
|
||||||
compute_env_name = self._get_param("computeEnvironmentName")
|
compute_env_name = self._get_param("computeEnvironmentName")
|
||||||
compute_resource = self._get_param("computeResources")
|
compute_resource = self._get_param("computeResources")
|
||||||
@ -46,8 +43,6 @@ class BatchResponse(BaseResponse):
|
|||||||
|
|
||||||
return json.dumps(result)
|
return json.dumps(result)
|
||||||
|
|
||||||
# DescribeComputeEnvironments
|
|
||||||
@amzn_request_id
|
|
||||||
def describecomputeenvironments(self) -> str:
|
def describecomputeenvironments(self) -> str:
|
||||||
compute_environments = self._get_param("computeEnvironments")
|
compute_environments = self._get_param("computeEnvironments")
|
||||||
|
|
||||||
@ -56,8 +51,6 @@ class BatchResponse(BaseResponse):
|
|||||||
result = {"computeEnvironments": envs}
|
result = {"computeEnvironments": envs}
|
||||||
return json.dumps(result)
|
return json.dumps(result)
|
||||||
|
|
||||||
# DeleteComputeEnvironment
|
|
||||||
@amzn_request_id
|
|
||||||
def deletecomputeenvironment(self) -> str:
|
def deletecomputeenvironment(self) -> str:
|
||||||
compute_environment = self._get_param("computeEnvironment")
|
compute_environment = self._get_param("computeEnvironment")
|
||||||
|
|
||||||
@ -65,8 +58,6 @@ class BatchResponse(BaseResponse):
|
|||||||
|
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
# UpdateComputeEnvironment
|
|
||||||
@amzn_request_id
|
|
||||||
def updatecomputeenvironment(self) -> str:
|
def updatecomputeenvironment(self) -> str:
|
||||||
compute_env_name = self._get_param("computeEnvironment")
|
compute_env_name = self._get_param("computeEnvironment")
|
||||||
compute_resource = self._get_param("computeResources")
|
compute_resource = self._get_param("computeResources")
|
||||||
@ -84,8 +75,6 @@ class BatchResponse(BaseResponse):
|
|||||||
|
|
||||||
return json.dumps(result)
|
return json.dumps(result)
|
||||||
|
|
||||||
# CreateJobQueue
|
|
||||||
@amzn_request_id
|
|
||||||
def createjobqueue(self) -> str:
|
def createjobqueue(self) -> str:
|
||||||
compute_env_order = self._get_param("computeEnvironmentOrder")
|
compute_env_order = self._get_param("computeEnvironmentOrder")
|
||||||
queue_name = self._get_param("jobQueueName")
|
queue_name = self._get_param("jobQueueName")
|
||||||
@ -107,8 +96,6 @@ class BatchResponse(BaseResponse):
|
|||||||
|
|
||||||
return json.dumps(result)
|
return json.dumps(result)
|
||||||
|
|
||||||
# DescribeJobQueues
|
|
||||||
@amzn_request_id
|
|
||||||
def describejobqueues(self) -> str:
|
def describejobqueues(self) -> str:
|
||||||
job_queues = self._get_param("jobQueues")
|
job_queues = self._get_param("jobQueues")
|
||||||
|
|
||||||
@ -117,8 +104,6 @@ class BatchResponse(BaseResponse):
|
|||||||
result = {"jobQueues": queues}
|
result = {"jobQueues": queues}
|
||||||
return json.dumps(result)
|
return json.dumps(result)
|
||||||
|
|
||||||
# UpdateJobQueue
|
|
||||||
@amzn_request_id
|
|
||||||
def updatejobqueue(self) -> str:
|
def updatejobqueue(self) -> str:
|
||||||
compute_env_order = self._get_param("computeEnvironmentOrder")
|
compute_env_order = self._get_param("computeEnvironmentOrder")
|
||||||
queue_name = self._get_param("jobQueue")
|
queue_name = self._get_param("jobQueue")
|
||||||
@ -138,8 +123,6 @@ class BatchResponse(BaseResponse):
|
|||||||
|
|
||||||
return json.dumps(result)
|
return json.dumps(result)
|
||||||
|
|
||||||
# DeleteJobQueue
|
|
||||||
@amzn_request_id
|
|
||||||
def deletejobqueue(self) -> str:
|
def deletejobqueue(self) -> str:
|
||||||
queue_name = self._get_param("jobQueue")
|
queue_name = self._get_param("jobQueue")
|
||||||
|
|
||||||
@ -147,8 +130,6 @@ class BatchResponse(BaseResponse):
|
|||||||
|
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
# RegisterJobDefinition
|
|
||||||
@amzn_request_id
|
|
||||||
def registerjobdefinition(self) -> str:
|
def registerjobdefinition(self) -> str:
|
||||||
container_properties = self._get_param("containerProperties")
|
container_properties = self._get_param("containerProperties")
|
||||||
node_properties = self._get_param("nodeProperties")
|
node_properties = self._get_param("nodeProperties")
|
||||||
@ -181,8 +162,6 @@ class BatchResponse(BaseResponse):
|
|||||||
|
|
||||||
return json.dumps(result)
|
return json.dumps(result)
|
||||||
|
|
||||||
# DeregisterJobDefinition
|
|
||||||
@amzn_request_id
|
|
||||||
def deregisterjobdefinition(self) -> str:
|
def deregisterjobdefinition(self) -> str:
|
||||||
queue_name = self._get_param("jobDefinition")
|
queue_name = self._get_param("jobDefinition")
|
||||||
|
|
||||||
@ -190,8 +169,6 @@ class BatchResponse(BaseResponse):
|
|||||||
|
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
# DescribeJobDefinitions
|
|
||||||
@amzn_request_id
|
|
||||||
def describejobdefinitions(self) -> str:
|
def describejobdefinitions(self) -> str:
|
||||||
job_def_name = self._get_param("jobDefinitionName")
|
job_def_name = self._get_param("jobDefinitionName")
|
||||||
job_def_list = self._get_param("jobDefinitions")
|
job_def_list = self._get_param("jobDefinitions")
|
||||||
@ -204,8 +181,6 @@ class BatchResponse(BaseResponse):
|
|||||||
result = {"jobDefinitions": [job.describe() for job in job_defs]}
|
result = {"jobDefinitions": [job.describe() for job in job_defs]}
|
||||||
return json.dumps(result)
|
return json.dumps(result)
|
||||||
|
|
||||||
# SubmitJob
|
|
||||||
@amzn_request_id
|
|
||||||
def submitjob(self) -> str:
|
def submitjob(self) -> str:
|
||||||
container_overrides = self._get_param("containerOverrides")
|
container_overrides = self._get_param("containerOverrides")
|
||||||
depends_on = self._get_param("dependsOn")
|
depends_on = self._get_param("dependsOn")
|
||||||
@ -229,15 +204,11 @@ class BatchResponse(BaseResponse):
|
|||||||
|
|
||||||
return json.dumps(result)
|
return json.dumps(result)
|
||||||
|
|
||||||
# DescribeJobs
|
|
||||||
@amzn_request_id
|
|
||||||
def describejobs(self) -> str:
|
def describejobs(self) -> str:
|
||||||
jobs = self._get_param("jobs")
|
jobs = self._get_param("jobs")
|
||||||
|
|
||||||
return json.dumps({"jobs": self.batch_backend.describe_jobs(jobs)})
|
return json.dumps({"jobs": self.batch_backend.describe_jobs(jobs)})
|
||||||
|
|
||||||
# ListJobs
|
|
||||||
@amzn_request_id
|
|
||||||
def listjobs(self) -> str:
|
def listjobs(self) -> str:
|
||||||
job_queue = self._get_param("jobQueue")
|
job_queue = self._get_param("jobQueue")
|
||||||
job_status = self._get_param("jobStatus")
|
job_status = self._get_param("jobStatus")
|
||||||
@ -248,8 +219,6 @@ class BatchResponse(BaseResponse):
|
|||||||
result = {"jobSummaryList": [job.describe_short() for job in jobs]}
|
result = {"jobSummaryList": [job.describe_short() for job in jobs]}
|
||||||
return json.dumps(result)
|
return json.dumps(result)
|
||||||
|
|
||||||
# TerminateJob
|
|
||||||
@amzn_request_id
|
|
||||||
def terminatejob(self) -> str:
|
def terminatejob(self) -> str:
|
||||||
job_id = self._get_param("jobId")
|
job_id = self._get_param("jobId")
|
||||||
reason = self._get_param("reason")
|
reason = self._get_param("reason")
|
||||||
@ -258,8 +227,6 @@ class BatchResponse(BaseResponse):
|
|||||||
|
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
# CancelJob
|
|
||||||
@amzn_request_id
|
|
||||||
def canceljob(self) -> str:
|
def canceljob(self) -> str:
|
||||||
job_id = self._get_param("jobId")
|
job_id = self._get_param("jobId")
|
||||||
reason = self._get_param("reason")
|
reason = self._get_param("reason")
|
||||||
@ -267,7 +234,6 @@ class BatchResponse(BaseResponse):
|
|||||||
|
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def tags(self) -> str:
|
def tags(self) -> str:
|
||||||
resource_arn = unquote(self.path).split("/v1/tags/")[-1]
|
resource_arn = unquote(self.path).split("/v1/tags/")[-1]
|
||||||
tags = self._get_param("tags")
|
tags = self._get_param("tags")
|
||||||
@ -281,7 +247,6 @@ class BatchResponse(BaseResponse):
|
|||||||
self.batch_backend.untag_resource(resource_arn, tag_keys) # type: ignore[arg-type]
|
self.batch_backend.untag_resource(resource_arn, tag_keys) # type: ignore[arg-type]
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def createschedulingpolicy(self) -> str:
|
def createschedulingpolicy(self) -> str:
|
||||||
body = json.loads(self.body)
|
body = json.loads(self.body)
|
||||||
name = body.get("name")
|
name = body.get("name")
|
||||||
@ -292,26 +257,22 @@ class BatchResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return json.dumps(policy.to_dict(create=True))
|
return json.dumps(policy.to_dict(create=True))
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describeschedulingpolicies(self) -> str:
|
def describeschedulingpolicies(self) -> str:
|
||||||
body = json.loads(self.body)
|
body = json.loads(self.body)
|
||||||
arns = body.get("arns") or []
|
arns = body.get("arns") or []
|
||||||
policies = self.batch_backend.describe_scheduling_policies(arns)
|
policies = self.batch_backend.describe_scheduling_policies(arns)
|
||||||
return json.dumps({"schedulingPolicies": [pol.to_dict() for pol in policies]})
|
return json.dumps({"schedulingPolicies": [pol.to_dict() for pol in policies]})
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def listschedulingpolicies(self) -> str:
|
def listschedulingpolicies(self) -> str:
|
||||||
arns = self.batch_backend.list_scheduling_policies()
|
arns = self.batch_backend.list_scheduling_policies()
|
||||||
return json.dumps({"schedulingPolicies": [{"arn": arn} for arn in arns]})
|
return json.dumps({"schedulingPolicies": [{"arn": arn} for arn in arns]})
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def deleteschedulingpolicy(self) -> str:
|
def deleteschedulingpolicy(self) -> str:
|
||||||
body = json.loads(self.body)
|
body = json.loads(self.body)
|
||||||
arn = body["arn"]
|
arn = body["arn"]
|
||||||
self.batch_backend.delete_scheduling_policy(arn)
|
self.batch_backend.delete_scheduling_policy(arn)
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def updateschedulingpolicy(self) -> str:
|
def updateschedulingpolicy(self) -> str:
|
||||||
body = json.loads(self.body)
|
body = json.loads(self.body)
|
||||||
arn = body.get("arn")
|
arn = body.get("arn")
|
||||||
|
@ -8,7 +8,6 @@ from yaml.scanner import ScannerError # pylint:disable=c-extension-no-member
|
|||||||
|
|
||||||
from moto.core.responses import BaseResponse
|
from moto.core.responses import BaseResponse
|
||||||
from moto.s3.exceptions import S3ClientError
|
from moto.s3.exceptions import S3ClientError
|
||||||
from moto.utilities.aws_headers import amzn_request_id
|
|
||||||
|
|
||||||
from .exceptions import MissingParameterError, ValidationError
|
from .exceptions import MissingParameterError, ValidationError
|
||||||
from .models import CloudFormationBackend, FakeStack, cloudformation_backends
|
from .models import CloudFormationBackend, FakeStack, cloudformation_backends
|
||||||
@ -153,7 +152,6 @@ class CloudFormationResponse(BaseResponse):
|
|||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_change_set(self) -> str:
|
def create_change_set(self) -> str:
|
||||||
stack_name = self._get_param("StackName")
|
stack_name = self._get_param("StackName")
|
||||||
change_set_name = self._get_param("ChangeSetName")
|
change_set_name = self._get_param("ChangeSetName")
|
||||||
@ -220,7 +218,6 @@ class CloudFormationResponse(BaseResponse):
|
|||||||
template = self.response_template(DESCRIBE_CHANGE_SET_RESPONSE_TEMPLATE)
|
template = self.response_template(DESCRIBE_CHANGE_SET_RESPONSE_TEMPLATE)
|
||||||
return template.render(change_set=change_set)
|
return template.render(change_set=change_set)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def execute_change_set(self) -> str:
|
def execute_change_set(self) -> str:
|
||||||
stack_name = self._get_param("StackName")
|
stack_name = self._get_param("StackName")
|
||||||
change_set_name = self._get_param("ChangeSetName")
|
change_set_name = self._get_param("ChangeSetName")
|
||||||
|
@ -4,7 +4,6 @@ from typing import Dict, Iterable, List, Tuple, Union
|
|||||||
from dateutil.parser import parse as dtparse
|
from dateutil.parser import parse as dtparse
|
||||||
|
|
||||||
from moto.core.responses import BaseResponse
|
from moto.core.responses import BaseResponse
|
||||||
from moto.utilities.aws_headers import amzn_request_id
|
|
||||||
|
|
||||||
from .exceptions import InvalidParameterCombination, ValidationError
|
from .exceptions import InvalidParameterCombination, ValidationError
|
||||||
from .models import (
|
from .models import (
|
||||||
@ -32,7 +31,6 @@ class CloudWatchResponse(BaseResponse):
|
|||||||
template = self.response_template(ERROR_RESPONSE_TEMPLATE)
|
template = self.response_template(ERROR_RESPONSE_TEMPLATE)
|
||||||
return template.render(code=code, message=message), dict(status=status)
|
return template.render(code=code, message=message), dict(status=status)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def put_metric_alarm(self) -> str:
|
def put_metric_alarm(self) -> str:
|
||||||
name = self._get_param("AlarmName")
|
name = self._get_param("AlarmName")
|
||||||
namespace = self._get_param("Namespace")
|
namespace = self._get_param("Namespace")
|
||||||
@ -132,7 +130,6 @@ class CloudWatchResponse(BaseResponse):
|
|||||||
template = self.response_template(PUT_METRIC_ALARM_TEMPLATE)
|
template = self.response_template(PUT_METRIC_ALARM_TEMPLATE)
|
||||||
return template.render(alarm=alarm)
|
return template.render(alarm=alarm)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_alarms(self) -> str:
|
def describe_alarms(self) -> str:
|
||||||
action_prefix = self._get_param("ActionPrefix")
|
action_prefix = self._get_param("ActionPrefix")
|
||||||
alarm_name_prefix = self._get_param("AlarmNamePrefix")
|
alarm_name_prefix = self._get_param("AlarmNamePrefix")
|
||||||
@ -160,14 +157,12 @@ class CloudWatchResponse(BaseResponse):
|
|||||||
metric_alarms=metric_alarms, composite_alarms=composite_alarms
|
metric_alarms=metric_alarms, composite_alarms=composite_alarms
|
||||||
)
|
)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_alarms(self) -> str:
|
def delete_alarms(self) -> str:
|
||||||
alarm_names = self._get_multi_param("AlarmNames.member")
|
alarm_names = self._get_multi_param("AlarmNames.member")
|
||||||
self.cloudwatch_backend.delete_alarms(alarm_names)
|
self.cloudwatch_backend.delete_alarms(alarm_names)
|
||||||
template = self.response_template(DELETE_METRIC_ALARMS_TEMPLATE)
|
template = self.response_template(DELETE_METRIC_ALARMS_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def put_metric_data(self) -> str:
|
def put_metric_data(self) -> str:
|
||||||
namespace = self._get_param("Namespace")
|
namespace = self._get_param("Namespace")
|
||||||
metric_data = self._get_multi_param("MetricData.member")
|
metric_data = self._get_multi_param("MetricData.member")
|
||||||
@ -175,7 +170,6 @@ class CloudWatchResponse(BaseResponse):
|
|||||||
template = self.response_template(PUT_METRIC_DATA_TEMPLATE)
|
template = self.response_template(PUT_METRIC_DATA_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def get_metric_data(self) -> str:
|
def get_metric_data(self) -> str:
|
||||||
params = self._get_params()
|
params = self._get_params()
|
||||||
start = dtparse(params["StartTime"])
|
start = dtparse(params["StartTime"])
|
||||||
@ -196,7 +190,6 @@ class CloudWatchResponse(BaseResponse):
|
|||||||
template = self.response_template(GET_METRIC_DATA_TEMPLATE)
|
template = self.response_template(GET_METRIC_DATA_TEMPLATE)
|
||||||
return template.render(results=results)
|
return template.render(results=results)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def get_metric_statistics(self) -> str:
|
def get_metric_statistics(self) -> str:
|
||||||
namespace = self._get_param("Namespace")
|
namespace = self._get_param("Namespace")
|
||||||
metric_name = self._get_param("MetricName")
|
metric_name = self._get_param("MetricName")
|
||||||
@ -228,7 +221,6 @@ class CloudWatchResponse(BaseResponse):
|
|||||||
template = self.response_template(GET_METRIC_STATISTICS_TEMPLATE)
|
template = self.response_template(GET_METRIC_STATISTICS_TEMPLATE)
|
||||||
return template.render(label=metric_name, datapoints=datapoints)
|
return template.render(label=metric_name, datapoints=datapoints)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_metrics(self) -> str:
|
def list_metrics(self) -> str:
|
||||||
namespace = self._get_param("Namespace")
|
namespace = self._get_param("Namespace")
|
||||||
metric_name = self._get_param("MetricName")
|
metric_name = self._get_param("MetricName")
|
||||||
@ -240,7 +232,6 @@ class CloudWatchResponse(BaseResponse):
|
|||||||
template = self.response_template(LIST_METRICS_TEMPLATE)
|
template = self.response_template(LIST_METRICS_TEMPLATE)
|
||||||
return template.render(metrics=metrics, next_token=next_token)
|
return template.render(metrics=metrics, next_token=next_token)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_dashboards(self) -> Union[str, ERROR_RESPONSE]:
|
def delete_dashboards(self) -> Union[str, ERROR_RESPONSE]:
|
||||||
dashboards = self._get_multi_param("DashboardNames.member")
|
dashboards = self._get_multi_param("DashboardNames.member")
|
||||||
if dashboards is None:
|
if dashboards is None:
|
||||||
@ -253,7 +244,6 @@ class CloudWatchResponse(BaseResponse):
|
|||||||
template = self.response_template(DELETE_DASHBOARD_TEMPLATE)
|
template = self.response_template(DELETE_DASHBOARD_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_alarm_history(self) -> None:
|
def describe_alarm_history(self) -> None:
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
||||||
@ -268,7 +258,6 @@ class CloudWatchResponse(BaseResponse):
|
|||||||
metric_filtered_alarms.append(alarm)
|
metric_filtered_alarms.append(alarm)
|
||||||
return metric_filtered_alarms
|
return metric_filtered_alarms
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_alarms_for_metric(self) -> str:
|
def describe_alarms_for_metric(self) -> str:
|
||||||
alarms = self.cloudwatch_backend.get_all_alarms()
|
alarms = self.cloudwatch_backend.get_all_alarms()
|
||||||
namespace = self._get_param("Namespace")
|
namespace = self._get_param("Namespace")
|
||||||
@ -277,15 +266,12 @@ class CloudWatchResponse(BaseResponse):
|
|||||||
template = self.response_template(DESCRIBE_METRIC_ALARMS_TEMPLATE)
|
template = self.response_template(DESCRIBE_METRIC_ALARMS_TEMPLATE)
|
||||||
return template.render(alarms=filtered_alarms)
|
return template.render(alarms=filtered_alarms)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def disable_alarm_actions(self) -> str:
|
def disable_alarm_actions(self) -> str:
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def enable_alarm_actions(self) -> str:
|
def enable_alarm_actions(self) -> str:
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def get_dashboard(self) -> Union[str, ERROR_RESPONSE]:
|
def get_dashboard(self) -> Union[str, ERROR_RESPONSE]:
|
||||||
dashboard_name = self._get_param("DashboardName")
|
dashboard_name = self._get_param("DashboardName")
|
||||||
|
|
||||||
@ -296,7 +282,6 @@ class CloudWatchResponse(BaseResponse):
|
|||||||
template = self.response_template(GET_DASHBOARD_TEMPLATE)
|
template = self.response_template(GET_DASHBOARD_TEMPLATE)
|
||||||
return template.render(dashboard=dashboard)
|
return template.render(dashboard=dashboard)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_dashboards(self) -> str:
|
def list_dashboards(self) -> str:
|
||||||
prefix = self._get_param("DashboardNamePrefix", "")
|
prefix = self._get_param("DashboardNamePrefix", "")
|
||||||
|
|
||||||
@ -305,7 +290,6 @@ class CloudWatchResponse(BaseResponse):
|
|||||||
template = self.response_template(LIST_DASHBOARD_RESPONSE)
|
template = self.response_template(LIST_DASHBOARD_RESPONSE)
|
||||||
return template.render(dashboards=dashboards)
|
return template.render(dashboards=dashboards)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def put_dashboard(self) -> Union[str, ERROR_RESPONSE]:
|
def put_dashboard(self) -> Union[str, ERROR_RESPONSE]:
|
||||||
name = self._get_param("DashboardName")
|
name = self._get_param("DashboardName")
|
||||||
body = self._get_param("DashboardBody")
|
body = self._get_param("DashboardBody")
|
||||||
@ -320,7 +304,6 @@ class CloudWatchResponse(BaseResponse):
|
|||||||
template = self.response_template(PUT_DASHBOARD_RESPONSE)
|
template = self.response_template(PUT_DASHBOARD_RESPONSE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def set_alarm_state(self) -> str:
|
def set_alarm_state(self) -> str:
|
||||||
alarm_name = self._get_param("AlarmName")
|
alarm_name = self._get_param("AlarmName")
|
||||||
reason = self._get_param("StateReason")
|
reason = self._get_param("StateReason")
|
||||||
@ -334,7 +317,6 @@ class CloudWatchResponse(BaseResponse):
|
|||||||
template = self.response_template(SET_ALARM_STATE_TEMPLATE)
|
template = self.response_template(SET_ALARM_STATE_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_tags_for_resource(self) -> str:
|
def list_tags_for_resource(self) -> str:
|
||||||
resource_arn = self._get_param("ResourceARN")
|
resource_arn = self._get_param("ResourceARN")
|
||||||
|
|
||||||
@ -343,7 +325,6 @@ class CloudWatchResponse(BaseResponse):
|
|||||||
template = self.response_template(LIST_TAGS_FOR_RESOURCE_TEMPLATE)
|
template = self.response_template(LIST_TAGS_FOR_RESOURCE_TEMPLATE)
|
||||||
return template.render(tags=tags)
|
return template.render(tags=tags)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def tag_resource(self) -> str:
|
def tag_resource(self) -> str:
|
||||||
resource_arn = self._get_param("ResourceARN")
|
resource_arn = self._get_param("ResourceARN")
|
||||||
tags = self._get_multi_param("Tags.member")
|
tags = self._get_multi_param("Tags.member")
|
||||||
@ -353,7 +334,6 @@ class CloudWatchResponse(BaseResponse):
|
|||||||
template = self.response_template(TAG_RESOURCE_TEMPLATE)
|
template = self.response_template(TAG_RESOURCE_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def untag_resource(self) -> str:
|
def untag_resource(self) -> str:
|
||||||
resource_arn = self._get_param("ResourceARN")
|
resource_arn = self._get_param("ResourceARN")
|
||||||
tag_keys = self._get_multi_param("TagKeys.member")
|
tag_keys = self._get_multi_param("TagKeys.member")
|
||||||
|
@ -37,6 +37,7 @@ from moto.core.utils import (
|
|||||||
params_sort_function,
|
params_sort_function,
|
||||||
utcfromtimestamp,
|
utcfromtimestamp,
|
||||||
)
|
)
|
||||||
|
from moto.utilities.aws_headers import gen_amzn_requestid_long
|
||||||
from moto.utilities.utils import load_resource, load_resource_as_bytes
|
from moto.utilities.utils import load_resource, load_resource_as_bytes
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
@ -267,7 +268,15 @@ class BaseResponse(_TemplateEnvironmentMixin, ActionAuthenticatorMixin):
|
|||||||
|
|
||||||
@functools.wraps(to_call) # type: ignore
|
@functools.wraps(to_call) # type: ignore
|
||||||
def _inner(request: Any, full_url: str, headers: Any) -> TYPE_RESPONSE:
|
def _inner(request: Any, full_url: str, headers: Any) -> TYPE_RESPONSE:
|
||||||
return getattr(cls(), to_call.__name__)(request, full_url, headers)
|
response = getattr(cls(), to_call.__name__)(request, full_url, headers)
|
||||||
|
if isinstance(response, str):
|
||||||
|
status = 200
|
||||||
|
body = response
|
||||||
|
headers = {}
|
||||||
|
else:
|
||||||
|
status, headers, body = response
|
||||||
|
headers, body = cls._enrich_response(headers, body)
|
||||||
|
return status, headers, body
|
||||||
|
|
||||||
return _inner
|
return _inner
|
||||||
|
|
||||||
@ -538,7 +547,10 @@ class BaseResponse(_TemplateEnvironmentMixin, ActionAuthenticatorMixin):
|
|||||||
self._authenticate_and_authorize_normal_action(resource)
|
self._authenticate_and_authorize_normal_action(resource)
|
||||||
except HTTPException as http_error:
|
except HTTPException as http_error:
|
||||||
response = http_error.description, dict(status=http_error.code)
|
response = http_error.description, dict(status=http_error.code)
|
||||||
return self._send_response(headers, response)
|
status, headers, body = self._transform_response(headers, response)
|
||||||
|
headers, body = self._enrich_response(headers, body)
|
||||||
|
|
||||||
|
return status, headers, body
|
||||||
|
|
||||||
action = camelcase_to_underscores(self._get_action())
|
action = camelcase_to_underscores(self._get_action())
|
||||||
method_names = method_names_from_class(self.__class__)
|
method_names = method_names_from_class(self.__class__)
|
||||||
@ -555,9 +567,14 @@ class BaseResponse(_TemplateEnvironmentMixin, ActionAuthenticatorMixin):
|
|||||||
response = http_error.description, response_headers # type: ignore[assignment]
|
response = http_error.description, response_headers # type: ignore[assignment]
|
||||||
|
|
||||||
if isinstance(response, str):
|
if isinstance(response, str):
|
||||||
return 200, headers, response
|
status = 200
|
||||||
|
body = response
|
||||||
else:
|
else:
|
||||||
return self._send_response(headers, response)
|
status, headers, body = self._transform_response(headers, response)
|
||||||
|
|
||||||
|
headers, body = self._enrich_response(headers, body)
|
||||||
|
|
||||||
|
return status, headers, body
|
||||||
|
|
||||||
if not action:
|
if not action:
|
||||||
return 404, headers, ""
|
return 404, headers, ""
|
||||||
@ -565,19 +582,33 @@ class BaseResponse(_TemplateEnvironmentMixin, ActionAuthenticatorMixin):
|
|||||||
raise NotImplementedError(f"The {action} action has not been implemented")
|
raise NotImplementedError(f"The {action} action has not been implemented")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _send_response(headers: Dict[str, str], response: Any) -> Tuple[int, Dict[str, str], str]: # type: ignore[misc]
|
def _transform_response(headers: Dict[str, str], response: Any) -> TYPE_RESPONSE: # type: ignore[misc]
|
||||||
if response is None:
|
if response is None:
|
||||||
response = "", {}
|
response = "", {}
|
||||||
if len(response) == 2:
|
if len(response) == 2:
|
||||||
body, new_headers = response
|
body, new_headers = response
|
||||||
else:
|
else:
|
||||||
status, new_headers, body = response
|
status, new_headers, body = response
|
||||||
status = new_headers.get("status", 200)
|
status = int(new_headers.get("status", 200))
|
||||||
headers.update(new_headers)
|
headers.update(new_headers)
|
||||||
|
return status, headers, body
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _enrich_response( # type: ignore[misc]
|
||||||
|
headers: Dict[str, str], body: Any
|
||||||
|
) -> Tuple[Dict[str, str], Any]:
|
||||||
# Cast status to string
|
# Cast status to string
|
||||||
if "status" in headers:
|
if "status" in headers:
|
||||||
headers["status"] = str(headers["status"])
|
headers["status"] = str(headers["status"])
|
||||||
return status, headers, body
|
# add request id
|
||||||
|
request_id = gen_amzn_requestid_long(headers)
|
||||||
|
|
||||||
|
# Update request ID in XML
|
||||||
|
try:
|
||||||
|
body = re.sub(r"(?<=<RequestId>).*(?=<\/RequestId>)", request_id, body)
|
||||||
|
except Exception: # Will just ignore if it cant work
|
||||||
|
pass
|
||||||
|
return headers, body
|
||||||
|
|
||||||
def _get_param(self, param_name: str, if_none: Any = None) -> Any:
|
def _get_param(self, param_name: str, if_none: Any = None) -> Any:
|
||||||
val = self.querystring.get(param_name)
|
val = self.querystring.get(param_name)
|
||||||
|
@ -3,7 +3,6 @@ from typing import Any, Dict
|
|||||||
from urllib.parse import unquote
|
from urllib.parse import unquote
|
||||||
|
|
||||||
from moto.core.responses import BaseResponse
|
from moto.core.responses import BaseResponse
|
||||||
from moto.utilities.aws_headers import amzn_request_id
|
|
||||||
|
|
||||||
from .models import DataBrewBackend, databrew_backends
|
from .models import DataBrewBackend, databrew_backends
|
||||||
|
|
||||||
@ -22,7 +21,6 @@ class DataBrewResponse(BaseResponse):
|
|||||||
def parameters(self) -> Dict[str, Any]: # type: ignore[misc]
|
def parameters(self) -> Dict[str, Any]: # type: ignore[misc]
|
||||||
return json.loads(self.body)
|
return json.loads(self.body)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_recipe(self) -> str:
|
def create_recipe(self) -> str:
|
||||||
# https://docs.aws.amazon.com/databrew/latest/dg/API_CreateRecipe.html
|
# https://docs.aws.amazon.com/databrew/latest/dg/API_CreateRecipe.html
|
||||||
recipe_description = self.parameters.get("Description")
|
recipe_description = self.parameters.get("Description")
|
||||||
@ -35,7 +33,6 @@ class DataBrewResponse(BaseResponse):
|
|||||||
).as_dict()
|
).as_dict()
|
||||||
)
|
)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_recipe_version(self) -> str:
|
def delete_recipe_version(self) -> str:
|
||||||
# https://docs.aws.amazon.com/databrew/latest/dg/API_DeleteRecipeVersion.html
|
# https://docs.aws.amazon.com/databrew/latest/dg/API_DeleteRecipeVersion.html
|
||||||
split_path = self._get_path().strip("/").split("/")
|
split_path = self._get_path().strip("/").split("/")
|
||||||
@ -47,7 +44,6 @@ class DataBrewResponse(BaseResponse):
|
|||||||
def _get_path(self) -> str:
|
def _get_path(self) -> str:
|
||||||
return unquote(self.parsed_url.path)
|
return unquote(self.parsed_url.path)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_recipes(self) -> str:
|
def list_recipes(self) -> str:
|
||||||
# https://docs.aws.amazon.com/databrew/latest/dg/API_ListRecipes.html
|
# https://docs.aws.amazon.com/databrew/latest/dg/API_ListRecipes.html
|
||||||
next_token = self._get_param("NextToken", self._get_param("nextToken"))
|
next_token = self._get_param("NextToken", self._get_param("nextToken"))
|
||||||
@ -71,7 +67,6 @@ class DataBrewResponse(BaseResponse):
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_recipe_versions(self) -> str:
|
def list_recipe_versions(self) -> str:
|
||||||
# https://docs.aws.amazon.com/databrew/latest/dg/API_ListRecipeVersions.html
|
# https://docs.aws.amazon.com/databrew/latest/dg/API_ListRecipeVersions.html
|
||||||
recipe_name = self._get_param("Name", self._get_param("name"))
|
recipe_name = self._get_param("Name", self._get_param("name"))
|
||||||
@ -91,7 +86,6 @@ class DataBrewResponse(BaseResponse):
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def publish_recipe(self) -> str:
|
def publish_recipe(self) -> str:
|
||||||
recipe_name = self._get_path().strip("/").split("/", 2)[1]
|
recipe_name = self._get_path().strip("/").split("/", 2)[1]
|
||||||
recipe_description = self.parameters.get("Description")
|
recipe_description = self.parameters.get("Description")
|
||||||
@ -123,7 +117,6 @@ class DataBrewResponse(BaseResponse):
|
|||||||
|
|
||||||
# region Rulesets
|
# region Rulesets
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_ruleset(self) -> str:
|
def create_ruleset(self) -> str:
|
||||||
ruleset_description = self.parameters.get("Description")
|
ruleset_description = self.parameters.get("Description")
|
||||||
ruleset_rules = self.parameters.get("Rules")
|
ruleset_rules = self.parameters.get("Rules")
|
||||||
@ -162,7 +155,6 @@ class DataBrewResponse(BaseResponse):
|
|||||||
self.databrew_backend.delete_ruleset(ruleset_name)
|
self.databrew_backend.delete_ruleset(ruleset_name)
|
||||||
return json.dumps({"Name": ruleset_name})
|
return json.dumps({"Name": ruleset_name})
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_rulesets(self) -> str:
|
def list_rulesets(self) -> str:
|
||||||
# https://docs.aws.amazon.com/databrew/latest/dg/API_ListRulesets.html
|
# https://docs.aws.amazon.com/databrew/latest/dg/API_ListRulesets.html
|
||||||
next_token = self._get_param("NextToken", self._get_param("nextToken"))
|
next_token = self._get_param("NextToken", self._get_param("nextToken"))
|
||||||
@ -185,7 +177,6 @@ class DataBrewResponse(BaseResponse):
|
|||||||
|
|
||||||
# region Datasets
|
# region Datasets
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_dataset(self) -> str:
|
def create_dataset(self) -> str:
|
||||||
dataset_name = self.parameters.get("Name")
|
dataset_name = self.parameters.get("Name")
|
||||||
dataset_format = self.parameters.get("Format")
|
dataset_format = self.parameters.get("Format")
|
||||||
@ -205,7 +196,6 @@ class DataBrewResponse(BaseResponse):
|
|||||||
).as_dict()
|
).as_dict()
|
||||||
)
|
)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_datasets(self) -> str:
|
def list_datasets(self) -> str:
|
||||||
next_token = self._get_param("NextToken", self._get_param("nextToken"))
|
next_token = self._get_param("NextToken", self._get_param("nextToken"))
|
||||||
max_results = self._get_int_param(
|
max_results = self._get_int_param(
|
||||||
@ -224,7 +214,6 @@ class DataBrewResponse(BaseResponse):
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def update_dataset(self) -> str:
|
def update_dataset(self) -> str:
|
||||||
dataset_name = self._get_path().split("/")[-1]
|
dataset_name = self._get_path().split("/")[-1]
|
||||||
dataset_format = self.parameters.get("Format")
|
dataset_format = self.parameters.get("Format")
|
||||||
@ -243,13 +232,11 @@ class DataBrewResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return json.dumps(dataset.as_dict())
|
return json.dumps(dataset.as_dict())
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_dataset(self) -> str:
|
def delete_dataset(self) -> str:
|
||||||
dataset_name = self._get_path().split("/")[-1]
|
dataset_name = self._get_path().split("/")[-1]
|
||||||
self.databrew_backend.delete_dataset(dataset_name)
|
self.databrew_backend.delete_dataset(dataset_name)
|
||||||
return json.dumps({"Name": dataset_name})
|
return json.dumps({"Name": dataset_name})
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_dataset(self) -> str:
|
def describe_dataset(self) -> str:
|
||||||
dataset_name = self._get_path().split("/")[-1]
|
dataset_name = self._get_path().split("/")[-1]
|
||||||
dataset = self.databrew_backend.describe_dataset(dataset_name)
|
dataset = self.databrew_backend.describe_dataset(dataset_name)
|
||||||
@ -258,7 +245,6 @@ class DataBrewResponse(BaseResponse):
|
|||||||
# endregion
|
# endregion
|
||||||
|
|
||||||
# region Jobs
|
# region Jobs
|
||||||
@amzn_request_id
|
|
||||||
def list_jobs(self) -> str:
|
def list_jobs(self) -> str:
|
||||||
# https://docs.aws.amazon.com/databrew/latest/dg/API_ListJobs.html
|
# https://docs.aws.amazon.com/databrew/latest/dg/API_ListJobs.html
|
||||||
dataset_name = self._get_param("datasetName")
|
dataset_name = self._get_param("datasetName")
|
||||||
@ -291,7 +277,6 @@ class DataBrewResponse(BaseResponse):
|
|||||||
self.databrew_backend.delete_job(job_name)
|
self.databrew_backend.delete_job(job_name)
|
||||||
return json.dumps({"Name": job_name})
|
return json.dumps({"Name": job_name})
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_profile_job(self) -> str:
|
def create_profile_job(self) -> str:
|
||||||
# https://docs.aws.amazon.com/databrew/latest/dg/API_CreateProfileJob.html
|
# https://docs.aws.amazon.com/databrew/latest/dg/API_CreateProfileJob.html
|
||||||
kwargs = {
|
kwargs = {
|
||||||
@ -331,7 +316,6 @@ class DataBrewResponse(BaseResponse):
|
|||||||
}
|
}
|
||||||
return json.dumps(self.databrew_backend.update_profile_job(**kwargs).as_dict())
|
return json.dumps(self.databrew_backend.update_profile_job(**kwargs).as_dict())
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_recipe_job(self) -> str:
|
def create_recipe_job(self) -> str:
|
||||||
# https://docs.aws.amazon.com/databrew/latest/dg/API_CreateRecipeJob.html
|
# https://docs.aws.amazon.com/databrew/latest/dg/API_CreateRecipeJob.html
|
||||||
kwargs = {
|
kwargs = {
|
||||||
@ -353,7 +337,6 @@ class DataBrewResponse(BaseResponse):
|
|||||||
}
|
}
|
||||||
return json.dumps(self.databrew_backend.create_recipe_job(**kwargs).as_dict())
|
return json.dumps(self.databrew_backend.create_recipe_job(**kwargs).as_dict())
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def update_recipe_job(self) -> str:
|
def update_recipe_job(self) -> str:
|
||||||
name = self._get_path().rstrip("/").rsplit("/", 1)[1]
|
name = self._get_path().rstrip("/").rsplit("/", 1)[1]
|
||||||
# https://docs.aws.amazon.com/databrew/latest/dg/API_UpdateRecipeJob.html
|
# https://docs.aws.amazon.com/databrew/latest/dg/API_UpdateRecipeJob.html
|
||||||
|
@ -6,12 +6,11 @@ from typing import Any, Callable, Dict, List, Optional, Union
|
|||||||
|
|
||||||
from moto.core.common_types import TYPE_RESPONSE
|
from moto.core.common_types import TYPE_RESPONSE
|
||||||
from moto.core.responses import BaseResponse
|
from moto.core.responses import BaseResponse
|
||||||
from moto.core.utils import camelcase_to_underscores
|
|
||||||
from moto.dynamodb.models import DynamoDBBackend, Table, dynamodb_backends
|
from moto.dynamodb.models import DynamoDBBackend, Table, dynamodb_backends
|
||||||
from moto.dynamodb.models.utilities import dynamo_json_dump
|
from moto.dynamodb.models.utilities import dynamo_json_dump
|
||||||
from moto.dynamodb.parsing.key_condition_expression import parse_expression
|
from moto.dynamodb.parsing.key_condition_expression import parse_expression
|
||||||
from moto.dynamodb.parsing.reserved_keywords import ReservedKeywords
|
from moto.dynamodb.parsing.reserved_keywords import ReservedKeywords
|
||||||
from moto.utilities.aws_headers import amz_crc32, amzn_request_id
|
from moto.utilities.aws_headers import amz_crc32
|
||||||
|
|
||||||
from .exceptions import (
|
from .exceptions import (
|
||||||
KeyIsEmptyStringException,
|
KeyIsEmptyStringException,
|
||||||
@ -40,10 +39,12 @@ def include_consumed_capacity(
|
|||||||
expected_capacity = handler.body.get("ReturnConsumedCapacity", "NONE")
|
expected_capacity = handler.body.get("ReturnConsumedCapacity", "NONE")
|
||||||
if expected_capacity not in ["NONE", "TOTAL", "INDEXES"]:
|
if expected_capacity not in ["NONE", "TOTAL", "INDEXES"]:
|
||||||
type_ = "ValidationException"
|
type_ = "ValidationException"
|
||||||
|
headers = handler.response_headers.copy()
|
||||||
|
headers["status"] = "400"
|
||||||
message = f"1 validation error detected: Value '{expected_capacity}' at 'returnConsumedCapacity' failed to satisfy constraint: Member must satisfy enum value set: [INDEXES, TOTAL, NONE]"
|
message = f"1 validation error detected: Value '{expected_capacity}' at 'returnConsumedCapacity' failed to satisfy constraint: Member must satisfy enum value set: [INDEXES, TOTAL, NONE]"
|
||||||
return (
|
return (
|
||||||
400,
|
400,
|
||||||
handler.response_headers,
|
headers,
|
||||||
dynamo_json_dump({"__type": type_, "message": message}),
|
dynamo_json_dump({"__type": type_, "message": message}),
|
||||||
)
|
)
|
||||||
table_name = handler.body.get("TableName", "")
|
table_name = handler.body.get("TableName", "")
|
||||||
@ -189,22 +190,9 @@ class DynamoHandler(BaseResponse):
|
|||||||
return dynamodb_backends[self.current_account][self.region]
|
return dynamodb_backends[self.current_account][self.region]
|
||||||
|
|
||||||
@amz_crc32
|
@amz_crc32
|
||||||
@amzn_request_id
|
|
||||||
def call_action(self) -> TYPE_RESPONSE:
|
def call_action(self) -> TYPE_RESPONSE:
|
||||||
self.body = json.loads(self.body or "{}")
|
self.body = json.loads(self.body or "{}")
|
||||||
endpoint = self.get_endpoint_name(self.headers)
|
return super().call_action()
|
||||||
if endpoint:
|
|
||||||
endpoint = camelcase_to_underscores(endpoint)
|
|
||||||
response = getattr(self, endpoint)()
|
|
||||||
if isinstance(response, str):
|
|
||||||
return 200, self.response_headers, response
|
|
||||||
|
|
||||||
else:
|
|
||||||
status_code, new_headers, response_content = response
|
|
||||||
self.response_headers.update(new_headers)
|
|
||||||
return status_code, self.response_headers, response_content
|
|
||||||
else:
|
|
||||||
return 404, self.response_headers, ""
|
|
||||||
|
|
||||||
def list_tables(self) -> str:
|
def list_tables(self) -> str:
|
||||||
body = self.body
|
body = self.body
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
from moto.core.exceptions import RESTError
|
from moto.core.exceptions import RESTError
|
||||||
from moto.core.responses import BaseResponse
|
from moto.core.responses import BaseResponse
|
||||||
from moto.utilities.aws_headers import amzn_request_id
|
|
||||||
|
|
||||||
from .exceptions import ListenerOrBalancerMissingError, TargetGroupNotFoundError
|
from .exceptions import ListenerOrBalancerMissingError, TargetGroupNotFoundError
|
||||||
from .models import ELBv2Backend, elbv2_backends
|
from .models import ELBv2Backend, elbv2_backends
|
||||||
@ -375,7 +374,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
def elbv2_backend(self) -> ELBv2Backend:
|
def elbv2_backend(self) -> ELBv2Backend:
|
||||||
return elbv2_backends[self.current_account][self.region]
|
return elbv2_backends[self.current_account][self.region]
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_load_balancer(self) -> str:
|
def create_load_balancer(self) -> str:
|
||||||
params = self._get_params()
|
params = self._get_params()
|
||||||
load_balancer_name = params.get("Name")
|
load_balancer_name = params.get("Name")
|
||||||
@ -398,7 +396,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(CREATE_LOAD_BALANCER_TEMPLATE)
|
template = self.response_template(CREATE_LOAD_BALANCER_TEMPLATE)
|
||||||
return template.render(load_balancer=load_balancer)
|
return template.render(load_balancer=load_balancer)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_rule(self) -> str:
|
def create_rule(self) -> str:
|
||||||
params = self._get_params()
|
params = self._get_params()
|
||||||
rules = self.elbv2_backend.create_rule(
|
rules = self.elbv2_backend.create_rule(
|
||||||
@ -412,7 +409,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(CREATE_RULE_TEMPLATE)
|
template = self.response_template(CREATE_RULE_TEMPLATE)
|
||||||
return template.render(rules=rules)
|
return template.render(rules=rules)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_target_group(self) -> str:
|
def create_target_group(self) -> str:
|
||||||
params = self._get_params()
|
params = self._get_params()
|
||||||
name = params.get("Name")
|
name = params.get("Name")
|
||||||
@ -456,7 +452,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(CREATE_TARGET_GROUP_TEMPLATE)
|
template = self.response_template(CREATE_TARGET_GROUP_TEMPLATE)
|
||||||
return template.render(target_group=target_group)
|
return template.render(target_group=target_group)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_listener(self) -> str:
|
def create_listener(self) -> str:
|
||||||
params = self._get_params()
|
params = self._get_params()
|
||||||
load_balancer_arn = self._get_param("LoadBalancerArn")
|
load_balancer_arn = self._get_param("LoadBalancerArn")
|
||||||
@ -486,7 +481,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(CREATE_LISTENER_TEMPLATE)
|
template = self.response_template(CREATE_LISTENER_TEMPLATE)
|
||||||
return template.render(listener=listener)
|
return template.render(listener=listener)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_load_balancers(self) -> str:
|
def describe_load_balancers(self) -> str:
|
||||||
arns = self._get_multi_param("LoadBalancerArns.member")
|
arns = self._get_multi_param("LoadBalancerArns.member")
|
||||||
names = self._get_multi_param("Names.member")
|
names = self._get_multi_param("Names.member")
|
||||||
@ -510,7 +504,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(DESCRIBE_LOAD_BALANCERS_TEMPLATE)
|
template = self.response_template(DESCRIBE_LOAD_BALANCERS_TEMPLATE)
|
||||||
return template.render(load_balancers=load_balancers_resp, marker=next_marker)
|
return template.render(load_balancers=load_balancers_resp, marker=next_marker)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_rules(self) -> str:
|
def describe_rules(self) -> str:
|
||||||
listener_arn = self._get_param("ListenerArn")
|
listener_arn = self._get_param("ListenerArn")
|
||||||
rule_arns = (
|
rule_arns = (
|
||||||
@ -539,7 +532,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(DESCRIBE_RULES_TEMPLATE)
|
template = self.response_template(DESCRIBE_RULES_TEMPLATE)
|
||||||
return template.render(rules=rules_resp, marker=next_marker)
|
return template.render(rules=rules_resp, marker=next_marker)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_target_groups(self) -> str:
|
def describe_target_groups(self) -> str:
|
||||||
load_balancer_arn = self._get_param("LoadBalancerArn")
|
load_balancer_arn = self._get_param("LoadBalancerArn")
|
||||||
target_group_arns = self._get_multi_param("TargetGroupArns.member")
|
target_group_arns = self._get_multi_param("TargetGroupArns.member")
|
||||||
@ -551,7 +543,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(DESCRIBE_TARGET_GROUPS_TEMPLATE)
|
template = self.response_template(DESCRIBE_TARGET_GROUPS_TEMPLATE)
|
||||||
return template.render(target_groups=target_groups)
|
return template.render(target_groups=target_groups)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_target_group_attributes(self) -> str:
|
def describe_target_group_attributes(self) -> str:
|
||||||
target_group_arn = self._get_param("TargetGroupArn")
|
target_group_arn = self._get_param("TargetGroupArn")
|
||||||
target_group = self.elbv2_backend.target_groups.get(target_group_arn)
|
target_group = self.elbv2_backend.target_groups.get(target_group_arn)
|
||||||
@ -560,7 +551,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(DESCRIBE_TARGET_GROUP_ATTRIBUTES_TEMPLATE)
|
template = self.response_template(DESCRIBE_TARGET_GROUP_ATTRIBUTES_TEMPLATE)
|
||||||
return template.render(attributes=target_group.attributes)
|
return template.render(attributes=target_group.attributes)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_listeners(self) -> str:
|
def describe_listeners(self) -> str:
|
||||||
load_balancer_arn = self._get_param("LoadBalancerArn")
|
load_balancer_arn = self._get_param("LoadBalancerArn")
|
||||||
listener_arns = self._get_multi_param("ListenerArns.member")
|
listener_arns = self._get_multi_param("ListenerArns.member")
|
||||||
@ -573,35 +563,30 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(DESCRIBE_LISTENERS_TEMPLATE)
|
template = self.response_template(DESCRIBE_LISTENERS_TEMPLATE)
|
||||||
return template.render(listeners=listeners)
|
return template.render(listeners=listeners)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_load_balancer(self) -> str:
|
def delete_load_balancer(self) -> str:
|
||||||
arn = self._get_param("LoadBalancerArn")
|
arn = self._get_param("LoadBalancerArn")
|
||||||
self.elbv2_backend.delete_load_balancer(arn)
|
self.elbv2_backend.delete_load_balancer(arn)
|
||||||
template = self.response_template(DELETE_LOAD_BALANCER_TEMPLATE)
|
template = self.response_template(DELETE_LOAD_BALANCER_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_rule(self) -> str:
|
def delete_rule(self) -> str:
|
||||||
arn = self._get_param("RuleArn")
|
arn = self._get_param("RuleArn")
|
||||||
self.elbv2_backend.delete_rule(arn)
|
self.elbv2_backend.delete_rule(arn)
|
||||||
template = self.response_template(DELETE_RULE_TEMPLATE)
|
template = self.response_template(DELETE_RULE_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_target_group(self) -> str:
|
def delete_target_group(self) -> str:
|
||||||
arn = self._get_param("TargetGroupArn")
|
arn = self._get_param("TargetGroupArn")
|
||||||
self.elbv2_backend.delete_target_group(arn)
|
self.elbv2_backend.delete_target_group(arn)
|
||||||
template = self.response_template(DELETE_TARGET_GROUP_TEMPLATE)
|
template = self.response_template(DELETE_TARGET_GROUP_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_listener(self) -> str:
|
def delete_listener(self) -> str:
|
||||||
arn = self._get_param("ListenerArn")
|
arn = self._get_param("ListenerArn")
|
||||||
self.elbv2_backend.delete_listener(arn)
|
self.elbv2_backend.delete_listener(arn)
|
||||||
template = self.response_template(DELETE_LISTENER_TEMPLATE)
|
template = self.response_template(DELETE_LISTENER_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def modify_rule(self) -> str:
|
def modify_rule(self) -> str:
|
||||||
rule_arn = self._get_param("RuleArn")
|
rule_arn = self._get_param("RuleArn")
|
||||||
params = self._get_params()
|
params = self._get_params()
|
||||||
@ -613,7 +598,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(MODIFY_RULE_TEMPLATE)
|
template = self.response_template(MODIFY_RULE_TEMPLATE)
|
||||||
return template.render(rules=rules)
|
return template.render(rules=rules)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def modify_target_group_attributes(self) -> str:
|
def modify_target_group_attributes(self) -> str:
|
||||||
target_group_arn = self._get_param("TargetGroupArn")
|
target_group_arn = self._get_param("TargetGroupArn")
|
||||||
attrs = self._get_list_prefix("Attributes.member")
|
attrs = self._get_list_prefix("Attributes.member")
|
||||||
@ -623,7 +607,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(MODIFY_TARGET_GROUP_ATTRIBUTES_TEMPLATE)
|
template = self.response_template(MODIFY_TARGET_GROUP_ATTRIBUTES_TEMPLATE)
|
||||||
return template.render(attributes=attributes)
|
return template.render(attributes=attributes)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def register_targets(self) -> str:
|
def register_targets(self) -> str:
|
||||||
target_group_arn = self._get_param("TargetGroupArn")
|
target_group_arn = self._get_param("TargetGroupArn")
|
||||||
targets = self._get_list_prefix("Targets.member")
|
targets = self._get_list_prefix("Targets.member")
|
||||||
@ -632,7 +615,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(REGISTER_TARGETS_TEMPLATE)
|
template = self.response_template(REGISTER_TARGETS_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def deregister_targets(self) -> str:
|
def deregister_targets(self) -> str:
|
||||||
target_group_arn = self._get_param("TargetGroupArn")
|
target_group_arn = self._get_param("TargetGroupArn")
|
||||||
targets = self._get_list_prefix("Targets.member")
|
targets = self._get_list_prefix("Targets.member")
|
||||||
@ -641,7 +623,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(DEREGISTER_TARGETS_TEMPLATE)
|
template = self.response_template(DEREGISTER_TARGETS_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_target_health(self) -> str:
|
def describe_target_health(self) -> str:
|
||||||
target_group_arn = self._get_param("TargetGroupArn")
|
target_group_arn = self._get_param("TargetGroupArn")
|
||||||
targets = self._get_list_prefix("Targets.member")
|
targets = self._get_list_prefix("Targets.member")
|
||||||
@ -652,7 +633,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(DESCRIBE_TARGET_HEALTH_TEMPLATE)
|
template = self.response_template(DESCRIBE_TARGET_HEALTH_TEMPLATE)
|
||||||
return template.render(target_health_descriptions=target_health_descriptions)
|
return template.render(target_health_descriptions=target_health_descriptions)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def set_rule_priorities(self) -> str:
|
def set_rule_priorities(self) -> str:
|
||||||
rule_priorities = self._get_list_prefix("RulePriorities.member")
|
rule_priorities = self._get_list_prefix("RulePriorities.member")
|
||||||
for rule_priority in rule_priorities:
|
for rule_priority in rule_priorities:
|
||||||
@ -661,7 +641,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(SET_RULE_PRIORITIES_TEMPLATE)
|
template = self.response_template(SET_RULE_PRIORITIES_TEMPLATE)
|
||||||
return template.render(rules=rules)
|
return template.render(rules=rules)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def add_tags(self) -> str:
|
def add_tags(self) -> str:
|
||||||
resource_arns = self._get_multi_param("ResourceArns.member")
|
resource_arns = self._get_multi_param("ResourceArns.member")
|
||||||
tags = self._get_params().get("Tags")
|
tags = self._get_params().get("Tags")
|
||||||
@ -671,7 +650,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(ADD_TAGS_TEMPLATE)
|
template = self.response_template(ADD_TAGS_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def remove_tags(self) -> str:
|
def remove_tags(self) -> str:
|
||||||
resource_arns = self._get_multi_param("ResourceArns.member")
|
resource_arns = self._get_multi_param("ResourceArns.member")
|
||||||
tag_keys = self._get_multi_param("TagKeys.member")
|
tag_keys = self._get_multi_param("TagKeys.member")
|
||||||
@ -681,7 +659,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(REMOVE_TAGS_TEMPLATE)
|
template = self.response_template(REMOVE_TAGS_TEMPLATE)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_tags(self) -> str:
|
def describe_tags(self) -> str:
|
||||||
resource_arns = self._get_multi_param("ResourceArns.member")
|
resource_arns = self._get_multi_param("ResourceArns.member")
|
||||||
resource_tags = self.elbv2_backend.describe_tags(resource_arns)
|
resource_tags = self.elbv2_backend.describe_tags(resource_arns)
|
||||||
@ -689,7 +666,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(DESCRIBE_TAGS_TEMPLATE)
|
template = self.response_template(DESCRIBE_TAGS_TEMPLATE)
|
||||||
return template.render(resource_tags=resource_tags)
|
return template.render(resource_tags=resource_tags)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_account_limits(self) -> str:
|
def describe_account_limits(self) -> str:
|
||||||
# Supports paging but not worth implementing yet
|
# Supports paging but not worth implementing yet
|
||||||
# marker = self._get_param('Marker')
|
# marker = self._get_param('Marker')
|
||||||
@ -709,7 +685,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(DESCRIBE_LIMITS_TEMPLATE)
|
template = self.response_template(DESCRIBE_LIMITS_TEMPLATE)
|
||||||
return template.render(limits=limits)
|
return template.render(limits=limits)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_ssl_policies(self) -> str:
|
def describe_ssl_policies(self) -> str:
|
||||||
names = self._get_multi_param("Names.member.")
|
names = self._get_multi_param("Names.member.")
|
||||||
# Supports paging but not worth implementing yet
|
# Supports paging but not worth implementing yet
|
||||||
@ -723,7 +698,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(DESCRIBE_SSL_POLICIES_TEMPLATE)
|
template = self.response_template(DESCRIBE_SSL_POLICIES_TEMPLATE)
|
||||||
return template.render(policies=policies)
|
return template.render(policies=policies)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def set_ip_address_type(self) -> str:
|
def set_ip_address_type(self) -> str:
|
||||||
arn = self._get_param("LoadBalancerArn")
|
arn = self._get_param("LoadBalancerArn")
|
||||||
ip_type = self._get_param("IpAddressType")
|
ip_type = self._get_param("IpAddressType")
|
||||||
@ -733,7 +707,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(SET_IP_ADDRESS_TYPE_TEMPLATE)
|
template = self.response_template(SET_IP_ADDRESS_TYPE_TEMPLATE)
|
||||||
return template.render(ip_type=ip_type)
|
return template.render(ip_type=ip_type)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def set_security_groups(self) -> str:
|
def set_security_groups(self) -> str:
|
||||||
arn = self._get_param("LoadBalancerArn")
|
arn = self._get_param("LoadBalancerArn")
|
||||||
sec_groups = self._get_multi_param("SecurityGroups.member.")
|
sec_groups = self._get_multi_param("SecurityGroups.member.")
|
||||||
@ -743,7 +716,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(SET_SECURITY_GROUPS_TEMPLATE)
|
template = self.response_template(SET_SECURITY_GROUPS_TEMPLATE)
|
||||||
return template.render(sec_groups=sec_groups)
|
return template.render(sec_groups=sec_groups)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def set_subnets(self) -> str:
|
def set_subnets(self) -> str:
|
||||||
arn = self._get_param("LoadBalancerArn")
|
arn = self._get_param("LoadBalancerArn")
|
||||||
subnets = self._get_multi_param("Subnets.member.")
|
subnets = self._get_multi_param("Subnets.member.")
|
||||||
@ -754,7 +726,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(SET_SUBNETS_TEMPLATE)
|
template = self.response_template(SET_SUBNETS_TEMPLATE)
|
||||||
return template.render(subnets=subnet_zone_list)
|
return template.render(subnets=subnet_zone_list)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def modify_load_balancer_attributes(self) -> str:
|
def modify_load_balancer_attributes(self) -> str:
|
||||||
arn = self._get_param("LoadBalancerArn")
|
arn = self._get_param("LoadBalancerArn")
|
||||||
attrs = self._get_map_prefix(
|
attrs = self._get_map_prefix(
|
||||||
@ -766,7 +737,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(MODIFY_LOADBALANCER_ATTRS_TEMPLATE)
|
template = self.response_template(MODIFY_LOADBALANCER_ATTRS_TEMPLATE)
|
||||||
return template.render(attrs=all_attrs)
|
return template.render(attrs=all_attrs)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_load_balancer_attributes(self) -> str:
|
def describe_load_balancer_attributes(self) -> str:
|
||||||
arn = self._get_param("LoadBalancerArn")
|
arn = self._get_param("LoadBalancerArn")
|
||||||
attrs = self.elbv2_backend.describe_load_balancer_attributes(arn)
|
attrs = self.elbv2_backend.describe_load_balancer_attributes(arn)
|
||||||
@ -774,7 +744,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(DESCRIBE_LOADBALANCER_ATTRS_TEMPLATE)
|
template = self.response_template(DESCRIBE_LOADBALANCER_ATTRS_TEMPLATE)
|
||||||
return template.render(attrs=attrs)
|
return template.render(attrs=attrs)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def modify_target_group(self) -> str:
|
def modify_target_group(self) -> str:
|
||||||
arn = self._get_param("TargetGroupArn")
|
arn = self._get_param("TargetGroupArn")
|
||||||
|
|
||||||
@ -806,7 +775,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(MODIFY_TARGET_GROUP_TEMPLATE)
|
template = self.response_template(MODIFY_TARGET_GROUP_TEMPLATE)
|
||||||
return template.render(target_group=target_group)
|
return template.render(target_group=target_group)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def modify_listener(self) -> str:
|
def modify_listener(self) -> str:
|
||||||
arn = self._get_param("ListenerArn")
|
arn = self._get_param("ListenerArn")
|
||||||
port = self._get_param("Port")
|
port = self._get_param("Port")
|
||||||
@ -828,7 +796,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(MODIFY_LISTENER_TEMPLATE)
|
template = self.response_template(MODIFY_LISTENER_TEMPLATE)
|
||||||
return template.render(listener=listener)
|
return template.render(listener=listener)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def add_listener_certificates(self) -> str:
|
def add_listener_certificates(self) -> str:
|
||||||
arn = self._get_param("ListenerArn")
|
arn = self._get_param("ListenerArn")
|
||||||
certificates = self._get_list_prefix("Certificates.member")
|
certificates = self._get_list_prefix("Certificates.member")
|
||||||
@ -839,7 +806,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(ADD_LISTENER_CERTIFICATES_TEMPLATE)
|
template = self.response_template(ADD_LISTENER_CERTIFICATES_TEMPLATE)
|
||||||
return template.render(certificates=certificate_arns)
|
return template.render(certificates=certificate_arns)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_listener_certificates(self) -> str:
|
def describe_listener_certificates(self) -> str:
|
||||||
arn = self._get_param("ListenerArn")
|
arn = self._get_param("ListenerArn")
|
||||||
certificates = self.elbv2_backend.describe_listener_certificates(arn)
|
certificates = self.elbv2_backend.describe_listener_certificates(arn)
|
||||||
@ -847,7 +813,6 @@ class ELBV2Response(BaseResponse):
|
|||||||
template = self.response_template(DESCRIBE_LISTENER_CERTIFICATES_TEMPLATE)
|
template = self.response_template(DESCRIBE_LISTENER_CERTIFICATES_TEMPLATE)
|
||||||
return template.render(certificates=certificates)
|
return template.render(certificates=certificates)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def remove_listener_certificates(self) -> str:
|
def remove_listener_certificates(self) -> str:
|
||||||
arn = self._get_param("ListenerArn")
|
arn = self._get_param("ListenerArn")
|
||||||
certificates = self._get_list_prefix("Certificates.member")
|
certificates = self._get_list_prefix("Certificates.member")
|
||||||
|
@ -2,7 +2,6 @@ import json
|
|||||||
|
|
||||||
from moto.core.common_types import TYPE_RESPONSE
|
from moto.core.common_types import TYPE_RESPONSE
|
||||||
from moto.core.responses import BaseResponse
|
from moto.core.responses import BaseResponse
|
||||||
from moto.utilities.aws_headers import amzn_request_id
|
|
||||||
|
|
||||||
from .models import ForecastBackend, forecast_backends
|
from .models import ForecastBackend, forecast_backends
|
||||||
|
|
||||||
@ -15,7 +14,6 @@ class ForecastResponse(BaseResponse):
|
|||||||
def forecast_backend(self) -> ForecastBackend:
|
def forecast_backend(self) -> ForecastBackend:
|
||||||
return forecast_backends[self.current_account][self.region]
|
return forecast_backends[self.current_account][self.region]
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_dataset_group(self) -> TYPE_RESPONSE:
|
def create_dataset_group(self) -> TYPE_RESPONSE:
|
||||||
dataset_group_name = self._get_param("DatasetGroupName")
|
dataset_group_name = self._get_param("DatasetGroupName")
|
||||||
domain = self._get_param("Domain")
|
domain = self._get_param("Domain")
|
||||||
@ -31,7 +29,6 @@ class ForecastResponse(BaseResponse):
|
|||||||
response = {"DatasetGroupArn": dataset_group.arn}
|
response = {"DatasetGroupArn": dataset_group.arn}
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_dataset_group(self) -> TYPE_RESPONSE:
|
def describe_dataset_group(self) -> TYPE_RESPONSE:
|
||||||
dataset_group_arn = self._get_param("DatasetGroupArn")
|
dataset_group_arn = self._get_param("DatasetGroupArn")
|
||||||
|
|
||||||
@ -49,20 +46,17 @@ class ForecastResponse(BaseResponse):
|
|||||||
}
|
}
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_dataset_group(self) -> TYPE_RESPONSE:
|
def delete_dataset_group(self) -> TYPE_RESPONSE:
|
||||||
dataset_group_arn = self._get_param("DatasetGroupArn")
|
dataset_group_arn = self._get_param("DatasetGroupArn")
|
||||||
self.forecast_backend.delete_dataset_group(dataset_group_arn)
|
self.forecast_backend.delete_dataset_group(dataset_group_arn)
|
||||||
return 200, {}, ""
|
return 200, {}, ""
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def update_dataset_group(self) -> TYPE_RESPONSE:
|
def update_dataset_group(self) -> TYPE_RESPONSE:
|
||||||
dataset_group_arn = self._get_param("DatasetGroupArn")
|
dataset_group_arn = self._get_param("DatasetGroupArn")
|
||||||
dataset_arns = self._get_param("DatasetArns")
|
dataset_arns = self._get_param("DatasetArns")
|
||||||
self.forecast_backend.update_dataset_group(dataset_group_arn, dataset_arns)
|
self.forecast_backend.update_dataset_group(dataset_group_arn, dataset_arns)
|
||||||
return 200, {}, ""
|
return 200, {}, ""
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_dataset_groups(self) -> TYPE_RESPONSE:
|
def list_dataset_groups(self) -> TYPE_RESPONSE:
|
||||||
list_all = sorted(
|
list_all = sorted(
|
||||||
[
|
[
|
||||||
|
@ -21,7 +21,6 @@ from moto.s3bucket_path.utils import (
|
|||||||
from moto.s3bucket_path.utils import (
|
from moto.s3bucket_path.utils import (
|
||||||
parse_key_name as bucketpath_parse_key_name,
|
parse_key_name as bucketpath_parse_key_name,
|
||||||
)
|
)
|
||||||
from moto.utilities.aws_headers import amzn_request_id
|
|
||||||
|
|
||||||
from .exceptions import (
|
from .exceptions import (
|
||||||
AccessForbidden,
|
AccessForbidden,
|
||||||
@ -284,7 +283,6 @@ class S3Response(BaseResponse):
|
|||||||
# Using path-based buckets
|
# Using path-based buckets
|
||||||
return self.bucket_response(request, full_url, headers)
|
return self.bucket_response(request, full_url, headers)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def bucket_response(
|
def bucket_response(
|
||||||
self, request: Any, full_url: str, headers: Any
|
self, request: Any, full_url: str, headers: Any
|
||||||
) -> TYPE_RESPONSE:
|
) -> TYPE_RESPONSE:
|
||||||
@ -1246,7 +1244,6 @@ class S3Response(BaseResponse):
|
|||||||
# last line should equal
|
# last line should equal
|
||||||
# amz-checksum-sha256:<..>\r\n
|
# amz-checksum-sha256:<..>\r\n
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def key_response(
|
def key_response(
|
||||||
self, request: Any, full_url: str, headers: Dict[str, Any]
|
self, request: Any, full_url: str, headers: Dict[str, Any]
|
||||||
) -> TYPE_RESPONSE:
|
) -> TYPE_RESPONSE:
|
||||||
|
@ -7,7 +7,6 @@ from moto.core.common_types import TYPE_RESPONSE
|
|||||||
from moto.core.responses import BaseResponse
|
from moto.core.responses import BaseResponse
|
||||||
from moto.s3.exceptions import S3ClientError
|
from moto.s3.exceptions import S3ClientError
|
||||||
from moto.s3.responses import S3_PUBLIC_ACCESS_BLOCK_CONFIGURATION
|
from moto.s3.responses import S3_PUBLIC_ACCESS_BLOCK_CONFIGURATION
|
||||||
from moto.utilities.aws_headers import amzn_request_id
|
|
||||||
|
|
||||||
from .models import S3ControlBackend, s3control_backends
|
from .models import S3ControlBackend, s3control_backends
|
||||||
|
|
||||||
@ -20,7 +19,6 @@ class S3ControlResponse(BaseResponse):
|
|||||||
def backend(self) -> S3ControlBackend:
|
def backend(self) -> S3ControlBackend:
|
||||||
return s3control_backends[self.current_account]["global"]
|
return s3control_backends[self.current_account]["global"]
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def public_access_block(self, request: Any, full_url: str, headers: Any) -> TYPE_RESPONSE: # type: ignore
|
def public_access_block(self, request: Any, full_url: str, headers: Any) -> TYPE_RESPONSE: # type: ignore
|
||||||
self.setup_class(request, full_url, headers)
|
self.setup_class(request, full_url, headers)
|
||||||
try:
|
try:
|
||||||
|
@ -4,7 +4,6 @@ from typing import Any
|
|||||||
from moto.core.common_types import TYPE_RESPONSE
|
from moto.core.common_types import TYPE_RESPONSE
|
||||||
from moto.core.responses import BaseResponse
|
from moto.core.responses import BaseResponse
|
||||||
from moto.sagemaker.exceptions import AWSValidationException
|
from moto.sagemaker.exceptions import AWSValidationException
|
||||||
from moto.utilities.aws_headers import amzn_request_id
|
|
||||||
|
|
||||||
from .models import SageMakerModelBackend, sagemaker_backends
|
from .models import SageMakerModelBackend, sagemaker_backends
|
||||||
|
|
||||||
@ -52,7 +51,6 @@ class SageMakerResponse(BaseResponse):
|
|||||||
models = self.sagemaker_backend.list_models()
|
models = self.sagemaker_backend.list_models()
|
||||||
return json.dumps({"Models": [model.response_object for model in models]})
|
return json.dumps({"Models": [model.response_object for model in models]})
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_notebook_instance(self) -> TYPE_RESPONSE:
|
def create_notebook_instance(self) -> TYPE_RESPONSE:
|
||||||
sagemaker_notebook = self.sagemaker_backend.create_notebook_instance(
|
sagemaker_notebook = self.sagemaker_backend.create_notebook_instance(
|
||||||
notebook_instance_name=self._get_param("NotebookInstanceName"),
|
notebook_instance_name=self._get_param("NotebookInstanceName"),
|
||||||
@ -72,7 +70,6 @@ class SageMakerResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return 200, {}, json.dumps({"NotebookInstanceArn": sagemaker_notebook.arn})
|
return 200, {}, json.dumps({"NotebookInstanceArn": sagemaker_notebook.arn})
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_notebook_instance(self) -> str:
|
def describe_notebook_instance(self) -> str:
|
||||||
notebook_instance_name = self._get_param("NotebookInstanceName")
|
notebook_instance_name = self._get_param("NotebookInstanceName")
|
||||||
notebook_instance = self.sagemaker_backend.get_notebook_instance(
|
notebook_instance = self.sagemaker_backend.get_notebook_instance(
|
||||||
@ -80,25 +77,21 @@ class SageMakerResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return json.dumps(notebook_instance.to_dict())
|
return json.dumps(notebook_instance.to_dict())
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def start_notebook_instance(self) -> TYPE_RESPONSE:
|
def start_notebook_instance(self) -> TYPE_RESPONSE:
|
||||||
notebook_instance_name = self._get_param("NotebookInstanceName")
|
notebook_instance_name = self._get_param("NotebookInstanceName")
|
||||||
self.sagemaker_backend.start_notebook_instance(notebook_instance_name)
|
self.sagemaker_backend.start_notebook_instance(notebook_instance_name)
|
||||||
return 200, {}, json.dumps("{}")
|
return 200, {}, json.dumps("{}")
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def stop_notebook_instance(self) -> TYPE_RESPONSE:
|
def stop_notebook_instance(self) -> TYPE_RESPONSE:
|
||||||
notebook_instance_name = self._get_param("NotebookInstanceName")
|
notebook_instance_name = self._get_param("NotebookInstanceName")
|
||||||
self.sagemaker_backend.stop_notebook_instance(notebook_instance_name)
|
self.sagemaker_backend.stop_notebook_instance(notebook_instance_name)
|
||||||
return 200, {}, json.dumps("{}")
|
return 200, {}, json.dumps("{}")
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_notebook_instance(self) -> TYPE_RESPONSE:
|
def delete_notebook_instance(self) -> TYPE_RESPONSE:
|
||||||
notebook_instance_name = self._get_param("NotebookInstanceName")
|
notebook_instance_name = self._get_param("NotebookInstanceName")
|
||||||
self.sagemaker_backend.delete_notebook_instance(notebook_instance_name)
|
self.sagemaker_backend.delete_notebook_instance(notebook_instance_name)
|
||||||
return 200, {}, json.dumps("{}")
|
return 200, {}, json.dumps("{}")
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_notebook_instances(self) -> str:
|
def list_notebook_instances(self) -> str:
|
||||||
sort_by = self._get_param("SortBy", "Name")
|
sort_by = self._get_param("SortBy", "Name")
|
||||||
sort_order = self._get_param("SortOrder", "Ascending")
|
sort_order = self._get_param("SortOrder", "Ascending")
|
||||||
@ -121,7 +114,6 @@ class SageMakerResponse(BaseResponse):
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_tags(self) -> TYPE_RESPONSE:
|
def list_tags(self) -> TYPE_RESPONSE:
|
||||||
arn = self._get_param("ResourceArn")
|
arn = self._get_param("ResourceArn")
|
||||||
max_results = self._get_param("MaxResults")
|
max_results = self._get_param("MaxResults")
|
||||||
@ -134,21 +126,18 @@ class SageMakerResponse(BaseResponse):
|
|||||||
response["NextToken"] = next_token
|
response["NextToken"] = next_token
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def add_tags(self) -> TYPE_RESPONSE:
|
def add_tags(self) -> TYPE_RESPONSE:
|
||||||
arn = self._get_param("ResourceArn")
|
arn = self._get_param("ResourceArn")
|
||||||
tags = self._get_param("Tags")
|
tags = self._get_param("Tags")
|
||||||
tags = self.sagemaker_backend.add_tags(arn, tags)
|
tags = self.sagemaker_backend.add_tags(arn, tags)
|
||||||
return 200, {}, json.dumps({"Tags": tags})
|
return 200, {}, json.dumps({"Tags": tags})
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_tags(self) -> TYPE_RESPONSE:
|
def delete_tags(self) -> TYPE_RESPONSE:
|
||||||
arn = self._get_param("ResourceArn")
|
arn = self._get_param("ResourceArn")
|
||||||
tag_keys = self._get_param("TagKeys")
|
tag_keys = self._get_param("TagKeys")
|
||||||
self.sagemaker_backend.delete_tags(arn, tag_keys)
|
self.sagemaker_backend.delete_tags(arn, tag_keys)
|
||||||
return 200, {}, json.dumps({})
|
return 200, {}, json.dumps({})
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_endpoint_config(self) -> TYPE_RESPONSE:
|
def create_endpoint_config(self) -> TYPE_RESPONSE:
|
||||||
endpoint_config = self.sagemaker_backend.create_endpoint_config(
|
endpoint_config = self.sagemaker_backend.create_endpoint_config(
|
||||||
endpoint_config_name=self._get_param("EndpointConfigName"),
|
endpoint_config_name=self._get_param("EndpointConfigName"),
|
||||||
@ -163,19 +152,16 @@ class SageMakerResponse(BaseResponse):
|
|||||||
json.dumps({"EndpointConfigArn": endpoint_config.endpoint_config_arn}),
|
json.dumps({"EndpointConfigArn": endpoint_config.endpoint_config_arn}),
|
||||||
)
|
)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_endpoint_config(self) -> str:
|
def describe_endpoint_config(self) -> str:
|
||||||
endpoint_config_name = self._get_param("EndpointConfigName")
|
endpoint_config_name = self._get_param("EndpointConfigName")
|
||||||
response = self.sagemaker_backend.describe_endpoint_config(endpoint_config_name)
|
response = self.sagemaker_backend.describe_endpoint_config(endpoint_config_name)
|
||||||
return json.dumps(response)
|
return json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_endpoint_config(self) -> TYPE_RESPONSE:
|
def delete_endpoint_config(self) -> TYPE_RESPONSE:
|
||||||
endpoint_config_name = self._get_param("EndpointConfigName")
|
endpoint_config_name = self._get_param("EndpointConfigName")
|
||||||
self.sagemaker_backend.delete_endpoint_config(endpoint_config_name)
|
self.sagemaker_backend.delete_endpoint_config(endpoint_config_name)
|
||||||
return 200, {}, json.dumps("{}")
|
return 200, {}, json.dumps("{}")
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_endpoint(self) -> TYPE_RESPONSE:
|
def create_endpoint(self) -> TYPE_RESPONSE:
|
||||||
endpoint = self.sagemaker_backend.create_endpoint(
|
endpoint = self.sagemaker_backend.create_endpoint(
|
||||||
endpoint_name=self._get_param("EndpointName"),
|
endpoint_name=self._get_param("EndpointName"),
|
||||||
@ -184,19 +170,16 @@ class SageMakerResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return 200, {}, json.dumps({"EndpointArn": endpoint.endpoint_arn})
|
return 200, {}, json.dumps({"EndpointArn": endpoint.endpoint_arn})
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_endpoint(self) -> str:
|
def describe_endpoint(self) -> str:
|
||||||
endpoint_name = self._get_param("EndpointName")
|
endpoint_name = self._get_param("EndpointName")
|
||||||
response = self.sagemaker_backend.describe_endpoint(endpoint_name)
|
response = self.sagemaker_backend.describe_endpoint(endpoint_name)
|
||||||
return json.dumps(response)
|
return json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_endpoint(self) -> TYPE_RESPONSE:
|
def delete_endpoint(self) -> TYPE_RESPONSE:
|
||||||
endpoint_name = self._get_param("EndpointName")
|
endpoint_name = self._get_param("EndpointName")
|
||||||
self.sagemaker_backend.delete_endpoint(endpoint_name)
|
self.sagemaker_backend.delete_endpoint(endpoint_name)
|
||||||
return 200, {}, json.dumps("{}")
|
return 200, {}, json.dumps("{}")
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_processing_job(self) -> TYPE_RESPONSE:
|
def create_processing_job(self) -> TYPE_RESPONSE:
|
||||||
processing_job = self.sagemaker_backend.create_processing_job(
|
processing_job = self.sagemaker_backend.create_processing_job(
|
||||||
app_specification=self._get_param("AppSpecification"),
|
app_specification=self._get_param("AppSpecification"),
|
||||||
@ -212,13 +195,11 @@ class SageMakerResponse(BaseResponse):
|
|||||||
response = {"ProcessingJobArn": processing_job.processing_job_arn}
|
response = {"ProcessingJobArn": processing_job.processing_job_arn}
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_processing_job(self) -> str:
|
def describe_processing_job(self) -> str:
|
||||||
processing_job_name = self._get_param("ProcessingJobName")
|
processing_job_name = self._get_param("ProcessingJobName")
|
||||||
response = self.sagemaker_backend.describe_processing_job(processing_job_name)
|
response = self.sagemaker_backend.describe_processing_job(processing_job_name)
|
||||||
return json.dumps(response)
|
return json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_transform_job(self) -> TYPE_RESPONSE:
|
def create_transform_job(self) -> TYPE_RESPONSE:
|
||||||
transform_job = self.sagemaker_backend.create_transform_job(
|
transform_job = self.sagemaker_backend.create_transform_job(
|
||||||
transform_job_name=self._get_param("TransformJobName"),
|
transform_job_name=self._get_param("TransformJobName"),
|
||||||
@ -241,7 +222,6 @@ class SageMakerResponse(BaseResponse):
|
|||||||
}
|
}
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_transform_job(self) -> str:
|
def describe_transform_job(self) -> str:
|
||||||
transform_job_name = self._get_param("TransformJobName")
|
transform_job_name = self._get_param("TransformJobName")
|
||||||
response = self.sagemaker_backend.describe_transform_job(
|
response = self.sagemaker_backend.describe_transform_job(
|
||||||
@ -249,7 +229,6 @@ class SageMakerResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return json.dumps(response)
|
return json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_training_job(self) -> TYPE_RESPONSE:
|
def create_training_job(self) -> TYPE_RESPONSE:
|
||||||
training_job = self.sagemaker_backend.create_training_job(
|
training_job = self.sagemaker_backend.create_training_job(
|
||||||
training_job_name=self._get_param("TrainingJobName"),
|
training_job_name=self._get_param("TrainingJobName"),
|
||||||
@ -280,13 +259,11 @@ class SageMakerResponse(BaseResponse):
|
|||||||
}
|
}
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_training_job(self) -> str:
|
def describe_training_job(self) -> str:
|
||||||
training_job_name = self._get_param("TrainingJobName")
|
training_job_name = self._get_param("TrainingJobName")
|
||||||
response = self.sagemaker_backend.describe_training_job(training_job_name)
|
response = self.sagemaker_backend.describe_training_job(training_job_name)
|
||||||
return json.dumps(response)
|
return json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_notebook_instance_lifecycle_config(self) -> TYPE_RESPONSE:
|
def create_notebook_instance_lifecycle_config(self) -> TYPE_RESPONSE:
|
||||||
lifecycle_configuration = (
|
lifecycle_configuration = (
|
||||||
self.sagemaker_backend.create_notebook_instance_lifecycle_config(
|
self.sagemaker_backend.create_notebook_instance_lifecycle_config(
|
||||||
@ -302,7 +279,6 @@ class SageMakerResponse(BaseResponse):
|
|||||||
}
|
}
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_notebook_instance_lifecycle_config(self) -> str:
|
def describe_notebook_instance_lifecycle_config(self) -> str:
|
||||||
response = self.sagemaker_backend.describe_notebook_instance_lifecycle_config(
|
response = self.sagemaker_backend.describe_notebook_instance_lifecycle_config(
|
||||||
notebook_instance_lifecycle_config_name=self._get_param(
|
notebook_instance_lifecycle_config_name=self._get_param(
|
||||||
@ -311,7 +287,6 @@ class SageMakerResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return json.dumps(response)
|
return json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_notebook_instance_lifecycle_config(self) -> TYPE_RESPONSE:
|
def delete_notebook_instance_lifecycle_config(self) -> TYPE_RESPONSE:
|
||||||
self.sagemaker_backend.delete_notebook_instance_lifecycle_config(
|
self.sagemaker_backend.delete_notebook_instance_lifecycle_config(
|
||||||
notebook_instance_lifecycle_config_name=self._get_param(
|
notebook_instance_lifecycle_config_name=self._get_param(
|
||||||
@ -320,7 +295,6 @@ class SageMakerResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return 200, {}, json.dumps("{}")
|
return 200, {}, json.dumps("{}")
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def search(self) -> TYPE_RESPONSE:
|
def search(self) -> TYPE_RESPONSE:
|
||||||
response = self.sagemaker_backend.search(
|
response = self.sagemaker_backend.search(
|
||||||
resource=self._get_param("Resource"),
|
resource=self._get_param("Resource"),
|
||||||
@ -328,7 +302,6 @@ class SageMakerResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_experiments(self) -> TYPE_RESPONSE:
|
def list_experiments(self) -> TYPE_RESPONSE:
|
||||||
MaxResults = self._get_param("MaxResults")
|
MaxResults = self._get_param("MaxResults")
|
||||||
NextToken = self._get_param("NextToken")
|
NextToken = self._get_param("NextToken")
|
||||||
@ -356,28 +329,24 @@ class SageMakerResponse(BaseResponse):
|
|||||||
|
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_experiment(self) -> TYPE_RESPONSE:
|
def delete_experiment(self) -> TYPE_RESPONSE:
|
||||||
self.sagemaker_backend.delete_experiment(
|
self.sagemaker_backend.delete_experiment(
|
||||||
experiment_name=self._get_param("ExperimentName")
|
experiment_name=self._get_param("ExperimentName")
|
||||||
)
|
)
|
||||||
return 200, {}, json.dumps({})
|
return 200, {}, json.dumps({})
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_experiment(self) -> TYPE_RESPONSE:
|
def create_experiment(self) -> TYPE_RESPONSE:
|
||||||
response = self.sagemaker_backend.create_experiment(
|
response = self.sagemaker_backend.create_experiment(
|
||||||
experiment_name=self._get_param("ExperimentName")
|
experiment_name=self._get_param("ExperimentName")
|
||||||
)
|
)
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_experiment(self) -> TYPE_RESPONSE:
|
def describe_experiment(self) -> TYPE_RESPONSE:
|
||||||
response = self.sagemaker_backend.describe_experiment(
|
response = self.sagemaker_backend.describe_experiment(
|
||||||
experiment_name=self._get_param("ExperimentName")
|
experiment_name=self._get_param("ExperimentName")
|
||||||
)
|
)
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_trials(self) -> TYPE_RESPONSE:
|
def list_trials(self) -> TYPE_RESPONSE:
|
||||||
MaxResults = self._get_param("MaxResults")
|
MaxResults = self._get_param("MaxResults")
|
||||||
NextToken = self._get_param("NextToken")
|
NextToken = self._get_param("NextToken")
|
||||||
@ -408,7 +377,6 @@ class SageMakerResponse(BaseResponse):
|
|||||||
|
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_trial(self) -> TYPE_RESPONSE:
|
def create_trial(self) -> TYPE_RESPONSE:
|
||||||
response = self.sagemaker_backend.create_trial(
|
response = self.sagemaker_backend.create_trial(
|
||||||
trial_name=self._get_param("TrialName"),
|
trial_name=self._get_param("TrialName"),
|
||||||
@ -416,7 +384,6 @@ class SageMakerResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_trial_components(self) -> TYPE_RESPONSE:
|
def list_trial_components(self) -> TYPE_RESPONSE:
|
||||||
MaxResults = self._get_param("MaxResults")
|
MaxResults = self._get_param("MaxResults")
|
||||||
NextToken = self._get_param("NextToken")
|
NextToken = self._get_param("NextToken")
|
||||||
@ -446,7 +413,6 @@ class SageMakerResponse(BaseResponse):
|
|||||||
|
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_trial_component(self) -> TYPE_RESPONSE:
|
def create_trial_component(self) -> TYPE_RESPONSE:
|
||||||
response = self.sagemaker_backend.create_trial_component(
|
response = self.sagemaker_backend.create_trial_component(
|
||||||
trial_component_name=self._get_param("TrialComponentName"),
|
trial_component_name=self._get_param("TrialComponentName"),
|
||||||
@ -454,31 +420,26 @@ class SageMakerResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_trial(self) -> str:
|
def describe_trial(self) -> str:
|
||||||
trial_name = self._get_param("TrialName")
|
trial_name = self._get_param("TrialName")
|
||||||
response = self.sagemaker_backend.describe_trial(trial_name)
|
response = self.sagemaker_backend.describe_trial(trial_name)
|
||||||
return json.dumps(response)
|
return json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_trial(self) -> TYPE_RESPONSE:
|
def delete_trial(self) -> TYPE_RESPONSE:
|
||||||
trial_name = self._get_param("TrialName")
|
trial_name = self._get_param("TrialName")
|
||||||
self.sagemaker_backend.delete_trial(trial_name)
|
self.sagemaker_backend.delete_trial(trial_name)
|
||||||
return 200, {}, json.dumps({})
|
return 200, {}, json.dumps({})
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_trial_component(self) -> TYPE_RESPONSE:
|
def delete_trial_component(self) -> TYPE_RESPONSE:
|
||||||
trial_component_name = self._get_param("TrialComponentName")
|
trial_component_name = self._get_param("TrialComponentName")
|
||||||
self.sagemaker_backend.delete_trial_component(trial_component_name)
|
self.sagemaker_backend.delete_trial_component(trial_component_name)
|
||||||
return 200, {}, json.dumps({})
|
return 200, {}, json.dumps({})
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_trial_component(self) -> str:
|
def describe_trial_component(self) -> str:
|
||||||
trial_component_name = self._get_param("TrialComponentName")
|
trial_component_name = self._get_param("TrialComponentName")
|
||||||
response = self.sagemaker_backend.describe_trial_component(trial_component_name)
|
response = self.sagemaker_backend.describe_trial_component(trial_component_name)
|
||||||
return json.dumps(response)
|
return json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def associate_trial_component(self) -> TYPE_RESPONSE:
|
def associate_trial_component(self) -> TYPE_RESPONSE:
|
||||||
trial_name = self._get_param("TrialName")
|
trial_name = self._get_param("TrialName")
|
||||||
trial_component_name = self._get_param("TrialComponentName")
|
trial_component_name = self._get_param("TrialComponentName")
|
||||||
@ -487,7 +448,6 @@ class SageMakerResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def disassociate_trial_component(self) -> TYPE_RESPONSE:
|
def disassociate_trial_component(self) -> TYPE_RESPONSE:
|
||||||
trial_component_name = self._get_param("TrialComponentName")
|
trial_component_name = self._get_param("TrialComponentName")
|
||||||
trial_name = self._get_param("TrialName")
|
trial_name = self._get_param("TrialName")
|
||||||
@ -496,14 +456,12 @@ class SageMakerResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_pipeline(self) -> TYPE_RESPONSE:
|
def describe_pipeline(self) -> TYPE_RESPONSE:
|
||||||
response = self.sagemaker_backend.describe_pipeline(
|
response = self.sagemaker_backend.describe_pipeline(
|
||||||
self._get_param("PipelineName")
|
self._get_param("PipelineName")
|
||||||
)
|
)
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def start_pipeline_execution(self) -> TYPE_RESPONSE:
|
def start_pipeline_execution(self) -> TYPE_RESPONSE:
|
||||||
response = self.sagemaker_backend.start_pipeline_execution(
|
response = self.sagemaker_backend.start_pipeline_execution(
|
||||||
self._get_param("PipelineName"),
|
self._get_param("PipelineName"),
|
||||||
@ -515,35 +473,30 @@ class SageMakerResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_pipeline_execution(self) -> TYPE_RESPONSE:
|
def describe_pipeline_execution(self) -> TYPE_RESPONSE:
|
||||||
response = self.sagemaker_backend.describe_pipeline_execution(
|
response = self.sagemaker_backend.describe_pipeline_execution(
|
||||||
self._get_param("PipelineExecutionArn")
|
self._get_param("PipelineExecutionArn")
|
||||||
)
|
)
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_pipeline_definition_for_execution(self) -> TYPE_RESPONSE:
|
def describe_pipeline_definition_for_execution(self) -> TYPE_RESPONSE:
|
||||||
response = self.sagemaker_backend.describe_pipeline_definition_for_execution(
|
response = self.sagemaker_backend.describe_pipeline_definition_for_execution(
|
||||||
self._get_param("PipelineExecutionArn")
|
self._get_param("PipelineExecutionArn")
|
||||||
)
|
)
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_pipeline_parameters_for_execution(self) -> TYPE_RESPONSE:
|
def list_pipeline_parameters_for_execution(self) -> TYPE_RESPONSE:
|
||||||
response = self.sagemaker_backend.list_pipeline_parameters_for_execution(
|
response = self.sagemaker_backend.list_pipeline_parameters_for_execution(
|
||||||
self._get_param("PipelineExecutionArn")
|
self._get_param("PipelineExecutionArn")
|
||||||
)
|
)
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_pipeline_executions(self) -> TYPE_RESPONSE:
|
def list_pipeline_executions(self) -> TYPE_RESPONSE:
|
||||||
response = self.sagemaker_backend.list_pipeline_executions(
|
response = self.sagemaker_backend.list_pipeline_executions(
|
||||||
self._get_param("PipelineName")
|
self._get_param("PipelineName")
|
||||||
)
|
)
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_pipeline(self) -> TYPE_RESPONSE:
|
def create_pipeline(self) -> TYPE_RESPONSE:
|
||||||
pipeline = self.sagemaker_backend.create_pipeline(
|
pipeline = self.sagemaker_backend.create_pipeline(
|
||||||
pipeline_name=self._get_param("PipelineName"),
|
pipeline_name=self._get_param("PipelineName"),
|
||||||
@ -563,7 +516,6 @@ class SageMakerResponse(BaseResponse):
|
|||||||
|
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_pipeline(self) -> TYPE_RESPONSE:
|
def delete_pipeline(self) -> TYPE_RESPONSE:
|
||||||
pipeline_arn = self.sagemaker_backend.delete_pipeline(
|
pipeline_arn = self.sagemaker_backend.delete_pipeline(
|
||||||
pipeline_name=self._get_param("PipelineName"),
|
pipeline_name=self._get_param("PipelineName"),
|
||||||
@ -571,7 +523,6 @@ class SageMakerResponse(BaseResponse):
|
|||||||
response = {"PipelineArn": pipeline_arn}
|
response = {"PipelineArn": pipeline_arn}
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def update_pipeline(self) -> TYPE_RESPONSE:
|
def update_pipeline(self) -> TYPE_RESPONSE:
|
||||||
pipeline_arn = self.sagemaker_backend.update_pipeline(
|
pipeline_arn = self.sagemaker_backend.update_pipeline(
|
||||||
pipeline_name=self._get_param("PipelineName"),
|
pipeline_name=self._get_param("PipelineName"),
|
||||||
@ -588,7 +539,6 @@ class SageMakerResponse(BaseResponse):
|
|||||||
response = {"PipelineArn": pipeline_arn}
|
response = {"PipelineArn": pipeline_arn}
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_pipelines(self) -> TYPE_RESPONSE:
|
def list_pipelines(self) -> TYPE_RESPONSE:
|
||||||
max_results_range = range(1, 101)
|
max_results_range = range(1, 101)
|
||||||
allowed_sort_by = ("Name", "CreationTime")
|
allowed_sort_by = ("Name", "CreationTime")
|
||||||
@ -631,7 +581,6 @@ class SageMakerResponse(BaseResponse):
|
|||||||
|
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_processing_jobs(self) -> TYPE_RESPONSE:
|
def list_processing_jobs(self) -> TYPE_RESPONSE:
|
||||||
max_results_range = range(1, 101)
|
max_results_range = range(1, 101)
|
||||||
allowed_sort_by = ["Name", "CreationTime", "Status"]
|
allowed_sort_by = ["Name", "CreationTime", "Status"]
|
||||||
@ -684,7 +633,6 @@ class SageMakerResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_transform_jobs(self) -> TYPE_RESPONSE:
|
def list_transform_jobs(self) -> TYPE_RESPONSE:
|
||||||
max_results_range = range(1, 101)
|
max_results_range = range(1, 101)
|
||||||
allowed_sort_by = ["Name", "CreationTime", "Status"]
|
allowed_sort_by = ["Name", "CreationTime", "Status"]
|
||||||
@ -737,7 +685,6 @@ class SageMakerResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_training_jobs(self) -> TYPE_RESPONSE:
|
def list_training_jobs(self) -> TYPE_RESPONSE:
|
||||||
max_results_range = range(1, 101)
|
max_results_range = range(1, 101)
|
||||||
allowed_sort_by = ["Name", "CreationTime", "Status"]
|
allowed_sort_by = ["Name", "CreationTime", "Status"]
|
||||||
|
@ -12,7 +12,7 @@ from moto.core.utils import (
|
|||||||
camelcase_to_underscores,
|
camelcase_to_underscores,
|
||||||
underscores_to_camelcase,
|
underscores_to_camelcase,
|
||||||
)
|
)
|
||||||
from moto.utilities.aws_headers import amz_crc32, amzn_request_id
|
from moto.utilities.aws_headers import amz_crc32
|
||||||
from moto.utilities.constants import JSON_TYPES
|
from moto.utilities.constants import JSON_TYPES
|
||||||
|
|
||||||
from .constants import (
|
from .constants import (
|
||||||
@ -134,7 +134,6 @@ class SQSResponse(BaseResponse):
|
|||||||
return visibility_timeout
|
return visibility_timeout
|
||||||
|
|
||||||
@amz_crc32 # crc last as request_id can edit XML
|
@amz_crc32 # crc last as request_id can edit XML
|
||||||
@amzn_request_id
|
|
||||||
def call_action(self) -> TYPE_RESPONSE:
|
def call_action(self) -> TYPE_RESPONSE:
|
||||||
status_code, headers, body = super().call_action()
|
status_code, headers, body = super().call_action()
|
||||||
if status_code == 404:
|
if status_code == 404:
|
||||||
|
@ -2,7 +2,6 @@ import json
|
|||||||
|
|
||||||
from moto.core.common_types import TYPE_RESPONSE
|
from moto.core.common_types import TYPE_RESPONSE
|
||||||
from moto.core.responses import BaseResponse
|
from moto.core.responses import BaseResponse
|
||||||
from moto.utilities.aws_headers import amzn_request_id
|
|
||||||
|
|
||||||
from .models import StepFunctionBackend, stepfunctions_backends
|
from .models import StepFunctionBackend, stepfunctions_backends
|
||||||
|
|
||||||
@ -15,7 +14,6 @@ class StepFunctionResponse(BaseResponse):
|
|||||||
def stepfunction_backend(self) -> StepFunctionBackend:
|
def stepfunction_backend(self) -> StepFunctionBackend:
|
||||||
return stepfunctions_backends[self.current_account][self.region]
|
return stepfunctions_backends[self.current_account][self.region]
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_state_machine(self) -> TYPE_RESPONSE:
|
def create_state_machine(self) -> TYPE_RESPONSE:
|
||||||
name = self._get_param("name")
|
name = self._get_param("name")
|
||||||
definition = self._get_param("definition")
|
definition = self._get_param("definition")
|
||||||
@ -30,7 +28,6 @@ class StepFunctionResponse(BaseResponse):
|
|||||||
}
|
}
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_state_machines(self) -> TYPE_RESPONSE:
|
def list_state_machines(self) -> TYPE_RESPONSE:
|
||||||
max_results = self._get_int_param("maxResults")
|
max_results = self._get_int_param("maxResults")
|
||||||
next_token = self._get_param("nextToken")
|
next_token = self._get_param("nextToken")
|
||||||
@ -50,12 +47,10 @@ class StepFunctionResponse(BaseResponse):
|
|||||||
response["nextToken"] = next_token
|
response["nextToken"] = next_token
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_state_machine(self) -> TYPE_RESPONSE:
|
def describe_state_machine(self) -> TYPE_RESPONSE:
|
||||||
arn = self._get_param("stateMachineArn")
|
arn = self._get_param("stateMachineArn")
|
||||||
return self._describe_state_machine(arn)
|
return self._describe_state_machine(arn)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def _describe_state_machine(self, state_machine_arn: str) -> TYPE_RESPONSE:
|
def _describe_state_machine(self, state_machine_arn: str) -> TYPE_RESPONSE:
|
||||||
state_machine = self.stepfunction_backend.describe_state_machine(
|
state_machine = self.stepfunction_backend.describe_state_machine(
|
||||||
state_machine_arn
|
state_machine_arn
|
||||||
@ -70,13 +65,11 @@ class StepFunctionResponse(BaseResponse):
|
|||||||
}
|
}
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_state_machine(self) -> TYPE_RESPONSE:
|
def delete_state_machine(self) -> TYPE_RESPONSE:
|
||||||
arn = self._get_param("stateMachineArn")
|
arn = self._get_param("stateMachineArn")
|
||||||
self.stepfunction_backend.delete_state_machine(arn)
|
self.stepfunction_backend.delete_state_machine(arn)
|
||||||
return 200, {}, json.dumps("{}")
|
return 200, {}, json.dumps("{}")
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def update_state_machine(self) -> TYPE_RESPONSE:
|
def update_state_machine(self) -> TYPE_RESPONSE:
|
||||||
arn = self._get_param("stateMachineArn")
|
arn = self._get_param("stateMachineArn")
|
||||||
definition = self._get_param("definition")
|
definition = self._get_param("definition")
|
||||||
@ -89,28 +82,24 @@ class StepFunctionResponse(BaseResponse):
|
|||||||
}
|
}
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_tags_for_resource(self) -> TYPE_RESPONSE:
|
def list_tags_for_resource(self) -> TYPE_RESPONSE:
|
||||||
arn = self._get_param("resourceArn")
|
arn = self._get_param("resourceArn")
|
||||||
tags = self.stepfunction_backend.list_tags_for_resource(arn)
|
tags = self.stepfunction_backend.list_tags_for_resource(arn)
|
||||||
response = {"tags": tags}
|
response = {"tags": tags}
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def tag_resource(self) -> TYPE_RESPONSE:
|
def tag_resource(self) -> TYPE_RESPONSE:
|
||||||
arn = self._get_param("resourceArn")
|
arn = self._get_param("resourceArn")
|
||||||
tags = self._get_param("tags", [])
|
tags = self._get_param("tags", [])
|
||||||
self.stepfunction_backend.tag_resource(arn, tags)
|
self.stepfunction_backend.tag_resource(arn, tags)
|
||||||
return 200, {}, json.dumps({})
|
return 200, {}, json.dumps({})
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def untag_resource(self) -> TYPE_RESPONSE:
|
def untag_resource(self) -> TYPE_RESPONSE:
|
||||||
arn = self._get_param("resourceArn")
|
arn = self._get_param("resourceArn")
|
||||||
tag_keys = self._get_param("tagKeys", [])
|
tag_keys = self._get_param("tagKeys", [])
|
||||||
self.stepfunction_backend.untag_resource(arn, tag_keys)
|
self.stepfunction_backend.untag_resource(arn, tag_keys)
|
||||||
return 200, {}, json.dumps({})
|
return 200, {}, json.dumps({})
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def start_execution(self) -> TYPE_RESPONSE:
|
def start_execution(self) -> TYPE_RESPONSE:
|
||||||
arn = self._get_param("stateMachineArn")
|
arn = self._get_param("stateMachineArn")
|
||||||
name = self._get_param("name")
|
name = self._get_param("name")
|
||||||
@ -124,7 +113,6 @@ class StepFunctionResponse(BaseResponse):
|
|||||||
}
|
}
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_executions(self) -> TYPE_RESPONSE:
|
def list_executions(self) -> TYPE_RESPONSE:
|
||||||
max_results = self._get_int_param("maxResults")
|
max_results = self._get_int_param("maxResults")
|
||||||
next_token = self._get_param("nextToken")
|
next_token = self._get_param("nextToken")
|
||||||
@ -153,7 +141,6 @@ class StepFunctionResponse(BaseResponse):
|
|||||||
response["nextToken"] = next_token
|
response["nextToken"] = next_token
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_execution(self) -> TYPE_RESPONSE:
|
def describe_execution(self) -> TYPE_RESPONSE:
|
||||||
arn = self._get_param("executionArn")
|
arn = self._get_param("executionArn")
|
||||||
execution = self.stepfunction_backend.describe_execution(arn)
|
execution = self.stepfunction_backend.describe_execution(arn)
|
||||||
@ -168,20 +155,17 @@ class StepFunctionResponse(BaseResponse):
|
|||||||
}
|
}
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def describe_state_machine_for_execution(self) -> TYPE_RESPONSE:
|
def describe_state_machine_for_execution(self) -> TYPE_RESPONSE:
|
||||||
arn = self._get_param("executionArn")
|
arn = self._get_param("executionArn")
|
||||||
execution = self.stepfunction_backend.describe_execution(arn)
|
execution = self.stepfunction_backend.describe_execution(arn)
|
||||||
return self._describe_state_machine(execution.state_machine_arn)
|
return self._describe_state_machine(execution.state_machine_arn)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def stop_execution(self) -> TYPE_RESPONSE:
|
def stop_execution(self) -> TYPE_RESPONSE:
|
||||||
arn = self._get_param("executionArn")
|
arn = self._get_param("executionArn")
|
||||||
execution = self.stepfunction_backend.stop_execution(arn)
|
execution = self.stepfunction_backend.stop_execution(arn)
|
||||||
response = {"stopDate": execution.stop_date}
|
response = {"stopDate": execution.stop_date}
|
||||||
return 200, {}, json.dumps(response)
|
return 200, {}, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def get_execution_history(self) -> TYPE_RESPONSE:
|
def get_execution_history(self) -> TYPE_RESPONSE:
|
||||||
execution_arn = self._get_param("executionArn")
|
execution_arn = self._get_param("executionArn")
|
||||||
execution_history = self.stepfunction_backend.get_execution_history(
|
execution_history = self.stepfunction_backend.get_execution_history(
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
import json
|
import json
|
||||||
|
|
||||||
from moto.core.responses import BaseResponse
|
from moto.core.responses import BaseResponse
|
||||||
from moto.utilities.aws_headers import amzn_request_id
|
|
||||||
|
|
||||||
from .models import TranscribeBackend, transcribe_backends
|
from .models import TranscribeBackend, transcribe_backends
|
||||||
|
|
||||||
@ -14,7 +13,6 @@ class TranscribeResponse(BaseResponse):
|
|||||||
def transcribe_backend(self) -> TranscribeBackend:
|
def transcribe_backend(self) -> TranscribeBackend:
|
||||||
return transcribe_backends[self.current_account][self.region]
|
return transcribe_backends[self.current_account][self.region]
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def start_transcription_job(self) -> str:
|
def start_transcription_job(self) -> str:
|
||||||
name = self._get_param("TranscriptionJobName")
|
name = self._get_param("TranscriptionJobName")
|
||||||
response = self.transcribe_backend.start_transcription_job(
|
response = self.transcribe_backend.start_transcription_job(
|
||||||
@ -37,7 +35,6 @@ class TranscribeResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return json.dumps(response)
|
return json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def start_medical_transcription_job(self) -> str:
|
def start_medical_transcription_job(self) -> str:
|
||||||
name = self._get_param("MedicalTranscriptionJobName")
|
name = self._get_param("MedicalTranscriptionJobName")
|
||||||
response = self.transcribe_backend.start_medical_transcription_job(
|
response = self.transcribe_backend.start_medical_transcription_job(
|
||||||
@ -54,7 +51,6 @@ class TranscribeResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return json.dumps(response)
|
return json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_transcription_jobs(self) -> str:
|
def list_transcription_jobs(self) -> str:
|
||||||
state_equals = self._get_param("Status")
|
state_equals = self._get_param("Status")
|
||||||
job_name_contains = self._get_param("JobNameContains")
|
job_name_contains = self._get_param("JobNameContains")
|
||||||
@ -69,7 +65,6 @@ class TranscribeResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return json.dumps(response)
|
return json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_medical_transcription_jobs(self) -> str:
|
def list_medical_transcription_jobs(self) -> str:
|
||||||
status = self._get_param("Status")
|
status = self._get_param("Status")
|
||||||
job_name_contains = self._get_param("JobNameContains")
|
job_name_contains = self._get_param("JobNameContains")
|
||||||
@ -84,7 +79,6 @@ class TranscribeResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return json.dumps(response)
|
return json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def get_transcription_job(self) -> str:
|
def get_transcription_job(self) -> str:
|
||||||
transcription_job_name = self._get_param("TranscriptionJobName")
|
transcription_job_name = self._get_param("TranscriptionJobName")
|
||||||
response = self.transcribe_backend.get_transcription_job(
|
response = self.transcribe_backend.get_transcription_job(
|
||||||
@ -92,7 +86,6 @@ class TranscribeResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return json.dumps(response)
|
return json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def get_medical_transcription_job(self) -> str:
|
def get_medical_transcription_job(self) -> str:
|
||||||
medical_transcription_job_name = self._get_param("MedicalTranscriptionJobName")
|
medical_transcription_job_name = self._get_param("MedicalTranscriptionJobName")
|
||||||
response = self.transcribe_backend.get_medical_transcription_job(
|
response = self.transcribe_backend.get_medical_transcription_job(
|
||||||
@ -100,7 +93,6 @@ class TranscribeResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return json.dumps(response)
|
return json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_transcription_job(self) -> str:
|
def delete_transcription_job(self) -> str:
|
||||||
transcription_job_name = self._get_param("TranscriptionJobName")
|
transcription_job_name = self._get_param("TranscriptionJobName")
|
||||||
self.transcribe_backend.delete_transcription_job(
|
self.transcribe_backend.delete_transcription_job(
|
||||||
@ -108,7 +100,6 @@ class TranscribeResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return "{}"
|
return "{}"
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_medical_transcription_job(self) -> str:
|
def delete_medical_transcription_job(self) -> str:
|
||||||
medical_transcription_job_name = self._get_param("MedicalTranscriptionJobName")
|
medical_transcription_job_name = self._get_param("MedicalTranscriptionJobName")
|
||||||
self.transcribe_backend.delete_medical_transcription_job(
|
self.transcribe_backend.delete_medical_transcription_job(
|
||||||
@ -116,7 +107,6 @@ class TranscribeResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return "{}"
|
return "{}"
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_vocabulary(self) -> str:
|
def create_vocabulary(self) -> str:
|
||||||
vocabulary_name = self._get_param("VocabularyName")
|
vocabulary_name = self._get_param("VocabularyName")
|
||||||
language_code = self._get_param("LanguageCode")
|
language_code = self._get_param("LanguageCode")
|
||||||
@ -130,7 +120,6 @@ class TranscribeResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return json.dumps(response)
|
return json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_medical_vocabulary(self) -> str:
|
def create_medical_vocabulary(self) -> str:
|
||||||
vocabulary_name = self._get_param("VocabularyName")
|
vocabulary_name = self._get_param("VocabularyName")
|
||||||
language_code = self._get_param("LanguageCode")
|
language_code = self._get_param("LanguageCode")
|
||||||
@ -142,7 +131,6 @@ class TranscribeResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return json.dumps(response)
|
return json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def get_vocabulary(self) -> str:
|
def get_vocabulary(self) -> str:
|
||||||
vocabulary_name = self._get_param("VocabularyName")
|
vocabulary_name = self._get_param("VocabularyName")
|
||||||
response = self.transcribe_backend.get_vocabulary(
|
response = self.transcribe_backend.get_vocabulary(
|
||||||
@ -150,7 +138,6 @@ class TranscribeResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return json.dumps(response)
|
return json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def get_medical_vocabulary(self) -> str:
|
def get_medical_vocabulary(self) -> str:
|
||||||
vocabulary_name = self._get_param("VocabularyName")
|
vocabulary_name = self._get_param("VocabularyName")
|
||||||
response = self.transcribe_backend.get_medical_vocabulary(
|
response = self.transcribe_backend.get_medical_vocabulary(
|
||||||
@ -158,7 +145,6 @@ class TranscribeResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return json.dumps(response)
|
return json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_vocabularies(self) -> str:
|
def list_vocabularies(self) -> str:
|
||||||
state_equals = self._get_param("StateEquals")
|
state_equals = self._get_param("StateEquals")
|
||||||
name_contains = self._get_param("NameContains")
|
name_contains = self._get_param("NameContains")
|
||||||
@ -173,7 +159,6 @@ class TranscribeResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return json.dumps(response)
|
return json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_medical_vocabularies(self) -> str:
|
def list_medical_vocabularies(self) -> str:
|
||||||
state_equals = self._get_param("StateEquals")
|
state_equals = self._get_param("StateEquals")
|
||||||
name_contains = self._get_param("NameContains")
|
name_contains = self._get_param("NameContains")
|
||||||
@ -188,13 +173,11 @@ class TranscribeResponse(BaseResponse):
|
|||||||
)
|
)
|
||||||
return json.dumps(response)
|
return json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_vocabulary(self) -> str:
|
def delete_vocabulary(self) -> str:
|
||||||
vocabulary_name = self._get_param("VocabularyName")
|
vocabulary_name = self._get_param("VocabularyName")
|
||||||
self.transcribe_backend.delete_vocabulary(vocabulary_name=vocabulary_name)
|
self.transcribe_backend.delete_vocabulary(vocabulary_name=vocabulary_name)
|
||||||
return "{}"
|
return "{}"
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_medical_vocabulary(self) -> str:
|
def delete_medical_vocabulary(self) -> str:
|
||||||
vocabulary_name = self._get_param("VocabularyName")
|
vocabulary_name = self._get_param("VocabularyName")
|
||||||
self.transcribe_backend.delete_medical_vocabulary(
|
self.transcribe_backend.delete_medical_vocabulary(
|
||||||
|
@ -7,9 +7,6 @@ else:
|
|||||||
Protocol = object
|
Protocol = object
|
||||||
|
|
||||||
import binascii
|
import binascii
|
||||||
import re
|
|
||||||
|
|
||||||
from moto.moto_api._internal import mock_random as random
|
|
||||||
|
|
||||||
TypeDec = TypeVar("TypeDec", bound=Callable[..., Any])
|
TypeDec = TypeVar("TypeDec", bound=Callable[..., Any])
|
||||||
|
|
||||||
@ -32,6 +29,8 @@ def gen_amz_crc32(response: Any, headerdict: Optional[Dict[str, Any]] = None) ->
|
|||||||
|
|
||||||
|
|
||||||
def gen_amzn_requestid_long(headerdict: Optional[Dict[str, Any]] = None) -> str:
|
def gen_amzn_requestid_long(headerdict: Optional[Dict[str, Any]] = None) -> str:
|
||||||
|
from moto.moto_api._internal import mock_random as random
|
||||||
|
|
||||||
req_id = random.get_random_string(length=52)
|
req_id = random.get_random_string(length=52)
|
||||||
|
|
||||||
if headerdict is not None and isinstance(headerdict, dict):
|
if headerdict is not None and isinstance(headerdict, dict):
|
||||||
@ -53,7 +52,7 @@ def amz_crc32(f: TypeDec) -> GenericFunction:
|
|||||||
else:
|
else:
|
||||||
if len(response) == 2:
|
if len(response) == 2:
|
||||||
body, new_headers = response
|
body, new_headers = response
|
||||||
status = new_headers.get("status", 200)
|
status = new_headers.get("status", status)
|
||||||
else:
|
else:
|
||||||
status, new_headers, body = response
|
status, new_headers, body = response
|
||||||
headers.update(new_headers)
|
headers.update(new_headers)
|
||||||
@ -66,34 +65,3 @@ def amz_crc32(f: TypeDec) -> GenericFunction:
|
|||||||
return status, headers, body
|
return status, headers, body
|
||||||
|
|
||||||
return _wrapper
|
return _wrapper
|
||||||
|
|
||||||
|
|
||||||
def amzn_request_id(f: TypeDec) -> GenericFunction:
|
|
||||||
@wraps(f)
|
|
||||||
def _wrapper(*args: Any, **kwargs: Any) -> Any: # type: ignore[misc]
|
|
||||||
response = f(*args, **kwargs)
|
|
||||||
|
|
||||||
headers = {}
|
|
||||||
status = 200
|
|
||||||
|
|
||||||
if isinstance(response, str):
|
|
||||||
body = response
|
|
||||||
else:
|
|
||||||
if len(response) == 2:
|
|
||||||
body, new_headers = response
|
|
||||||
status = new_headers.get("status", 200)
|
|
||||||
else:
|
|
||||||
status, new_headers, body = response
|
|
||||||
headers.update(new_headers)
|
|
||||||
|
|
||||||
request_id = gen_amzn_requestid_long(headers)
|
|
||||||
|
|
||||||
# Update request ID in XML
|
|
||||||
try:
|
|
||||||
body = re.sub(r"(?<=<RequestId>).*(?=<\/RequestId>)", request_id, body)
|
|
||||||
except Exception: # Will just ignore if it cant work
|
|
||||||
pass
|
|
||||||
|
|
||||||
return status, headers, body
|
|
||||||
|
|
||||||
return _wrapper
|
|
||||||
|
@ -2,7 +2,6 @@ import json
|
|||||||
|
|
||||||
from moto.core.common_types import TYPE_RESPONSE
|
from moto.core.common_types import TYPE_RESPONSE
|
||||||
from moto.core.responses import BaseResponse
|
from moto.core.responses import BaseResponse
|
||||||
from moto.utilities.aws_headers import amzn_request_id
|
|
||||||
|
|
||||||
from .models import GLOBAL_REGION, WAFV2Backend, wafv2_backends
|
from .models import GLOBAL_REGION, WAFV2Backend, wafv2_backends
|
||||||
|
|
||||||
@ -15,7 +14,6 @@ class WAFV2Response(BaseResponse):
|
|||||||
def wafv2_backend(self) -> WAFV2Backend:
|
def wafv2_backend(self) -> WAFV2Backend:
|
||||||
return wafv2_backends[self.current_account][self.region]
|
return wafv2_backends[self.current_account][self.region]
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def associate_web_acl(self) -> TYPE_RESPONSE:
|
def associate_web_acl(self) -> TYPE_RESPONSE:
|
||||||
body = json.loads(self.body)
|
body = json.loads(self.body)
|
||||||
web_acl_arn = body["WebACLArn"]
|
web_acl_arn = body["WebACLArn"]
|
||||||
@ -23,14 +21,12 @@ class WAFV2Response(BaseResponse):
|
|||||||
self.wafv2_backend.associate_web_acl(web_acl_arn, resource_arn)
|
self.wafv2_backend.associate_web_acl(web_acl_arn, resource_arn)
|
||||||
return 200, {}, "{}"
|
return 200, {}, "{}"
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def disassociate_web_acl(self) -> TYPE_RESPONSE:
|
def disassociate_web_acl(self) -> TYPE_RESPONSE:
|
||||||
body = json.loads(self.body)
|
body = json.loads(self.body)
|
||||||
resource_arn = body["ResourceArn"]
|
resource_arn = body["ResourceArn"]
|
||||||
self.wafv2_backend.disassociate_web_acl(resource_arn)
|
self.wafv2_backend.disassociate_web_acl(resource_arn)
|
||||||
return 200, {}, "{}"
|
return 200, {}, "{}"
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def get_web_acl_for_resource(self) -> TYPE_RESPONSE:
|
def get_web_acl_for_resource(self) -> TYPE_RESPONSE:
|
||||||
body = json.loads(self.body)
|
body = json.loads(self.body)
|
||||||
resource_arn = body["ResourceArn"]
|
resource_arn = body["ResourceArn"]
|
||||||
@ -39,7 +35,6 @@ class WAFV2Response(BaseResponse):
|
|||||||
response_headers = {"Content-Type": "application/json"}
|
response_headers = {"Content-Type": "application/json"}
|
||||||
return 200, response_headers, json.dumps(response)
|
return 200, response_headers, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def create_web_acl(self) -> TYPE_RESPONSE:
|
def create_web_acl(self) -> TYPE_RESPONSE:
|
||||||
"""https://docs.aws.amazon.com/waf/latest/APIReference/API_CreateWebACL.html (response syntax section)"""
|
"""https://docs.aws.amazon.com/waf/latest/APIReference/API_CreateWebACL.html (response syntax section)"""
|
||||||
|
|
||||||
@ -64,7 +59,6 @@ class WAFV2Response(BaseResponse):
|
|||||||
response_headers = {"Content-Type": "application/json"}
|
response_headers = {"Content-Type": "application/json"}
|
||||||
return 200, response_headers, json.dumps(response)
|
return 200, response_headers, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def delete_web_acl(self) -> TYPE_RESPONSE:
|
def delete_web_acl(self) -> TYPE_RESPONSE:
|
||||||
scope = self._get_param("Scope")
|
scope = self._get_param("Scope")
|
||||||
if scope == "CLOUDFRONT":
|
if scope == "CLOUDFRONT":
|
||||||
@ -75,7 +69,6 @@ class WAFV2Response(BaseResponse):
|
|||||||
response_headers = {"Content-Type": "application/json"}
|
response_headers = {"Content-Type": "application/json"}
|
||||||
return 200, response_headers, "{}"
|
return 200, response_headers, "{}"
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def get_web_acl(self) -> TYPE_RESPONSE:
|
def get_web_acl(self) -> TYPE_RESPONSE:
|
||||||
scope = self._get_param("Scope")
|
scope = self._get_param("Scope")
|
||||||
if scope == "CLOUDFRONT":
|
if scope == "CLOUDFRONT":
|
||||||
@ -87,7 +80,6 @@ class WAFV2Response(BaseResponse):
|
|||||||
response_headers = {"Content-Type": "application/json"}
|
response_headers = {"Content-Type": "application/json"}
|
||||||
return 200, response_headers, json.dumps(response)
|
return 200, response_headers, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_web_ac_ls(self) -> TYPE_RESPONSE:
|
def list_web_ac_ls(self) -> TYPE_RESPONSE:
|
||||||
"""https://docs.aws.amazon.com/waf/latest/APIReference/API_ListWebACLs.html (response syntax section)"""
|
"""https://docs.aws.amazon.com/waf/latest/APIReference/API_ListWebACLs.html (response syntax section)"""
|
||||||
|
|
||||||
@ -99,7 +91,6 @@ class WAFV2Response(BaseResponse):
|
|||||||
response_headers = {"Content-Type": "application/json"}
|
response_headers = {"Content-Type": "application/json"}
|
||||||
return 200, response_headers, json.dumps(response)
|
return 200, response_headers, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_rule_groups(self) -> TYPE_RESPONSE:
|
def list_rule_groups(self) -> TYPE_RESPONSE:
|
||||||
scope = self._get_param("Scope")
|
scope = self._get_param("Scope")
|
||||||
if scope == "CLOUDFRONT":
|
if scope == "CLOUDFRONT":
|
||||||
@ -109,7 +100,6 @@ class WAFV2Response(BaseResponse):
|
|||||||
response_headers = {"Content-Type": "application/json"}
|
response_headers = {"Content-Type": "application/json"}
|
||||||
return 200, response_headers, json.dumps(response)
|
return 200, response_headers, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def list_tags_for_resource(self) -> TYPE_RESPONSE:
|
def list_tags_for_resource(self) -> TYPE_RESPONSE:
|
||||||
arn = self._get_param("ResourceARN")
|
arn = self._get_param("ResourceARN")
|
||||||
self.region = arn.split(":")[3]
|
self.region = arn.split(":")[3]
|
||||||
@ -118,7 +108,6 @@ class WAFV2Response(BaseResponse):
|
|||||||
response_headers = {"Content-Type": "application/json"}
|
response_headers = {"Content-Type": "application/json"}
|
||||||
return 200, response_headers, json.dumps(response)
|
return 200, response_headers, json.dumps(response)
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def tag_resource(self) -> TYPE_RESPONSE:
|
def tag_resource(self) -> TYPE_RESPONSE:
|
||||||
body = json.loads(self.body)
|
body = json.loads(self.body)
|
||||||
arn = body.get("ResourceARN")
|
arn = body.get("ResourceARN")
|
||||||
@ -127,7 +116,6 @@ class WAFV2Response(BaseResponse):
|
|||||||
self.wafv2_backend.tag_resource(arn, tags)
|
self.wafv2_backend.tag_resource(arn, tags)
|
||||||
return 200, {}, "{}"
|
return 200, {}, "{}"
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def untag_resource(self) -> TYPE_RESPONSE:
|
def untag_resource(self) -> TYPE_RESPONSE:
|
||||||
body = json.loads(self.body)
|
body = json.loads(self.body)
|
||||||
arn = body.get("ResourceARN")
|
arn = body.get("ResourceARN")
|
||||||
@ -136,7 +124,6 @@ class WAFV2Response(BaseResponse):
|
|||||||
self.wafv2_backend.untag_resource(arn, tag_keys)
|
self.wafv2_backend.untag_resource(arn, tag_keys)
|
||||||
return 200, {}, "{}"
|
return 200, {}, "{}"
|
||||||
|
|
||||||
@amzn_request_id
|
|
||||||
def update_web_acl(self) -> TYPE_RESPONSE:
|
def update_web_acl(self) -> TYPE_RESPONSE:
|
||||||
body = json.loads(self.body)
|
body = json.loads(self.body)
|
||||||
name = body.get("Name")
|
name = body.get("Name")
|
||||||
|
@ -296,6 +296,7 @@ def test_create_resource():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
root_resource["ResponseMetadata"].pop("HTTPHeaders", None)
|
root_resource["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
root_resource["ResponseMetadata"].pop("RetryAttempts", None)
|
root_resource["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
root_resource["ResponseMetadata"].pop("RequestId")
|
||||||
assert root_resource == {
|
assert root_resource == {
|
||||||
"path": "/",
|
"path": "/",
|
||||||
"id": root_id,
|
"id": root_id,
|
||||||
@ -340,6 +341,7 @@ def test_child_resource():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
child_resource["ResponseMetadata"].pop("HTTPHeaders", None)
|
child_resource["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
child_resource["ResponseMetadata"].pop("RetryAttempts", None)
|
child_resource["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
child_resource["ResponseMetadata"].pop("RequestId")
|
||||||
assert child_resource == {
|
assert child_resource == {
|
||||||
"path": "/users/tags",
|
"path": "/users/tags",
|
||||||
"pathPart": "tags",
|
"pathPart": "tags",
|
||||||
@ -373,6 +375,7 @@ def test_create_method():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
response["ResponseMetadata"].pop("RetryAttempts", None)
|
response["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
response["ResponseMetadata"].pop("RequestId")
|
||||||
assert response == {
|
assert response == {
|
||||||
"httpMethod": "GET",
|
"httpMethod": "GET",
|
||||||
"authorizationType": "none",
|
"authorizationType": "none",
|
||||||
@ -407,6 +410,7 @@ def test_create_method_apikeyrequired():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
response["ResponseMetadata"].pop("RetryAttempts", None)
|
response["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
response["ResponseMetadata"].pop("RequestId")
|
||||||
assert response == {
|
assert response == {
|
||||||
"httpMethod": "GET",
|
"httpMethod": "GET",
|
||||||
"authorizationType": "none",
|
"authorizationType": "none",
|
||||||
@ -431,7 +435,7 @@ def test_create_method_response():
|
|||||||
restApiId=api_id, resourceId=root_id, httpMethod="GET", authorizationType="none"
|
restApiId=api_id, resourceId=root_id, httpMethod="GET", authorizationType="none"
|
||||||
)
|
)
|
||||||
|
|
||||||
response = client.get_method(restApiId=api_id, resourceId=root_id, httpMethod="GET")
|
client.get_method(restApiId=api_id, resourceId=root_id, httpMethod="GET")
|
||||||
|
|
||||||
response = client.put_method_response(
|
response = client.put_method_response(
|
||||||
restApiId=api_id, resourceId=root_id, httpMethod="GET", statusCode="200"
|
restApiId=api_id, resourceId=root_id, httpMethod="GET", statusCode="200"
|
||||||
@ -439,6 +443,7 @@ def test_create_method_response():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
response["ResponseMetadata"].pop("RetryAttempts", None)
|
response["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
response["ResponseMetadata"].pop("RequestId")
|
||||||
assert response == {
|
assert response == {
|
||||||
"ResponseMetadata": {"HTTPStatusCode": 201},
|
"ResponseMetadata": {"HTTPStatusCode": 201},
|
||||||
"statusCode": "200",
|
"statusCode": "200",
|
||||||
@ -450,6 +455,7 @@ def test_create_method_response():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
response["ResponseMetadata"].pop("RetryAttempts", None)
|
response["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
response["ResponseMetadata"].pop("RequestId")
|
||||||
assert response == {
|
assert response == {
|
||||||
"ResponseMetadata": {"HTTPStatusCode": 200},
|
"ResponseMetadata": {"HTTPStatusCode": 200},
|
||||||
"statusCode": "200",
|
"statusCode": "200",
|
||||||
@ -461,6 +467,7 @@ def test_create_method_response():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
response["ResponseMetadata"].pop("RetryAttempts", None)
|
response["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
response["ResponseMetadata"].pop("RequestId")
|
||||||
assert response == {"ResponseMetadata": {"HTTPStatusCode": 204}}
|
assert response == {"ResponseMetadata": {"HTTPStatusCode": 204}}
|
||||||
|
|
||||||
|
|
||||||
@ -540,6 +547,7 @@ def test_integrations():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
response["ResponseMetadata"].pop("RetryAttempts", None)
|
response["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
response["ResponseMetadata"].pop("RequestId")
|
||||||
assert response == {
|
assert response == {
|
||||||
"ResponseMetadata": {"HTTPStatusCode": 201},
|
"ResponseMetadata": {"HTTPStatusCode": 201},
|
||||||
"httpMethod": "POST",
|
"httpMethod": "POST",
|
||||||
@ -560,6 +568,7 @@ def test_integrations():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
response["ResponseMetadata"].pop("RetryAttempts", None)
|
response["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
response["ResponseMetadata"].pop("RequestId")
|
||||||
assert response == {
|
assert response == {
|
||||||
"ResponseMetadata": {"HTTPStatusCode": 200},
|
"ResponseMetadata": {"HTTPStatusCode": 200},
|
||||||
"httpMethod": "POST",
|
"httpMethod": "POST",
|
||||||
@ -578,6 +587,7 @@ def test_integrations():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
response["ResponseMetadata"].pop("RetryAttempts", None)
|
response["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
response["ResponseMetadata"].pop("RequestId")
|
||||||
assert response["resourceMethods"]["GET"]["httpMethod"] == "GET"
|
assert response["resourceMethods"]["GET"]["httpMethod"] == "GET"
|
||||||
assert response["resourceMethods"]["GET"]["authorizationType"] == "none"
|
assert response["resourceMethods"]["GET"]["authorizationType"] == "none"
|
||||||
assert response["resourceMethods"]["GET"]["methodIntegration"] == {
|
assert response["resourceMethods"]["GET"]["methodIntegration"] == {
|
||||||
@ -678,6 +688,7 @@ def test_integration_response():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
response["ResponseMetadata"].pop("RetryAttempts", None)
|
response["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
response["ResponseMetadata"].pop("RequestId")
|
||||||
assert response == {
|
assert response == {
|
||||||
"statusCode": "200",
|
"statusCode": "200",
|
||||||
"selectionPattern": "foobar",
|
"selectionPattern": "foobar",
|
||||||
@ -695,6 +706,7 @@ def test_integration_response():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
response["ResponseMetadata"].pop("RetryAttempts", None)
|
response["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
response["ResponseMetadata"].pop("RequestId")
|
||||||
assert response == {
|
assert response == {
|
||||||
"statusCode": "200",
|
"statusCode": "200",
|
||||||
"selectionPattern": "foobar",
|
"selectionPattern": "foobar",
|
||||||
@ -710,6 +722,7 @@ def test_integration_response():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
response["ResponseMetadata"].pop("RetryAttempts", None)
|
response["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
response["ResponseMetadata"].pop("RequestId")
|
||||||
assert response["methodIntegration"]["integrationResponses"] == {
|
assert response["methodIntegration"]["integrationResponses"] == {
|
||||||
"200": {
|
"200": {
|
||||||
"responseTemplates": {}, # Note: TF compatibility
|
"responseTemplates": {}, # Note: TF compatibility
|
||||||
@ -760,6 +773,7 @@ def test_integration_response():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
response["ResponseMetadata"].pop("RetryAttempts", None)
|
response["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
response["ResponseMetadata"].pop("RequestId")
|
||||||
assert response == {
|
assert response == {
|
||||||
"statusCode": "200",
|
"statusCode": "200",
|
||||||
"selectionPattern": "foobar",
|
"selectionPattern": "foobar",
|
||||||
@ -774,6 +788,7 @@ def test_integration_response():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
response["ResponseMetadata"].pop("RetryAttempts", None)
|
response["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
response["ResponseMetadata"].pop("RequestId")
|
||||||
assert response == {
|
assert response == {
|
||||||
"statusCode": "200",
|
"statusCode": "200",
|
||||||
"selectionPattern": "foobar",
|
"selectionPattern": "foobar",
|
||||||
@ -810,6 +825,7 @@ def test_update_authorizer_configuration():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
response["ResponseMetadata"].pop("RetryAttempts", None)
|
response["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
response["ResponseMetadata"].pop("RequestId")
|
||||||
assert response == {
|
assert response == {
|
||||||
"id": authorizer_id,
|
"id": authorizer_id,
|
||||||
"name": authorizer_name,
|
"name": authorizer_name,
|
||||||
@ -903,6 +919,7 @@ def test_create_authorizer():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
response["ResponseMetadata"].pop("RetryAttempts", None)
|
response["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
response["ResponseMetadata"].pop("RequestId")
|
||||||
assert response == {
|
assert response == {
|
||||||
"id": authorizer_id,
|
"id": authorizer_id,
|
||||||
"name": authorizer_name,
|
"name": authorizer_name,
|
||||||
@ -928,6 +945,7 @@ def test_create_authorizer():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
response["ResponseMetadata"].pop("RetryAttempts", None)
|
response["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
response["ResponseMetadata"].pop("RequestId")
|
||||||
|
|
||||||
assert response["items"][0]["id"] in [authorizer_id, authorizer_id2]
|
assert response["items"][0]["id"] in [authorizer_id, authorizer_id2]
|
||||||
assert response["items"][1]["id"] in [authorizer_id, authorizer_id2]
|
assert response["items"][1]["id"] in [authorizer_id, authorizer_id2]
|
||||||
@ -945,6 +963,7 @@ def test_create_authorizer():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
response["ResponseMetadata"].pop("RetryAttempts", None)
|
response["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
response["ResponseMetadata"].pop("RequestId")
|
||||||
|
|
||||||
assert response == {
|
assert response == {
|
||||||
"name": new_authorizer_name_with_vars,
|
"name": new_authorizer_name_with_vars,
|
||||||
@ -992,6 +1011,7 @@ def test_delete_authorizer():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
response["ResponseMetadata"].pop("RetryAttempts", None)
|
response["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
response["ResponseMetadata"].pop("RequestId")
|
||||||
assert response == {
|
assert response == {
|
||||||
"id": authorizer_id,
|
"id": authorizer_id,
|
||||||
"name": authorizer_name,
|
"name": authorizer_name,
|
||||||
@ -1069,6 +1089,7 @@ def test_put_integration_response_with_response_template():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
response["ResponseMetadata"].pop("RetryAttempts", None)
|
response["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
response["ResponseMetadata"].pop("RequestId")
|
||||||
assert response == {
|
assert response == {
|
||||||
"statusCode": "200",
|
"statusCode": "200",
|
||||||
"selectionPattern": "foobar",
|
"selectionPattern": "foobar",
|
||||||
|
@ -187,6 +187,7 @@ def test_create_function_from_zipfile():
|
|||||||
result["ResponseMetadata"].pop("HTTPHeaders", None)
|
result["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
# Botocore inserts retry attempts not seen in Python27
|
# Botocore inserts retry attempts not seen in Python27
|
||||||
result["ResponseMetadata"].pop("RetryAttempts", None)
|
result["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
result["ResponseMetadata"].pop("RequestId")
|
||||||
result.pop("LastModified")
|
result.pop("LastModified")
|
||||||
|
|
||||||
assert result == {
|
assert result == {
|
||||||
@ -800,6 +801,7 @@ def test_delete_function():
|
|||||||
success_result["ResponseMetadata"].pop("HTTPHeaders", None)
|
success_result["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
# Botocore inserts retry attempts not seen in Python27
|
# Botocore inserts retry attempts not seen in Python27
|
||||||
success_result["ResponseMetadata"].pop("RetryAttempts", None)
|
success_result["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
success_result["ResponseMetadata"].pop("RequestId")
|
||||||
|
|
||||||
assert success_result == {"ResponseMetadata": {"HTTPStatusCode": 204}}
|
assert success_result == {"ResponseMetadata": {"HTTPStatusCode": 204}}
|
||||||
|
|
||||||
@ -1028,6 +1030,7 @@ def test_list_create_list_get_delete_list():
|
|||||||
func["ResponseMetadata"].pop("HTTPHeaders", None)
|
func["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
# Botocore inserts retry attempts not seen in Python27
|
# Botocore inserts retry attempts not seen in Python27
|
||||||
func["ResponseMetadata"].pop("RetryAttempts", None)
|
func["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
func["ResponseMetadata"].pop("RequestId")
|
||||||
func["Configuration"].pop("LastModified")
|
func["Configuration"].pop("LastModified")
|
||||||
func["Configuration"].pop("FunctionArn")
|
func["Configuration"].pop("FunctionArn")
|
||||||
|
|
||||||
|
@ -36,6 +36,8 @@ def test_create_user_pool():
|
|||||||
assert result["UserPool"]["Name"] == name
|
assert result["UserPool"]["Name"] == name
|
||||||
assert result["UserPool"]["LambdaConfig"]["PreSignUp"] == value
|
assert result["UserPool"]["LambdaConfig"]["PreSignUp"] == value
|
||||||
|
|
||||||
|
assert "RequestId" in result["ResponseMetadata"]
|
||||||
|
|
||||||
|
|
||||||
@mock_aws
|
@mock_aws
|
||||||
def test_create_user_pool__overwrite_template_messages():
|
def test_create_user_pool__overwrite_template_messages():
|
||||||
|
@ -1985,6 +1985,7 @@ def test_put_evaluations():
|
|||||||
# this is hard to match against, so remove it
|
# this is hard to match against, so remove it
|
||||||
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
response["ResponseMetadata"].pop("HTTPHeaders", None)
|
||||||
response["ResponseMetadata"].pop("RetryAttempts", None)
|
response["ResponseMetadata"].pop("RetryAttempts", None)
|
||||||
|
response["ResponseMetadata"].pop("RequestId")
|
||||||
assert response == {
|
assert response == {
|
||||||
"FailedEvaluations": [],
|
"FailedEvaluations": [],
|
||||||
"ResponseMetadata": {"HTTPStatusCode": 200},
|
"ResponseMetadata": {"HTTPStatusCode": 200},
|
||||||
|
@ -41,7 +41,7 @@ class TestDifferentAccountsDoesNotBreakSeeding:
|
|||||||
instances = self.ec2_client.run_instances(MaxCount=1, MinCount=1)["Instances"]
|
instances = self.ec2_client.run_instances(MaxCount=1, MinCount=1)["Instances"]
|
||||||
|
|
||||||
instance_ids = [instance["InstanceId"] for instance in instances]
|
instance_ids = [instance["InstanceId"] for instance in instances]
|
||||||
assert instance_ids == ["i-dc50244d2b9e8e0b7"]
|
assert instance_ids == ["i-0df6e943394d7fdb0"]
|
||||||
|
|
||||||
def test_1(self) -> None:
|
def test_1(self) -> None:
|
||||||
# Create some data in a different account (111111111111)
|
# Create some data in a different account (111111111111)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user