# -*- 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
  help_text:
    brief: Create a component
    description: Create a component in an application template.
    examples: |-
      To create the component `my-component` in application template `my-app-template`, space `my-space`, project `my-project` and location `us-central1` using a shared template revision, run:

        $ {command} my-component --application-template=my-app-template --space=my-space --project=my-project --location=us-central1 --shared-template-revision-uri=projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1

      Or run:

        $ {command} projects/my-project/locations/us-central1/spaces/my-space/applicationTemplates/my-app-template/components/my-component --shared-template-revision-uri=projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1

      To create the component `my-component` in application template `my-app-template`, space `my-space`, project `my-project` and location `us-central1` using a google shared template `google-shared-template` and revision `rev1`, run:

        $ {command} my-component --application-template=my-app-template --space=my-space --project=my-project --location=us-central1 --shared-template-revision-uri=google/google-shared-template/revisions/rev1

      To create the component `my-component` in application template `my-app-template`, space `my-space`, project `my-project` and location `us-central1` using a google shared template `google-shared-template` with its latest revision, run:

        $ {command} my-component --application-template=my-app-template --space=my-space --project=my-project --location=us-central1 --shared-template-revision-uri=google/google-shared-template

      To create the component `my-component` in application template `my-app-template`, space `my-space`, project `my-project` and location `us-central1` using a shared template `my-shared-template` and revision `rev1` present in the same space, run:

        $ {command} my-component --application-template=my-app-template --space=my-space --project=my-project --location=us-central1 --shared-template-revision-uri=my-shared-template/revisions/rev1

      To create the component `my-component` in application template `my-app-template`, space `my-space`, project `my-project` and location `us-central1` using a shared template `my-shared-template` with its latest revision present in the same space, run:

        $ {command} my-component --application-template=my-app-template --space=my-space --project=my-project --location=us-central1 --shared-template-revision-uri=my-shared-template

      To create the component `my-component` with a display name `My Component` in application template `my-app-template`, space `my-space`, project `my-project` and location `us-central1` using a shared template revision, run:

        $ {command} my-component --application-template=my-app-template --space=my-space --project=my-project --location=us-central1 --shared-template-revision-uri=projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1 --display-name="My Component"

      To create the component `my-component` with parameter key value pair of `region:us-central1` in application template `my-app-template`, space `my-space`, project `my-project` and location `us-central1`, run the following shorthand example:

        $ {command} my-component --application-template=my-app-template --space=my-space --project=my-project --location=us-central1 --shared-template-revision-uri=projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1 --parameters=key=region,value=us-central1

      Or run the following JSON example:

        $ {command} my-component --application-template=my-app-template --space=my-space --project=my-project --location=us-central1 --shared-template-revision-uri=projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1 --parameters='[{"key": "region", "value": "us-central1"}]'

      Or create a YAML or JSON file with the parameters and run the following file example:

        $ {command} my-component --application-template=my-app-template --space=my-space --project=my-project --location=us-central1 --shared-template-revision-uri=projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1 --parameters=my-parameters.yaml
  arguments:
    params:
    - help_text: |-
        Identifier. The component name.
      is_positional: true
      is_primary_resource: true
      request_id_field: componentId
      resource_spec: !REF googlecloudsdk.command_lib.design_center.v1alpha_resources:projects_locations_spaces_application_templates_components
      required: true
    - arg_name: shared-template-revision-uri
      api_field: component.sharedTemplateRevisionUri
      required: true
      repeated: false
      help_text: |-
        The shared template used to generate the component.
    - arg_name: parameters
      api_field: component.parameters
      required: false
      repeated: true
      help_text: |-
        The component parameters.
      spec:
      - api_field: key
        help_text: |-
          The key of the parameter.
      - api_field: value
        type: arg_json
        help_text: |-
          The value of the parameter.
    - arg_name: display-name
      api_field: component.displayName
      required: false
      repeated: false
      help_text: |-
        The component display name.
  request:
    api_version: v1alpha
    collection:
    - designcenter.projects.locations.spaces.applicationTemplates.components
