crds/storagetransfer_v1beta1_storagetransferjob.yaml (636 lines of code) (raw):
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
cnrm.cloud.google.com/version: 1.128.0
creationTimestamp: null
labels:
cnrm.cloud.google.com/managed-by-kcc: "true"
cnrm.cloud.google.com/stability-level: stable
cnrm.cloud.google.com/system: "true"
cnrm.cloud.google.com/tf2crd: "true"
name: storagetransferjobs.storagetransfer.cnrm.cloud.google.com
spec:
group: storagetransfer.cnrm.cloud.google.com
names:
categories:
- gcp
kind: StorageTransferJob
plural: storagetransferjobs
shortNames:
- gcpstoragetransferjob
- gcpstoragetransferjobs
singular: storagetransferjob
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
- description: When 'True', the most recent reconcile of the resource succeeded
jsonPath: .status.conditions[?(@.type=='Ready')].status
name: Ready
type: string
- description: The reason for the value in 'Ready'
jsonPath: .status.conditions[?(@.type=='Ready')].reason
name: Status
type: string
- description: The last transition time for the value in 'Status'
jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime
name: Status Age
type: date
name: v1beta1
schema:
openAPIV3Schema:
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/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/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
properties:
description:
description: Unique description to identify the Transfer Job.
type: string
notificationConfig:
description: Notification configuration.
properties:
eventTypes:
description: Event types for which a notification is desired.
If empty, send notifications for all event types. The valid
types are "TRANSFER_OPERATION_SUCCESS", "TRANSFER_OPERATION_FAILED",
"TRANSFER_OPERATION_ABORTED".
items:
type: string
type: array
payloadFormat:
description: The desired format of the notification message payloads.
One of "NONE" or "JSON".
type: string
topicRef:
description: The PubSubTopic to which to publish notifications.
oneOf:
- not:
required:
- external
required:
- name
- not:
anyOf:
- required:
- name
- required:
- namespace
required:
- external
properties:
external:
description: 'Allowed value: string of the format `projects/{{project}}/topics/{{value}}`,
where {{value}} is the `name` field of a `PubSubTopic` resource.'
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
type: object
required:
- payloadFormat
- topicRef
type: object
resourceID:
description: Immutable. Optional. The service-generated name of the
resource. Used for acquisition only. Leave unset to create a new
resource.
type: string
schedule:
description: Schedule specification defining when the Transfer Job
should be scheduled to start, end and what time to run.
properties:
repeatInterval:
description: 'Interval between the start of each scheduled transfer.
If unspecified, the default value is 24 hours. This value may
not be less than 1 hour. A duration in seconds with up to nine
fractional digits, terminated by ''s''. Example: "3.5s".'
type: string
scheduleEndDate:
description: The last day the recurring transfer will be run.
If schedule_end_date is the same as schedule_start_date, the
transfer will be executed only once.
properties:
day:
description: Day of month. Must be from 1 to 31 and valid
for the year and month.
type: integer
month:
description: Month of year. Must be from 1 to 12.
type: integer
year:
description: Year of date. Must be from 1 to 9999.
type: integer
required:
- day
- month
- year
type: object
scheduleStartDate:
description: The first day the recurring transfer is scheduled
to run. If schedule_start_date is in the past, the transfer
will run for the first time on the following day.
properties:
day:
description: Day of month. Must be from 1 to 31 and valid
for the year and month.
type: integer
month:
description: Month of year. Must be from 1 to 12.
type: integer
year:
description: Year of date. Must be from 1 to 9999.
type: integer
required:
- day
- month
- year
type: object
startTimeOfDay:
description: The time in UTC at which the transfer will be scheduled
to start in a day. Transfers may start later than this time.
If not specified, recurring and one-time transfers that are
scheduled to run today will run immediately; recurring transfers
that are scheduled to run on a future date will start at approximately
midnight UTC on that date. Note that when configuring a transfer
with the Cloud Platform Console, the transfer's start time in
a day is specified in your local timezone.
properties:
hours:
description: Hours of day in 24 hour format. Should be from
0 to 23.
type: integer
minutes:
description: Minutes of hour of day. Must be from 0 to 59.
type: integer
nanos:
description: Fractions of seconds in nanoseconds. Must be
from 0 to 999,999,999.
type: integer
seconds:
description: Seconds of minutes of the time. Must normally
be from 0 to 59.
type: integer
required:
- hours
- minutes
- nanos
- seconds
type: object
required:
- scheduleStartDate
type: object
status:
description: 'Status of the job. Default: ENABLED. NOTE: The effect
of the new job status takes place during a subsequent job run. For
example, if you change the job status from ENABLED to DISABLED,
and an operation spawned by the transfer is running, the status
change would not affect the current operation.'
type: string
transferSpec:
description: Transfer specification.
properties:
awsS3DataSource:
description: An AWS S3 data source.
properties:
awsAccessKey:
description: AWS credentials block.
properties:
accessKeyId:
description: AWS Key ID.
oneOf:
- not:
required:
- valueFrom
required:
- value
- not:
required:
- value
required:
- valueFrom
properties:
value:
description: Value of the field. Cannot be used if
'valueFrom' is specified.
type: string
valueFrom:
description: Source for the field's value. Cannot
be used if 'value' is specified.
properties:
secretKeyRef:
description: Reference to a value with the given
key in the given Secret in the resource's namespace.
properties:
key:
description: Key that identifies the value
to be extracted.
type: string
name:
description: Name of the Secret to extract
a value from.
type: string
required:
- name
- key
type: object
type: object
type: object
secretAccessKey:
description: AWS Secret Access Key.
oneOf:
- not:
required:
- valueFrom
required:
- value
- not:
required:
- value
required:
- valueFrom
properties:
value:
description: Value of the field. Cannot be used if
'valueFrom' is specified.
type: string
valueFrom:
description: Source for the field's value. Cannot
be used if 'value' is specified.
properties:
secretKeyRef:
description: Reference to a value with the given
key in the given Secret in the resource's namespace.
properties:
key:
description: Key that identifies the value
to be extracted.
type: string
name:
description: Name of the Secret to extract
a value from.
type: string
required:
- name
- key
type: object
type: object
type: object
required:
- accessKeyId
- secretAccessKey
type: object
bucketName:
description: S3 Bucket name.
type: string
path:
description: S3 Bucket path in bucket to transfer.
type: string
roleArn:
description: The Amazon Resource Name (ARN) of the role to
support temporary credentials via 'AssumeRoleWithWebIdentity'.
For more information about ARNs, see [IAM ARNs](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns).
When a role ARN is provided, Transfer Service fetches temporary
credentials for the session using a 'AssumeRoleWithWebIdentity'
call for the provided role using the [GoogleServiceAccount][]
for this project.
type: string
required:
- bucketName
type: object
azureBlobStorageDataSource:
description: An Azure Blob Storage data source.
properties:
azureCredentials:
description: ' Credentials used to authenticate API requests
to Azure.'
properties:
sasToken:
description: Azure shared access signature.
oneOf:
- not:
required:
- valueFrom
required:
- value
- not:
required:
- value
required:
- valueFrom
properties:
value:
description: Value of the field. Cannot be used if
'valueFrom' is specified.
type: string
valueFrom:
description: Source for the field's value. Cannot
be used if 'value' is specified.
properties:
secretKeyRef:
description: Reference to a value with the given
key in the given Secret in the resource's namespace.
properties:
key:
description: Key that identifies the value
to be extracted.
type: string
name:
description: Name of the Secret to extract
a value from.
type: string
required:
- name
- key
type: object
type: object
type: object
required:
- sasToken
type: object
container:
description: The container to transfer from the Azure Storage
account.
type: string
path:
description: Root path to transfer objects. Must be an empty
string or full path name that ends with a '/'. This field
is treated as an object prefix. As such, it should generally
not begin with a '/'.
type: string
storageAccount:
description: The name of the Azure Storage account.
type: string
required:
- azureCredentials
- container
- storageAccount
type: object
gcsDataSink:
description: A Google Cloud Storage data sink.
properties:
bucketRef:
oneOf:
- not:
required:
- external
required:
- name
- not:
anyOf:
- required:
- name
- required:
- namespace
required:
- external
properties:
external:
description: 'Allowed value: The `name` field of a `StorageBucket`
resource.'
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
type: object
path:
description: Google Cloud Storage path in bucket to transfer.
type: string
required:
- bucketRef
type: object
gcsDataSource:
description: A Google Cloud Storage data source.
properties:
bucketRef:
oneOf:
- not:
required:
- external
required:
- name
- not:
anyOf:
- required:
- name
- required:
- namespace
required:
- external
properties:
external:
description: 'Allowed value: The `name` field of a `StorageBucket`
resource.'
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
type: object
path:
description: Google Cloud Storage path in bucket to transfer.
type: string
required:
- bucketRef
type: object
httpDataSource:
description: A HTTP URL data source.
properties:
listUrl:
description: The URL that points to the file that stores the
object list entries. This file must allow public access.
Currently, only URLs with HTTP and HTTPS schemes are supported.
type: string
required:
- listUrl
type: object
objectConditions:
description: Only objects that satisfy these object conditions
are included in the set of data source and data sink objects.
Object conditions based on objects' last_modification_time do
not exclude objects in a data sink.
properties:
excludePrefixes:
description: exclude_prefixes must follow the requirements
described for include_prefixes.
items:
type: string
type: array
includePrefixes:
description: If include_refixes is specified, objects that
satisfy the object conditions must have names that start
with one of the include_prefixes and that do not start with
any of the exclude_prefixes. If include_prefixes is not
specified, all objects except those that have names starting
with one of the exclude_prefixes must satisfy the object
conditions.
items:
type: string
type: array
lastModifiedBefore:
description: 'If specified, only objects with a "last modification
time" before this timestamp and objects that don''t have
a "last modification time" are transferred. A timestamp
in RFC3339 UTC "Zulu" format, with nanosecond resolution
and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z"
and "2014-10-02T15:01:23.045123456Z".'
type: string
lastModifiedSince:
description: 'If specified, only objects with a "last modification
time" on or after this timestamp and objects that don''t
have a "last modification time" are transferred. A timestamp
in RFC3339 UTC "Zulu" format, with nanosecond resolution
and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z"
and "2014-10-02T15:01:23.045123456Z".'
type: string
maxTimeElapsedSinceLastModification:
description: 'A duration in seconds with up to nine fractional
digits, terminated by ''s''. Example: "3.5s".'
type: string
minTimeElapsedSinceLastModification:
description: 'A duration in seconds with up to nine fractional
digits, terminated by ''s''. Example: "3.5s".'
type: string
type: object
posixDataSink:
description: A POSIX filesystem data sink.
properties:
rootDirectory:
description: Root directory path to the filesystem.
type: string
required:
- rootDirectory
type: object
posixDataSource:
description: A POSIX filesystem data source.
properties:
rootDirectory:
description: Root directory path to the filesystem.
type: string
required:
- rootDirectory
type: object
sinkAgentPoolName:
description: Immutable. Specifies the agent pool name associated
with the posix data source. When unspecified, the default name
is used.
type: string
sourceAgentPoolName:
description: Immutable. Specifies the agent pool name associated
with the posix data source. When unspecified, the default name
is used.
type: string
transferOptions:
description: Characteristics of how to treat files from datasource
and sink during job. If the option delete_objects_unique_in_sink
is true, object conditions based on objects' last_modification_time
are ignored and do not exclude objects in a data source or a
data sink.
properties:
deleteObjectsFromSourceAfterTransfer:
description: Whether objects should be deleted from the source
after they are transferred to the sink. Note that this option
and delete_objects_unique_in_sink are mutually exclusive.
type: boolean
deleteObjectsUniqueInSink:
description: Whether objects that exist only in the sink should
be deleted. Note that this option and delete_objects_from_source_after_transfer
are mutually exclusive.
type: boolean
overwriteObjectsAlreadyExistingInSink:
description: Whether overwriting objects that already exist
in the sink is allowed.
type: boolean
overwriteWhen:
description: When to overwrite objects that already exist
in the sink. If not set, overwrite behavior is determined
by overwriteObjectsAlreadyExistingInSink.
type: string
type: object
type: object
required:
- description
- transferSpec
type: object
status:
properties:
conditions:
description: Conditions represent the latest available observation
of the resource's current state.
items:
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
type: string
message:
description: Human-readable message indicating details about
last transition.
type: string
reason:
description: Unique, one-word, CamelCase reason for the condition's
last transition.
type: string
status:
description: Status is the status of the condition. Can be True,
False, Unknown.
type: string
type:
description: Type is the type of the condition.
type: string
type: object
type: array
creationTime:
description: When the Transfer Job was created.
type: string
deletionTime:
description: When the Transfer Job was deleted.
type: string
lastModificationTime:
description: When the Transfer Job was last modified.
type: string
name:
description: The name of the Transfer Job.
type: string
observedGeneration:
description: ObservedGeneration is the generation of the resource
that was most recently observed by the Config Connector controller.
If this is equal to metadata.generation, then that means that the
current reported status reflects the most recent desired state of
the resource.
type: integer
type: object
required:
- spec
type: object
served: true
storage: true
subresources:
status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []