Source code for idem_aws.exec.aws.s3.bucket

"""Exec module for managing s3 bucket."""
from typing import Dict

__func_alias__ = {"list_": "list"}


[docs]async def get(hub, ctx, name: str, resource_id: str) -> Dict: """Returns the S3 bucket. Args: name(str): The name of the Idem state. resource_id(str): AWS S3 bucket name. Examples: Calling from the CLI: .. code-block:: bash $ idem exec aws.s3.bucket.get name="bucket-name" resource_id="bucket-id" Using in a state: .. code-block:: yaml get_a_bucket: exec.run: - path: aws.s3.bucket.get - kwargs: name: bucket-name resource_id: bucket-id """ result = dict(comment=[], ret=None, result=True) resource = await hub.tool.boto3.resource.create(ctx, "s3", "Bucket", resource_id) ret = await hub.tool.boto3.resource.describe(resource) if not ret: result["comment"].append( hub.tool.aws.comment_utils.get_empty_comment( resource_type="aws.s3.bucket", name=name ) ) return result result[ "ret" ] = await hub.tool.aws.s3.conversion_utils.convert_raw_s3_to_present_async( ctx, idem_resource_name=resource_id ) return result
[docs]async def list_( hub, ctx, name: str = None, ) -> Dict: """Fetch a list of bucket from AWS that are owned by the calling user. The function returns empty list when no resource is found. Args: name(str, Optional): The name of the Idem state. Examples: Calling from the CLI: .. code-block:: bash $ idem exec aws.s3.bucket.list name="bucket-search-for-user-A" Using in a state: .. code-block:: yaml buckets_list: exec.run: - path: aws.s3.bucket.list """ result = dict(comment=[], ret=[], result=True) ret = await hub.exec.boto3.client.s3.list_buckets(ctx) if not ret["result"]: result["comment"] += list(ret["comment"]) result["result"] = False return result if not ret["ret"]["Buckets"]: result["comment"].append( hub.tool.aws.comment_utils.list_empty_comment( resource_type="aws.s3.bucket", name=name ) ) return result for bucket in ret["ret"]["Buckets"]: result["ret"].append( await hub.tool.aws.s3.conversion_utils.convert_raw_s3_to_present_async( ctx=ctx, idem_resource_name=bucket["Name"] ) ) return result