# -*- coding: utf-8 -*- #
# Copyright 2025 Google LLC. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# NOTE: This file is autogenerated and should not be edited by hand.
# AUTOGEN_CLI_VERSION: HEAD
- release_tracks:
  - ALPHA
  auto_generated: true
  hidden: true
  help_text:
    brief: Create an experiment template
    description: |
      Create an experiment template.
    examples: |-
      To create an experiment template `test-template-id` in location `asia-east1` with display name `test-template` with a duration of `100s` using Cloud SQL failover instance `test-cloud-sql-instance` in project `test-project`  run:

      $ {command} test-template-id  --location=asia-east1 --display-name=test-template --duration=100s --cloud-sql-failover-instance="projects/test-project/instances/test-cloud-sql-instance"
  arguments:
    params:
    - help_text: |-
        Identifier. The resource name of this experiment template.
        Format:
        projects/{project}/locations/{location}/experimentTemplates/{experiment_template_id}
      is_positional: true
      is_primary_resource: true
      request_id_field: experimentTemplateId
      resource_spec: !REF googlecloudsdk.command_lib.fault_testing.v1alpha_resources:projects_locations_experiment_templates
      required: true
    - arg_name: display-name
      api_field: experimentTemplate.displayName
      required: false
      repeated: false
      help_text: |-
        Human-readable template name. Min length 0, max 1000.
    - arg_name: description
      api_field: experimentTemplate.description
      required: false
      repeated: false
      help_text: |-
        Optional user-provided description or notes. Min length 0. Max length 2000.
    - arg_name: tags
      api_field: experimentTemplate.tags
      required: false
      repeated: true
      help_text: |-
        Optional user-provided tags. Min length 0, max combined length 1000.
    - arg_name: duration
      api_field: experimentTemplate.duration
      required: true
      repeated: false
      type: googlecloudsdk.core.util.times:ParseDuration
      processor: googlecloudsdk.core.util.times:FormatDurationForJson
      help_text: |-
        How long the experiment is intended to run. Min duration is 0, max is 10
        days.
    - group:
        api_field: experimentTemplate.action
        required: true
        help_text: |-
          The action to be performed by the experiment.
        params:
        - group:
            mutex: true
            help_text: |-
              Arguments for the action.
            params:
            - group:
                api_field: experimentTemplate.action.cloudSqlFailover
                required: false
                help_text: |-
                  CloudSQLFailover causes a Cloud SQL primary instance to fail over to another
                  instance.
                params:
                - arg_name: cloud-sql-failover-instance
                  api_field: experimentTemplate.action.cloudSqlFailover.instance
                  required: true
                  repeated: false
                  help_text: |-
                    The identifying name of the Cloud SQL instance to fail over.
                    Formatted like projects/{project_id}/instances/{instance_id}
  request:
    api_version: v1alpha
    collection:
    - faulttesting.projects.locations.experimentTemplates
