driftctl/pkg/resource/aws/aws_s3_bucket.go

149 lines
5.9 KiB
Go

// GENERATED, DO NOT EDIT THIS FILE
package aws
import (
"github.com/cloudskiff/driftctl/pkg/resource"
"github.com/zclconf/go-cty/cty"
)
const AwsS3BucketResourceType = "aws_s3_bucket"
type AwsS3Bucket struct {
AccelerationStatus *string `cty:"acceleration_status" computed:"true"`
Acl *string `cty:"acl" diff:"-"`
Arn *string `cty:"arn" computed:"true"`
Bucket *string `cty:"bucket" computed:"true"`
BucketDomainName *string `cty:"bucket_domain_name" computed:"true"`
BucketPrefix *string `cty:"bucket_prefix"`
BucketRegionalDomainName *string `cty:"bucket_regional_domain_name" computed:"true"`
ForceDestroy *bool `cty:"force_destroy" diff:"-"`
HostedZoneId *string `cty:"hosted_zone_id" computed:"true"`
Id string `cty:"id" computed:"true"`
Policy *string `cty:"policy" jsonstring:"true"`
Region *string `cty:"region" computed:"true"`
RequestPayer *string `cty:"request_payer" computed:"true"`
Tags map[string]string `cty:"tags"`
WebsiteDomain *string `cty:"website_domain" computed:"true"`
WebsiteEndpoint *string `cty:"website_endpoint" computed:"true"`
CorsRule *[]struct {
AllowedHeaders []string `cty:"allowed_headers"`
AllowedMethods []string `cty:"allowed_methods"`
AllowedOrigins []string `cty:"allowed_origins"`
ExposeHeaders []string `cty:"expose_headers"`
MaxAgeSeconds *int `cty:"max_age_seconds"`
} `cty:"cors_rule"`
Grant *[]struct {
Id string `cty:"id"`
Permissions []string `cty:"permissions"`
Type *string `cty:"type"`
Uri *string `cty:"uri"`
} `cty:"grant"`
LifecycleRule *[]struct {
AbortIncompleteMultipartUploadDays *int `cty:"abort_incomplete_multipart_upload_days"`
Enabled *bool `cty:"enabled"`
Id string `cty:"id" computed:"true"`
Prefix *string `cty:"prefix"`
Tags map[string]string `cty:"tags"`
Expiration *[]struct {
Date *string `cty:"date"`
Days *int `cty:"days"`
ExpiredObjectDeleteMarker *bool `cty:"expired_object_delete_marker"`
} `cty:"expiration"`
NoncurrentVersionExpiration *[]struct {
Days *int `cty:"days"`
} `cty:"noncurrent_version_expiration"`
NoncurrentVersionTransition *[]struct {
Days *int `cty:"days"`
StorageClass *string `cty:"storage_class"`
} `cty:"noncurrent_version_transition"`
Transition *[]struct {
Date *string `cty:"date"`
Days *int `cty:"days"`
StorageClass *string `cty:"storage_class"`
} `cty:"transition"`
} `cty:"lifecycle_rule"`
Logging *[]struct {
TargetBucket *string `cty:"target_bucket"`
TargetPrefix *string `cty:"target_prefix"`
} `cty:"logging"`
ObjectLockConfiguration *[]struct {
ObjectLockEnabled *string `cty:"object_lock_enabled"`
Rule *[]struct {
DefaultRetention *[]struct {
Days *int `cty:"days"`
Mode *string `cty:"mode"`
Years *int `cty:"years"`
} `cty:"default_retention"`
} `cty:"rule"`
} `cty:"object_lock_configuration"`
ReplicationConfiguration *[]struct {
Role *string `cty:"role"`
Rules *[]struct {
Id string `cty:"id"`
Prefix *string `cty:"prefix"`
Priority *int `cty:"priority"`
Status *string `cty:"status"`
Destination *[]struct {
AccountId *string `cty:"account_id"`
Bucket *string `cty:"bucket"`
ReplicaKmsKeyId *string `cty:"replica_kms_key_id"`
StorageClass *string `cty:"storage_class"`
AccessControlTranslation *[]struct {
Owner *string `cty:"owner"`
} `cty:"access_control_translation"`
} `cty:"destination"`
Filter *[]struct {
Prefix *string `cty:"prefix"`
Tags map[string]string `cty:"tags"`
} `cty:"filter"`
SourceSelectionCriteria *[]struct {
SseKmsEncryptedObjects *[]struct {
Enabled *bool `cty:"enabled"`
} `cty:"sse_kms_encrypted_objects"`
} `cty:"source_selection_criteria"`
} `cty:"rules"`
} `cty:"replication_configuration"`
ServerSideEncryptionConfiguration *[]struct {
Rule *[]struct {
ApplyServerSideEncryptionByDefault *[]struct {
KmsMasterKeyId *string `cty:"kms_master_key_id"`
SseAlgorithm *string `cty:"sse_algorithm"`
} `cty:"apply_server_side_encryption_by_default"`
} `cty:"rule"`
} `cty:"server_side_encryption_configuration"`
Versioning *[]struct {
Enabled *bool `cty:"enabled"`
MfaDelete *bool `cty:"mfa_delete"`
} `cty:"versioning"`
Website *[]struct {
ErrorDocument *string `cty:"error_document"`
IndexDocument *string `cty:"index_document"`
RedirectAllRequestsTo *string `cty:"redirect_all_requests_to"`
RoutingRules *string `cty:"routing_rules"`
} `cty:"website"`
CtyVal *cty.Value `diff:"-"`
}
func (r *AwsS3Bucket) TerraformId() string {
return r.Id
}
func (r *AwsS3Bucket) TerraformType() string {
return AwsS3BucketResourceType
}
func (r *AwsS3Bucket) CtyValue() *cty.Value {
return r.CtyVal
}
func initAwsS3BucketMetaData(resourceSchemaRepository resource.SchemaRepositoryInterface) {
resourceSchemaRepository.UpdateSchema(AwsS3BucketResourceType, map[string]func(attributeSchema *resource.AttributeSchema){
"policy": func(attributeSchema *resource.AttributeSchema) {
attributeSchema.JsonString = true
},
})
resourceSchemaRepository.SetNormalizeFunc(AwsS3BucketResourceType, func(val *resource.Attributes) {
val.SafeDelete([]string{"force_destroy"})
})
}