Source code for idem_aws.exec.aws.ec2.route_table_association

"""Exec module for managing EC2 route table associations."""
from typing import Dict


[docs]async def get( hub, ctx, route_table_id: str, name: str = None, resource_id: str = None, gateway_id: str = None, subnet_id: str = None, ) -> Dict: """ Get a route table association of a route table using Association ID, Gateway ID or Subnet ID. Args: route_table_id(str): ID of the AWS Route table. name(str, Optional): The name of the Idem state. resource_id(str, Optional): The route table association ID. gateway_id(str, Optional): The ID of the internet gateway or virtual private gateway. subnet_id(str, Optional): The ID of the subnet. Returns: Dict[str, Any]: Returns security group in present format Examples: Calling this exec module function from the cli with filters .. code-block:: bash idem exec aws.ec2.route_table_association.get name="my_resource" route_table_id=rtb-13ewdeae resource_id=rtbassoc-0rera607rre12a2c5 Using in a state: .. code-block:: yaml my_unmanaged_resource: exec.run: - path: aws.ec2.route_table_association.get - kwargs: name: my_resource route_table_id: rtb-13ewdeae resource_id: rtbassoc-0rera607rre12a2c5 """ result = dict(comment=[], ret=None, result=True) route_table_ret = await hub.exec.boto3.client.ec2.describe_route_tables( ctx, RouteTableIds=[route_table_id] ) if not route_table_ret["result"]: if "InvalidRouteTableID.NotFound" in str(route_table_ret.get("comment", "")): result["comment"].append( hub.tool.aws.comment_utils.get_empty_comment( resource_type="aws.ec2.route_table_association", name=name ) ) result["result"] = False result["comment"] += list(route_table_ret["comment"]) return result result["comment"] += list(route_table_ret.get("comment", "")) result["result"] = False return result if not route_table_ret.get("ret", {}).get("RouteTables"): result["comment"].append( hub.tool.aws.comment_utils.get_empty_comment( resource_type="aws.ec2.route_table_association", name=name ) ) return result resource = route_table_ret["ret"].get("RouteTables")[0] association = hub.tool.aws.ec2.route_table.get_route_table_association_by_id( resource["Associations"], resource_id=resource_id, gateway_id=gateway_id, subnet_id=subnet_id, ) if not association["result"]: result["comment"].append( hub.tool.aws.comment_utils.get_empty_comment( resource_type="aws.ec2.route_table_association", name=name ) ) return result result[ "ret" ] = hub.tool.aws.ec2.conversion_utils.convert_raw_route_table_association_to_present( resource=association["ret"], idem_resource_name=name, ) return result