# Copyright 2024 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.

get_entry_view:
  arg_name: view
  api_field: view
  help_text: Controls which parts of an entry are to be returned.
  # Listing choices here explicitly to prevent "UNSPECIFIED" value appearing as a valid option.
  choices:
  - arg_value: basic
    enum_value: BASIC
    help_text: Returns entry only, without aspects.
  - arg_value: full
    enum_value: FULL
    help_text: |
      Default value. Returns all required aspects, as well as the keys of all non-required aspects.
  - arg_value: custom
    enum_value: CUSTOM
    help_text: |
      Returns aspects filtered based on `--aspect-types` AND `--paths` arguments specified.
      When used, at least one of `--aspect-types` and `--paths` arguments must be specified.
      If the number of aspects would exceed 100, the first 100 will be returned.
  - arg_value: all
    enum_value: ALL
    help_text: |
        Returns all aspects.
        If the number of aspects would exceed 100, the first 100 will be returned.

aspect_types:
  api_field: aspectTypes
  arg_name: aspect-types
  type: 'googlecloudsdk.calliope.arg_parsers:ArgList:'
  help_text: |
    Limits the aspects returned to the provided aspect types.
    Only works if the `--view=custom` is selected.

    For example, if two aspect types are specified:
    "projects/projectA/locations/us-central1/my-aspect-type,projects/projectB/locations/us/my-aspect-type2"
    then only aspects matching these aspect types will be returned.

    Can be further constrained by the `--paths` argument.

paths:
  api_field: paths
  arg_name: paths
  type: 'googlecloudsdk.calliope.arg_parsers:ArgList:'
  help_text: |
    Limits the aspects returned to those associated with the provided paths within the Entry.
    Only works if the `--view=custom` is selected.

    For example, if two paths are specified:
    "--paths=property1,property2"
    then only aspects on these paths will be returned.

    To return aspects without any path, the empty (root) path can be specified. For this "." can be
    used. For example, when "--paths=.,property1" are specified, then only aspects on the path
    "property1" and on the entry itself will be returned.

    Can be further constrained by `--aspect-types` argument.
