aws-arn-0.3.1.0: Types and optics for manipulating Amazon Resource Names (ARNs)
Copyright(C) 2020-2023 Bellroy Pty Ltd
LicenseBSD-3-Clause
MaintainerBellroy Tech Team <haskell@bellroy.com>
Stabilityexperimental
Safe HaskellSafe-Inferred
LanguageHaskell2010
Extensions
  • OverloadedStrings
  • DisambiguateRecordFields
  • RecordPuns
  • DeriveGeneric
  • DeriveAnyClass
  • DerivingStrategies
  • DuplicateRecordFields

Network.AWS.ARN.S3

Description

 
Synopsis

S3 Object

data Object Source #

An AWS S3 object, made of a bucket and an object key.

>>> "bucket-name/my/object" ^? _Object
Just (Object {bucket = Bucket {bucketName = "bucket-name"}, objectKey = "my/object"})
>>> "bucket-name" ^? _Object
Nothing
>>> bucket <$> "bucket-name/my/object" ^? _Object
Just (Bucket {bucketName = "bucket-name"})

Since: 0.3.1.0

Constructors

Object 

Fields

Instances

Instances details
Generic Object Source # 
Instance details

Defined in Network.AWS.ARN.S3

Associated Types

type Rep Object :: Type -> Type #

Methods

from :: Object -> Rep Object x #

to :: Rep Object x -> Object #

Show Object Source # 
Instance details

Defined in Network.AWS.ARN.S3

Eq Object Source # 
Instance details

Defined in Network.AWS.ARN.S3

Methods

(==) :: Object -> Object -> Bool #

(/=) :: Object -> Object -> Bool #

Ord Object Source # 
Instance details

Defined in Network.AWS.ARN.S3

Hashable Object Source # 
Instance details

Defined in Network.AWS.ARN.S3

Methods

hashWithSalt :: Int -> Object -> Int #

hash :: Object -> Int #

type Rep Object Source # 
Instance details

Defined in Network.AWS.ARN.S3

type Rep Object = D1 ('MetaData "Object" "Network.AWS.ARN.S3" "aws-arn-0.3.1.0-7elo9Xf6HT0CSKr6icS218" 'False) (C1 ('MetaCons "Object" 'PrefixI 'True) (S1 ('MetaSel ('Just "bucket") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bucket) :*: S1 ('MetaSel ('Just "objectKey") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

parseObject :: Text -> Maybe Object Source #

Since: 0.3.1.0

renderObject :: Object -> Text Source #

Since: 0.3.1.0

S3 Bucket

newtype Bucket Source #

An AWS S3 bucket, without an object key.

>>> "bucket-name" ^? _Bucket
Just (Bucket {bucketName = "bucket-name"})
>>> "bucket-name/my/object" ^? _Bucket
Nothing
>>> let b = Bucket "my-bucket" in renderObject . Object b <$> ["obj1", "obj2"]
["my-bucket/obj1","my-bucket/obj2"]

Since: 0.3.1.0

Constructors

Bucket 

Fields

Instances

Instances details
Generic Bucket Source # 
Instance details

Defined in Network.AWS.ARN.S3

Associated Types

type Rep Bucket :: Type -> Type #

Methods

from :: Bucket -> Rep Bucket x #

to :: Rep Bucket x -> Bucket #

Show Bucket Source # 
Instance details

Defined in Network.AWS.ARN.S3

Eq Bucket Source # 
Instance details

Defined in Network.AWS.ARN.S3

Methods

(==) :: Bucket -> Bucket -> Bool #

(/=) :: Bucket -> Bucket -> Bool #

Ord Bucket Source # 
Instance details

Defined in Network.AWS.ARN.S3

Hashable Bucket Source # 
Instance details

Defined in Network.AWS.ARN.S3

Methods

hashWithSalt :: Int -> Bucket -> Int #

hash :: Bucket -> Int #

type Rep Bucket Source # 
Instance details

Defined in Network.AWS.ARN.S3

type Rep Bucket = D1 ('MetaData "Bucket" "Network.AWS.ARN.S3" "aws-arn-0.3.1.0-7elo9Xf6HT0CSKr6icS218" 'True) (C1 ('MetaCons "Bucket" 'PrefixI 'True) (S1 ('MetaSel ('Just "bucketName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

parseBucket :: Text -> Maybe Bucket Source #

Since: 0.3.1.0

renderBucket :: Bucket -> Text Source #

Since: 0.3.1.0

Prisms

_Object :: Prism' Text Object Source #

Since: 0.3.1.0

_Bucket :: Prism' Text Bucket Source #

Since: 0.3.1.0