- release_tracks: [ALPHA, BETA]

  help_text:
    brief:  Create a Cloud Healthcare API HL7v2 store.
    description: |
      Create a Cloud Healthcare API HL7v2 store.
    examples: |
      To create a HL7v2 store called 'test-hl7v2-store', run:

        $ {command} test-hl7v2-store --dataset=test-dataset

      To create a HL7v2 store with the Cloud Pub/Sub topic 'test-pubsub-topic', run:

        $ {command} test-hl7v2-store --dataset=test-dataset --pubsub-topic=projects/my-project/topics/test-pubsub-topic

  request:
    collection: healthcare.projects.locations.datasets.hl7V2Stores
    ALPHA:
      api_version: v1alpha2
    BETA:
      api_version: v1beta1

  arguments:
    resource:
      help_text: Cloud Healthcare API HL7v2 store to create.
      spec: !REF googlecloudsdk.command_lib.healthcare.resources:hl7v2_store

    params:
    - api_field: hl7V2Store.notificationConfig.pubsubTopic
      arg_name: pubsub-topic
      help_text: |
        A Google Cloud Pub/Sub topic name for notifications.

        Note: A topic must be created before publishing or subscribing to it. For instructions
        on creating topics, refer to: https://cloud.google.com/pubsub/docs/admin#create_a_topic

    - api_field: hl7V2Store.parserConfig.version
      arg_name: parser-version
      help_text: |
        Immutable. Determines the version of both the default parser to be used when [schema](https://cloud.google.com/healthcare-api/docs/reference/rest/v1/projects.locations.datasets.hl7V2Stores#ParserConfig.FIELDS.schema) is
        not given, as well as the schematized parser used when [schema](https://cloud.google.com/healthcare-api/docs/reference/rest/v1/projects.locations.datasets.hl7V2Stores#ParserConfig.FIELDS.schema) is specified. This field
        is immutable after HL7v2 store creation.
      choices:
      - arg_value: v1
        enum_value: V1
        help_text:
          The parsedData includes every given non-empty message field except the Field Separator
          (MSH-1) field. As a result, the parsed MSH segment starts with the MSH-2 field and
          the field numbers are off-by-one with respect to the HL7 standard.
      - arg_value: v2
        enum_value: V2
        help_text: |
          The parsedData includes every given non-empty message field.
      - arg_value: v3
        enum_value: V3
        help_text: |
          This version is the same as V2, with the following change.
          The parsedData contains unescaped escaped field separators, component separators,
          sub-component separators, repetition separators, escape characters, and truncation
          characters.
          If [schema](https://cloud.google.com/healthcare-api/docs/reference/rest/v1/projects.locations.datasets.hl7V2Stores#ParserConfig.FIELDS.schema) is specified, the schematized parser uses improved parsing heuristics
          compared to previous versions.

- release_tracks: [GA]

  help_text:
    brief:  Create a Cloud Healthcare API HL7v2 store.
    description: |
      Create a Cloud Healthcare API HL7v2 store.
    examples: |
      To create a HL7v2 store called ``test-hl7v2-store'', run:

        $ {command} test-hl7v2-store --dataset=test-dataset

      To create a HL7v2 store with two Cloud Pub/Sub topics ``test-pubsub-topic1'' and ``test-pubsub-topic2'' with corresponding filters, run:

        $ {command} test-hl7v2-store --dataset=test-dataset --notification-config=pubsub-topic=projects/my-project/topics/test-pubsub-topic1,filter="labels.priority=high" --notification-config=pubsub-topic=projects/my-project/topics/test-pubsub-topic2,filter=PatientId("123456", "MRN")

  request:
    collection: healthcare.projects.locations.datasets.hl7V2Stores
    GA:
      api_version: v1

  arguments:
    resource:
      help_text: Cloud Healthcare API HL7v2 store to create.
      spec: !REF googlecloudsdk.command_lib.healthcare.resources:hl7v2_store

    params:
    - api_field: hl7V2Store.notificationConfigs
      arg_name: notification-config
      help_text: |
        A list of notification configs. Each configuration uses a filter to determine whether to
        publish a message (both Ingest & Create) on the corresponding notification destination.
        Only the message name is sent as part of the notification. Supplied by the client.

        See https://cloud.google.com/appengine/docs/standard/python/search/query_strings for the
        syntax of the filter.

        Note: A topic must be created before publishing or subscribing to it. For instructions
        on creating topics, refer to: https://cloud.google.com/pubsub/docs/admin#create_a_topic
      type:
        arg_dict:
          flatten: false
          spec:
          - api_field: pubsubTopic
            arg_name: pubsub-topic
          - api_field: filter
            arg_name: filter
            required: false

    - api_field: hl7V2Store.parserConfig.version
      arg_name: parser-version
      help_text: |
        Immutable. Determines the version of both the default parser to be used when [schema](https://cloud.google.com/healthcare-api/docs/reference/rest/v1/projects.locations.datasets.hl7V2Stores#ParserConfig.FIELDS.schema) is
        not given, as well as the schematized parser used when [schema](https://cloud.google.com/healthcare-api/docs/reference/rest/v1/projects.locations.datasets.hl7V2Stores#ParserConfig.FIELDS.schema) is specified. This field
        is immutable after HL7v2 store creation.
      choices:
      - arg_value: v1
        enum_value: V1
        help_text:
          The parsedData includes every given non-empty message field except the Field Separator
          (MSH-1) field. As a result, the parsed MSH segment starts with the MSH-2 field and
          the field numbers are off-by-one with respect to the HL7 standard.
      - arg_value: v2
        enum_value: V2
        help_text: |
          The parsedData includes every given non-empty message field.
      - arg_value: v3
        enum_value: V3
        help_text: |
          This version is the same as V2, with the following change.
          The parsedData contains unescaped escaped field separators, component separators,
          sub-component separators, repetition separators, escape characters, and truncation
          characters.
          If [schema](https://cloud.google.com/healthcare-api/docs/reference/rest/v1/projects.locations.datasets.hl7V2Stores#ParserConfig.FIELDS.schema) is specified, the schematized parser uses improved parsing heuristics
          compared to previous versions.
