NAME
    gcloud alpha storage objects update - update Cloud Storage objects

SYNOPSIS
    gcloud alpha storage objects update [URL ...]
        [--additional-headers=HEADER=VALUE] [--all-versions]
        [--continue-on-error, -c] [--[no-]event-based-hold]
        [--read-paths-from-stdin, -I] [--recursive, -R, -r]
        [--storage-class=STORAGE_CLASS, -s STORAGE_CLASS]
        [--[no-]temporary-hold]
        [--acl-file=ACL_FILE --add-acl-grant=[ACL_GRANT,...]
          --canned-acl=PREDEFINED_ACL, --predefined-acl=PREDEFINED_ACL, -a
          PREDEFINED_ACL
          --[no-]preserve-acl, -p --remove-acl-grant=REMOVE_ACL_GRANT]
        [--clear-encryption-key --decryption-keys=[DECRYPTION_KEY,...]
          --encryption-key=ENCRYPTION_KEY]
        [--cache-control=CACHE_CONTROL --clear-cache-control
          --clear-content-disposition --clear-content-encoding
          --clear-content-language --clear-content-type --clear-custom-time
          --content-disposition=CONTENT_DISPOSITION
          --content-encoding=CONTENT_ENCODING
          --content-language=CONTENT_LANGUAGE --content-type=CONTENT_TYPE
          --custom-time=CUSTOM_TIME --clear-custom-contexts
          | --custom-contexts=[CUSTOM_CONTEXTS_KEYS_AND_VALUES,...]
          | --custom-contexts-file=CUSTOM_CONTEXTS_FILE
          | --remove-custom-contexts=[CUSTOM_CONTEXTS_KEYS,...]
          --update-custom-contexts=[CUSTOM_CONTEXTS_KEYS_AND_VALUES,...]
          --clear-custom-metadata
          | --custom-metadata=[CUSTOM_METADATA_KEYS_AND_VALUES,...]
          | --remove-custom-metadata=[METADATA_KEYS,...]
          --update-custom-metadata=[CUSTOM_METADATA_KEYS_AND_VALUES,...]]
        [--if-generation-match=GENERATION
          --if-metageneration-match=METAGENERATION]
        [--clear-retention --override-unlocked-retention
          --retain-until=DATETIME --retention-mode=RETENTION_MODE]
        [GCLOUD_WIDE_FLAG ...]

DESCRIPTION
    (ALPHA) Update Cloud Storage objects.

EXAMPLES
    Update a Google Cloud Storage object's custom-metadata:

        $ gcloud alpha storage objects update gs://bucket/my-object \
            --custom-metadata=key1=value1,key2=value2

    You can use wildcards (https://cloud.google.com/storage/docs/wildcards) to
    update multiple objects in a single command. For instance to update all
    objects to have a custom-metadata key:

        $ gcloud alpha storage objects update gs://bucket/** \
            --custom-metadata=key1=value1,key2=value2

    Rewrite all JPEG images to the NEARLINE storage class, including objects
    across nested directories:

        $ gcloud alpha storage objects update gs://bucket/**/*.jpg \
            --storage-class=NEARLINE

    You can also provide a precondition on an object's metageneration in order
    to avoid potential race conditions:

        $ gcloud alpha storage objects update gs://bucket/*.jpg \
            --storage-class=NEARLINE --if-metageneration-match=123456789

    The following command overwrites the custom contexts of an object:

        $ gcloud alpha storage objects update gs://bucket/my-object \
            --custom-contexts=key1=value1,key2=value2

    The following example simultaneously updates and removes custom contexts,
    with remove being applied first:

        $ gcloud alpha storage objects update gs://bucket/my-object \
            --update-custom-contexts=key2=value3 \
            --remove-custom-contexts=key2,key3

POSITIONAL ARGUMENTS
     [URL ...]
        Specifies URLs of objects to update.

FLAGS
     --additional-headers=HEADER=VALUE
        Includes arbitrary headers in storage API calls. Accepts a comma
        separated list of key=value pairs, e.g. header1=value1,header2=value2.
        Overrides the default storage/additional_headers property value for
        this command invocation.

     --all-versions
        Perform the operation on all object versions.

     --continue-on-error, -c
        If any operations are unsuccessful, the command will exit with a
        non-zero exit status after completing the remaining operations. This
        flag takes effect only in sequential execution mode (i.e. processor and
        thread count are set to 1). Parallelism is default.

     --[no-]event-based-hold
        Enables or disables an event-based hold on objects. Use
        --event-based-hold to enable and --no-event-based-hold to disable.

     --read-paths-from-stdin, -I
        Read the list of objects to update from stdin. No need to enter a
        source argument if this flag is present. Example: "storage objects
        update -I --content-type=new-type"

     --recursive, -R, -r
        Recursively update objects under any buckets or directories that match
        the URL expression.

     --storage-class=STORAGE_CLASS, -s STORAGE_CLASS
        Specify the storage class of the object. Using this flag triggers a
        rewrite of underlying object data.

     --[no-]temporary-hold
        Enables or disables a temporary hold on objects. Use --temporary-hold
        to enable and --no-temporary-hold to disable.

     --acl-file=ACL_FILE
        Path to a local JSON or YAML formatted file containing a valid policy.
        See the ObjectAccessControls resource
        (https://cloud.google.com/storage/docs/json_api/v1/objectAccessControls)
        for a representation of JSON formatted files. The output of gcloud
        storage [buckets|objects] describe --format="multi(acl:format=json)" is
        a valid file and can be edited for more fine-grained control.

     --add-acl-grant=[ACL_GRANT,...]
        Key-value pairs mirroring the JSON accepted by your cloud provider. For
        example, for Cloud
        Storage,--add-acl-grant=entity=user-tim@gmail.com,role=OWNER

     --canned-acl=PREDEFINED_ACL, --predefined-acl=PREDEFINED_ACL, -a PREDEFINED_ACL
        Applies predefined, or "canned," ACLs to a resource. See docs for a
        list of predefined ACL constants:
        https://cloud.google.com/storage/docs/access-control/lists#predefined-acl

     --[no-]preserve-acl, -p
        Preserves ACLs when copying in the cloud. This option is Cloud
        Storage-only, and you need OWNER access to all copied objects. If all
        objects in the destination bucket should have the same ACL, you can
        also set a default object ACL on that bucket instead of using this
        flag. Preserving ACLs is the default behavior for updating existing
        objects. Use --preserve-acl to enable and --no-preserve-acl to disable.

     --remove-acl-grant=REMOVE_ACL_GRANT
        Key-value pairs mirroring the JSON accepted by your cloud provider. For
        example, for Cloud Storage, --remove-acl-grant=ENTITY, where ENTITY has
        a valid ACL entity format, such as user-tim@gmail.com, group-admins,
        allUsers, etc.

ENCRYPTION FLAGS
     --clear-encryption-key
        Clears the encryption key associated with an object. Using this flag
        triggers a rewrite of affected objects, which are then encrypted using
        the default encryption key set on the bucket, if one exists, or else
        with a Google-managed encryption key.

     --decryption-keys=[DECRYPTION_KEY,...]
        A comma-separated list of customer-supplied encryption keys (RFC 4648
        section 4 base64-encoded AES256 strings) that will be used to decrypt
        Cloud Storage objects. Data encrypted with a customer-managed
        encryption key (CMEK) is decrypted automatically, so CMEKs do not need
        to be listed here.

     --encryption-key=ENCRYPTION_KEY
        The encryption key to use for encrypting target objects. The specified
        encryption key can be a customer-supplied encryption key (An RFC 4648
        section 4 base64-encoded AES256 string), or a customer-managed
        encryption key of the form
        projects/{project}/locations/{location}/keyRings/{key-ring}/cryptoKeys/{crypto-key}.
        The specified key also acts as a decryption key, which is useful when
        copying or moving encrypted data to a new location. Using this flag in
        an objects update command triggers a rewrite of target objects.

OBJECT METADATA FLAGS
     --cache-control=CACHE_CONTROL
        How caches should handle requests and responses.

     --clear-cache-control
        Clears object cache control.

     --clear-content-disposition
        Clears object content disposition.

     --clear-content-encoding
        Clears content encoding.

     --clear-content-language
        Clears object content language.

     --clear-content-type
        Clears object content type.

     --clear-custom-time
        Clears object custom time.

     --content-disposition=CONTENT_DISPOSITION
        How content should be displayed.

     --content-encoding=CONTENT_ENCODING
        How content is encoded (e.g. gzip).

     --content-language=CONTENT_LANGUAGE
        Content's language (e.g. en signifies "English").

     --content-type=CONTENT_TYPE
        Type of data contained in the object (e.g. text/html).

     --custom-time=CUSTOM_TIME
        Custom time for Cloud Storage objects in RFC 3339 format.

     Group that allow users to handle object contexts.

     At most one of these can be specified:

       --clear-custom-contexts
          Clears all custom contexts on objects.

       --custom-contexts=[CUSTOM_CONTEXTS_KEYS_AND_VALUES,...]
          Sets custom contexts on objects. The existing custom contexts (if
          any) would be overwritten.

       --custom-contexts-file=CUSTOM_CONTEXTS_FILE
          Path to a local JSON or YAML file containing custom contexts one
          wants to set on an object. For example:

          1. The following JSON document shows two key value pairs, i.e. (key1,
          value1) and (key2, value2):

                {
                  "key1": {"value": "value1"},
                  "key2": {"value": "value2"}
                }

          2. The following YAML document shows two key value pairs, i.e. (key1,
          value1) and (key2, value2):

                key1:
                  value: value1
                key2:
                  value: value2

          Note: Currently object contexts only supports string format for
          values.

       Or at least one of these can be specified:

         Flags that preserve the existing contexts on the object, and can be
         specified together. However they cannot be specified with
         --clear-custom-contexts, --custom-contexts or --custom-contexts-file.
         If --update-custom-contexts and --remove-custom-contexts are specified
         together, the --remove-custom-contexts would be applied first on
         object.

         --remove-custom-contexts=[CUSTOM_CONTEXTS_KEYS,...]
            Removes the custom contexts on the object, if an entry is not
            found, it would be ignored.

         --update-custom-contexts=[CUSTOM_CONTEXTS_KEYS_AND_VALUES,...]
            Updates the custom contexts on the object, if an entry is found, it
            would be overwritten, otherwise the entry would be added.

     At most one of these can be specified:

       --clear-custom-metadata
          Clears all custom metadata on objects. When used with
          --preserve-posix, POSIX attributes will still be stored in custom
          metadata.

       --custom-metadata=[CUSTOM_METADATA_KEYS_AND_VALUES,...]
          Sets custom metadata on objects. When used with --preserve-posix,
          POSIX attributes are also stored in custom metadata.

       Or at least one of these can be specified:

         Flags that preserve unspecified existing metadata cannot be used with
         --custom-metadata or --clear-custom-metadata, but can be specified
         together:

         --remove-custom-metadata=[METADATA_KEYS,...]
            Removes individual custom metadata keys from objects. This flag can
            be used with --update-custom-metadata. When used with
            --preserve-posix, POSIX attributes specified by this flag are not
            preserved.

         --update-custom-metadata=[CUSTOM_METADATA_KEYS_AND_VALUES,...]
            Adds or sets individual custom metadata key value pairs on objects.
            Existing custom metadata not specified with this flag is not
            changed. This flag can be used with --remove-custom-metadata. When
            keys overlap with those provided by --preserve-posix, values
            specified by this flag are used.

PRECONDITION FLAGS
     --if-generation-match=GENERATION
        Execute only if the generation matches the generation of the requested
        object.

     --if-metageneration-match=METAGENERATION
        Execute only if the metageneration matches the metageneration of the
        requested object.

RETENTION FLAGS
     --clear-retention
        Clears object retention settings and unlocks the configuration.
        Requires --override-unlocked-retention flag as confirmation.

     --override-unlocked-retention
        Needed for certain retention configuration modifications, such as
        clearing retention settings and reducing retention time. Note that
        locked configurations cannot be edited even with this flag.

     --retain-until=DATETIME
        Ensures the object is retained until the specified time in RFC 3339
        format. Requires --override-unlocked-retention flag to shorten the
        retain-until time in unlocked configurations.

     --retention-mode=RETENTION_MODE
        Sets the object retention mode to either "Locked" or "Unlocked". When
        retention mode is "Locked", the retain until time can only be
        increased. RETENTION_MODE must be one of: Locked, Unlocked.

GCLOUD WIDE FLAGS
    These flags are available to all commands: --access-token-file, --account,
    --billing-project, --configuration, --flags-file, --flatten, --format,
    --help, --impersonate-service-account, --log-http, --project, --quiet,
    --trace-token, --user-output-enabled, --verbosity.

    Run $ gcloud help for details.

NOTES
    This command is currently in alpha and might change without notice. If this
    command fails with API permission errors despite specifying the correct
    project, you might be trying to access an API with an invitation-only early
    access allowlist. This variant is also available:

        $ gcloud storage objects update

