From 53455f6b8a95b1b50b991253d9b25143076a5247 Mon Sep 17 00:00:00 2001 From: Mandar Kulkarni Date: Mon, 7 Oct 2024 17:08:04 -0700 Subject: [PATCH] move ec2 transit gateway api calls to module_utils/ec2 --- plugins/module_utils/ec2.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/plugins/module_utils/ec2.py b/plugins/module_utils/ec2.py index 9690e0d5cc..bd0b8d151a 100644 --- a/plugins/module_utils/ec2.py +++ b/plugins/module_utils/ec2.py @@ -1507,3 +1507,37 @@ def normalize_ec2_vpc_dhcp_config(option_config: List[Dict[str, Any]]) -> Dict[s config_data[option] = [val["Value"] for val in config_item["Values"]] return config_data + + +# EC2 Transit Gateway +class EC2TransitGatewayErrorHandler(AWSErrorHandler): + _CUSTOM_EXCEPTION = AnsibleEC2Error + + @classmethod + def _is_missing(cls): + return is_boto3_error_code("InvalidTransitGatewayID.NotFound") + + +@EC2TransitGatewayErrorHandler.list_error_handler("describe transit gateway", []) +@AWSRetry.jittered_backoff() +def describe_ec2_transit_gateways( + client, **params: Dict[str, Union[List[str], List[Dict[str, Union[str, List[str]]]]]] +) -> List[Dict[str, Any]]: + paginator = client.get_paginator("describe_transit_gateways") + return paginator.paginate(**params).build_full_result() + + +@EC2TransitGatewayErrorHandler.common_error_handler("create transit gateway") +@AWSRetry.jittered_backoff() +def create_ec2_transit_gateway( + client, **params: Dict[str, Union[List[str], List[Dict[str, Union[str, List[str]]]]]] +) -> List[Dict[str, Any]]: + return client.create_transit_gateway(**params) + + +@EC2TransitGatewayErrorHandler.deletion_error_handler("delete transit gateway") +@AWSRetry.jittered_backoff() +def delete_ec2_transit_gateway( + client, **params: Dict[str, Union[List[str], List[Dict[str, Union[str, List[str]]]]]] +) -> List[Dict[str, Any]]: + return client.delete_transit_gateway(**params)