Skip to content

Instantly share code, notes, and snippets.

@adamwg
Created December 3, 2025 21:46
Show Gist options
  • Select an option

  • Save adamwg/c2ff04652872a574a0da88ef401dc534 to your computer and use it in GitHub Desktop.

Select an option

Save adamwg/c2ff04652872a574a0da88ef401dc534 to your computer and use it in GitHub Desktop.
Go codegen example
// Package v1beta2 contains generated models.
//
// Code generated by github.com/upbound/up version v0.40.0-0.rc.2 DO NOT EDIT.
package v1beta2
import (
metav1 "dev.upbound.io/models/io/k8s/meta/v1"
"time"
)
// Use time to avoid unused import errors.
var (
_ *time.Time = nil
)
// Defines values for BucketAPIVersion.
const (
BucketAPIVersionstorageGcpUpboundIoV1Beta2 BucketAPIVersion = "storage.gcp.upbound.io/v1beta2"
)
// Defines values for BucketKind.
const (
BucketKindBucket BucketKind = "Bucket"
)
// Defines values for BucketSpecDeletionPolicy.
const (
BucketSpecDeletionPolicyDelete BucketSpecDeletionPolicy = "Delete"
BucketSpecDeletionPolicyOrphan BucketSpecDeletionPolicy = "Orphan"
)
// Defines values for BucketSpecManagementPoliciesItem.
const (
BucketSpecManagementPoliciesItemBucketSpecManagementPoliciesItem BucketSpecManagementPoliciesItem = "*"
BucketSpecManagementPoliciesItemBucketSpecManagementPoliciesItemCreate BucketSpecManagementPoliciesItem = "Create"
BucketSpecManagementPoliciesItemBucketSpecManagementPoliciesItemDelete BucketSpecManagementPoliciesItem = "Delete"
BucketSpecManagementPoliciesItemBucketSpecManagementPoliciesItemLateInitialize BucketSpecManagementPoliciesItem = "LateInitialize"
BucketSpecManagementPoliciesItemBucketSpecManagementPoliciesItemObserve BucketSpecManagementPoliciesItem = "Observe"
BucketSpecManagementPoliciesItemBucketSpecManagementPoliciesItemUpdate BucketSpecManagementPoliciesItem = "Update"
)
// Defines values for BucketSpecProviderConfigRefPolicyResolution.
const (
BucketSpecProviderConfigRefPolicyResolutionOptional BucketSpecProviderConfigRefPolicyResolution = "Optional"
BucketSpecProviderConfigRefPolicyResolutionRequired BucketSpecProviderConfigRefPolicyResolution = "Required"
)
// Defines values for BucketSpecProviderConfigRefPolicyResolve.
const (
BucketSpecProviderConfigRefPolicyResolveAlways BucketSpecProviderConfigRefPolicyResolve = "Always"
BucketSpecProviderConfigRefPolicyResolveIfNotPresent BucketSpecProviderConfigRefPolicyResolve = "IfNotPresent"
)
// IoUpboundGcpStorageV1Beta2Bucket Bucket is the Schema for the Buckets API. Creates a new bucket in Google Cloud Storage.
type IoUpboundGcpStorageV1Beta2Bucket = Bucket
// BucketAPIVersion APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type BucketAPIVersion string
// BucketKind Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type BucketKind string
// BucketSpecDeletionPolicy DeletionPolicy specifies what will happen to the underlying external
// when this managed resource is deleted - either "Delete" or "Orphan" the
// external resource.
// This field is planned to be deprecated in favor of the ManagementPolicies
// field in a future release. Currently, both could be set independently and
// non-default values would be honored if the feature flag is enabled.
// See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223
type BucketSpecDeletionPolicy string
// BucketSpecForProviderAutoclass The bucket's Autoclass configuration. Structure is documented below.
type BucketSpecForProviderAutoclass struct {
// Enabled While set to true, autoclass automatically transitions objects in your bucket to appropriate storage classes based on each object's access pattern.
Enabled *bool `json:"enabled,omitempty"`
// TerminalStorageClass The storage class that objects in the bucket eventually transition to if they are not read for a certain length of time. Supported values include: NEARLINE, ARCHIVE.
TerminalStorageClass *string `json:"terminalStorageClass,omitempty"`
}
// BucketSpecForProviderCorsItem defines model for .
type BucketSpecForProviderCorsItem struct {
// MaxAgeSeconds The value, in seconds, to return in the Access-Control-Max-Age header used in preflight responses.
MaxAgeSeconds *float32 `json:"maxAgeSeconds,omitempty"`
// Method The list of HTTP methods on which to include CORS response headers, (GET, OPTIONS, POST, etc) Note: "*" is permitted in the list of methods, and means "any method".
Method *[]string `json:"method,omitempty"`
// Origin The list of Origins eligible to receive CORS response headers. Note: "*" is permitted in the list of origins, and means "any Origin".
Origin *[]string `json:"origin,omitempty"`
// ResponseHeader The list of HTTP headers other than the simple response headers to give permission for the user-agent to share across domains.
ResponseHeader *[]string `json:"responseHeader,omitempty"`
}
// BucketSpecForProviderCustomPlacementConfig The bucket's custom location configuration, which specifies the individual regions that comprise a dual-region bucket. If the bucket is designated a single or multi-region, the parameters are empty. Structure is documented below.
type BucketSpecForProviderCustomPlacementConfig struct {
// DataLocations The list of individual regions that comprise a dual-region bucket. See Cloud Storage bucket locations for a list of acceptable regions. Note: If any of the data_locations changes, it will recreate the bucket.
DataLocations *[]string `json:"dataLocations,omitempty"`
}
// BucketSpecForProviderEncryption The bucket's encryption configuration. Structure is documented below.
type BucketSpecForProviderEncryption struct {
// DefaultKmsKeyName : The id of a Cloud KMS key that will be used to encrypt objects inserted into this bucket, if no encryption method is specified.
// You must pay attention to whether the crypto key is available in the location that this bucket is created in.
// See the docs for more details.
DefaultKmsKeyName *string `json:"defaultKmsKeyName,omitempty"`
}
// BucketSpecForProviderHierarchicalNamespace The bucket's hierarchical namespace policy, which defines the bucket capability to handle folders in logical structure. Structure is documented below. To use this configuration, uniform_bucket_level_access must be enabled on bucket.
type BucketSpecForProviderHierarchicalNamespace struct {
// Enabled Enables hierarchical namespace for the bucket.
Enabled *bool `json:"enabled,omitempty"`
}
// BucketSpecForProviderIPFilterPublicNetworkSource The public network IP address ranges that can access the bucket and its data. Structure is documented below.
type BucketSpecForProviderIPFilterPublicNetworkSource struct {
// AllowedIPCidrRanges The list of public or private IPv4 and IPv6 CIDR ranges that can access the bucket.
AllowedIPCidrRanges *[]string `json:"allowedIpCidrRanges,omitempty"`
}
// BucketSpecForProviderIPFilterVpcNetworkSourcesItem defines model for .
type BucketSpecForProviderIPFilterVpcNetworkSourcesItem struct {
// AllowedIPCidrRanges The list of public or private IPv4 and IPv6 CIDR ranges that can access the bucket.
AllowedIPCidrRanges *[]string `json:"allowedIpCidrRanges,omitempty"`
// Network Name of the network. Format: projects/PROJECT_ID/global/networks/NETWORK_NAME
Network *string `json:"network,omitempty"`
}
// BucketSpecForProviderIPFilter The bucket IP filtering configuration. Specifies the network sources that can access the bucket, as well as its underlying objects. Structure is documented below.
type BucketSpecForProviderIPFilter struct {
// AllowAllServiceAgentAccess While set true, allows all service agents to access the bucket regardless of the IP filter configuration.
AllowAllServiceAgentAccess *bool `json:"allowAllServiceAgentAccess,omitempty"`
// AllowCrossOrgVpcs While set true, allows cross-org VPCs in the bucket's IP filter configuration.
AllowCrossOrgVpcs *bool `json:"allowCrossOrgVpcs,omitempty"`
// Mode The state of the IP filter configuration. Valid values are Enabled and Disabled. When set to Enabled, IP filtering rules are applied to a bucket and all incoming requests to the bucket are evaluated against these rules. When set to Disabled, IP filtering rules are not applied to a bucket. Note: allow_all_service_agent_access must be supplied when mode is set to Enabled, it can be ommited for other values.
Mode *string `json:"mode,omitempty"`
// PublicNetworkSource The public network IP address ranges that can access the bucket and its data. Structure is documented below.
PublicNetworkSource *BucketSpecForProviderIPFilterPublicNetworkSource `json:"publicNetworkSource,omitempty"`
// VpcNetworkSources The list of VPC networks that can access the bucket. Structure is documented below.
VpcNetworkSources *[]BucketSpecForProviderIPFilterVpcNetworkSourcesItem `json:"vpcNetworkSources,omitempty"`
}
// BucketSpecForProviderLifecycleRuleItemAction The Lifecycle Rule's action configuration. A single block of this type is supported. Structure is documented below.
type BucketSpecForProviderLifecycleRuleItemAction struct {
// StorageClass The Storage Class of the new bucket. Supported values include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE.
StorageClass *string `json:"storageClass,omitempty"`
// Type The type of the action of this Lifecycle Rule. Supported values include: Delete, SetStorageClass and AbortIncompleteMultipartUpload.
Type *string `json:"type,omitempty"`
}
// BucketSpecForProviderLifecycleRuleItemCondition The Lifecycle Rule's condition configuration. A single block of this type is supported. Structure is documented below.
type BucketSpecForProviderLifecycleRuleItemCondition struct {
// Age Minimum age of an object in days to satisfy this condition. Note To set 0 value of age, send_age_if_zero should be set true otherwise 0 value of age field will be ignored.
Age *float32 `json:"age,omitempty"`
// CreatedBefore A date in the RFC 3339 format YYYY-MM-DD. This condition is satisfied when an object is created before midnight of the specified date in UTC.
CreatedBefore *string `json:"createdBefore,omitempty"`
// CustomTimeBefore A date in the RFC 3339 format YYYY-MM-DD. This condition is satisfied when the customTime metadata for the object is set to an earlier date than the date used in this lifecycle condition.
CustomTimeBefore *string `json:"customTimeBefore,omitempty"`
// DaysSinceCustomTime Days since the date set in the customTime metadata for the object. This condition is satisfied when the current date and time is at least the specified number of days after the customTime. When set to 0 it will be ignored, and your state will treat it as though you supplied no days_since_custom_time condition.
DaysSinceCustomTime *float32 `json:"daysSinceCustomTime,omitempty"`
// DaysSinceNoncurrentTime Relevant only for versioned objects. Number of days elapsed since the noncurrent timestamp of an object. When set to 0 it will be ignored, and your state will treat it as though you supplied no days_since_noncurrent_time condition.
DaysSinceNoncurrentTime *float32 `json:"daysSinceNoncurrentTime,omitempty"`
// MatchesPrefix One or more matching name prefixes to satisfy this condition.
MatchesPrefix *[]string `json:"matchesPrefix,omitempty"`
// MatchesStorageClass Storage Class of objects to satisfy this condition. Supported values include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE, DURABLE_REDUCED_AVAILABILITY.
MatchesStorageClass *[]string `json:"matchesStorageClass,omitempty"`
// MatchesSuffix One or more matching name suffixes to satisfy this condition.
MatchesSuffix *[]string `json:"matchesSuffix,omitempty"`
// NoncurrentTimeBefore Relevant only for versioned objects. The date in RFC 3339 (e.g. 2017-06-13) when the object became nonconcurrent. When set to 0 it will be ignored, and your state will treat it as though you supplied no noncurrent_time_before condition.
NoncurrentTimeBefore *string `json:"noncurrentTimeBefore,omitempty"`
// NumNewerVersions Relevant only for versioned objects. The number of newer versions of an object to satisfy this condition. When set to 0 it will be ignored and your state will treat it as though you supplied no num_newer_versions condition.
NumNewerVersions *float32 `json:"numNewerVersions,omitempty"`
// SendAgeIfZero While set true, age value will be sent in the request even for zero value of the field. This field is only useful and required for setting 0 value to the age field. It can be used alone or together with age attribute. NOTE age attibute with 0 value will be ommitted from the API request if send_age_if_zero field is having false value.
SendAgeIfZero *bool `json:"sendAgeIfZero,omitempty"`
// SendDaysSinceCustomTimeIfZero While set true, days_since_custom_time value will be sent in the request even for zero value of the field. This field is only useful for setting 0 value to the days_since_custom_time field. It can be used alone or together with days_since_custom_time.
SendDaysSinceCustomTimeIfZero *bool `json:"sendDaysSinceCustomTimeIfZero,omitempty"`
// SendDaysSinceNoncurrentTimeIfZero While set true, days_since_noncurrent_time value will be sent in the request even for zero value of the field. This field is only useful for setting 0 value to the days_since_noncurrent_time field. It can be used alone or together with days_since_noncurrent_time.
SendDaysSinceNoncurrentTimeIfZero *bool `json:"sendDaysSinceNoncurrentTimeIfZero,omitempty"`
// SendNumNewerVersionsIfZero While set true, num_newer_versions value will be sent in the request even for zero value of the field. This field is only useful for setting 0 value to the num_newer_versions field. It can be used alone or together with num_newer_versions.
SendNumNewerVersionsIfZero *bool `json:"sendNumNewerVersionsIfZero,omitempty"`
// WithState Match to live and/or archived objects. Unversioned buckets have only live objects. Supported values include: "LIVE", "ARCHIVED", "ANY".
WithState *string `json:"withState,omitempty"`
}
// BucketSpecForProviderLifecycleRuleItem defines model for .
type BucketSpecForProviderLifecycleRuleItem struct {
// Action The Lifecycle Rule's action configuration. A single block of this type is supported. Structure is documented below.
Action *BucketSpecForProviderLifecycleRuleItemAction `json:"action,omitempty"`
// Condition The Lifecycle Rule's condition configuration. A single block of this type is supported. Structure is documented below.
Condition *BucketSpecForProviderLifecycleRuleItemCondition `json:"condition,omitempty"`
}
// BucketSpecForProviderLogging The bucket's Access & Storage Logs configuration. Structure is documented below.
type BucketSpecForProviderLogging struct {
// LogBucket The bucket that will receive log objects.
LogBucket *string `json:"logBucket,omitempty"`
// LogObjectPrefix The object prefix for log objects. If it's not provided,
// by default GCS sets this to this bucket's name.
LogObjectPrefix *string `json:"logObjectPrefix,omitempty"`
}
// BucketSpecForProviderRetentionPolicy Configuration of the bucket's data retention policy for how long objects in the bucket should be retained. Structure is documented below.
type BucketSpecForProviderRetentionPolicy struct {
// IsLocked If set to true, the bucket will be locked and permanently restrict edits to the bucket's retention policy. Caution: Locking a bucket is an irreversible action.
IsLocked *bool `json:"isLocked,omitempty"`
// RetentionPeriod The period of time, in seconds, that objects in the bucket must be retained and cannot be deleted, overwritten, or archived. The value must be less than 2,147,483,647 seconds.
RetentionPeriod *float32 `json:"retentionPeriod,omitempty"`
}
// BucketSpecForProviderSoftDeletePolicy The bucket's soft delete policy, which defines the period of time that soft-deleted objects will be retained, and cannot be permanently deleted. Structure is documented below.
type BucketSpecForProviderSoftDeletePolicy struct {
// RetentionDurationSeconds The duration in seconds that soft-deleted objects in the bucket will be retained and cannot be permanently deleted. Default value is 604800. The value must be in between 604800(7 days) and 7776000(90 days). Note: To disable the soft delete policy on a bucket, This field must be set to 0.
RetentionDurationSeconds *float32 `json:"retentionDurationSeconds,omitempty"`
}
// BucketSpecForProviderVersioning The bucket's Versioning configuration. Structure is documented below.
type BucketSpecForProviderVersioning struct {
// Enabled While set to true, versioning is fully enabled for this bucket.
Enabled *bool `json:"enabled,omitempty"`
}
// BucketSpecForProviderWebsite Configuration if the bucket acts as a website. Structure is documented below.
type BucketSpecForProviderWebsite struct {
// MainPageSuffix Behaves as the bucket's directory index where
// missing objects are treated as potential directories.
MainPageSuffix *string `json:"mainPageSuffix,omitempty"`
// NotFoundPage The custom object to return when a requested
// resource is not found.
NotFoundPage *string `json:"notFoundPage,omitempty"`
}
// BucketSpecForProvider defines model for .
type BucketSpecForProvider struct {
// Autoclass The bucket's Autoclass configuration. Structure is documented below.
Autoclass *BucketSpecForProviderAutoclass `json:"autoclass,omitempty"`
// Cors The bucket's Cross-Origin Resource Sharing (CORS) configuration. Multiple blocks of this type are permitted. Structure is documented below.
Cors *[]BucketSpecForProviderCorsItem `json:"cors,omitempty"`
// CustomPlacementConfig The bucket's custom location configuration, which specifies the individual regions that comprise a dual-region bucket. If the bucket is designated a single or multi-region, the parameters are empty. Structure is documented below.
CustomPlacementConfig *BucketSpecForProviderCustomPlacementConfig `json:"customPlacementConfig,omitempty"`
// DefaultEventBasedHold Whether or not to automatically apply an eventBasedHold to new objects added to the bucket.
DefaultEventBasedHold *bool `json:"defaultEventBasedHold,omitempty"`
// EnableObjectRetention Enables object retention on a storage bucket.
EnableObjectRetention *bool `json:"enableObjectRetention,omitempty"`
// Encryption The bucket's encryption configuration. Structure is documented below.
Encryption *BucketSpecForProviderEncryption `json:"encryption,omitempty"`
// ForceDestroy When deleting a bucket, this
// boolean option will delete all contained objects.
ForceDestroy *bool `json:"forceDestroy,omitempty"`
// HierarchicalNamespace The bucket's hierarchical namespace policy, which defines the bucket capability to handle folders in logical structure. Structure is documented below. To use this configuration, uniform_bucket_level_access must be enabled on bucket.
HierarchicalNamespace *BucketSpecForProviderHierarchicalNamespace `json:"hierarchicalNamespace,omitempty"`
// IPFilter The bucket IP filtering configuration. Specifies the network sources that can access the bucket, as well as its underlying objects. Structure is documented below.
IPFilter *BucketSpecForProviderIPFilter `json:"ipFilter,omitempty"`
// Labels A map of key/value label pairs to assign to the bucket.
Labels *map[string]string `json:"labels,omitempty"`
// LifecycleRule The bucket's Lifecycle Rules configuration. Multiple blocks of this type are permitted. Structure is documented below.
LifecycleRule *[]BucketSpecForProviderLifecycleRuleItem `json:"lifecycleRule,omitempty"`
// Location The GCS location.
Location *string `json:"location,omitempty"`
// Logging The bucket's Access & Storage Logs configuration. Structure is documented below.
Logging *BucketSpecForProviderLogging `json:"logging,omitempty"`
// Project The ID of the project in which the resource belongs. If it
// is not provided, the provider project is used.
Project *string `json:"project,omitempty"`
// PublicAccessPrevention Prevents public access to a bucket. Acceptable values are "inherited" or "enforced". If "inherited", the bucket uses public access prevention only if the bucket is subject to the public access prevention organization policy constraint. Defaults to "inherited".
PublicAccessPrevention *string `json:"publicAccessPrevention,omitempty"`
// RequesterPays Enables Requester Pays on a storage bucket.
RequesterPays *bool `json:"requesterPays,omitempty"`
// RetentionPolicy Configuration of the bucket's data retention policy for how long objects in the bucket should be retained. Structure is documented below.
RetentionPolicy *BucketSpecForProviderRetentionPolicy `json:"retentionPolicy,omitempty"`
// Rpo The recovery point objective for cross-region replication of the bucket. Applicable only for dual and multi-region buckets. "DEFAULT" sets default replication. "ASYNC_TURBO" value enables turbo replication, valid for dual-region buckets only. See Turbo Replication for more information. If rpo is not specified at bucket creation, it defaults to "DEFAULT" for dual and multi-region buckets. NOTE If used with single-region bucket, It will throw an error.
Rpo *string `json:"rpo,omitempty"`
// SoftDeletePolicy The bucket's soft delete policy, which defines the period of time that soft-deleted objects will be retained, and cannot be permanently deleted. Structure is documented below.
SoftDeletePolicy *BucketSpecForProviderSoftDeletePolicy `json:"softDeletePolicy,omitempty"`
// StorageClass The Storage Class of the new bucket. Supported values include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE.
StorageClass *string `json:"storageClass,omitempty"`
// UniformBucketLevelAccess Enables Uniform bucket-level access access to a bucket.
UniformBucketLevelAccess *bool `json:"uniformBucketLevelAccess,omitempty"`
// Versioning The bucket's Versioning configuration. Structure is documented below.
Versioning *BucketSpecForProviderVersioning `json:"versioning,omitempty"`
// Website Configuration if the bucket acts as a website. Structure is documented below.
Website *BucketSpecForProviderWebsite `json:"website,omitempty"`
}
// BucketSpecInitProviderAutoclass The bucket's Autoclass configuration. Structure is documented below.
type BucketSpecInitProviderAutoclass struct {
// Enabled While set to true, autoclass automatically transitions objects in your bucket to appropriate storage classes based on each object's access pattern.
Enabled *bool `json:"enabled,omitempty"`
// TerminalStorageClass The storage class that objects in the bucket eventually transition to if they are not read for a certain length of time. Supported values include: NEARLINE, ARCHIVE.
TerminalStorageClass *string `json:"terminalStorageClass,omitempty"`
}
// BucketSpecInitProviderCorsItem defines model for .
type BucketSpecInitProviderCorsItem struct {
// MaxAgeSeconds The value, in seconds, to return in the Access-Control-Max-Age header used in preflight responses.
MaxAgeSeconds *float32 `json:"maxAgeSeconds,omitempty"`
// Method The list of HTTP methods on which to include CORS response headers, (GET, OPTIONS, POST, etc) Note: "*" is permitted in the list of methods, and means "any method".
Method *[]string `json:"method,omitempty"`
// Origin The list of Origins eligible to receive CORS response headers. Note: "*" is permitted in the list of origins, and means "any Origin".
Origin *[]string `json:"origin,omitempty"`
// ResponseHeader The list of HTTP headers other than the simple response headers to give permission for the user-agent to share across domains.
ResponseHeader *[]string `json:"responseHeader,omitempty"`
}
// BucketSpecInitProviderCustomPlacementConfig The bucket's custom location configuration, which specifies the individual regions that comprise a dual-region bucket. If the bucket is designated a single or multi-region, the parameters are empty. Structure is documented below.
type BucketSpecInitProviderCustomPlacementConfig struct {
// DataLocations The list of individual regions that comprise a dual-region bucket. See Cloud Storage bucket locations for a list of acceptable regions. Note: If any of the data_locations changes, it will recreate the bucket.
DataLocations *[]string `json:"dataLocations,omitempty"`
}
// BucketSpecInitProviderEncryption The bucket's encryption configuration. Structure is documented below.
type BucketSpecInitProviderEncryption struct {
// DefaultKmsKeyName : The id of a Cloud KMS key that will be used to encrypt objects inserted into this bucket, if no encryption method is specified.
// You must pay attention to whether the crypto key is available in the location that this bucket is created in.
// See the docs for more details.
DefaultKmsKeyName *string `json:"defaultKmsKeyName,omitempty"`
}
// BucketSpecInitProviderHierarchicalNamespace The bucket's hierarchical namespace policy, which defines the bucket capability to handle folders in logical structure. Structure is documented below. To use this configuration, uniform_bucket_level_access must be enabled on bucket.
type BucketSpecInitProviderHierarchicalNamespace struct {
// Enabled Enables hierarchical namespace for the bucket.
Enabled *bool `json:"enabled,omitempty"`
}
// BucketSpecInitProviderIPFilterPublicNetworkSource The public network IP address ranges that can access the bucket and its data. Structure is documented below.
type BucketSpecInitProviderIPFilterPublicNetworkSource struct {
// AllowedIPCidrRanges The list of public or private IPv4 and IPv6 CIDR ranges that can access the bucket.
AllowedIPCidrRanges *[]string `json:"allowedIpCidrRanges,omitempty"`
}
// BucketSpecInitProviderIPFilterVpcNetworkSourcesItem defines model for .
type BucketSpecInitProviderIPFilterVpcNetworkSourcesItem struct {
// AllowedIPCidrRanges The list of public or private IPv4 and IPv6 CIDR ranges that can access the bucket.
AllowedIPCidrRanges *[]string `json:"allowedIpCidrRanges,omitempty"`
// Network Name of the network. Format: projects/PROJECT_ID/global/networks/NETWORK_NAME
Network *string `json:"network,omitempty"`
}
// BucketSpecInitProviderIPFilter The bucket IP filtering configuration. Specifies the network sources that can access the bucket, as well as its underlying objects. Structure is documented below.
type BucketSpecInitProviderIPFilter struct {
// AllowAllServiceAgentAccess While set true, allows all service agents to access the bucket regardless of the IP filter configuration.
AllowAllServiceAgentAccess *bool `json:"allowAllServiceAgentAccess,omitempty"`
// AllowCrossOrgVpcs While set true, allows cross-org VPCs in the bucket's IP filter configuration.
AllowCrossOrgVpcs *bool `json:"allowCrossOrgVpcs,omitempty"`
// Mode The state of the IP filter configuration. Valid values are Enabled and Disabled. When set to Enabled, IP filtering rules are applied to a bucket and all incoming requests to the bucket are evaluated against these rules. When set to Disabled, IP filtering rules are not applied to a bucket. Note: allow_all_service_agent_access must be supplied when mode is set to Enabled, it can be ommited for other values.
Mode *string `json:"mode,omitempty"`
// PublicNetworkSource The public network IP address ranges that can access the bucket and its data. Structure is documented below.
PublicNetworkSource *BucketSpecInitProviderIPFilterPublicNetworkSource `json:"publicNetworkSource,omitempty"`
// VpcNetworkSources The list of VPC networks that can access the bucket. Structure is documented below.
VpcNetworkSources *[]BucketSpecInitProviderIPFilterVpcNetworkSourcesItem `json:"vpcNetworkSources,omitempty"`
}
// BucketSpecInitProviderLifecycleRuleItemAction The Lifecycle Rule's action configuration. A single block of this type is supported. Structure is documented below.
type BucketSpecInitProviderLifecycleRuleItemAction struct {
// StorageClass The Storage Class of the new bucket. Supported values include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE.
StorageClass *string `json:"storageClass,omitempty"`
// Type The type of the action of this Lifecycle Rule. Supported values include: Delete, SetStorageClass and AbortIncompleteMultipartUpload.
Type *string `json:"type,omitempty"`
}
// BucketSpecInitProviderLifecycleRuleItemCondition The Lifecycle Rule's condition configuration. A single block of this type is supported. Structure is documented below.
type BucketSpecInitProviderLifecycleRuleItemCondition struct {
// Age Minimum age of an object in days to satisfy this condition. Note To set 0 value of age, send_age_if_zero should be set true otherwise 0 value of age field will be ignored.
Age *float32 `json:"age,omitempty"`
// CreatedBefore A date in the RFC 3339 format YYYY-MM-DD. This condition is satisfied when an object is created before midnight of the specified date in UTC.
CreatedBefore *string `json:"createdBefore,omitempty"`
// CustomTimeBefore A date in the RFC 3339 format YYYY-MM-DD. This condition is satisfied when the customTime metadata for the object is set to an earlier date than the date used in this lifecycle condition.
CustomTimeBefore *string `json:"customTimeBefore,omitempty"`
// DaysSinceCustomTime Days since the date set in the customTime metadata for the object. This condition is satisfied when the current date and time is at least the specified number of days after the customTime. When set to 0 it will be ignored, and your state will treat it as though you supplied no days_since_custom_time condition.
DaysSinceCustomTime *float32 `json:"daysSinceCustomTime,omitempty"`
// DaysSinceNoncurrentTime Relevant only for versioned objects. Number of days elapsed since the noncurrent timestamp of an object. When set to 0 it will be ignored, and your state will treat it as though you supplied no days_since_noncurrent_time condition.
DaysSinceNoncurrentTime *float32 `json:"daysSinceNoncurrentTime,omitempty"`
// MatchesPrefix One or more matching name prefixes to satisfy this condition.
MatchesPrefix *[]string `json:"matchesPrefix,omitempty"`
// MatchesStorageClass Storage Class of objects to satisfy this condition. Supported values include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE, DURABLE_REDUCED_AVAILABILITY.
MatchesStorageClass *[]string `json:"matchesStorageClass,omitempty"`
// MatchesSuffix One or more matching name suffixes to satisfy this condition.
MatchesSuffix *[]string `json:"matchesSuffix,omitempty"`
// NoncurrentTimeBefore Relevant only for versioned objects. The date in RFC 3339 (e.g. 2017-06-13) when the object became nonconcurrent. When set to 0 it will be ignored, and your state will treat it as though you supplied no noncurrent_time_before condition.
NoncurrentTimeBefore *string `json:"noncurrentTimeBefore,omitempty"`
// NumNewerVersions Relevant only for versioned objects. The number of newer versions of an object to satisfy this condition. When set to 0 it will be ignored and your state will treat it as though you supplied no num_newer_versions condition.
NumNewerVersions *float32 `json:"numNewerVersions,omitempty"`
// SendAgeIfZero While set true, age value will be sent in the request even for zero value of the field. This field is only useful and required for setting 0 value to the age field. It can be used alone or together with age attribute. NOTE age attibute with 0 value will be ommitted from the API request if send_age_if_zero field is having false value.
SendAgeIfZero *bool `json:"sendAgeIfZero,omitempty"`
// SendDaysSinceCustomTimeIfZero While set true, days_since_custom_time value will be sent in the request even for zero value of the field. This field is only useful for setting 0 value to the days_since_custom_time field. It can be used alone or together with days_since_custom_time.
SendDaysSinceCustomTimeIfZero *bool `json:"sendDaysSinceCustomTimeIfZero,omitempty"`
// SendDaysSinceNoncurrentTimeIfZero While set true, days_since_noncurrent_time value will be sent in the request even for zero value of the field. This field is only useful for setting 0 value to the days_since_noncurrent_time field. It can be used alone or together with days_since_noncurrent_time.
SendDaysSinceNoncurrentTimeIfZero *bool `json:"sendDaysSinceNoncurrentTimeIfZero,omitempty"`
// SendNumNewerVersionsIfZero While set true, num_newer_versions value will be sent in the request even for zero value of the field. This field is only useful for setting 0 value to the num_newer_versions field. It can be used alone or together with num_newer_versions.
SendNumNewerVersionsIfZero *bool `json:"sendNumNewerVersionsIfZero,omitempty"`
// WithState Match to live and/or archived objects. Unversioned buckets have only live objects. Supported values include: "LIVE", "ARCHIVED", "ANY".
WithState *string `json:"withState,omitempty"`
}
// BucketSpecInitProviderLifecycleRuleItem defines model for .
type BucketSpecInitProviderLifecycleRuleItem struct {
// Action The Lifecycle Rule's action configuration. A single block of this type is supported. Structure is documented below.
Action *BucketSpecInitProviderLifecycleRuleItemAction `json:"action,omitempty"`
// Condition The Lifecycle Rule's condition configuration. A single block of this type is supported. Structure is documented below.
Condition *BucketSpecInitProviderLifecycleRuleItemCondition `json:"condition,omitempty"`
}
// BucketSpecInitProviderLogging The bucket's Access & Storage Logs configuration. Structure is documented below.
type BucketSpecInitProviderLogging struct {
// LogBucket The bucket that will receive log objects.
LogBucket *string `json:"logBucket,omitempty"`
// LogObjectPrefix The object prefix for log objects. If it's not provided,
// by default GCS sets this to this bucket's name.
LogObjectPrefix *string `json:"logObjectPrefix,omitempty"`
}
// BucketSpecInitProviderRetentionPolicy Configuration of the bucket's data retention policy for how long objects in the bucket should be retained. Structure is documented below.
type BucketSpecInitProviderRetentionPolicy struct {
// IsLocked If set to true, the bucket will be locked and permanently restrict edits to the bucket's retention policy. Caution: Locking a bucket is an irreversible action.
IsLocked *bool `json:"isLocked,omitempty"`
// RetentionPeriod The period of time, in seconds, that objects in the bucket must be retained and cannot be deleted, overwritten, or archived. The value must be less than 2,147,483,647 seconds.
RetentionPeriod *float32 `json:"retentionPeriod,omitempty"`
}
// BucketSpecInitProviderSoftDeletePolicy The bucket's soft delete policy, which defines the period of time that soft-deleted objects will be retained, and cannot be permanently deleted. Structure is documented below.
type BucketSpecInitProviderSoftDeletePolicy struct {
// RetentionDurationSeconds The duration in seconds that soft-deleted objects in the bucket will be retained and cannot be permanently deleted. Default value is 604800. The value must be in between 604800(7 days) and 7776000(90 days). Note: To disable the soft delete policy on a bucket, This field must be set to 0.
RetentionDurationSeconds *float32 `json:"retentionDurationSeconds,omitempty"`
}
// BucketSpecInitProviderVersioning The bucket's Versioning configuration. Structure is documented below.
type BucketSpecInitProviderVersioning struct {
// Enabled While set to true, versioning is fully enabled for this bucket.
Enabled *bool `json:"enabled,omitempty"`
}
// BucketSpecInitProviderWebsite Configuration if the bucket acts as a website. Structure is documented below.
type BucketSpecInitProviderWebsite struct {
// MainPageSuffix Behaves as the bucket's directory index where
// missing objects are treated as potential directories.
MainPageSuffix *string `json:"mainPageSuffix,omitempty"`
// NotFoundPage The custom object to return when a requested
// resource is not found.
NotFoundPage *string `json:"notFoundPage,omitempty"`
}
// BucketSpecInitProvider THIS IS A BETA FIELD. It will be honored
// unless the Management Policies feature flag is disabled.
// InitProvider holds the same fields as ForProvider, with the exception
// of Identifier and other resource reference fields. The fields that are
// in InitProvider are merged into ForProvider when the resource is created.
// The same fields are also added to the terraform ignore_changes hook, to
// avoid updating them after creation. This is useful for fields that are
// required on creation, but we do not desire to update them after creation,
// for example because of an external controller is managing them, like an
// autoscaler.
type BucketSpecInitProvider struct {
// Autoclass The bucket's Autoclass configuration. Structure is documented below.
Autoclass *BucketSpecInitProviderAutoclass `json:"autoclass,omitempty"`
// Cors The bucket's Cross-Origin Resource Sharing (CORS) configuration. Multiple blocks of this type are permitted. Structure is documented below.
Cors *[]BucketSpecInitProviderCorsItem `json:"cors,omitempty"`
// CustomPlacementConfig The bucket's custom location configuration, which specifies the individual regions that comprise a dual-region bucket. If the bucket is designated a single or multi-region, the parameters are empty. Structure is documented below.
CustomPlacementConfig *BucketSpecInitProviderCustomPlacementConfig `json:"customPlacementConfig,omitempty"`
// DefaultEventBasedHold Whether or not to automatically apply an eventBasedHold to new objects added to the bucket.
DefaultEventBasedHold *bool `json:"defaultEventBasedHold,omitempty"`
// EnableObjectRetention Enables object retention on a storage bucket.
EnableObjectRetention *bool `json:"enableObjectRetention,omitempty"`
// Encryption The bucket's encryption configuration. Structure is documented below.
Encryption *BucketSpecInitProviderEncryption `json:"encryption,omitempty"`
// ForceDestroy When deleting a bucket, this
// boolean option will delete all contained objects.
ForceDestroy *bool `json:"forceDestroy,omitempty"`
// HierarchicalNamespace The bucket's hierarchical namespace policy, which defines the bucket capability to handle folders in logical structure. Structure is documented below. To use this configuration, uniform_bucket_level_access must be enabled on bucket.
HierarchicalNamespace *BucketSpecInitProviderHierarchicalNamespace `json:"hierarchicalNamespace,omitempty"`
// IPFilter The bucket IP filtering configuration. Specifies the network sources that can access the bucket, as well as its underlying objects. Structure is documented below.
IPFilter *BucketSpecInitProviderIPFilter `json:"ipFilter,omitempty"`
// Labels A map of key/value label pairs to assign to the bucket.
Labels *map[string]string `json:"labels,omitempty"`
// LifecycleRule The bucket's Lifecycle Rules configuration. Multiple blocks of this type are permitted. Structure is documented below.
LifecycleRule *[]BucketSpecInitProviderLifecycleRuleItem `json:"lifecycleRule,omitempty"`
// Location The GCS location.
Location *string `json:"location,omitempty"`
// Logging The bucket's Access & Storage Logs configuration. Structure is documented below.
Logging *BucketSpecInitProviderLogging `json:"logging,omitempty"`
// Project The ID of the project in which the resource belongs. If it
// is not provided, the provider project is used.
Project *string `json:"project,omitempty"`
// PublicAccessPrevention Prevents public access to a bucket. Acceptable values are "inherited" or "enforced". If "inherited", the bucket uses public access prevention only if the bucket is subject to the public access prevention organization policy constraint. Defaults to "inherited".
PublicAccessPrevention *string `json:"publicAccessPrevention,omitempty"`
// RequesterPays Enables Requester Pays on a storage bucket.
RequesterPays *bool `json:"requesterPays,omitempty"`
// RetentionPolicy Configuration of the bucket's data retention policy for how long objects in the bucket should be retained. Structure is documented below.
RetentionPolicy *BucketSpecInitProviderRetentionPolicy `json:"retentionPolicy,omitempty"`
// Rpo The recovery point objective for cross-region replication of the bucket. Applicable only for dual and multi-region buckets. "DEFAULT" sets default replication. "ASYNC_TURBO" value enables turbo replication, valid for dual-region buckets only. See Turbo Replication for more information. If rpo is not specified at bucket creation, it defaults to "DEFAULT" for dual and multi-region buckets. NOTE If used with single-region bucket, It will throw an error.
Rpo *string `json:"rpo,omitempty"`
// SoftDeletePolicy The bucket's soft delete policy, which defines the period of time that soft-deleted objects will be retained, and cannot be permanently deleted. Structure is documented below.
SoftDeletePolicy *BucketSpecInitProviderSoftDeletePolicy `json:"softDeletePolicy,omitempty"`
// StorageClass The Storage Class of the new bucket. Supported values include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE.
StorageClass *string `json:"storageClass,omitempty"`
// UniformBucketLevelAccess Enables Uniform bucket-level access access to a bucket.
UniformBucketLevelAccess *bool `json:"uniformBucketLevelAccess,omitempty"`
// Versioning The bucket's Versioning configuration. Structure is documented below.
Versioning *BucketSpecInitProviderVersioning `json:"versioning,omitempty"`
// Website Configuration if the bucket acts as a website. Structure is documented below.
Website *BucketSpecInitProviderWebsite `json:"website,omitempty"`
}
// BucketSpecManagementPoliciesItem A ManagementAction represents an action that the Crossplane controllers
// can take on an external resource.
type BucketSpecManagementPoliciesItem string
// BucketSpecProviderConfigRefPolicyResolution Resolution specifies whether resolution of this reference is required.
// The default is 'Required', which means the reconcile will fail if the
// reference cannot be resolved. 'Optional' means this reference will be
// a no-op if it cannot be resolved.
type BucketSpecProviderConfigRefPolicyResolution string
// BucketSpecProviderConfigRefPolicyResolve Resolve specifies when this reference should be resolved. The default
// is 'IfNotPresent', which will attempt to resolve the reference only when
// the corresponding field is not present. Use 'Always' to resolve the
// reference on every reconcile.
type BucketSpecProviderConfigRefPolicyResolve string
// BucketSpecProviderConfigRefPolicy Policies for referencing.
type BucketSpecProviderConfigRefPolicy struct {
// Resolution Resolution specifies whether resolution of this reference is required.
// The default is 'Required', which means the reconcile will fail if the
// reference cannot be resolved. 'Optional' means this reference will be
// a no-op if it cannot be resolved.
Resolution *BucketSpecProviderConfigRefPolicyResolution `json:"resolution,omitempty"`
// Resolve Resolve specifies when this reference should be resolved. The default
// is 'IfNotPresent', which will attempt to resolve the reference only when
// the corresponding field is not present. Use 'Always' to resolve the
// reference on every reconcile.
Resolve *BucketSpecProviderConfigRefPolicyResolve `json:"resolve,omitempty"`
}
// BucketSpecProviderConfigRef ProviderConfigReference specifies how the provider that will be used to
// create, observe, update, and delete this managed resource should be
// configured.
type BucketSpecProviderConfigRef struct {
// Name Name of the referenced object.
Name *string `json:"name,omitempty"`
// Policy Policies for referencing.
Policy *BucketSpecProviderConfigRefPolicy `json:"policy,omitempty"`
}
// BucketSpecWriteConnectionSecretToRef WriteConnectionSecretToReference specifies the namespace and name of a
// Secret to which any connection details for this managed resource should
// be written. Connection details frequently include the endpoint, username,
// and password required to connect to the managed resource.
type BucketSpecWriteConnectionSecretToRef struct {
// Name Name of the secret.
Name *string `json:"name,omitempty"`
// Namespace Namespace of the secret.
Namespace *string `json:"namespace,omitempty"`
}
// BucketSpec BucketSpec defines the desired state of Bucket
type BucketSpec struct {
// DeletionPolicy DeletionPolicy specifies what will happen to the underlying external
// when this managed resource is deleted - either "Delete" or "Orphan" the
// external resource.
// This field is planned to be deprecated in favor of the ManagementPolicies
// field in a future release. Currently, both could be set independently and
// non-default values would be honored if the feature flag is enabled.
// See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223
DeletionPolicy *BucketSpecDeletionPolicy `json:"deletionPolicy,omitempty"`
ForProvider *BucketSpecForProvider `json:"forProvider,omitempty"`
// InitProvider THIS IS A BETA FIELD. It will be honored
// unless the Management Policies feature flag is disabled.
// InitProvider holds the same fields as ForProvider, with the exception
// of Identifier and other resource reference fields. The fields that are
// in InitProvider are merged into ForProvider when the resource is created.
// The same fields are also added to the terraform ignore_changes hook, to
// avoid updating them after creation. This is useful for fields that are
// required on creation, but we do not desire to update them after creation,
// for example because of an external controller is managing them, like an
// autoscaler.
InitProvider *BucketSpecInitProvider `json:"initProvider,omitempty"`
// ManagementPolicies THIS IS A BETA FIELD. It is on by default but can be opted out
// through a Crossplane feature flag.
// ManagementPolicies specify the array of actions Crossplane is allowed to
// take on the managed and external resources.
// This field is planned to replace the DeletionPolicy field in a future
// release. Currently, both could be set independently and non-default
// values would be honored if the feature flag is enabled. If both are
// custom, the DeletionPolicy field will be ignored.
// See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223
// and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md
ManagementPolicies *[]BucketSpecManagementPoliciesItem `json:"managementPolicies,omitempty"`
// ProviderConfigRef ProviderConfigReference specifies how the provider that will be used to
// create, observe, update, and delete this managed resource should be
// configured.
ProviderConfigRef *BucketSpecProviderConfigRef `json:"providerConfigRef,omitempty"`
// WriteConnectionSecretToRef WriteConnectionSecretToReference specifies the namespace and name of a
// Secret to which any connection details for this managed resource should
// be written. Connection details frequently include the endpoint, username,
// and password required to connect to the managed resource.
WriteConnectionSecretToRef *BucketSpecWriteConnectionSecretToRef `json:"writeConnectionSecretToRef,omitempty"`
}
// BucketStatusAtProviderAutoclass The bucket's Autoclass configuration. Structure is documented below.
type BucketStatusAtProviderAutoclass struct {
// Enabled While set to true, autoclass automatically transitions objects in your bucket to appropriate storage classes based on each object's access pattern.
Enabled *bool `json:"enabled,omitempty"`
// TerminalStorageClass The storage class that objects in the bucket eventually transition to if they are not read for a certain length of time. Supported values include: NEARLINE, ARCHIVE.
TerminalStorageClass *string `json:"terminalStorageClass,omitempty"`
}
// BucketStatusAtProviderCorsItem defines model for .
type BucketStatusAtProviderCorsItem struct {
// MaxAgeSeconds The value, in seconds, to return in the Access-Control-Max-Age header used in preflight responses.
MaxAgeSeconds *float32 `json:"maxAgeSeconds,omitempty"`
// Method The list of HTTP methods on which to include CORS response headers, (GET, OPTIONS, POST, etc) Note: "*" is permitted in the list of methods, and means "any method".
Method *[]string `json:"method,omitempty"`
// Origin The list of Origins eligible to receive CORS response headers. Note: "*" is permitted in the list of origins, and means "any Origin".
Origin *[]string `json:"origin,omitempty"`
// ResponseHeader The list of HTTP headers other than the simple response headers to give permission for the user-agent to share across domains.
ResponseHeader *[]string `json:"responseHeader,omitempty"`
}
// BucketStatusAtProviderCustomPlacementConfig The bucket's custom location configuration, which specifies the individual regions that comprise a dual-region bucket. If the bucket is designated a single or multi-region, the parameters are empty. Structure is documented below.
type BucketStatusAtProviderCustomPlacementConfig struct {
// DataLocations The list of individual regions that comprise a dual-region bucket. See Cloud Storage bucket locations for a list of acceptable regions. Note: If any of the data_locations changes, it will recreate the bucket.
DataLocations *[]string `json:"dataLocations,omitempty"`
}
// BucketStatusAtProviderEncryption The bucket's encryption configuration. Structure is documented below.
type BucketStatusAtProviderEncryption struct {
// DefaultKmsKeyName : The id of a Cloud KMS key that will be used to encrypt objects inserted into this bucket, if no encryption method is specified.
// You must pay attention to whether the crypto key is available in the location that this bucket is created in.
// See the docs for more details.
DefaultKmsKeyName *string `json:"defaultKmsKeyName,omitempty"`
}
// BucketStatusAtProviderHierarchicalNamespace The bucket's hierarchical namespace policy, which defines the bucket capability to handle folders in logical structure. Structure is documented below. To use this configuration, uniform_bucket_level_access must be enabled on bucket.
type BucketStatusAtProviderHierarchicalNamespace struct {
// Enabled Enables hierarchical namespace for the bucket.
Enabled *bool `json:"enabled,omitempty"`
}
// BucketStatusAtProviderIPFilterPublicNetworkSource The public network IP address ranges that can access the bucket and its data. Structure is documented below.
type BucketStatusAtProviderIPFilterPublicNetworkSource struct {
// AllowedIPCidrRanges The list of public or private IPv4 and IPv6 CIDR ranges that can access the bucket.
AllowedIPCidrRanges *[]string `json:"allowedIpCidrRanges,omitempty"`
}
// BucketStatusAtProviderIPFilterVpcNetworkSourcesItem defines model for .
type BucketStatusAtProviderIPFilterVpcNetworkSourcesItem struct {
// AllowedIPCidrRanges The list of public or private IPv4 and IPv6 CIDR ranges that can access the bucket.
AllowedIPCidrRanges *[]string `json:"allowedIpCidrRanges,omitempty"`
// Network Name of the network. Format: projects/PROJECT_ID/global/networks/NETWORK_NAME
Network *string `json:"network,omitempty"`
}
// BucketStatusAtProviderIPFilter The bucket IP filtering configuration. Specifies the network sources that can access the bucket, as well as its underlying objects. Structure is documented below.
type BucketStatusAtProviderIPFilter struct {
// AllowAllServiceAgentAccess While set true, allows all service agents to access the bucket regardless of the IP filter configuration.
AllowAllServiceAgentAccess *bool `json:"allowAllServiceAgentAccess,omitempty"`
// AllowCrossOrgVpcs While set true, allows cross-org VPCs in the bucket's IP filter configuration.
AllowCrossOrgVpcs *bool `json:"allowCrossOrgVpcs,omitempty"`
// Mode The state of the IP filter configuration. Valid values are Enabled and Disabled. When set to Enabled, IP filtering rules are applied to a bucket and all incoming requests to the bucket are evaluated against these rules. When set to Disabled, IP filtering rules are not applied to a bucket. Note: allow_all_service_agent_access must be supplied when mode is set to Enabled, it can be ommited for other values.
Mode *string `json:"mode,omitempty"`
// PublicNetworkSource The public network IP address ranges that can access the bucket and its data. Structure is documented below.
PublicNetworkSource *BucketStatusAtProviderIPFilterPublicNetworkSource `json:"publicNetworkSource,omitempty"`
// VpcNetworkSources The list of VPC networks that can access the bucket. Structure is documented below.
VpcNetworkSources *[]BucketStatusAtProviderIPFilterVpcNetworkSourcesItem `json:"vpcNetworkSources,omitempty"`
}
// BucketStatusAtProviderLifecycleRuleItemAction The Lifecycle Rule's action configuration. A single block of this type is supported. Structure is documented below.
type BucketStatusAtProviderLifecycleRuleItemAction struct {
// StorageClass The Storage Class of the new bucket. Supported values include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE.
StorageClass *string `json:"storageClass,omitempty"`
// Type The type of the action of this Lifecycle Rule. Supported values include: Delete, SetStorageClass and AbortIncompleteMultipartUpload.
Type *string `json:"type,omitempty"`
}
// BucketStatusAtProviderLifecycleRuleItemCondition The Lifecycle Rule's condition configuration. A single block of this type is supported. Structure is documented below.
type BucketStatusAtProviderLifecycleRuleItemCondition struct {
// Age Minimum age of an object in days to satisfy this condition. Note To set 0 value of age, send_age_if_zero should be set true otherwise 0 value of age field will be ignored.
Age *float32 `json:"age,omitempty"`
// CreatedBefore A date in the RFC 3339 format YYYY-MM-DD. This condition is satisfied when an object is created before midnight of the specified date in UTC.
CreatedBefore *string `json:"createdBefore,omitempty"`
// CustomTimeBefore A date in the RFC 3339 format YYYY-MM-DD. This condition is satisfied when the customTime metadata for the object is set to an earlier date than the date used in this lifecycle condition.
CustomTimeBefore *string `json:"customTimeBefore,omitempty"`
// DaysSinceCustomTime Days since the date set in the customTime metadata for the object. This condition is satisfied when the current date and time is at least the specified number of days after the customTime. When set to 0 it will be ignored, and your state will treat it as though you supplied no days_since_custom_time condition.
DaysSinceCustomTime *float32 `json:"daysSinceCustomTime,omitempty"`
// DaysSinceNoncurrentTime Relevant only for versioned objects. Number of days elapsed since the noncurrent timestamp of an object. When set to 0 it will be ignored, and your state will treat it as though you supplied no days_since_noncurrent_time condition.
DaysSinceNoncurrentTime *float32 `json:"daysSinceNoncurrentTime,omitempty"`
// MatchesPrefix One or more matching name prefixes to satisfy this condition.
MatchesPrefix *[]string `json:"matchesPrefix,omitempty"`
// MatchesStorageClass Storage Class of objects to satisfy this condition. Supported values include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE, DURABLE_REDUCED_AVAILABILITY.
MatchesStorageClass *[]string `json:"matchesStorageClass,omitempty"`
// MatchesSuffix One or more matching name suffixes to satisfy this condition.
MatchesSuffix *[]string `json:"matchesSuffix,omitempty"`
// NoncurrentTimeBefore Relevant only for versioned objects. The date in RFC 3339 (e.g. 2017-06-13) when the object became nonconcurrent. When set to 0 it will be ignored, and your state will treat it as though you supplied no noncurrent_time_before condition.
NoncurrentTimeBefore *string `json:"noncurrentTimeBefore,omitempty"`
// NumNewerVersions Relevant only for versioned objects. The number of newer versions of an object to satisfy this condition. When set to 0 it will be ignored and your state will treat it as though you supplied no num_newer_versions condition.
NumNewerVersions *float32 `json:"numNewerVersions,omitempty"`
// SendAgeIfZero While set true, age value will be sent in the request even for zero value of the field. This field is only useful and required for setting 0 value to the age field. It can be used alone or together with age attribute. NOTE age attibute with 0 value will be ommitted from the API request if send_age_if_zero field is having false value.
SendAgeIfZero *bool `json:"sendAgeIfZero,omitempty"`
// SendDaysSinceCustomTimeIfZero While set true, days_since_custom_time value will be sent in the request even for zero value of the field. This field is only useful for setting 0 value to the days_since_custom_time field. It can be used alone or together with days_since_custom_time.
SendDaysSinceCustomTimeIfZero *bool `json:"sendDaysSinceCustomTimeIfZero,omitempty"`
// SendDaysSinceNoncurrentTimeIfZero While set true, days_since_noncurrent_time value will be sent in the request even for zero value of the field. This field is only useful for setting 0 value to the days_since_noncurrent_time field. It can be used alone or together with days_since_noncurrent_time.
SendDaysSinceNoncurrentTimeIfZero *bool `json:"sendDaysSinceNoncurrentTimeIfZero,omitempty"`
// SendNumNewerVersionsIfZero While set true, num_newer_versions value will be sent in the request even for zero value of the field. This field is only useful for setting 0 value to the num_newer_versions field. It can be used alone or together with num_newer_versions.
SendNumNewerVersionsIfZero *bool `json:"sendNumNewerVersionsIfZero,omitempty"`
// WithState Match to live and/or archived objects. Unversioned buckets have only live objects. Supported values include: "LIVE", "ARCHIVED", "ANY".
WithState *string `json:"withState,omitempty"`
}
// BucketStatusAtProviderLifecycleRuleItem defines model for .
type BucketStatusAtProviderLifecycleRuleItem struct {
// Action The Lifecycle Rule's action configuration. A single block of this type is supported. Structure is documented below.
Action *BucketStatusAtProviderLifecycleRuleItemAction `json:"action,omitempty"`
// Condition The Lifecycle Rule's condition configuration. A single block of this type is supported. Structure is documented below.
Condition *BucketStatusAtProviderLifecycleRuleItemCondition `json:"condition,omitempty"`
}
// BucketStatusAtProviderLogging The bucket's Access & Storage Logs configuration. Structure is documented below.
type BucketStatusAtProviderLogging struct {
// LogBucket The bucket that will receive log objects.
LogBucket *string `json:"logBucket,omitempty"`
// LogObjectPrefix The object prefix for log objects. If it's not provided,
// by default GCS sets this to this bucket's name.
LogObjectPrefix *string `json:"logObjectPrefix,omitempty"`
}
// BucketStatusAtProviderRetentionPolicy Configuration of the bucket's data retention policy for how long objects in the bucket should be retained. Structure is documented below.
type BucketStatusAtProviderRetentionPolicy struct {
// IsLocked If set to true, the bucket will be locked and permanently restrict edits to the bucket's retention policy. Caution: Locking a bucket is an irreversible action.
IsLocked *bool `json:"isLocked,omitempty"`
// RetentionPeriod The period of time, in seconds, that objects in the bucket must be retained and cannot be deleted, overwritten, or archived. The value must be less than 2,147,483,647 seconds.
RetentionPeriod *float32 `json:"retentionPeriod,omitempty"`
}
// BucketStatusAtProviderSoftDeletePolicy The bucket's soft delete policy, which defines the period of time that soft-deleted objects will be retained, and cannot be permanently deleted. Structure is documented below.
type BucketStatusAtProviderSoftDeletePolicy struct {
// EffectiveTime (Computed) Server-determined value that indicates the time from which the policy, or one with a greater retention, was effective. This value is in RFC 3339 format.
EffectiveTime *string `json:"effectiveTime,omitempty"`
// RetentionDurationSeconds The duration in seconds that soft-deleted objects in the bucket will be retained and cannot be permanently deleted. Default value is 604800. The value must be in between 604800(7 days) and 7776000(90 days). Note: To disable the soft delete policy on a bucket, This field must be set to 0.
RetentionDurationSeconds *float32 `json:"retentionDurationSeconds,omitempty"`
}
// BucketStatusAtProviderVersioning The bucket's Versioning configuration. Structure is documented below.
type BucketStatusAtProviderVersioning struct {
// Enabled While set to true, versioning is fully enabled for this bucket.
Enabled *bool `json:"enabled,omitempty"`
}
// BucketStatusAtProviderWebsite Configuration if the bucket acts as a website. Structure is documented below.
type BucketStatusAtProviderWebsite struct {
// MainPageSuffix Behaves as the bucket's directory index where
// missing objects are treated as potential directories.
MainPageSuffix *string `json:"mainPageSuffix,omitempty"`
// NotFoundPage The custom object to return when a requested
// resource is not found.
NotFoundPage *string `json:"notFoundPage,omitempty"`
}
// BucketStatusAtProvider defines model for .
type BucketStatusAtProvider struct {
// Autoclass The bucket's Autoclass configuration. Structure is documented below.
Autoclass *BucketStatusAtProviderAutoclass `json:"autoclass,omitempty"`
// Cors The bucket's Cross-Origin Resource Sharing (CORS) configuration. Multiple blocks of this type are permitted. Structure is documented below.
Cors *[]BucketStatusAtProviderCorsItem `json:"cors,omitempty"`
// CustomPlacementConfig The bucket's custom location configuration, which specifies the individual regions that comprise a dual-region bucket. If the bucket is designated a single or multi-region, the parameters are empty. Structure is documented below.
CustomPlacementConfig *BucketStatusAtProviderCustomPlacementConfig `json:"customPlacementConfig,omitempty"`
// DefaultEventBasedHold Whether or not to automatically apply an eventBasedHold to new objects added to the bucket.
DefaultEventBasedHold *bool `json:"defaultEventBasedHold,omitempty"`
// EffectiveLabels A map of key/value label pairs to assign to the bucket.
EffectiveLabels *map[string]string `json:"effectiveLabels,omitempty"`
// EnableObjectRetention Enables object retention on a storage bucket.
EnableObjectRetention *bool `json:"enableObjectRetention,omitempty"`
// Encryption The bucket's encryption configuration. Structure is documented below.
Encryption *BucketStatusAtProviderEncryption `json:"encryption,omitempty"`
// ForceDestroy When deleting a bucket, this
// boolean option will delete all contained objects.
ForceDestroy *bool `json:"forceDestroy,omitempty"`
// HierarchicalNamespace The bucket's hierarchical namespace policy, which defines the bucket capability to handle folders in logical structure. Structure is documented below. To use this configuration, uniform_bucket_level_access must be enabled on bucket.
HierarchicalNamespace *BucketStatusAtProviderHierarchicalNamespace `json:"hierarchicalNamespace,omitempty"`
ID *string `json:"id,omitempty"`
// IPFilter The bucket IP filtering configuration. Specifies the network sources that can access the bucket, as well as its underlying objects. Structure is documented below.
IPFilter *BucketStatusAtProviderIPFilter `json:"ipFilter,omitempty"`
// Labels A map of key/value label pairs to assign to the bucket.
Labels *map[string]string `json:"labels,omitempty"`
// LifecycleRule The bucket's Lifecycle Rules configuration. Multiple blocks of this type are permitted. Structure is documented below.
LifecycleRule *[]BucketStatusAtProviderLifecycleRuleItem `json:"lifecycleRule,omitempty"`
// Location The GCS location.
Location *string `json:"location,omitempty"`
// Logging The bucket's Access & Storage Logs configuration. Structure is documented below.
Logging *BucketStatusAtProviderLogging `json:"logging,omitempty"`
// Project The ID of the project in which the resource belongs. If it
// is not provided, the provider project is used.
Project *string `json:"project,omitempty"`
ProjectNumber *float32 `json:"projectNumber,omitempty"`
// PublicAccessPrevention Prevents public access to a bucket. Acceptable values are "inherited" or "enforced". If "inherited", the bucket uses public access prevention only if the bucket is subject to the public access prevention organization policy constraint. Defaults to "inherited".
PublicAccessPrevention *string `json:"publicAccessPrevention,omitempty"`
// RequesterPays Enables Requester Pays on a storage bucket.
RequesterPays *bool `json:"requesterPays,omitempty"`
// RetentionPolicy Configuration of the bucket's data retention policy for how long objects in the bucket should be retained. Structure is documented below.
RetentionPolicy *BucketStatusAtProviderRetentionPolicy `json:"retentionPolicy,omitempty"`
// Rpo The recovery point objective for cross-region replication of the bucket. Applicable only for dual and multi-region buckets. "DEFAULT" sets default replication. "ASYNC_TURBO" value enables turbo replication, valid for dual-region buckets only. See Turbo Replication for more information. If rpo is not specified at bucket creation, it defaults to "DEFAULT" for dual and multi-region buckets. NOTE If used with single-region bucket, It will throw an error.
Rpo *string `json:"rpo,omitempty"`
// SelfLink The URI of the created resource.
SelfLink *string `json:"selfLink,omitempty"`
// SoftDeletePolicy The bucket's soft delete policy, which defines the period of time that soft-deleted objects will be retained, and cannot be permanently deleted. Structure is documented below.
SoftDeletePolicy *BucketStatusAtProviderSoftDeletePolicy `json:"softDeletePolicy,omitempty"`
// StorageClass The Storage Class of the new bucket. Supported values include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE.
StorageClass *string `json:"storageClass,omitempty"`
// TerraformLabels A map of key/value label pairs to assign to the bucket.
TerraformLabels *map[string]string `json:"terraformLabels,omitempty"`
// TimeCreated (Computed) The creation time of the bucket in RFC 3339 format.
TimeCreated *string `json:"timeCreated,omitempty"`
// UniformBucketLevelAccess Enables Uniform bucket-level access access to a bucket.
UniformBucketLevelAccess *bool `json:"uniformBucketLevelAccess,omitempty"`
// Updated (Computed) The time at which the bucket's metadata or IAM policy was last updated, in RFC 3339 format.
Updated *string `json:"updated,omitempty"`
// URL The base URL of the bucket, in the format gs://<bucket-name>.
URL *string `json:"url,omitempty"`
// Versioning The bucket's Versioning configuration. Structure is documented below.
Versioning *BucketStatusAtProviderVersioning `json:"versioning,omitempty"`
// Website Configuration if the bucket acts as a website. Structure is documented below.
Website *BucketStatusAtProviderWebsite `json:"website,omitempty"`
}
// BucketStatusConditionsItem A Condition that may apply to a resource.
type BucketStatusConditionsItem struct {
// LastTransitionTime LastTransitionTime is the last time this condition transitioned from one
// status to another.
LastTransitionTime *time.Time `json:"lastTransitionTime,omitempty"`
// Message A Message containing details about this condition's last transition from
// one status to another, if any.
Message *string `json:"message,omitempty"`
// ObservedGeneration ObservedGeneration represents the .metadata.generation that the condition was set based upon.
// For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
// with respect to the current state of the instance.
ObservedGeneration *int64 `json:"observedGeneration,omitempty"`
// Reason A Reason for this condition's last transition from one status to another.
Reason *string `json:"reason,omitempty"`
// Status Status of this condition; is it currently True, False, or Unknown?
Status *string `json:"status,omitempty"`
// Type Type of this condition. At most one of each condition type may apply to
// a resource at any point in time.
Type *string `json:"type,omitempty"`
}
// BucketStatus BucketStatus defines the observed state of Bucket.
type BucketStatus struct {
AtProvider *BucketStatusAtProvider `json:"atProvider,omitempty"`
// Conditions Conditions of the resource.
Conditions *[]BucketStatusConditionsItem `json:"conditions,omitempty"`
// ObservedGeneration ObservedGeneration is the latest metadata.generation
// which resulted in either a ready state, or stalled due to error
// it can not recover from without human intervention.
ObservedGeneration *int64 `json:"observedGeneration,omitempty"`
}
// Bucket Bucket is the Schema for the Buckets API. Creates a new bucket in Google Cloud Storage.
type Bucket struct {
// APIVersion APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
APIVersion *BucketAPIVersion `json:"apiVersion,omitempty"`
// Kind Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
Kind *BucketKind `json:"kind,omitempty"`
// Metadata Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
Metadata *metav1.ObjectMeta `json:"metadata,omitempty"`
// Spec BucketSpec defines the desired state of Bucket
Spec *BucketSpec `json:"spec,omitempty"`
// Status BucketStatus defines the observed state of Bucket.
Status *BucketStatus `json:"status,omitempty"`
}
// IoUpboundGcpStorageV1Beta2BucketList BucketList is a list of Bucket
type IoUpboundGcpStorageV1Beta2BucketList = BucketList
// BucketList BucketList is a list of Bucket
type BucketList struct {
// APIVersion APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
APIVersion *string `json:"apiVersion,omitempty"`
// Items List of buckets. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md
Items *[]IoUpboundGcpStorageV1Beta2Bucket `json:"items,omitempty"`
// Kind Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
Kind *string `json:"kind,omitempty"`
// Metadata Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
Metadata *metav1.ListMeta `json:"metadata,omitempty"`
}
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.18.0
kustomize.config.k8s.io/id: |
group: apiextensions.k8s.io
kind: CustomResourceDefinition
name: buckets.storage.gcp.upbound.io
version: v1
creationTimestamp: null
name: buckets.storage.gcp.upbound.io
spec:
conversion:
strategy: Webhook
webhook:
clientConfig:
service:
name: ""
namespace: ""
path: /convert
conversionReviewVersions:
- v1
group: storage.gcp.upbound.io
names:
categories:
- crossplane
- managed
- gcp
kind: Bucket
listKind: BucketList
plural: buckets
singular: bucket
scope: Cluster
versions:
- additionalPrinterColumns:
- jsonPath: .status.conditions[?(@.type=='Synced')].status
name: SYNCED
type: string
- jsonPath: .status.conditions[?(@.type=='Ready')].status
name: READY
type: string
- jsonPath: .metadata.annotations.crossplane\.io/external-name
name: EXTERNAL-NAME
type: string
- jsonPath: .metadata.creationTimestamp
name: AGE
type: date
name: v1beta1
schema:
openAPIV3Schema:
description: Bucket is the Schema for the Buckets API. Creates a new bucket
in Google Cloud Storage.
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: BucketSpec defines the desired state of Bucket
properties:
deletionPolicy:
default: Delete
description: |-
DeletionPolicy specifies what will happen to the underlying external
when this managed resource is deleted - either "Delete" or "Orphan" the
external resource.
This field is planned to be deprecated in favor of the ManagementPolicies
field in a future release. Currently, both could be set independently and
non-default values would be honored if the feature flag is enabled.
See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223
enum:
- Orphan
- Delete
type: string
forProvider:
properties:
autoclass:
description: The bucket's Autoclass configuration. Structure
is documented below.
items:
properties:
enabled:
description: While set to true, autoclass automatically
transitions objects in your bucket to appropriate storage
classes based on each object's access pattern.
type: boolean
terminalStorageClass:
description: 'The storage class that objects in the bucket
eventually transition to if they are not read for a certain
length of time. Supported values include: NEARLINE, ARCHIVE.'
type: string
type: object
type: array
cors:
description: The bucket's Cross-Origin Resource Sharing (CORS)
configuration. Multiple blocks of this type are permitted. Structure
is documented below.
items:
properties:
maxAgeSeconds:
description: The value, in seconds, to return in the Access-Control-Max-Age
header used in preflight responses.
type: number
method:
description: 'The list of HTTP methods on which to include
CORS response headers, (GET, OPTIONS, POST, etc) Note:
"*" is permitted in the list of methods, and means "any
method".'
items:
type: string
type: array
origin:
description: 'The list of Origins eligible to receive CORS
response headers. Note: "*" is permitted in the list of
origins, and means "any Origin".'
items:
type: string
type: array
responseHeader:
description: The list of HTTP headers other than the simple
response headers to give permission for the user-agent
to share across domains.
items:
type: string
type: array
type: object
type: array
customPlacementConfig:
description: The bucket's custom location configuration, which
specifies the individual regions that comprise a dual-region
bucket. If the bucket is designated a single or multi-region,
the parameters are empty. Structure is documented below.
items:
properties:
dataLocations:
description: 'The list of individual regions that comprise
a dual-region bucket. See Cloud Storage bucket locations
for a list of acceptable regions. Note: If any of the
data_locations changes, it will recreate the bucket.'
items:
type: string
type: array
x-kubernetes-list-type: set
type: object
type: array
defaultEventBasedHold:
description: Whether or not to automatically apply an eventBasedHold
to new objects added to the bucket.
type: boolean
enableObjectRetention:
description: Enables object retention on a storage bucket.
type: boolean
encryption:
description: The bucket's encryption configuration. Structure
is documented below.
items:
properties:
defaultKmsKeyName:
description: |-
: The id of a Cloud KMS key that will be used to encrypt objects inserted into this bucket, if no encryption method is specified.
You must pay attention to whether the crypto key is available in the location that this bucket is created in.
See the docs for more details.
type: string
type: object
type: array
forceDestroy:
description: |-
When deleting a bucket, this
boolean option will delete all contained objects.
type: boolean
hierarchicalNamespace:
description: The bucket's hierarchical namespace policy, which
defines the bucket capability to handle folders in logical structure.
Structure is documented below. To use this configuration, uniform_bucket_level_access
must be enabled on bucket.
items:
properties:
enabled:
description: Enables hierarchical namespace for the bucket.
type: boolean
type: object
type: array
ipFilter:
description: The bucket IP filtering configuration. Specifies
the network sources that can access the bucket, as well as its
underlying objects. Structure is documented below.
items:
properties:
allowAllServiceAgentAccess:
description: While set true, allows all service agents to
access the bucket regardless of the IP filter configuration.
type: boolean
allowCrossOrgVpcs:
description: While set true, allows cross-org VPCs in the
bucket's IP filter configuration.
type: boolean
mode:
description: 'The state of the IP filter configuration.
Valid values are Enabled and Disabled. When set to Enabled,
IP filtering rules are applied to a bucket and all incoming
requests to the bucket are evaluated against these rules.
When set to Disabled, IP filtering rules are not applied
to a bucket. Note: allow_all_service_agent_access must
be supplied when mode is set to Enabled, it can be ommited
for other values.'
type: string
publicNetworkSource:
description: The public network IP address ranges that can
access the bucket and its data. Structure is documented
below.
items:
properties:
allowedIpCidrRanges:
description: The list of public or private IPv4 and
IPv6 CIDR ranges that can access the bucket.
items:
type: string
type: array
type: object
type: array
vpcNetworkSources:
description: The list of VPC networks that can access the
bucket. Structure is documented below.
items:
properties:
allowedIpCidrRanges:
description: The list of public or private IPv4 and
IPv6 CIDR ranges that can access the bucket.
items:
type: string
type: array
network:
description: 'Name of the network. Format: projects/PROJECT_ID/global/networks/NETWORK_NAME'
type: string
type: object
type: array
type: object
type: array
labels:
additionalProperties:
type: string
description: A map of key/value label pairs to assign to the bucket.
type: object
x-kubernetes-map-type: granular
lifecycleRule:
description: The bucket's Lifecycle Rules configuration. Multiple
blocks of this type are permitted. Structure is documented below.
items:
properties:
action:
description: The Lifecycle Rule's action configuration.
A single block of this type is supported. Structure is
documented below.
items:
properties:
storageClass:
description: 'The Storage Class of the new bucket.
Supported values include: STANDARD, MULTI_REGIONAL,
REGIONAL, NEARLINE, COLDLINE, ARCHIVE.'
type: string
type:
description: 'The type of the action of this Lifecycle
Rule. Supported values include: Delete, SetStorageClass
and AbortIncompleteMultipartUpload.'
type: string
type: object
type: array
condition:
description: The Lifecycle Rule's condition configuration.
A single block of this type is supported. Structure is
documented below.
items:
properties:
age:
description: Minimum age of an object in days to satisfy
this condition.
type: number
createdBefore:
description: A date in the RFC 3339 format YYYY-MM-DD.
This condition is satisfied when an object is created
before midnight of the specified date in UTC.
type: string
customTimeBefore:
description: A date in the RFC 3339 format YYYY-MM-DD.
This condition is satisfied when the customTime
metadata for the object is set to an earlier date
than the date used in this lifecycle condition.
type: string
daysSinceCustomTime:
description: Days since the date set in the customTime
metadata for the object. This condition is satisfied
when the current date and time is at least the specified
number of days after the customTime.
type: number
daysSinceNoncurrentTime:
description: Relevant only for versioned objects.
Number of days elapsed since the noncurrent timestamp
of an object.
type: number
matchesPrefix:
description: One or more matching name prefixes to
satisfy this condition.
items:
type: string
type: array
matchesStorageClass:
description: 'Storage Class of objects to satisfy
this condition. Supported values include: STANDARD,
MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE,
DURABLE_REDUCED_AVAILABILITY.'
items:
type: string
type: array
matchesSuffix:
description: One or more matching name suffixes to
satisfy this condition.
items:
type: string
type: array
noncurrentTimeBefore:
description: Relevant only for versioned objects.
The date in RFC 3339 (e.g. 2017-06-13) when the
object became nonconcurrent.
type: string
numNewerVersions:
description: Relevant only for versioned objects.
The number of newer versions of an object to satisfy
this condition.
type: number
sendAgeIfZero:
description: While set true, age value will be sent
in the request even for zero value of the field.
This field is only useful and required for setting
0 value to the age field. It can be used alone or
together with age attribute. NOTE age attibute with
0 value will be ommitted from the API request if
send_age_if_zero field is having false value.
type: boolean
sendDaysSinceCustomTimeIfZero:
description: While set true, days_since_custom_time
value will be sent in the request even for zero
value of the field. This field is only useful for
setting 0 value to the days_since_custom_time field.
It can be used alone or together with days_since_custom_time.
type: boolean
sendDaysSinceNoncurrentTimeIfZero:
description: While set true, days_since_noncurrent_time
value will be sent in the request even for zero
value of the field. This field is only useful for
setting 0 value to the days_since_noncurrent_time
field. It can be used alone or together with days_since_noncurrent_time.
type: boolean
sendNumNewerVersionsIfZero:
description: While set true, num_newer_versions value
will be sent in the request even for zero value
of the field. This field is only useful for setting
0 value to the num_newer_versions field. It can
be used alone or together with num_newer_versions.
type: boolean
withState:
description: 'Match to live and/or archived objects.
Unversioned buckets have only live objects. Supported
values include: "LIVE", "ARCHIVED", "ANY".'
type: string
type: object
type: array
type: object
type: array
location:
description: The GCS location.
type: string
logging:
description: The bucket's Access & Storage Logs configuration.
Structure is documented below.
items:
properties:
logBucket:
description: The bucket that will receive log objects.
type: string
logObjectPrefix:
description: |-
The object prefix for log objects. If it's not provided,
by default GCS sets this to this bucket's name.
type: string
type: object
type: array
project:
description: |-
The ID of the project in which the resource belongs. If it
is not provided, the provider project is used.
type: string
publicAccessPrevention:
description: Prevents public access to a bucket. Acceptable values
are "inherited" or "enforced". If "inherited", the bucket uses
public access prevention. only if the bucket is subject to the
public access prevention organization policy constraint. Defaults
to "inherited".
type: string
requesterPays:
description: Enables Requester Pays on a storage bucket.
type: boolean
retentionPolicy:
description: Configuration of the bucket's data retention policy
for how long objects in the bucket should be retained. Structure
is documented below.
items:
properties:
isLocked:
description: 'If set to true, the bucket will be locked
and permanently restrict edits to the bucket''s retention
policy. Caution: Locking a bucket is an irreversible
action.'
type: boolean
retentionPeriod:
description: The period of time, in seconds, that objects
in the bucket must be retained and cannot be deleted,
overwritten, or archived. The value must be less than
2,147,483,647 seconds.
type: number
type: object
type: array
rpo:
description: The recovery point objective for cross-region replication
of the bucket. Applicable only for dual and multi-region buckets.
"DEFAULT" sets default replication. "ASYNC_TURBO" value enables
turbo replication, valid for dual-region buckets only. See Turbo
Replication for more information. If rpo is not specified at
bucket creation, it defaults to "DEFAULT" for dual and multi-region
buckets. NOTE If used with single-region bucket, It will throw
an error.
type: string
softDeletePolicy:
description: The bucket's soft delete policy, which defines the
period of time that soft-deleted objects will be retained, and
cannot be permanently deleted. Structure is documented below.
items:
properties:
retentionDurationSeconds:
description: 'The duration in seconds that soft-deleted
objects in the bucket will be retained and cannot be permanently
deleted. Default value is 604800. The value must be in
between 604800(7 days) and 7776000(90 days). Note: To
disable the soft delete policy on a bucket, This field
must be set to 0.'
type: number
type: object
type: array
storageClass:
description: 'The Storage Class of the new bucket. Supported values
include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE,
ARCHIVE.'
type: string
uniformBucketLevelAccess:
description: Enables Uniform bucket-level access access to a bucket.
type: boolean
versioning:
description: The bucket's Versioning configuration. Structure
is documented below.
items:
properties:
enabled:
description: While set to true, versioning is fully enabled
for this bucket.
type: boolean
type: object
type: array
website:
description: Configuration if the bucket acts as a website. Structure
is documented below.
items:
properties:
mainPageSuffix:
description: |-
Behaves as the bucket's directory index where
missing objects are treated as potential directories.
type: string
notFoundPage:
description: |-
The custom object to return when a requested
resource is not found.
type: string
type: object
type: array
type: object
initProvider:
description: |-
THIS IS A BETA FIELD. It will be honored
unless the Management Policies feature flag is disabled.
InitProvider holds the same fields as ForProvider, with the exception
of Identifier and other resource reference fields. The fields that are
in InitProvider are merged into ForProvider when the resource is created.
The same fields are also added to the terraform ignore_changes hook, to
avoid updating them after creation. This is useful for fields that are
required on creation, but we do not desire to update them after creation,
for example because of an external controller is managing them, like an
autoscaler.
properties:
autoclass:
description: The bucket's Autoclass configuration. Structure
is documented below.
items:
properties:
enabled:
description: While set to true, autoclass automatically
transitions objects in your bucket to appropriate storage
classes based on each object's access pattern.
type: boolean
terminalStorageClass:
description: 'The storage class that objects in the bucket
eventually transition to if they are not read for a certain
length of time. Supported values include: NEARLINE, ARCHIVE.'
type: string
type: object
type: array
cors:
description: The bucket's Cross-Origin Resource Sharing (CORS)
configuration. Multiple blocks of this type are permitted. Structure
is documented below.
items:
properties:
maxAgeSeconds:
description: The value, in seconds, to return in the Access-Control-Max-Age
header used in preflight responses.
type: number
method:
description: 'The list of HTTP methods on which to include
CORS response headers, (GET, OPTIONS, POST, etc) Note:
"*" is permitted in the list of methods, and means "any
method".'
items:
type: string
type: array
origin:
description: 'The list of Origins eligible to receive CORS
response headers. Note: "*" is permitted in the list of
origins, and means "any Origin".'
items:
type: string
type: array
responseHeader:
description: The list of HTTP headers other than the simple
response headers to give permission for the user-agent
to share across domains.
items:
type: string
type: array
type: object
type: array
customPlacementConfig:
description: The bucket's custom location configuration, which
specifies the individual regions that comprise a dual-region
bucket. If the bucket is designated a single or multi-region,
the parameters are empty. Structure is documented below.
items:
properties:
dataLocations:
description: 'The list of individual regions that comprise
a dual-region bucket. See Cloud Storage bucket locations
for a list of acceptable regions. Note: If any of the
data_locations changes, it will recreate the bucket.'
items:
type: string
type: array
x-kubernetes-list-type: set
type: object
type: array
defaultEventBasedHold:
description: Whether or not to automatically apply an eventBasedHold
to new objects added to the bucket.
type: boolean
enableObjectRetention:
description: Enables object retention on a storage bucket.
type: boolean
encryption:
description: The bucket's encryption configuration. Structure
is documented below.
items:
properties:
defaultKmsKeyName:
description: |-
: The id of a Cloud KMS key that will be used to encrypt objects inserted into this bucket, if no encryption method is specified.
You must pay attention to whether the crypto key is available in the location that this bucket is created in.
See the docs for more details.
type: string
type: object
type: array
forceDestroy:
description: |-
When deleting a bucket, this
boolean option will delete all contained objects.
type: boolean
hierarchicalNamespace:
description: The bucket's hierarchical namespace policy, which
defines the bucket capability to handle folders in logical structure.
Structure is documented below. To use this configuration, uniform_bucket_level_access
must be enabled on bucket.
items:
properties:
enabled:
description: Enables hierarchical namespace for the bucket.
type: boolean
type: object
type: array
ipFilter:
description: The bucket IP filtering configuration. Specifies
the network sources that can access the bucket, as well as its
underlying objects. Structure is documented below.
items:
properties:
allowAllServiceAgentAccess:
description: While set true, allows all service agents to
access the bucket regardless of the IP filter configuration.
type: boolean
allowCrossOrgVpcs:
description: While set true, allows cross-org VPCs in the
bucket's IP filter configuration.
type: boolean
mode:
description: 'The state of the IP filter configuration.
Valid values are Enabled and Disabled. When set to Enabled,
IP filtering rules are applied to a bucket and all incoming
requests to the bucket are evaluated against these rules.
When set to Disabled, IP filtering rules are not applied
to a bucket. Note: allow_all_service_agent_access must
be supplied when mode is set to Enabled, it can be ommited
for other values.'
type: string
publicNetworkSource:
description: The public network IP address ranges that can
access the bucket and its data. Structure is documented
below.
items:
properties:
allowedIpCidrRanges:
description: The list of public or private IPv4 and
IPv6 CIDR ranges that can access the bucket.
items:
type: string
type: array
type: object
type: array
vpcNetworkSources:
description: The list of VPC networks that can access the
bucket. Structure is documented below.
items:
properties:
allowedIpCidrRanges:
description: The list of public or private IPv4 and
IPv6 CIDR ranges that can access the bucket.
items:
type: string
type: array
network:
description: 'Name of the network. Format: projects/PROJECT_ID/global/networks/NETWORK_NAME'
type: string
type: object
type: array
type: object
type: array
labels:
additionalProperties:
type: string
description: A map of key/value label pairs to assign to the bucket.
type: object
x-kubernetes-map-type: granular
lifecycleRule:
description: The bucket's Lifecycle Rules configuration. Multiple
blocks of this type are permitted. Structure is documented below.
items:
properties:
action:
description: The Lifecycle Rule's action configuration.
A single block of this type is supported. Structure is
documented below.
items:
properties:
storageClass:
description: 'The Storage Class of the new bucket.
Supported values include: STANDARD, MULTI_REGIONAL,
REGIONAL, NEARLINE, COLDLINE, ARCHIVE.'
type: string
type:
description: 'The type of the action of this Lifecycle
Rule. Supported values include: Delete, SetStorageClass
and AbortIncompleteMultipartUpload.'
type: string
type: object
type: array
condition:
description: The Lifecycle Rule's condition configuration.
A single block of this type is supported. Structure is
documented below.
items:
properties:
age:
description: Minimum age of an object in days to satisfy
this condition.
type: number
createdBefore:
description: A date in the RFC 3339 format YYYY-MM-DD.
This condition is satisfied when an object is created
before midnight of the specified date in UTC.
type: string
customTimeBefore:
description: A date in the RFC 3339 format YYYY-MM-DD.
This condition is satisfied when the customTime
metadata for the object is set to an earlier date
than the date used in this lifecycle condition.
type: string
daysSinceCustomTime:
description: Days since the date set in the customTime
metadata for the object. This condition is satisfied
when the current date and time is at least the specified
number of days after the customTime.
type: number
daysSinceNoncurrentTime:
description: Relevant only for versioned objects.
Number of days elapsed since the noncurrent timestamp
of an object.
type: number
matchesPrefix:
description: One or more matching name prefixes to
satisfy this condition.
items:
type: string
type: array
matchesStorageClass:
description: 'Storage Class of objects to satisfy
this condition. Supported values include: STANDARD,
MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE,
DURABLE_REDUCED_AVAILABILITY.'
items:
type: string
type: array
matchesSuffix:
description: One or more matching name suffixes to
satisfy this condition.
items:
type: string
type: array
noncurrentTimeBefore:
description: Relevant only for versioned objects.
The date in RFC 3339 (e.g. 2017-06-13) when the
object became nonconcurrent.
type: string
numNewerVersions:
description: Relevant only for versioned objects.
The number of newer versions of an object to satisfy
this condition.
type: number
sendAgeIfZero:
description: While set true, age value will be sent
in the request even for zero value of the field.
This field is only useful and required for setting
0 value to the age field. It can be used alone or
together with age attribute. NOTE age attibute with
0 value will be ommitted from the API request if
send_age_if_zero field is having false value.
type: boolean
sendDaysSinceCustomTimeIfZero:
description: While set true, days_since_custom_time
value will be sent in the request even for zero
value of the field. This field is only useful for
setting 0 value to the days_since_custom_time field.
It can be used alone or together with days_since_custom_time.
type: boolean
sendDaysSinceNoncurrentTimeIfZero:
description: While set true, days_since_noncurrent_time
value will be sent in the request even for zero
value of the field. This field is only useful for
setting 0 value to the days_since_noncurrent_time
field. It can be used alone or together with days_since_noncurrent_time.
type: boolean
sendNumNewerVersionsIfZero:
description: While set true, num_newer_versions value
will be sent in the request even for zero value
of the field. This field is only useful for setting
0 value to the num_newer_versions field. It can
be used alone or together with num_newer_versions.
type: boolean
withState:
description: 'Match to live and/or archived objects.
Unversioned buckets have only live objects. Supported
values include: "LIVE", "ARCHIVED", "ANY".'
type: string
type: object
type: array
type: object
type: array
location:
description: The GCS location.
type: string
logging:
description: The bucket's Access & Storage Logs configuration.
Structure is documented below.
items:
properties:
logBucket:
description: The bucket that will receive log objects.
type: string
logObjectPrefix:
description: |-
The object prefix for log objects. If it's not provided,
by default GCS sets this to this bucket's name.
type: string
type: object
type: array
project:
description: |-
The ID of the project in which the resource belongs. If it
is not provided, the provider project is used.
type: string
publicAccessPrevention:
description: Prevents public access to a bucket. Acceptable values
are "inherited" or "enforced". If "inherited", the bucket uses
public access prevention. only if the bucket is subject to the
public access prevention organization policy constraint. Defaults
to "inherited".
type: string
requesterPays:
description: Enables Requester Pays on a storage bucket.
type: boolean
retentionPolicy:
description: Configuration of the bucket's data retention policy
for how long objects in the bucket should be retained. Structure
is documented below.
items:
properties:
isLocked:
description: 'If set to true, the bucket will be locked
and permanently restrict edits to the bucket''s retention
policy. Caution: Locking a bucket is an irreversible
action.'
type: boolean
retentionPeriod:
description: The period of time, in seconds, that objects
in the bucket must be retained and cannot be deleted,
overwritten, or archived. The value must be less than
2,147,483,647 seconds.
type: number
type: object
type: array
rpo:
description: The recovery point objective for cross-region replication
of the bucket. Applicable only for dual and multi-region buckets.
"DEFAULT" sets default replication. "ASYNC_TURBO" value enables
turbo replication, valid for dual-region buckets only. See Turbo
Replication for more information. If rpo is not specified at
bucket creation, it defaults to "DEFAULT" for dual and multi-region
buckets. NOTE If used with single-region bucket, It will throw
an error.
type: string
softDeletePolicy:
description: The bucket's soft delete policy, which defines the
period of time that soft-deleted objects will be retained, and
cannot be permanently deleted. Structure is documented below.
items:
properties:
retentionDurationSeconds:
description: 'The duration in seconds that soft-deleted
objects in the bucket will be retained and cannot be permanently
deleted. Default value is 604800. The value must be in
between 604800(7 days) and 7776000(90 days). Note: To
disable the soft delete policy on a bucket, This field
must be set to 0.'
type: number
type: object
type: array
storageClass:
description: 'The Storage Class of the new bucket. Supported values
include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE,
ARCHIVE.'
type: string
uniformBucketLevelAccess:
description: Enables Uniform bucket-level access access to a bucket.
type: boolean
versioning:
description: The bucket's Versioning configuration. Structure
is documented below.
items:
properties:
enabled:
description: While set to true, versioning is fully enabled
for this bucket.
type: boolean
type: object
type: array
website:
description: Configuration if the bucket acts as a website. Structure
is documented below.
items:
properties:
mainPageSuffix:
description: |-
Behaves as the bucket's directory index where
missing objects are treated as potential directories.
type: string
notFoundPage:
description: |-
The custom object to return when a requested
resource is not found.
type: string
type: object
type: array
type: object
managementPolicies:
default:
- '*'
description: |-
THIS IS A BETA FIELD. It is on by default but can be opted out
through a Crossplane feature flag.
ManagementPolicies specify the array of actions Crossplane is allowed to
take on the managed and external resources.
This field is planned to replace the DeletionPolicy field in a future
release. Currently, both could be set independently and non-default
values would be honored if the feature flag is enabled. If both are
custom, the DeletionPolicy field will be ignored.
See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223
and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md
items:
description: |-
A ManagementAction represents an action that the Crossplane controllers
can take on an external resource.
enum:
- Observe
- Create
- Update
- Delete
- LateInitialize
- '*'
type: string
type: array
providerConfigRef:
default:
name: default
description: |-
ProviderConfigReference specifies how the provider that will be used to
create, observe, update, and delete this managed resource should be
configured.
properties:
name:
description: Name of the referenced object.
type: string
policy:
description: Policies for referencing.
properties:
resolution:
default: Required
description: |-
Resolution specifies whether resolution of this reference is required.
The default is 'Required', which means the reconcile will fail if the
reference cannot be resolved. 'Optional' means this reference will be
a no-op if it cannot be resolved.
enum:
- Required
- Optional
type: string
resolve:
description: |-
Resolve specifies when this reference should be resolved. The default
is 'IfNotPresent', which will attempt to resolve the reference only when
the corresponding field is not present. Use 'Always' to resolve the
reference on every reconcile.
enum:
- Always
- IfNotPresent
type: string
type: object
required:
- name
type: object
writeConnectionSecretToRef:
description: |-
WriteConnectionSecretToReference specifies the namespace and name of a
Secret to which any connection details for this managed resource should
be written. Connection details frequently include the endpoint, username,
and password required to connect to the managed resource.
properties:
name:
description: Name of the secret.
type: string
namespace:
description: Namespace of the secret.
type: string
required:
- name
- namespace
type: object
required:
- forProvider
type: object
x-kubernetes-validations:
- message: spec.forProvider.location is a required parameter
rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies
|| ''Update'' in self.managementPolicies) || has(self.forProvider.location)
|| (has(self.initProvider) && has(self.initProvider.location))'
status:
description: BucketStatus defines the observed state of Bucket.
properties:
atProvider:
properties:
autoclass:
description: The bucket's Autoclass configuration. Structure
is documented below.
items:
properties:
enabled:
description: While set to true, autoclass automatically
transitions objects in your bucket to appropriate storage
classes based on each object's access pattern.
type: boolean
terminalStorageClass:
description: 'The storage class that objects in the bucket
eventually transition to if they are not read for a certain
length of time. Supported values include: NEARLINE, ARCHIVE.'
type: string
type: object
type: array
cors:
description: The bucket's Cross-Origin Resource Sharing (CORS)
configuration. Multiple blocks of this type are permitted. Structure
is documented below.
items:
properties:
maxAgeSeconds:
description: The value, in seconds, to return in the Access-Control-Max-Age
header used in preflight responses.
type: number
method:
description: 'The list of HTTP methods on which to include
CORS response headers, (GET, OPTIONS, POST, etc) Note:
"*" is permitted in the list of methods, and means "any
method".'
items:
type: string
type: array
origin:
description: 'The list of Origins eligible to receive CORS
response headers. Note: "*" is permitted in the list of
origins, and means "any Origin".'
items:
type: string
type: array
responseHeader:
description: The list of HTTP headers other than the simple
response headers to give permission for the user-agent
to share across domains.
items:
type: string
type: array
type: object
type: array
customPlacementConfig:
description: The bucket's custom location configuration, which
specifies the individual regions that comprise a dual-region
bucket. If the bucket is designated a single or multi-region,
the parameters are empty. Structure is documented below.
items:
properties:
dataLocations:
description: 'The list of individual regions that comprise
a dual-region bucket. See Cloud Storage bucket locations
for a list of acceptable regions. Note: If any of the
data_locations changes, it will recreate the bucket.'
items:
type: string
type: array
x-kubernetes-list-type: set
type: object
type: array
defaultEventBasedHold:
description: Whether or not to automatically apply an eventBasedHold
to new objects added to the bucket.
type: boolean
effectiveLabels:
additionalProperties:
type: string
description: A map of key/value label pairs to assign to the bucket.
type: object
x-kubernetes-map-type: granular
enableObjectRetention:
description: Enables object retention on a storage bucket.
type: boolean
encryption:
description: The bucket's encryption configuration. Structure
is documented below.
items:
properties:
defaultKmsKeyName:
description: |-
: The id of a Cloud KMS key that will be used to encrypt objects inserted into this bucket, if no encryption method is specified.
You must pay attention to whether the crypto key is available in the location that this bucket is created in.
See the docs for more details.
type: string
type: object
type: array
forceDestroy:
description: |-
When deleting a bucket, this
boolean option will delete all contained objects.
type: boolean
hierarchicalNamespace:
description: The bucket's hierarchical namespace policy, which
defines the bucket capability to handle folders in logical structure.
Structure is documented below. To use this configuration, uniform_bucket_level_access
must be enabled on bucket.
items:
properties:
enabled:
description: Enables hierarchical namespace for the bucket.
type: boolean
type: object
type: array
id:
type: string
ipFilter:
description: The bucket IP filtering configuration. Specifies
the network sources that can access the bucket, as well as its
underlying objects. Structure is documented below.
items:
properties:
allowAllServiceAgentAccess:
description: While set true, allows all service agents to
access the bucket regardless of the IP filter configuration.
type: boolean
allowCrossOrgVpcs:
description: While set true, allows cross-org VPCs in the
bucket's IP filter configuration.
type: boolean
mode:
description: 'The state of the IP filter configuration.
Valid values are Enabled and Disabled. When set to Enabled,
IP filtering rules are applied to a bucket and all incoming
requests to the bucket are evaluated against these rules.
When set to Disabled, IP filtering rules are not applied
to a bucket. Note: allow_all_service_agent_access must
be supplied when mode is set to Enabled, it can be ommited
for other values.'
type: string
publicNetworkSource:
description: The public network IP address ranges that can
access the bucket and its data. Structure is documented
below.
items:
properties:
allowedIpCidrRanges:
description: The list of public or private IPv4 and
IPv6 CIDR ranges that can access the bucket.
items:
type: string
type: array
type: object
type: array
vpcNetworkSources:
description: The list of VPC networks that can access the
bucket. Structure is documented below.
items:
properties:
allowedIpCidrRanges:
description: The list of public or private IPv4 and
IPv6 CIDR ranges that can access the bucket.
items:
type: string
type: array
network:
description: 'Name of the network. Format: projects/PROJECT_ID/global/networks/NETWORK_NAME'
type: string
type: object
type: array
type: object
type: array
labels:
additionalProperties:
type: string
description: A map of key/value label pairs to assign to the bucket.
type: object
x-kubernetes-map-type: granular
lifecycleRule:
description: The bucket's Lifecycle Rules configuration. Multiple
blocks of this type are permitted. Structure is documented below.
items:
properties:
action:
description: The Lifecycle Rule's action configuration.
A single block of this type is supported. Structure is
documented below.
items:
properties:
storageClass:
description: 'The Storage Class of the new bucket.
Supported values include: STANDARD, MULTI_REGIONAL,
REGIONAL, NEARLINE, COLDLINE, ARCHIVE.'
type: string
type:
description: 'The type of the action of this Lifecycle
Rule. Supported values include: Delete, SetStorageClass
and AbortIncompleteMultipartUpload.'
type: string
type: object
type: array
condition:
description: The Lifecycle Rule's condition configuration.
A single block of this type is supported. Structure is
documented below.
items:
properties:
age:
description: Minimum age of an object in days to satisfy
this condition.
type: number
createdBefore:
description: A date in the RFC 3339 format YYYY-MM-DD.
This condition is satisfied when an object is created
before midnight of the specified date in UTC.
type: string
customTimeBefore:
description: A date in the RFC 3339 format YYYY-MM-DD.
This condition is satisfied when the customTime
metadata for the object is set to an earlier date
than the date used in this lifecycle condition.
type: string
daysSinceCustomTime:
description: Days since the date set in the customTime
metadata for the object. This condition is satisfied
when the current date and time is at least the specified
number of days after the customTime.
type: number
daysSinceNoncurrentTime:
description: Relevant only for versioned objects.
Number of days elapsed since the noncurrent timestamp
of an object.
type: number
matchesPrefix:
description: One or more matching name prefixes to
satisfy this condition.
items:
type: string
type: array
matchesStorageClass:
description: 'Storage Class of objects to satisfy
this condition. Supported values include: STANDARD,
MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE, ARCHIVE,
DURABLE_REDUCED_AVAILABILITY.'
items:
type: string
type: array
matchesSuffix:
description: One or more matching name suffixes to
satisfy this condition.
items:
type: string
type: array
noncurrentTimeBefore:
description: Relevant only for versioned objects.
The date in RFC 3339 (e.g. 2017-06-13) when the
object became nonconcurrent.
type: string
numNewerVersions:
description: Relevant only for versioned objects.
The number of newer versions of an object to satisfy
this condition.
type: number
sendAgeIfZero:
description: While set true, age value will be sent
in the request even for zero value of the field.
This field is only useful and required for setting
0 value to the age field. It can be used alone or
together with age attribute. NOTE age attibute with
0 value will be ommitted from the API request if
send_age_if_zero field is having false value.
type: boolean
sendDaysSinceCustomTimeIfZero:
description: While set true, days_since_custom_time
value will be sent in the request even for zero
value of the field. This field is only useful for
setting 0 value to the days_since_custom_time field.
It can be used alone or together with days_since_custom_time.
type: boolean
sendDaysSinceNoncurrentTimeIfZero:
description: While set true, days_since_noncurrent_time
value will be sent in the request even for zero
value of the field. This field is only useful for
setting 0 value to the days_since_noncurrent_time
field. It can be used alone or together with days_since_noncurrent_time.
type: boolean
sendNumNewerVersionsIfZero:
description: While set true, num_newer_versions value
will be sent in the request even for zero value
of the field. This field is only useful for setting
0 value to the num_newer_versions field. It can
be used alone or together with num_newer_versions.
type: boolean
withState:
description: 'Match to live and/or archived objects.
Unversioned buckets have only live objects. Supported
values include: "LIVE", "ARCHIVED", "ANY".'
type: string
type: object
type: array
type: object
type: array
location:
description: The GCS location.
type: string
logging:
description: The bucket's Access & Storage Logs configuration.
Structure is documented below.
items:
properties:
logBucket:
description: The bucket that will receive log objects.
type: string
logObjectPrefix:
description: |-
The object prefix for log objects. If it's not provided,
by default GCS sets this to this bucket's name.
type: string
type: object
type: array
project:
description: |-
The ID of the project in which the resource belongs. If it
is not provided, the provider project is used.
type: string
projectNumber:
type: number
publicAccessPrevention:
description: Prevents public access to a bucket. Acceptable values
are "inherited" or "enforced". If "inherited", the bucket uses
public access prevention. only if the bucket is subject to the
public access prevention organization policy constraint. Defaults
to "inherited".
type: string
requesterPays:
description: Enables Requester Pays on a storage bucket.
type: boolean
retentionPolicy:
description: Configuration of the bucket's data retention policy
for how long objects in the bucket should be retained. Structure
is documented below.
items:
properties:
isLocked:
description: 'If set to true, the bucket will be locked
and permanently restrict edits to the bucket''s retention
policy. Caution: Locking a bucket is an irreversible
action.'
type: boolean
retentionPeriod:
description: The period of time, in seconds, that objects
in the bucket must be retained and cannot be deleted,
overwritten, or archived. The value must be less than
2,147,483,647 seconds.
type: number
type: object
type: array
rpo:
description: The recovery point objective for cross-region replication
of the bucket. Applicable only for dual and multi-region buckets.
"DEFAULT" sets default replication. "ASYNC_TURBO" value enables
turbo replication, valid for dual-region buckets only. See Turbo
Replication for more information. If rpo is not specified at
bucket creation, it defaults to "DEFAULT" for dual and multi-region
buckets. NOTE If used with single-region bucket, It will throw
an error.
type: string
selfLink:
description: The URI of the created resource.
type: string
softDeletePolicy:
description: The bucket's soft delete policy, which defines the
period of time that soft-deleted objects will be retained, and
cannot be permanently deleted. Structure is documented below.
items:
properties:
effectiveTime:
description: (Computed) Server-determined value that indicates
the time from which the policy, or one with a greater
retention, was effective. This value is in RFC 3339 format.
type: string
retentionDurationSeconds:
description: 'The duration in seconds that soft-deleted
objects in the bucket will be retained and cannot be permanently
deleted. Default value is 604800. The value must be in
between 604800(7 days) and 7776000(90 days). Note: To
disable the soft delete policy on a bucket, This field
must be set to 0.'
type: number
type: object
type: array
storageClass:
description: 'The Storage Class of the new bucket. Supported values
include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE,
ARCHIVE.'
type: string
terraformLabels:
additionalProperties:
type: string
description: A map of key/value label pairs to assign to the bucket.
type: object
x-kubernetes-map-type: granular
timeCreated:
description: (Computed) The creation time of the bucket in RFC
3339 format.
type: string
uniformBucketLevelAccess:
description: Enables Uniform bucket-level access access to a bucket.
type: boolean
updated:
description: (Computed) The time at which the bucket's metadata
or IAM policy was last updated, in RFC 3339 format.
type: string
url:
description: The base URL of the bucket, in the format gs://<bucket-name>.
type: string
versioning:
description: The bucket's Versioning configuration. Structure
is documented below.
items:
properties:
enabled:
description: While set to true, versioning is fully enabled
for this bucket.
type: boolean
type: object
type: array
website:
description: Configuration if the bucket acts as a website. Structure
is documented below.
items:
properties:
mainPageSuffix:
description: |-
Behaves as the bucket's directory index where
missing objects are treated as potential directories.
type: string
notFoundPage:
description: |-
The custom object to return when a requested
resource is not found.
type: string
type: object
type: array
type: object
conditions:
description: Conditions of the resource.
items:
description: A Condition that may apply to a resource.
properties:
lastTransitionTime:
description: |-
LastTransitionTime is the last time this condition transitioned from one
status to another.
format: date-time
type: string
message:
description: |-
A Message containing details about this condition's last transition from
one status to another, if any.
type: string
observedGeneration:
description: |-
ObservedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
type: integer
reason:
description: A Reason for this condition's last transition from
one status to another.
type: string
status:
description: Status of this condition; is it currently True,
False, or Unknown?
type: string
type:
description: |-
Type of this condition. At most one of each condition type may apply to
a resource at any point in time.
type: string
required:
- lastTransitionTime
- reason
- status
- type
type: object
type: array
x-kubernetes-list-map-keys:
- type
x-kubernetes-list-type: map
observedGeneration:
description: |-
ObservedGeneration is the latest metadata.generation
which resulted in either a ready state, or stalled due to error
it can not recover from without human intervention.
format: int64
type: integer
type: object
required:
- spec
type: object
served: true
storage: true
subresources:
status: {}
- additionalPrinterColumns:
- jsonPath: .status.conditions[?(@.type=='Synced')].status
name: SYNCED
type: string
- jsonPath: .status.conditions[?(@.type=='Ready')].status
name: READY
type: string
- jsonPath: .metadata.annotations.crossplane\.io/external-name
name: EXTERNAL-NAME
type: string
- jsonPath: .metadata.creationTimestamp
name: AGE
type: date
name: v1beta2
schema:
openAPIV3Schema:
description: Bucket is the Schema for the Buckets API. Creates a new bucket
in Google Cloud Storage.
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: BucketSpec defines the desired state of Bucket
properties:
deletionPolicy:
default: Delete
description: |-
DeletionPolicy specifies what will happen to the underlying external
when this managed resource is deleted - either "Delete" or "Orphan" the
external resource.
This field is planned to be deprecated in favor of the ManagementPolicies
field in a future release. Currently, both could be set independently and
non-default values would be honored if the feature flag is enabled.
See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223
enum:
- Orphan
- Delete
type: string
forProvider:
properties:
autoclass:
description: The bucket's Autoclass configuration. Structure
is documented below.
properties:
enabled:
description: While set to true, autoclass automatically transitions
objects in your bucket to appropriate storage classes based
on each object's access pattern.
type: boolean
terminalStorageClass:
description: 'The storage class that objects in the bucket
eventually transition to if they are not read for a certain
length of time. Supported values include: NEARLINE, ARCHIVE.'
type: string
type: object
cors:
description: The bucket's Cross-Origin Resource Sharing (CORS)
configuration. Multiple blocks of this type are permitted. Structure
is documented below.
items:
properties:
maxAgeSeconds:
description: The value, in seconds, to return in the Access-Control-Max-Age
header used in preflight responses.
type: number
method:
description: 'The list of HTTP methods on which to include
CORS response headers, (GET, OPTIONS, POST, etc) Note:
"*" is permitted in the list of methods, and means "any
method".'
items:
type: string
type: array
origin:
description: 'The list of Origins eligible to receive CORS
response headers. Note: "*" is permitted in the list of
origins, and means "any Origin".'
items:
type: string
type: array
responseHeader:
description: The list of HTTP headers other than the simple
response headers to give permission for the user-agent
to share across domains.
items:
type: string
type: array
type: object
type: array
customPlacementConfig:
description: The bucket's custom location configuration, which
specifies the individual regions that comprise a dual-region
bucket. If the bucket is designated a single or multi-region,
the parameters are empty. Structure is documented below.
properties:
dataLocations:
description: 'The list of individual regions that comprise
a dual-region bucket. See Cloud Storage bucket locations
for a list of acceptable regions. Note: If any of the data_locations
changes, it will recreate the bucket.'
items:
type: string
type: array
x-kubernetes-list-type: set
type: object
defaultEventBasedHold:
description: Whether or not to automatically apply an eventBasedHold
to new objects added to the bucket.
type: boolean
enableObjectRetention:
description: Enables object retention on a storage bucket.
type: boolean
encryption:
description: The bucket's encryption configuration. Structure
is documented below.
properties:
defaultKmsKeyName:
description: |-
: The id of a Cloud KMS key that will be used to encrypt objects inserted into this bucket, if no encryption method is specified.
You must pay attention to whether the crypto key is available in the location that this bucket is created in.
See the docs for more details.
type: string
type: object
forceDestroy:
description: |-
When deleting a bucket, this
boolean option will delete all contained objects.
type: boolean
hierarchicalNamespace:
description: The bucket's hierarchical namespace policy, which
defines the bucket capability to handle folders in logical structure.
Structure is documented below. To use this configuration, uniform_bucket_level_access
must be enabled on bucket.
properties:
enabled:
description: Enables hierarchical namespace for the bucket.
type: boolean
type: object
ipFilter:
description: The bucket IP filtering configuration. Specifies
the network sources that can access the bucket, as well as its
underlying objects. Structure is documented below.
properties:
allowAllServiceAgentAccess:
description: While set true, allows all service agents to
access the bucket regardless of the IP filter configuration.
type: boolean
allowCrossOrgVpcs:
description: While set true, allows cross-org VPCs in the
bucket's IP filter configuration.
type: boolean
mode:
description: 'The state of the IP filter configuration. Valid
values are Enabled and Disabled. When set to Enabled, IP
filtering rules are applied to a bucket and all incoming
requests to the bucket are evaluated against these rules.
When set to Disabled, IP filtering rules are not applied
to a bucket. Note: allow_all_service_agent_access must be
supplied when mode is set to Enabled, it can be ommited
for other values.'
type: string
publicNetworkSource:
description: The public network IP address ranges that can
access the bucket and its data. Structure is documented
below.
properties:
allowedIpCidrRanges:
description: The list of public or private IPv4 and IPv6
CIDR ranges that can access the bucket.
items:
type: string
type: array
type: object
vpcNetworkSources:
description: The list of VPC networks that can access the
bucket. Structure is documented below.
items:
properties:
allowedIpCidrRanges:
description: The list of public or private IPv4 and
IPv6 CIDR ranges that can access the bucket.
items:
type: string
type: array
network:
description: 'Name of the network. Format: projects/PROJECT_ID/global/networks/NETWORK_NAME'
type: string
type: object
type: array
type: object
labels:
additionalProperties:
type: string
description: A map of key/value label pairs to assign to the bucket.
type: object
x-kubernetes-map-type: granular
lifecycleRule:
description: The bucket's Lifecycle Rules configuration. Multiple
blocks of this type are permitted. Structure is documented below.
items:
properties:
action:
description: The Lifecycle Rule's action configuration.
A single block of this type is supported. Structure is
documented below.
properties:
storageClass:
description: 'The Storage Class of the new bucket. Supported
values include: STANDARD, MULTI_REGIONAL, REGIONAL,
NEARLINE, COLDLINE, ARCHIVE.'
type: string
type:
description: 'The type of the action of this Lifecycle
Rule. Supported values include: Delete, SetStorageClass
and AbortIncompleteMultipartUpload.'
type: string
type: object
condition:
description: The Lifecycle Rule's condition configuration.
A single block of this type is supported. Structure is
documented below.
properties:
age:
description: Minimum age of an object in days to satisfy
this condition. Note To set 0 value of age, send_age_if_zero
should be set true otherwise 0 value of age field
will be ignored.
type: number
createdBefore:
description: A date in the RFC 3339 format YYYY-MM-DD.
This condition is satisfied when an object is created
before midnight of the specified date in UTC.
type: string
customTimeBefore:
description: A date in the RFC 3339 format YYYY-MM-DD.
This condition is satisfied when the customTime metadata
for the object is set to an earlier date than the
date used in this lifecycle condition.
type: string
daysSinceCustomTime:
description: Days since the date set in the customTime
metadata for the object. This condition is satisfied
when the current date and time is at least the specified
number of days after the customTime. When set to 0
it will be ignored, and your state will treat it as
though you supplied no days_since_custom_time condition.
type: number
daysSinceNoncurrentTime:
description: Relevant only for versioned objects. Number
of days elapsed since the noncurrent timestamp of
an object. When set to 0 it will be ignored, and your
state will treat it as though you supplied no days_since_noncurrent_time
condition.
type: number
matchesPrefix:
description: One or more matching name prefixes to satisfy
this condition.
items:
type: string
type: array
matchesStorageClass:
description: 'Storage Class of objects to satisfy this
condition. Supported values include: STANDARD, MULTI_REGIONAL,
REGIONAL, NEARLINE, COLDLINE, ARCHIVE, DURABLE_REDUCED_AVAILABILITY.'
items:
type: string
type: array
matchesSuffix:
description: One or more matching name suffixes to satisfy
this condition.
items:
type: string
type: array
noncurrentTimeBefore:
description: Relevant only for versioned objects. The
date in RFC 3339 (e.g. 2017-06-13) when the object
became nonconcurrent. When set to 0 it will be ignored,
and your state will treat it as though you supplied
no noncurrent_time_before condition.
type: string
numNewerVersions:
description: Relevant only for versioned objects. The
number of newer versions of an object to satisfy this
condition. When set to 0 it will be ignored and your
state will treat it as though you supplied no num_newer_versions
condition.
type: number
sendAgeIfZero:
description: While set true, age value will be sent
in the request even for zero value of the field. This
field is only useful and required for setting 0 value
to the age field. It can be used alone or together
with age attribute. NOTE age attibute with 0 value
will be ommitted from the API request if send_age_if_zero
field is having false value.
type: boolean
sendDaysSinceCustomTimeIfZero:
description: While set true, days_since_custom_time
value will be sent in the request even for zero value
of the field. This field is only useful for setting
0 value to the days_since_custom_time field. It can
be used alone or together with days_since_custom_time.
type: boolean
sendDaysSinceNoncurrentTimeIfZero:
description: While set true, days_since_noncurrent_time
value will be sent in the request even for zero value
of the field. This field is only useful for setting
0 value to the days_since_noncurrent_time field. It
can be used alone or together with days_since_noncurrent_time.
type: boolean
sendNumNewerVersionsIfZero:
description: While set true, num_newer_versions value
will be sent in the request even for zero value of
the field. This field is only useful for setting 0
value to the num_newer_versions field. It can be used
alone or together with num_newer_versions.
type: boolean
withState:
description: 'Match to live and/or archived objects.
Unversioned buckets have only live objects. Supported
values include: "LIVE", "ARCHIVED", "ANY".'
type: string
type: object
type: object
type: array
location:
description: The GCS location.
type: string
logging:
description: The bucket's Access & Storage Logs configuration.
Structure is documented below.
properties:
logBucket:
description: The bucket that will receive log objects.
type: string
logObjectPrefix:
description: |-
The object prefix for log objects. If it's not provided,
by default GCS sets this to this bucket's name.
type: string
type: object
project:
description: |-
The ID of the project in which the resource belongs. If it
is not provided, the provider project is used.
type: string
publicAccessPrevention:
description: Prevents public access to a bucket. Acceptable values
are "inherited" or "enforced". If "inherited", the bucket uses
public access prevention only if the bucket is subject to the
public access prevention organization policy constraint. Defaults
to "inherited".
type: string
requesterPays:
description: Enables Requester Pays on a storage bucket.
type: boolean
retentionPolicy:
description: Configuration of the bucket's data retention policy
for how long objects in the bucket should be retained. Structure
is documented below.
properties:
isLocked:
description: 'If set to true, the bucket will be locked and
permanently restrict edits to the bucket''s retention policy. Caution:
Locking a bucket is an irreversible action.'
type: boolean
retentionPeriod:
description: The period of time, in seconds, that objects
in the bucket must be retained and cannot be deleted, overwritten,
or archived. The value must be less than 2,147,483,647 seconds.
type: number
type: object
rpo:
description: The recovery point objective for cross-region replication
of the bucket. Applicable only for dual and multi-region buckets.
"DEFAULT" sets default replication. "ASYNC_TURBO" value enables
turbo replication, valid for dual-region buckets only. See Turbo
Replication for more information. If rpo is not specified at
bucket creation, it defaults to "DEFAULT" for dual and multi-region
buckets. NOTE If used with single-region bucket, It will throw
an error.
type: string
softDeletePolicy:
description: The bucket's soft delete policy, which defines the
period of time that soft-deleted objects will be retained, and
cannot be permanently deleted. Structure is documented below.
properties:
retentionDurationSeconds:
description: 'The duration in seconds that soft-deleted objects
in the bucket will be retained and cannot be permanently
deleted. Default value is 604800. The value must be in between
604800(7 days) and 7776000(90 days). Note: To disable the
soft delete policy on a bucket, This field must be set to
0.'
type: number
type: object
storageClass:
description: 'The Storage Class of the new bucket. Supported values
include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE,
ARCHIVE.'
type: string
uniformBucketLevelAccess:
description: Enables Uniform bucket-level access access to a bucket.
type: boolean
versioning:
description: The bucket's Versioning configuration. Structure
is documented below.
properties:
enabled:
description: While set to true, versioning is fully enabled
for this bucket.
type: boolean
type: object
website:
description: Configuration if the bucket acts as a website. Structure
is documented below.
properties:
mainPageSuffix:
description: |-
Behaves as the bucket's directory index where
missing objects are treated as potential directories.
type: string
notFoundPage:
description: |-
The custom object to return when a requested
resource is not found.
type: string
type: object
type: object
initProvider:
description: |-
THIS IS A BETA FIELD. It will be honored
unless the Management Policies feature flag is disabled.
InitProvider holds the same fields as ForProvider, with the exception
of Identifier and other resource reference fields. The fields that are
in InitProvider are merged into ForProvider when the resource is created.
The same fields are also added to the terraform ignore_changes hook, to
avoid updating them after creation. This is useful for fields that are
required on creation, but we do not desire to update them after creation,
for example because of an external controller is managing them, like an
autoscaler.
properties:
autoclass:
description: The bucket's Autoclass configuration. Structure
is documented below.
properties:
enabled:
description: While set to true, autoclass automatically transitions
objects in your bucket to appropriate storage classes based
on each object's access pattern.
type: boolean
terminalStorageClass:
description: 'The storage class that objects in the bucket
eventually transition to if they are not read for a certain
length of time. Supported values include: NEARLINE, ARCHIVE.'
type: string
type: object
cors:
description: The bucket's Cross-Origin Resource Sharing (CORS)
configuration. Multiple blocks of this type are permitted. Structure
is documented below.
items:
properties:
maxAgeSeconds:
description: The value, in seconds, to return in the Access-Control-Max-Age
header used in preflight responses.
type: number
method:
description: 'The list of HTTP methods on which to include
CORS response headers, (GET, OPTIONS, POST, etc) Note:
"*" is permitted in the list of methods, and means "any
method".'
items:
type: string
type: array
origin:
description: 'The list of Origins eligible to receive CORS
response headers. Note: "*" is permitted in the list of
origins, and means "any Origin".'
items:
type: string
type: array
responseHeader:
description: The list of HTTP headers other than the simple
response headers to give permission for the user-agent
to share across domains.
items:
type: string
type: array
type: object
type: array
customPlacementConfig:
description: The bucket's custom location configuration, which
specifies the individual regions that comprise a dual-region
bucket. If the bucket is designated a single or multi-region,
the parameters are empty. Structure is documented below.
properties:
dataLocations:
description: 'The list of individual regions that comprise
a dual-region bucket. See Cloud Storage bucket locations
for a list of acceptable regions. Note: If any of the data_locations
changes, it will recreate the bucket.'
items:
type: string
type: array
x-kubernetes-list-type: set
type: object
defaultEventBasedHold:
description: Whether or not to automatically apply an eventBasedHold
to new objects added to the bucket.
type: boolean
enableObjectRetention:
description: Enables object retention on a storage bucket.
type: boolean
encryption:
description: The bucket's encryption configuration. Structure
is documented below.
properties:
defaultKmsKeyName:
description: |-
: The id of a Cloud KMS key that will be used to encrypt objects inserted into this bucket, if no encryption method is specified.
You must pay attention to whether the crypto key is available in the location that this bucket is created in.
See the docs for more details.
type: string
type: object
forceDestroy:
description: |-
When deleting a bucket, this
boolean option will delete all contained objects.
type: boolean
hierarchicalNamespace:
description: The bucket's hierarchical namespace policy, which
defines the bucket capability to handle folders in logical structure.
Structure is documented below. To use this configuration, uniform_bucket_level_access
must be enabled on bucket.
properties:
enabled:
description: Enables hierarchical namespace for the bucket.
type: boolean
type: object
ipFilter:
description: The bucket IP filtering configuration. Specifies
the network sources that can access the bucket, as well as its
underlying objects. Structure is documented below.
properties:
allowAllServiceAgentAccess:
description: While set true, allows all service agents to
access the bucket regardless of the IP filter configuration.
type: boolean
allowCrossOrgVpcs:
description: While set true, allows cross-org VPCs in the
bucket's IP filter configuration.
type: boolean
mode:
description: 'The state of the IP filter configuration. Valid
values are Enabled and Disabled. When set to Enabled, IP
filtering rules are applied to a bucket and all incoming
requests to the bucket are evaluated against these rules.
When set to Disabled, IP filtering rules are not applied
to a bucket. Note: allow_all_service_agent_access must be
supplied when mode is set to Enabled, it can be ommited
for other values.'
type: string
publicNetworkSource:
description: The public network IP address ranges that can
access the bucket and its data. Structure is documented
below.
properties:
allowedIpCidrRanges:
description: The list of public or private IPv4 and IPv6
CIDR ranges that can access the bucket.
items:
type: string
type: array
type: object
vpcNetworkSources:
description: The list of VPC networks that can access the
bucket. Structure is documented below.
items:
properties:
allowedIpCidrRanges:
description: The list of public or private IPv4 and
IPv6 CIDR ranges that can access the bucket.
items:
type: string
type: array
network:
description: 'Name of the network. Format: projects/PROJECT_ID/global/networks/NETWORK_NAME'
type: string
type: object
type: array
type: object
labels:
additionalProperties:
type: string
description: A map of key/value label pairs to assign to the bucket.
type: object
x-kubernetes-map-type: granular
lifecycleRule:
description: The bucket's Lifecycle Rules configuration. Multiple
blocks of this type are permitted. Structure is documented below.
items:
properties:
action:
description: The Lifecycle Rule's action configuration.
A single block of this type is supported. Structure is
documented below.
properties:
storageClass:
description: 'The Storage Class of the new bucket. Supported
values include: STANDARD, MULTI_REGIONAL, REGIONAL,
NEARLINE, COLDLINE, ARCHIVE.'
type: string
type:
description: 'The type of the action of this Lifecycle
Rule. Supported values include: Delete, SetStorageClass
and AbortIncompleteMultipartUpload.'
type: string
type: object
condition:
description: The Lifecycle Rule's condition configuration.
A single block of this type is supported. Structure is
documented below.
properties:
age:
description: Minimum age of an object in days to satisfy
this condition. Note To set 0 value of age, send_age_if_zero
should be set true otherwise 0 value of age field
will be ignored.
type: number
createdBefore:
description: A date in the RFC 3339 format YYYY-MM-DD.
This condition is satisfied when an object is created
before midnight of the specified date in UTC.
type: string
customTimeBefore:
description: A date in the RFC 3339 format YYYY-MM-DD.
This condition is satisfied when the customTime metadata
for the object is set to an earlier date than the
date used in this lifecycle condition.
type: string
daysSinceCustomTime:
description: Days since the date set in the customTime
metadata for the object. This condition is satisfied
when the current date and time is at least the specified
number of days after the customTime. When set to 0
it will be ignored, and your state will treat it as
though you supplied no days_since_custom_time condition.
type: number
daysSinceNoncurrentTime:
description: Relevant only for versioned objects. Number
of days elapsed since the noncurrent timestamp of
an object. When set to 0 it will be ignored, and your
state will treat it as though you supplied no days_since_noncurrent_time
condition.
type: number
matchesPrefix:
description: One or more matching name prefixes to satisfy
this condition.
items:
type: string
type: array
matchesStorageClass:
description: 'Storage Class of objects to satisfy this
condition. Supported values include: STANDARD, MULTI_REGIONAL,
REGIONAL, NEARLINE, COLDLINE, ARCHIVE, DURABLE_REDUCED_AVAILABILITY.'
items:
type: string
type: array
matchesSuffix:
description: One or more matching name suffixes to satisfy
this condition.
items:
type: string
type: array
noncurrentTimeBefore:
description: Relevant only for versioned objects. The
date in RFC 3339 (e.g. 2017-06-13) when the object
became nonconcurrent. When set to 0 it will be ignored,
and your state will treat it as though you supplied
no noncurrent_time_before condition.
type: string
numNewerVersions:
description: Relevant only for versioned objects. The
number of newer versions of an object to satisfy this
condition. When set to 0 it will be ignored and your
state will treat it as though you supplied no num_newer_versions
condition.
type: number
sendAgeIfZero:
description: While set true, age value will be sent
in the request even for zero value of the field. This
field is only useful and required for setting 0 value
to the age field. It can be used alone or together
with age attribute. NOTE age attibute with 0 value
will be ommitted from the API request if send_age_if_zero
field is having false value.
type: boolean
sendDaysSinceCustomTimeIfZero:
description: While set true, days_since_custom_time
value will be sent in the request even for zero value
of the field. This field is only useful for setting
0 value to the days_since_custom_time field. It can
be used alone or together with days_since_custom_time.
type: boolean
sendDaysSinceNoncurrentTimeIfZero:
description: While set true, days_since_noncurrent_time
value will be sent in the request even for zero value
of the field. This field is only useful for setting
0 value to the days_since_noncurrent_time field. It
can be used alone or together with days_since_noncurrent_time.
type: boolean
sendNumNewerVersionsIfZero:
description: While set true, num_newer_versions value
will be sent in the request even for zero value of
the field. This field is only useful for setting 0
value to the num_newer_versions field. It can be used
alone or together with num_newer_versions.
type: boolean
withState:
description: 'Match to live and/or archived objects.
Unversioned buckets have only live objects. Supported
values include: "LIVE", "ARCHIVED", "ANY".'
type: string
type: object
type: object
type: array
location:
description: The GCS location.
type: string
logging:
description: The bucket's Access & Storage Logs configuration.
Structure is documented below.
properties:
logBucket:
description: The bucket that will receive log objects.
type: string
logObjectPrefix:
description: |-
The object prefix for log objects. If it's not provided,
by default GCS sets this to this bucket's name.
type: string
type: object
project:
description: |-
The ID of the project in which the resource belongs. If it
is not provided, the provider project is used.
type: string
publicAccessPrevention:
description: Prevents public access to a bucket. Acceptable values
are "inherited" or "enforced". If "inherited", the bucket uses
public access prevention only if the bucket is subject to the
public access prevention organization policy constraint. Defaults
to "inherited".
type: string
requesterPays:
description: Enables Requester Pays on a storage bucket.
type: boolean
retentionPolicy:
description: Configuration of the bucket's data retention policy
for how long objects in the bucket should be retained. Structure
is documented below.
properties:
isLocked:
description: 'If set to true, the bucket will be locked and
permanently restrict edits to the bucket''s retention policy. Caution:
Locking a bucket is an irreversible action.'
type: boolean
retentionPeriod:
description: The period of time, in seconds, that objects
in the bucket must be retained and cannot be deleted, overwritten,
or archived. The value must be less than 2,147,483,647 seconds.
type: number
type: object
rpo:
description: The recovery point objective for cross-region replication
of the bucket. Applicable only for dual and multi-region buckets.
"DEFAULT" sets default replication. "ASYNC_TURBO" value enables
turbo replication, valid for dual-region buckets only. See Turbo
Replication for more information. If rpo is not specified at
bucket creation, it defaults to "DEFAULT" for dual and multi-region
buckets. NOTE If used with single-region bucket, It will throw
an error.
type: string
softDeletePolicy:
description: The bucket's soft delete policy, which defines the
period of time that soft-deleted objects will be retained, and
cannot be permanently deleted. Structure is documented below.
properties:
retentionDurationSeconds:
description: 'The duration in seconds that soft-deleted objects
in the bucket will be retained and cannot be permanently
deleted. Default value is 604800. The value must be in between
604800(7 days) and 7776000(90 days). Note: To disable the
soft delete policy on a bucket, This field must be set to
0.'
type: number
type: object
storageClass:
description: 'The Storage Class of the new bucket. Supported values
include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE,
ARCHIVE.'
type: string
uniformBucketLevelAccess:
description: Enables Uniform bucket-level access access to a bucket.
type: boolean
versioning:
description: The bucket's Versioning configuration. Structure
is documented below.
properties:
enabled:
description: While set to true, versioning is fully enabled
for this bucket.
type: boolean
type: object
website:
description: Configuration if the bucket acts as a website. Structure
is documented below.
properties:
mainPageSuffix:
description: |-
Behaves as the bucket's directory index where
missing objects are treated as potential directories.
type: string
notFoundPage:
description: |-
The custom object to return when a requested
resource is not found.
type: string
type: object
type: object
managementPolicies:
default:
- '*'
description: |-
THIS IS A BETA FIELD. It is on by default but can be opted out
through a Crossplane feature flag.
ManagementPolicies specify the array of actions Crossplane is allowed to
take on the managed and external resources.
This field is planned to replace the DeletionPolicy field in a future
release. Currently, both could be set independently and non-default
values would be honored if the feature flag is enabled. If both are
custom, the DeletionPolicy field will be ignored.
See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223
and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md
items:
description: |-
A ManagementAction represents an action that the Crossplane controllers
can take on an external resource.
enum:
- Observe
- Create
- Update
- Delete
- LateInitialize
- '*'
type: string
type: array
providerConfigRef:
default:
name: default
description: |-
ProviderConfigReference specifies how the provider that will be used to
create, observe, update, and delete this managed resource should be
configured.
properties:
name:
description: Name of the referenced object.
type: string
policy:
description: Policies for referencing.
properties:
resolution:
default: Required
description: |-
Resolution specifies whether resolution of this reference is required.
The default is 'Required', which means the reconcile will fail if the
reference cannot be resolved. 'Optional' means this reference will be
a no-op if it cannot be resolved.
enum:
- Required
- Optional
type: string
resolve:
description: |-
Resolve specifies when this reference should be resolved. The default
is 'IfNotPresent', which will attempt to resolve the reference only when
the corresponding field is not present. Use 'Always' to resolve the
reference on every reconcile.
enum:
- Always
- IfNotPresent
type: string
type: object
required:
- name
type: object
writeConnectionSecretToRef:
description: |-
WriteConnectionSecretToReference specifies the namespace and name of a
Secret to which any connection details for this managed resource should
be written. Connection details frequently include the endpoint, username,
and password required to connect to the managed resource.
properties:
name:
description: Name of the secret.
type: string
namespace:
description: Namespace of the secret.
type: string
required:
- name
- namespace
type: object
required:
- forProvider
type: object
x-kubernetes-validations:
- message: spec.forProvider.location is a required parameter
rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies
|| ''Update'' in self.managementPolicies) || has(self.forProvider.location)
|| (has(self.initProvider) && has(self.initProvider.location))'
status:
description: BucketStatus defines the observed state of Bucket.
properties:
atProvider:
properties:
autoclass:
description: The bucket's Autoclass configuration. Structure
is documented below.
properties:
enabled:
description: While set to true, autoclass automatically transitions
objects in your bucket to appropriate storage classes based
on each object's access pattern.
type: boolean
terminalStorageClass:
description: 'The storage class that objects in the bucket
eventually transition to if they are not read for a certain
length of time. Supported values include: NEARLINE, ARCHIVE.'
type: string
type: object
cors:
description: The bucket's Cross-Origin Resource Sharing (CORS)
configuration. Multiple blocks of this type are permitted. Structure
is documented below.
items:
properties:
maxAgeSeconds:
description: The value, in seconds, to return in the Access-Control-Max-Age
header used in preflight responses.
type: number
method:
description: 'The list of HTTP methods on which to include
CORS response headers, (GET, OPTIONS, POST, etc) Note:
"*" is permitted in the list of methods, and means "any
method".'
items:
type: string
type: array
origin:
description: 'The list of Origins eligible to receive CORS
response headers. Note: "*" is permitted in the list of
origins, and means "any Origin".'
items:
type: string
type: array
responseHeader:
description: The list of HTTP headers other than the simple
response headers to give permission for the user-agent
to share across domains.
items:
type: string
type: array
type: object
type: array
customPlacementConfig:
description: The bucket's custom location configuration, which
specifies the individual regions that comprise a dual-region
bucket. If the bucket is designated a single or multi-region,
the parameters are empty. Structure is documented below.
properties:
dataLocations:
description: 'The list of individual regions that comprise
a dual-region bucket. See Cloud Storage bucket locations
for a list of acceptable regions. Note: If any of the data_locations
changes, it will recreate the bucket.'
items:
type: string
type: array
x-kubernetes-list-type: set
type: object
defaultEventBasedHold:
description: Whether or not to automatically apply an eventBasedHold
to new objects added to the bucket.
type: boolean
effectiveLabels:
additionalProperties:
type: string
description: A map of key/value label pairs to assign to the bucket.
type: object
x-kubernetes-map-type: granular
enableObjectRetention:
description: Enables object retention on a storage bucket.
type: boolean
encryption:
description: The bucket's encryption configuration. Structure
is documented below.
properties:
defaultKmsKeyName:
description: |-
: The id of a Cloud KMS key that will be used to encrypt objects inserted into this bucket, if no encryption method is specified.
You must pay attention to whether the crypto key is available in the location that this bucket is created in.
See the docs for more details.
type: string
type: object
forceDestroy:
description: |-
When deleting a bucket, this
boolean option will delete all contained objects.
type: boolean
hierarchicalNamespace:
description: The bucket's hierarchical namespace policy, which
defines the bucket capability to handle folders in logical structure.
Structure is documented below. To use this configuration, uniform_bucket_level_access
must be enabled on bucket.
properties:
enabled:
description: Enables hierarchical namespace for the bucket.
type: boolean
type: object
id:
type: string
ipFilter:
description: The bucket IP filtering configuration. Specifies
the network sources that can access the bucket, as well as its
underlying objects. Structure is documented below.
properties:
allowAllServiceAgentAccess:
description: While set true, allows all service agents to
access the bucket regardless of the IP filter configuration.
type: boolean
allowCrossOrgVpcs:
description: While set true, allows cross-org VPCs in the
bucket's IP filter configuration.
type: boolean
mode:
description: 'The state of the IP filter configuration. Valid
values are Enabled and Disabled. When set to Enabled, IP
filtering rules are applied to a bucket and all incoming
requests to the bucket are evaluated against these rules.
When set to Disabled, IP filtering rules are not applied
to a bucket. Note: allow_all_service_agent_access must be
supplied when mode is set to Enabled, it can be ommited
for other values.'
type: string
publicNetworkSource:
description: The public network IP address ranges that can
access the bucket and its data. Structure is documented
below.
properties:
allowedIpCidrRanges:
description: The list of public or private IPv4 and IPv6
CIDR ranges that can access the bucket.
items:
type: string
type: array
type: object
vpcNetworkSources:
description: The list of VPC networks that can access the
bucket. Structure is documented below.
items:
properties:
allowedIpCidrRanges:
description: The list of public or private IPv4 and
IPv6 CIDR ranges that can access the bucket.
items:
type: string
type: array
network:
description: 'Name of the network. Format: projects/PROJECT_ID/global/networks/NETWORK_NAME'
type: string
type: object
type: array
type: object
labels:
additionalProperties:
type: string
description: A map of key/value label pairs to assign to the bucket.
type: object
x-kubernetes-map-type: granular
lifecycleRule:
description: The bucket's Lifecycle Rules configuration. Multiple
blocks of this type are permitted. Structure is documented below.
items:
properties:
action:
description: The Lifecycle Rule's action configuration.
A single block of this type is supported. Structure is
documented below.
properties:
storageClass:
description: 'The Storage Class of the new bucket. Supported
values include: STANDARD, MULTI_REGIONAL, REGIONAL,
NEARLINE, COLDLINE, ARCHIVE.'
type: string
type:
description: 'The type of the action of this Lifecycle
Rule. Supported values include: Delete, SetStorageClass
and AbortIncompleteMultipartUpload.'
type: string
type: object
condition:
description: The Lifecycle Rule's condition configuration.
A single block of this type is supported. Structure is
documented below.
properties:
age:
description: Minimum age of an object in days to satisfy
this condition. Note To set 0 value of age, send_age_if_zero
should be set true otherwise 0 value of age field
will be ignored.
type: number
createdBefore:
description: A date in the RFC 3339 format YYYY-MM-DD.
This condition is satisfied when an object is created
before midnight of the specified date in UTC.
type: string
customTimeBefore:
description: A date in the RFC 3339 format YYYY-MM-DD.
This condition is satisfied when the customTime metadata
for the object is set to an earlier date than the
date used in this lifecycle condition.
type: string
daysSinceCustomTime:
description: Days since the date set in the customTime
metadata for the object. This condition is satisfied
when the current date and time is at least the specified
number of days after the customTime. When set to 0
it will be ignored, and your state will treat it as
though you supplied no days_since_custom_time condition.
type: number
daysSinceNoncurrentTime:
description: Relevant only for versioned objects. Number
of days elapsed since the noncurrent timestamp of
an object. When set to 0 it will be ignored, and your
state will treat it as though you supplied no days_since_noncurrent_time
condition.
type: number
matchesPrefix:
description: One or more matching name prefixes to satisfy
this condition.
items:
type: string
type: array
matchesStorageClass:
description: 'Storage Class of objects to satisfy this
condition. Supported values include: STANDARD, MULTI_REGIONAL,
REGIONAL, NEARLINE, COLDLINE, ARCHIVE, DURABLE_REDUCED_AVAILABILITY.'
items:
type: string
type: array
matchesSuffix:
description: One or more matching name suffixes to satisfy
this condition.
items:
type: string
type: array
noncurrentTimeBefore:
description: Relevant only for versioned objects. The
date in RFC 3339 (e.g. 2017-06-13) when the object
became nonconcurrent. When set to 0 it will be ignored,
and your state will treat it as though you supplied
no noncurrent_time_before condition.
type: string
numNewerVersions:
description: Relevant only for versioned objects. The
number of newer versions of an object to satisfy this
condition. When set to 0 it will be ignored and your
state will treat it as though you supplied no num_newer_versions
condition.
type: number
sendAgeIfZero:
description: While set true, age value will be sent
in the request even for zero value of the field. This
field is only useful and required for setting 0 value
to the age field. It can be used alone or together
with age attribute. NOTE age attibute with 0 value
will be ommitted from the API request if send_age_if_zero
field is having false value.
type: boolean
sendDaysSinceCustomTimeIfZero:
description: While set true, days_since_custom_time
value will be sent in the request even for zero value
of the field. This field is only useful for setting
0 value to the days_since_custom_time field. It can
be used alone or together with days_since_custom_time.
type: boolean
sendDaysSinceNoncurrentTimeIfZero:
description: While set true, days_since_noncurrent_time
value will be sent in the request even for zero value
of the field. This field is only useful for setting
0 value to the days_since_noncurrent_time field. It
can be used alone or together with days_since_noncurrent_time.
type: boolean
sendNumNewerVersionsIfZero:
description: While set true, num_newer_versions value
will be sent in the request even for zero value of
the field. This field is only useful for setting 0
value to the num_newer_versions field. It can be used
alone or together with num_newer_versions.
type: boolean
withState:
description: 'Match to live and/or archived objects.
Unversioned buckets have only live objects. Supported
values include: "LIVE", "ARCHIVED", "ANY".'
type: string
type: object
type: object
type: array
location:
description: The GCS location.
type: string
logging:
description: The bucket's Access & Storage Logs configuration.
Structure is documented below.
properties:
logBucket:
description: The bucket that will receive log objects.
type: string
logObjectPrefix:
description: |-
The object prefix for log objects. If it's not provided,
by default GCS sets this to this bucket's name.
type: string
type: object
project:
description: |-
The ID of the project in which the resource belongs. If it
is not provided, the provider project is used.
type: string
projectNumber:
type: number
publicAccessPrevention:
description: Prevents public access to a bucket. Acceptable values
are "inherited" or "enforced". If "inherited", the bucket uses
public access prevention only if the bucket is subject to the
public access prevention organization policy constraint. Defaults
to "inherited".
type: string
requesterPays:
description: Enables Requester Pays on a storage bucket.
type: boolean
retentionPolicy:
description: Configuration of the bucket's data retention policy
for how long objects in the bucket should be retained. Structure
is documented below.
properties:
isLocked:
description: 'If set to true, the bucket will be locked and
permanently restrict edits to the bucket''s retention policy. Caution:
Locking a bucket is an irreversible action.'
type: boolean
retentionPeriod:
description: The period of time, in seconds, that objects
in the bucket must be retained and cannot be deleted, overwritten,
or archived. The value must be less than 2,147,483,647 seconds.
type: number
type: object
rpo:
description: The recovery point objective for cross-region replication
of the bucket. Applicable only for dual and multi-region buckets.
"DEFAULT" sets default replication. "ASYNC_TURBO" value enables
turbo replication, valid for dual-region buckets only. See Turbo
Replication for more information. If rpo is not specified at
bucket creation, it defaults to "DEFAULT" for dual and multi-region
buckets. NOTE If used with single-region bucket, It will throw
an error.
type: string
selfLink:
description: The URI of the created resource.
type: string
softDeletePolicy:
description: The bucket's soft delete policy, which defines the
period of time that soft-deleted objects will be retained, and
cannot be permanently deleted. Structure is documented below.
properties:
effectiveTime:
description: (Computed) Server-determined value that indicates
the time from which the policy, or one with a greater retention,
was effective. This value is in RFC 3339 format.
type: string
retentionDurationSeconds:
description: 'The duration in seconds that soft-deleted objects
in the bucket will be retained and cannot be permanently
deleted. Default value is 604800. The value must be in between
604800(7 days) and 7776000(90 days). Note: To disable the
soft delete policy on a bucket, This field must be set to
0.'
type: number
type: object
storageClass:
description: 'The Storage Class of the new bucket. Supported values
include: STANDARD, MULTI_REGIONAL, REGIONAL, NEARLINE, COLDLINE,
ARCHIVE.'
type: string
terraformLabels:
additionalProperties:
type: string
description: A map of key/value label pairs to assign to the bucket.
type: object
x-kubernetes-map-type: granular
timeCreated:
description: (Computed) The creation time of the bucket in RFC
3339 format.
type: string
uniformBucketLevelAccess:
description: Enables Uniform bucket-level access access to a bucket.
type: boolean
updated:
description: (Computed) The time at which the bucket's metadata
or IAM policy was last updated, in RFC 3339 format.
type: string
url:
description: The base URL of the bucket, in the format gs://<bucket-name>.
type: string
versioning:
description: The bucket's Versioning configuration. Structure
is documented below.
properties:
enabled:
description: While set to true, versioning is fully enabled
for this bucket.
type: boolean
type: object
website:
description: Configuration if the bucket acts as a website. Structure
is documented below.
properties:
mainPageSuffix:
description: |-
Behaves as the bucket's directory index where
missing objects are treated as potential directories.
type: string
notFoundPage:
description: |-
The custom object to return when a requested
resource is not found.
type: string
type: object
type: object
conditions:
description: Conditions of the resource.
items:
description: A Condition that may apply to a resource.
properties:
lastTransitionTime:
description: |-
LastTransitionTime is the last time this condition transitioned from one
status to another.
format: date-time
type: string
message:
description: |-
A Message containing details about this condition's last transition from
one status to another, if any.
type: string
observedGeneration:
description: |-
ObservedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
type: integer
reason:
description: A Reason for this condition's last transition from
one status to another.
type: string
status:
description: Status of this condition; is it currently True,
False, or Unknown?
type: string
type:
description: |-
Type of this condition. At most one of each condition type may apply to
a resource at any point in time.
type: string
required:
- lastTransitionTime
- reason
- status
- type
type: object
type: array
x-kubernetes-list-map-keys:
- type
x-kubernetes-list-type: map
observedGeneration:
description: |-
ObservedGeneration is the latest metadata.generation
which resulted in either a ready state, or stalled due to error
it can not recover from without human intervention.
format: int64
type: integer
type: object
required:
- spec
type: object
served: true
storage: false
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: null
storedVersions: null
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment