- release_tracks: [ALPHA, BETA, GA]

  help_text:
    brief:  Queries all accessible data IDs.
    description: Queries all data IDs that are consented for a given use in the given Cloud Healthcare API consent store and writes them to a specified destination.
    examples: |
      To query all data IDs in the consent-store 'test-consent-store' that can be used given request
      attributes {"organization":"admins", "use_case":"research"} and resource attributes
      {"anonymity":"identified"}, and write the result file to "gs://test-bucket/folder", run:

        $ {command} test-consent-store --gcs-uri=gs://test-bucket/folder --request-attributes=organization=admins,use_case=research --resource-attributes=anonymity=identified --dataset=test-dataset

  request:
    collection: healthcare.projects.locations.datasets.consentStores
    method: queryAccessibleData
    ALPHA:
      api_version: v1alpha2
    BETA:
      api_version: v1beta1
    GA:
      api_version: v1

  arguments:
    resource:
      help_text: Cloud Healthcare API consent store to retrieve user data mappings from.
      spec: !REF googlecloudsdk.command_lib.healthcare.resources:consent_store

    params:
    - arg_name: gcs-uri
      api_field: queryAccessibleDataRequest.gcsDestination.uriPrefix
      required: true
      help_text: |
        The Cloud Storage destination for the result file. The Cloud Healthcare API service account
        must have the `roles/storage.objectAdmin` Cloud IAM role for this Cloud Storage location.
    - arg_name: resource-attributes
      metavar: KEY=VALUE
      api_field: queryAccessibleDataRequest.resourceAttributes
      type: 'googlecloudsdk.calliope.arg_parsers:ArgDict:'
      help_text: |
        Comma-separated list of resources attributes associated with the type of data being
        requested. Each attribute has the form "KEY=VALUE". If no values are specified, then all
        data types are included in the output.
    - arg_name: request-attributes
      metavar: KEY=VALUE
      api_field: queryAccessibleDataRequest.requestAttributes
      type: 'googlecloudsdk.calliope.arg_parsers:ArgDict:'
      help_text: |
        Comma-separated list of request attributes associated with this access request. Each
        attribute has the form "KEY=VALUE".

  async:
    collection: healthcare.projects.locations.datasets.operations
