Documentation ¶
Index ¶
- Constants
- func IsAccessDenied(err error) bool
- func IsBucketAlreadyExists(err error) bool
- func IsBucketAlreadyOwnedByYou(err error) bool
- func IsBucketNotEmpty(err error) bool
- func IsBucketNotFound(err error) bool
- func IsInvalidConfig(err error) bool
- func IsNotFound(err error) bool
- func IsWrongType(err error) bool
- type BucketState
- type Clients
- type Config
- type Resource
- func (r *Resource) ApplyCreateChange(ctx context.Context, obj, createChange interface{}) error
- func (r *Resource) ApplyDeleteChange(ctx context.Context, obj, deleteChange interface{}) error
- func (r *Resource) ApplyUpdateChange(ctx context.Context, obj, updateChange interface{}) error
- func (r *Resource) GetCurrentState(ctx context.Context, obj interface{}) (interface{}, error)
- func (r *Resource) GetDesiredState(ctx context.Context, obj interface{}) (interface{}, error)
- func (r *Resource) Name() string
- func (r *Resource) NewDeletePatch(ctx context.Context, obj, currentState, desiredState interface{}) (*crud.Patch, error)
- func (r *Resource) NewUpdatePatch(ctx context.Context, obj, currentState, desiredState interface{}) (*crud.Patch, error)
- type S3Client
Constants ¶
const ( // LogDeliveryURI is used for setting the correct ACL in the access log bucket. LogDeliveryURI = "uri=http://acs.amazonaws.com/groups/s3/LogDelivery" // S3BucketEncryptionAlgorithm is used to determine which algorithm use S3 to encrypt buckets. S3BucketEncryptionAlgorithm = "AES256" )
const ( // Name is the identifier of the resource. Name = "s3bucket" // LifecycleLoggingBucketID is the Lifecycle ID for the logging bucket LifecycleLoggingBucketID = "ExpirationLogs" )
Variables ¶
This section is empty.
Functions ¶
func IsAccessDenied ¶
IsAccessDenied asserts access denied error on s3 bucket operation.
func IsBucketAlreadyExists ¶
IsBucketAlreadyExists asserts bucket already exists error from upstream's API code.
func IsBucketAlreadyOwnedByYou ¶
IsBucketAlreadyOwnedByYou asserts bucket already owned by you error from upstream's API code.
func IsBucketNotEmpty ¶
IsBucketNotEmpty asserts bucketNotEmptyError. It also checks for BucketNotEmpty error codes from the AWS SDK. An error we expect looks like the one below.
BucketNotEmpty: The bucket you tried to delete is not empty\n\tstatus code: 409, request id: 4B2CDF3222517C9D, host id: mOJAOuJsV/3CEeAkyTw1k3s5HLFsa5PHMkUfZv5lqtOKxiR67jclbqIHrzvtDa7E676h908MIY0=
func IsBucketNotFound ¶
IsBucketNotFound asserts bucket not found error from upstream's API code.
func IsInvalidConfig ¶
IsInvalidConfig asserts invalidConfigError.
Types ¶
type BucketState ¶
BucketState is the state representation on which the resource methods work.
type Config ¶
type Config struct { // Dependencies. Logger micrologger.Logger CtrlClient client.Client // Settings. AccessLogsExpiration int DeleteLoggingBucket bool IncludeTags bool InstallationName string }
Config represents the configuration used to create a new s3bucket resource.
type Resource ¶
type Resource struct {
// contains filtered or unexported fields
}
Resource implements the s3bucket resource.
func (*Resource) ApplyCreateChange ¶
func (*Resource) ApplyDeleteChange ¶
func (*Resource) ApplyUpdateChange ¶
func (*Resource) GetCurrentState ¶
func (*Resource) GetDesiredState ¶
func (*Resource) NewDeletePatch ¶
type S3Client ¶
type S3Client interface { CreateBucket(*s3.CreateBucketInput) (*s3.CreateBucketOutput, error) DeleteBucket(*s3.DeleteBucketInput) (*s3.DeleteBucketOutput, error) DeleteObject(*s3.DeleteObjectInput) (*s3.DeleteObjectOutput, error) DeleteObjects(*s3.DeleteObjectsInput) (*s3.DeleteObjectsOutput, error) GetBucketLogging(*s3.GetBucketLoggingInput) (*s3.GetBucketLoggingOutput, error) HeadBucket(*s3.HeadBucketInput) (*s3.HeadBucketOutput, error) ListObjectsV2(*s3.ListObjectsV2Input) (*s3.ListObjectsV2Output, error) PutBucketAcl(*s3.PutBucketAclInput) (*s3.PutBucketAclOutput, error) PutBucketLifecycleConfiguration(*s3.PutBucketLifecycleConfigurationInput) (*s3.PutBucketLifecycleConfigurationOutput, error) PutBucketLogging(*s3.PutBucketLoggingInput) (*s3.PutBucketLoggingOutput, error) PutBucketTagging(*s3.PutBucketTaggingInput) (*s3.PutBucketTaggingOutput, error) }
S3Client describes the methods required to be implemented by a S3 AWS client.