- release_tracks: [ALPHA, BETA, GA]

  # This command calls a list operation behind the scenes but we can't make command_type as list
  # since it doesn't support any of the list-flags.
  command_type: GENERIC
  generic:
    disable_paging_flags: true


  help_text:
    brief: Describe a source given its display name or source id.
    description: Describe a source given its display name or source id.
    examples: |
      Describe source with display name `Security Scanner`:

        $ {command} 123456 --source-display-name="Security Scanner"

      Describe source with source id '5678':

        $ {command} 123456 --source=5678

  request:
    collection: securitycenter.organizations.sources
    api_version: v2
    method: list
    modify_request_hooks:
    - googlecloudsdk.command_lib.scc.sources.request_hooks:DescribeSourceReqHook

  arguments:
    additional_arguments_hook: googlecloudsdk.command_lib.scc.hooks:AppendParentArg

    params:
    - group:
        mutex: true
        required: true
        params:
        - arg_name: source
          help_text: |
            Cloud SCC specific source. It's derived from the the source's relative resource name.
            See: https://cloud.google.com/apis/design/resource_names#relative_resource_name.
            For Example: For the given source name: "organizations/123/sources/456", 456 represents
            source id.
        - arg_name: source-display-name
          help_text: |
            Source's display name must be unique amongst its siblings, for example, two sources
            with the same parent can't share the same display name.
            Display name must start and end with a letter or digit, may contain letters, digits,
            spaces, hyphens, and underscores, and can be no longer than 32 characters. This is
            captured by the regular expression: [\p{L}\p{N}]({\p{L}\p{N}_- ]{0,30}[\p{L}\p{N}])?.
            For example: 'Cloud Security Scanner' is the source display name.

  response:
    modify_response_hooks:
    - googlecloudsdk.command_lib.scc.sources.response_hooks:ExtractMatchingSourceFromResponse
