> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nebius.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update



## OpenAPI

````yaml https://api.nebius.cloud/openapi.json patch /storage/v1/transfers
openapi: 3.0.3
info:
  title: Nebius API
  version: version not set
servers:
  - url: https://api.nebius.cloud
security:
  - bearerAuth: []
tags:
  - name: nebius.ai.v1.EndpointService
  - name: nebius.ai.v1.JobService
  - name: nebius.applications.v1alpha1.K8sReleaseService
  - name: nebius.audit.v2.AuditEventExportService
  - name: nebius.audit.v2.AuditEventService
  - name: nebius.billing.v1.CalculatorService
  - name: nebius.billing.v1alpha1.CalculatorService
  - name: nebius.billing.v1alpha1.OneTimeExportService
  - name: nebius.capacity.v1.CapacityAllowanceService
  - name: nebius.capacity.v1.CapacityBlockGroupService
  - name: nebius.capacity.v1.CapacityIntervalService
  - name: nebius.capacity.v1.ResourceAdviceService
  - name: nebius.compute.v1.DiskService
  - name: nebius.compute.v1.DiskSnapshotService
  - name: nebius.compute.v1.FilesystemService
  - name: nebius.compute.v1.GpuClusterService
  - name: nebius.compute.v1.ImageService
  - name: nebius.compute.v1.InstanceService
  - name: nebius.compute.v1.MaintenanceService
  - name: nebius.compute.v1.NVLInstanceGroupService
  - name: nebius.compute.v1.NodeService
  - name: nebius.compute.v1.PlatformService
  - name: nebius.dns.v1.RecordService
  - name: nebius.dns.v1.ZoneService
  - name: nebius.iam.v1.AccessKeyService
  - name: nebius.iam.v1.AccessPermitService
  - name: nebius.iam.v1.AuthPublicKeyService
  - name: nebius.iam.v1.FederatedCredentialsService
  - name: nebius.iam.v1.FederationCertificateService
  - name: nebius.iam.v1.FederationService
  - name: nebius.iam.v1.GroupMembershipService
  - name: nebius.iam.v1.GroupService
  - name: nebius.iam.v1.InvitationService
  - name: nebius.iam.v1.ProfileService
  - name: nebius.iam.v1.ProjectService
  - name: nebius.iam.v1.ServiceAccountService
  - name: nebius.iam.v1.SessionManagementService
  - name: nebius.iam.v1.StaticKeyService
  - name: nebius.iam.v1.TenantService
  - name: nebius.iam.v1.TenantUserAccountService
  - name: nebius.iam.v1.TenantUserAccountWithAttributesService
  - name: nebius.iam.v2.AccessKeyService
  - name: nebius.iam.v2.ProjectService
  - name: nebius.iam.v2.TenantService
  - name: nebius.kms.v1.AsymmetricCryptoService
  - name: nebius.kms.v1.AsymmetricKeyService
  - name: nebius.kms.v1.SymmetricCryptoService
  - name: nebius.kms.v1.SymmetricKeyService
  - name: nebius.logging.agentmanager.v1.VersionService
  - name: nebius.logging.v1.LogExportService
  - name: nebius.maintenance.v1alpha1.MaintenanceService
  - name: nebius.mk8s.v1.ClusterService
  - name: nebius.mk8s.v1.NodeGroupService
  - name: nebius.mk8s.v1alpha1.ClusterService
  - name: nebius.mk8s.v1alpha1.NodeGroupService
  - name: nebius.msp.mlflow.v1alpha1.ClusterService
  - name: nebius.msp.postgresql.v1alpha1.BackupService
  - name: nebius.msp.postgresql.v1alpha1.ClusterService
  - name: nebius.mysterybox.v1.PayloadService
  - name: nebius.mysterybox.v1.SecretService
  - name: nebius.mysterybox.v1.SecretVersionService
  - name: nebius.quotas.v1.QuotaAllowanceService
  - name: nebius.registry.v1.ArtifactService
  - name: nebius.registry.v1.RegistryService
  - name: nebius.storage.v1.BucketService
  - name: nebius.storage.v1.TransferService
  - name: nebius.storage.v1alpha1.TransferService
  - name: nebius.tunnel.v1.TunnelService
  - name: nebius.vpc.v1.AllocationService
  - name: nebius.vpc.v1.NetworkService
  - name: nebius.vpc.v1.PoolService
  - name: nebius.vpc.v1.RouteService
  - name: nebius.vpc.v1.RouteTableService
  - name: nebius.vpc.v1.SecurityGroupService
  - name: nebius.vpc.v1.SecurityRuleService
  - name: nebius.vpc.v1.SubnetService
  - name: nebius.vpc.v1.TargetGroupService
  - name: nebius.vpc.v1alpha1.AllocationService
  - name: nebius.vpc.v1alpha1.NetworkService
  - name: nebius.vpc.v1alpha1.PoolService
  - name: nebius.vpc.v1alpha1.ScopeService
  - name: nebius.vpc.v1alpha1.SubnetService
paths:
  /storage/v1/transfers:
    patch:
      tags:
        - nebius.storage.v1.TransferService
      summary: Update
      operationId: TransferService_Update
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/storageV1UpdateTransferRequest'
        required: true
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/commonV1Operation'
          description: A successful response.
components:
  schemas:
    storageV1UpdateTransferRequest:
      properties:
        metadata:
          $ref: '#/components/schemas/commonV1ResourceMetadata'
        spec:
          $ref: '#/components/schemas/storageV1TransferSpec'
      required:
        - metadata
        - spec
      type: object
    commonV1Operation:
      properties:
        createdAt:
          description: Creation timestamp.
          format: date-time
          type: string
        createdBy:
          description: ID of the user or service account who initiated the operation.
          type: string
        description:
          description: Human-readable description of the operation. 0-256 characters long.
          type: string
        finishedAt:
          description: The time when the operation has finished.
          format: date-time
          type: string
        id:
          description: ID of the operation.
          type: string
        progressData:
          $ref: '#/components/schemas/protobufAny'
        progressTracker:
          $ref: '#/components/schemas/v1ProgressTracker'
        request:
          $ref: '#/components/schemas/protobufAny'
        requestHeaders:
          additionalProperties:
            $ref: '#/components/schemas/OperationRequestHeader'
          title: >-
            The request headers that are essential for the request that
            generated the operation.

            For instance, `x-resetmask`. Without these headers the request might
            have been processed

            differently if repeated.

            All the header names *must* be converted to lower case.

            Validator is based on:

            https://httpwg.org/specs/rfc9110.html#considerations.for.new.field.names
          type: object
        resourceId:
          description: >-
            ID of the resource that this operation creates, updates, deletes or
            otherwise changes.


            If the operation affects multiple resources or does not affect any
            API resources at all

            (e.g. a routine maintenance operation visible to the user), the
            [resource_id] must be empty.
          type: string
        status:
          $ref: '#/components/schemas/googleRpcStatus'
      type: object
    commonV1ResourceMetadata:
      description: Common resource metadata.
      properties:
        createdAt:
          description: Timestamp indicating when the resource was created.
          format: date-time
          readOnly: true
          type: string
        id:
          description: Identifier for the resource, unique for its resource type.
          type: string
        labels:
          additionalProperties:
            type: string
          description: Labels associated with the resource.
          type: object
        name:
          description: Human readable name for the resource.
          type: string
        parentId:
          description: Identifier of the parent resource to which the resource belongs.
          type: string
        resourceVersion:
          description: >-
            Version of the resource for safe concurrent modifications and
            consistent reads.

            Positive and monotonically increases on each resource spec change
            (but *not* on each change of the

            resource's container(s) or status).

            Service allows zero value or current.
          format: int64
          type: string
        updatedAt:
          description: Timestamp indicating when the resource was last updated.
          format: date-time
          readOnly: true
          type: string
      required:
        - parentId
      type: object
    storageV1TransferSpec:
      properties:
        afterNEmptyIterations:
          $ref: >-
            #/components/schemas/storageV1TransferSpecStopConditionAfterNEmptyIterations
        afterOneIteration:
          $ref: >-
            #/components/schemas/storageV1TransferSpecStopConditionAfterOneIteration
        destination:
          $ref: '#/components/schemas/v1TransferDestination'
        enableDeletesInDestination:
          description: >-
            If enable_deletes_in_destination flag is set, service will delete
            objects that exist in destination, but don't exist in source.

            If touch_unmanaged flag isn't set, we do not delete objects that
            haven't been created by Data Transfer service.
          type: boolean
        infinite:
          $ref: '#/components/schemas/storageV1TransferSpecStopConditionInfinite'
        interIterationInterval:
          description: >-
            The time to wait since the previous iteration before starting the
            next one.

            Default is 15 minutes if not specified.
          type: string
        limiters:
          $ref: '#/components/schemas/storageV1TransferSpecLimiters'
        overwriteStrategy:
          $ref: '#/components/schemas/storageV1TransferSpecOverwriteStrategy'
        source:
          $ref: '#/components/schemas/v1TransferSource'
        touchUnmanaged:
          description: >-
            If touch_unmanaged flag is set, service will be allowed to overwrite
            and delete from destination objects that were not

            created by Data Transfer Service. If this flag is false, Data
            Transfer Service will never overwrite or delete objects

            that haven't been created by Data Transfer service.
          type: boolean
      required:
        - source
        - destination
        - overwriteStrategy
      type: object
    protobufAny:
      additionalProperties: {}
      description: >-
        `Any` contains an arbitrary serialized protocol buffer message along
        with a

        URL that describes the type of the serialized message
      properties:
        '@type':
          description: >-
            A URL/resource name that uniquely identifies the type of the
            serialized

            protocol buffer message. This string must contain at least

            one "/" character. The last segment of the URL's path must represent

            the fully qualified name of the type (as in

            `path/google.protobuf.Duration`). The name should be in a canonical
            form

            (e.g., leading "." is not accepted).


            In practice, teams usually precompile into the binary all types that
            they

            expect it to use in the context of Any. However, for URLs which use
            the

            scheme `http`, `https`, or no scheme, one can optionally set up a
            type

            server that maps type URLs to message definitions as follows:


            * If no scheme is provided, `https` is assumed.

            * An HTTP GET on the URL must yield a [google.protobuf.Type][]
              value in binary format, or produce an error.
            * Applications are allowed to cache lookup results based on the
              URL, or have them precompiled into a binary to avoid any
              lookup. Therefore, binary compatibility needs to be preserved
              on changes to types. (Use versioned type names to manage
              breaking changes.)

            Note: this functionality is not currently available in the official

            protobuf release, and it is not used for type URLs beginning with

            type.googleapis.com. As of May 2023, there are no widely used type
            server

            implementations and no plans to implement one.


            Schemes other than `http`, `https` (or the empty scheme) might be

            used with implementation specific semantics.
          type: string
      type: object
    v1ProgressTracker:
      description: >-
        Information for tracking the progress of a task (e.g., an API operation
        or background maintenance action).

        This serves as a UI contract and may be directly reflected in CLI,
        Console, and other tools.
      properties:
        description:
          description: >-
            Human-readable description of the currently executing task, e.g.,
            "Downloading dat-groot-llm.tar.xz".

            Relates to the overall task, not individual steps.

            SHOULD match the Operation's `description` field when this
            ProgressTracker tracks an API Operation's progress.

            MAY provide more detailed overall information.


            MUST be suitable for display to public users.

            Even if the task is internal, this description may be shown to end
            users in overall task step descriptions.


            For individual step descriptions, use `Step.description`.
          type: string
        estimatedFinishedAt:
          description: |-
            Estimated completion timestamp for the task.
            MUST be absent if the task is completed (i.e., finished_at is set).
            MAY be absent if the estimate is unknown.
            MAY be updated as the progress estimate changes.
          format: date-time
          type: string
        finishedAt:
          description: >-
            Completion timestamp of the task.

            MUST be absent for running tasks; MUST be present for completed
            tasks.

            MUST match the operation's finished_at timestamp when tracking an
            API Operation's progress.
          format: date-time
          type: string
        startedAt:
          description: >-
            Timestamp when the overall task started.

            MUST match the operation's created_at timestamp when tracking an API
            Operation's progress.
          format: date-time
          type: string
        steps:
          description: >-
            Detailed information about the task steps that are currently running
            or have been finished.

            - For a completed task, the step list MUST either be empty or
            contain finished steps only.

            - For a running task, the step list MAY be empty if the task
            consists of a single step or no detailed information is available.
              A non-empty step list MUST include all currently running steps and MAY include some or all finished steps.
            - Service SHOULD provide both running and finished steps if the task
            has around 10-20 steps, and provide only running steps otherwise.
              Service MUST consistently choose either the "running steps only" or the "running + finished steps" behavior.
            - The UI, CLI etc. MAY choose not to display all steps provided by
            the service.
          items:
            $ref: '#/components/schemas/ProgressTrackerStep'
          type: array
        workDone:
          $ref: '#/components/schemas/ProgressTrackerWorkDone'
      type: object
    OperationRequestHeader:
      properties:
        values:
          items:
            type: string
          title: The values of a particular header from a request
          type: array
      title: >-
        Request header is a container for all the values of a particular header
        of a request because there is no such thing as

        `map<string, repeated string>`
      type: object
    googleRpcStatus:
      description: >-
        The `Status` type defines a logical error model that is suitable for

        different programming environments, including REST APIs and RPC APIs. It
        is

        used by [gRPC](https://github.com/grpc). Each `Status` message contains

        three pieces of data: error code, error message, and error details.


        You can find out more about this error model and how to work with it in
        the

        [API Design Guide](https://cloud.google.com/apis/design/errors).
      properties:
        code:
          description: |-
            The status code, which should be an enum value of
            [google.rpc.Code][google.rpc.Code].
          format: int32
          type: integer
        details:
          description: >-
            A list of messages that carry the error details.  There is a common
            set of

            message types for APIs to use.
          items:
            $ref: '#/components/schemas/protobufAny'
          type: array
        message:
          description: >-
            A developer-facing error message, which should be in English. Any

            user-facing error message should be localized and sent in the

            [google.rpc.Status.details][google.rpc.Status.details] field, or
            localized

            by the client.
          type: string
      type: object
    storageV1TransferSpecStopConditionAfterNEmptyIterations:
      properties:
        emptyIterationsThreshold:
          description: >-
            Number of consecutive iterations with zero transferred objects
            required to stop transfer.
          format: int64
          type: integer
      required:
        - emptyIterationsThreshold
      type: object
    storageV1TransferSpecStopConditionAfterOneIteration:
      type: object
    v1TransferDestination:
      properties:
        nebius:
          $ref: '#/components/schemas/v1TransferDestinationNebiusProvider'
        prefix:
          description: >-
            Prefix to add to the beginning of each transferred object key in the
            destination.

            During transfer, the resulting object key in the destination is
            computed

            by removing source.prefix (if provided) from the original key and
            then prepending destination.prefix.

            Important: This transformation may result in an empty object key or
            one that exceeds allowed length limits.

            Use prefixes that guarantee valid resulting object keys for your
            objects after transformation.
          type: string
        s3Compatible:
          $ref: '#/components/schemas/v1TransferDestinationS3CompatibleProvider'
      type: object
    storageV1TransferSpecStopConditionInfinite:
      type: object
    storageV1TransferSpecLimiters:
      properties:
        bandwidthBytesPerSecond:
          description: >-
            Maximum bandwidth in bytes per second. If set to zero, default limit
            will be applied.
          format: uint64
          type: string
        requestsPerSecond:
          description: >-
            Maximum number of requests per second. If set to zero, default limit
            will be applied.
          format: uint64
          type: string
      type: object
    storageV1TransferSpecOverwriteStrategy:
      default: OVERWRITE_STRATEGY_UNSPECIFIED
      description: >2-
         - NEVER: Never overwrite objects that exist in the destination.
        If object exists in destination bucket, skip it.

        Safest option to prevent any data loss.
         - IF_NEWER: Overwrite only if source object is newer than destination.
        Comparison based on Last-Modified timestamp.

        Recommended for incremental sync scenarios.

        If touch_unmanaged flag isn't set, we do not overwrite objects that
        haven't been created by Data Transfer service.
      enum:
        - OVERWRITE_STRATEGY_UNSPECIFIED
        - NEVER
        - IF_NEWER
      type: string
    v1TransferSource:
      properties:
        azureBlobStorage:
          $ref: '#/components/schemas/TransferSourceAzureBlobStorageProvider'
        nebius:
          $ref: '#/components/schemas/v1TransferSourceNebiusProvider'
        prefix:
          description: >-
            Prefix to filter objects in the source. Only objects whose keys
            start with this prefix will be transferred.

            During transfer, the resulting object key in the destination is
            computed

            by removing source.prefix from the original key and then prepending
            destination.prefix (if provided).

            Important: This transformation may result in an empty object key or
            one that exceeds allowed length limits.

            Use prefixes that guarantee valid resulting object keys for your
            objects after transformation.
          type: string
        s3Compatible:
          $ref: '#/components/schemas/v1TransferSourceS3CompatibleProvider'
      type: object
    ProgressTrackerStep:
      description: |-
        Represents a basic step in the task.
        Fields are binary-compatible with ProgressTracker for easier processing.
      properties:
        description:
          description: >-
            Human-readable description of the step, e.g., "Connecting to
            localhost:8080".

            MUST be suitable for display to public users.

            Private descriptions must be filtered server-side based on the use
            case.
          type: string
        finishedAt:
          description: >-
            Timestamp when the step finished.

            MUST be absent for running steps; MUST be present for completed
            steps.
          format: date-time
          type: string
        startedAt:
          description: Timestamp when the step started.
          format: date-time
          type: string
        workDone:
          $ref: '#/components/schemas/ProgressTrackerWorkDone'
      type: object
    ProgressTrackerWorkDone:
      description: >-
        Information about the work done by the task or its step, expressed in
        ticks (abstract work units).

        Each tick may represent a real measurement (e.g., VMs created, KiB
        uploaded), number of substeps or a percentage of work completed.
      properties:
        doneTickCount:
          description: >-
            Number of ticks completed so far. MUST be between 0 and
            total_tick_count, inclusive.

            MUST equal total_tick_count if the task or step is finished.
          format: int64
          type: string
        totalTickCount:
          description: >-
            Total number of ticks (work units) to be completed. MUST be greater
            than 0.
          format: int64
          type: string
      type: object
    v1TransferDestinationNebiusProvider:
      properties:
        accessKey:
          $ref: '#/components/schemas/v1TransferCredentialsAccessKey'
        bucketName:
          description: Name of the destination bucket.
          type: string
        region:
          description: Nebius region where the destination bucket is located.
          type: string
      required:
        - region
        - bucketName
      type: object
    v1TransferDestinationS3CompatibleProvider:
      properties:
        accessKey:
          $ref: '#/components/schemas/v1TransferCredentialsAccessKey'
        anonymous:
          $ref: '#/components/schemas/v1TransferCredentialsAnonymous'
        bucketName:
          description: Name of the destination bucket.
          type: string
        endpoint:
          description: >-
            The endpoint must be in the form of a URL, starting with the
            protocol (https),

            followed by the endpoint address without a trailing slash.

            Example: "https://storage.some-cloud".
          type: string
        region:
          description: S3-compatible provider region where destination bucket is located.
          type: string
      required:
        - endpoint
        - region
        - bucketName
      type: object
    TransferSourceAzureBlobStorageProvider:
      properties:
        anonymous:
          $ref: '#/components/schemas/v1TransferCredentialsAnonymous'
        azureStorageAccount:
          $ref: '#/components/schemas/v1TransferCredentialsAzureStorageAccount'
        containerName:
          description: Name of the source Azure Blob Storage container.
          type: string
        endpoint:
          description: >-
            The endpoint must be in the form of a URL, starting with the
            protocol (https),

            followed by the endpoint address without a trailing slash.

            Example: "https://storageaccountname.blob.core.windows.net".
          type: string
      required:
        - endpoint
        - containerName
      type: object
    v1TransferSourceNebiusProvider:
      properties:
        accessKey:
          $ref: '#/components/schemas/v1TransferCredentialsAccessKey'
        anonymous:
          $ref: '#/components/schemas/v1TransferCredentialsAnonymous'
        bucketName:
          description: Name of the source bucket.
          type: string
        region:
          description: Nebius region where the source bucket is located.
          type: string
      required:
        - region
        - bucketName
      type: object
    v1TransferSourceS3CompatibleProvider:
      properties:
        accessKey:
          $ref: '#/components/schemas/v1TransferCredentialsAccessKey'
        anonymous:
          $ref: '#/components/schemas/v1TransferCredentialsAnonymous'
        bucketName:
          description: Name of the source bucket.
          type: string
        endpoint:
          description: >-
            The endpoint must be in the form of a URL, starting with the
            protocol (https),

            followed by the endpoint address without a trailing slash.

            Example: "https://storage.some-cloud".
          type: string
        region:
          description: S3-compatible provider region where source bucket is located.
          type: string
      required:
        - endpoint
        - region
        - bucketName
      type: object
    v1TransferCredentialsAccessKey:
      properties:
        accessKeyId:
          description: Access key ID.
          type: string
        secretAccessKey:
          description: Secret access key.
          type: string
      required:
        - accessKeyId
      type: object
    v1TransferCredentialsAnonymous:
      type: object
    v1TransferCredentialsAzureStorageAccount:
      properties:
        accessKey:
          description: Storage account access key.
          type: string
        accountName:
          description: Storage account name.
          type: string
      required:
        - accountName
      type: object
  securitySchemes:
    bearerAuth:
      description: The Authorization header expects a Bearer token.
      scheme: bearer
      type: http

````