- release_tracks: [ALPHA, BETA, GA]

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

        $ {command} test-fhir-store --dataset=test-dataset --version=r4

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

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

  request:
    collection: healthcare.projects.locations.datasets.fhirStores
    ALPHA:
      api_version: v1alpha2
    BETA:
      api_version: v1beta1
    GA:
      api_version: v1

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

    params:
    - arg_name: version
      release_tracks: [ALPHA, BETA]
      api_field: fhirStore.version
      choices:
      - arg_value: dstu2
        enum_value: DSTU2
        help_text: |
          Draft Standard for Trial Use, [Release 2](https://www.hl7.org/fhir/DSTU2)
      - arg_value: stu3
        enum_value: STU3
        help_text: |
          Standard for Trial Use, [Release 3](https://www.hl7.org/fhir/STU3)
      - arg_value: r4
        enum_value: R4
        help_text: |
          [Release 4](https://www.hl7.org/fhir/R4)
      help_text: |
        The FHIR specification version that this FHIR store supports natively. This field is
        immutable after store creation. Requests are rejected if they contain FHIR resources of a
        different version. An empty value is treated as STU3.
    - arg_name: version
      release_tracks: [GA]
      required: true
      api_field: fhirStore.version
      choices:
      - arg_value: dstu2
        enum_value: DSTU2
        help_text: |
          Draft Standard for Trial Use, [Release 2](https://www.hl7.org/fhir/DSTU2)
      - arg_value: stu3
        enum_value: STU3
        help_text: |
          Standard for Trial Use, [Release 3](https://www.hl7.org/fhir/STU3)
      - arg_value: r4
        enum_value: R4
        help_text: |
          [Release 4](https://www.hl7.org/fhir/R4)
      help_text: |
        The FHIR specification version that this FHIR store supports natively. This field is
        immutable after store creation. Requests are rejected if they contain FHIR resources of a
        different version. An empty value is treated as STU3.
    - arg_name: disable-referential-integrity
      api_field: fhirStore.disableReferentialIntegrity
      action: store_true
      default: false
      help_text: |
        Whether to disable referential integrity in this FHIR store.
        Default value is false, meaning that the API will enforce referential
        integrity and fail the requests that will result in inconsistent
        state in the FHIR store. When this field is set to true, the API
        will skip referential integrity check. This field is immutable after
        store creation.
    - arg_name: disable-resource-versioning
      api_field: fhirStore.disableResourceVersioning
      action: store_true
      default: false
      help_text: |
        Whether to disable resource versioning for this FHIR store. If set to false, which
        is the default behavior, all write operations will cause historical versions to be
        recorded automatically. Historical versions can be fetched through the history APIs,
        but cannot be updated. This field is immutable after store creation.
    - arg_name: enable-update-create
      api_field: fhirStore.enableUpdateCreate
      action: store_true
      default: false
      help_text: |
        Whether this FHIR store has the [updateCreate]
        (https://www.hl7.org/fhir/capabilitystatement-definitions.html#CapabilityStatement.rest.resource.updateCreate)
        capability. Determines if the client can use an Update operation to create
        a new resource with a client-specified ID. If false, all IDs are
        server-assigned through the Create operation and attempts to Update
        a non-existent resource will return errors.
    - arg_name: pubsub-topic
      api_field: fhirStore.notificationConfig.pubsubTopic
      help_text: |
        Google Cloud Pub/Sub topic to send updates to.

        Note, a topic needs to 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
    - arg_name: enable-history-modifications
      release_tracks: [ALPHA, BETA]
      api_field: fhirStore.enableHistoryModifications
      action: store_true
      default: false
      help_text: |
        Whether this FHIR store has history modifications enabled.
        Enabling history modifications is required to use FHIR history bundles
        with the
        [executeBundle](https://cloud.google.com/healthcare-api/docs/reference/rest/v1beta1/projects.locations.datasets.fhirStores.fhir/executeBundle)
        and
        [importHistory](https://cloud.google.com/healthcare-api/docs/reference/rest/v1beta1/projects.locations.datasets.fhirStores/importHistory)
        APIs.
