{ "version": "v1beta1", "resources": { "projects": { "resources": { "locations": { "methods": { "list": { "id": "healthcare.projects.locations.list", "path": "v1beta1/{+name}/locations", "flatPath": "v1beta1/projects/{projectsId}/locations", "httpMethod": "GET", "parameters": { "name": { "description": "The resource that owns the locations collection, if applicable.", "pattern": "^projects/[^/]+$", "location": "path", "required": true, "type": "string" }, "filter": { "description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", "location": "query", "type": "string" }, "pageSize": { "description": "The maximum number of results to return. If not set, the service selects a default.", "location": "query", "type": "integer", "format": "int32" }, "pageToken": { "description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", "location": "query", "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "ListLocationsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Lists information about the supported locations for this service." }, "get": { "id": "healthcare.projects.locations.get", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}", "httpMethod": "GET", "parameters": { "name": { "description": "Resource name for the location.", "pattern": "^projects/[^/]+/locations/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Location" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets information about a location." } }, "resources": { "datasets": { "methods": { "setIamPolicy": { "id": "healthcare.projects.locations.datasets.setIamPolicy", "path": "v1beta1/{+resource}:setIamPolicy", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}:setIamPolicy", "httpMethod": "POST", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "resource" ], "request": { "$ref": "SetIamPolicyRequest" }, "response": { "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors." }, "getIamPolicy": { "id": "healthcare.projects.locations.datasets.getIamPolicy", "path": "v1beta1/{+resource}:getIamPolicy", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}:getIamPolicy", "httpMethod": "GET", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "location": "path", "required": true, "type": "string" }, "options.requestedPolicyVersion": { "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", "location": "query", "type": "integer", "format": "int32" } }, "parameterOrder": [ "resource" ], "response": { "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set." }, "testIamPermissions": { "id": "healthcare.projects.locations.datasets.testIamPermissions", "path": "v1beta1/{+resource}:testIamPermissions", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}:testIamPermissions", "httpMethod": "POST", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "resource" ], "request": { "$ref": "TestIamPermissionsRequest" }, "response": { "$ref": "TestIamPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning." }, "create": { "id": "healthcare.projects.locations.datasets.create", "path": "v1beta1/{+parent}/datasets", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets", "httpMethod": "POST", "parameters": { "parent": { "description": "Required. The name of the project where the server creates the dataset. For example, `projects/{project_id}/locations/{location_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+$", "location": "path", "required": true, "type": "string" }, "datasetId": { "description": "Required. The ID of the dataset that is being created. The string must match the following regex: `[\\p{L}\\p{N}_\\-\\.]{1,256}`.", "location": "query", "type": "string" } }, "parameterOrder": [ "parent" ], "request": { "$ref": "Dataset" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Creates a new health dataset. Results are returned through the Operation interface which returns either an `Operation.response` which contains a Dataset or `Operation.error`. The metadata field type is OperationMetadata." }, "list": { "id": "healthcare.projects.locations.datasets.list", "path": "v1beta1/{+parent}/datasets", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. The name of the project whose datasets should be listed. For example, `projects/{project_id}/locations/{location_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+$", "location": "path", "required": true, "type": "string" }, "pageSize": { "description": "The maximum number of items to return. If not specified, 100 is used. May not be larger than 1000.", "location": "query", "type": "integer", "format": "int32" }, "pageToken": { "description": "The next_page_token value returned from a previous List request, if any.", "location": "query", "type": "string" } }, "parameterOrder": [ "parent" ], "response": { "$ref": "ListDatasetsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Lists the health datasets in the current project." }, "delete": { "id": "healthcare.projects.locations.datasets.delete", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}", "httpMethod": "DELETE", "parameters": { "name": { "description": "Required. The name of the dataset to delete. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Deletes the specified health dataset and all data contained in the dataset. Deleting a dataset does not affect the sources from which the dataset was imported (if any)." }, "get": { "id": "healthcare.projects.locations.datasets.get", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The name of the dataset to read. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Dataset" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets any metadata associated with a dataset." }, "patch": { "id": "healthcare.projects.locations.datasets.patch", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}", "httpMethod": "PATCH", "parameters": { "name": { "description": "Identifier. Resource name of the dataset, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "location": "path", "required": true, "type": "string" }, "updateMask": { "description": "Required. The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", "location": "query", "type": "string", "format": "google-fieldmask" } }, "parameterOrder": [ "name" ], "request": { "$ref": "Dataset" }, "response": { "$ref": "Dataset" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Updates dataset metadata." }, "deidentify": { "id": "healthcare.projects.locations.datasets.deidentify", "path": "v1beta1/{+sourceDataset}:deidentify", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}:deidentify", "httpMethod": "POST", "parameters": { "sourceDataset": { "description": "Required. Source dataset resource name. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "sourceDataset" ], "request": { "$ref": "DeidentifyDatasetRequest" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Creates a new dataset containing de-identified data from the source dataset. The metadata field type is OperationMetadata. If the request is successful, the response field type is DeidentifySummary. The LRO result may still be successful if de-identification fails for some resources. The new de-identified dataset will not contain these failed resources. The number of resources processed are tracked in Operation.metadata. Error details are logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)." } }, "resources": { "dicomStores": { "methods": { "setIamPolicy": { "id": "healthcare.projects.locations.datasets.dicomStores.setIamPolicy", "path": "v1beta1/{+resource}:setIamPolicy", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}:setIamPolicy", "httpMethod": "POST", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "resource" ], "request": { "$ref": "SetIamPolicyRequest" }, "response": { "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors." }, "getIamPolicy": { "id": "healthcare.projects.locations.datasets.dicomStores.getIamPolicy", "path": "v1beta1/{+resource}:getIamPolicy", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}:getIamPolicy", "httpMethod": "GET", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "options.requestedPolicyVersion": { "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", "location": "query", "type": "integer", "format": "int32" } }, "parameterOrder": [ "resource" ], "response": { "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set." }, "testIamPermissions": { "id": "healthcare.projects.locations.datasets.dicomStores.testIamPermissions", "path": "v1beta1/{+resource}:testIamPermissions", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}:testIamPermissions", "httpMethod": "POST", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "resource" ], "request": { "$ref": "TestIamPermissionsRequest" }, "response": { "$ref": "TestIamPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning." }, "deidentify": { "id": "healthcare.projects.locations.datasets.dicomStores.deidentify", "path": "v1beta1/{+sourceStore}:deidentify", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}:deidentify", "httpMethod": "POST", "parameters": { "sourceStore": { "description": "Required. Source DICOM store resource name. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "sourceStore" ], "request": { "$ref": "DeidentifyDicomStoreRequest" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "De-identifies data from the source store and writes it to the destination store. The metadata field type is OperationMetadata. If the request is successful, the response field type is DeidentifyDicomStoreSummary. The LRO result may still be successful if de-identification fails for some DICOM instances. The output DICOM store will not contain these failed resources. The number of resources processed are tracked in Operation.metadata. Error details are logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)." }, "setBlobStorageSettings": { "id": "healthcare.projects.locations.datasets.dicomStores.setBlobStorageSettings", "path": "v1beta1/{+resource}:setBlobStorageSettings", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}:setBlobStorageSettings", "httpMethod": "POST", "parameters": { "resource": { "description": "Required. The path of the resource to update the blob storage settings in the format of `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}`, `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}/series/{seriesUID}/`, or `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}/series/{seriesUID}/instances/{instanceUID}`. If `filter_config` is specified, set the value of `resource` to the resource name of a DICOM store in the format `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreID}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "resource" ], "request": { "$ref": "SetBlobStorageSettingsRequest" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "SetBlobStorageSettings sets the blob storage settings of the specified resources." }, "create": { "id": "healthcare.projects.locations.datasets.dicomStores.create", "path": "v1beta1/{+parent}/dicomStores", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores", "httpMethod": "POST", "parameters": { "parent": { "description": "Required. The name of the dataset this DICOM store belongs to.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomStoreId": { "description": "Required. The ID of the DICOM store that is being created. Any string value up to 256 characters in length.", "location": "query", "type": "string" } }, "parameterOrder": [ "parent" ], "request": { "$ref": "DicomStore" }, "response": { "$ref": "DicomStore" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Creates a new DICOM store within the parent dataset." }, "get": { "id": "healthcare.projects.locations.datasets.dicomStores.get", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The resource name of the DICOM store to get.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "DicomStore" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets the specified DICOM store." }, "delete": { "id": "healthcare.projects.locations.datasets.dicomStores.delete", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}", "httpMethod": "DELETE", "parameters": { "name": { "description": "Required. The resource name of the DICOM store to delete.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Deletes the specified DICOM store and removes all images that are contained within it." }, "patch": { "id": "healthcare.projects.locations.datasets.dicomStores.patch", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}", "httpMethod": "PATCH", "parameters": { "name": { "description": "Identifier. Resource name of the DICOM store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "updateMask": { "description": "The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", "location": "query", "type": "string", "format": "google-fieldmask" } }, "parameterOrder": [ "name" ], "request": { "$ref": "DicomStore" }, "response": { "$ref": "DicomStore" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Updates the specified DICOM store." }, "list": { "id": "healthcare.projects.locations.datasets.dicomStores.list", "path": "v1beta1/{+parent}/dicomStores", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. Name of the dataset.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "location": "path", "required": true, "type": "string" }, "pageSize": { "description": "Limit on the number of DICOM stores to return in a single response. If not specified, 100 is used. May not be larger than 1000.", "location": "query", "type": "integer", "format": "int32" }, "pageToken": { "description": "The next_page_token value returned from the previous List request, if any.", "location": "query", "type": "string" }, "filter": { "description": "Restricts stores returned to those matching a filter. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. Only filtering on labels is supported. For example, `labels.key=value`.", "location": "query", "type": "string" } }, "parameterOrder": [ "parent" ], "response": { "$ref": "ListDicomStoresResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Lists the DICOM stores in the given dataset." }, "import": { "id": "healthcare.projects.locations.datasets.dicomStores.import", "path": "v1beta1/{+name}:import", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}:import", "httpMethod": "POST", "parameters": { "name": { "description": "Required. The name of the DICOM store resource into which the data is imported. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "ImportDicomDataRequest" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Imports data into the DICOM store by copying it from the specified source. Errors are logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging). The metadata field type is OperationMetadata." }, "export": { "id": "healthcare.projects.locations.datasets.dicomStores.export", "path": "v1beta1/{+name}:export", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}:export", "httpMethod": "POST", "parameters": { "name": { "description": "Required. The DICOM store resource name from which to export the data. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "ExportDicomDataRequest" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Exports data to the specified destination by copying it from the DICOM store. Errors are also logged to Cloud Logging. For more information, see [Viewing errors in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging). The metadata field type is OperationMetadata." }, "getDICOMStoreMetrics": { "id": "healthcare.projects.locations.datasets.dicomStores.getDICOMStoreMetrics", "path": "v1beta1/{+name}:getDICOMStoreMetrics", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}:getDICOMStoreMetrics", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The resource name of the DICOM store to get metrics for.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "DicomStoreMetrics" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets metrics associated with the DICOM store." }, "searchForStudies": { "id": "healthcare.projects.locations.datasets.dicomStores.searchForStudies", "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomWebPath": { "description": "Required. The path of the SearchForStudies DICOMweb request. For example, `studies`.", "pattern": "^studies$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "dicomWebPath" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "SearchForStudies returns a list of matching studies. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of SearchForStudies, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForStudies, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom)." }, "searchForSeries": { "id": "healthcare.projects.locations.datasets.dicomStores.searchForSeries", "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/series", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomWebPath": { "description": "Required. The path of the SearchForSeries DICOMweb request. For example, `series` or `studies/{study_uid}/series`.", "pattern": "^series$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "dicomWebPath" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "SearchForSeries returns a list of matching series. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of SearchForSeries, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForSeries, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom)." }, "searchForInstances": { "id": "healthcare.projects.locations.datasets.dicomStores.searchForInstances", "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/instances", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomWebPath": { "description": "Required. The path of the SearchForInstancesRequest DICOMweb request. For example, `instances`, `series/{series_uid}/instances`, or `studies/{study_uid}/instances`.", "pattern": "^instances$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "dicomWebPath" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "SearchForInstances returns a list of matching instances. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of SearchForInstances, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForInstances, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom)." }, "storeInstances": { "id": "healthcare.projects.locations.datasets.dicomStores.storeInstances", "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies", "httpMethod": "POST", "parameters": { "parent": { "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomWebPath": { "description": "Required. The path of the StoreInstances DICOMweb request. For example, `studies/[{study_uid}]`. Note that the `study_uid` is optional.", "pattern": "^studies$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "dicomWebPath" ], "request": { "$ref": "HttpBody" }, "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "StoreInstances stores DICOM instances associated with study instance unique identifiers (SUID). See [Store Transaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.5). For details on the implementation of StoreInstances, see [Store transaction](https://cloud.google.com/healthcare/docs/dicom#store_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call StoreInstances, see [Store DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#store-dicom)." } }, "resources": { "dicomWeb": { "resources": { "studies": { "methods": { "setBlobStorageSettings": { "id": "healthcare.projects.locations.datasets.dicomStores.dicomWeb.studies.setBlobStorageSettings", "path": "v1beta1/{+resource}:setBlobStorageSettings", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}:setBlobStorageSettings", "httpMethod": "POST", "parameters": { "resource": { "description": "Required. The path of the resource to update the blob storage settings in the format of `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}`, `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}/series/{seriesUID}/`, or `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreID}/dicomWeb/studies/{studyUID}/series/{seriesUID}/instances/{instanceUID}`. If `filter_config` is specified, set the value of `resource` to the resource name of a DICOM store in the format `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreID}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+/dicomWeb/studies/.*$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "resource" ], "request": { "$ref": "SetBlobStorageSettingsRequest" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "SetBlobStorageSettings sets the blob storage settings of the specified resources." }, "getStudyMetrics": { "id": "healthcare.projects.locations.datasets.dicomStores.dicomWeb.studies.getStudyMetrics", "path": "v1beta1/{+study}:getStudyMetrics", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}:getStudyMetrics", "httpMethod": "GET", "parameters": { "study": { "description": "Required. The study resource path. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}/dicomWeb/studies/{study_uid}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+/dicomWeb/studies/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "study" ], "response": { "$ref": "StudyMetrics" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "GetStudyMetrics returns metrics for a study." } }, "resources": { "series": { "methods": { "getSeriesMetrics": { "id": "healthcare.projects.locations.datasets.dicomStores.dicomWeb.studies.series.getSeriesMetrics", "path": "v1beta1/{+series}:getSeriesMetrics", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}:getSeriesMetrics", "httpMethod": "GET", "parameters": { "series": { "description": "Required. The series resource path. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}/dicomWeb/studies/{study_uid}/series/{series_uid}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+/dicomWeb/studies/[^/]+/series/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "series" ], "response": { "$ref": "SeriesMetrics" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "GetSeriesMetrics returns metrics for a series." } }, "resources": { "instances": { "methods": { "getStorageInfo": { "id": "healthcare.projects.locations.datasets.dicomStores.dicomWeb.studies.series.instances.getStorageInfo", "path": "v1beta1/{+resource}:getStorageInfo", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}:getStorageInfo", "httpMethod": "GET", "parameters": { "resource": { "description": "Required. The path of the resource for which the storage info is requested (for exaxmple for a DICOM Instance: `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreId}/dicomWeb/studies/{study_uid}/series/{series_uid}/instances/{instance_uid}`)", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+/dicomWeb/studies/[^/]+/series/[^/]+/instances/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "resource" ], "response": { "$ref": "StorageInfo" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "GetStorageInfo returns the storage info of the specified resource." } } } } } } } } }, "studies": { "methods": { "retrieveStudy": { "id": "healthcare.projects.locations.datasets.dicomStores.studies.retrieveStudy", "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomWebPath": { "description": "Required. The path of the RetrieveStudy DICOMweb request. For example, `studies/{study_uid}`.", "pattern": "^studies/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "dicomWebPath" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "RetrieveStudy returns all instances within the given study. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveStudy, see [DICOM study/series/instances](https://cloud.google.com/healthcare/docs/dicom#dicom_studyseriesinstances) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveStudy, see [Retrieve DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-dicom)." }, "retrieveMetadata": { "id": "healthcare.projects.locations.datasets.dicomStores.studies.retrieveMetadata", "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/metadata", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomWebPath": { "description": "Required. The path of the RetrieveStudyMetadata DICOMweb request. For example, `studies/{study_uid}/metadata`.", "pattern": "^studies/[^/]+/metadata$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "dicomWebPath" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "RetrieveStudyMetadata returns instance associated with the given study presented as metadata with the bulk data removed. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveStudyMetadata, see [Metadata resources](https://cloud.google.com/healthcare/docs/dicom#metadata_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveStudyMetadata, see [Retrieve metadata](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-metadata)." }, "searchForSeries": { "id": "healthcare.projects.locations.datasets.dicomStores.studies.searchForSeries", "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomWebPath": { "description": "Required. The path of the SearchForSeries DICOMweb request. For example, `series` or `studies/{study_uid}/series`.", "pattern": "^studies/[^/]+/series$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "dicomWebPath" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "SearchForSeries returns a list of matching series. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of SearchForSeries, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForSeries, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom)." }, "searchForInstances": { "id": "healthcare.projects.locations.datasets.dicomStores.studies.searchForInstances", "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/instances", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomWebPath": { "description": "Required. The path of the SearchForInstancesRequest DICOMweb request. For example, `instances`, `series/{series_uid}/instances`, or `studies/{study_uid}/instances`.", "pattern": "^studies/[^/]+/instances$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "dicomWebPath" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "SearchForInstances returns a list of matching instances. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of SearchForInstances, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForInstances, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom)." }, "delete": { "id": "healthcare.projects.locations.datasets.dicomStores.studies.delete", "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}", "httpMethod": "DELETE", "parameters": { "parent": { "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomWebPath": { "description": "Required. The path of the DeleteStudy request. For example, `studies/{study_uid}`.", "pattern": "^studies/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "dicomWebPath" ], "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "DeleteStudy deletes all instances within the given study using a long running operation. The method returns an Operation which will be marked successful when the deletion is complete. Warning: Instances cannot be inserted into a study that is being deleted by an operation until the operation completes. For samples that show how to call DeleteStudy, see [Delete a study, series, or instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#delete-dicom)." }, "storeInstances": { "id": "healthcare.projects.locations.datasets.dicomStores.studies.storeInstances", "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}", "httpMethod": "POST", "parameters": { "parent": { "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomWebPath": { "description": "Required. The path of the StoreInstances DICOMweb request. For example, `studies/[{study_uid}]`. Note that the `study_uid` is optional.", "pattern": "^studies/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "dicomWebPath" ], "request": { "$ref": "HttpBody" }, "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "StoreInstances stores DICOM instances associated with study instance unique identifiers (SUID). See [Store Transaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.5). For details on the implementation of StoreInstances, see [Store transaction](https://cloud.google.com/healthcare/docs/dicom#store_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call StoreInstances, see [Store DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#store-dicom)." } }, "resources": { "series": { "methods": { "retrieveSeries": { "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.retrieveSeries", "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomWebPath": { "description": "Required. The path of the RetrieveSeries DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}`.", "pattern": "^studies/[^/]+/series/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "dicomWebPath" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "RetrieveSeries returns all instances within the given study and series. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveSeries, see [DICOM study/series/instances](https://cloud.google.com/healthcare/docs/dicom#dicom_studyseriesinstances) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveSeries, see [Retrieve DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-dicom)." }, "retrieveMetadata": { "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.retrieveMetadata", "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/metadata", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomWebPath": { "description": "Required. The path of the RetrieveSeriesMetadata DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/metadata`.", "pattern": "^studies/[^/]+/series/[^/]+/metadata$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "dicomWebPath" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "RetrieveSeriesMetadata returns instance associated with the given study and series, presented as metadata with the bulk data removed. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveSeriesMetadata, see [Metadata resources](https://cloud.google.com/healthcare/docs/dicom#metadata_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveSeriesMetadata, see [Retrieve metadata](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-metadata)." }, "searchForInstances": { "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.searchForInstances", "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomWebPath": { "description": "Required. The path of the SearchForInstancesRequest DICOMweb request. For example, `instances`, `series/{series_uid}/instances`, or `studies/{study_uid}/instances`.", "pattern": "^studies/[^/]+/series/[^/]+/instances$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "dicomWebPath" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "SearchForInstances returns a list of matching instances. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of SearchForInstances, see [Search transaction](https://cloud.google.com/healthcare/docs/dicom#search_transaction) in the Cloud Healthcare API conformance statement. For samples that show how to call SearchForInstances, see [Search for DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#search-dicom)." }, "delete": { "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.delete", "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}", "httpMethod": "DELETE", "parameters": { "parent": { "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomWebPath": { "description": "Required. The path of the DeleteSeries request. For example, `studies/{study_uid}/series/{series_uid}`.", "pattern": "^studies/[^/]+/series/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "dicomWebPath" ], "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "DeleteSeries deletes all instances within the given study and series using a long running operation. The method returns an Operation which will be marked successful when the deletion is complete. Warning: Instances cannot be inserted into a series that is being deleted by an operation until the operation completes. For samples that show how to call DeleteSeries, see [Delete a study, series, or instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#delete-dicom)." } }, "resources": { "instances": { "methods": { "retrieveInstance": { "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.retrieveInstance", "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomWebPath": { "description": "Required. The path of the RetrieveInstance DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}`.", "pattern": "^studies/[^/]+/series/[^/]+/instances/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "dicomWebPath" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "RetrieveInstance returns instance associated with the given study, series, and SOP Instance UID. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveInstance, see [DICOM study/series/instances](https://cloud.google.com/healthcare/docs/dicom#dicom_studyseriesinstances) and [DICOM instances](https://cloud.google.com/healthcare/docs/dicom#dicom_instances) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveInstance, see [Retrieve an instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-instance)." }, "retrieveRendered": { "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.retrieveRendered", "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}/rendered", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomWebPath": { "description": "Required. The path of the RetrieveRenderedInstance DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}/rendered`.", "pattern": "^studies/[^/]+/series/[^/]+/instances/[^/]+/rendered$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "dicomWebPath" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "RetrieveRenderedInstance returns instance associated with the given study, series, and SOP Instance UID in an acceptable Rendered Media Type. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveRenderedInstance, see [Rendered resources](https://cloud.google.com/healthcare/docs/dicom#rendered_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveRenderedInstance, see [Retrieve consumer image formats](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-consumer)." }, "retrieveMetadata": { "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.retrieveMetadata", "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}/metadata", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomWebPath": { "description": "Required. The path of the RetrieveInstanceMetadata DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}/metadata`.", "pattern": "^studies/[^/]+/series/[^/]+/instances/[^/]+/metadata$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "dicomWebPath" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "RetrieveInstanceMetadata returns instance associated with the given study, series, and SOP Instance UID presented as metadata with the bulk data removed. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveInstanceMetadata, see [Metadata resources](https://cloud.google.com/healthcare/docs/dicom#metadata_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveInstanceMetadata, see [Retrieve metadata](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-metadata)." }, "delete": { "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.delete", "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}", "httpMethod": "DELETE", "parameters": { "parent": { "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomWebPath": { "description": "Required. The path of the DeleteInstance request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}`.", "pattern": "^studies/[^/]+/series/[^/]+/instances/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "dicomWebPath" ], "response": { "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "DeleteInstance deletes an instance associated with the given study, series, and SOP Instance UID. Delete requests are equivalent to the GET requests specified in the Retrieve transaction. Study and series search results can take a few seconds to be updated after an instance is deleted using DeleteInstance. For samples that show how to call DeleteInstance, see [Delete a study, series, or instance](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#delete-dicom)." } }, "resources": { "frames": { "methods": { "retrieveFrames": { "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.frames.retrieveFrames", "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}/frames/{framesId}", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomWebPath": { "description": "Required. The path of the RetrieveFrames DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}/frames/{frame_list}`.", "pattern": "^studies/[^/]+/series/[^/]+/instances/[^/]+/frames/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "dicomWebPath" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "RetrieveFrames returns instances associated with the given study, series, SOP Instance UID and frame numbers. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveFrames, see [DICOM frames](https://cloud.google.com/healthcare/docs/dicom#dicom_frames) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveFrames, see [Retrieve DICOM data](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-dicom)." }, "retrieveRendered": { "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.frames.retrieveRendered", "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}/frames/{framesId}/rendered", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomWebPath": { "description": "Required. The path of the RetrieveRenderedFrames DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}/frames/{frame_list}/rendered`.", "pattern": "^studies/[^/]+/series/[^/]+/instances/[^/]+/frames/[^/]+/rendered$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "dicomWebPath" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "RetrieveRenderedFrames returns instances associated with the given study, series, SOP Instance UID and frame numbers in an acceptable Rendered Media Type. See [RetrieveTransaction](http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4). For details on the implementation of RetrieveRenderedFrames, see [Rendered resources](https://cloud.google.com/healthcare/docs/dicom#rendered_resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveRenderedFrames, see [Retrieve consumer image formats](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-consumer)." } } }, "bulkdata": { "methods": { "retrieveBulkdata": { "id": "healthcare.projects.locations.datasets.dicomStores.studies.series.instances.bulkdata.retrieveBulkdata", "path": "v1beta1/{+parent}/dicomWeb/{+dicomWebPath}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dicomStores/{dicomStoresId}/dicomWeb/studies/{studiesId}/series/{seriesId}/instances/{instancesId}/bulkdata/{bulkdataId}/{bulkdataId1}", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "dicomWebPath": { "description": "Required. The path for the `RetrieveBulkdata` DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}/bukdata/{bulkdata_uri}`.", "pattern": "^studies/[^/]+/series/[^/]+/instances/[^/]+/bulkdata/[^/]+/.*$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "dicomWebPath" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Returns uncompressed, unencoded bytes representing the referenced bulkdata tag from an instance. See [Retrieve Transaction] (http://dicom.nema.org/medical/dicom/current/output/html/part18.html#sect_10.4){: .external}. For details on the implementation of RetrieveBulkdata, see [Bulkdata resources](https://cloud.google.com/healthcare/docs/dicom#bulkdata-resources) in the Cloud Healthcare API conformance statement. For samples that show how to call RetrieveBulkdata, see [Retrieve bulkdata](https://cloud.google.com/healthcare/docs/how-tos/dicomweb#retrieve-bulkdata)." } } } } } } } } } } }, "hl7V2Stores": { "methods": { "setIamPolicy": { "id": "healthcare.projects.locations.datasets.hl7V2Stores.setIamPolicy", "path": "v1beta1/{+resource}:setIamPolicy", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}:setIamPolicy", "httpMethod": "POST", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "resource" ], "request": { "$ref": "SetIamPolicyRequest" }, "response": { "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors." }, "getIamPolicy": { "id": "healthcare.projects.locations.datasets.hl7V2Stores.getIamPolicy", "path": "v1beta1/{+resource}:getIamPolicy", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}:getIamPolicy", "httpMethod": "GET", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "location": "path", "required": true, "type": "string" }, "options.requestedPolicyVersion": { "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", "location": "query", "type": "integer", "format": "int32" } }, "parameterOrder": [ "resource" ], "response": { "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set." }, "testIamPermissions": { "id": "healthcare.projects.locations.datasets.hl7V2Stores.testIamPermissions", "path": "v1beta1/{+resource}:testIamPermissions", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}:testIamPermissions", "httpMethod": "POST", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "resource" ], "request": { "$ref": "TestIamPermissionsRequest" }, "response": { "$ref": "TestIamPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning." }, "create": { "id": "healthcare.projects.locations.datasets.hl7V2Stores.create", "path": "v1beta1/{+parent}/hl7V2Stores", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores", "httpMethod": "POST", "parameters": { "parent": { "description": "Required. The name of the dataset this HL7v2 store belongs to.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "location": "path", "required": true, "type": "string" }, "hl7V2StoreId": { "description": "Required. The ID of the HL7v2 store that is being created. The string must match the following regex: `[\\p{L}\\p{N}_\\-\\.]{1,256}`.", "location": "query", "type": "string" } }, "parameterOrder": [ "parent" ], "request": { "$ref": "Hl7V2Store" }, "response": { "$ref": "Hl7V2Store" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Creates a new HL7v2 store within the parent dataset." }, "get": { "id": "healthcare.projects.locations.datasets.hl7V2Stores.get", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The resource name of the HL7v2 store to get.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Hl7V2Store" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets the specified HL7v2 store." }, "delete": { "id": "healthcare.projects.locations.datasets.hl7V2Stores.delete", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}", "httpMethod": "DELETE", "parameters": { "name": { "description": "Required. The resource name of the HL7v2 store to delete.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Deletes the specified HL7v2 store and removes all messages that it contains." }, "list": { "id": "healthcare.projects.locations.datasets.hl7V2Stores.list", "path": "v1beta1/{+parent}/hl7V2Stores", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. Name of the dataset.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "location": "path", "required": true, "type": "string" }, "pageSize": { "description": "Limit on the number of HL7v2 stores to return in a single response. If not specified, 100 is used. May not be larger than 1000.", "location": "query", "type": "integer", "format": "int32" }, "pageToken": { "description": "The next_page_token value returned from the previous List request, if any.", "location": "query", "type": "string" }, "filter": { "description": "Restricts stores returned to those matching a filter. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. Only filtering on labels is supported. For example, `labels.key=value`.", "location": "query", "type": "string" } }, "parameterOrder": [ "parent" ], "response": { "$ref": "ListHl7V2StoresResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Lists the HL7v2 stores in the given dataset." }, "patch": { "id": "healthcare.projects.locations.datasets.hl7V2Stores.patch", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}", "httpMethod": "PATCH", "parameters": { "name": { "description": "Identifier. Resource name of the HL7v2 store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "location": "path", "required": true, "type": "string" }, "updateMask": { "description": "Required. The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", "location": "query", "type": "string", "format": "google-fieldmask" } }, "parameterOrder": [ "name" ], "request": { "$ref": "Hl7V2Store" }, "response": { "$ref": "Hl7V2Store" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Updates the HL7v2 store." }, "export": { "id": "healthcare.projects.locations.datasets.hl7V2Stores.export", "path": "v1beta1/{+name}:export", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}:export", "httpMethod": "POST", "parameters": { "name": { "description": "Required. The name of the source HL7v2 store, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7v2Stores/{hl7v2_store_id}`", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "ExportMessagesRequest" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Exports the messages to a destination. To filter messages to be exported, define a filter using the start and end time, relative to the message generation time (MSH.7). This API returns an Operation that can be used to track the status of the job by calling GetOperation. Immediate fatal errors appear in the error field. Otherwise, when the operation finishes, a detailed response of type ExportMessagesResponse is returned in the response field. The metadata field type for this operation is OperationMetadata." }, "import": { "id": "healthcare.projects.locations.datasets.hl7V2Stores.import", "path": "v1beta1/{+name}:import", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}:import", "httpMethod": "POST", "parameters": { "name": { "description": "Required. The name of the target HL7v2 store, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7v2Stores/{hl7v2_store_id}`", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "ImportMessagesRequest" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Import messages to the HL7v2 store by loading data from the specified sources. This method is optimized to load large quantities of data using import semantics that ignore some HL7v2 store configuration options and are not suitable for all use cases. It is primarily intended to load data into an empty HL7v2 store that is not being used by other clients. An existing message will be overwritten if a duplicate message is imported. A duplicate message is a message with the same raw bytes as a message that already exists in this HL7v2 store. When a message is overwritten, its labels will also be overwritten. The import operation is idempotent unless the input data contains multiple valid messages with the same raw bytes but different labels. In that case, after the import completes, the store contains exactly one message with those raw bytes but there is no ordering guarantee on which version of the labels it has. The operation result counters do not count duplicated raw bytes as an error and count one success for each message in the input, which might result in a success count larger than the number of messages in the HL7v2 store. If some messages fail to import, for example due to parsing errors, successfully imported messages are not rolled back. This method returns an Operation that can be used to track the status of the import by calling GetOperation. Immediate fatal errors appear in the error field, errors are also logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). Otherwise, when the operation finishes, a response of type ImportMessagesResponse is returned in the response field. The metadata field type for this operation is OperationMetadata." }, "getHL7v2StoreMetrics": { "id": "healthcare.projects.locations.datasets.hl7V2Stores.getHL7v2StoreMetrics", "path": "v1beta1/{+name}:getHL7v2StoreMetrics", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}:getHL7v2StoreMetrics", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The resource name of the HL7v2 store to get metrics for, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Hl7V2StoreMetrics" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets metrics associated with the HL7v2 store." } }, "resources": { "messages": { "methods": { "ingest": { "id": "healthcare.projects.locations.datasets.hl7V2Stores.messages.ingest", "path": "v1beta1/{+parent}/messages:ingest", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}/messages:ingest", "httpMethod": "POST", "parameters": { "parent": { "description": "Required. The name of the HL7v2 store this message belongs to.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent" ], "request": { "$ref": "IngestMessageRequest" }, "response": { "$ref": "IngestMessageResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Parses and stores an HL7v2 message. This method triggers an asynchronous notification to any Pub/Sub topic configured in Hl7V2Store.Hl7V2NotificationConfig, if the filtering matches the message. If an MLLP adapter is configured to listen to a Pub/Sub topic, the adapter transmits the message when a notification is received. If the method is successful, it generates a response containing an HL7v2 acknowledgment (`ACK`) message. If the method encounters an error, it returns a negative acknowledgment (`NACK`) message. This behavior is suitable for replying to HL7v2 interface systems that expect these acknowledgments." }, "create": { "id": "healthcare.projects.locations.datasets.hl7V2Stores.messages.create", "path": "v1beta1/{+parent}/messages", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}/messages", "httpMethod": "POST", "parameters": { "parent": { "description": "Required. The name of the HL7v2 store this message belongs to.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent" ], "request": { "$ref": "CreateMessageRequest" }, "response": { "$ref": "Message" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Parses and stores an HL7v2 message. This method triggers an asynchronous notification to any Pub/Sub topic configured in Hl7V2Store.Hl7V2NotificationConfig, if the filtering matches the message. If an MLLP adapter is configured to listen to a Pub/Sub topic, the adapter transmits the message when a notification is received." }, "get": { "id": "healthcare.projects.locations.datasets.hl7V2Stores.messages.get", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}/messages/{messagesId}", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The resource name of the HL7v2 message to retrieve.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+/messages/[^/]+$", "location": "path", "required": true, "type": "string" }, "view": { "description": "Specifies which parts of the Message resource to return in the response. When unspecified, equivalent to FULL.", "location": "query", "type": "string", "enumDescriptions": [ "Not specified, equivalent to FULL for getMessage, equivalent to BASIC for listMessages.", "Server responses include all the message fields except parsed_data, and schematized_data fields.", "Server responses include all the message fields except data and schematized_data fields.", "Server responses include all the message fields.", "Server responses include all the message fields except data and parsed_data fields.", "Server responses include only the name field." ], "enum": [ "MESSAGE_VIEW_UNSPECIFIED", "RAW_ONLY", "PARSED_ONLY", "FULL", "SCHEMATIZED_ONLY", "BASIC" ] } }, "parameterOrder": [ "name" ], "response": { "$ref": "Message" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets an HL7v2 message." }, "batchGet": { "id": "healthcare.projects.locations.datasets.hl7V2Stores.messages.batchGet", "path": "v1beta1/{+parent}/messages:batchGet", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}/messages:batchGet", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. Name of the HL7v2 store to retrieve messages from, in the format: `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7v2Stores/{hl7v2_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "location": "path", "required": true, "type": "string" }, "ids": { "description": "The resource id of the HL7v2 messages to retrieve in the format: `{message_id}`, where the full resource name is `{parent}/messages/{message_id}` A maximum of 100 messages can be retrieved in a batch. All 'ids' have to be under parent.", "location": "query", "repeated": true, "type": "string" }, "view": { "description": "Specifies the parts of the Messages resource to return in the response. When unspecified, equivalent to BASIC.", "location": "query", "type": "string", "enumDescriptions": [ "Not specified, equivalent to FULL for getMessage, equivalent to BASIC for listMessages.", "Server responses include all the message fields except parsed_data, and schematized_data fields.", "Server responses include all the message fields except data and schematized_data fields.", "Server responses include all the message fields.", "Server responses include all the message fields except data and parsed_data fields.", "Server responses include only the name field." ], "enum": [ "MESSAGE_VIEW_UNSPECIFIED", "RAW_ONLY", "PARSED_ONLY", "FULL", "SCHEMATIZED_ONLY", "BASIC" ] } }, "parameterOrder": [ "parent" ], "response": { "$ref": "BatchGetMessagesResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets multiple messages in the given HL7v2 store." }, "delete": { "id": "healthcare.projects.locations.datasets.hl7V2Stores.messages.delete", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}/messages/{messagesId}", "httpMethod": "DELETE", "parameters": { "name": { "description": "Required. The resource name of the HL7v2 message to delete.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+/messages/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Deletes an HL7v2 message." }, "list": { "id": "healthcare.projects.locations.datasets.hl7V2Stores.messages.list", "path": "v1beta1/{+parent}/messages", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}/messages", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. Name of the HL7v2 store to retrieve messages from.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "location": "path", "required": true, "type": "string" }, "pageSize": { "description": "Limit on the number of messages to return in a single response. If not specified, 100 is used. May not be larger than 1000.", "location": "query", "type": "integer", "format": "int32" }, "pageToken": { "description": "The next_page_token value returned from the previous List request, if any.", "location": "query", "type": "string" }, "filter": { "description": "Restricts messages returned to those matching a filter. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. Fields/functions available for filtering are: * `message_type`, from the MSH-9.1 field. For example, `NOT message_type = \"ADT\"`. * `send_date` or `sendDate`, the YYYY-MM-DD date the message was sent in the dataset's time_zone, from the MSH-7 segment. For example, `send_date \u003c \"2017-01-02\"`. * `send_time`, the timestamp when the message was sent, using the RFC3339 time format for comparisons, from the MSH-7 segment. For example, `send_time \u003c \"2017-01-02T00:00:00-05:00\"`. * `create_time`, the timestamp when the message was created in the HL7v2 store. Use the RFC3339 time format for comparisons. For example, `create_time \u003c \"2017-01-02T00:00:00-05:00\"`. * `send_facility`, the care center that the message came from, from the MSH-4 segment. For example, `send_facility = \"ABC\"`. * `PatientId(value, type)`, which matches if the message lists a patient having an ID of the given value and type in the PID-2, PID-3, or PID-4 segments. For example, `PatientId(\"123456\", \"MRN\")`. * `labels.x`, a string value of the label with key `x` as set using the Message.labels map. For example, `labels.\"priority\"=\"high\"`. The operator `:*` can be used to assert the existence of a label. For example, `labels.\"priority\":*`.", "location": "query", "type": "string" }, "orderBy": { "description": "Orders messages returned by the specified order_by clause. Syntax: https://cloud.google.com/apis/design/design_patterns#sorting_order Fields available for ordering are: * `send_time`", "location": "query", "type": "string" }, "view": { "description": "Specifies the parts of the Message to return in the response. When unspecified, equivalent to BASIC. Setting this to anything other than BASIC with a `page_size` larger than the default can generate a large response, which impacts the performance of this method.", "location": "query", "type": "string", "enumDescriptions": [ "Not specified, equivalent to FULL for getMessage, equivalent to BASIC for listMessages.", "Server responses include all the message fields except parsed_data, and schematized_data fields.", "Server responses include all the message fields except data and schematized_data fields.", "Server responses include all the message fields.", "Server responses include all the message fields except data and parsed_data fields.", "Server responses include only the name field." ], "enum": [ "MESSAGE_VIEW_UNSPECIFIED", "RAW_ONLY", "PARSED_ONLY", "FULL", "SCHEMATIZED_ONLY", "BASIC" ] } }, "parameterOrder": [ "parent" ], "response": { "$ref": "ListMessagesResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Lists all the messages in the given HL7v2 store with support for filtering. Note: HL7v2 messages are indexed asynchronously, so there might be a slight delay between the time a message is created and when it can be found through a filter." }, "patch": { "id": "healthcare.projects.locations.datasets.hl7V2Stores.messages.patch", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/hl7V2Stores/{hl7V2StoresId}/messages/{messagesId}", "httpMethod": "PATCH", "parameters": { "name": { "description": "Output only. Resource name of the Message, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7_v2_store_id}/messages/{message_id}`. Assigned by the server.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+/messages/[^/]+$", "location": "path", "required": true, "type": "string" }, "updateMask": { "description": "Required. The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", "location": "query", "type": "string", "format": "google-fieldmask" } }, "parameterOrder": [ "name" ], "request": { "$ref": "Message" }, "response": { "$ref": "Message" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Update the message. The contents of the message in Message.data and data extracted from the contents such as Message.create_time can't be altered. Only the Message.labels field is allowed to be updated. The labels in the request are merged with the existing set of labels. Existing labels with the same keys are updated." } } } } }, "fhirStores": { "methods": { "setIamPolicy": { "id": "healthcare.projects.locations.datasets.fhirStores.setIamPolicy", "path": "v1beta1/{+resource}:setIamPolicy", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:setIamPolicy", "httpMethod": "POST", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "resource" ], "request": { "$ref": "SetIamPolicyRequest" }, "response": { "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors." }, "getIamPolicy": { "id": "healthcare.projects.locations.datasets.fhirStores.getIamPolicy", "path": "v1beta1/{+resource}:getIamPolicy", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:getIamPolicy", "httpMethod": "GET", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "options.requestedPolicyVersion": { "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", "location": "query", "type": "integer", "format": "int32" } }, "parameterOrder": [ "resource" ], "response": { "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set." }, "testIamPermissions": { "id": "healthcare.projects.locations.datasets.fhirStores.testIamPermissions", "path": "v1beta1/{+resource}:testIamPermissions", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:testIamPermissions", "httpMethod": "POST", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "resource" ], "request": { "$ref": "TestIamPermissionsRequest" }, "response": { "$ref": "TestIamPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning." }, "deidentify": { "id": "healthcare.projects.locations.datasets.fhirStores.deidentify", "path": "v1beta1/{+sourceStore}:deidentify", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:deidentify", "httpMethod": "POST", "parameters": { "sourceStore": { "description": "Required. Source FHIR store resource name. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "sourceStore" ], "request": { "$ref": "DeidentifyFhirStoreRequest" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "De-identifies data from the source store and writes it to the destination store. The metadata field type is OperationMetadata. If the request is successful, the response field type is DeidentifyFhirStoreSummary. The number of resources processed are tracked in Operation.metadata. Error details are logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)." }, "create": { "id": "healthcare.projects.locations.datasets.fhirStores.create", "path": "v1beta1/{+parent}/fhirStores", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores", "httpMethod": "POST", "parameters": { "parent": { "description": "Required. The name of the dataset this FHIR store belongs to.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "location": "path", "required": true, "type": "string" }, "fhirStoreId": { "description": "Required. The ID of the FHIR store that is being created. The string must match the following regex: `[\\p{L}\\p{N}_\\-\\.]{1,256}`.", "location": "query", "type": "string" } }, "parameterOrder": [ "parent" ], "request": { "$ref": "FhirStore" }, "response": { "$ref": "FhirStore" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Creates a new FHIR store within the parent dataset." }, "get": { "id": "healthcare.projects.locations.datasets.fhirStores.get", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The resource name of the FHIR store to get.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "FhirStore" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets the configuration of the specified FHIR store." }, "patch": { "id": "healthcare.projects.locations.datasets.fhirStores.patch", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}", "httpMethod": "PATCH", "parameters": { "name": { "description": "Output only. Identifier. Resource name of the FHIR store, of the form `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "updateMask": { "description": "Required. The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", "location": "query", "type": "string", "format": "google-fieldmask" } }, "parameterOrder": [ "name" ], "request": { "$ref": "FhirStore" }, "response": { "$ref": "FhirStore" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Updates the configuration of the specified FHIR store." }, "delete": { "id": "healthcare.projects.locations.datasets.fhirStores.delete", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}", "httpMethod": "DELETE", "parameters": { "name": { "description": "Required. The resource name of the FHIR store to delete.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Deletes the specified FHIR store and removes all resources within it." }, "list": { "id": "healthcare.projects.locations.datasets.fhirStores.list", "path": "v1beta1/{+parent}/fhirStores", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. Name of the dataset.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "location": "path", "required": true, "type": "string" }, "pageSize": { "description": "Limit on the number of FHIR stores to return in a single response. If not specified, 100 is used. May not be larger than 1000.", "location": "query", "type": "integer", "format": "int32" }, "pageToken": { "description": "The next_page_token value returned from the previous List request, if any.", "location": "query", "type": "string" }, "filter": { "description": "Restricts stores returned to those matching a filter. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. Only filtering on labels is supported, for example `labels.key=value`.", "location": "query", "type": "string" } }, "parameterOrder": [ "parent" ], "response": { "$ref": "ListFhirStoresResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Lists the FHIR stores in the given dataset." }, "import": { "id": "healthcare.projects.locations.datasets.fhirStores.import", "path": "v1beta1/{+name}:import", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:import", "httpMethod": "POST", "parameters": { "name": { "description": "Required. The name of the FHIR store to import FHIR resources to, in the format of `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "ImportResourcesRequest" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Import resources to the FHIR store by loading data from the specified sources. This method is optimized to load large quantities of data using import semantics that ignore some FHIR store configuration options and are not suitable for all use cases. It is primarily intended to load data into an empty FHIR store that is not being used by other clients. In cases where this method is not appropriate, consider using ExecuteBundle to load data. Every resource in the input must contain a client-supplied ID. Each resource is stored using the supplied ID regardless of the enable_update_create setting on the FHIR store. It is strongly advised not to include or encode any sensitive data such as patient identifiers in client-specified resource IDs. Those IDs are part of the FHIR resource path recorded in Cloud Audit Logs and Cloud Pub/Sub notifications. Those IDs can also be contained in reference fields within other resources. The import process does not enforce referential integrity, regardless of the disable_referential_integrity setting on the FHIR store. This allows the import of resources with arbitrary interdependencies without considering grouping or ordering, but if the input data contains invalid references or if some resources fail to be imported, the FHIR store might be left in a state that violates referential integrity. The import process does not trigger Pub/Sub notification or BigQuery streaming update, regardless of how those are configured on the FHIR store. If a resource with the specified ID already exists, the most recent version of the resource is overwritten without creating a new historical version, regardless of the disable_resource_versioning setting on the FHIR store. If transient failures occur during the import, it is possible that successfully imported resources will be overwritten more than once. The import operation is idempotent unless the input data contains multiple valid resources with the same ID but different contents. In that case, after the import completes, the store contains exactly one resource with that ID but there is no ordering guarantee on which version of the contents it will have. The operation result counters do not count duplicate IDs as an error and count one success for each resource in the input, which might result in a success count larger than the number of resources in the FHIR store. This often occurs when importing data organized in bundles produced by Patient-everything where each bundle contains its own copy of a resource such as Practitioner that might be referred to by many patients. If some resources fail to import, for example due to parsing errors, successfully imported resources are not rolled back. The location and format of the input data are specified by the parameters in ImportResourcesRequest. Note that if no format is specified, this method assumes the `BUNDLE` format. When using the `BUNDLE` format this method ignores the `Bundle.type` field, except that `history` bundles are rejected, and does not apply any of the bundle processing semantics for batch or transaction bundles. Unlike in ExecuteBundle, transaction bundles are not executed as a single transaction and bundle-internal references are not rewritten. The bundle is treated as a collection of resources to be written as provided in `Bundle.entry.resource`, ignoring `Bundle.entry.request`. As an example, this allows the import of `searchset` bundles produced by a FHIR search or Patient-everything operation. This method returns an Operation that can be used to track the status of the import by calling GetOperation. Immediate fatal errors appear in the error field, errors are also logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). Otherwise, when the operation finishes, a detailed response of type ImportResourcesResponse is returned in the response field. The metadata field type for this operation is OperationMetadata." }, "export": { "id": "healthcare.projects.locations.datasets.fhirStores.export", "path": "v1beta1/{+name}:export", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:export", "httpMethod": "POST", "parameters": { "name": { "description": "Required. The name of the FHIR store to export resource from, in the format of `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "ExportResourcesRequest" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Export resources from the FHIR store to the specified destination. This method returns an Operation that can be used to track the status of the export by calling GetOperation. Immediate fatal errors appear in the error field, errors are also logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). Otherwise, when the operation finishes, a detailed response of type ExportResourcesResponse is returned in the response field. The metadata field type for this operation is OperationMetadata." }, "configureSearch": { "id": "healthcare.projects.locations.datasets.fhirStores.configureSearch", "path": "v1beta1/{+name}:configureSearch", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:configureSearch", "httpMethod": "POST", "parameters": { "name": { "description": "Required. The name of the FHIR store to configure, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "ConfigureSearchRequest" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Configure the search parameters for the FHIR store and reindex resources in the FHIR store according to the defined search parameters. The search parameters provided in this request will replace any previous search configuration. The target SearchParameter resources need to exist in the store before calling ConfigureSearch, otherwise an error will occur. This method returns an Operation that can be used to track the progress of the reindexing by calling GetOperation." }, "applyConsents": { "id": "healthcare.projects.locations.datasets.fhirStores.applyConsents", "path": "v1beta1/{+name}:applyConsents", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:applyConsents", "httpMethod": "POST", "parameters": { "name": { "description": "Required. The name of the FHIR store to enforce, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "ApplyConsentsRequest" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Apply the Consent resources for the FHIR store and reindex the underlying resources in the FHIR store according to the aggregate consent. The aggregate consent of the patient in scope in this request replaces any previous call of this method. Any Consent resource change after this operation execution (including deletion) requires you to call ApplyConsents again to have effect. This method returns an Operation that can be used to track the progress of the consent resources that were processed by calling GetOperation. Upon completion, the ApplyConsentsResponse additionally contains the number of resources that was reindexed. Errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). To enforce consent check for data access, `consent_config.access_enforced` must be set to true for the FhirStore." }, "applyAdminConsents": { "id": "healthcare.projects.locations.datasets.fhirStores.applyAdminConsents", "path": "v1beta1/{+name}:applyAdminConsents", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:applyAdminConsents", "httpMethod": "POST", "parameters": { "name": { "description": "Required. The name of the FHIR store to enforce, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "ApplyAdminConsentsRequest" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Applies the admin Consent resources for the FHIR store and reindexes the underlying resources in the FHIR store according to the aggregate consents. This method also updates the `consent_config.enforced_admin_consents` field of the FhirStore unless `validate_only=true` in ApplyAdminConsentsRequest. Any admin Consent resource change after this operation execution (including deletion) requires you to call ApplyAdminConsents again for the change to take effect. This method returns an Operation that can be used to track the progress of the resources that were reindexed, by calling GetOperation. Upon completion, the ApplyAdminConsentsResponse additionally contains the number of resources that were reindexed. If at least one Consent resource contains an error or fails be be enforced for any reason, the method returns an error instead of an Operation. No resources will be reindexed and the `consent_config.enforced_admin_consents` field will be unchanged. To enforce a consent check for data access, `consent_config.access_enforced` must be set to true for the FhirStore." }, "explainDataAccess": { "id": "healthcare.projects.locations.datasets.fhirStores.explainDataAccess", "path": "v1beta1/{+name}:explainDataAccess", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:explainDataAccess", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The name of the FHIR store to enforce, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "resourceId": { "description": "Required. The ID (`{resourceType}/{id}`) of the resource to explain data access on.", "location": "query", "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "ExplainDataAccessResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Explains all the permitted/denied actor, purpose and environment for a given resource." }, "getFHIRStoreMetrics": { "id": "healthcare.projects.locations.datasets.fhirStores.getFHIRStoreMetrics", "path": "v1beta1/{+name}:getFHIRStoreMetrics", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:getFHIRStoreMetrics", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The resource name of the FHIR store to get metrics for.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "FhirStoreMetrics" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets metrics associated with the FHIR store." }, "rollback": { "id": "healthcare.projects.locations.datasets.fhirStores.rollback", "path": "v1beta1/{+name}:rollback", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:rollback", "httpMethod": "POST", "parameters": { "name": { "description": "Required. The name of the FHIR store to rollback, in the format of \"projects/{project_id}/locations/{location_id}/datasets/{dataset_id} /fhirStores/{fhir_store_id}\".", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "RollbackFhirResourcesRequest" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Rolls back resources from the FHIR store to the specified time. This method returns an Operation that can be used to track the status of the rollback by calling GetOperation. Immediate fatal errors appear in the error field, errors are also logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). Otherwise, when the operation finishes, a detailed response of type RollbackFhirResourcesResponse is returned in the response field. The metadata field type for this operation is OperationMetadata." } }, "resources": { "fhir": { "methods": { "create": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.create", "path": "v1beta1/{+parent}/fhir/{+type}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}", "httpMethod": "POST", "parameters": { "parent": { "description": "Required. The name of the FHIR store this resource belongs to.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "type": { "description": "Required. The FHIR resource type to create, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](https://hl7.org/implement/standards/fhir/R4/resourcelist.html)). Must match the resource type in the provided content.", "pattern": "^[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "type" ], "request": { "$ref": "HttpBody" }, "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Creates a FHIR resource. Implements the FHIR standard create interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#create), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#create), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#create)), which creates a new resource with a server-assigned resource ID. Also supports the FHIR standard conditional create interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#ccreate), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#ccreate), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#ccreate)), specified by supplying an `If-None-Exist` header containing a FHIR search query. If no resources match this search query, the server processes the create operation as normal. The request body must contain a JSON-encoded FHIR resource, and the request headers must contain `Content-Type: application/fhir+json`. On success, the response body contains a JSON-encoded representation of the resource as it was created on the server, including the server-assigned resource ID and version ID. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. For samples that show how to call `create`, see [Creating a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#creating_a_fhir_resource)." }, "read": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.read", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The name of the resource to retrieve.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/[^/]+/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets the contents of a FHIR resource. Implements the FHIR standard read interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#read), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#read), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#read)). Also supports the FHIR standard conditional read interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#cread), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#cread), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#cread)) specified by supplying an `If-Modified-Since` header with a date/time value or an `If-None-Match` header with an ETag value. On success, the response body contains a JSON-encoded representation of the resource. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. For samples that show how to call `read`, see [Getting a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#getting_a_fhir_resource)." }, "vread": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.vread", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}/_history/{_historyId}", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The name of the resource version to retrieve.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/[^/]+/[^/]+/_history/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets the contents of a version (current or historical) of a FHIR resource by version ID. Implements the FHIR standard vread interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#vread), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#vread), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#vread)). On success, the response body contains a JSON-encoded representation of the resource. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. For samples that show how to call `vread`, see [Retrieving a FHIR resource version](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#retrieving_a_fhir_resource_version)." }, "delete": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.delete", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}", "httpMethod": "DELETE", "parameters": { "name": { "description": "Required. The name of the resource to delete.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/[^/]+/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Deletes a FHIR resource. Implements the FHIR standard delete interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#delete), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#delete), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#delete)). Note: Unless resource versioning is disabled by setting the disable_resource_versioning flag on the FHIR store, the deleted resources are moved to a history repository that can still be retrieved through vread and related methods, unless they are removed by the purge method. For samples that show how to call `delete`, see [Deleting a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#deleting_a_fhir_resource)." }, "conditionalDelete": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.conditionalDelete", "path": "v1beta1/{+parent}/fhir/{+type}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}", "httpMethod": "DELETE", "parameters": { "parent": { "description": "Required. The name of the FHIR store this resource belongs to.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "type": { "description": "Required. The FHIR resource type to delete, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](https://hl7.org/implement/standards/fhir/R4/resourcelist.html)).", "pattern": "^[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "type" ], "response": { "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Deletes FHIR resources that match a search query. Implements the FHIR standard conditional delete interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#2.1.0.12.1), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#2.21.0.13.1), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#3.1.0.7.1)). If multiple resources match, all matching resources are deleted. Search terms are provided as query parameters following the same pattern as the search method. Not all FHIR resources that match the search query might be deleted because, by default, a maximum of 100 FHIR resources can be deleted. The number of FHIR resources that can be deleted depends on the page size of the returned resources, which you can control using the `_count` query parameter. Even when using `_count`, you can delete a maximum 1,000 FHIR resources per each call of `conditionalDelete`. Note: Unless resource versioning is disabled by setting the disable_resource_versioning flag on the FHIR store, the deleted resources are moved to a history repository that can still be retrieved through vread and related methods, unless they are removed by the purge method. This method requires the`healthcare.fhirStores.searchResources` and `healthcare.fhirResources.delete` permissions on the parent FHIR store. For samples that show how to call `conditionalDelete`, see [Conditionally deleting a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#conditionally_deleting_a_fhir_resource)." }, "update": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.update", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}", "httpMethod": "PUT", "parameters": { "name": { "description": "Required. The name of the resource to update.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/[^/]+/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "HttpBody" }, "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Updates the entire contents of a resource. Implements the FHIR standard update interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#update), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#update), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#update)). If the specified resource does not exist and the FHIR store has enable_update_create set, creates the resource with the client-specified ID. It is strongly advised not to include or encode any sensitive data such as patient identifiers in client-specified resource IDs. Those IDs are part of the FHIR resource path recorded in Cloud Audit Logs and Pub/Sub notifications. Those IDs can also be contained in reference fields within other resources. The request body must contain a JSON-encoded FHIR resource, and the request headers must contain `Content-Type: application/fhir+json`. The resource must contain an `id` element having an identical value to the ID in the REST path of the request. On success, the response body contains a JSON-encoded representation of the updated resource, including the server-assigned version ID. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. For samples that show how to call `update`, see [Updating a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#updating_a_fhir_resource)." }, "conditionalUpdate": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.conditionalUpdate", "path": "v1beta1/{+parent}/fhir/{+type}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}", "httpMethod": "PUT", "parameters": { "parent": { "description": "Required. The name of the FHIR store this resource belongs to.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "type": { "description": "Required. The FHIR resource type to update, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](https://hl7.org/implement/standards/fhir/R4/resourcelist.html)). Must match the resource type in the provided content.", "pattern": "^[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "type" ], "request": { "$ref": "HttpBody" }, "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "If a resource is found based on the search criteria specified in the query parameters, updates the entire contents of that resource. Implements the FHIR standard conditional update interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#2.1.0.10.2), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#cond-update), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#cond-update)). Search terms are provided as query parameters following the same pattern as the search method. If the search criteria identify more than one match, the request returns a `412 Precondition Failed` error. If the search criteria identify zero matches, and the supplied resource body contains an `id`, and the FHIR store has enable_update_create set, creates the resource with the client-specified ID. It is strongly advised not to include or encode any sensitive data such as patient identifiers in client-specified resource IDs. Those IDs are part of the FHIR resource path recorded in Cloud Audit Logs and Pub/Sub notifications. Those IDs can also be contained in reference fields within other resources. If the search criteria identify zero matches, and the supplied resource body does not contain an `id`, the resource is created with a server-assigned ID as per the create method. The request body must contain a JSON-encoded FHIR resource, and the request headers must contain `Content-Type: application/fhir+json`. On success, the response body contains a JSON-encoded representation of the updated resource, including the server-assigned version ID. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. This method requires the`healthcare.fhirStores.searchResources` and `healthcare.fhirResources.update` permissions on the parent FHIR store. For samples that show how to call `conditionalUpdate`, see [Conditionally updating a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#conditionally_updating_a_fhir_resource)." }, "patch": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.patch", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}", "httpMethod": "PATCH", "parameters": { "name": { "description": "Required. The name of the resource to update.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/[^/]+/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "HttpBody" }, "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Updates part of an existing resource by applying the operations specified in a [JSON Patch](http://jsonpatch.com/) document. Implements the FHIR standard patch interaction ([STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#patch), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#patch)). DSTU2 doesn't define a patch method, but the server supports it in the same way it supports STU3. The request body must contain a JSON Patch document, and the request headers must contain `Content-Type: application/json-patch+json`. On success, the response body contains a JSON-encoded representation of the updated resource, including the server-assigned version ID. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. For samples that show how to call `patch`, see [Patching a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#patching_a_fhir_resource)." }, "conditionalPatch": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.conditionalPatch", "path": "v1beta1/{+parent}/fhir/{+type}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}", "httpMethod": "PATCH", "parameters": { "parent": { "description": "Required. The name of the FHIR store this resource belongs to.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "type": { "description": "Required. The FHIR resource type to update, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](https://hl7.org/implement/standards/fhir/R4/resourcelist.html)).", "pattern": "^[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "type" ], "request": { "$ref": "HttpBody" }, "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "If a resource is found based on the search criteria specified in the query parameters, updates part of that resource by applying the operations specified in a [JSON Patch](http://jsonpatch.com/) document. Implements the FHIR standard conditional patch interaction ([STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#patch), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#patch)). DSTU2 doesn't define a conditional patch method, but the server supports it in the same way it supports STU3. Search terms are provided as query parameters following the same pattern as the search method. If the search criteria identify more than one match, the request returns a `412 Precondition Failed` error. The request body must contain a JSON Patch document, and the request headers must contain `Content-Type: application/json-patch+json`. On success, the response body contains a JSON-encoded representation of the updated resource, including the server-assigned version ID. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. This method requires the`healthcare.fhirStores.searchResources` permission on the parent FHIR store and the `healthcare.fhirResources.patch` permission on the requested FHIR store resource. For samples that show how to call `conditionalPatch`, see [Conditionally patching a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#conditionally_patching_a_fhir_resource)." }, "search": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.search", "path": "v1beta1/{+parent}/fhir/_search", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/_search", "httpMethod": "POST", "parameters": { "parent": { "description": "Required. Name of the FHIR store to retrieve resources from.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent" ], "request": { "$ref": "SearchResourcesRequest" }, "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Searches for resources in the given FHIR store according to criteria specified as query parameters. Implements the FHIR standard search interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#search), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#search), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#search)) using the search semantics described in the FHIR Search specification ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/search.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/search.html), [R4](https://hl7.org/implement/standards/fhir/R4/search.html)). Supports four methods of search defined by the specification: * `GET [base]?[parameters]` to search across all resources. * `GET [base]/[type]?[parameters]` to search resources of a specified type. * `POST [base]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method across all resources. * `POST [base]/[type]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method for the specified type. The `GET` and `POST` methods do not support compartment searches. The `POST` method does not support `application/x-www-form-urlencoded` search parameters. On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `searchset`, containing the results of the search. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. The server's capability statement, retrieved through capabilities, indicates what search parameters are supported on each FHIR resource. A list of all search parameters defined by the specification can be found in the FHIR Search Parameter Registry ([STU3](https://hl7.org/implement/standards/fhir/STU3/searchparameter-registry.html), [R4](https://hl7.org/implement/standards/fhir/R4/searchparameter-registry.html)). FHIR search parameters for DSTU2 can be found on each resource's definition page. Supported search modifiers: `:missing`, `:exact`, `:contains`, `:text`, `:in`, `:not-in`, `:above`, `:below`, `:[type]`, `:not`, and `recurse` (DSTU2 and STU3) or `:iterate` (R4). Supported search result parameters: `_sort`, `_count`, `_include`, `_revinclude`, `_summary=text`, `_summary=data`, and `_elements`. The maximum number of search results returned defaults to 100, which can be overridden by the `_count` parameter up to a maximum limit of 1000. The server might return fewer resources than requested to prevent excessively large responses. If there are additional results, the returned `Bundle` contains a link of `relation` \"next\", which has a `_page_token` parameter for an opaque pagination token that can be used to retrieve the next page. Resources with a total size larger than 5MB or a field count larger than 50,000 might not be fully searchable as the server might trim its generated search index in those cases. Note: FHIR resources are indexed asynchronously, so there might be a slight delay between the time a resource is created or changed, and the time when the change reflects in search results. The only exception is resource identifier data, which is indexed synchronously as a special index. As a result, searching using resource identifier is not subject to indexing delay. To use the special synchronous index, the search term for identifier should be in the pattern `identifier=[system]|[value]` or `identifier=[value]`, and any of the following search result parameters can be used: * `_count` * `_include` * `_revinclude` * `_summary` * `_elements` If your query contains any other search parameters, the standard asynchronous index will be used instead. Note that searching against the special index is optimized for resolving a small number of matches. The search isn't optimized if your identifier search criteria matches a large number (i.e. more than 2,000) of resources. For a search query that will match a large number of resources, you can avoiding using the special synchronous index by including an additional `_sort` parameter in your query. Use `_sort=-_lastUpdated` if you want to keep the default sorting order. Note: The special synchronous identifier index are currently disabled for DocumentReference and DocumentManifest searches. For samples and detailed information, see [Searching for FHIR resources](https://cloud.google.com/healthcare/docs/how-tos/fhir-search) and [Advanced FHIR search features](https://cloud.google.com/healthcare/docs/how-tos/fhir-advanced-search)." }, "search-type": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.search-type", "path": "v1beta1/{+parent}/fhir/{resourceType}/_search", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{resourceType}/_search", "httpMethod": "POST", "parameters": { "parent": { "description": "Required. Name of the FHIR store to retrieve resources from.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "resourceType": { "description": "Required. The FHIR resource type to search, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](https://hl7.org/implement/standards/fhir/R4/resourcelist.html)).", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent", "resourceType" ], "request": { "$ref": "SearchResourcesRequest" }, "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Searches for resources in the given FHIR store according to criteria specified as query parameters. Implements the FHIR standard search interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#search), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#search), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#search)) using the search semantics described in the FHIR Search specification ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/search.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/search.html), [R4](https://hl7.org/implement/standards/fhir/R4/search.html)). Supports four methods of search defined by the specification: * `GET [base]?[parameters]` to search across all resources. * `GET [base]/[type]?[parameters]` to search resources of a specified type. * `POST [base]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method across all resources. * `POST [base]/[type]/_search?[parameters]` as an alternate form having the same semantics as the `GET` method for the specified type. The `GET` and `POST` methods do not support compartment searches. The `POST` method does not support `application/x-www-form-urlencoded` search parameters. On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `searchset`, containing the results of the search. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. The server's capability statement, retrieved through capabilities, indicates what search parameters are supported on each FHIR resource. A list of all search parameters defined by the specification can be found in the FHIR Search Parameter Registry ([STU3](https://hl7.org/implement/standards/fhir/STU3/searchparameter-registry.html), [R4](https://hl7.org/implement/standards/fhir/R4/searchparameter-registry.html)). FHIR search parameters for DSTU2 can be found on each resource's definition page. Supported search modifiers: `:missing`, `:exact`, `:contains`, `:text`, `:in`, `:not-in`, `:above`, `:below`, `:[type]`, `:not`, and `recurse` (DSTU2 and STU3) or `:iterate` (R4). Supported search result parameters: `_sort`, `_count`, `_include`, `_revinclude`, `_summary=text`, `_summary=data`, and `_elements`. The maximum number of search results returned defaults to 100, which can be overridden by the `_count` parameter up to a maximum limit of 1000. The server might return fewer resources than requested to prevent excessively large responses. If there are additional results, the returned `Bundle` contains a link of `relation` \"next\", which has a `_page_token` parameter for an opaque pagination token that can be used to retrieve the next page. Resources with a total size larger than 5MB or a field count larger than 50,000 might not be fully searchable as the server might trim its generated search index in those cases. Note: FHIR resources are indexed asynchronously, so there might be a slight delay between the time a resource is created or changed, and the time when the change reflects in search results. The only exception is resource identifier data, which is indexed synchronously as a special index. As a result, searching using resource identifier is not subject to indexing delay. To use the special synchronous index, the search term for identifier should be in the pattern `identifier=[system]|[value]` or `identifier=[value]`, and any of the following search result parameters can be used: * `_count` * `_include` * `_revinclude` * `_summary` * `_elements` If your query contains any other search parameters, the standard asynchronous index will be used instead. Note that searching against the special index is optimized for resolving a small number of matches. The search isn't optimized if your identifier search criteria matches a large number (i.e. more than 2,000) of resources. For a search query that will match a large number of resources, you can avoiding using the special synchronous index by including an additional `_sort` parameter in your query. Use `_sort=-_lastUpdated` if you want to keep the default sorting order. Note: The special synchronous identifier index are currently disabled for DocumentReference and DocumentManifest searches. For samples and detailed information, see [Searching for FHIR resources](https://cloud.google.com/healthcare/docs/how-tos/fhir-search) and [Advanced FHIR search features](https://cloud.google.com/healthcare/docs/how-tos/fhir-advanced-search)." }, "Patient-everything": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.Patient-everything", "path": "v1beta1/{+name}/$everything", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/Patient/{PatientId}/$everything", "httpMethod": "GET", "parameters": { "name": { "description": "Required. Name of the `Patient` resource for which the information is required.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/Patient/[^/]+$", "location": "path", "required": true, "type": "string" }, "start": { "description": "The response includes records subsequent to the start date. The date uses the format YYYY-MM-DD. If no start date is provided, all records prior to the end date are in scope.", "location": "query", "type": "string" }, "end": { "description": "The response includes records prior to the end date. The date uses the format YYYY-MM-DD. If no end date is provided, all records subsequent to the start date are in scope.", "location": "query", "type": "string" }, "_page_token": { "description": "Used to retrieve the next or previous page of results when using pagination. Set `_page_token` to the value of _page_token set in next or previous page links' url. Next and previous page are returned in the response bundle's links field, where `link.relation` is \"previous\" or \"next\". Omit `_page_token` if no previous request has been made.", "location": "query", "type": "string" }, "_count": { "description": "Maximum number of resources in a page. If not specified, 100 is used. May not be larger than 1000.", "location": "query", "type": "integer", "format": "int32" }, "_since": { "description": "If provided, only resources updated after this time are returned. The time uses the format YYYY-MM-DDThh:mm:ss.sss+zz:zz. For example, `2015-02-07T13:28:17.239+02:00` or `2017-01-01T00:00:00Z`. The time must be specified to the second and include a time zone.", "location": "query", "type": "string" }, "_type": { "description": "String of comma-delimited FHIR resource types. If provided, only resources of the specified resource type(s) are returned. Specifying multiple `_type` parameters isn't supported. For example, the result of `_type=Observation&_type=Encounter` is undefined. Use `_type=Observation,Encounter` instead.", "location": "query", "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Retrieves a Patient resource and resources related to that patient. Implements the FHIR extended operation Patient-everything ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/patient-operations.html#everything), [STU3](https://hl7.org/implement/standards/fhir/STU3/patient-operations.html#everything), [R4](https://hl7.org/implement/standards/fhir/R4/patient-operations.html#everything)). On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `searchset`, containing the results of the operation. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. The resources in scope for the response are: * The patient resource itself. * All the resources directly referenced by the patient resource. * Resources directly referencing the patient resource that meet the inclusion criteria. The inclusion criteria are based on the membership rules in the patient compartment definition ([DSTU2](https://hl7.org/fhir/DSTU2/compartment-patient.html), [STU3](http://www.hl7.org/fhir/stu3/compartmentdefinition-patient.html), [R4](https://hl7.org/fhir/R4/compartmentdefinition-patient.html)), which details the eligible resource types and referencing search parameters. For samples that show how to call `Patient-everything`, see [Getting all patient compartment resources](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#getting_all_patient_compartment_resources)." }, "Observation-lastn": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.Observation-lastn", "path": "v1beta1/{+parent}/fhir/Observation/$lastn", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/Observation/$lastn", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. Name of the FHIR store to retrieve resources from.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Retrieves the N most recent `Observation` resources for a subject matching search criteria specified as query parameters, grouped by `Observation.code`, sorted from most recent to oldest. Implements the FHIR extended operation Observation-lastn ([STU3](https://hl7.org/implement/standards/fhir/STU3/observation-operations.html#lastn), [R4](https://hl7.org/implement/standards/fhir/R4/observation-operations.html#lastn)). DSTU2 doesn't define the Observation-lastn method, but the server supports it the same way it supports STU3. Search terms are provided as query parameters following the same pattern as the search method. The following search parameters must be provided: - `subject` or `patient` to specify a subject for the Observation. - `code`, `category` or any of the composite parameters that include `code`. Any other valid Observation search parameters can also be provided. This operation accepts an additional query parameter `max`, which specifies N, the maximum number of Observations to return from each group, with a default of 1. Searches with over 1000 results are rejected. Results are counted before grouping and limiting the results with `max`. To stay within the limit, constrain these searches using Observation search parameters such as `_lastUpdated` or `date`. On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `searchset`, containing the results of the operation. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead." }, "Resource-incoming-references": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.Resource-incoming-references", "path": "v1beta1/{+parent}/fhir/$references", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/$references", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. The name of the FHIR store that holds the target resource.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "target": { "description": "Required. The target whose incoming references are requested. This param is required and must not be empty. It uses the format \"ResourceType/ResourceID\", for example, target=ResourceType/ResourceID.", "location": "query", "type": "string" }, "_page_token": { "description": "Used to retrieve the next page of results when using pagination. Set `_page_token` to the value of _page_token set in next page links' url. Next page are returned in the response bundle's links field, where `link.relation` is \"next\". Omit `_page_token` if no previous request has been made.", "location": "query", "type": "string" }, "_count": { "description": "Maximum number of resources in a page. If not specified, 100 is used. May not be larger than 1000.", "location": "query", "type": "integer", "format": "int32" }, "_summary": { "description": "Used to simplify the representation of the returned resources. `_summary=text` returns only the `text`, `id`, and `meta` top-level fields. `_summary=data` removes the `text` field and returns all other fields. `_summary=false` returns all parts of the resource(s). Either not providing this parameter or providing an empty value to this parameter also returns all parts of the resource(s).", "location": "query", "type": "string" }, "_type": { "description": "String of comma-delimited FHIR resource types. If provided, only resources of the specified resource type(s) are returned. If not provided or an empty value is provided, no filter on the returned resource type(s) is applied.", "location": "query", "type": "string" } }, "parameterOrder": [ "parent" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Lists all the resources that directly refer to the given target FHIR resource. Can also support the case when the target resource doesn't exist, for example, if the target has been deleted. On success, the response body contains a Bundle with type `searchset`, where each entry in the Bundle contains the full content of the resource. If the operation fails, an `OperationOutcome` is returned describing the failure. If the request cannot be mapped to a valid API method on a FHIR store, a generic Google Cloud error might be returned instead." }, "capabilities": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.capabilities", "path": "v1beta1/{+name}/fhir/metadata", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/metadata", "httpMethod": "GET", "parameters": { "name": { "description": "Required. Name of the FHIR store to retrieve the capabilities for.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets the FHIR capability statement ([STU3](https://hl7.org/implement/standards/fhir/STU3/capabilitystatement.html), [R4](https://hl7.org/implement/standards/fhir/R4/capabilitystatement.html)), or the [conformance statement](https://hl7.org/implement/standards/fhir/DSTU2/conformance.html) in the DSTU2 case for the store, which contains a description of functionality supported by the server. Implements the FHIR standard capabilities interaction ([STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#capabilities), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#capabilities)), or the [conformance interaction](https://hl7.org/implement/standards/fhir/DSTU2/http.html#conformance) in the DSTU2 case. On success, the response body contains a JSON-encoded representation of a `CapabilityStatement` resource." }, "executeBundle": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.executeBundle", "path": "v1beta1/{+parent}/fhir", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir", "httpMethod": "POST", "parameters": { "parent": { "description": "Required. Name of the FHIR store in which this bundle will be executed.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent" ], "request": { "$ref": "HttpBody" }, "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Executes all the requests in the given Bundle. Implements the FHIR standard batch/transaction interaction and history operations. ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#transaction), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#transaction), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#transaction)). Supports all interactions within a bundle, except search. This method accepts Bundles of type `batch`, `transaction` and `history`, processing `batch` and `transaction` bundles according to the batch processing rules ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#2.1.0.16.1), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#2.21.0.17.1), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#brules)) and transaction processing rules ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#2.1.0.16.2), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#2.21.0.17.2), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#trules)). The request body must contain a JSON-encoded FHIR `Bundle` resource, and the request headers must contain `Content-Type: application/fhir+json`. For a batch bundle or a successful transaction, the response body contains a JSON-encoded representation of a `Bundle` resource of type `batch-response` or `transaction-response` containing one entry for each entry in the request, with the outcome of processing the entry. In the case of an error for a `transaction` or `history` bundle, the response body contains a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. This method checks permissions for each request in the bundle. The `executeBundle` permission is required to call this method, but you must also grant sufficient permissions to execute the individual requests in the bundle. For example, if the bundle contains a request to create a FHIR resource, the caller must also have been granted the `healthcare.fhirResources.create` permission. `history` bundles also check the `import` permission. You can use audit logs to view the permissions for `executeBundle` and each request in the bundle. For more information, see [Viewing Cloud Audit logs](https://cloud.google.com/healthcare-api/docs/how-tos/audit-logging). For samples that show how to call `executeBundle`, see [Managing FHIR resources using FHIR bundles](https://cloud.google.com/healthcare/docs/how-tos/fhir-bundles)." }, "history": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.history", "path": "v1beta1/{+name}/_history", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}/_history", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The name of the resource to retrieve.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/[^/]+/[^/]+$", "location": "path", "required": true, "type": "string" }, "_count": { "description": "The maximum number of search results on a page. If not specified, 100 is used. May not be larger than 1000.", "location": "query", "type": "integer", "format": "int32" }, "_since": { "description": "Only include resource versions that were created at or after the given instant in time. The instant in time uses the format YYYY-MM-DDThh:mm:ss.sss+zz:zz (for example 2015-02-07T13:28:17.239+02:00 or 2017-01-01T00:00:00Z). The time must be specified to the second and include a time zone.", "location": "query", "type": "string" }, "_at": { "description": "Only include resource versions that were current at some point during the time period specified in the date time value. The date parameter format is yyyy-mm-ddThh:mm:ss[Z|(+|-)hh:mm] Clients may specify any of the following: * An entire year: `_at=2019` * An entire month: `_at=2019-01` * A specific day: `_at=2019-01-20` * A specific second: `_at=2018-12-31T23:59:58Z`", "location": "query", "type": "string" }, "_page_token": { "description": "Used to retrieve the first, previous, next, or last page of resource versions when using pagination. Value should be set to the value of `_page_token` set in next or previous page links' URLs. Next and previous page are returned in the response bundle's links field, where `link.relation` is \"previous\" or \"next\". Omit `_page_token` if no previous request has been made.", "location": "query", "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Lists all the versions of a resource (including the current version and deleted versions) from the FHIR store. Implements the per-resource form of the FHIR standard history interaction ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/http.html#history), [STU3](https://hl7.org/implement/standards/fhir/STU3/http.html#history), [R4](https://hl7.org/implement/standards/fhir/R4/http.html#history)). On success, the response body contains a JSON-encoded representation of a `Bundle` resource of type `history`, containing the version history sorted from most recent to oldest versions. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead. For samples that show how to call `history`, see [Listing FHIR resource versions](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#listing_fhir_resource_versions)." }, "Resource-purge": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.Resource-purge", "path": "v1beta1/{+name}/$purge", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/{fhirId1}/$purge", "httpMethod": "DELETE", "parameters": { "name": { "description": "Required. The name of the resource to purge.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/[^/]+/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Deletes all the historical versions of a resource (excluding the current version) from the FHIR store. To remove all versions of a resource, first delete the current version and then call this method. This is not a FHIR standard operation. For samples that show how to call `Resource-purge`, see [Deleting historical versions of a FHIR resource](https://cloud.google.com/healthcare/docs/how-tos/fhir-resources#deleting_historical_versions_of_a_fhir_resource)." }, "ConceptMap-translate": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.ConceptMap-translate", "path": "v1beta1/{+name}/$translate", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/ConceptMap/{ConceptMapId}/$translate", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The URL for the concept map to use for the translation.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/ConceptMap/[^/]+$", "location": "path", "required": true, "type": "string" }, "code": { "description": "Required. The code to translate.", "location": "query", "type": "string" }, "system": { "description": "Required. The system for the code to be translated.", "location": "query", "type": "string" }, "conceptMapVersion": { "description": "The version of the concept map to use. If unset, the most current version is used.", "location": "query", "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Translates a code from one value set to another using a concept map. You can provide your own concept maps to translate any code system to another code system. Implements the FHIR standard $translate operation ([DSTU2](https://www.hl7.org/fhir/DSTU2/operation-conceptmap-translate.html), [STU3](https://www.hl7.org/fhir/STU3/operation-conceptmap-translate.html), [R4](https://www.hl7.org/fhir/R4/operation-conceptmap-translate.html)). On success, the response body contains a JSON-encoded representation of a FHIR Parameters resource, which includes the translation result. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead." }, "ConceptMap-search-translate": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.ConceptMap-search-translate", "path": "v1beta1/{+parent}/fhir/ConceptMap/$translate", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/ConceptMap/$translate", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. The name for the FHIR store containing the concept map(s) to use for the translation.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "url": { "description": "The canonical url of the concept map to use. If unset, the source and target is used to search for concept maps.", "location": "query", "type": "string" }, "code": { "description": "Required. The code to translate.", "location": "query", "type": "string" }, "system": { "description": "Required. The system for the code to be translated.", "location": "query", "type": "string" }, "source": { "description": "The source value set of the concept map to be used. If unset, target is used to search for concept maps.", "location": "query", "type": "string" }, "target": { "description": "The target value set of the concept map to be used. If unset, source is used to search for concept maps.", "location": "query", "type": "string" }, "conceptMapVersion": { "description": "The version of the concept map to use. If unset, the most current version is used.", "location": "query", "type": "string" } }, "parameterOrder": [ "parent" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Translates a code from one value set to another by searching for appropriate concept maps. Implements the FHIR standard $translate operation ([DSTU2](https://www.hl7.org/fhir/DSTU2/operation-conceptmap-translate.html), [STU3](https://www.hl7.org/fhir/STU3/operation-conceptmap-translate.html), [R4](https://www.hl7.org/fhir/R4/operation-conceptmap-translate.html)). On success, the response body contains a JSON-encoded representation of a FHIR Parameters resource, which includes the translation result. Errors generated by the FHIR store contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead." }, "Resource-validate": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.Resource-validate", "path": "v1beta1/{+parent}/fhir/{+type}/$validate", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/{fhirId}/$validate", "httpMethod": "POST", "parameters": { "parent": { "description": "Required. The name of the FHIR store that holds the profiles being used for validation.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "type": { "description": "Required. The FHIR resource type of the resource being validated. For a complete list, see the FHIR Resource Index ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](http://hl7.org/implement/standards/fhir/STU3/resourcelist.html), or [R4](http://hl7.org/implement/standards/fhir/R4/resourcelist.html)). Must match the resource type in the provided content.", "pattern": "^[^/]+$", "location": "path", "required": true, "type": "string" }, "profile": { "description": "Required. The canonical URL of a profile that this resource should be validated against. For example, to validate a Patient resource against the US Core Patient profile this parameter would be `http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient`. A StructureDefinition with this canonical URL must exist in the FHIR store.", "location": "query", "type": "string" } }, "parameterOrder": [ "parent", "type" ], "request": { "$ref": "HttpBody" }, "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Validates an input FHIR resource's conformance to its profiles and the profiles configured on the FHIR store. Implements the FHIR extended operation $validate ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/resource-operations.html#validate), [STU3](http://hl7.org/implement/standards/fhir/STU3/resource-operations.html#validate), or [R4](http://hl7.org/implement/standards/fhir/R4/resource-operation-validate.html)). The request body must contain a JSON-encoded FHIR resource, and the request headers must contain `Content-Type: application/fhir+json`. The `Parameters` input syntax is not supported. The `profile` query parameter can be used to request that the resource only be validated against a specific profile. If a profile with the given URL cannot be found in the FHIR store then an error is returned. Errors generated by validation contain a JSON-encoded `OperationOutcome` resource describing the reason for the error. If the request cannot be mapped to a valid API method on a FHIR store, a generic GCP error might be returned instead." }, "Consent-enforcement-status": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.Consent-enforcement-status", "path": "v1beta1/{+name}/$consent-enforcement-status", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/Consent/{ConsentId}/$consent-enforcement-status", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The name of the consent resource to find enforcement status, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Consent/{consent_id}`", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/Consent/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Returns the consent enforcement status of a single consent resource. On success, the response body contains a JSON-encoded representation of a `Parameters` (http://hl7.org/fhir/parameters.html) FHIR resource, containing the current enforcement status. Does not support DSTU2." }, "Patient-consent-enforcement-status": { "id": "healthcare.projects.locations.datasets.fhirStores.fhir.Patient-consent-enforcement-status", "path": "v1beta1/{+name}/$consent-enforcement-status", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}/fhir/Patient/{PatientId}/$consent-enforcement-status", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The name of the patient to find enforcement statuses, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Patient/{patient_id}`", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/Patient/[^/]+$", "location": "path", "required": true, "type": "string" }, "_count": { "description": "Optional. The maximum number of results on a page. If not specified, 100 is used. May not be larger than 1000.", "location": "query", "type": "integer", "format": "int32" }, "_page_token": { "description": "Optional. Used to retrieve the first, previous, next, or last page of consent enforcement statuses when using pagination. Value should be set to the value of `_page_token` set in next or previous page links' URLs. Next and previous page are returned in the response bundle's links field, where `link.relation` is \"previous\" or \"next\". Omit `_page_token` if no previous request has been made.", "location": "query", "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "HttpBody" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Returns the consent enforcement status of all consent resources for a patient. On success, the response body contains a JSON-encoded representation of a bundle of `Parameters` (http://hl7.org/fhir/parameters.html) FHIR resources, containing the current enforcement status for each consent resource of the patient. Does not support DSTU2." } } } } }, "annotationStores": { "methods": { "setIamPolicy": { "id": "healthcare.projects.locations.datasets.annotationStores.setIamPolicy", "path": "v1beta1/{+resource}:setIamPolicy", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/annotationStores/{annotationStoresId}:setIamPolicy", "httpMethod": "POST", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "resource" ], "request": { "$ref": "SetIamPolicyRequest" }, "response": { "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors." }, "getIamPolicy": { "id": "healthcare.projects.locations.datasets.annotationStores.getIamPolicy", "path": "v1beta1/{+resource}:getIamPolicy", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/annotationStores/{annotationStoresId}:getIamPolicy", "httpMethod": "GET", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "options.requestedPolicyVersion": { "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", "location": "query", "type": "integer", "format": "int32" } }, "parameterOrder": [ "resource" ], "response": { "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set." }, "testIamPermissions": { "id": "healthcare.projects.locations.datasets.annotationStores.testIamPermissions", "path": "v1beta1/{+resource}:testIamPermissions", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/annotationStores/{annotationStoresId}:testIamPermissions", "httpMethod": "POST", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "resource" ], "request": { "$ref": "TestIamPermissionsRequest" }, "response": { "$ref": "TestIamPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning." }, "create": { "id": "healthcare.projects.locations.datasets.annotationStores.create", "path": "v1beta1/{+parent}/annotationStores", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/annotationStores", "httpMethod": "POST", "parameters": { "parent": { "description": "Required. The name of the dataset this Annotation store belongs to.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "location": "path", "required": true, "type": "string" }, "annotationStoreId": { "description": "Required. The ID of the Annotation store that is being created. The string must match the following regex: `[\\p{L}\\p{N}_\\-\\.]{1,256}`.", "location": "query", "type": "string" } }, "parameterOrder": [ "parent" ], "request": { "$ref": "AnnotationStore" }, "response": { "$ref": "AnnotationStore" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Creates a new Annotation store within the parent dataset." }, "get": { "id": "healthcare.projects.locations.datasets.annotationStores.get", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/annotationStores/{annotationStoresId}", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The resource name of the Annotation store to get.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "AnnotationStore" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets the specified Annotation store or returns NOT_FOUND if it does not exist." }, "delete": { "id": "healthcare.projects.locations.datasets.annotationStores.delete", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/annotationStores/{annotationStoresId}", "httpMethod": "DELETE", "parameters": { "name": { "description": "Required. The resource name of the Annotation store to delete.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Deletes the specified Annotation store and removes all annotations that are contained within it." }, "patch": { "id": "healthcare.projects.locations.datasets.annotationStores.patch", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/annotationStores/{annotationStoresId}", "httpMethod": "PATCH", "parameters": { "name": { "description": "Identifier. Resource name of the Annotation store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "updateMask": { "description": "Required. The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", "location": "query", "type": "string", "format": "google-fieldmask" } }, "parameterOrder": [ "name" ], "request": { "$ref": "AnnotationStore" }, "response": { "$ref": "AnnotationStore" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Updates the specified Annotation store." }, "list": { "id": "healthcare.projects.locations.datasets.annotationStores.list", "path": "v1beta1/{+parent}/annotationStores", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/annotationStores", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. Name of the dataset.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "location": "path", "required": true, "type": "string" }, "pageSize": { "description": "Limit on the number of Annotation stores to return in a single response. If not specified, 100 is used. May not be larger than 1000.", "location": "query", "type": "integer", "format": "int32" }, "pageToken": { "description": "The next_page_token value returned from the previous List request, if any.", "location": "query", "type": "string" }, "filter": { "description": "Restricts stores returned to those matching a filter. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. Only filtering on labels is supported, for example `labels.key=value`.", "location": "query", "type": "string" } }, "parameterOrder": [ "parent" ], "response": { "$ref": "ListAnnotationStoresResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Lists the Annotation stores in the given dataset for a source store." }, "import": { "id": "healthcare.projects.locations.datasets.annotationStores.import", "path": "v1beta1/{+name}:import", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/annotationStores/{annotationStoresId}:import", "httpMethod": "POST", "parameters": { "name": { "description": "Required. The name of the Annotation store to which the server imports annotations, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "ImportAnnotationsRequest" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Import Annotations to the Annotation store by loading data from the specified sources. If the request is successful, a detailed response is returned as of type ImportAnnotationsResponse, contained in the response field when the operation finishes. The metadata field type is OperationMetadata. Errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging))." }, "export": { "id": "healthcare.projects.locations.datasets.annotationStores.export", "path": "v1beta1/{+name}:export", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/annotationStores/{annotationStoresId}:export", "httpMethod": "POST", "parameters": { "name": { "description": "Required. The name of the Annotation store to export annotations to, in the format of `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "ExportAnnotationsRequest" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Export Annotations from the Annotation store. If the request is successful, a detailed response is returned of type ExportAnnotationsResponse, contained in the response field when the operation finishes. The metadata field type is OperationMetadata. Errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging))." }, "evaluate": { "id": "healthcare.projects.locations.datasets.annotationStores.evaluate", "path": "v1beta1/{+name}:evaluate", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/annotationStores/{annotationStoresId}:evaluate", "httpMethod": "POST", "parameters": { "name": { "description": "Required. The Annotation store to compare against `golden_store`, in the format of `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "EvaluateAnnotationStoreRequest" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Evaluate an Annotation store against a ground truth Annotation store. When the operation finishes successfully, a detailed response is returned of type EvaluateAnnotationStoreResponse, contained in the response. The metadata field type is OperationMetadata. Errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging))." } }, "resources": { "annotations": { "methods": { "create": { "id": "healthcare.projects.locations.datasets.annotationStores.annotations.create", "path": "v1beta1/{+parent}/annotations", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/annotationStores/{annotationStoresId}/annotations", "httpMethod": "POST", "parameters": { "parent": { "description": "Required. The name of the Annotation store this annotation belongs to. For example, `projects/my-project/locations/us-central1/datasets/mydataset/annotationStores/myannotationstore`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent" ], "request": { "$ref": "Annotation" }, "response": { "$ref": "Annotation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Creates a new Annotation record. It is valid to create Annotation objects for the same source more than once since a unique ID is assigned to each record by this service." }, "get": { "id": "healthcare.projects.locations.datasets.annotationStores.annotations.get", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/annotationStores/{annotationStoresId}/annotations/{annotationsId}", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The resource name of the Annotation to retrieve.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+/annotations/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Annotation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets an Annotation." }, "delete": { "id": "healthcare.projects.locations.datasets.annotationStores.annotations.delete", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/annotationStores/{annotationStoresId}/annotations/{annotationsId}", "httpMethod": "DELETE", "parameters": { "name": { "description": "Required. The resource name of the Annotation to delete.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+/annotations/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Deletes an Annotation or returns NOT_FOUND if it does not exist." }, "patch": { "id": "healthcare.projects.locations.datasets.annotationStores.annotations.patch", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/annotationStores/{annotationStoresId}/annotations/{annotationsId}", "httpMethod": "PATCH", "parameters": { "name": { "description": "Identifier. Resource name of the Annotation, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}/annotations/{annotation_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+/annotations/[^/]+$", "location": "path", "required": true, "type": "string" }, "updateMask": { "description": "Required. The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", "location": "query", "type": "string", "format": "google-fieldmask" } }, "parameterOrder": [ "name" ], "request": { "$ref": "Annotation" }, "response": { "$ref": "Annotation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Updates the Annotation." }, "list": { "id": "healthcare.projects.locations.datasets.annotationStores.annotations.list", "path": "v1beta1/{+parent}/annotations", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/annotationStores/{annotationStoresId}/annotations", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. Name of the Annotation store to retrieve Annotations from.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/annotationStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "pageSize": { "description": "Limit on the number of Annotations to return in a single response. If not specified, 100 is used. May not be larger than 1000.", "location": "query", "type": "integer", "format": "int32" }, "pageToken": { "description": "The next_page_token value returned from the previous List request, if any.", "location": "query", "type": "string" }, "filter": { "description": "Restricts Annotations returned to those matching a filter. Functions available for filtering are: - `matches(\"annotation_source.cloud_healthcare_source.name\", substring)`. Filter on `cloud_healthcare_source.name`. For example: `matches(\"annotation_source.cloud_healthcare_source.name\", \"some source\")`. - `matches(\"annotation\", substring)`. Filter on all fields of annotation. For example: `matches(\"annotation\", \"some-content\")`. - `type(\"text\")`, `type(\"image\")`, `type(\"resource\")`. Filter on the type of annotation `data`.", "location": "query", "type": "string" }, "view": { "description": "Controls which fields are populated in the response.", "location": "query", "type": "string", "enumDescriptions": [ "Same as BASIC.", "Only `name`, `annotation_source` and `custom_data` fields are populated.", "All fields are populated." ], "enum": [ "ANNOTATION_VIEW_UNSPECIFIED", "ANNOTATION_VIEW_BASIC", "ANNOTATION_VIEW_FULL" ] } }, "parameterOrder": [ "parent" ], "response": { "$ref": "ListAnnotationsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Lists the Annotations in the given Annotation store for a source resource." } } } } }, "consentStores": { "methods": { "setIamPolicy": { "id": "healthcare.projects.locations.datasets.consentStores.setIamPolicy", "path": "v1beta1/{+resource}:setIamPolicy", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}:setIamPolicy", "httpMethod": "POST", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "resource" ], "request": { "$ref": "SetIamPolicyRequest" }, "response": { "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors." }, "getIamPolicy": { "id": "healthcare.projects.locations.datasets.consentStores.getIamPolicy", "path": "v1beta1/{+resource}:getIamPolicy", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}:getIamPolicy", "httpMethod": "GET", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "options.requestedPolicyVersion": { "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", "location": "query", "type": "integer", "format": "int32" } }, "parameterOrder": [ "resource" ], "response": { "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set." }, "testIamPermissions": { "id": "healthcare.projects.locations.datasets.consentStores.testIamPermissions", "path": "v1beta1/{+resource}:testIamPermissions", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}:testIamPermissions", "httpMethod": "POST", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "resource" ], "request": { "$ref": "TestIamPermissionsRequest" }, "response": { "$ref": "TestIamPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning." }, "create": { "id": "healthcare.projects.locations.datasets.consentStores.create", "path": "v1beta1/{+parent}/consentStores", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores", "httpMethod": "POST", "parameters": { "parent": { "description": "Required. The name of the dataset this consent store belongs to.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "location": "path", "required": true, "type": "string" }, "consentStoreId": { "description": "Required. The ID of the consent store to create. The string must match the following regex: `[\\p{L}\\p{N}_\\-\\.]{1,256}`. Cannot be changed after creation.", "location": "query", "type": "string" } }, "parameterOrder": [ "parent" ], "request": { "$ref": "ConsentStore" }, "response": { "$ref": "ConsentStore" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Creates a new consent store in the parent dataset. Attempting to create a consent store with the same ID as an existing store fails with an ALREADY_EXISTS error." }, "get": { "id": "healthcare.projects.locations.datasets.consentStores.get", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The resource name of the consent store to get.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "ConsentStore" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets the specified consent store." }, "delete": { "id": "healthcare.projects.locations.datasets.consentStores.delete", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}", "httpMethod": "DELETE", "parameters": { "name": { "description": "Required. The resource name of the consent store to delete.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Deletes the specified consent store and removes all the consent store's data." }, "patch": { "id": "healthcare.projects.locations.datasets.consentStores.patch", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}", "httpMethod": "PATCH", "parameters": { "name": { "description": "Resource name of the consent store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}`. Cannot be changed after creation.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "updateMask": { "description": "Required. The update mask that applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask. Only the `labels`, `default_consent_ttl`, and `enable_consent_create_on_update` fields are allowed to be updated.", "location": "query", "type": "string", "format": "google-fieldmask" } }, "parameterOrder": [ "name" ], "request": { "$ref": "ConsentStore" }, "response": { "$ref": "ConsentStore" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Updates the specified consent store." }, "list": { "id": "healthcare.projects.locations.datasets.consentStores.list", "path": "v1beta1/{+parent}/consentStores", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. Name of the dataset.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "location": "path", "required": true, "type": "string" }, "pageSize": { "description": "Optional. Limit on the number of consent stores to return in a single response. If not specified, 100 is used. May not be larger than 1000.", "location": "query", "type": "integer", "format": "int32" }, "pageToken": { "description": "Optional. Token to retrieve the next page of results, or empty to get the first page.", "location": "query", "type": "string" }, "filter": { "description": "Optional. Restricts the stores returned to those matching a filter. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. Only filtering on labels is supported. For example, `filter=labels.key=value`.", "location": "query", "type": "string" } }, "parameterOrder": [ "parent" ], "response": { "$ref": "ListConsentStoresResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Lists the consent stores in the specified dataset." }, "checkDataAccess": { "id": "healthcare.projects.locations.datasets.consentStores.checkDataAccess", "path": "v1beta1/{+consentStore}:checkDataAccess", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}:checkDataAccess", "httpMethod": "POST", "parameters": { "consentStore": { "description": "Required. Name of the consent store where the requested data_id is stored, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "consentStore" ], "request": { "$ref": "CheckDataAccessRequest" }, "response": { "$ref": "CheckDataAccessResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Checks if a particular data_id of a User data mapping in the specified consent store is consented for the specified use." }, "queryAccessibleData": { "id": "healthcare.projects.locations.datasets.consentStores.queryAccessibleData", "path": "v1beta1/{+consentStore}:queryAccessibleData", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}:queryAccessibleData", "httpMethod": "POST", "parameters": { "consentStore": { "description": "Required. Name of the consent store to retrieve User data mappings from.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "consentStore" ], "request": { "$ref": "QueryAccessibleDataRequest" }, "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Queries all data_ids that are consented for a specified use in the given consent store and writes them to a specified destination. The returned Operation includes a progress counter for the number of User data mappings processed. If the request is successful, a detailed response is returned of type QueryAccessibleDataResponse, contained in the response field when the operation finishes. The metadata field type is OperationMetadata. Errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). For example, the following sample log entry shows a `failed to evaluate consent policy` error that occurred during a QueryAccessibleData call to consent store `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}`. ```json jsonPayload: { @type: \"type.googleapis.com/google.cloud.healthcare.logging.QueryAccessibleDataLogEntry\" error: { code: 9 message: \"failed to evaluate consent policy\" } resourceName: \"projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}\" } logName: \"projects/{project_id}/logs/healthcare.googleapis.com%2Fquery_accessible_data\" operation: { id: \"projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/operations/{operation_id}\" producer: \"healthcare.googleapis.com/QueryAccessibleData\" } receiveTimestamp: \"TIMESTAMP\" resource: { labels: { consent_store_id: \"{consent_store_id}\" dataset_id: \"{dataset_id}\" location: \"{location_id}\" project_id: \"{project_id}\" } type: \"healthcare_consent_store\" } severity: \"ERROR\" timestamp: \"TIMESTAMP\" ```" }, "evaluateUserConsents": { "id": "healthcare.projects.locations.datasets.consentStores.evaluateUserConsents", "path": "v1beta1/{+consentStore}:evaluateUserConsents", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}:evaluateUserConsents", "httpMethod": "POST", "parameters": { "consentStore": { "description": "Required. Name of the consent store to retrieve User data mappings from.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "consentStore" ], "request": { "$ref": "EvaluateUserConsentsRequest" }, "response": { "$ref": "EvaluateUserConsentsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Evaluates the user's Consents for all matching User data mappings. Note: User data mappings are indexed asynchronously, which can cause a slight delay between the time mappings are created or updated and when they are included in EvaluateUserConsents results." } }, "resources": { "attributeDefinitions": { "methods": { "create": { "id": "healthcare.projects.locations.datasets.consentStores.attributeDefinitions.create", "path": "v1beta1/{+parent}/attributeDefinitions", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/attributeDefinitions", "httpMethod": "POST", "parameters": { "parent": { "description": "Required. The name of the consent store that this Attribute definition belongs to.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "attributeDefinitionId": { "description": "Required. The ID of the Attribute definition to create. The string must match the following regex: `_a-zA-Z{0,255}` and must not be a reserved keyword within the Common Expression Language as listed on https://github.com/google/cel-spec/blob/master/doc/langdef.md.", "location": "query", "type": "string" } }, "parameterOrder": [ "parent" ], "request": { "$ref": "AttributeDefinition" }, "response": { "$ref": "AttributeDefinition" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Creates a new Attribute definition in the parent consent store." }, "get": { "id": "healthcare.projects.locations.datasets.consentStores.attributeDefinitions.get", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/attributeDefinitions/{attributeDefinitionsId}", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The resource name of the Attribute definition to get.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/attributeDefinitions/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "AttributeDefinition" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets the specified Attribute definition." }, "delete": { "id": "healthcare.projects.locations.datasets.consentStores.attributeDefinitions.delete", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/attributeDefinitions/{attributeDefinitionsId}", "httpMethod": "DELETE", "parameters": { "name": { "description": "Required. The resource name of the Attribute definition to delete. To preserve referential integrity, Attribute definitions referenced by a User data mapping or the latest revision of a Consent cannot be deleted.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/attributeDefinitions/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Deletes the specified Attribute definition. Fails if the Attribute definition is referenced by any User data mapping, or the latest revision of any Consent." }, "patch": { "id": "healthcare.projects.locations.datasets.consentStores.attributeDefinitions.patch", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/attributeDefinitions/{attributeDefinitionsId}", "httpMethod": "PATCH", "parameters": { "name": { "description": "Identifier. Resource name of the Attribute definition, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/attributeDefinitions/{attribute_definition_id}`. Cannot be changed after creation.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/attributeDefinitions/[^/]+$", "location": "path", "required": true, "type": "string" }, "updateMask": { "description": "Required. The update mask that applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask. Only the `description`, `allowed_values`, `consent_default_values` and `data_mapping_default_value` fields can be updated. The updated `allowed_values` must contain all values from the previous `allowed_values`.", "location": "query", "type": "string", "format": "google-fieldmask" } }, "parameterOrder": [ "name" ], "request": { "$ref": "AttributeDefinition" }, "response": { "$ref": "AttributeDefinition" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Updates the specified Attribute definition." }, "list": { "id": "healthcare.projects.locations.datasets.consentStores.attributeDefinitions.list", "path": "v1beta1/{+parent}/attributeDefinitions", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/attributeDefinitions", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. Name of the consent store to retrieve Attribute definitions from.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "pageSize": { "description": "Optional. Limit on the number of Attribute definitions to return in a single response. If not specified, 100 is used. May not be larger than 1000.", "location": "query", "type": "integer", "format": "int32" }, "pageToken": { "description": "Optional. Token to retrieve the next page of results or empty to get the first page.", "location": "query", "type": "string" }, "filter": { "description": "Optional. Restricts the attributes returned to those matching a filter. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. The only field available for filtering is `category`. For example, `filter=category=\\\"REQUEST\\\"`.", "location": "query", "type": "string" } }, "parameterOrder": [ "parent" ], "response": { "$ref": "ListAttributeDefinitionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Lists the Attribute definitions in the specified consent store." } } }, "consentArtifacts": { "methods": { "create": { "id": "healthcare.projects.locations.datasets.consentStores.consentArtifacts.create", "path": "v1beta1/{+parent}/consentArtifacts", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consentArtifacts", "httpMethod": "POST", "parameters": { "parent": { "description": "Required. The name of the consent store this Consent artifact belongs to.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent" ], "request": { "$ref": "ConsentArtifact" }, "response": { "$ref": "ConsentArtifact" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Creates a new Consent artifact in the parent consent store." }, "get": { "id": "healthcare.projects.locations.datasets.consentStores.consentArtifacts.get", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consentArtifacts/{consentArtifactsId}", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The resource name of the Consent artifact to retrieve.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/consentArtifacts/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "ConsentArtifact" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets the specified Consent artifact." }, "delete": { "id": "healthcare.projects.locations.datasets.consentStores.consentArtifacts.delete", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consentArtifacts/{consentArtifactsId}", "httpMethod": "DELETE", "parameters": { "name": { "description": "Required. The resource name of the Consent artifact to delete. To preserve referential integrity, Consent artifacts referenced by the latest revision of a Consent cannot be deleted.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/consentArtifacts/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Deletes the specified Consent artifact. Fails if the artifact is referenced by the latest revision of any Consent." }, "list": { "id": "healthcare.projects.locations.datasets.consentStores.consentArtifacts.list", "path": "v1beta1/{+parent}/consentArtifacts", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consentArtifacts", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. Name of the consent store to retrieve consent artifacts from.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "pageSize": { "description": "Optional. Limit on the number of consent artifacts to return in a single response. If not specified, 100 is used. May not be larger than 1000.", "location": "query", "type": "integer", "format": "int32" }, "pageToken": { "description": "Optional. The next_page_token value returned from the previous List request, if any.", "location": "query", "type": "string" }, "filter": { "description": "Optional. Restricts the artifacts returned to those matching a filter. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. The fields available for filtering are: - user_id. For example, `filter=user_id=\\\"user123\\\"`. - consent_content_version - metadata. For example, `filter=Metadata(\\\"testkey\\\")=\\\"value\\\"` or `filter=HasMetadata(\\\"testkey\\\")`.", "location": "query", "type": "string" } }, "parameterOrder": [ "parent" ], "response": { "$ref": "ListConsentArtifactsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Lists the Consent artifacts in the specified consent store." } } }, "consents": { "methods": { "create": { "id": "healthcare.projects.locations.datasets.consentStores.consents.create", "path": "v1beta1/{+parent}/consents", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consents", "httpMethod": "POST", "parameters": { "parent": { "description": "Required. Name of the consent store.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent" ], "request": { "$ref": "Consent" }, "response": { "$ref": "Consent" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Creates a new Consent in the parent consent store." }, "get": { "id": "healthcare.projects.locations.datasets.consentStores.consents.get", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consents/{consentsId}", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The resource name of the Consent to retrieve, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`. In order to retrieve a previous revision of the Consent, also provide the revision ID: `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}@{revision_id}`", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/consents/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Consent" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets the specified revision of a Consent, or the latest revision if `revision_id` is not specified in the resource name." }, "delete": { "id": "healthcare.projects.locations.datasets.consentStores.consents.delete", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consents/{consentsId}", "httpMethod": "DELETE", "parameters": { "name": { "description": "Required. The resource name of the Consent to delete, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`. An INVALID_ARGUMENT error occurs if `revision_id` is specified in the name.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/consents/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Deletes the Consent and its revisions. To keep a record of the Consent but mark it inactive, see [RevokeConsent]. To delete a revision of a Consent, see [DeleteConsentRevision]. This operation does not delete the related Consent artifact." }, "deleteRevision": { "id": "healthcare.projects.locations.datasets.consentStores.consents.deleteRevision", "path": "v1beta1/{+name}:deleteRevision", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consents/{consentsId}:deleteRevision", "httpMethod": "DELETE", "parameters": { "name": { "description": "Required. The resource name of the Consent revision to delete, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}@{revision_id}`. An INVALID_ARGUMENT error occurs if `revision_id` is not specified in the name.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/consents/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Deletes the specified revision of a Consent. An INVALID_ARGUMENT error occurs if the specified revision is the latest revision." }, "patch": { "id": "healthcare.projects.locations.datasets.consentStores.consents.patch", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consents/{consentsId}", "httpMethod": "PATCH", "parameters": { "name": { "description": "Identifier. Resource name of the Consent, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`. Cannot be changed after creation.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/consents/[^/]+$", "location": "path", "required": true, "type": "string" }, "updateMask": { "description": "Required. The update mask to apply to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask. Only the `user_id`, `policies`, `consent_artifact`, and `metadata` fields can be updated.", "location": "query", "type": "string", "format": "google-fieldmask" } }, "parameterOrder": [ "name" ], "request": { "$ref": "Consent" }, "response": { "$ref": "Consent" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Updates the latest revision of the specified Consent by committing a new revision with the changes. A FAILED_PRECONDITION error occurs if the latest revision of the specified Consent is in the `REJECTED` or `REVOKED` state." }, "activate": { "id": "healthcare.projects.locations.datasets.consentStores.consents.activate", "path": "v1beta1/{+name}:activate", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consents/{consentsId}:activate", "httpMethod": "POST", "parameters": { "name": { "description": "Required. The resource name of the Consent to activate, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`. An INVALID_ARGUMENT error occurs if `revision_id` is specified in the name.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/consents/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "ActivateConsentRequest" }, "response": { "$ref": "Consent" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Activates the latest revision of the specified Consent by committing a new revision with `state` updated to `ACTIVE`. If the latest revision of the specified Consent is in the `ACTIVE` state, no new revision is committed. A FAILED_PRECONDITION error occurs if the latest revision of the specified consent is in the `REJECTED` or `REVOKED` state." }, "reject": { "id": "healthcare.projects.locations.datasets.consentStores.consents.reject", "path": "v1beta1/{+name}:reject", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consents/{consentsId}:reject", "httpMethod": "POST", "parameters": { "name": { "description": "Required. The resource name of the Consent to reject, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`. An INVALID_ARGUMENT error occurs if `revision_id` is specified in the name.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/consents/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "RejectConsentRequest" }, "response": { "$ref": "Consent" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Rejects the latest revision of the specified Consent by committing a new revision with `state` updated to `REJECTED`. If the latest revision of the specified Consent is in the `REJECTED` state, no new revision is committed. A FAILED_PRECONDITION error occurs if the latest revision of the specified Consent is in the `ACTIVE` or `REVOKED` state." }, "list": { "id": "healthcare.projects.locations.datasets.consentStores.consents.list", "path": "v1beta1/{+parent}/consents", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consents", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. Name of the consent store to retrieve Consents from.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "pageSize": { "description": "Optional. Limit on the number of Consents to return in a single response. If not specified, 100 is used. May not be larger than 1000.", "location": "query", "type": "integer", "format": "int32" }, "pageToken": { "description": "Optional. The next_page_token value returned from the previous List request, if any.", "location": "query", "type": "string" }, "filter": { "description": "Optional. Restricts the consents returned to those matching a filter. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. The fields available for filtering are: - user_id. For example, `filter='user_id=\"user123\"'`. - consent_artifact - state - revision_create_time - metadata. For example, `filter=Metadata(\\\"testkey\\\")=\\\"value\\\"` or `filter=HasMetadata(\\\"testkey\\\")`.", "location": "query", "type": "string" } }, "parameterOrder": [ "parent" ], "response": { "$ref": "ListConsentsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Lists the Consent in the given consent store, returning each Consent's latest revision." }, "listRevisions": { "id": "healthcare.projects.locations.datasets.consentStores.consents.listRevisions", "path": "v1beta1/{+name}:listRevisions", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consents/{consentsId}:listRevisions", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The resource name of the Consent to retrieve revisions for.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/consents/[^/]+$", "location": "path", "required": true, "type": "string" }, "pageSize": { "description": "Optional. Limit on the number of revisions to return in a single response. If not specified, 100 is used. May not be larger than 1000.", "location": "query", "type": "integer", "format": "int32" }, "pageToken": { "description": "Optional. Token to retrieve the next page of results or empty if there are no more results in the list.", "location": "query", "type": "string" }, "filter": { "description": "Optional. Restricts the revisions returned to those matching a filter. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. Fields/functions available for filtering are: - user_id. For example, `filter='user_id=\"user123\"'`. - consent_artifact - state - revision_create_time - metadata. For example, `filter=Metadata(\\\"testkey\\\")=\\\"value\\\"` or `filter=HasMetadata(\\\"testkey\\\")`.", "location": "query", "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "ListConsentRevisionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Lists the revisions of the specified Consent in reverse chronological order." }, "revoke": { "id": "healthcare.projects.locations.datasets.consentStores.consents.revoke", "path": "v1beta1/{+name}:revoke", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/consents/{consentsId}:revoke", "httpMethod": "POST", "parameters": { "name": { "description": "Required. The resource name of the Consent to revoke, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`. An INVALID_ARGUMENT error occurs if `revision_id` is specified in the name.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/consents/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "RevokeConsentRequest" }, "response": { "$ref": "Consent" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Revokes the latest revision of the specified Consent by committing a new revision with `state` updated to `REVOKED`. If the latest revision of the specified Consent is in the `REVOKED` state, no new revision is committed. A FAILED_PRECONDITION error occurs if the latest revision of the given consent is in `DRAFT` or `REJECTED` state." } } }, "userDataMappings": { "methods": { "create": { "id": "healthcare.projects.locations.datasets.consentStores.userDataMappings.create", "path": "v1beta1/{+parent}/userDataMappings", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/userDataMappings", "httpMethod": "POST", "parameters": { "parent": { "description": "Required. Name of the consent store.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "parent" ], "request": { "$ref": "UserDataMapping" }, "response": { "$ref": "UserDataMapping" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Creates a new User data mapping in the parent consent store." }, "get": { "id": "healthcare.projects.locations.datasets.consentStores.userDataMappings.get", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/userDataMappings/{userDataMappingsId}", "httpMethod": "GET", "parameters": { "name": { "description": "Required. The resource name of the User data mapping to retrieve.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/userDataMappings/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "UserDataMapping" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets the specified User data mapping." }, "delete": { "id": "healthcare.projects.locations.datasets.consentStores.userDataMappings.delete", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/userDataMappings/{userDataMappingsId}", "httpMethod": "DELETE", "parameters": { "name": { "description": "Required. The resource name of the User data mapping to delete.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/userDataMappings/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Deletes the specified User data mapping." }, "patch": { "id": "healthcare.projects.locations.datasets.consentStores.userDataMappings.patch", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/userDataMappings/{userDataMappingsId}", "httpMethod": "PATCH", "parameters": { "name": { "description": "Resource name of the User data mapping, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/userDataMappings/{user_data_mapping_id}`.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/userDataMappings/[^/]+$", "location": "path", "required": true, "type": "string" }, "updateMask": { "description": "Required. The update mask that applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask. Only the `data_id`, `user_id` and `resource_attributes` fields can be updated.", "location": "query", "type": "string", "format": "google-fieldmask" } }, "parameterOrder": [ "name" ], "request": { "$ref": "UserDataMapping" }, "response": { "$ref": "UserDataMapping" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Updates the specified User data mapping." }, "list": { "id": "healthcare.projects.locations.datasets.consentStores.userDataMappings.list", "path": "v1beta1/{+parent}/userDataMappings", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/userDataMappings", "httpMethod": "GET", "parameters": { "parent": { "description": "Required. Name of the consent store to retrieve User data mappings from.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", "location": "path", "required": true, "type": "string" }, "pageSize": { "description": "Optional. Limit on the number of User data mappings to return in a single response. If not specified, 100 is used. May not be larger than 1000.", "location": "query", "type": "integer", "format": "int32" }, "pageToken": { "description": "Optional. Token to retrieve the next page of results, or empty to get the first page.", "location": "query", "type": "string" }, "filter": { "description": "Optional. Restricts the user data mappings returned to those matching a filter. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. The fields available for filtering are: - data_id - user_id. For example, `filter=user_id=\\\"user123\\\"`. - archived - archive_time", "location": "query", "type": "string" } }, "parameterOrder": [ "parent" ], "response": { "$ref": "ListUserDataMappingsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Lists the User data mappings in the specified consent store." }, "archive": { "id": "healthcare.projects.locations.datasets.consentStores.userDataMappings.archive", "path": "v1beta1/{+name}:archive", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/consentStores/{consentStoresId}/userDataMappings/{userDataMappingsId}:archive", "httpMethod": "POST", "parameters": { "name": { "description": "Required. The resource name of the User data mapping to archive.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/userDataMappings/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "ArchiveUserDataMappingRequest" }, "response": { "$ref": "ArchiveUserDataMappingResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Archives the specified User data mapping." } } } } }, "dataMapperWorkspaces": { "methods": { "setIamPolicy": { "id": "healthcare.projects.locations.datasets.dataMapperWorkspaces.setIamPolicy", "path": "v1beta1/{+resource}:setIamPolicy", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dataMapperWorkspaces/{dataMapperWorkspacesId}:setIamPolicy", "httpMethod": "POST", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataMapperWorkspaces/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "resource" ], "request": { "$ref": "SetIamPolicyRequest" }, "response": { "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Sets the access control policy on the specified resource. Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED` errors." }, "getIamPolicy": { "id": "healthcare.projects.locations.datasets.dataMapperWorkspaces.getIamPolicy", "path": "v1beta1/{+resource}:getIamPolicy", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dataMapperWorkspaces/{dataMapperWorkspacesId}:getIamPolicy", "httpMethod": "GET", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataMapperWorkspaces/[^/]+$", "location": "path", "required": true, "type": "string" }, "options.requestedPolicyVersion": { "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", "location": "query", "type": "integer", "format": "int32" } }, "parameterOrder": [ "resource" ], "response": { "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set." }, "testIamPermissions": { "id": "healthcare.projects.locations.datasets.dataMapperWorkspaces.testIamPermissions", "path": "v1beta1/{+resource}:testIamPermissions", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dataMapperWorkspaces/{dataMapperWorkspacesId}:testIamPermissions", "httpMethod": "POST", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataMapperWorkspaces/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "resource" ], "request": { "$ref": "TestIamPermissionsRequest" }, "response": { "$ref": "TestIamPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning." } } }, "operations": { "methods": { "list": { "id": "healthcare.projects.locations.datasets.operations.list", "path": "v1beta1/{+name}/operations", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/operations", "httpMethod": "GET", "parameters": { "name": { "description": "The name of the operation's parent resource.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "location": "path", "required": true, "type": "string" }, "filter": { "description": "The standard list filter.", "location": "query", "type": "string" }, "pageSize": { "description": "The standard list page size.", "location": "query", "type": "integer", "format": "int32" }, "pageToken": { "description": "The standard list page token.", "location": "query", "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "ListOperationsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`." }, "get": { "id": "healthcare.projects.locations.datasets.operations.get", "path": "v1beta1/{+name}", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/operations/{operationsId}", "httpMethod": "GET", "parameters": { "name": { "description": "The name of the operation resource.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/operations/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service." }, "cancel": { "id": "healthcare.projects.locations.datasets.operations.cancel", "path": "v1beta1/{+name}:cancel", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/operations/{operationsId}:cancel", "httpMethod": "POST", "parameters": { "name": { "description": "The name of the operation resource to be cancelled.", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/operations/[^/]+$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "CancelOperationRequest" }, "response": { "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`." } } } } }, "services": { "resources": { "nlp": { "methods": { "analyzeEntities": { "id": "healthcare.projects.locations.services.nlp.analyzeEntities", "path": "v1beta1/{+nlpService}:analyzeEntities", "flatPath": "v1beta1/projects/{projectsId}/locations/{locationsId}/services/nlp:analyzeEntities", "httpMethod": "POST", "parameters": { "nlpService": { "description": "The resource name of the service of the form: \"projects/{project_id}/locations/{location_id}/services/nlp\".", "pattern": "^projects/[^/]+/locations/[^/]+/services/nlp$", "location": "path", "required": true, "type": "string" } }, "parameterOrder": [ "nlpService" ], "request": { "$ref": "AnalyzeEntitiesRequest" }, "response": { "$ref": "AnalyzeEntitiesResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-healthcare", "https://www.googleapis.com/auth/cloud-platform" ], "description": "Analyze heathcare entity in a document. Its response includes the recognized entity mentions and the relationships between them. AnalyzeEntities uses context aware models to detect entities. This method can only analyze documents written in English." } } } } } } } } } }, "auth": { "oauth2": { "scopes": { "https://www.googleapis.com/auth/cloud-healthcare": { "description": "Read, write and manage healthcare data" }, "https://www.googleapis.com/auth/cloud-platform": { "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." } } } }, "description": "Manage, store, and access healthcare data in Google Cloud Platform.", "mtlsRootUrl": "https://healthcare.mtls.googleapis.com/", "canonicalName": "Cloud Healthcare", "rootUrl": "https://healthcare.googleapis.com/", "fullyEncodeReservedExpansion": true, "documentationLink": "https://cloud.google.com/healthcare", "basePath": "", "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" }, "ownerName": "Google", "revision": "20240429", "title": "Cloud Healthcare API", "baseUrl": "https://healthcare.googleapis.com/", "protocol": "rest", "kind": "discovery#restDescription", "ownerDomain": "google.com", "servicePath": "", "parameters": { "access_token": { "type": "string", "description": "OAuth access token.", "location": "query" }, "alt": { "type": "string", "description": "Data format for response.", "default": "json", "enum": [ "json", "media", "proto" ], "enumDescriptions": [ "Responses with Content-Type of application/json", "Media download with context-dependent Content-Type", "Responses with Content-Type of application/x-protobuf" ], "location": "query" }, "callback": { "type": "string", "description": "JSONP", "location": "query" }, "fields": { "type": "string", "description": "Selector specifying which fields to include in a partial response.", "location": "query" }, "key": { "type": "string", "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.", "location": "query" }, "oauth_token": { "type": "string", "description": "OAuth 2.0 token for the current user.", "location": "query" }, "prettyPrint": { "type": "boolean", "description": "Returns response with indentations and line breaks.", "default": "true", "location": "query" }, "quotaUser": { "type": "string", "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.", "location": "query" }, "upload_protocol": { "type": "string", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", "location": "query" }, "uploadType": { "type": "string", "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", "location": "query" }, "$.xgafv": { "type": "string", "description": "V1 error format.", "enum": [ "1", "2" ], "enumDescriptions": [ "v1 error format", "v2 error format" ], "location": "query" } }, "name": "healthcare", "version_module": true, "id": "healthcare:v1beta1", "batchPath": "batch", "schemas": { "ListLocationsResponse": { "id": "ListLocationsResponse", "description": "The response message for Locations.ListLocations.", "type": "object", "properties": { "locations": { "description": "A list of locations that matches the specified filter in the request.", "type": "array", "items": { "$ref": "Location" } }, "nextPageToken": { "description": "The standard List next-page token.", "type": "string" } } }, "Location": { "id": "Location", "description": "A resource that represents a Google Cloud location.", "type": "object", "properties": { "name": { "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", "type": "string" }, "locationId": { "description": "The canonical id for this location. For example: `\"us-east1\"`.", "type": "string" }, "displayName": { "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", "type": "string" }, "labels": { "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", "type": "object", "additionalProperties": { "type": "string" } }, "metadata": { "description": "Service-specific metadata. For example the available capacity at the given location.", "type": "object", "additionalProperties": { "type": "any", "description": "Properties of the object. Contains field @type with type URL." } } } }, "SetIamPolicyRequest": { "id": "SetIamPolicyRequest", "description": "Request message for `SetIamPolicy` method.", "type": "object", "properties": { "policy": { "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them.", "$ref": "Policy" }, "updateMask": { "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", "type": "string", "format": "google-fieldmask" } } }, "Policy": { "id": "Policy", "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time \u003c timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", "type": "object", "properties": { "version": { "description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", "type": "integer", "format": "int32" }, "bindings": { "description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", "type": "array", "items": { "$ref": "Binding" } }, "auditConfigs": { "description": "Specifies cloud audit logging configuration for this policy.", "type": "array", "items": { "$ref": "AuditConfig" } }, "etag": { "description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", "type": "string", "format": "byte" } } }, "Binding": { "id": "Binding", "description": "Associates `members`, or principals, with a `role`.", "type": "object", "properties": { "role": { "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" }, "members": { "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "type": "array", "items": { "type": "string" } }, "condition": { "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", "$ref": "Expr" } } }, "Expr": { "id": "Expr", "description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() \u003c 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", "type": "object", "properties": { "expression": { "description": "Textual representation of an expression in Common Expression Language syntax.", "type": "string" }, "title": { "description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", "type": "string" }, "description": { "description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", "type": "string" }, "location": { "description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", "type": "string" } } }, "AuditConfig": { "id": "AuditConfig", "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "type": "object", "properties": { "service": { "description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.", "type": "string" }, "auditLogConfigs": { "description": "The configuration for logging of each type of permission.", "type": "array", "items": { "$ref": "AuditLogConfig" } } } }, "AuditLogConfig": { "id": "AuditLogConfig", "description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", "type": "object", "properties": { "logType": { "description": "The log type that this config enables.", "type": "string", "enumDescriptions": [ "Default case. Should never be this.", "Admin reads. Example: CloudIAM getIamPolicy", "Data writes. Example: CloudSQL Users create", "Data reads. Example: CloudSQL Users list" ], "enum": [ "LOG_TYPE_UNSPECIFIED", "ADMIN_READ", "DATA_WRITE", "DATA_READ" ] }, "exemptedMembers": { "description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", "type": "array", "items": { "type": "string" } } } }, "TestIamPermissionsRequest": { "id": "TestIamPermissionsRequest", "description": "Request message for `TestIamPermissions` method.", "type": "object", "properties": { "permissions": { "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", "type": "array", "items": { "type": "string" } } } }, "TestIamPermissionsResponse": { "id": "TestIamPermissionsResponse", "description": "Response message for `TestIamPermissions` method.", "type": "object", "properties": { "permissions": { "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", "type": "array", "items": { "type": "string" } } } }, "ListOperationsResponse": { "id": "ListOperationsResponse", "description": "The response message for Operations.ListOperations.", "type": "object", "properties": { "operations": { "description": "A list of operations that matches the specified filter in the request.", "type": "array", "items": { "$ref": "Operation" } }, "nextPageToken": { "description": "The standard List next-page token.", "type": "string" } } }, "Operation": { "id": "Operation", "description": "This resource represents a long-running operation that is the result of a network API call.", "type": "object", "properties": { "name": { "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", "type": "string" }, "metadata": { "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", "type": "object", "additionalProperties": { "type": "any", "description": "Properties of the object. Contains field @type with type URL." } }, "done": { "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", "type": "boolean" }, "error": { "description": "The error result of the operation in case of failure or cancellation.", "$ref": "Status" }, "response": { "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", "type": "object", "additionalProperties": { "type": "any", "description": "Properties of the object. Contains field @type with type URL." } } } }, "Status": { "id": "Status", "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).", "type": "object", "properties": { "code": { "description": "The status code, which should be an enum value of google.rpc.Code.", "type": "integer", "format": "int32" }, "message": { "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", "type": "string" }, "details": { "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", "type": "array", "items": { "type": "object", "additionalProperties": { "type": "any", "description": "Properties of the object. Contains field @type with type URL." } } } } }, "CancelOperationRequest": { "id": "CancelOperationRequest", "description": "The request message for Operations.CancelOperation.", "type": "object", "properties": {} }, "Empty": { "id": "Empty", "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }", "type": "object", "properties": {} }, "AnnotationStore": { "id": "AnnotationStore", "description": "An Annotation store that can store annotation resources such as labels and tags for text, image and audio.", "type": "object", "properties": { "name": { "description": "Identifier. Resource name of the Annotation store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`.", "type": "string" }, "labels": { "description": "Optional. User-supplied key-value pairs used to organize Annotation stores. Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: \\p{Ll}\\p{Lo}{0,62} Label values must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63} No more than 64 labels can be associated with a given store.", "type": "object", "additionalProperties": { "type": "string" } } } }, "ListAnnotationStoresResponse": { "id": "ListAnnotationStoresResponse", "description": "Lists the Annotation stores in the given dataset.", "type": "object", "properties": { "annotationStores": { "description": "The returned Annotation stores. Won't be more Annotation stores than the value of page_size in the request.", "type": "array", "items": { "$ref": "AnnotationStore" } }, "nextPageToken": { "description": "Token to retrieve the next page of results or empty if there are no more results in the list.", "type": "string" } } }, "Annotation": { "id": "Annotation", "description": "An annotation record.", "type": "object", "properties": { "name": { "description": "Identifier. Resource name of the Annotation, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}/annotations/{annotation_id}`.", "type": "string" }, "annotationSource": { "description": "Required. Details of the source.", "$ref": "AnnotationSource" }, "resourceAnnotation": { "description": "Annotations for resource. For example, classification tags.", "$ref": "ResourceAnnotation" }, "imageAnnotation": { "description": "Annotations for images. For example, bounding polygons.", "$ref": "ImageAnnotation" }, "textAnnotation": { "description": "Annotations for sensitive texts. For example, a range that describes the location of sensitive text.", "$ref": "SensitiveTextAnnotation" }, "customData": { "description": "Additional information for this annotation record, such as annotator and verifier information or study campaign.", "type": "object", "additionalProperties": { "type": "string" } } } }, "AnnotationSource": { "id": "AnnotationSource", "description": "AnnotationSource holds the source information of the annotation.", "type": "object", "properties": { "cloudHealthcareSource": { "description": "Cloud Healthcare API resource.", "$ref": "CloudHealthcareSource" } } }, "CloudHealthcareSource": { "id": "CloudHealthcareSource", "description": "Cloud Healthcare API resource.", "type": "object", "properties": { "name": { "description": "Full path of a Cloud Healthcare API resource.", "type": "string" } } }, "ResourceAnnotation": { "id": "ResourceAnnotation", "description": "Resource level annotation.", "type": "object", "properties": { "label": { "description": "A description of the annotation record.", "type": "string" } } }, "ImageAnnotation": { "id": "ImageAnnotation", "description": "Image annotation.", "type": "object", "properties": { "boundingPolys": { "description": "The list of polygons outlining the sensitive regions in the image.", "type": "array", "items": { "$ref": "BoundingPoly" } }, "frameIndex": { "description": "0-based index of the image frame. For example, an image frame in a DICOM instance.", "type": "integer", "format": "int32" } } }, "BoundingPoly": { "id": "BoundingPoly", "description": "A bounding polygon for the detected image annotation.", "type": "object", "properties": { "vertices": { "description": "List of the vertices of this polygon.", "type": "array", "items": { "$ref": "Vertex" } }, "label": { "description": "A description of this polygon.", "type": "string" } } }, "Vertex": { "id": "Vertex", "description": "A 2D coordinate in an image. The origin is the top-left.", "type": "object", "properties": { "x": { "description": "X coordinate.", "type": "number", "format": "float" }, "y": { "description": "Y coordinate.", "type": "number", "format": "float" } } }, "SensitiveTextAnnotation": { "id": "SensitiveTextAnnotation", "description": "A TextAnnotation specifies a text range that includes sensitive information.", "type": "object", "properties": { "details": { "description": "Maps from a resource slice. For example, FHIR resource field path to a set of sensitive text findings. For example, Appointment.Narrative text1 --\u003e {findings_1, findings_2, findings_3}", "type": "object", "additionalProperties": { "$ref": "Detail" } } } }, "Detail": { "id": "Detail", "description": "Contains multiple sensitive information findings for each resource slice.", "type": "object", "properties": { "findings": { "type": "array", "items": { "$ref": "Finding" } } } }, "Finding": { "id": "Finding", "type": "object", "properties": { "infoType": { "description": "The type of information stored in this text range. For example, HumanName, BirthDate, or Address.", "type": "string" }, "start": { "description": "Zero-based starting index of the found text, inclusively.", "type": "string", "format": "int64" }, "end": { "description": "Zero-based ending index of the found text, exclusively.", "type": "string", "format": "int64" }, "quote": { "description": "The snippet of the sensitive text. This field is only populated during deidentification if `store_quote` is set to true in DeidentifyConfig.", "type": "string" } } }, "ListAnnotationsResponse": { "id": "ListAnnotationsResponse", "description": "Lists the Annotations in the specified Annotation store.", "type": "object", "properties": { "annotations": { "description": "The returned Annotations. Won't be more values than the value of page_size in the request. See `AnnotationView` in the request for populated fields.", "type": "array", "items": { "$ref": "Annotation" } }, "nextPageToken": { "description": "Token to retrieve the next page of results or empty if there are no more results in the list.", "type": "string" } } }, "ImportAnnotationsRequest": { "id": "ImportAnnotationsRequest", "description": "Request to import Annotations. The Annotations to be imported must have client-supplied resource names which indicate the annotation resource. The import operation is not atomic. If a failure occurs, any annotations already imported are not removed.", "type": "object", "properties": { "gcsSource": { "$ref": "GoogleCloudHealthcareV1beta1AnnotationGcsSource" } } }, "GoogleCloudHealthcareV1beta1AnnotationGcsSource": { "id": "GoogleCloudHealthcareV1beta1AnnotationGcsSource", "description": "Specifies the configuration for importing data from Cloud Storage.", "type": "object", "properties": { "uri": { "description": "Points to a Cloud Storage URI containing file(s) with content only. The URI must be in the following format: `gs://{bucket_id}/{object_id}`. The URI can include wildcards in `object_id` and thus identify multiple files. Supported wildcards: '*' to match 0 or more non-separator characters '**' to match 0 or more characters (including separators). Must be used at the end of a path and with no other wildcards in the path. Can also be used with a file extension (such as .dcm), which imports all files with the extension in the specified directory and its sub-directories. For example, `gs://my-bucket/my-directory/**.json` imports all files with .json extensions in `my-directory/` and its sub-directories. '?' to match 1 character All other URI formats are invalid. Files matching the wildcard are expected to contain content only, no metadata.", "type": "string" } } }, "ExportAnnotationsRequest": { "id": "ExportAnnotationsRequest", "description": "Request to export Annotations. The export operation is not atomic. If a failure occurs, any annotations already exported are not removed.", "type": "object", "properties": { "gcsDestination": { "description": "The Cloud Storage destination, which requires the `roles/storage.objectAdmin` Cloud IAM role.", "$ref": "GoogleCloudHealthcareV1beta1AnnotationGcsDestination" }, "bigqueryDestination": { "description": "The BigQuery output destination, which requires two IAM roles: `roles/bigquery.dataEditor` and `roles/bigquery.jobUser`.", "$ref": "GoogleCloudHealthcareV1beta1AnnotationBigQueryDestination" } } }, "GoogleCloudHealthcareV1beta1AnnotationGcsDestination": { "id": "GoogleCloudHealthcareV1beta1AnnotationGcsDestination", "description": "The Cloud Storage location for export.", "type": "object", "properties": { "uriPrefix": { "description": "The Cloud Storage destination to export to. URI for a Cloud Storage directory where the server writes result files, in the format `gs://{bucket-id}/{path/to/destination/dir}`. If there is no trailing slash, the service appends one when composing the object path. The user is responsible for creating the Cloud Storage bucket referenced in `uri_prefix`.", "type": "string" } } }, "GoogleCloudHealthcareV1beta1AnnotationBigQueryDestination": { "id": "GoogleCloudHealthcareV1beta1AnnotationBigQueryDestination", "description": "The BigQuery table for export.", "type": "object", "properties": { "tableUri": { "description": "BigQuery URI to a table, up to 2000 characters long, must be of the form bq://projectId.bqDatasetId.tableId.", "type": "string" }, "force": { "description": "Use `write_disposition` instead. If `write_disposition` is specified, this parameter is ignored. force=false is equivalent to write_disposition=WRITE_EMPTY and force=true is equivalent to write_disposition=WRITE_TRUNCATE.", "type": "boolean" }, "schemaType": { "description": "Specifies the schema format to export.", "type": "string", "enumDescriptions": [ "Same as SIMPLE.", "A flatterned version of Annotation." ], "enum": [ "SCHEMA_TYPE_UNSPECIFIED", "SIMPLE" ] }, "writeDisposition": { "description": "Determines if existing data in the destination dataset is overwritten, appended to, or not written if the tables contain data. If a write_disposition is specified, the `force` parameter is ignored.", "type": "string", "enumDescriptions": [ "Default behavior is the same as WRITE_EMPTY.", "Only export data if the destination table is empty.", "Erase all existing data in a table before writing the instances.", "Append data to the existing table." ], "enum": [ "WRITE_DISPOSITION_UNSPECIFIED", "WRITE_EMPTY", "WRITE_TRUNCATE", "WRITE_APPEND" ] } } }, "EvaluateAnnotationStoreRequest": { "id": "EvaluateAnnotationStoreRequest", "description": "Request to evaluate an Annotation store against a ground truth [Annotation store].", "type": "object", "properties": { "evalInfoTypeMapping": { "description": "Optional. InfoType mapping for `eval_store`. Different resources can map to the same infoType. For example, `PERSON_NAME`, `PERSON`, `NAME`, and `HUMAN` are different. To map all of these into a single infoType (such as `PERSON_NAME`), specify the following mapping: ``` info_type_mapping[\"PERSON\"] = \"PERSON_NAME\" info_type_mapping[\"NAME\"] = \"PERSON_NAME\" info_type_mapping[\"HUMAN\"] = \"PERSON_NAME\" ``` Unmentioned infoTypes, such as `DATE`, are treated as identity mapping. For example: ``` info_type_mapping[\"DATE\"] = \"DATE\" ``` InfoTypes are case-insensitive.", "type": "object", "additionalProperties": { "type": "string" } }, "goldenStore": { "description": "Required. The Annotation store to use as ground truth, in the format of `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`.", "type": "string" }, "goldenInfoTypeMapping": { "description": "Optional. Similar to `eval_info_type_mapping`, infoType mapping for `golden_store`.", "type": "object", "additionalProperties": { "type": "string" } }, "bigqueryDestination": { "description": "The BigQuery table where the server writes the output. BigQueryDestination requires the `roles/bigquery.dataEditor` and `roles/bigquery.jobUser` Cloud IAM roles.", "$ref": "GoogleCloudHealthcareV1beta1AnnotationBigQueryDestination" }, "infoTypeConfig": { "$ref": "InfoTypeConfig" } } }, "InfoTypeConfig": { "id": "InfoTypeConfig", "description": "Specifies how to use infoTypes for evaluation. For example, a user might only want to evaluate `PERSON`, `LOCATION`, and `AGE`.", "type": "object", "properties": { "strictMatching": { "description": "If `TRUE`, infoTypes described by `filter` are used for evaluation. Otherwise, infoTypes are not considered for evaluation. For example: * Annotated text: \"Toronto is a location\" * Finding 1: `{\"infoType\": \"PERSON\", \"quote\": \"Toronto\", \"start\": 0, \"end\": 7}` * Finding 2: `{\"infoType\": \"CITY\", \"quote\": \"Toronto\", \"start\": 0, \"end\": 7}` * Finding 3: `{}` * Ground truth: `{\"infoType\": \"LOCATION\", \"quote\": \"Toronto\", \"start\": 0, \"end\": 7}` When `strict_matching` is `TRUE`: * Finding 1: 1 false positive * Finding 2: 1 false positive * Finding 3: 1 false negative When `strict_matching` is `FALSE`: * Finding 1: 1 true positive * Finding 2: 1 true positive * Finding 3: 1 false negative", "type": "boolean" }, "evaluateList": { "$ref": "FilterList" }, "ignoreList": { "$ref": "FilterList" } } }, "FilterList": { "id": "FilterList", "description": "List of infoTypes to be filtered.", "type": "object", "properties": { "infoTypes": { "description": "These infoTypes are based on after the `eval_info_type_mapping` and `golden_info_type_mapping`.", "type": "array", "items": { "type": "string" } } } }, "ConsentStore": { "id": "ConsentStore", "description": "Represents a consent store.", "type": "object", "properties": { "name": { "description": "Resource name of the consent store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}`. Cannot be changed after creation.", "type": "string" }, "defaultConsentTtl": { "description": "Optional. Default time to live for Consents created in this store. Must be at least 24 hours. Updating this field will not affect the expiration time of existing consents.", "type": "string", "format": "google-duration" }, "labels": { "description": "Optional. User-supplied key-value pairs used to organize consent stores. Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: \\p{Ll}\\p{Lo}{0,62}. Label values must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63}. No more than 64 labels can be associated with a given store. For more information: https://cloud.google.com/healthcare/docs/how-tos/labeling-resources", "type": "object", "additionalProperties": { "type": "string" } }, "enableConsentCreateOnUpdate": { "description": "Optional. If `true`, UpdateConsent creates the Consent if it does not already exist. If unspecified, defaults to `false`.", "type": "boolean" } } }, "ListConsentStoresResponse": { "id": "ListConsentStoresResponse", "type": "object", "properties": { "consentStores": { "description": "The returned consent stores. The maximum number of stores returned is determined by the value of page_size in the ListConsentStoresRequest.", "type": "array", "items": { "$ref": "ConsentStore" } }, "nextPageToken": { "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", "type": "string" } } }, "AttributeDefinition": { "id": "AttributeDefinition", "description": "A client-defined consent attribute.", "type": "object", "properties": { "name": { "description": "Identifier. Resource name of the Attribute definition, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/attributeDefinitions/{attribute_definition_id}`. Cannot be changed after creation.", "type": "string" }, "description": { "description": "Optional. A description of the attribute.", "type": "string" }, "category": { "description": "Required. The category of the attribute. The value of this field cannot be changed after creation.", "type": "string", "enumDescriptions": [ "No category specified. This option is invalid.", "Specify this category when this attribute describes the properties of resources. For example, data anonymity or data type.", "Specify this category when this attribute describes the properties of requests. For example, requester's role or requester's organization." ], "enum": [ "CATEGORY_UNSPECIFIED", "RESOURCE", "REQUEST" ] }, "allowedValues": { "description": "Required. Possible values for the attribute. The number of allowed values must not exceed 500. An empty list is invalid. The list can only be expanded after creation.", "type": "array", "items": { "type": "string" } }, "consentDefaultValues": { "description": "Optional. Default values of the attribute in Consents. If no default values are specified, it defaults to an empty value.", "type": "array", "items": { "type": "string" } }, "dataMappingDefaultValue": { "description": "Optional. Default value of the attribute in User data mappings. If no default value is specified, it defaults to an empty value. This field is only applicable to attributes of the category `RESOURCE`.", "type": "string" } } }, "ListAttributeDefinitionsResponse": { "id": "ListAttributeDefinitionsResponse", "type": "object", "properties": { "attributeDefinitions": { "description": "The returned Attribute definitions. The maximum number of attributes returned is determined by the value of page_size in the ListAttributeDefinitionsRequest.", "type": "array", "items": { "$ref": "AttributeDefinition" } }, "nextPageToken": { "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", "type": "string" } } }, "ConsentArtifact": { "id": "ConsentArtifact", "description": "Documentation of a user's consent.", "type": "object", "properties": { "name": { "description": "Identifier. Resource name of the Consent artifact, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consentArtifacts/{consent_artifact_id}`. Cannot be changed after creation.", "type": "string" }, "userId": { "description": "Required. User's UUID provided by the client.", "type": "string" }, "userSignature": { "description": "Optional. User's signature.", "$ref": "Signature" }, "guardianSignature": { "description": "Optional. A signature from a guardian.", "$ref": "Signature" }, "witnessSignature": { "description": "Optional. A signature from a witness.", "$ref": "Signature" }, "consentContentScreenshots": { "description": "Optional. Screenshots, PDFs, or other binary information documenting the user's consent.", "type": "array", "items": { "$ref": "Image" } }, "consentContentVersion": { "description": "Optional. An string indicating the version of the consent information shown to the user.", "type": "string" }, "metadata": { "description": "Optional. Metadata associated with the Consent artifact. For example, the consent locale or user agent version.", "type": "object", "additionalProperties": { "type": "string" } } } }, "Signature": { "id": "Signature", "description": "User signature.", "type": "object", "properties": { "userId": { "description": "Required. User's UUID provided by the client.", "type": "string" }, "image": { "description": "Optional. An image of the user's signature.", "$ref": "Image" }, "metadata": { "description": "Optional. Metadata associated with the user's signature. For example, the user's name or the user's title.", "type": "object", "additionalProperties": { "type": "string" } }, "signatureTime": { "description": "Optional. Timestamp of the signature.", "type": "string", "format": "google-datetime" } } }, "Image": { "id": "Image", "description": "Raw bytes representing consent artifact content.", "type": "object", "properties": { "rawBytes": { "description": "Consent artifact content represented as a stream of bytes. This field is populated when returned in GetConsentArtifact response, but not included in CreateConsentArtifact and ListConsentArtifact response.", "type": "string", "format": "byte" }, "gcsUri": { "description": "Input only. Points to a Cloud Storage URI containing the consent artifact content. The URI must be in the following format: `gs://{bucket_id}/{object_id}`. The Cloud Healthcare API service account must have the `roles/storage.objectViewer` Cloud IAM role for this Cloud Storage location. The consent artifact content at this URI is copied to a Cloud Storage location managed by the Cloud Healthcare API. Responses to fetching requests return the consent artifact content in raw_bytes.", "type": "string" } } }, "ListConsentArtifactsResponse": { "id": "ListConsentArtifactsResponse", "type": "object", "properties": { "consentArtifacts": { "description": "The returned Consent artifacts. The maximum number of artifacts returned is determined by the value of page_size in the ListConsentArtifactsRequest.", "type": "array", "items": { "$ref": "ConsentArtifact" } }, "nextPageToken": { "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", "type": "string" } } }, "Consent": { "id": "Consent", "description": "Represents a user's consent.", "type": "object", "properties": { "name": { "description": "Identifier. Resource name of the Consent, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`. Cannot be changed after creation.", "type": "string" }, "revisionId": { "description": "Output only. The revision ID of the Consent. The format is an 8-character hexadecimal string. Refer to a specific revision of a Consent by appending `@{revision_id}` to the Consent's resource name.", "readOnly": true, "type": "string" }, "revisionCreateTime": { "description": "Output only. The timestamp that the revision was created.", "readOnly": true, "type": "string", "format": "google-datetime" }, "userId": { "description": "Required. User's UUID provided by the client.", "type": "string" }, "policies": { "description": "Optional. Represents a user's consent in terms of the resources that can be accessed and under what conditions.", "type": "array", "items": { "$ref": "GoogleCloudHealthcareV1beta1ConsentPolicy" } }, "consentArtifact": { "description": "Required. The resource name of the Consent artifact that contains proof of the end user's consent, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consentArtifacts/{consent_artifact_id}`.", "type": "string" }, "state": { "description": "Required. Indicates the current state of this Consent.", "type": "string", "enumDescriptions": [ "No state specified. Treated as ACTIVE only at the time of resource creation.", "The Consent is active and is considered when evaluating a user's consent on resources.", "The archived state is currently not being used.", "A revoked Consent is not considered when evaluating a user's consent on resources.", "A draft Consent is not considered when evaluating a user's consent on resources unless explicitly specified.", "When a draft Consent is rejected by a user, it is set to a rejected state. A rejected Consent is not considered when evaluating a user's consent on resources." ], "enum": [ "STATE_UNSPECIFIED", "ACTIVE", "ARCHIVED", "REVOKED", "DRAFT", "REJECTED" ] }, "expireTime": { "description": "Timestamp in UTC of when this Consent is considered expired.", "type": "string", "format": "google-datetime" }, "ttl": { "description": "Input only. The time to live for this Consent from when it is created.", "type": "string", "format": "google-duration" }, "metadata": { "description": "Optional. User-supplied key-value pairs used to organize Consent resources. Metadata keys must: - be between 1 and 63 characters long - have a UTF-8 encoding of maximum 128 bytes - begin with a letter - consist of up to 63 characters including lowercase letters, numeric characters, underscores, and dashes Metadata values must be: - be between 1 and 63 characters long - have a UTF-8 encoding of maximum 128 bytes - consist of up to 63 characters including lowercase letters, numeric characters, underscores, and dashes No more than 64 metadata entries can be associated with a given consent.", "type": "object", "additionalProperties": { "type": "string" } } } }, "GoogleCloudHealthcareV1beta1ConsentPolicy": { "id": "GoogleCloudHealthcareV1beta1ConsentPolicy", "description": "Represents a user's consent in terms of the resources that can be accessed and under what conditions.", "type": "object", "properties": { "resourceAttributes": { "description": "The resources that this policy applies to. A resource is a match if it matches all the attributes listed here. If empty, this policy applies to all User data mappings for the given user.", "type": "array", "items": { "$ref": "Attribute" } }, "authorizationRule": { "description": "Required. The request conditions to meet to grant access. In addition to any supported comparison operators, authorization rules may have `IN` operator as well as at most 10 logical operators that are limited to `AND` (`&&`), `OR` (`||`).", "$ref": "Expr" } } }, "Attribute": { "id": "Attribute", "description": "An attribute value for a Consent or User data mapping. Each Attribute must have a corresponding AttributeDefinition in the consent store that defines the default and allowed values.", "type": "object", "properties": { "attributeDefinitionId": { "description": "Indicates the name of an attribute defined in the consent store.", "type": "string" }, "values": { "description": "The value of the attribute. Must be an acceptable value as defined in the consent store. For example, if the consent store defines \"data type\" with acceptable values \"questionnaire\" and \"step-count\", when the attribute name is data type, this field must contain one of those values.", "type": "array", "items": { "type": "string" } } } }, "ActivateConsentRequest": { "id": "ActivateConsentRequest", "description": "Activates the latest revision of the specified Consent by committing a new revision with `state` updated to `ACTIVE`. If the latest revision of the given Consent is in the `ACTIVE` state, no new revision is committed. A FAILED_PRECONDITION error occurs if the latest revision of the given consent is in the `REJECTED` or `REVOKED` state.", "type": "object", "properties": { "consentArtifact": { "description": "Required. The resource name of the Consent artifact that contains documentation of the user's consent, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consentArtifacts/{consent_artifact_id}`. If the draft Consent had a Consent artifact, this Consent artifact overwrites it.", "type": "string" }, "expireTime": { "description": "Timestamp in UTC of when this Consent is considered expired.", "type": "string", "format": "google-datetime" }, "ttl": { "description": "The time to live for this Consent from when it is marked as active.", "type": "string", "format": "google-duration" } } }, "RejectConsentRequest": { "id": "RejectConsentRequest", "description": "Rejects the latest revision of the specified Consent by committing a new revision with `state` updated to `REJECTED`. If the latest revision of the given Consent is in the `REJECTED` state, no new revision is committed.", "type": "object", "properties": { "consentArtifact": { "description": "Optional. The resource name of the Consent artifact that contains documentation of the user's rejection of the draft Consent, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consentArtifacts/{consent_artifact_id}`. If the draft Consent had a Consent artifact, this Consent artifact overwrites it.", "type": "string" } } }, "ListConsentsResponse": { "id": "ListConsentsResponse", "type": "object", "properties": { "consents": { "description": "The returned Consents. The maximum number of Consents returned is determined by the value of page_size in the ListConsentsRequest.", "type": "array", "items": { "$ref": "Consent" } }, "nextPageToken": { "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", "type": "string" } } }, "ListConsentRevisionsResponse": { "id": "ListConsentRevisionsResponse", "type": "object", "properties": { "consents": { "description": "The returned Consent revisions. The maximum number of revisions returned is determined by the value of `page_size` in the ListConsentRevisionsRequest.", "type": "array", "items": { "$ref": "Consent" } }, "nextPageToken": { "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", "type": "string" } } }, "RevokeConsentRequest": { "id": "RevokeConsentRequest", "description": "Revokes the latest revision of the specified Consent by committing a new revision with `state` updated to `REVOKED`. If the latest revision of the given Consent is in the `REVOKED` state, no new revision is committed.", "type": "object", "properties": { "consentArtifact": { "description": "Optional. The resource name of the Consent artifact that contains proof of the user's revocation of the Consent, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consentArtifacts/{consent_artifact_id}`.", "type": "string" } } }, "UserDataMapping": { "id": "UserDataMapping", "description": "Maps a resource to the associated user and Attributes.", "type": "object", "properties": { "name": { "description": "Resource name of the User data mapping, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/userDataMappings/{user_data_mapping_id}`.", "type": "string" }, "dataId": { "description": "Required. A unique identifier for the mapped resource.", "type": "string" }, "userId": { "description": "Required. User's UUID provided by the client.", "type": "string" }, "resourceAttributes": { "description": "Attributes of the resource. Only explicitly set attributes are displayed here. Attribute definitions with defaults set implicitly apply to these User data mappings. Attributes listed here must be single valued, that is, exactly one value is specified for the field \"values\" in each Attribute.", "type": "array", "items": { "$ref": "Attribute" } }, "archived": { "description": "Output only. Indicates whether this mapping is archived.", "readOnly": true, "type": "boolean" }, "archiveTime": { "description": "Output only. Indicates the time when this mapping was archived.", "readOnly": true, "type": "string", "format": "google-datetime" } } }, "ListUserDataMappingsResponse": { "id": "ListUserDataMappingsResponse", "type": "object", "properties": { "userDataMappings": { "description": "The returned User data mappings. The maximum number of User data mappings returned is determined by the value of page_size in the ListUserDataMappingsRequest.", "type": "array", "items": { "$ref": "UserDataMapping" } }, "nextPageToken": { "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", "type": "string" } } }, "ArchiveUserDataMappingRequest": { "id": "ArchiveUserDataMappingRequest", "description": "Archives the specified User data mapping.", "type": "object", "properties": {} }, "ArchiveUserDataMappingResponse": { "id": "ArchiveUserDataMappingResponse", "description": "Archives the specified User data mapping.", "type": "object", "properties": {} }, "CheckDataAccessRequest": { "id": "CheckDataAccessRequest", "description": "Checks if a particular data_id of a User data mapping in the given consent store is consented for a given use.", "type": "object", "properties": { "dataId": { "description": "Required. The unique identifier of the resource to check access for. This identifier must correspond to a User data mapping in the given consent store.", "type": "string" }, "requestAttributes": { "description": "The values of request attributes associated with this access request.", "type": "object", "additionalProperties": { "type": "string" } }, "consentList": { "description": "Optional. Specific Consents to evaluate the access request against. These Consents must have the same `user_id` as the evaluated User data mapping, must exist in the current `consent_store`, and have a `state` of either `ACTIVE` or `DRAFT`. A maximum of 100 Consents can be provided here. If no selection is specified, the access request is evaluated against all `ACTIVE` unexpired Consents with the same `user_id` as the evaluated User data mapping.", "$ref": "ConsentList" }, "responseView": { "description": "Optional. The view for CheckDataAccessResponse. If unspecified, defaults to `BASIC` and returns `consented` as `TRUE` or `FALSE`.", "type": "string", "enumDescriptions": [ "No response view specified. The API will default to the BASIC view.", "Only the `consented` field is populated in CheckDataAccessResponse.", "All fields within CheckDataAccessResponse are populated. When set to `FULL`, all `ACTIVE` Consents are evaluated even if a matching policy is found during evaluation." ], "enum": [ "RESPONSE_VIEW_UNSPECIFIED", "BASIC", "FULL" ] } } }, "ConsentList": { "id": "ConsentList", "description": "List of resource names of Consent resources.", "type": "object", "properties": { "consents": { "description": "The resource names of the Consents to evaluate against, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`.", "type": "array", "items": { "type": "string" } } } }, "CheckDataAccessResponse": { "id": "CheckDataAccessResponse", "description": "Checks if a particular data_id of a User data mapping in the given consent store is consented for a given use.", "type": "object", "properties": { "consented": { "description": "Whether the requested resource is consented for the given use.", "type": "boolean" }, "consentDetails": { "description": "The resource names of all evaluated Consents mapped to their evaluation.", "type": "object", "additionalProperties": { "$ref": "ConsentEvaluation" } } } }, "ConsentEvaluation": { "id": "ConsentEvaluation", "description": "The detailed evaluation of a particular Consent.", "type": "object", "properties": { "evaluationResult": { "description": "The evaluation result.", "type": "string", "enumDescriptions": [ "No evaluation result specified. This option is invalid.", "The Consent is not applicable to the requested access determination. For example, the Consent does not apply to the user for which the access determination is requested, or it has a `state` of `REVOKED`, or it has expired.", "The Consent does not have a policy that matches the `resource_attributes` of the evaluated resource.", "The Consent has at least one policy that matches the `resource_attributes` of the evaluated resource, but no `authorization_rule` was satisfied.", "The Consent has at least one policy that matches the `resource_attributes` of the evaluated resource, and at least one `authorization_rule` was satisfied." ], "enum": [ "EVALUATION_RESULT_UNSPECIFIED", "NOT_APPLICABLE", "NO_MATCHING_POLICY", "NO_SATISFIED_POLICY", "HAS_SATISFIED_POLICY" ] } } }, "QueryAccessibleDataRequest": { "id": "QueryAccessibleDataRequest", "description": "Queries all data_ids that are consented for a given use in the given consent store and writes them to a specified destination. The returned Operation includes a progress counter for the number of User data mappings processed. Errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging] (https://cloud.google.com/healthcare/docs/how-tos/logging) and [QueryAccessibleData] for a sample log entry).", "type": "object", "properties": { "gcsDestination": { "description": "The Cloud Storage destination. The Cloud Healthcare API service account must have the `roles/storage.objectAdmin` Cloud IAM role for this Cloud Storage location. The object name is in the following format: query-accessible-data-result-{operation_id}.txt where each line contains a single data_id.", "$ref": "GoogleCloudHealthcareV1beta1ConsentGcsDestination" }, "resourceAttributes": { "description": "Optional. The values of resource attributes associated with the type of resources being requested. If no values are specified, then all resource types are included in the output.", "type": "object", "additionalProperties": { "type": "string" } }, "requestAttributes": { "description": "The values of request attributes associated with this access request.", "type": "object", "additionalProperties": { "type": "string" } } } }, "GoogleCloudHealthcareV1beta1ConsentGcsDestination": { "id": "GoogleCloudHealthcareV1beta1ConsentGcsDestination", "description": "The Cloud Storage location for export.", "type": "object", "properties": { "uriPrefix": { "description": "URI for a Cloud Storage directory where the server writes result files, in the format `gs://{bucket-id}/{path/to/destination/dir}`. If there is no trailing slash, the service appends one when composing the object path. The user is responsible for creating the Cloud Storage bucket and directory referenced in `uri_prefix`.", "type": "string" } } }, "EvaluateUserConsentsRequest": { "id": "EvaluateUserConsentsRequest", "description": "Evaluate a user's Consents for all matching User data mappings. Note: User data mappings are indexed asynchronously, causing slight delays between the time mappings are created or updated and when they are included in EvaluateUserConsents results.", "type": "object", "properties": { "userId": { "description": "Required. User ID to evaluate consents for.", "type": "string" }, "resourceAttributes": { "description": "Optional. The values of resource attributes associated with the resources being requested. If no values are specified, then all resources are queried.", "type": "object", "additionalProperties": { "type": "string" } }, "requestAttributes": { "description": "Required. The values of request attributes associated with this access request.", "type": "object", "additionalProperties": { "type": "string" } }, "consentList": { "description": "Optional. Specific Consents to evaluate the access request against. These Consents must have the same `user_id` as the User data mappings being evalauted, must exist in the current `consent_store`, and must have a `state` of either `ACTIVE` or `DRAFT`. A maximum of 100 Consents can be provided here. If unspecified, all `ACTIVE` unexpired Consents in the current `consent_store` will be evaluated.", "$ref": "ConsentList" }, "responseView": { "description": "Optional. The view for EvaluateUserConsentsResponse. If unspecified, defaults to `BASIC` and returns `consented` as `TRUE` or `FALSE`.", "type": "string", "enumDescriptions": [ "No response view specified. The API will default to the BASIC view.", "Only the `data_id` and `consented` fields are populated in the response.", "All fields within the response are populated. When set to `FULL`, all `ACTIVE` Consents are evaluated even if a matching policy is found during evaluation." ], "enum": [ "RESPONSE_VIEW_UNSPECIFIED", "BASIC", "FULL" ] }, "pageSize": { "description": "Optional. Limit on the number of User data mappings to return in a single response. If not specified, 100 is used. May not be larger than 1000.", "type": "integer", "format": "int32" }, "pageToken": { "description": "Optional. Token to retrieve the next page of results, or empty to get the first page.", "type": "string" } } }, "EvaluateUserConsentsResponse": { "id": "EvaluateUserConsentsResponse", "type": "object", "properties": { "results": { "description": "The consent evaluation result for each `data_id`.", "type": "array", "items": { "$ref": "Result" } }, "nextPageToken": { "description": "Token to retrieve the next page of results, or empty if there are no more results in the list. This token is valid for 72 hours after it is created.", "type": "string" } } }, "Result": { "id": "Result", "description": "The consent evaluation result for a single `data_id`.", "type": "object", "properties": { "dataId": { "description": "The unique identifier of the evaluated resource.", "type": "string" }, "consented": { "description": "Whether the resource is consented for the given use.", "type": "boolean" }, "consentDetails": { "description": "The resource names of all evaluated Consents mapped to their evaluation.", "type": "object", "additionalProperties": { "$ref": "ConsentEvaluation" } } } }, "DeidentifyFhirStoreRequest": { "id": "DeidentifyFhirStoreRequest", "description": "Creates a new FHIR store with sensitive information de-identified.", "type": "object", "properties": { "destinationStore": { "description": "Required. The name of the FHIR store to create and write the redacted data to. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`. * The destination dataset must exist. * The source dataset and destination dataset must both reside in the same location. De-identifying data across multiple locations is not supported. * The destination FHIR store must exist. * The caller must have the healthcare.fhirResources.update permission to write to the destination FHIR store.", "type": "string" }, "config": { "description": "Deidentify configuration. Only one of `config` and `gcs_config_uri` can be specified.", "$ref": "DeidentifyConfig" }, "gcsConfigUri": { "description": "Cloud Storage location to read the JSON cloud.healthcare.deidentify.DeidentifyConfig from, overriding the default config. Must be of the form `gs://{bucket_id}/path/to/object`. The Cloud Storage location must grant the Cloud IAM role `roles/storage.objectViewer` to the project's Cloud Healthcare Service Agent service account. Only one of `config` and `gcs_config_uri` can be specified.", "type": "string" }, "resourceFilter": { "description": "A filter specifying the resources to include in the output. If not specified, all resources are included in the output.", "$ref": "FhirFilter" }, "skipModifiedResources": { "description": "If true, skips resources that are created or modified after the de-identify operation is created.", "type": "boolean" } } }, "DeidentifyConfig": { "id": "DeidentifyConfig", "description": "Configures de-id options specific to different types of content. Each submessage customizes the handling of an https://tools.ietf.org/html/rfc6838 media type or subtype. Configs are applied in a nested manner at runtime.", "type": "object", "properties": { "dicom": { "description": "Configures de-id of application/DICOM content. Deprecated. Use `dicom_tag_config` instead.", "deprecated": true, "$ref": "DicomConfig" }, "dicomTagConfig": { "description": "Configures de-id of application/DICOM content.", "$ref": "DicomTagConfig" }, "fhir": { "description": "Configures de-id of application/FHIR content. Deprecated. Use `fhir_field_config` instead.", "deprecated": true, "$ref": "FhirConfig" }, "fhirFieldConfig": { "description": "Configures de-id of application/FHIR content.", "$ref": "FhirFieldConfig" }, "image": { "description": "Configures the de-identification of image pixels in the source_dataset. Deprecated. Use `dicom_tag_config.options.clean_image` instead.", "deprecated": true, "$ref": "ImageConfig" }, "annotation": { "description": "Configures how annotations, meaning that the location and infoType of sensitive information findings, are created during de-identification. If unspecified, no annotations are created.", "$ref": "AnnotationConfig" }, "text": { "description": "Configures de-identification of text wherever it is found in the source_dataset.", "$ref": "TextConfig" }, "operationMetadata": { "description": "Details about the work the de-identify operation performed.", "$ref": "DeidentifyOperationMetadata" }, "useRegionalDataProcessing": { "description": "Ensures in-flight data remains in the region of origin during de-identification. Using this option results in a significant reduction of throughput, and is not compatible with `LOCATION` or `ORGANIZATION_NAME` infoTypes. If the deprecated DicomConfig or FhirConfig are used, then `LOCATION` must be excluded within TextConfig, and must also be excluded within ImageConfig if image redaction is required.", "type": "boolean" } } }, "DicomConfig": { "id": "DicomConfig", "description": "Specifies the parameters needed for de-identification of DICOM stores.", "type": "object", "properties": { "skipIdRedaction": { "description": "If true, skip replacing StudyInstanceUID, SeriesInstanceUID, SOPInstanceUID, and MediaStorageSOPInstanceUID and leave them untouched. The Cloud Healthcare API regenerates these UIDs by default based on the DICOM Standard's reasoning: \"Whilst these UIDs cannot be mapped directly to an individual out of context, given access to the original images, or to a database of the original images containing the UIDs, it would be possible to recover the individual's identity.\" http://dicom.nema.org/medical/dicom/current/output/chtml/part15/sect_E.3.9.html", "type": "boolean" }, "keepList": { "description": "List of tags to keep. Remove all other tags.", "$ref": "TagFilterList" }, "removeList": { "description": "List of tags to remove. Keep all other tags.", "$ref": "TagFilterList" }, "filterProfile": { "description": "Tag filtering profile that determines which tags to keep/remove.", "type": "string", "enumDescriptions": [ "No tag filtration profile provided. Same as KEEP_ALL_PROFILE.", "Keep only the tags required to produce valid DICOM objects.", "Remove tags based on DICOM Standard's Attribute Confidentiality Basic Profile (DICOM Standard Edition 2018e) http://dicom.nema.org/medical/dicom/2018e/output/chtml/part15/chapter_E.html.", "Keep all tags.", "Inspect within tag contents and replace sensitive text. The process can be configured using the TextConfig. Applies to all tags with the following Value Representation names: AE, LO, LT, PN, SH, ST, UC, UT, DA, DT, AS" ], "enum": [ "TAG_FILTER_PROFILE_UNSPECIFIED", "MINIMAL_KEEP_LIST_PROFILE", "ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE", "KEEP_ALL_PROFILE", "DEIDENTIFY_TAG_CONTENTS" ] } } }, "TagFilterList": { "id": "TagFilterList", "description": "List of tags to be filtered.", "type": "object", "properties": { "tags": { "description": "Tags to be filtered. Tags must be DICOM Data Elements, File Meta Elements, or Directory Structuring Elements, as defined at: http://dicom.nema.org/medical/dicom/current/output/html/part06.html#table_6-1,. They may be provided by \"Keyword\" or \"Tag\". For example, \"PatientID\", \"00100010\".", "type": "array", "items": { "type": "string" } } } }, "DicomTagConfig": { "id": "DicomTagConfig", "description": "Specifies the parameters needed for the de-identification of DICOM stores.", "type": "object", "properties": { "profileType": { "description": "Base profile type for handling DICOM tags.", "type": "string", "enumDescriptions": [ "No profile provided. Same as `ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE`.", "Keep only the tags required to produce valid DICOM objects.", "Remove tags based on DICOM Standard's [Attribute Confidentiality Basic Profile (DICOM Standard Edition 2018e)](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part15/chapter_E.html).", "Keep all tags.", "Inspect tag contents and replace sensitive text. The process can be configured using the TextConfig. Applies to all tags with the following [Value Representations] (http://dicom.nema.org/medical/dicom/2018e/output/chtml/part05/sect_6.2.html#table_6.2-1): AE, LO, LT, PN, SH, ST, UC, UT, DA, DT, AS" ], "enum": [ "PROFILE_TYPE_UNSPECIFIED", "MINIMAL_KEEP_LIST_PROFILE", "ATTRIBUTE_CONFIDENTIALITY_BASIC_PROFILE", "KEEP_ALL_PROFILE", "DEIDENTIFY_TAG_CONTENTS" ] }, "options": { "description": "Specifies additional options to apply, overriding the base `profile`.", "$ref": "Options" }, "actions": { "description": "Specifies custom tag selections and `Actions` to apply to them. Overrides `options` and `profile`. Conflicting `Actions` are applied in the order given.", "type": "array", "items": { "$ref": "Action" } } } }, "Options": { "id": "Options", "description": "Specifies additional options to apply to the base profile.", "type": "object", "properties": { "cleanImage": { "description": "Apply `Action.clean_image` to [`PixelData`](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part06/chapter_6.html) as configured.", "$ref": "ImageConfig" }, "primaryIds": { "description": "Set `Action` for [`StudyInstanceUID`, `SeriesInstanceUID`, `SOPInstanceUID`, and `MediaStorageSOPInstanceUID`](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part06/chapter_6.html).", "type": "string", "enumDescriptions": [ "No value provided. Default to the behavior specified by the base profile.", "Keep primary IDs.", "Regenerate primary IDs." ], "enum": [ "PRIMARY_IDS_OPTION_UNSPECIFIED", "KEEP", "REGEN" ] }, "cleanDescriptors": { "description": "Set Clean Descriptors Option.", "$ref": "CleanDescriptorsOption" } } }, "ImageConfig": { "id": "ImageConfig", "description": "Specifies how to handle de-identification of image pixels.", "type": "object", "properties": { "textRedactionMode": { "description": "Determines how to redact text from image.", "type": "string", "enumDescriptions": [ "No text redaction specified. Same as REDACT_NO_TEXT.", "Redact all text.", "Redact sensitive text. Uses the set of [Default DICOM InfoTypes](https://cloud.google.com/healthcare-api/docs/how-tos/dicom-deidentify#default_dicom_infotypes).", "Do not redact text.", "This mode is like `REDACT_SENSITIVE_TEXT` with the addition of the [Clean Descriptors Option] (https://dicom.nema.org/medical/dicom/2018e/output/chtml/part15/sect_E.3.5.html) enabled: When cleaning text, the process attempts to transform phrases matching any of the tags marked for removal (action codes D, Z, X, and U) in the [Basic Profile] (https://dicom.nema.org/medical/dicom/2018e/output/chtml/part15/chapter_E.html). These contextual phrases are replaced with the token \"[CTX]\". This mode uses an additional InfoType during inspection." ], "enum": [ "TEXT_REDACTION_MODE_UNSPECIFIED", "REDACT_ALL_TEXT", "REDACT_SENSITIVE_TEXT", "REDACT_NO_TEXT", "REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS" ] }, "additionalInfoTypes": { "description": "Additional InfoTypes to redact in the images in addition to those used by `text_redaction_mode`. Can only be used when `text_redaction_mode` is set to `REDACT_SENSITIVE_TEXT`, `REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS` or `TEXT_REDACTION_MODE_UNSPECIFIED`.", "type": "array", "items": { "type": "string" } }, "excludeInfoTypes": { "description": "InfoTypes to skip redacting, overriding those used by `text_redaction_mode`. Can only be used when `text_redaction_mode` is set to `REDACT_SENSITIVE_TEXT` or `REDACT_SENSITIVE_TEXT_CLEAN_DESCRIPTORS`.", "type": "array", "items": { "type": "string" } } } }, "CleanDescriptorsOption": { "id": "CleanDescriptorsOption", "description": "This option is based on the DICOM Standard's [Clean Descriptors Option](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part15/sect_E.3.5.html), and the `CleanText` `Action` is applied to all the specified fields. When cleaning text, the process attempts to transform phrases matching any of the tags marked for removal (action codes D, Z, X, and U) in the [Basic Profile](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part15/chapter_E.html). These contextual phrases are replaced with the token \"[CTX]\". This option uses an additional infoType during inspection.", "type": "object", "properties": {} }, "Action": { "id": "Action", "description": "Specifies a selection of tags and an `Action` to apply to each one.", "type": "object", "properties": { "queries": { "description": "Select all tags with the listed tag IDs, names, or Value Representations (VRs). Examples: ID: \"00100010\" Keyword: \"PatientName\" VR: \"PN\"", "type": "array", "items": { "type": "string" } }, "keepTag": { "description": "Keep tag unchanged.", "$ref": "KeepTag" }, "removeTag": { "description": "Replace with empty tag.", "$ref": "RemoveTag" }, "deleteTag": { "description": "Delete tag.", "$ref": "DeleteTag" }, "resetTag": { "description": "Reset tag to a placeholder value.", "$ref": "ResetTag" }, "cleanTextTag": { "description": "Inspect text and transform sensitive text. Configurable via TextConfig. Supported Value Representations: AE, LO, LT, PN, SH, ST, UC, UT, DA, DT, AS", "$ref": "CleanTextTag" }, "cleanImageTag": { "description": "Inspect image and transform sensitive burnt-in text. Doesn't apply to elements nested in a sequence, which revert to `Keep`. Supported [tags](http://dicom.nema.org/medical/dicom/2018e/output/chtml/part06/chapter_6.html): PixelData", "$ref": "ImageConfig" }, "regenUidTag": { "description": "Replace UID with a new generated UID. Supported [Value Representation] (http://dicom.nema.org/medical/dicom/2018e/output/chtml/part05/sect_6.2.html#table_6.2-1): UI", "$ref": "RegenUidTag" }, "recurseTag": { "description": "Recursively apply DICOM de-id to tags nested in a sequence. Supported [Value Representation] (http://dicom.nema.org/medical/dicom/2018e/output/chtml/part05/sect_6.2.html#table_6.2-1): SQ", "$ref": "RecurseTag" } } }, "KeepTag": { "id": "KeepTag", "description": "Keep tag unchanged.", "type": "object", "properties": {} }, "RemoveTag": { "id": "RemoveTag", "description": "Replace with empty tag.", "type": "object", "properties": {} }, "DeleteTag": { "id": "DeleteTag", "description": "Delete tag.", "type": "object", "properties": {} }, "ResetTag": { "id": "ResetTag", "description": "Reset tag to a placeholder value.", "type": "object", "properties": {} }, "CleanTextTag": { "id": "CleanTextTag", "description": "Inspect text and transform sensitive text. Configurable using TextConfig. Supported [Value Representations] (http://dicom.nema.org/medical/dicom/2018e/output/chtml/part05/sect_6.2.html#table_6.2-1): AE, LO, LT, PN, SH, ST, UC, UT, DA, DT, AS", "type": "object", "properties": {} }, "RegenUidTag": { "id": "RegenUidTag", "description": "Replace UID with a new generated UID. Supported [Value Representation] (http://dicom.nema.org/medical/dicom/2018e/output/chtml/part05/sect_6.2.html#table_6.2-1): UI", "type": "object", "properties": {} }, "RecurseTag": { "id": "RecurseTag", "description": "Recursively apply DICOM de-id to tags nested in a sequence. Supported [Value Representation] (http://dicom.nema.org/medical/dicom/2018e/output/chtml/part05/sect_6.2.html#table_6.2-1): SQ", "type": "object", "properties": {} }, "FhirConfig": { "id": "FhirConfig", "description": "Specifies how to handle de-identification of a FHIR store.", "type": "object", "properties": { "fieldMetadataList": { "description": "Specifies FHIR paths to match and how to transform them. Any field that is not matched by a FieldMetadata is passed through to the output dataset unmodified. All extensions will be processed according to `default_keep_extensions`. If a field can be matched by more than one FieldMetadata, the first FieldMetadata.Action is applied.", "type": "array", "items": { "$ref": "FieldMetadata" } }, "defaultKeepExtensions": { "description": "The behaviour for handling FHIR extensions that aren't otherwise specified for de-identification. If true, all extensions are preserved during de-identification by default. If false or unspecified, all extensions are removed during de-identification by default.", "type": "boolean" } } }, "FieldMetadata": { "id": "FieldMetadata", "description": "Specifies FHIR paths to match, and how to handle de-identification of matching fields.", "type": "object", "properties": { "paths": { "description": "List of paths to FHIR fields to redact. Each path is a period-separated list where each component is either a field name or FHIR type name. All types begin with an upper case letter. For example, the resource field \"Patient.Address.city\", which uses a string type, can be matched by \"Patient.Address.String\". Path also supports partial matching. For example, \"Patient.Address.city\" can be matched by \"Address.city\" (Patient omitted). Partial matching and type matching can be combined. For example, \"Patient.Address.city\" can be matched by \"Address.String\". For \"choice\" types (those defined in the FHIR spec with the form: field[x]), use two separate components. For example, \"deceasedAge.unit\" is matched by \"Deceased.Age.unit\". Supported types are: AdministrativeGenderCode, Base64Binary, Boolean, Code, Date, DateTime, Decimal, HumanName, Id, Instant, Integer, LanguageCode, Markdown, Oid, PositiveInt, String, UnsignedInt, Uri, Uuid, Xhtml. The sub-type for HumanName(for example HumanName.given, HumanName.family) can be omitted.", "type": "array", "items": { "type": "string" } }, "action": { "description": "Deidentify action for one field.", "type": "string", "enumDescriptions": [ "No action specified.", "Transform the entire field based on transformations specified in TextConfig. When the specified transformation cannot be applied to a field, RedactConfig is used. For example, a Crypto Hash transformation can't be applied to a FHIR Date field.", "Inspect and transform any found PHI. When `AnnotationConfig` is provided, annotations of PHI will be generated, except for Date and Datetime.", "Do not transform." ], "enum": [ "ACTION_UNSPECIFIED", "TRANSFORM", "INSPECT_AND_TRANSFORM", "DO_NOT_TRANSFORM" ] } } }, "FhirFieldConfig": { "id": "FhirFieldConfig", "description": "Specifies how to handle the de-identification of a FHIR store.", "type": "object", "properties": { "profileType": { "description": "Base profile type for handling FHIR fields.", "type": "string", "enumDescriptions": [ "No profile provided. Same as `BASIC`.", "Keep all fields.", "Transforms known [HIPAA 18](https://www.hhs.gov/hipaa/for-professionals/privacy/special-topics/de-identification/index.html#standard) fields and cleans known unstructured text fields.", "Cleans all supported tags. Applies to types: Code, Date, DateTime, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml." ], "enum": [ "PROFILE_TYPE_UNSPECIFIED", "KEEP_ALL", "BASIC", "CLEAN_ALL" ] }, "options": { "description": "Specifies additional options, overriding the base ProfileType.", "$ref": "GoogleCloudHealthcareV1beta1DeidentifyOptions" }, "fieldMetadataList": { "description": "Specifies FHIR paths to match and how to transform them. Any field that is not matched by a FieldMetadata `action` is passed through to the output dataset unmodified. All extensions will be processed according to keep_extensions. If a field can be matched by more than one FieldMetadata `action`, the first `action` option is applied. Overrides options and the union field `profile` in FhirFieldConfig.", "type": "array", "items": { "$ref": "GoogleCloudHealthcareV1beta1DeidentifyFieldMetadata" } } } }, "GoogleCloudHealthcareV1beta1DeidentifyOptions": { "id": "GoogleCloudHealthcareV1beta1DeidentifyOptions", "description": "Specifies additional options to apply to the base ProfileType.", "type": "object", "properties": { "characterMaskConfig": { "description": "Character mask config for CharacterMaskField.", "$ref": "CharacterMaskConfig" }, "dateShiftConfig": { "description": "Date shifting config for CharacterMaskField.", "$ref": "DateShiftConfig" }, "cryptoHashConfig": { "description": "Crypto hash config for CharacterMaskField.", "$ref": "CryptoHashConfig" }, "contextualDeid": { "description": "Configure contextual de-id.", "$ref": "ContextualDeidConfig" }, "keepExtensions": { "description": "Configure keeping extensions by default.", "$ref": "KeepExtensionsConfig" } } }, "CharacterMaskConfig": { "id": "CharacterMaskConfig", "description": "Mask a string by replacing its characters with a fixed character.", "type": "object", "properties": { "maskingCharacter": { "description": "Character to mask the sensitive values. If not supplied, defaults to \"*\".", "type": "string" } } }, "DateShiftConfig": { "id": "DateShiftConfig", "description": "Shift a date forward or backward in time by a random amount which is consistent for a given patient and crypto key combination.", "type": "object", "properties": { "cryptoKey": { "description": "An AES 128/192/256 bit key. The date shift is computed based on this key and the patient ID. If the patient ID is empty for a DICOM resource, the date shift is computed based on this key and the study instance UID. If crypto_key is not set, then kms_wrapped is used to calculate the date shift. If neither is set, a default key is generated for each de-identify operation. Must not be set if kms_wrapped is set.", "type": "string", "format": "byte" }, "kmsWrapped": { "description": "KMS wrapped key. If kms_wrapped is not set, then crypto_key is used to calculate the date shift. If neither is set, a default key is generated for each de-identify operation. Must not be set if crypto_key is set.", "$ref": "KmsWrappedCryptoKey" } } }, "KmsWrappedCryptoKey": { "id": "KmsWrappedCryptoKey", "description": "Include to use an existing data crypto key wrapped by KMS. The wrapped key must be a 128-, 192-, or 256-bit key. The key must grant the Cloud IAM permission `cloudkms.cryptoKeyVersions.useToDecrypt` to the project's Cloud Healthcare Service Agent service account. For more information, see [Creating a wrapped key] (https://cloud.google.com/dlp/docs/create-wrapped-key).", "type": "object", "properties": { "wrappedKey": { "description": "Required. The wrapped data crypto key.", "type": "string", "format": "byte" }, "cryptoKey": { "description": "Required. The resource name of the KMS CryptoKey to use for unwrapping. For example, `projects/{project_id}/locations/{location_id}/keyRings/{keyring}/cryptoKeys/{key}`.", "type": "string" } } }, "CryptoHashConfig": { "id": "CryptoHashConfig", "description": "Pseudonymization method that generates surrogates via cryptographic hashing. Uses SHA-256. Outputs a base64-encoded representation of the hashed output. For example, `L7k0BHmF1ha5U3NfGykjro4xWi1MPVQPjhMAZbSV9mM=`.", "type": "object", "properties": { "cryptoKey": { "description": "An AES 128/192/256 bit key. Causes the hash to be computed based on this key. A default key is generated for each Deidentify operation and is used when neither crypto_key nor kms_wrapped is specified. Must not be set if kms_wrapped is set.", "type": "string", "format": "byte" }, "kmsWrapped": { "description": "KMS wrapped key. Must not be set if crypto_key is set.", "$ref": "KmsWrappedCryptoKey" } } }, "ContextualDeidConfig": { "id": "ContextualDeidConfig", "description": "Fields that don't match a KeepField or CleanTextField `action` in the BASIC profile are collected into a contextual phrase list. For fields that match a CleanTextField `action` in FieldMetadata or ProfileType, the process attempts to transform phrases matching these contextual entries. These contextual phrases are replaced with the token \"[CTX]\". This feature uses an additional InfoType during inspection.", "type": "object", "properties": {} }, "KeepExtensionsConfig": { "id": "KeepExtensionsConfig", "description": "The behavior for handling FHIR extensions that aren't otherwise specified for de-identification. If provided, all extensions are preserved during de-identification by default. If unspecified, all extensions are removed during de-identification by default.", "type": "object", "properties": {} }, "GoogleCloudHealthcareV1beta1DeidentifyFieldMetadata": { "id": "GoogleCloudHealthcareV1beta1DeidentifyFieldMetadata", "description": "Specifies the FHIR paths to match and how to handle the de-identification of matching fields.", "type": "object", "properties": { "paths": { "description": "List of paths to FHIR fields to redact. Each path is a period-separated list where each component is either a field name or FHIR [type](https://www.hl7.org/fhir/datatypes.html) name. All types begin with an upper case letter. For example, the resource field `Patient.Address.city`, which uses a [string](https://www.hl7.org/fhir/datatypes-definitions.html#Address.city) type, can be matched by `Patient.Address.String`. Partial matching is supported. For example, `Patient.Address.city` can be matched by `Address.city` (with `Patient` omitted). Partial matching and type matching can be combined, for example `Patient.Address.city` can be matched by `Address.String`. For \"choice\" types (those defined in the FHIR spec with the format `field[x]`), use two separate components. For example, `deceasedAge.unit` is matched by `Deceased.Age.unit`. The following types are supported: AdministrativeGenderCode, Base64Binary, Boolean, Code, Date, DateTime, Decimal, HumanName, Id, Instant, Integer, LanguageCode, Markdown, Oid, PositiveInt, String, UnsignedInt, Uri, Uuid, Xhtml. The sub-type for HumanName (for example `HumanName.given`, `HumanName.family`) can be omitted.", "type": "array", "items": { "type": "string" } }, "keepField": { "description": "Keep the field unchanged.", "$ref": "KeepField" }, "removeField": { "description": "Remove the field.", "$ref": "RemoveField" }, "cleanTextField": { "description": "Inspect the field's text and transform sensitive text. Configure using TextConfig. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Date, DateTime, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml.", "$ref": "CleanTextField" }, "characterMaskField": { "description": "Replace the field's value with a masking character. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml.", "$ref": "CharacterMaskField" }, "dateShiftField": { "description": "Shift the date by a randomized number of days. See [date shifting](https://cloud.google.com/dlp/docs/concepts-date-shifting) for more information. Supported [types](https://www.hl7.org/fhir/datatypes.html): Date, DateTime.", "$ref": "DateShiftField" }, "cryptoHashField": { "description": "Replace field value with a hash of that value. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml.", "$ref": "CryptoHashField" } } }, "KeepField": { "id": "KeepField", "description": "Keep field unchanged.", "type": "object", "properties": {} }, "RemoveField": { "id": "RemoveField", "description": "Remove field.", "type": "object", "properties": {} }, "CleanTextField": { "id": "CleanTextField", "description": "Inspect text and transform sensitive text. Configure using TextConfig. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Date, DateTime, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml.", "type": "object", "properties": {} }, "CharacterMaskField": { "id": "CharacterMaskField", "description": "Replace field value with masking character. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml.", "type": "object", "properties": {} }, "DateShiftField": { "id": "DateShiftField", "description": "Shift the date by a randomized number of days. See [date shifting](https://cloud.google.com/dlp/docs/concepts-date-shifting) for more information. Supported [types](https://www.hl7.org/fhir/datatypes.html): Date, DateTime.", "type": "object", "properties": {} }, "CryptoHashField": { "id": "CryptoHashField", "description": "Replace field value with a hash of that value. Supported [types](https://www.hl7.org/fhir/datatypes.html): Code, Decimal, HumanName, Id, LanguageCode, Markdown, Oid, String, Uri, Uuid, Xhtml.", "type": "object", "properties": {} }, "AnnotationConfig": { "id": "AnnotationConfig", "description": "Specifies how to store annotations during de-identification operation.", "type": "object", "properties": { "annotationStoreName": { "description": "The name of the annotation store, in the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/annotationStores/{annotation_store_id}`). * The destination annotation store must be in the same project as the source data. De-identifying data across multiple projects is not supported. * The destination annotation store must exist when using DeidentifyDicomStore or DeidentifyFhirStore. DeidentifyDataset automatically creates the destination annotation store.", "type": "string" }, "storeQuote": { "description": "If set to true, the sensitive texts are included in SensitiveTextAnnotation of Annotation.", "type": "boolean" } } }, "TextConfig": { "id": "TextConfig", "description": "Configures how to transform sensitive text `InfoTypes`.", "type": "object", "properties": { "transformations": { "description": "The transformations to apply to the detected data. Deprecated. Use `additional_transformations` instead.", "deprecated": true, "type": "array", "items": { "$ref": "InfoTypeTransformation" } }, "profileType": { "description": "Base profile type for text transformation.", "type": "string", "enumDescriptions": [ "No profile provided. Same as BASIC.", "Empty profile which does not perform any transformations.", "Automatically converts \"DATE\" infoTypes using a DateShiftConfig, and all other infoTypes using a ReplaceWithInfoTypeConfig." ], "enum": [ "PROFILE_TYPE_UNSPECIFIED", "EMPTY", "BASIC" ] }, "additionalTransformations": { "description": "Additional transformations to apply to the detected data, overriding `profile`.", "type": "array", "items": { "$ref": "InfoTypeTransformation" } }, "excludeInfoTypes": { "description": "InfoTypes to skip transforming, overriding `profile`.", "type": "array", "items": { "type": "string" } } } }, "InfoTypeTransformation": { "id": "InfoTypeTransformation", "description": "A transformation to apply to text that is identified as a specific info_type.", "type": "object", "properties": { "infoTypes": { "description": "`InfoTypes` to apply this transformation to. If this is not specified, this transformation becomes the default transformation, and is used for any `info_type` that is not specified in another transformation.", "type": "array", "items": { "type": "string" } }, "redactConfig": { "description": "Config for text redaction.", "$ref": "RedactConfig" }, "characterMaskConfig": { "description": "Config for character mask.", "$ref": "CharacterMaskConfig" }, "dateShiftConfig": { "description": "Config for date shift.", "$ref": "DateShiftConfig" }, "cryptoHashConfig": { "description": "Config for crypto hash.", "$ref": "CryptoHashConfig" }, "replaceWithInfoTypeConfig": { "description": "Config for replace with InfoType.", "$ref": "ReplaceWithInfoTypeConfig" } } }, "RedactConfig": { "id": "RedactConfig", "description": "Define how to redact sensitive values. Default behaviour is erase. For example, \"My name is Jane.\" becomes \"My name is .\"", "type": "object", "properties": {} }, "ReplaceWithInfoTypeConfig": { "id": "ReplaceWithInfoTypeConfig", "description": "When using the INSPECT_AND_TRANSFORM action, each match is replaced with the name of the info_type. For example, \"My name is Jane\" becomes \"My name is [PERSON_NAME].\" The TRANSFORM action is equivalent to redacting.", "type": "object", "properties": {} }, "DeidentifyOperationMetadata": { "id": "DeidentifyOperationMetadata", "description": "Details about the work the de-identify operation performed.", "type": "object", "properties": { "fhirOutput": { "description": "Details about the FHIR store to write the output to.", "$ref": "FhirOutput" } } }, "FhirOutput": { "id": "FhirOutput", "description": "Details about the FHIR store to write the output to.", "type": "object", "properties": { "fhirStore": { "description": "Name of the output FHIR store, which must already exist. You must grant the healthcare.fhirResources.update permission on the destination store to your project's **Cloud Healthcare Service Agent** [service account](https://cloud.google.com/healthcare/docs/how-tos/permissions-healthcare-api-gcp-products#the_cloud_healthcare_service_agent). The destination store must set enableUpdateCreate to true. The destination store must use FHIR version R4. Writing these resources will consume FHIR operations quota from the project containing the source data. De-identify operation metadata is only generated for DICOM de-identification operations.", "type": "string" } } }, "FhirFilter": { "id": "FhirFilter", "description": "Filter configuration.", "type": "object", "properties": { "resources": { "description": "List of resources to include in the output. If this list is empty or not specified, all resources are included in the output.", "$ref": "Resources" } } }, "Resources": { "id": "Resources", "description": "A list of FHIR resources.", "type": "object", "properties": { "resources": { "description": "List of resources IDs. For example, \"Patient/1234\".", "type": "array", "items": { "type": "string" } } } }, "DeidentifyDicomStoreRequest": { "id": "DeidentifyDicomStoreRequest", "description": "Creates a new DICOM store with sensitive information de-identified.", "type": "object", "properties": { "destinationStore": { "description": "Required. The name of the DICOM store to create and write the redacted data to. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`. * The destination dataset must exist. * The source dataset and destination dataset must both reside in the same location. De-identifying data across multiple locations is not supported. * The destination DICOM store must not exist. * The caller must have the necessary permissions to create the destination DICOM store.", "type": "string" }, "config": { "description": "Deidentify configuration. Only one of `config` and `gcs_config_uri` can be specified.", "$ref": "DeidentifyConfig" }, "gcsConfigUri": { "description": "Cloud Storage location to read the JSON cloud.healthcare.deidentify.DeidentifyConfig from, overriding the default config. Must be of the form `gs://{bucket_id}/path/to/object`. The Cloud Storage location must grant the Cloud IAM role `roles/storage.objectViewer` to the project's Cloud Healthcare Service Agent service account. Only one of `config` and `gcs_config_uri` can be specified.", "type": "string" }, "filterConfig": { "description": "Filter configuration.", "$ref": "DicomFilterConfig" } } }, "DicomFilterConfig": { "id": "DicomFilterConfig", "description": "Specifies the filter configuration for DICOM resources.", "type": "object", "properties": { "resourcePathsGcsUri": { "description": "The Cloud Storage location of the filter configuration file. The `gcs_uri` must be in the format `gs://bucket/path/to/object`. The filter configuration file must contain a list of resource paths separated by newline characters (\\n or \\r\\n). Each resource path must be in the format \"/studies/{studyUID}[/series/{seriesUID}[/instances/{instanceUID}]]\" The Cloud Healthcare API service account must have the `roles/storage.objectViewer` Cloud IAM role for this Cloud Storage location.", "type": "string" } } }, "Dataset": { "id": "Dataset", "description": "A message representing a health dataset. A health dataset represents a collection of healthcare data pertaining to one or more patients. This may include multiple modalities of healthcare data, such as electronic medical records or medical imaging data.", "type": "object", "properties": { "name": { "description": "Identifier. Resource name of the dataset, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`.", "type": "string" }, "timeZone": { "description": "The default timezone used by this dataset. Must be a either a valid IANA time zone name such as \"America/New_York\" or empty, which defaults to UTC. This is used for parsing times in resources, such as HL7 messages, where no explicit timezone is specified.", "type": "string" } } }, "ListDatasetsResponse": { "id": "ListDatasetsResponse", "description": "Lists the available datasets.", "type": "object", "properties": { "datasets": { "description": "The first page of datasets.", "type": "array", "items": { "$ref": "Dataset" } }, "nextPageToken": { "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", "type": "string" } } }, "DeidentifyDatasetRequest": { "id": "DeidentifyDatasetRequest", "description": "Redacts identifying information from the specified dataset.", "type": "object", "properties": { "destinationDataset": { "description": "Required. The name of the dataset resource to create and write the redacted data to. * The destination dataset must not exist. * The destination dataset must be in the same location as the source dataset. De-identifying data across multiple locations is not supported.", "type": "string" }, "config": { "description": "Deidentify configuration. Only one of `config` and `gcs_config_uri` can be specified.", "$ref": "DeidentifyConfig" }, "gcsConfigUri": { "description": "Cloud Storage location to read the JSON cloud.healthcare.deidentify.DeidentifyConfig from, overriding the default config. Must be of the form `gs://{bucket_id}/path/to/object`. The Cloud Storage location must grant the Cloud IAM role `roles/storage.objectViewer` to the project's Cloud Healthcare Service Agent service account. Only one of `config` and `gcs_config_uri` can be specified.", "type": "string" } } }, "StorageInfo": { "id": "StorageInfo", "description": "StorageInfo encapsulates all the storage info of a resource.", "type": "object", "properties": { "referencedResource": { "description": "The resource whose storage info is returned. For example, to specify the resource path of a DICOM Instance: `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicom_store_id}/dicomWeb/studi/{study_uid}/series/{series_uid}/instances/{instance_uid}`", "type": "string" }, "structuredStorageInfo": { "description": "Info about the data stored in structured storage for the resource.", "$ref": "StructuredStorageInfo" }, "blobStorageInfo": { "description": "Info about the data stored in blob storage for the resource.", "$ref": "BlobStorageInfo" } } }, "StructuredStorageInfo": { "id": "StructuredStorageInfo", "description": "StructuredStorageInfo contains details about the data stored in Structured Storage for the referenced resource.", "type": "object", "properties": { "sizeBytes": { "description": "Size in bytes of data stored in structured storage.", "type": "string", "format": "int64" } } }, "BlobStorageInfo": { "id": "BlobStorageInfo", "description": "BlobStorageInfo contains details about the data stored in Blob Storage for the referenced resource. Note: Storage class is only valid for DICOM and hence will only be populated for DICOM resources.", "type": "object", "properties": { "sizeBytes": { "description": "Size in bytes of data stored in Blob Storage.", "type": "string", "format": "int64" }, "storageClass": { "description": "The storage class in which the Blob data is stored.", "type": "string", "enumDescriptions": [ "If unspecified in CreateDataset, the StorageClass defaults to STANDARD. If unspecified in UpdateDataset and the StorageClass is set in the field mask, an InvalidRequest error is thrown.", "This stores the Object in Blob Standard Storage: https://cloud.google.com/storage/docs/storage-classes#standard", "This stores the Object in Blob Nearline Storage: https://cloud.google.com/storage/docs/storage-classes#nearline", "This stores the Object in Blob Coldline Storage: https://cloud.google.com/storage/docs/storage-classes#coldline", "This stores the Object in Blob Archive Storage: https://cloud.google.com/storage/docs/storage-classes#archive" ], "enum": [ "BLOB_STORAGE_CLASS_UNSPECIFIED", "STANDARD", "NEARLINE", "COLDLINE", "ARCHIVE" ] }, "storageClassUpdateTime": { "description": "The time at which the storage class was updated. This is used to compute early deletion fees of the resource.", "type": "string", "format": "google-datetime" } } }, "SetBlobStorageSettingsRequest": { "id": "SetBlobStorageSettingsRequest", "description": "Request message for `SetBlobStorageSettings` method.", "type": "object", "properties": { "filterConfig": { "description": "Optional. A filter configuration. If `filter_config` is specified, set the value of `resource` to the resource name of a DICOM store in the format `projects/{projectID}/locations/{locationID}/datasets/{datasetID}/dicomStores/{dicomStoreID}`.", "$ref": "DicomFilterConfig" }, "blobStorageSettings": { "description": "The blob storage settings to update for the specified resources. Only fields listed in `update_mask` are applied.", "$ref": "BlobStorageSettings" } } }, "BlobStorageSettings": { "id": "BlobStorageSettings", "description": "Settings for data stored in Blob storage.", "type": "object", "properties": { "blobStorageClass": { "description": "The Storage class in which the Blob data is stored.", "type": "string", "enumDescriptions": [ "If unspecified in CreateDataset, the StorageClass defaults to STANDARD. If unspecified in UpdateDataset and the StorageClass is set in the field mask, an InvalidRequest error is thrown.", "This stores the Object in Blob Standard Storage: https://cloud.google.com/storage/docs/storage-classes#standard", "This stores the Object in Blob Nearline Storage: https://cloud.google.com/storage/docs/storage-classes#nearline", "This stores the Object in Blob Coldline Storage: https://cloud.google.com/storage/docs/storage-classes#coldline", "This stores the Object in Blob Archive Storage: https://cloud.google.com/storage/docs/storage-classes#archive" ], "enum": [ "BLOB_STORAGE_CLASS_UNSPECIFIED", "STANDARD", "NEARLINE", "COLDLINE", "ARCHIVE" ] } } }, "DicomStore": { "id": "DicomStore", "description": "Represents a DICOM store.", "type": "object", "properties": { "name": { "description": "Identifier. Resource name of the DICOM store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "type": "string" }, "notificationConfig": { "description": "Notification destination for new DICOM instances. Supplied by the client.", "$ref": "NotificationConfig" }, "labels": { "description": "User-supplied key-value pairs used to organize DICOM stores. Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: \\p{Ll}\\p{Lo}{0,62} Label values are optional, must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63} No more than 64 labels can be associated with a given store.", "type": "object", "additionalProperties": { "type": "string" } }, "streamConfigs": { "description": "Optional. A list of streaming configs used to configure the destination of streaming exports for every DICOM instance insertion in this DICOM store. After a new config is added to `stream_configs`, DICOM instance insertions are streamed to the new destination. When a config is removed from `stream_configs`, the server stops streaming to that destination. Each config must contain a unique destination.", "type": "array", "items": { "$ref": "GoogleCloudHealthcareV1beta1DicomStreamConfig" } } } }, "NotificationConfig": { "id": "NotificationConfig", "description": "Specifies where to send notifications upon changes to a data store.", "type": "object", "properties": { "pubsubTopic": { "description": "The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. PubsubMessage.Data contains the resource name. PubsubMessage.MessageId is the ID of this message. It is guaranteed to be unique within the topic. PubsubMessage.PublishTime is the time at which the message was published. Notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can't be published to Pub/Sub, errors are logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). If the number of errors exceeds a certain rate, some aren't submitted. Note that not all operations trigger notifications, see [Configuring Pub/Sub notifications](https://cloud.google.com/healthcare/docs/how-tos/pubsub) for specific details.", "type": "string" }, "sendForBulkImport": { "description": "Indicates whether or not to send Pub/Sub notifications on bulk import. Only supported for DICOM imports.", "type": "boolean" } } }, "GoogleCloudHealthcareV1beta1DicomStreamConfig": { "id": "GoogleCloudHealthcareV1beta1DicomStreamConfig", "description": "StreamConfig specifies configuration for a streaming DICOM export.", "type": "object", "properties": { "bigqueryDestination": { "description": "Results are appended to this table. The server creates a new table in the given BigQuery dataset if the specified table does not exist. To enable the Cloud Healthcare API to write to your BigQuery table, you must give the Cloud Healthcare API service account the bigquery.dataEditor role. The service account is: `service-{PROJECT_NUMBER}@gcp-sa-healthcare.iam.gserviceaccount.com`. The PROJECT_NUMBER identifies the project that the DICOM store resides in. To get the project number, go to the Cloud Console Dashboard. It is recommended to not have a custom schema in the destination table which could conflict with the schema created by the Cloud Healthcare API. Instance deletions are not applied to the destination table. The destination's table schema will be automatically updated in case a new instance's data is incompatible with the current schema. The schema should not be updated manually as this can cause incompatibilies that cannot be resolved automatically. One resolution in this case is to delete the incompatible table and let the server recreate one, though the newly created table only contains data after the table recreation. BigQuery imposes a 1 MB limit on streaming insert row size, therefore any instance that generates more than 1 MB of BigQuery data will not be streamed. If an instance cannot be streamed to BigQuery, errors will be logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)).", "$ref": "GoogleCloudHealthcareV1beta1DicomBigQueryDestination" } } }, "GoogleCloudHealthcareV1beta1DicomBigQueryDestination": { "id": "GoogleCloudHealthcareV1beta1DicomBigQueryDestination", "description": "The BigQuery table where the server writes output.", "type": "object", "properties": { "tableUri": { "description": "BigQuery URI to a table, up to 2000 characters long, in the format `bq://projectId.bqDatasetId.tableId`", "type": "string" }, "force": { "description": "Use `write_disposition` instead. If `write_disposition` is specified, this parameter is ignored. force=false is equivalent to write_disposition=WRITE_EMPTY and force=true is equivalent to write_disposition=WRITE_TRUNCATE.", "type": "boolean" }, "writeDisposition": { "description": "Determines whether the existing table in the destination is to be overwritten or appended to. If a write_disposition is specified, the `force` parameter is ignored.", "type": "string", "enumDescriptions": [ "Default behavior is the same as WRITE_EMPTY.", "Only export data if the destination table is empty.", "Erase all existing data in the destination table before writing the instances.", "Append data to the destination table." ], "enum": [ "WRITE_DISPOSITION_UNSPECIFIED", "WRITE_EMPTY", "WRITE_TRUNCATE", "WRITE_APPEND" ] } } }, "ListDicomStoresResponse": { "id": "ListDicomStoresResponse", "description": "Lists the DICOM stores in the given dataset.", "type": "object", "properties": { "dicomStores": { "description": "The returned DICOM stores. Won't be more DICOM stores than the value of page_size in the request.", "type": "array", "items": { "$ref": "DicomStore" } }, "nextPageToken": { "description": "Token to retrieve the next page of results or empty if there are no more results in the list.", "type": "string" } } }, "ImportDicomDataRequest": { "id": "ImportDicomDataRequest", "description": "Imports data into the specified DICOM store. Returns an error if any of the files to import are not DICOM files. This API accepts duplicate DICOM instances by ignoring the newly-pushed instance. It does not overwrite.", "type": "object", "properties": { "gcsSource": { "description": "Cloud Storage source data location and import configuration. The Cloud Healthcare Service Agent requires the `roles/storage.objectViewer` Cloud IAM roles on the Cloud Storage location.", "$ref": "GoogleCloudHealthcareV1beta1DicomGcsSource" }, "blobStorageSettings": { "description": "Optional. The blob storage settings for the data imported by this operation.", "$ref": "BlobStorageSettings" } } }, "GoogleCloudHealthcareV1beta1DicomGcsSource": { "id": "GoogleCloudHealthcareV1beta1DicomGcsSource", "description": "Specifies the configuration for importing data from Cloud Storage.", "type": "object", "properties": { "uri": { "description": "Points to a Cloud Storage URI containing file(s) with content only. The URI must be in the following format: `gs://{bucket_id}/{object_id}`. The URI can include wildcards in `object_id` and thus identify multiple files. Supported wildcards: * '*' to match 0 or more non-separator characters * '**' to match 0 or more characters (including separators). Must be used at the end of a path and with no other wildcards in the path. Can also be used with a file extension (such as .dcm), which imports all files with the extension in the specified directory and its sub-directories. For example, `gs://my-bucket/my-directory/**.dcm` imports all files with .dcm extensions in `my-directory/` and its sub-directories. * '?' to match 1 character. All other URI formats are invalid. Files matching the wildcard are expected to contain content only, no metadata.", "type": "string" } } }, "ExportDicomDataRequest": { "id": "ExportDicomDataRequest", "description": "Exports data from the specified DICOM store. If a given resource, such as a DICOM object with the same SOPInstance UID, already exists in the output, it is overwritten with the version in the source dataset. Exported DICOM data persists when the DICOM store from which it was exported is deleted.", "type": "object", "properties": { "gcsDestination": { "description": "The Cloud Storage output destination. The Cloud Healthcare Service Agent requires the `roles/storage.objectAdmin` Cloud IAM roles on the Cloud Storage location.", "$ref": "GoogleCloudHealthcareV1beta1DicomGcsDestination" }, "bigqueryDestination": { "description": "The BigQuery output destination. You can only export to a BigQuery dataset that's in the same project as the DICOM store you're exporting from. The Cloud Healthcare Service Agent requires two IAM roles on the BigQuery location: `roles/bigquery.dataEditor` and `roles/bigquery.jobUser`.", "$ref": "GoogleCloudHealthcareV1beta1DicomBigQueryDestination" }, "filterConfig": { "description": "Specifies the filter configuration.", "$ref": "DicomFilterConfig" } } }, "GoogleCloudHealthcareV1beta1DicomGcsDestination": { "id": "GoogleCloudHealthcareV1beta1DicomGcsDestination", "description": "The Cloud Storage location where the server writes the output and the export configuration.", "type": "object", "properties": { "uriPrefix": { "description": "The Cloud Storage destination to export to. URI for a Cloud Storage directory where the server writes the result files, in the format `gs://{bucket-id}/{path/to/destination/dir}`). If there is no trailing slash, the service appends one when composing the object path. The user is responsible for creating the Cloud Storage bucket referenced in `uri_prefix`.", "type": "string" }, "mimeType": { "description": "MIME types supported by DICOM spec. Each file is written in the following format: `.../{study_id}/{series_id}/{instance_id}[/{frame_number}].{extension}` The frame_number component exists only for multi-frame instances. Supported MIME types are consistent with supported formats in DICOMweb: https://cloud.google.com/healthcare/docs/dicom#retrieve_transaction. Specifically, the following are supported: - application/dicom; transfer-syntax=1.2.840.10008.1.2.1 (uncompressed DICOM) - application/dicom; transfer-syntax=1.2.840.10008.1.2.4.50 (DICOM with embedded JPEG Baseline) - application/dicom; transfer-syntax=1.2.840.10008.1.2.4.90 (DICOM with embedded JPEG 2000 Lossless Only) - application/dicom; transfer-syntax=1.2.840.10008.1.2.4.91 (DICOM with embedded JPEG 2000)h - application/dicom; transfer-syntax=* (DICOM with no transcoding) - application/octet-stream; transfer-syntax=1.2.840.10008.1.2.1 (raw uncompressed PixelData) - application/octet-stream; transfer-syntax=* (raw PixelData in whatever format it was uploaded in) - image/jpeg; transfer-syntax=1.2.840.10008.1.2.4.50 (Consumer JPEG) - image/png The following extensions are used for output files: - application/dicom -\u003e .dcm - image/jpeg -\u003e .jpg - image/png -\u003e .png - application/octet-stream -\u003e no extension If unspecified, the instances are exported in the original DICOM format they were uploaded in.", "type": "string" } } }, "DicomStoreMetrics": { "id": "DicomStoreMetrics", "description": "DicomStoreMetrics contains metrics describing a DICOM store.", "type": "object", "properties": { "name": { "description": "Resource name of the DICOM store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "type": "string" }, "studyCount": { "description": "Number of studies in the store.", "type": "string", "format": "int64" }, "seriesCount": { "description": "Number of series in the store.", "type": "string", "format": "int64" }, "instanceCount": { "description": "Number of instances in the store.", "type": "string", "format": "int64" }, "structuredStorageSizeBytes": { "description": "Total structured storage bytes for all instances in the store.", "type": "string", "format": "int64" }, "blobStorageSizeBytes": { "description": "Total blob storage bytes for all instances in the store.", "type": "string", "format": "int64" } } }, "HttpBody": { "id": "HttpBody", "description": "Message that represents an arbitrary HTTP body. It should only be used for payload formats that can't be represented as JSON, such as raw binary or an HTML page. This message can be used both in streaming and non-streaming API methods in the request as well as the response. It can be used as a top-level request field, which is convenient if one wants to extract parameters from either the URL or HTTP template into the request fields and also want access to the raw HTTP body. Example: message GetResourceRequest { // A unique request id. string request_id = 1; // The raw HTTP body is bound to this field. google.api.HttpBody http_body = 2; } service ResourceService { rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); } Example with streaming methods: service CaldavService { rpc GetCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); rpc UpdateCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); } Use of this type only changes how the request and response bodies are handled, all other features will continue to work unchanged.", "type": "object", "properties": { "contentType": { "description": "The HTTP Content-Type header value specifying the content type of the body.", "type": "string" }, "data": { "description": "The HTTP request/response body as raw binary.", "type": "string", "format": "byte" }, "extensions": { "description": "Application specific response metadata. Must be set in the first response for streaming APIs.", "type": "array", "items": { "type": "object", "additionalProperties": { "type": "any", "description": "Properties of the object. Contains field @type with type URL." } } } } }, "StudyMetrics": { "id": "StudyMetrics", "description": "StudyMetrics contains metrics describing a DICOM study.", "type": "object", "properties": { "study": { "description": "The study resource path. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}/dicomWeb/studies/{study_uid}`.", "type": "string" }, "structuredStorageSizeBytes": { "description": "Total structured storage bytes for all instances in the study.", "type": "string", "format": "int64" }, "blobStorageSizeBytes": { "description": "Total blob storage bytes for all instances in the study.", "type": "string", "format": "int64" }, "instanceCount": { "description": "Number of instances in the study.", "type": "string", "format": "int64" }, "seriesCount": { "description": "Number of series in the study.", "type": "string", "format": "int64" } } }, "SeriesMetrics": { "id": "SeriesMetrics", "description": "SeriesMetrics contains metrics describing a DICOM series.", "type": "object", "properties": { "series": { "description": "The series resource path. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}/dicomWeb/studies/{study_uid}/series/{series_uid}`.", "type": "string" }, "structuredStorageSizeBytes": { "description": "Total structured storage bytes for all instances in the series.", "type": "string", "format": "int64" }, "blobStorageSizeBytes": { "description": "Total blob storage bytes for all instances in the series.", "type": "string", "format": "int64" }, "instanceCount": { "description": "Number of instances in the series.", "type": "string", "format": "int64" } } }, "Hl7V2Store": { "id": "Hl7V2Store", "description": "Represents an HL7v2 store.", "type": "object", "properties": { "name": { "description": "Identifier. Resource name of the HL7v2 store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.", "type": "string" }, "notificationConfig": { "description": "The notification destination all messages (both Ingest & Create) are published on. Only the message name is sent as part of the notification. If this is unset, no notifications are sent. Supplied by the client.", "deprecated": true, "$ref": "NotificationConfig" }, "parserConfig": { "description": "The configuration for the parser. It determines how the server parses the messages.", "$ref": "ParserConfig" }, "labels": { "description": "User-supplied key-value pairs used to organize HL7v2 stores. Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: \\p{Ll}\\p{Lo}{0,62} Label values are optional, must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63} No more than 64 labels can be associated with a given store.", "type": "object", "additionalProperties": { "type": "string" } }, "notificationConfigs": { "description": "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.", "type": "array", "items": { "$ref": "Hl7V2NotificationConfig" } }, "rejectDuplicateMessage": { "description": "Determines whether to reject duplicate messages. A duplicate message is a message with the same raw bytes as a message that has already been ingested/created in this HL7v2 store. The default value is false, meaning that the store accepts the duplicate messages and it also returns the same ACK message in the IngestMessageResponse as has been returned previously. Note that only one resource is created in the store. When this field is set to true, CreateMessage/IngestMessage requests with a duplicate message will be rejected by the store, and IngestMessageErrorDetail returns a NACK message upon rejection.", "type": "boolean" } } }, "ParserConfig": { "id": "ParserConfig", "description": "The configuration for the parser. It determines how the server parses the messages.", "type": "object", "properties": { "allowNullHeader": { "description": "Determines whether messages with no header are allowed.", "type": "boolean" }, "segmentTerminator": { "description": "Byte(s) to use as the segment terminator. If this is unset, '\\r' is used as segment terminator, matching the HL7 version 2 specification.", "type": "string", "format": "byte" }, "schema": { "description": "Schemas used to parse messages in this store, if schematized parsing is desired.", "$ref": "SchemaPackage" }, "version": { "description": "Immutable. Determines the version of both the default parser to be used when `schema` is not given, as well as the schematized parser used when `schema` is specified. This field is immutable after HL7v2 store creation.", "type": "string", "enumDescriptions": [ "Unspecified parser version, equivalent to V1.", "The `parsed_data` 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.", "The `parsed_data` includes every given non-empty message field.", "This version is the same as V2, with the following change. The `parsed_data` contains unescaped escaped field separators, component separators, sub-component separators, repetition separators, escape characters, and truncation characters. If `schema` is specified, the schematized parser uses improved parsing heuristics compared to previous versions." ], "enum": [ "PARSER_VERSION_UNSPECIFIED", "V1", "V2", "V3" ] } } }, "SchemaPackage": { "id": "SchemaPackage", "description": "A schema package contains a set of schemas and type definitions.", "type": "object", "properties": { "schematizedParsingType": { "description": "Determines how messages that fail to parse are handled.", "type": "string", "enumDescriptions": [ "Unspecified schematized parsing type, equivalent to `SOFT_FAIL`.", "Messages that fail to parse are still stored and ACKed but a parser error is stored in place of the schematized data.", "Messages that fail to parse are rejected from ingestion/insertion and return an error code." ], "enum": [ "SCHEMATIZED_PARSING_TYPE_UNSPECIFIED", "SOFT_FAIL", "HARD_FAIL" ] }, "schemas": { "description": "Schema configs that are layered based on their VersionSources that match the incoming message. Schema configs present in higher indices override those in lower indices with the same message type and trigger event if their VersionSources all match an incoming message.", "type": "array", "items": { "$ref": "Hl7SchemaConfig" } }, "types": { "description": "Schema type definitions that are layered based on their VersionSources that match the incoming message. Type definitions present in higher indices override those in lower indices with the same type name if their VersionSources all match an incoming message.", "type": "array", "items": { "$ref": "Hl7TypesConfig" } }, "ignoreMinOccurs": { "description": "Flag to ignore all min_occurs restrictions in the schema. This means that incoming messages can omit any group, segment, field, component, or subcomponent.", "type": "boolean" }, "unexpectedSegmentHandling": { "description": "Determines how unexpected segments (segments not matched to the schema) are handled.", "type": "string", "enumDescriptions": [ "Unspecified handling mode, equivalent to FAIL.", "Unexpected segments fail to parse and return an error.", "Unexpected segments do not fail, but are omitted from the output.", "Unexpected segments do not fail, but are parsed in place and added to the current group. If a segment has a type definition, it is used, otherwise it is parsed as VARIES." ], "enum": [ "UNEXPECTED_SEGMENT_HANDLING_MODE_UNSPECIFIED", "FAIL", "SKIP", "PARSE" ] } } }, "Hl7SchemaConfig": { "id": "Hl7SchemaConfig", "description": "Root config message for HL7v2 schema. This contains a schema structure of groups and segments, and filters that determine which messages to apply the schema structure to.", "type": "object", "properties": { "version": { "description": "Each VersionSource is tested and only if they all match is the schema used for the message.", "type": "array", "items": { "$ref": "VersionSource" } }, "messageSchemaConfigs": { "description": "Map from each HL7v2 message type and trigger event pair, such as ADT_A04, to its schema configuration root group.", "type": "object", "additionalProperties": { "$ref": "SchemaGroup" } } } }, "VersionSource": { "id": "VersionSource", "description": "Describes a selector for extracting and matching an MSH field to a value.", "type": "object", "properties": { "mshField": { "description": "The field to extract from the MSH segment. For example, \"3.1\" or \"18[1].1\".", "type": "string" }, "value": { "description": "The value to match with the field. For example, \"My Application Name\" or \"2.3\".", "type": "string" } } }, "SchemaGroup": { "id": "SchemaGroup", "description": "An HL7v2 logical group construct.", "type": "object", "properties": { "name": { "description": "The name of this group. For example, \"ORDER_DETAIL\".", "type": "string" }, "choice": { "description": "True indicates that this is a choice group, meaning that only one of its segments can exist in a given message.", "type": "boolean" }, "minOccurs": { "description": "The minimum number of times this group must be present/repeated.", "type": "integer", "format": "int32" }, "maxOccurs": { "description": "The maximum number of times this group can be repeated. 0 or -1 means unbounded.", "type": "integer", "format": "int32" }, "members": { "description": "Nested groups and/or segments.", "type": "array", "items": { "$ref": "GroupOrSegment" } } } }, "GroupOrSegment": { "id": "GroupOrSegment", "description": "Construct representing a logical group or a segment.", "type": "object", "properties": { "segment": { "$ref": "SchemaSegment" }, "group": { "$ref": "SchemaGroup" } } }, "SchemaSegment": { "id": "SchemaSegment", "description": "An HL7v2 Segment.", "type": "object", "properties": { "type": { "description": "The Segment type. For example, \"PID\".", "type": "string" }, "minOccurs": { "description": "The minimum number of times this segment can be present in this group.", "type": "integer", "format": "int32" }, "maxOccurs": { "description": "The maximum number of times this segment can be present in this group. 0 or -1 means unbounded.", "type": "integer", "format": "int32" } } }, "Hl7TypesConfig": { "id": "Hl7TypesConfig", "description": "Root config for HL7v2 datatype definitions for a specific HL7v2 version.", "type": "object", "properties": { "version": { "description": "The version selectors that this config applies to. A message must match ALL version sources to apply.", "type": "array", "items": { "$ref": "VersionSource" } }, "type": { "description": "The HL7v2 type definitions.", "type": "array", "items": { "$ref": "Type" } } } }, "Type": { "id": "Type", "description": "A type definition for some HL7v2 type (incl. Segments and Datatypes).", "type": "object", "properties": { "name": { "description": "The name of this type. This would be the segment or datatype name. For example, \"PID\" or \"XPN\".", "type": "string" }, "primitive": { "description": "If this is a primitive type then this field is the type of the primitive For example, STRING. Leave unspecified for composite types.", "type": "string", "enumDescriptions": [ "Not a primitive.", "String primitive.", "Element that can have unschematized children.", "Like STRING, but all delimiters below this element are ignored." ], "enum": [ "PRIMITIVE_UNSPECIFIED", "STRING", "VARIES", "UNESCAPED_STRING" ] }, "fields": { "description": "The (sub) fields this type has (if not primitive).", "type": "array", "items": { "$ref": "Field" } } } }, "Field": { "id": "Field", "description": "A (sub) field of a type.", "type": "object", "properties": { "name": { "description": "The name of the field. For example, \"PID-1\" or just \"1\".", "type": "string" }, "type": { "description": "The type of this field. A Type with this name must be defined in an Hl7TypesConfig.", "type": "string" }, "table": { "description": "The HL7v2 table this field refers to. For example, PID-15 (Patient's Primary Language) usually refers to table \"0296\".", "type": "string" }, "minOccurs": { "description": "The minimum number of times this field must be present/repeated.", "type": "integer", "format": "int32" }, "maxOccurs": { "description": "The maximum number of times this field can be repeated. 0 or -1 means unbounded.", "type": "integer", "format": "int32" } } }, "Hl7V2NotificationConfig": { "id": "Hl7V2NotificationConfig", "description": "Specifies where and whether to send notifications upon changes to a data store.", "type": "object", "properties": { "pubsubTopic": { "description": "The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. The notification is a `PubsubMessage` with the following fields: * `PubsubMessage.Data` contains the resource name. * `PubsubMessage.MessageId` is the ID of this notification. It is guaranteed to be unique within the topic. * `PubsubMessage.PublishTime` is the time when the message was published. Note that notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail. If a notification can't be published to Pub/Sub, errors are logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging).", "type": "string" }, "filter": { "description": "Restricts notifications sent for messages matching a filter. If this is empty, all messages are matched. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in `yyyy-mm-dd` form. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, it's just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. Fields/functions available for filtering are: * `message_type`, from the MSH-9.1 field. For example, `NOT message_type = \"ADT\"`. * `send_date` or `sendDate`, the YYYY-MM-DD date the message was sent in the dataset's time_zone, from the MSH-7 segment. For example, `send_date \u003c \"2017-01-02\"`. * `send_time`, the timestamp when the message was sent, using the RFC3339 time format for comparisons, from the MSH-7 segment. For example, `send_time \u003c \"2017-01-02T00:00:00-05:00\"`. * `create_time`, the timestamp when the message was created in the HL7v2 store. Use the RFC3339 time format for comparisons. For example, `create_time \u003c \"2017-01-02T00:00:00-05:00\"`. * `send_facility`, the care center that the message came from, from the MSH-4 segment. For example, `send_facility = \"ABC\"`. * `PatientId(value, type)`, which matches if the message lists a patient having an ID of the given value and type in the PID-2, PID-3, or PID-4 segments. For example, `PatientId(\"123456\", \"MRN\")`. * `labels.x`, a string value of the label with key `x` as set using the Message.labels map. For example, `labels.\"priority\"=\"high\"`. The operator `:*` can be used to assert the existence of a label. For example, `labels.\"priority\":*`.", "type": "string" } } }, "ListHl7V2StoresResponse": { "id": "ListHl7V2StoresResponse", "description": "Lists the HL7v2 stores in the given dataset.", "type": "object", "properties": { "hl7V2Stores": { "description": "The returned HL7v2 stores. Won't be more HL7v2 stores than the value of page_size in the request.", "type": "array", "items": { "$ref": "Hl7V2Store" } }, "nextPageToken": { "description": "Token to retrieve the next page of results or empty if there are no more results in the list.", "type": "string" } } }, "IngestMessageRequest": { "id": "IngestMessageRequest", "description": "Ingests a message into the specified HL7v2 store.", "type": "object", "properties": { "message": { "description": "Required. HL7v2 message to ingest.", "$ref": "Message" } } }, "Message": { "id": "Message", "description": "A complete HL7v2 message. See [Introduction to HL7 Standards] (https://www.hl7.org/implement/standards/index.cfm?ref=common) for details on the standard.", "type": "object", "properties": { "name": { "description": "Output only. Resource name of the Message, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7_v2_store_id}/messages/{message_id}`. Assigned by the server.", "readOnly": true, "type": "string" }, "data": { "description": "Required. Raw message bytes.", "type": "string", "format": "byte" }, "createTime": { "description": "Output only. The datetime when the message was created. Set by the server.", "readOnly": true, "type": "string", "format": "google-datetime" }, "sendFacility": { "description": "The hospital that this message came from. MSH-4.", "type": "string" }, "sendTime": { "description": "The datetime the sending application sent this message. MSH-7.", "type": "string", "format": "google-datetime" }, "messageType": { "description": "The message type for this message. MSH-9.1.", "type": "string" }, "patientIds": { "description": "All patient IDs listed in the PID-2, PID-3, and PID-4 segments of this message.", "type": "array", "items": { "$ref": "PatientId" } }, "labels": { "description": "User-supplied key-value pairs used to organize HL7v2 stores. Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: \\p{Ll}\\p{Lo}{0,62} Label values are optional, must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63} No more than 64 labels can be associated with a given store.", "type": "object", "additionalProperties": { "type": "string" } }, "parsedData": { "description": "Output only. The parsed version of the raw message data.", "readOnly": true, "$ref": "ParsedData" }, "schematizedData": { "description": "The parsed version of the raw message data schematized according to this store's schemas and type definitions.", "$ref": "SchematizedData" } } }, "PatientId": { "id": "PatientId", "description": "A patient identifier and associated type.", "type": "object", "properties": { "value": { "description": "The patient's unique identifier.", "type": "string" }, "type": { "description": "ID type. For example, MRN or NHS.", "type": "string" } } }, "ParsedData": { "id": "ParsedData", "description": "The content of an HL7v2 message in a structured format.", "type": "object", "properties": { "segments": { "type": "array", "items": { "$ref": "Segment" } } } }, "Segment": { "id": "Segment", "description": "A segment in a structured format.", "type": "object", "properties": { "segmentId": { "description": "A string that indicates the type of segment. For example, EVN or PID.", "type": "string" }, "setId": { "description": "Set ID for segments that can be in a set. This can be empty if it's missing or isn't applicable.", "type": "string" }, "fields": { "description": "A mapping from the positional location to the value. The key string uses zero-based indexes separated by dots to identify Fields, components and sub-components. A bracket notation is also used to identify different instances of a repeated field. Regex for key: (\\d+)(\\[\\d+\\])?(.\\d+)?(.\\d+)? Examples of (key, value) pairs: * (0.1, \"hemoglobin\") denotes that the first component of Field 0 has the value \"hemoglobin\". * (1.1.2, \"CBC\") denotes that the second sub-component of the first component of Field 1 has the value \"CBC\". * (1[0].1, \"HbA1c\") denotes that the first component of the first Instance of Field 1, which is repeated, has the value \"HbA1c\".", "type": "object", "additionalProperties": { "type": "string" } } } }, "SchematizedData": { "id": "SchematizedData", "description": "The content of an HL7v2 message in a structured format as specified by a schema.", "type": "object", "properties": { "data": { "description": "JSON output of the parser.", "type": "string" }, "error": { "description": "The error output of the parser.", "type": "string" } } }, "IngestMessageResponse": { "id": "IngestMessageResponse", "description": "Acknowledges that a message has been ingested into the specified HL7v2 store.", "type": "object", "properties": { "hl7Ack": { "description": "HL7v2 ACK message.", "type": "string", "format": "byte" }, "message": { "description": "Created message resource.", "$ref": "Message" } } }, "CreateMessageRequest": { "id": "CreateMessageRequest", "description": "Creates a new message.", "type": "object", "properties": { "message": { "description": "Required. HL7v2 message.", "$ref": "Message" } } }, "BatchGetMessagesResponse": { "id": "BatchGetMessagesResponse", "description": "Gets multiple messages in a specified HL7v2 store.", "type": "object", "properties": { "messages": { "description": "The returned Messages. See `MessageView` for populated fields.", "type": "array", "items": { "$ref": "Message" } } } }, "ListMessagesResponse": { "id": "ListMessagesResponse", "description": "Lists the messages in the specified HL7v2 store.", "type": "object", "properties": { "hl7V2Messages": { "description": "The returned Messages. Won't be more Messages than the value of page_size in the request. See view for populated fields.", "type": "array", "items": { "$ref": "Message" } }, "nextPageToken": { "description": "Token to retrieve the next page of results or empty if there are no more results in the list.", "type": "string" } } }, "ExportMessagesRequest": { "id": "ExportMessagesRequest", "description": "Request to schedule an export.", "type": "object", "properties": { "startTime": { "description": "The start of the range in `send_time` (MSH.7, https://www.hl7.org/documentcenter/public_temp_2E58C1F9-1C23-BA17-0C6126475344DA9D/wg/conf/HL7MSH.htm) to process. If not specified, the UNIX epoch (1970-01-01T00:00:00Z) is used. This value has to come before the `end_time` defined below. Only messages whose `send_time` lies in the range `start_time` (inclusive) to `end_time` (exclusive) are exported.", "type": "string", "format": "google-datetime" }, "endTime": { "description": "The end of the range in `send_time` (MSH.7, https://www.hl7.org/documentcenter/public_temp_2E58C1F9-1C23-BA17-0C6126475344DA9D/wg/conf/HL7MSH.htm) to process. If not specified, the time when the export is scheduled is used. This value has to come after the `start_time` defined below. Only messages whose `send_time` lies in the range `start_time` (inclusive) to `end_time` (exclusive) are exported.", "type": "string", "format": "google-datetime" }, "filter": { "description": "Restricts messages exported to those matching a filter, only applicable to PubsubDestination and GcsDestination. The following syntax is available: * A string field value can be written as text inside quotation marks, for example `\"query text\"`. The only valid relational operation for text fields is equality (`=`), where text is searched within the field, rather than having the field be equal to the text. For example, `\"Comment = great\"` returns messages with `great` in the comment field. * A number field value can be written as an integer, a decimal, or an exponential. The valid relational operators for number fields are the equality operator (`=`), along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * A date field value must be written in the `yyyy-mm-dd` format. Fields with date and time use the RFC3339 time format. Leading zeros are required for one-digit months and days. The valid relational operators for date fields are the equality operator (`=`) , along with the less than/greater than operators (`\u003c`, `\u003c=`, `\u003e`, `\u003e=`). Note that there is no inequality (`!=`) operator. You can prepend the `NOT` operator to an expression to negate it. * Multiple field query expressions can be combined in one query by adding `AND` or `OR` operators between the expressions. If a boolean operator appears within a quoted string, it is not treated as special, and is just another part of the character string to be matched. You can prepend the `NOT` operator to an expression to negate it. The following fields and functions are available for filtering: * `message_type`, from the MSH-9.1 field. For example, `NOT message_type = \"ADT\"`. * `send_date` or `sendDate`, the YYYY-MM-DD date the message was sent in the dataset's time_zone, from the MSH-7 segment. For example, `send_date \u003c \"2017-01-02\"`. * `send_time`, the timestamp when the message was sent, using the RFC3339 time format for comparisons, from the MSH-7 segment. For example, `send_time \u003c \"2017-01-02T00:00:00-05:00\"`. * `create_time`, the timestamp when the message was created in the HL7v2 store. Use the RFC3339 time format for comparisons. For example, `create_time \u003c \"2017-01-02T00:00:00-05:00\"`. * `send_facility`, the care center that the message came from, from the MSH-4 segment. For example, `send_facility = \"ABC\"`. Note: The filter will be applied to every message in the HL7v2 store whose `send_time` lies in the range defined by the `start_time` and the `end_time`. Even if the filter only matches a small set of messages, the export operation can still take a long time to finish when a lot of messages are between the specified `start_time` and `end_time` range.", "type": "string" }, "gcsDestination": { "description": "Export to a Cloud Storage destination.", "$ref": "GcsDestination" }, "pubsubDestination": { "description": "Export messages to a Pub/Sub topic.", "$ref": "PubsubDestination" } } }, "GcsDestination": { "id": "GcsDestination", "description": "The Cloud Storage output destination. The Cloud Healthcare Service Agent requires the `roles/storage.objectAdmin` Cloud IAM roles on the Cloud Storage location.", "type": "object", "properties": { "uriPrefix": { "description": "URI of an existing Cloud Storage directory where the server writes result files, in the format `gs://{bucket-id}/{path/to/destination/dir}`. If there is no trailing slash, the service appends one when composing the object path.", "type": "string" }, "messageView": { "description": "Specifies the parts of the Message resource to include in the export. If not specified, FULL is used.", "type": "string", "enumDescriptions": [ "Not specified, equivalent to FULL for getMessage, equivalent to BASIC for listMessages.", "Server responses include all the message fields except parsed_data, and schematized_data fields.", "Server responses include all the message fields except data and schematized_data fields.", "Server responses include all the message fields.", "Server responses include all the message fields except data and parsed_data fields.", "Server responses include only the name field." ], "enum": [ "MESSAGE_VIEW_UNSPECIFIED", "RAW_ONLY", "PARSED_ONLY", "FULL", "SCHEMATIZED_ONLY", "BASIC" ] }, "contentStructure": { "description": "The format of the exported HL7v2 message files.", "type": "string", "enumDescriptions": [ "If the content structure is not specified, the default value `MESSAGE_JSON` will be used.", "Messages are printed using the JSON format returned from the `GetMessage` API. Messages are delimited with newlines." ], "enum": [ "CONTENT_STRUCTURE_UNSPECIFIED", "MESSAGE_JSON" ] } } }, "PubsubDestination": { "id": "PubsubDestination", "description": "The Pub/Sub output destination. The Cloud Healthcare Service Agent requires the `roles/pubsub.publisher` Cloud IAM role on the Pub/Sub topic.", "type": "object", "properties": { "pubsubTopic": { "description": "The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that Pub/Sub messages are published on. Supplied by the client. The `PubsubMessage` contains the following fields: * `PubsubMessage.Data` contains the resource name. * `PubsubMessage.MessageId` is the ID of this notification. It is guaranteed to be unique within the topic. * `PubsubMessage.PublishTime` is the time when the message was published. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. The Cloud Healthcare API service account, service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com, must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail.", "type": "string" } } }, "ImportMessagesRequest": { "id": "ImportMessagesRequest", "description": "Request to import messages.", "type": "object", "properties": { "gcsSource": { "description": "Cloud Storage source data location and import configuration. The Cloud Healthcare Service Agent requires the `roles/storage.objectViewer` Cloud IAM roles on the Cloud Storage location.", "$ref": "GcsSource" } } }, "GcsSource": { "id": "GcsSource", "description": "Specifies the configuration for importing data from Cloud Storage.", "type": "object", "properties": { "uri": { "description": "Points to a Cloud Storage URI containing file(s) to import. The URI must be in the following format: `gs://{bucket_id}/{object_id}`. The URI can include wildcards in `object_id` and thus identify multiple files. Supported wildcards: * `*` to match 0 or more non-separator characters * `**` to match 0 or more characters (including separators). Must be used at the end of a path and with no other wildcards in the path. Can also be used with a file extension (such as .ndjson), which imports all files with the extension in the specified directory and its sub-directories. For example, `gs://my-bucket/my-directory/**.ndjson` imports all files with `.ndjson` extensions in `my-directory/` and its sub-directories. * `?` to match 1 character Files matching the wildcard are expected to contain content only, no metadata.", "type": "string" } } }, "Hl7V2StoreMetrics": { "id": "Hl7V2StoreMetrics", "description": "List of metrics for a given HL7v2 store.", "type": "object", "properties": { "name": { "description": "The resource name of the HL7v2 store to get metrics for, in the format `projects/{project_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.", "type": "string" }, "metrics": { "description": "List of HL7v2 store metrics by message type.", "type": "array", "items": { "$ref": "Hl7V2StoreMetric" } } } }, "Hl7V2StoreMetric": { "id": "Hl7V2StoreMetric", "description": "Count of messages and total storage size by type for a given HL7 store.", "type": "object", "properties": { "messageType": { "description": "The Hl7v2 message type this metric applies to, such as `ADT` or `ORU`.", "type": "string" }, "count": { "description": "The total count of HL7v2 messages in the store for the given message type.", "type": "string", "format": "int64" }, "structuredStorageSizeBytes": { "description": "The total amount of structured storage used by HL7v2 messages of this message type in the store.", "type": "string", "format": "int64" } } }, "SearchResourcesRequest": { "id": "SearchResourcesRequest", "description": "Request to search the resources in the specified FHIR store.", "type": "object", "properties": { "resourceType": { "description": "Required. The FHIR resource type to search, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](https://hl7.org/implement/standards/fhir/R4/resourcelist.html)).", "type": "string" } } }, "FhirStore": { "id": "FhirStore", "description": "Represents a FHIR store.", "type": "object", "properties": { "name": { "description": "Output only. Identifier. Resource name of the FHIR store, of the form `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", "type": "string" }, "enableUpdateCreate": { "description": "Whether this FHIR store has the [updateCreate capability](https://www.hl7.org/fhir/capabilitystatement-definitions.html#CapabilityStatement.rest.resource.updateCreate). This 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 return errors. It is strongly advised not to include or encode any sensitive data such as patient identifiers in client-specified resource IDs. Those IDs are part of the FHIR resource path recorded in Cloud audit logs and Pub/Sub notifications. Those IDs can also be contained in reference fields within other resources.", "type": "boolean" }, "notificationConfig": { "description": "Deprecated. Use `notification_configs` instead. If non-empty, publish all resource modifications of this FHIR store to this destination. The Pub/Sub message attributes contain a map with a string describing the action that has triggered the notification. For example, \"action\":\"CreateResource\".", "deprecated": true, "$ref": "NotificationConfig" }, "disableReferentialIntegrity": { "description": "Immutable. Whether to disable referential integrity in this FHIR store. This field is immutable after FHIR store creation. The default value is false, meaning that the API enforces referential integrity and fails the requests that result in inconsistent state in the FHIR store. When this field is set to true, the API skips referential integrity checks. Consequently, operations that rely on references, such as GetPatientEverything, do not return all the results if broken references exist.", "type": "boolean" }, "disableResourceVersioning": { "description": "Immutable. Whether to disable resource versioning for this FHIR store. This field can not be changed after the creation of FHIR store. If set to false, which is the default behavior, all write operations cause historical versions to be recorded automatically. The historical versions can be fetched through the history APIs, but cannot be updated. If set to true, no historical versions are kept. The server sends errors for attempts to read the historical versions.", "type": "boolean" }, "labels": { "description": "User-supplied key-value pairs used to organize FHIR stores. Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: \\p{Ll}\\p{Lo}{0,62} Label values are optional, must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: [\\p{Ll}\\p{Lo}\\p{N}_-]{0,63} No more than 64 labels can be associated with a given store.", "type": "object", "additionalProperties": { "type": "string" } }, "version": { "description": "Required. Immutable. 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. Version is required for every FHIR store.", "type": "string", "enumDescriptions": [ "VERSION_UNSPECIFIED is treated as STU3 to accommodate the existing FHIR stores.", "Draft Standard for Trial Use, [Release 2](https://www.hl7.org/fhir/DSTU2)", "Standard for Trial Use, [Release 3](https://www.hl7.org/fhir/STU3)", "[Release 4](https://www.hl7.org/fhir/R4)" ], "enum": [ "VERSION_UNSPECIFIED", "DSTU2", "STU3", "R4" ] }, "streamConfigs": { "description": "A list of streaming configs that configure the destinations of streaming export for every resource mutation in this FHIR store. Each store is allowed to have up to 10 streaming configs. After a new config is added, the next resource mutation is streamed to the new location in addition to the existing ones. When a location is removed from the list, the server stops streaming to that location. Before adding a new config, you must add the required [`bigquery.dataEditor`](https://cloud.google.com/bigquery/docs/access-control#bigquery.dataEditor) role to your project's **Cloud Healthcare Service Agent** [service account](https://cloud.google.com/iam/docs/service-accounts). Some lag (typically on the order of dozens of seconds) is expected before the results show up in the streaming destination.", "type": "array", "items": { "$ref": "StreamConfig" } }, "enableHistoryModifications": { "description": "Optional. Whether to allow ExecuteBundle to accept history bundles, and directly insert and overwrite historical resource versions into the FHIR store. If set to false, using history bundles fails with an error.", "type": "boolean" }, "validationConfig": { "description": "Configuration for how to validate incoming FHIR resources against configured profiles.", "$ref": "ValidationConfig" }, "defaultSearchHandlingStrict": { "description": "If true, overrides the default search behavior for this FHIR store to `handling=strict` which returns an error for unrecognized search parameters. If false, uses the FHIR specification default `handling=lenient` which ignores unrecognized search parameters. The handling can always be changed from the default on an individual API call by setting the HTTP header `Prefer: handling=strict` or `Prefer: handling=lenient`.", "type": "boolean" }, "searchConfig": { "description": "Configuration for how FHIR resources can be searched.", "$ref": "SearchConfig" }, "notificationConfigs": { "description": "Specifies where and whether to send notifications upon changes to a Fhir store.", "type": "array", "items": { "$ref": "FhirNotificationConfig" } }, "consentConfig": { "description": "Optional. Specifies whether this store has consent enforcement. Not available for DSTU2 FHIR version due to absence of Consent resources.", "$ref": "ConsentConfig" }, "complexDataTypeReferenceParsing": { "description": "Enable parsing of references within complex FHIR data types such as Extensions. If this value is set to ENABLED, then features like referential integrity and Bundle reference rewriting apply to all references. If this flag has not been specified the behavior of the FHIR store will not change, references in complex data types will not be parsed. New stores will have this value set to ENABLED after a notification period. Warning: turning on this flag causes processing existing resources to fail if they contain references to non-existent resources.", "type": "string", "enumDescriptions": [ "No parsing behavior specified. This is the same as DISABLED for backwards compatibility.", "References in complex data types are ignored.", "References in complex data types are parsed." ], "enum": [ "COMPLEX_DATA_TYPE_REFERENCE_PARSING_UNSPECIFIED", "DISABLED", "ENABLED" ] } } }, "StreamConfig": { "id": "StreamConfig", "description": "Contains configuration for streaming FHIR export.", "type": "object", "properties": { "resourceTypes": { "description": "Supply a FHIR resource type (such as \"Patient\" or \"Observation\"). See https://www.hl7.org/fhir/valueset-resource-types.html for a list of all FHIR resource types. The server treats an empty list as an intent to stream all the supported resource types in this FHIR store.", "type": "array", "items": { "type": "string" } }, "bigqueryDestination": { "description": "The destination BigQuery structure that contains both the dataset location and corresponding schema config. The output is organized in one table per resource type. The server reuses the existing tables (if any) that are named after the resource types, e.g. \"Patient\", \"Observation\". When there is no existing table for a given resource type, the server attempts to create one. When a table schema doesn't align with the schema config, either because of existing incompatible schema or out of band incompatible modification, the server does not stream in new data. One resolution in this case is to delete the incompatible table and let the server recreate one, though the newly created table only contains data after the table recreation. BigQuery imposes a 1 MB limit on streaming insert row size, therefore any resource mutation that generates more than 1 MB of BigQuery data will not be streamed. Results are written to BigQuery tables according to the parameters in BigQueryDestination.WriteDisposition. Different versions of the same resource are distinguishable by the meta.versionId and meta.lastUpdated columns. The operation (CREATE/UPDATE/DELETE) that results in the new version is recorded in the meta.tag. The tables contain all historical resource versions since streaming was enabled. For query convenience, the server also creates one view per table of the same name containing only the current resource version. The streamed data in the BigQuery dataset is not guaranteed to be completely unique. The combination of the id and meta.versionId columns should ideally identify a single unique row. But in rare cases, duplicates may exist. At query time, users may use the SQL select statement to keep only one of the duplicate rows given an id and meta.versionId pair. Alternatively, the server created view mentioned above also filters out duplicates. If a resource mutation cannot be streamed to BigQuery, errors will be logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)).", "$ref": "GoogleCloudHealthcareV1beta1FhirBigQueryDestination" }, "deidentifiedStoreDestination": { "description": "The destination FHIR store for de-identified resources. After this field is added, all subsequent creates/updates/patches to the source store will be de-identified using the provided configuration and applied to the destination store. Importing resources to the source store will not trigger the streaming. If the source store already contains resources when this option is enabled, those resources will not be copied to the destination store unless they are subsequently updated. This may result in invalid references in the destination store. Before adding this config, you must grant the healthcare.fhirResources.update permission on the destination store to your project's **Cloud Healthcare Service Agent** [service account](https://cloud.google.com/healthcare/docs/how-tos/permissions-healthcare-api-gcp-products#the_cloud_healthcare_service_agent). The destination store must set enable_update_create to true. The destination store must have disable_referential_integrity set to true. If a resource cannot be de-identified, errors will be logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)).", "$ref": "DeidentifiedStoreDestination" } } }, "GoogleCloudHealthcareV1beta1FhirBigQueryDestination": { "id": "GoogleCloudHealthcareV1beta1FhirBigQueryDestination", "description": "The configuration for exporting to BigQuery.", "type": "object", "properties": { "datasetUri": { "description": "BigQuery URI to an existing dataset, up to 2000 characters long, in the format `bq://projectId.bqDatasetId`.", "type": "string" }, "schemaConfig": { "description": "The configuration for the exported BigQuery schema.", "$ref": "SchemaConfig" }, "force": { "description": "Use `write_disposition` instead. If `write_disposition` is specified, this parameter is ignored. force=false is equivalent to write_disposition=WRITE_EMPTY and force=true is equivalent to write_disposition=WRITE_TRUNCATE.", "type": "boolean" }, "writeDisposition": { "description": "Determines if existing data in the destination dataset is overwritten, appended to, or not written if the tables contain data. If a write_disposition is specified, the `force` parameter is ignored.", "type": "string", "enumDescriptions": [ "Default behavior is the same as WRITE_EMPTY.", "Only export data if the destination tables are empty.", "Erase all existing data in the destination tables before writing the FHIR resources.", "Append data to the destination tables." ], "enum": [ "WRITE_DISPOSITION_UNSPECIFIED", "WRITE_EMPTY", "WRITE_TRUNCATE", "WRITE_APPEND" ] } } }, "SchemaConfig": { "id": "SchemaConfig", "description": "Configuration for the FHIR BigQuery schema. Determines how the server generates the schema.", "type": "object", "properties": { "schemaType": { "description": "Specifies the output schema type. Schema type is required.", "type": "string", "enumDescriptions": [ "No schema type specified. This type is unsupported.", "A data-driven schema generated from the fields present in the FHIR data being exported, with no additional simplification. This type cannot be used for streaming to BigQuery.", "Analytics schema defined by the FHIR community. See https://github.com/FHIR/sql-on-fhir/blob/master/sql-on-fhir.md. BigQuery only allows a maximum of 10,000 columns per table. Due to this limitation, the server will not generate schemas for fields of type `Resource`, which can hold any resource type. The affected fields are `Parameters.parameter.resource`, `Bundle.entry.resource`, and `Bundle.entry.response.outcome`. Analytics schema does not gracefully handle extensions with one or more occurrences, anaytics schema also does not handle contained resource. Additionally, extensions with a URL ending in \"/{existing_resource_field_name}\" may cause undefined behavior.", "Analytics V2, similar to schema defined by the FHIR community, with added support for extensions with one or more occurrences and contained resources in stringified JSON. Extensions with a URL ending in \"/{existing_resource_field_name}\" will cause conflict and prevent the resource from being sent to BigQuery. Analytics V2 uses more space in the destination table than Analytics V1. It is generally recommended to use Analytics V2 over Analytics." ], "enum": [ "SCHEMA_TYPE_UNSPECIFIED", "LOSSLESS", "ANALYTICS", "ANALYTICS_V2" ] }, "recursiveStructureDepth": { "description": "The depth for all recursive structures in the output analytics schema. For example, `concept` in the CodeSystem resource is a recursive structure; when the depth is 2, the CodeSystem table will have a column called `concept.concept` but not `concept.concept.concept`. If not specified or set to 0, the server will use the default value 2. The maximum depth allowed is 5.", "type": "string", "format": "int64" }, "lastUpdatedPartitionConfig": { "description": "The configuration for exported BigQuery tables to be partitioned by FHIR resource's last updated time column.", "$ref": "TimePartitioning" } } }, "TimePartitioning": { "id": "TimePartitioning", "description": "Configuration for FHIR BigQuery time-partitioned tables.", "type": "object", "properties": { "type": { "description": "Type of partitioning.", "type": "string", "enumDescriptions": [ "Default unknown time.", "Data partitioned by hour.", "Data partitioned by day.", "Data partitioned by month.", "Data partitioned by year." ], "enum": [ "PARTITION_TYPE_UNSPECIFIED", "HOUR", "DAY", "MONTH", "YEAR" ] }, "expirationMs": { "description": "Number of milliseconds for which to keep the storage for a partition.", "type": "string", "format": "int64" } } }, "DeidentifiedStoreDestination": { "id": "DeidentifiedStoreDestination", "description": "Contains configuration for streaming de-identified FHIR export.", "type": "object", "properties": { "store": { "description": "The full resource name of a Cloud Healthcare FHIR store, for example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", "type": "string" }, "config": { "description": "The configuration to use when de-identifying resources that are added to this store.", "$ref": "DeidentifyConfig" } } }, "ValidationConfig": { "id": "ValidationConfig", "description": "Contains the configuration for FHIR profiles and validation.", "type": "object", "properties": { "disableProfileValidation": { "description": "Whether to disable profile validation for this FHIR store. Set this to true to disable checking incoming resources for conformance against StructureDefinitions in this FHIR store.", "type": "boolean" }, "enabledImplementationGuides": { "description": "A list of ImplementationGuide URLs in this FHIR store that are used to configure the profiles to use for validation. For example, to use the US Core profiles for validation, set `enabled_implementation_guides` to `[\"http://hl7.org/fhir/us/core/ImplementationGuide/ig\"]`. If `enabled_implementation_guides` is empty or omitted, then incoming resources are only required to conform to the base FHIR profiles. Otherwise, a resource must conform to at least one profile listed in the `global` property of one of the enabled ImplementationGuides. The Cloud Healthcare API does not currently enforce all of the rules in a StructureDefinition. The following rules are supported: - min/max - minValue/maxValue - maxLength - type - fixed[x] - pattern[x] on simple types - slicing, when using \"value\" as the discriminator type When a URL cannot be resolved (for example, in a type assertion), the server does not return an error.", "type": "array", "items": { "type": "string" } }, "disableRequiredFieldValidation": { "description": "Whether to disable required fields validation for incoming resources. Set this to true to disable checking incoming resources for conformance against required fields requirement defined in the FHIR specification. This property only affects resource types that do not have profiles configured for them, any rules in enabled implementation guides will still be enforced.", "type": "boolean" }, "disableReferenceTypeValidation": { "description": "Whether to disable reference type validation for incoming resources. Set this to true to disable checking incoming resources for conformance against reference type requirement defined in the FHIR specification. This property only affects resource types that do not have profiles configured for them, any rules in enabled implementation guides will still be enforced.", "type": "boolean" }, "disableFhirpathValidation": { "description": "Whether to disable FHIRPath validation for incoming resources. Set this to true to disable checking incoming resources for conformance against FHIRPath requirement defined in the FHIR specification. This property only affects resource types that do not have profiles configured for them, any rules in enabled implementation guides will still be enforced.", "type": "boolean" } } }, "SearchConfig": { "id": "SearchConfig", "description": "Contains the configuration for FHIR search.", "type": "object", "properties": { "searchParameters": { "description": "A list of search parameters in this FHIR store that are used to configure this FHIR store.", "type": "array", "items": { "$ref": "SearchParameter" } } } }, "SearchParameter": { "id": "SearchParameter", "description": "Contains the versioned name and the URL for one SearchParameter.", "type": "object", "properties": { "parameter": { "description": "The versioned name of the search parameter resource. The format is projects/{project-id}/locations/{location}/datasets/{dataset-id}/fhirStores/{fhirStore-id}/fhir/SearchParameter/{resource-id}/_history/{version-id} For fhir stores with disable_resource_versioning=true, the format is projects/{project-id}/locations/{location}/datasets/{dataset-id}/fhirStores/{fhirStore-id}/fhir/SearchParameter/{resource-id}/", "type": "string" }, "canonicalUrl": { "description": "The canonical url of the search parameter resource.", "type": "string" } } }, "FhirNotificationConfig": { "id": "FhirNotificationConfig", "description": "Contains the configuration for FHIR notifications.", "type": "object", "properties": { "pubsubTopic": { "description": "The [Pub/Sub](https://cloud.google.com/pubsub/docs/) topic that notifications of changes are published on. Supplied by the client. The notification is a `PubsubMessage` with the following fields: * `PubsubMessage.Data` contains the resource name. * `PubsubMessage.MessageId` is the ID of this notification. It is guaranteed to be unique within the topic. * `PubsubMessage.PublishTime` is the time when the message was published. Note that notifications are only sent if the topic is non-empty. [Topic names](https://cloud.google.com/pubsub/docs/overview#names) must be scoped to a project. The Cloud Healthcare API service account, service-@gcp-sa-healthcare.iam.gserviceaccount.com, must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail (https://cloud.google.com/healthcare-api/docs/permissions-healthcare-api-gcp-products#dicom_fhir_and_hl7v2_store_cloud_pubsub_permissions). If a notification can't be published to Pub/Sub, errors are logged to Cloud Logging. For more information, see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare-api/docs/how-tos/logging).", "type": "string" }, "sendFullResource": { "description": "Whether to send full FHIR resource to this Pub/Sub topic for Create and Update operation. Note that setting this to true does not guarantee that all resources will be sent in the format of full FHIR resource. When a resource change is too large or during heavy traffic, only the resource name will be sent. Clients should always check the \"payloadType\" label from a Pub/Sub message to determine whether it needs to fetch the full resource as a separate operation.", "type": "boolean" }, "sendPreviousResourceOnDelete": { "description": "Whether to send full FHIR resource to this Pub/Sub topic for deleting FHIR resource. Note that setting this to true does not guarantee that all previous resources will be sent in the format of full FHIR resource. When a resource change is too large or during heavy traffic, only the resource name will be sent. Clients should always check the \"payloadType\" label from a Pub/Sub message to determine whether it needs to fetch the full previous resource as a separate operation.", "type": "boolean" } } }, "ConsentConfig": { "id": "ConsentConfig", "description": "Configures whether to enforce consent for the FHIR store and which consent enforcement version is being used.", "type": "object", "properties": { "version": { "description": "Required. Specifies which consent enforcement version is being used for this FHIR store. This field can only be set once by either CreateFhirStore or UpdateFhirStore. After that, you must call ApplyConsents to change the version.", "type": "string", "enumDescriptions": [ "Users must specify an enforcement version or an error is returned.", "Enforcement version 1. See the [FHIR Consent resources in the Cloud Healthcare API](https://cloud.google.com/healthcare-api/docs/fhir-consent) guide for more details." ], "enum": [ "CONSENT_ENFORCEMENT_VERSION_UNSPECIFIED", "V1" ] }, "accessEnforced": { "description": "Optional. If set to true, when accessing FHIR resources, the consent headers will be verified against consents given by patients. See the ConsentEnforcementVersion for the supported consent headers.", "type": "boolean" }, "consentHeaderHandling": { "description": "Optional. Different options to configure the behaviour of the server when handling the `X-Consent-Scope` header.", "$ref": "ConsentHeaderHandling" }, "accessDeterminationLogConfig": { "description": "Optional. Specifies how the server logs the consent-aware requests. If not specified, the `AccessDeterminationLogConfig.LogLevel.MINIMUM` option is used.", "$ref": "AccessDeterminationLogConfig" }, "enforcedAdminConsents": { "description": "The versioned names of the enforced admin Consent resource(s), in the format `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Consent/{resource_id}/_history/{version_id}`. For FHIR stores with `disable_resource_versioning=true`, the format is `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Consent/{resource_id}`. This field can only be updated using ApplyAdminConsents.", "type": "array", "items": { "type": "string" } } } }, "ConsentHeaderHandling": { "id": "ConsentHeaderHandling", "description": "How the server handles the consent header.", "type": "object", "properties": { "profile": { "description": "Optional. Specifies the default server behavior when the header is empty. If not specified, the `ScopeProfile.PERMIT_EMPTY_SCOPE` option is used.", "type": "string", "enumDescriptions": [ "If not specified, the default value `PERMIT_EMPTY_SCOPE` is used.", "When no consent scopes are provided (for example, if there's an empty or missing header), then consent check is disabled, similar to when `access_enforced` is `false`. You can use audit logs to differentiate these two cases by looking at the value of `protopayload.metadata.consentMode`. If consents scopes are present, they must be valid and within the allowed limits, otherwise the request will be rejected with a `4xx` code.", "The consent header must be non-empty when performing read and search operations, otherwise the request is rejected with a `4xx` code. Additionally, invalid consent scopes or scopes exceeding the allowed limits are rejected." ], "enum": [ "SCOPE_PROFILE_UNSPECIFIED", "PERMIT_EMPTY_SCOPE", "REQUIRED_ON_READ" ] } } }, "AccessDeterminationLogConfig": { "id": "AccessDeterminationLogConfig", "description": "Configures consent audit log config for FHIR create, read, update, and delete (CRUD) operations. Cloud audit log for healthcare API must be [enabled](https://cloud.google.com/logging/docs/audit/configure-data-access#config-console-enable). The consent-related logs are included as part of `protoPayload.metadata`.", "type": "object", "properties": { "logLevel": { "description": "Optional. Controls the amount of detail to include as part of the audit logs.", "type": "string", "enumDescriptions": [ "No log level specified. This value is unused.", "No additional consent-related logging is added to audit logs.", "The following information is included: * One of the following [`consentMode`](https://cloud.google.com/healthcare-api/docs/fhir-consent#audit_logs) fields: (`off`|`emptyScope`|`enforced`|`btg`|`bypass`). * The accessor's request headers * The `log_level` of the AccessDeterminationLogConfig * The final consent evaluation (`PERMIT`, `DENY`, or `NO_CONSENT`) * A human-readable summary of the evaluation", "Includes `MINIMUM` and, for each resource owner, returns: * The resource owner's name * Most specific part of the `X-Consent-Scope` resulting in consensual determination * Timestamp of the applied enforcement leading to the decision * Enforcement version at the time the applicable consents were applied * The Consent resource name * The timestamp of the Consent resource used for enforcement * Policy type (`PATIENT` or `ADMIN`) Note that this mode adds some overhead to CRUD operations." ], "enum": [ "LOG_LEVEL_UNSPECIFIED", "DISABLED", "MINIMUM", "VERBOSE" ] } } }, "ListFhirStoresResponse": { "id": "ListFhirStoresResponse", "description": "Lists the FHIR stores in the given dataset.", "type": "object", "properties": { "fhirStores": { "description": "The returned FHIR stores. Won't be more FHIR stores than the value of page_size in the request.", "type": "array", "items": { "$ref": "FhirStore" } }, "nextPageToken": { "description": "Token to retrieve the next page of results or empty if there are no more results in the list.", "type": "string" } } }, "ImportResourcesRequest": { "id": "ImportResourcesRequest", "description": "Request to import resources.", "type": "object", "properties": { "contentStructure": { "description": "The content structure in the source location. If not specified, the server treats the input source files as BUNDLE.", "type": "string", "enumDescriptions": [ "If the content structure is not specified, the default value `BUNDLE` is used.", "The source file contains one or more lines of newline-delimited JSON (ndjson). Each line is a bundle that contains one or more resources.", "The source file contains one or more lines of newline-delimited JSON (ndjson). Each line is a single resource.", "The entire file is one JSON bundle. The JSON can span multiple lines.", "The entire file is one JSON resource. The JSON can span multiple lines." ], "enum": [ "CONTENT_STRUCTURE_UNSPECIFIED", "BUNDLE", "RESOURCE", "BUNDLE_PRETTY", "RESOURCE_PRETTY" ] }, "gcsSource": { "description": "Cloud Storage source data location and import configuration. The Cloud Healthcare Service Agent requires the `roles/storage.objectViewer` Cloud IAM roles on the Cloud Storage location. The Healthcare Service Agent Each Cloud Storage object should be a text file that contains the format specified in ContentStructure.", "$ref": "GoogleCloudHealthcareV1beta1FhirGcsSource" } } }, "GoogleCloudHealthcareV1beta1FhirGcsSource": { "id": "GoogleCloudHealthcareV1beta1FhirGcsSource", "description": "Specifies the configuration for importing data from Cloud Storage.", "type": "object", "properties": { "uri": { "description": "Points to a Cloud Storage URI containing file(s) to import. The URI must be in the following format: `gs://{bucket_id}/{object_id}`. The URI can include wildcards in `object_id` and thus identify multiple files. Supported wildcards: * `*` to match 0 or more non-separator characters * `**` to match 0 or more characters (including separators). Must be used at the end of a path and with no other wildcards in the path. Can also be used with a file extension (such as .ndjson), which imports all files with the extension in the specified directory and its sub-directories. For example, `gs://my-bucket/my-directory/**.ndjson` imports all files with `.ndjson` extensions in `my-directory/` and its sub-directories. * `?` to match 1 character Files matching the wildcard are expected to contain content only, no metadata.", "type": "string" } } }, "ExportResourcesRequest": { "id": "ExportResourcesRequest", "description": "Request to export resources.", "type": "object", "properties": { "gcsDestination": { "description": "The Cloud Storage output destination. The Cloud Healthcare Service Agent requires the `roles/storage.objectAdmin` Cloud IAM roles on the Cloud Storage location. The exported outputs are organized by FHIR resource types. The server creates one object per resource type. Each object contains newline delimited JSON, and each line is a FHIR resource.", "$ref": "GoogleCloudHealthcareV1beta1FhirGcsDestination" }, "bigqueryDestination": { "description": "The BigQuery output destination. The Cloud Healthcare Service Agent requires two IAM roles on the BigQuery location: `roles/bigquery.dataEditor` and `roles/bigquery.jobUser`. The output is one BigQuery table per resource type. Unlike when setting `BigQueryDestination` for `StreamConfig`, `ExportResources` does not create BigQuery views.", "$ref": "GoogleCloudHealthcareV1beta1FhirBigQueryDestination" }, "_since": { "description": "If provided, only resources updated after this time are exported. The time uses the format YYYY-MM-DDThh:mm:ss.sss+zz:zz. For example, `2015-02-07T13:28:17.239+02:00` or `2017-01-01T00:00:00Z`. The time must be specified to the second and include a time zone.", "type": "string" }, "_type": { "description": "String of comma-delimited FHIR resource types. If provided, only resources of the specified resource type(s) are exported.", "type": "string" } } }, "GoogleCloudHealthcareV1beta1FhirGcsDestination": { "id": "GoogleCloudHealthcareV1beta1FhirGcsDestination", "description": "The configuration for exporting to Cloud Storage.", "type": "object", "properties": { "uriPrefix": { "description": "URI for a Cloud Storage directory where result files should be written (in the format `gs://{bucket-id}/{path/to/destination/dir}`). If there is no trailing slash, the service appends one when composing the object path. The Cloud Storage bucket referenced in `uri_prefix` must exist or an error occurs.", "type": "string" } } }, "ConfigureSearchRequest": { "id": "ConfigureSearchRequest", "description": "Request to configure the search parameters for the specified FHIR store.", "type": "object", "properties": { "canonicalUrls": { "description": "The canonical URLs of the search parameters that are intended to be used for the FHIR store. See https://www.hl7.org/fhir/references.html#canonical for explanation on FHIR canonical urls", "type": "array", "items": { "type": "string" } }, "validateOnly": { "description": "If `validate_only` is set to true, the method will compile all the search parameters without actually setting the search config for the store and triggering the reindex.", "type": "boolean" } } }, "ApplyConsentsRequest": { "id": "ApplyConsentsRequest", "description": "Request to apply the Consent resources for the specified FHIR store.", "type": "object", "properties": { "patientScope": { "description": "Optional. Scope down to a list of patients.", "$ref": "PatientScope" }, "timeRange": { "description": "Optional. Scope down to patients whose most recent consent changes are in the time range. Can only be used with a versioning store (i.e. when disable_resource_versioning is set to false).", "$ref": "TimeRange" }, "validateOnly": { "description": "Optional. If true, the method only validates Consent resources to make sure they are supported. When the operation completes, ApplyConsentsResponse is returned where `consent_apply_success` and `consent_apply_failure` indicate supported and unsupported (or invalid) Consent resources, respectively. Otherwise, the method propagates the aggregate consensual information to the patient's resources. Upon success, `affected_resources` in the ApplyConsentsResponse indicates the number of resources that may have consensual access changed.", "type": "boolean" } } }, "PatientScope": { "id": "PatientScope", "description": "Apply consents given by a list of patients.", "type": "object", "properties": { "patientIds": { "description": "Optional. The list of patient IDs whose Consent resources will be enforced. At most 10,000 patients can be specified. An empty list is equivalent to all patients (meaning the entire FHIR store).", "type": "array", "items": { "type": "string" } } } }, "TimeRange": { "id": "TimeRange", "description": "Apply consents given by patients whose most recent consent changes are in the time range. Note that after identifying these patients, the server applies all Consent resources given by those patients, not just the Consent resources within the timestamp in the range.", "type": "object", "properties": { "start": { "description": "Optional. The earliest consent change time, in format YYYY-MM-DDThh:mm:ss.sss+zz:zz If not specified, the system uses the FHIR store creation time.", "type": "string" }, "end": { "description": "Optional. The latest consent change time, in format YYYY-MM-DDThh:mm:ss.sss+zz:zz If not specified, the system uses the time when ApplyConsents was called.", "type": "string" } } }, "ApplyAdminConsentsRequest": { "id": "ApplyAdminConsentsRequest", "description": "Request to apply the admin Consent resources for the specified FHIR store.", "type": "object", "properties": { "newConsentsList": { "description": "A new list of admin Consent resources to be applied. Any existing enforced Consents, which are specified in `consent_config.enforced_admin_consents` of the FhirStore, that are not part of this list will be disabled. An empty list is equivalent to clearing or disabling all Consents enforced on the FHIR store. When a FHIR store has `disable_resource_versioning=true` and this list contains a Consent resource that exists in `consent_config.enforced_admin_consents`, the method enforces any updates to the existing resource since the last enforcement. If the existing resource hasn't been updated since the last enforcement, the resource is unaffected. After the method finishes, the resulting consent enforcement model is determined by the contents of the Consent resource(s) when the method was called: * When `disable_resource_versioning=true`, the result is identical to the current resource(s) in the FHIR store. * When `disable_resource_versioning=false`, the result is based on the historical version(s) of the Consent resource(s) at the point in time when the method was called. At most 200 Consents can be specified.", "$ref": "AdminConsents" }, "validateOnly": { "description": "If true, the method only validates Consent resources to make sure they are supported. Otherwise, the method applies the aggregate consent information to update the enforcement model and reindex the FHIR resources. If all Consent resources can be applied successfully, the ApplyAdminConsentsResponse is returned containing the following fields: * `consent_apply_success` to indicate the number of Consent resources applied. * `affected_resources` to indicate the number of resources that might have had their consent access changed. If, however, one or more Consent resources are unsupported or cannot be applied, the method fails and ApplyAdminConsentsErrorDetail is is returned with details about the unsupported Consent resources.", "type": "boolean" } } }, "AdminConsents": { "id": "AdminConsents", "description": "List of admin Consent resources to be applied.", "type": "object", "properties": { "names": { "description": "The versioned names of the admin Consent resource(s), in the format `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Consent/{resource_id}/_history/{version_id}`. For FHIR stores with `disable_resource_versioning=true`, the format is `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Consent/{resource_id}`.", "type": "array", "items": { "type": "string" } } } }, "ExplainDataAccessResponse": { "id": "ExplainDataAccessResponse", "description": "List of consent scopes that are applicable to the explained access on a given resource.", "type": "object", "properties": { "consentScopes": { "description": "List of applicable consent scopes. Sorted in order of actor such that scopes belonging to the same actor will be adjacent to each other in the list.", "type": "array", "items": { "$ref": "ExplainDataAccessConsentScope" } }, "warning": { "description": "Warnings associated with this response. It inform user with exceeded scope limit errors.", "type": "string" } } }, "ExplainDataAccessConsentScope": { "id": "ExplainDataAccessConsentScope", "description": "A single consent scope that provides info on who has access to the requested resource scope for a particular purpose and environment, enforced by which consent.", "type": "object", "properties": { "decision": { "description": "Whether the current consent scope is permitted or denied access on the requested resource.", "type": "string", "enumDescriptions": [ "Unspecified consent decision type.", "Consent permitted access.", "Consent denied access." ], "enum": [ "CONSENT_DECISION_TYPE_UNSPECIFIED", "CONSENT_DECISION_TYPE_PERMIT", "CONSENT_DECISION_TYPE_DENY" ] }, "enforcingConsents": { "description": "Metadata of the consent resources that enforce the consent scope's access.", "type": "array", "items": { "$ref": "ExplainDataAccessConsentInfo" } }, "exceptions": { "description": "Other consent scopes that created exceptions within this scope.", "type": "array", "items": { "$ref": "ExplainDataAccessConsentScope" } }, "accessorScope": { "description": "The accessor scope that describes who can access, for what purpose, and in which environment.", "$ref": "ConsentAccessorScope" } } }, "ExplainDataAccessConsentInfo": { "id": "ExplainDataAccessConsentInfo", "description": "The enforcing consent's metadata.", "type": "object", "properties": { "consentResource": { "description": "The resource name of this consent resource, in the format: `projects/{project_id}/locations/{location}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Consent/{resource_id}`.", "type": "string" }, "type": { "description": "The policy type of consent resource (e.g. PATIENT, ADMIN).", "type": "string", "enumDescriptions": [ "Unspecified policy type.", "Consent represent a patient consent.", "Consent represent an admin consent." ], "enum": [ "CONSENT_POLICY_TYPE_UNSPECIFIED", "CONSENT_POLICY_TYPE_PATIENT", "CONSENT_POLICY_TYPE_ADMIN" ] }, "variants": { "description": "The consent's variant combinations. A single consent may have multiple variants.", "type": "array", "items": { "type": "string", "enumDescriptions": [ "Consent variant unspecified.", "Consent is a standard patient or admin consent.", "Consent is a cascading consent." ], "enum": [ "CONSENT_VARIANT_UNSPECIFIED", "CONSENT_VARIANT_STANDARD", "CONSENT_VARIANT_CASCADE" ] } }, "enforcementTime": { "description": "Last enforcement timestamp of this consent resource.", "type": "string", "format": "google-datetime" }, "patientConsentOwner": { "description": "The patient owning the consent (only applicable for patient consents), in the format: `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/Patient/{patient_id}`", "type": "string" }, "cascadeOrigins": { "description": "The compartment base resources that matched a cascading policy. Each resource has the following format: `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}/fhir/{resource_type}/{resource_id}`", "type": "array", "items": { "type": "string" } }, "matchingAccessorScopes": { "description": "A list of all the matching accessor scopes of this consent policy that enforced ExplainDataAccessConsentScope.accessor_scope.", "type": "array", "items": { "$ref": "ConsentAccessorScope" } } } }, "ConsentAccessorScope": { "id": "ConsentAccessorScope", "description": "The accessor scope that describes who can access, for what purpose, in which environment.", "type": "object", "properties": { "actor": { "description": "An individual, group, or access role that identifies the accessor or a characteristic of the accessor. This can be a resource ID (such as `{resourceType}/{id}`) or an external URI. This value must be present.", "type": "string" }, "purpose": { "description": "The intent of data use. Can be \"*\" if it applies to all purposes.", "type": "string" }, "environment": { "description": "An abstract identifier that describes the environment or conditions under which the accessor is acting. Can be \"*\" if it applies to all environments.", "type": "string" } } }, "FhirStoreMetrics": { "id": "FhirStoreMetrics", "description": "List of metrics for a given FHIR store.", "type": "object", "properties": { "name": { "description": "The resource name of the FHIR store to get metrics for, in the format `projects/{project_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", "type": "string" }, "metrics": { "description": "List of FhirStoreMetric by resource type.", "type": "array", "items": { "$ref": "FhirStoreMetric" } } } }, "FhirStoreMetric": { "id": "FhirStoreMetric", "description": "Count of resources and total storage size by type for a given FHIR store.", "type": "object", "properties": { "resourceType": { "description": "The FHIR resource type this metric applies to.", "type": "string" }, "count": { "description": "The total count of FHIR resources in the store of this resource type.", "type": "string", "format": "int64" }, "structuredStorageSizeBytes": { "description": "The total amount of structured storage used by FHIR resources of this resource type in the store.", "type": "string", "format": "int64" } } }, "RollbackFhirResourcesRequest": { "id": "RollbackFhirResourcesRequest", "description": "Request to roll back resources.", "type": "object", "properties": { "type": { "description": "Optional. If specified, revert only resources of these types", "type": "array", "items": { "type": "string" } }, "rollbackTime": { "description": "Required. Time point to rollback to.", "type": "string", "format": "google-datetime" }, "filteringFields": { "description": "Optional. Tag represents fields that HDE needs to identify resources that will be reverted. Parameters for filtering resources", "$ref": "RollbackFhirResourceFilteringFields" }, "force": { "description": "Optional. When enabled, changes will be reverted without explicit confirmation", "type": "boolean" }, "changeType": { "description": "Optional. CREATE/UPDATE/DELETE/ALL for reverting all txns of a certain type.", "type": "string", "enumDescriptions": [ "When unspecified, revert all transactions", "All transactions", "Revert only CREATE transactions", "Revert only Update transactions", "Revert only Delete transactions" ], "enum": [ "CHANGE_TYPE_UNSPECIFIED", "ALL", "CREATE", "UPDATE", "DELETE" ] }, "resultGcsBucket": { "description": "Required. Bucket to deposit result", "type": "string" }, "inputGcsObject": { "description": "Optional. Cloud Storage object containing list of {resourceType}/{resourceId} lines, identifying resources to be reverted", "type": "string" }, "excludeRollbacks": { "description": "Optional. Specifies whether to exclude earlier rollbacks.", "type": "boolean" } } }, "RollbackFhirResourceFilteringFields": { "id": "RollbackFhirResourceFilteringFields", "description": "Filters to select resources that need to be rolled back.", "type": "object", "properties": { "operationIds": { "description": "Optional. A list of operation IDs to roll back. Only changes made by these operations will be rolled back.", "type": "array", "items": { "type": "string", "format": "uint64" } }, "metadataFilter": { "description": "Optional. A filter expression that matches data in the `Resource.meta` element. Supports all filters in [AIP-160](https://google.aip.dev/160) except the \"has\" (`:`) operator. Supports the following custom functions: * `tag(\"\") = \"\"` for tag filtering. * `extension_value_ts(\"\") = ` for filtering extensions with a timestamp, where `` is a Unix timestamp. Supports the `\u003e`, `\u003c`, `\u003c=`, `\u003e=`, and `!=` comparison operators.", "type": "string" } } }, "AnalyzeEntitiesRequest": { "id": "AnalyzeEntitiesRequest", "description": "The request to analyze healthcare entities in a document.", "type": "object", "properties": { "documentContent": { "description": "document_content is a document to be annotated.", "type": "string" }, "licensedVocabularies": { "description": "A list of licensed vocabularies to use in the request, in addition to the default unlicensed vocabularies.", "type": "array", "items": { "type": "string", "enumDescriptions": [ "No licensed vocabulary specified.", "ICD-10-CM vocabulary", "SNOMED CT (US version) vocabulary" ], "enum": [ "LICENSED_VOCABULARY_UNSPECIFIED", "ICD10CM", "SNOMEDCT_US" ] } }, "alternativeOutputFormat": { "description": "Optional. Alternative output format to be generated based on the results of analysis.", "type": "string", "enumDescriptions": [ "No alternative output format is specified.", "FHIR bundle output." ], "enum": [ "ALTERNATIVE_OUTPUT_FORMAT_UNSPECIFIED", "FHIR_BUNDLE" ] } } }, "AnalyzeEntitiesResponse": { "id": "AnalyzeEntitiesResponse", "description": "Includes recognized entity mentions and relationships between them.", "type": "object", "properties": { "entityMentions": { "description": "The `entity_mentions` field contains all the annotated medical entities that were mentioned in the provided document.", "type": "array", "items": { "$ref": "EntityMention" } }, "entities": { "description": "The union of all the candidate entities that the entity_mentions in this response could link to. These are UMLS concepts or normalized mention content.", "type": "array", "items": { "$ref": "Entity" } }, "relationships": { "description": "relationships contains all the binary relationships that were identified between entity mentions within the provided document.", "type": "array", "items": { "$ref": "EntityMentionRelationship" } }, "fhirBundle": { "description": "The FHIR bundle ([`R4`](http://hl7.org/fhir/R4/bundle.html)) that includes all the entities, the entity mentions, and the relationships in JSON format.", "type": "string" } } }, "EntityMention": { "id": "EntityMention", "description": "An entity mention in the document.", "type": "object", "properties": { "mentionId": { "description": "mention_id uniquely identifies each entity mention in a single response.", "type": "string" }, "type": { "description": "The semantic type of the entity: UNKNOWN_ENTITY_TYPE, ALONE, ANATOMICAL_STRUCTURE, ASSISTED_LIVING, BF_RESULT, BM_RESULT, BM_UNIT, BM_VALUE, BODY_FUNCTION, BODY_MEASUREMENT, COMPLIANT, DOESNOT_FOLLOWUP, FAMILY, FOLLOWSUP, LABORATORY_DATA, LAB_RESULT, LAB_UNIT, LAB_VALUE, MEDICAL_DEVICE, MEDICINE, MED_DOSE, MED_DURATION, MED_FORM, MED_FREQUENCY, MED_ROUTE, MED_STATUS, MED_STRENGTH, MED_TOTALDOSE, MED_UNIT, NON_COMPLIANT, OTHER_LIVINGSTATUS, PROBLEM, PROCEDURE, PROCEDURE_RESULT, PROC_METHOD, REASON_FOR_NONCOMPLIANCE, SEVERITY, SUBSTANCE_ABUSE, UNCLEAR_FOLLOWUP.", "type": "string" }, "text": { "description": "text is the location of the entity mention in the document.", "$ref": "TextSpan" }, "linkedEntities": { "description": "linked_entities are candidate ontological concepts that this entity mention may refer to. They are sorted by decreasing confidence.", "type": "array", "items": { "$ref": "LinkedEntity" } }, "temporalAssessment": { "description": "How this entity mention relates to the subject temporally. Its value is one of: CURRENT, CLINICAL_HISTORY, FAMILY_HISTORY, UPCOMING, ALLERGY", "$ref": "Feature" }, "certaintyAssessment": { "description": "The certainty assessment of the entity mention. Its value is one of: LIKELY, SOMEWHAT_LIKELY, UNCERTAIN, SOMEWHAT_UNLIKELY, UNLIKELY, CONDITIONAL", "$ref": "Feature" }, "subject": { "description": "The subject this entity mention relates to. Its value is one of: PATIENT, FAMILY_MEMBER, OTHER", "$ref": "Feature" }, "confidence": { "description": "The model's confidence in this entity mention annotation. A number between 0 and 1.", "type": "number", "format": "double" }, "additionalInfo": { "description": "Additional information about the entity mention. For example, for an entity mention of type `DATE` this can be its more specific date types from the following list: `ADMISSION_DATE`, `CONSULTATION_DATE`, `DISCHARGE_DATE`, `SERVICE_DATE`, `VISIT_DATE`, `DIAGNOSIS_DATE`, `MED_STARTED_DATE`, `MED_ENDED_DATE`, `NOTE_DATE`, `PROCEDURE_DATE`, `RADIATION_STARTED_DATE`, `RADIATION_ENDED_DATE`, `STAGE_DATE`", "type": "array", "items": { "$ref": "Feature" } } } }, "TextSpan": { "id": "TextSpan", "description": "A span of text in the provided document.", "type": "object", "properties": { "content": { "description": "The original text contained in this span.", "type": "string" }, "beginOffset": { "description": "The unicode codepoint index of the beginning of this span.", "type": "integer", "format": "int32" } } }, "LinkedEntity": { "id": "LinkedEntity", "description": "EntityMentions can be linked to multiple entities using a LinkedEntity message lets us add other fields, e.g. confidence.", "type": "object", "properties": { "entityId": { "description": "entity_id is a concept unique identifier. These are prefixed by a string that identifies the entity coding system, followed by the unique identifier within that system. For example, \"UMLS/C0000970\". This also supports ad hoc entities, which are formed by normalizing entity mention content.", "type": "string" } } }, "Feature": { "id": "Feature", "description": "A feature of an entity mention.", "type": "object", "properties": { "value": { "description": "The value of this feature annotation. Its range depends on the type of the feature.", "type": "string" }, "confidence": { "description": "The model's confidence in this feature annotation. A number between 0 and 1.", "type": "number", "format": "double" } } }, "Entity": { "id": "Entity", "description": "The candidate entities that an entity mention could link to.", "type": "object", "properties": { "entityId": { "description": "entity_id is a first class field entity_id uniquely identifies this concept and its meta-vocabulary. For example, \"UMLS/C0000970\".", "type": "string" }, "preferredTerm": { "description": "preferred_term is the preferred term for this concept. For example, \"Acetaminophen\". For ad hoc entities formed by normalization, this is the most popular unnormalized string.", "type": "string" }, "vocabularyCodes": { "description": "Vocabulary codes are first-class fields and differentiated from the concept unique identifier (entity_id). vocabulary_codes contains the representation of this concept in particular vocabularies, such as ICD-10, SNOMED-CT and RxNORM. These are prefixed by the name of the vocabulary, followed by the unique code within that vocabulary. For example, \"RXNORM/A10334543\".", "type": "array", "items": { "type": "string" } } } }, "EntityMentionRelationship": { "id": "EntityMentionRelationship", "description": "Defines directed relationship from one entity mention to another.", "type": "object", "properties": { "subjectId": { "description": "subject_id is the id of the subject entity mention.", "type": "string" }, "objectId": { "description": "object_id is the id of the object entity mention.", "type": "string" }, "confidence": { "description": "The model's confidence in this annotation. A number between 0 and 1.", "type": "number", "format": "double" } } }, "OperationMetadata": { "id": "OperationMetadata", "description": "OperationMetadata provides information about the operation execution. Returned in the long-running operation's metadata field.", "type": "object", "properties": { "apiMethodName": { "description": "The name of the API method that initiated the operation.", "type": "string" }, "createTime": { "description": "The time at which the operation was created by the API.", "type": "string", "format": "google-datetime" }, "endTime": { "description": "The time at which execution workloads were completed. Some tasks will complete after this time such as logging audit logs.", "type": "string", "format": "google-datetime" }, "counter": { "$ref": "ProgressCounter" }, "cancelRequested": { "description": "Specifies if cancellation was requested for the operation.", "type": "boolean" }, "logsUrl": { "description": "A link to audit and error logs in the log viewer. Error logs are generated only by some operations, listed at [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging). The `end_time` specified in this URL may not match the end time on the metadata because logs are written asynchronously from execution.", "type": "string" } } }, "ProgressCounter": { "id": "ProgressCounter", "description": "ProgressCounter provides counters to describe an operation's progress.", "type": "object", "properties": { "pending": { "description": "The number of units that are pending in the operation.", "type": "string", "format": "int64" }, "success": { "description": "The number of units that succeeded in the operation.", "type": "string", "format": "int64" }, "failure": { "description": "The number of units that failed in the operation.", "type": "string", "format": "int64" }, "secondarySuccess": { "description": "The number of secondary units that succeeded in the operation.", "type": "string", "format": "int64" }, "secondaryFailure": { "description": "The number of secondary units that failed in the operation.", "type": "string", "format": "int64" } } }, "EvaluateAnnotationStoreResponse": { "id": "EvaluateAnnotationStoreResponse", "description": "Response for successful Annotation store evaluation operations. This structure is included in the response upon operation completion.", "type": "object", "properties": {} }, "ExportAnnotationsResponse": { "id": "ExportAnnotationsResponse", "description": "Response for successful annotation export operations. This structure is included in response upon operation completion.", "type": "object", "properties": {} }, "ImportAnnotationsResponse": { "id": "ImportAnnotationsResponse", "description": "Final response of importing Annotations in successful case. This structure is included in the response. It is only included when the operation finishes.", "type": "object", "properties": {} }, "QueryAccessibleDataResponse": { "id": "QueryAccessibleDataResponse", "description": "Response for successful QueryAccessibleData operations. This structure is included in the response upon operation completion.", "type": "object", "properties": { "gcsUris": { "description": "List of files, each of which contains a list of data_id(s) that are consented for a specified use in the request.", "type": "array", "items": { "type": "string" } } } }, "ImportDicomDataResponse": { "id": "ImportDicomDataResponse", "description": "Returns additional information in regards to a completed DICOM store import.", "type": "object", "properties": {} }, "ExportDicomDataResponse": { "id": "ExportDicomDataResponse", "description": "Returns additional information in regards to a completed DICOM store export.", "type": "object", "properties": {} }, "DeidentifySummary": { "id": "DeidentifySummary", "description": "Contains a detailed summary of the Deidentify operation.", "type": "object", "properties": {} }, "GoogleCloudHealthcareV1beta1DeidentifyDeidentifyDicomStoreSummary": { "id": "GoogleCloudHealthcareV1beta1DeidentifyDeidentifyDicomStoreSummary", "description": "Contains a summary of the DeidentifyDicomStore operation.", "type": "object", "properties": {} }, "GoogleCloudHealthcareV1beta1DeidentifyDeidentifyFhirStoreSummary": { "id": "GoogleCloudHealthcareV1beta1DeidentifyDeidentifyFhirStoreSummary", "description": "Contains a summary of the DeidentifyFhirStore operation.", "type": "object", "properties": {} }, "GoogleCloudHealthcareV1beta1FhirImportResourcesResponse": { "id": "GoogleCloudHealthcareV1beta1FhirImportResourcesResponse", "description": "Final response of importing resources. This structure is included in the response to describe the detailed outcome after the operation finishes successfully.", "type": "object", "properties": {} }, "GoogleCloudHealthcareV1beta1FhirExportResourcesResponse": { "id": "GoogleCloudHealthcareV1beta1FhirExportResourcesResponse", "description": "Response when all resources export successfully. This structure is included in the response to describe the detailed outcome after the operation finishes successfully.", "type": "object", "properties": {} }, "RollbackFhirResourcesResponse": { "id": "RollbackFhirResourcesResponse", "description": "Final response of rollback FHIR resources request.", "type": "object", "properties": { "fhirStore": { "description": "The name of the FHIR store to rollback, in the format of \"projects/{project_id}/locations/{location_id}/datasets/{dataset_id} /fhirStores/{fhir_store_id}\".", "type": "string" } } }, "ExportMessagesResponse": { "id": "ExportMessagesResponse", "description": "Final response for the export operation. This structure is included in the response to describe the detailed outcome.", "type": "object", "properties": {} }, "ImportMessagesResponse": { "id": "ImportMessagesResponse", "description": "Final response of importing messages. This structure is included in the response to describe the detailed outcome. It is only included when the operation finishes successfully.", "type": "object", "properties": {} }, "ApplyConsentsResponse": { "id": "ApplyConsentsResponse", "description": "Response when all Consent resources in scope were processed and all affected resources were reindexed successfully. This structure is included in the response when the operation finishes successfully.", "type": "object", "properties": { "consentApplySuccess": { "description": "If `validate_only = false` in ApplyConsentsRequest, this counter is the number of Consent resources that were successfully applied. Otherwise, it is the number of Consent resources that are supported.", "type": "string", "format": "int64" }, "consentApplyFailure": { "description": "If `validate_only = false` in ApplyConsentsRequest, this counter is the number of Consent resources that were failed to apply. Otherwise, it is the number of Consent resources that are not supported or invalid.", "type": "string", "format": "int64" }, "affectedResources": { "description": "The number of resources (including the Consent resources) that may have consensual access change.", "type": "string", "format": "int64" }, "failedResources": { "description": "The number of resources (including the Consent resources) that ApplyConsents failed to re-index.", "type": "string", "format": "int64" } } }, "ApplyAdminConsentsResponse": { "id": "ApplyAdminConsentsResponse", "description": "Response when all admin Consent resources in scope were processed and all affected resources were reindexed successfully. This structure will be included in the response when the operation finishes successfully.", "type": "object", "properties": { "consentApplySuccess": { "description": "If `validate_only=false` in ApplyAdminConsentsRequest, this counter contains the number of Consent resources that were successfully applied. Otherwise, it is the number of Consent resources that are supported.", "type": "string", "format": "int64" }, "affectedResources": { "description": "The number of resources (including the Consent resources) that may have consent access change.", "type": "string", "format": "int64" }, "failedResources": { "description": "The number of resources (including the Consent resources) that ApplyAdminConsents failed to re-index.", "type": "string", "format": "int64" } } }, "SetBlobStorageSettingsResponse": { "id": "SetBlobStorageSettingsResponse", "description": "Returns additional info in regards to a completed set blob storage settings API.", "type": "object", "properties": {} } }, "discoveryVersion": "v1" }