- release_tracks: [ALPHA]

  help_text:
    brief: Update an Event Threat Detection custom module.
    description: Update an Event Threat Detection custom module.
    examples: |
      To update an Event Threat Detection custom module with ID `123456` for organization `123, run`:

        $ {command} 123456 \
            --organization=organizations/123 \
            --enablement-state="ENABLED" \
            --custom-config-from-file=custom_config.json

      To update an Event Threat Detection custom module with ID `123456` for folder `456`, run:

        $ {command} 123456 \
            --folder=folders/456 \
            --enablement-state="ENABLED" \
            --custom-config-from-file=custom_config.json

      To update an Event Threat Detection custom module with ID `123456` for project `789`, run:

        $ {command} 123456 \
            --project=projects/789 \
            --enablement-state="ENABLED" \
            --custom-config-from-file=custom_config.json

  request:
    collection: securitycenter.organizations.eventThreatDetectionSettings.customModules
    disable_resource_check: true
    api_version: v1
    modify_request_hooks:
    - googlecloudsdk.command_lib.scc.custom_modules.etd.request_hooks:UpdateEventThreatDetectionCustomModuleReqHook

  arguments:

    params:
    - arg_name: custom_module
      api_field: name
      is_positional: true
      required: true
      help_text: |
        ID or the full resource name of the Event Threat Detection custom module. If you specify the full resource name, you do not need to specify the `--organization`, `--folder`, or `--project` flags.

    - group:
        mutex: true
        params:
        - arg_name: organization
          api_field: name
          help_text: |
            Organization where the Event Threat Detection custom module resides. Formatted as `organizations/123` or just `123`.

        - arg_name: folder
          api_field: name
          help_text: |
            Folder where the Event Threat Detection custom module resides. Formatted as `folders/456` or just `456`.

        - arg_name: project
          api_field: name
          help_text: |
            ID or number of the project where the Event Threat Detection custom module resides. Formatted as `projects/789` or just `789`.


    - arg_name: enablement-state
      api_field: eventThreatDetectionCustomModule.enablementState
      is_positional: false
      required: false
      help_text: |
        Sets the enablement state of the Event Threat Detection custom module. Valid options are `ENABLED`, `DISABLED`, and `INHERITED`.

    - arg_name: custom-config-from-file
      api_field: eventThreatDetectionCustomModule.config
      type: "googlecloudsdk.calliope.arg_parsers:FileContents:"
      processor: googlecloudsdk.command_lib.scc.hooks:ProcessCustomEtdConfigFile
      is_positional: false
      help_text: |
        Path to a JSON file that contains the configuration for the Event Threat Detection custom module.

    - arg_name: update-mask
      api_field: updateMask
      help_text: |
        Optional: If left unspecified (default), an update mask is automatically created using the
        flags specified in the command and only those values are updated.
