NAME
    gcloud alpha service-extensions wasm-plugins update - update a WasmPlugin
        resource

SYNOPSIS
    gcloud alpha service-extensions wasm-plugins update
        (WASM_PLUGIN : --location=LOCATION) [--async]
        [--description=DESCRIPTION] [--labels=[KEY=VALUE,...]]
        [--log-config=[LOG_CONFIG,...]]
        [--image=IMAGE
          --main-version=MAIN_VERSION --plugin-config=PLUGIN_CONFIG
          | --plugin-config-file=PATH_TO_FILE
          | --plugin-config-uri=PLUGIN_CONFIG_URI]
        [--kms-key-name=KMS_KEY_NAME : --kms-keyring=KMS_KEYRING
          --kms-location=KMS_LOCATION --kms-project=KMS_PROJECT]
        [GCLOUD_WIDE_FLAG ...]

DESCRIPTION
    (ALPHA) Update an existing WasmPlugin resource and optionally create a
    WasmPluginVersion resource and set it as the main (serving) one.

    If --image is not specified:
      ▪ the method only updates the WasmPlugin resource without creating a
        WasmPluginVersion.
      ▪ the --plugin-config*** flags are disallowed.
      ▪ if --main-version is set, then the referenced WasmPluginVersion must
        already exist and it is set as the main (serving) one.

    If --image is specified:
      ▪ the --main-version flag must also be specified.
      ▪ the method updates the WasmPlugin resource and creates a new
        WasmPluginVersion with --main-version name and sets it as the main
        (serving) one.
      ▪ the --plugin-config*** flags are allowed.
      ▪ the --async flag is disallowed.

EXAMPLES
    To update a WasmPlugin called my-plugin, run:

        $ gcloud alpha service-extensions wasm-plugins update my-plugin \
            --main-version=new-version --description="A new description." \
            --labels=label1=value1

    To update a WasmPlugin called my-plugin and also create a new version
    called v1 and set it as main:

        $ gcloud alpha service-extensions wasm-plugins update my-plugin \
            --main-version=v1 --description="A new description." \
            --labels=label1=value1 \
            --image=...-docker.pkg.dev/my-project/repository/container:tag

POSITIONAL ARGUMENTS
     WasmPlugin resource - The ID of the WasmPlugin to update. The arguments in
     this group can be used to specify the attributes of this resource. (NOTE)
     Some attributes are not given arguments in this group but can be set in
     other ways.

     To set the project attribute:
      ◆ provide the argument wasm_plugin on the command line with a fully
        specified name;
      ◆ provide the argument --project on the command line;
      ◆ set the property core/project.

     This must be specified.

       WASM_PLUGIN
          ID of the WasmPlugin or fully qualified identifier for the
          WasmPlugin.

          To set the wasm_plugin attribute:
          ▸ provide the argument wasm_plugin on the command line.

          This positional argument must be specified if any of the other
          arguments in this group are specified.

       --location=LOCATION
          The location ID.

          To set the location attribute:
          ▸ provide the argument wasm_plugin on the command line with a fully
            specified name;
          ▸ provide the argument --location on the command line;
          ▸ use global location.

FLAGS
     --async
        Return immediately, without waiting for the operation in progress to
        complete.

     --description=DESCRIPTION
        A human-readable description of the resource.

     --labels=[KEY=VALUE,...]
        List of label KEY=VALUE pairs to add.

        Keys must start with a lowercase character and contain only hyphens
        (-), underscores (_), lowercase characters, and numbers. Values must
        contain only hyphens (-), underscores (_), lowercase characters, and
        numbers.

     --log-config=[LOG_CONFIG,...]
        Logging options for the activity performed by this plugin. The
        following options can be set:
        ◆ enable: whether to enable logging. If log-config flag is set,
          enable option is required.

        ◆ sample-rate: configures the sampling rate of activity logs, where
          1.0 means all logged activity is reported and 0.0 means no activity
          is reported. The default value is 1.0, and the value of the field
          must be in range 0 to 1 (inclusive).

        ◆ min-log-level: specifies the lowest level of the logs that should
          be exported to Cloud Logging. The default value is INFO.

        Example usage:
        --log-config=enable=True,sample-rate=0.5,min-log-level=INFO
        --log_config=enable=False

     --image=IMAGE
        URI of the container image containing the plugin's Wasm module, stored
        in the Artifact Registry.

     --main-version=MAIN_VERSION
        The ID of the WasmPluginVersion that should be the currently serving
        one. The version referred to must be a child of this WasmPlugin.

        If the --image flag was also provided, the WasmPluginVersion will be
        created for that WasmPlugin and will be set as the current main
        version.

     Configuration for the plugin, provided at runtime by the on_configure
     function (Rust Proxy-Wasm SDK) or the onConfigure method (C++ Proxy-Wasm
     SDK).

     At most one of these can be specified:

       --plugin-config=PLUGIN_CONFIG
          Plugin runtime configuration in the textual format.

       --plugin-config-file=PATH_TO_FILE
          Path to a local file containing the plugin runtime configuration.

          Use a full or relative path to a local file containing the value of
          plugin_config_file.

       --plugin-config-uri=PLUGIN_CONFIG_URI
          URI of the container image containing the plugin's runtime
          configuration, stored in the Artifact Registry.

     Key resource - The Cloud KMS (Key Management Service) cryptokey that will
     be used to protect the WasmPlugin. The 'Network Actions Service Agent'
     service account must hold permission 'Cloud KMS CryptoKey
     Encrypter/Decrypter'. The arguments in this group can be used to specify
     the attributes of this resource.

     --kms-key-name=KMS_KEY_NAME
        ID of the key or fully qualified identifier for the key.

        To set the kms-key attribute:
        ◆ provide the argument --kms-key-name on the command line.

        This flag argument must be specified if any of the other arguments in
        this group are specified.

     --kms-keyring=KMS_KEYRING
        The KMS keyring of the key.

        To set the kms-keyring attribute:
        ◆ provide the argument --kms-key-name on the command line with a
          fully specified name;
        ◆ provide the argument --kms-keyring on the command line.

     --kms-location=KMS_LOCATION
        The Google Cloud location for the key.

        To set the kms-location attribute:
        ◆ provide the argument --kms-key-name on the command line with a
          fully specified name;
        ◆ provide the argument --kms-location on the command line.

     --kms-project=KMS_PROJECT
        The Google Cloud project for the key.

        To set the kms-project attribute:
        ◆ provide the argument --kms-key-name on the command line with a
          fully specified name;
        ◆ provide the argument --kms-project on the command line;
        ◆ set the property core/project.

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. These variants are also available:

        $ gcloud service-extensions wasm-plugins update

        $ gcloud beta service-extensions wasm-plugins update

