- help_text:
    brief: Update a Cloud Scheduler job with a Pub/Sub target.
    description: Update a Cloud Scheduler job with a Pub/Sub target.
    examples: |
      Update my-job's retry attempt limit:

        $ {command} my-job --max-retry-attempts=2

  request:
    collection: cloudscheduler.projects.locations.jobs
    method: patch
    modify_request_hooks:
    - googlecloudsdk.command_lib.scheduler.util:SetRequestJobName
    - googlecloudsdk.command_lib.scheduler.util:SetPubsubRequestMessageBody
    - googlecloudsdk.command_lib.scheduler.util:SetPubsubRequestUpdateAttributes
    - googlecloudsdk.command_lib.scheduler.util:UpdatePubSubMaskHook

  arguments:
    resource:
      help_text: Job to update.
      spec: !REF googlecloudsdk.command_lib.scheduler.resources:job
    params:
    - _REF_: googlecloudsdk.command_lib.scheduler.flags:schedule
    - _REF_: googlecloudsdk.command_lib.scheduler.flags:clearable_timezone
    - _REF_: googlecloudsdk.command_lib.scheduler.flags:description
    - _REF_: googlecloudsdk.command_lib.scheduler.flags:clearable_retry_attempts
    - _REF_: googlecloudsdk.command_lib.scheduler.flags:clearable_retry_duration
    - _REF_: googlecloudsdk.command_lib.scheduler.flags:clearable_min_backoff
    - _REF_: googlecloudsdk.command_lib.scheduler.flags:clearable_max_backoff
    - _REF_: googlecloudsdk.command_lib.scheduler.flags:clearable_max_doublings
    - _REF_: googlecloudsdk.command_lib.scheduler.flags:pubsub_topic
    - group:
        mutex: true
        help_text: |
          Body of the message to publish to the given topic name. Information on
          message formatting and size limits can be found at:
          https://cloud.google.com/pubsub/docs/publisher#publish
        params:
        - arg_name: message-body
          help_text: Body of the message.
        - arg_name: message-body-from-file
          type: "googlecloudsdk.calliope.arg_parsers:FileContents:"
          help_text: Path to a file containing the body of the message.
    - group:
        mutex: true
        params:
        - arg_name: clear-attributes
          api_field: job.pubsubTarget.attributes
          action: store_true
          processor: googlecloudsdk.command_lib.scheduler.util:ClearFlag
          help_text: |
            Clear the field corresponding to `--attributes`.
        - group:
            params:
            - arg_name: update-attributes
              metavar: KEY=VALUE
              type: "googlecloudsdk.calliope.arg_parsers:ArgDict:"
              help_text: |
                Comma-separated list of attributes. Each attribute has the form
                "NAME=VALUE". You can specify up to 100 attributes.
            - arg_name: remove-attributes
              type: "googlecloudsdk.calliope.arg_parsers:ArgList:"
              help_text: |
                Comma-separated list of attribute keys to remove with the form
                "KEY1,KEY2".
