Source code for idem_aws.exec.aws.ses.domain_identity
"""Exec module for managing SES Domain Identity."""
__func_alias__ = {"list_": "list"}
[docs]async def get(hub, ctx, resource_id: str):
"""Get SES domain identity from AWS account.
Get a single domain identity from AWS.
Args:
resource_id (str):
The domain identity.
Returns:
Dict[str, Any]:
Returns domain identity in present format
Examples:
Calling this exec module function from the cli
.. code-block:: bash
idem exec aws.ses.domain_identity.get resource_id="example.com"
Using in a state:
.. code-block:: yaml
my_unmanaged_resource:
exec.run:
- path: aws.ses.domain_identity.get
- kwargs:
resource_id:"example.com"
"""
result = dict(comment=[], ret=None, result=True)
ret = await hub.exec.aws.ses.domain_identity.list(ctx, [resource_id])
if not ret["result"]:
result["comment"] += list(ret["comment"])
result["result"] = False
return result
if len(ret["ret"]) != 0:
result["ret"] = ret["ret"][0]
return result
[docs]async def list_(hub, ctx, identities: list = None):
"""List SES domain identities from AWS account.
Fetch a list of domain identities from AWS. The function returns empty list when no resource is found.
Args:
identities (str, Optional):
The domain identities.
If no identity is specified, it will return all the identities present in AWS account.
Returns:
Dict[str, Any]:
Return domain identities in present format
Examples:
Calling this exec module function from the cli
.. code-block:: bash
idem exec aws.ses.domain_identity.list identity=["example.com"]
Using in a state:
.. code-block:: yaml
my_unmanaged_resource:
exec.run:
- path: aws.ses.domain_identity.list
- kwargs:
identity:"example.com"
"""
result = dict(comment=[], ret=[], result=True)
if not identities:
ret_list = await hub.exec.boto3.client.ses.list_identities(ctx)
if not ret_list["result"]:
result["comment"] += list(ret_list["comment"])
result["result"] = False
hub.log.debug(f"Could not list identities {ret_list['comment']}")
return result
if not ret_list.get("ret"):
result["comment"] += ["No domain identities present"]
return result
identities = ret_list["ret"].get("Identities")
ret = await hub.exec.boto3.client.ses.get_identity_verification_attributes(
ctx, Identities=identities
)
if not ret["result"]:
result["comment"] += list(ret["comment"])
result["result"] = False
return result
identities = ret["ret"]["VerificationAttributes"]
for identity in identities:
result["ret"].append(
hub.tool.aws.ses.conversion_utils.convert_raw_domain_identity_to_present(
ctx,
raw_resource=identity,
)
)
return result