Source code for idem_aws.exec.aws.ecr.repository_policy

"""Exec module for managing Amazon ECR repository policies."""
from typing import Any
from typing import Dict


[docs]async def get( hub, ctx, name: str, resource_id: str, registry_id: str = None ) -> Dict[str, Any]: """Retrieves the repository policy for the specified repository. Args: name(str): An Idem name of the resource. resource_id(str): The name of the ECR repository in Amazon Web Services. registry_id(str, Optional): The Amazon Web Services account ID associated with the registry that contains the repository to search. If you do not specify a registry, the default registry is assumed. Returns: Dict[str, Any]: Return the repository policy for the specified repository. Examples: Calling this exec module function from the cli: .. code-block:: bash idem exec aws.ecr.repository_policy.get name='idem_name' resource_id='ecr_repository_name' Calling this exec module function from within a state: .. code-block:: yaml my_unmanaged_resource: exec.run: - path: aws.ecr.repository_policy.get - kwargs: name: 'idem_name' resource_id: 'ecr_repository_name' """ result = dict(comment=[], ret=None, result=True) get_policy_ret = await hub.exec.boto3.client.ecr.get_repository_policy( ctx=ctx, registryId=registry_id, repositoryName=resource_id ) # Case: Error if not get_policy_ret["result"]: # Do not return success=false when it is not found. if "RepositoryNotFoundException" in str( get_policy_ret["comment"] ) or "RepositoryPolicyNotFoundException" in str(get_policy_ret["comment"]): result["comment"].append( hub.tool.aws.comment_utils.get_empty_comment( resource_type="aws.ecr.repository_policy", name=name ) ) result["comment"] += list(get_policy_ret["comment"]) return result result["comment"] += list(get_policy_ret["comment"]) result["result"] = False return result # Case: Empty results if not get_policy_ret["ret"]: result["comment"].append( hub.tool.aws.comment_utils.get_empty_comment( resource_type="aws.ecr.repository_policy", name=resource_id ) ) return result # Case: Result found result[ "ret" ] = hub.tool.aws.ecr.conversion_utils.convert_raw_repository_policy_to_present( raw_resource=get_policy_ret.get("ret"), idem_resource_name=name, ) return result