Source code for idem_aws.exec.aws.apigateway.domain_name
"""Exec module for AWS API Gateway Domain Name resources."""
__func_alias__ = {"list_": "list"}
from typing import Dict
[docs]async def get(hub, ctx, name: str, resource_id: str) -> Dict:
"""
Get an API Gateway domain name resource from AWS with the domain name as the resource_id.
Args:
name(str):
The name of the Idem state domain name.
resource_id(str):
AWS API Gateway domain name.
Returns:
Dict[str, Any]
Examples:
Calling from the CLI:
.. code-block:: bash
$ idem exec aws.apigateway.domain_name.get name="unmanaged_domain_names"
Using in a state:
.. code-block:: yaml
my_unmanaged_resource:
exec.run:
- path: aws.apigateway.domain_name.get
- kwargs:
name: unmanaged_domain_name
resource_id: resource_id
"""
result = dict(comment=[], ret=None, result=True)
ret = await hub.exec.boto3.client.apigateway.get_domain_name(
ctx=ctx, domainName=resource_id
)
if not ret["result"]:
if "NotFoundException" in str(ret["comment"]):
result["comment"].append(
hub.tool.aws.comment_utils.get_empty_comment(
resource_type="aws.apigateway.domain_name", name=name
)
)
result["comment"] += list(ret["comment"])
return result
result["comment"] += list(ret["comment"])
result["result"] = False
return result
result[
"ret"
] = hub.tool.aws.apigateway.domain_name.convert_raw_domain_name_to_present(
raw_resource=ret["ret"], idem_resource_name=name
)
return result
[docs]async def list_(hub, ctx, name: str = None):
"""Get the list of domain names for AWS APIGateway.
Args:
name (str, Optional):
The name of the Idem state for logging.
Returns:
Dict[str, Any]
Examples:
Calling from the CLI:
.. code-block:: bash
idem exec aws.apigateway.domain_name.list
Calling this exec module function from within a state:
.. code-block:: yaml
my_unmanaged_resource:
exec.run:
- path: aws.apigateway.domain_name.list
- kwargs:
name: my-resource-name
"""
result = dict(comment=[], ret=[], result=True)
get_domain_names_ret = await hub.exec.boto3.client.apigateway.get_domain_names(ctx)
if (
"NotFoundException" in str(get_domain_names_ret["comment"])
or get_domain_names_ret["ret"]["items"] == []
):
result["comment"].append(
hub.tool.aws.comment_utils.get_empty_comment(
resource_type="aws.apigateway.domain_name", name="domain_name_resource"
)
)
return []
for domain_name in get_domain_names_ret["ret"]["items"]:
idem_resource_name = domain_name["domainName"]
get_translated_resource = (
hub.tool.aws.apigateway.domain_name.convert_raw_domain_name_to_present(
raw_resource=domain_name, idem_resource_name=idem_resource_name
)
)
result["ret"].append(get_translated_resource)
return result