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

from typing import Dict

__func_alias__ = {"list_": "list"}


[docs]async def get( hub, ctx, name, resource_id: str, ) -> Dict: """ Use an un-managed vpc_endpoint as a data-source. Supply resource_id as a filter. Args: name(str): The name of the Idem state. resource_id(str): An AWS vpc_endpoint resource_id to identify the resource. Returns: Dict[bool, list, dict or None]: Examples: Calling this exec module function from the cli with resource_id .. code-block:: bash idem exec aws.ec2.vpc_endpoint.get name="idem_name" resource_id="resource_id" Using in a state: .. code-block:: yaml my_unmanaged_resource: exec.run: - path: aws.ec2.vpc_endpoint.get - kwargs: name: my_resource resource_id: resource_id """ result = dict(comment=[], ret=None, result=True) resource_ret = await hub.exec.boto3.client.ec2.describe_vpc_endpoints( ctx, VpcEndpointIds=[resource_id] ) if not resource_ret["result"]: if "InvalidVpcEndpointId.NotFound" in str(resource_ret["comment"]): result["comment"].append( hub.tool.aws.comment_utils.get_empty_comment( resource_type="aws.ec2.vpc_endpoint", name=name ) ) result["comment"] += list(resource_ret["comment"]) return result result["comment"] += list(resource_ret["comment"]) result["result"] = resource_ret["result"] return result if not resource_ret["ret"]["VpcEndpoints"]: result["comment"].append( hub.tool.aws.comment_utils.get_empty_comment( resource_type="aws.ec2.vpc_endpoint", name=name ) ) return result result[ "ret" ] = hub.tool.aws.ec2.conversion_utils.convert_raw_vpc_endpoint_to_present( raw_resource=resource_ret["ret"]["VpcEndpoints"][0], idem_resource_name=name ) return result
[docs]async def list_(hub, ctx, name: str = None, filters=None) -> Dict: """ Use an un-managed VPC Endpoints as a data-source. Args: name (str, Optional): The name of the Idem state. filters(list, Optional): One or more filters: for example, tag :<key>, tag-key. A complete list of filters can be found at https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.describe_vpc_endpoints Returns: Dict[bool, list, dict or None]: Examples: Calling this exec module function from the cli .. code-block:: bash idem exec aws.ec2.vpc_endpoint.list name="idem_name" Using in a state: .. code-block:: yaml my_unmanaged_resource: exec.run: - path: aws.ec2.vpc_endpoint.list - kwargs: name: my_resource """ result = dict(comment=[], ret=[], result=True) if filters: filters = hub.tool.aws.search_utils.convert_search_filter_to_boto3( filters=filters ) ret = await hub.exec.boto3.client.ec2.describe_vpc_endpoints(ctx, Filters=filters) if not ret["result"]: result["comment"] += list(ret["comment"]) result["result"] = False return result if not ret["ret"]["VpcEndpoints"]: result["comment"].append( hub.tool.aws.comment_utils.list_empty_comment( resource_type="aws.ec2.vpc_endpoint", name=name ) ) return result for vpc_endpoint in ret["ret"]["VpcEndpoints"]: resource_id = vpc_endpoint.get("VpcEndpointId") converted_resource = ( hub.tool.aws.ec2.conversion_utils.convert_raw_vpc_endpoint_to_present( vpc_endpoint, idem_resource_name=resource_id ) ) result["ret"].append(converted_resource) return result