Halaman ini menjelaskan cara membuat, memperbarui, dan mencabut izin pengguna.
Aplikasi Anda mencatat artefak izin dan izin secara terpisah.
Consent Management API menyimpan data sensitif terkait izin pengguna sebagai ConsentArtifact
.
ConsentArtifact
dapat menyertakan stempel waktu tanda tangan dan gambar tanda tangan atau dokumen lain yang berfungsi sebagai "bukti" persetujuan.
Consent Management API menyimpan data izin non-sensitif sebagai objek Consent
. Consent
menyertakan ID pengguna buram, kebijakan izin yang diberikan oleh pengguna, dan status kebijakan izin.
Karena artefak izin dan izin memiliki jalur resource yang berbeda, izin keduanya dapat ditetapkan secara independen untuk meminimalkan akses ke data izin sensitif dalam artefak izin.
Izin mendukung durasi habis masa berlaku yang memungkinkan Anda mengonfigurasi kapan masa berlaku izin berakhir dan tidak lagi valid. Durasi habis masa berlaku dapat ditetapkan ke tanggal atau jangka waktu tertentu, seperti satu tahun.
Selama pembuatan penyimpanan Consent, Anda dapat mengonfigurasi durasi habis masa berlaku default untuk penyimpanan Consent. Selama pembuatan izin, Anda dapat mengonfigurasi durasi habis masa berlaku untuk izin tersebut. Durasi habis masa berlaku yang ditetapkan saat pembuatan izin akan menggantikan durasi default yang ditetapkan untuk penyimpanan persetujuan.
Izin dapat dibuat dalam status ACTIVE
atau DRAFT
. Izin di status ACTIVE
digunakan oleh Consent Management API untuk membuat penentuan akses. Izin dalam status DRAFT
hanya digunakan dalam penentuan akses jika ditentukan dalam permintaan penentuan akses. Anda dapat mengubah status dari DRAFT
menjadi ACTIVE
atau REJECTED
dengan memperbarui izin.
Untuk merekam izin pengguna, buat artefak izin menggunakan metode projects.locations.datasets.consentStores.consentArtifacts.create
, lalu tautkan artefak izin ke izin yang dibuat menggunakan metode projects.locations.datasets.consentStores.consents.create
.
Contoh di halaman ini mengasumsikan bahwa Anda telah membuat penyimpanan izin dan mengonfigurasi kebijakan izin.
Membuat artefak izin
Artefak izin menyimpan data sensitif yang berkaitan dengan izin pengguna. Artefak izin dapat menyertakan informasi kontak pengguna, stempel waktu tanda tangan, dan gambar tanda tangan atau dokumen lain yang berfungsi sebagai "bukti" izin.
Untuk membuat artefak izin, gunakan metode projects.locations.datasets.consentStores.consentArtifacts.create
. Buat permintaan POST
dan tentukan informasi berikut dalam permintaan:
- Nama penyimpanan persetujuan induk.
- ID pengguna unik dan buram yang merepresentasikan pengguna yang memberikan izin.
- Tanda tangan pengguna, secara opsional menyertakan gambar tanda tangan, stempel waktu, dan metadata lainnya. Gambar ini dapat ditentukan sebagai lokasi gambar di Cloud Storage atau sebagai string byte mentah.
- Tanda tangan saksi atau wali opsional.
- Gambar atau dokumen opsional yang bertindak sebagai "bukti" persetujuan, seperti gambar tanda tangan, gambar yang mengambil layar alur izin seluler, atau dokumen PDF yang ditandatangani. Gambar ini dapat ditentukan sebagai lokasi di Cloud Storage atau sebagai string byte mentah.
- ID untuk informasi izin yang ditampilkan kepada pengguna.
- Metadata opsional yang terkait dengan izin pengguna.
- Token akses.
curl
Contoh berikut menunjukkan permintaan POST
menggunakan curl
:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/consent+json; charset=utf-8" \ --data "{ 'user_id': 'USER_ID', 'user_signature' : { 'user_id': 'USER_ID', 'image': { 'gcs_uri': 'gs://IMG_URI' }, 'signature_time': { 'seconds': EPOCH_SECONDS }, }, 'consent_content_screenshots': [ { 'raw_bytes': 'BASE_64_IMAGE' }], 'consent_content_version': 'v1', 'metadata': {'client': 'mobile'} }" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts"
Jika permintaan berhasil, server akan menampilkan respons yang mirip dengan contoh berikut dalam format JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_RESOURCE_ID", "userId": "USER_ID", "userSignature": { "userId": "USER_ID", "signatureTime": "SIGNATURE_TIME" }, "consentContentVersion": "v1", "metadata": { "client": "mobile" } }
PowerShell
Contoh berikut menunjukkan permintaan POST
menggunakan Windows PowerShell:
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/consent+json; charset=utf-8" ` -Body "{ 'user_id': 'USER_ID', 'user_signature' : { 'user_id': 'USER_ID', 'image': { 'gcs_uri': 'gs://IMG_URI' }, 'signature_time': { 'seconds': EPOCH_SECONDS } }, 'consent_content_screenshots': [ { 'raw_bytes': 'BASE_64_IMAGE' }], 'consent_content_version': 'v1', 'metadata': {'client': 'mobile'} }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts" | Select-Object -Expand Content
Jika permintaan berhasil, server akan menampilkan respons berikut dalam format JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_RESOURCE_ID", "userId": "USER_ID", "userSignature": { "userId": "USER_ID", "signatureTime": "SIGNATURE_TIME" }, "consentContentVersion": "v1", "metadata": { "client": "mobile" } }
Membuat izin
Izin menyimpan data tidak sensitif, termasuk ID pengguna buram, kebijakan izin yang diberikan oleh pengguna, dan apakah kebijakan izin saat ini valid.
Untuk membuat izin, gunakan metode projects.locations.datasets.consentStores.consents.create
. Buat permintaan POST
dan tentukan informasi berikut dalam permintaan:
- Nama penyimpanan persetujuan induk.
- ID pengguna unik dan buram yang merepresentasikan pengguna yang memberikan izin.
- Hingga 10 kebijakan izin, masing-masing dengan satu set nilai atribut
RESOURCE
dan aturan otorisasi yang dinyatakan dalam Common Expression Language (CEL) yang mendeskripsikan intent pengguna dengan definisi atribut yang dibuat sebelumnya. Batasan berikut terhadap CEL berlaku:- Anda hanya dapat menentukan maksimum 10 operator logika per kebijakan.
- Anda hanya dapat menggunakan operator AND (&&), OR (||), dan IN.
- Jalur REST ke artefak izin yang sesuai (ditampilkan setelah pembuatan artefak izin).
- Status izin opsional,
DRAFT
atauACTIVE
. Jika Anda tidak menentukan status, izin akan dibuat dalam statusACTIVE
. - Durasi masa berlaku opsional untuk izin tersebut, yang didefinisikan sebagai tanggal atau jangka waktu. Nilai ini harus diberikan dalam detik dan diakhiri dengan
huruf s. Misalnya,
86000s
. Nilai ini menggantikan durasi habis masa berlaku yang dikonfigurasi untuk penyimpanan persetujuan. Jika Anda tidak mengonfigurasi masa berlaku, resource akan mewarisi durasi habis masa berlaku default dari penyimpanan persetujuan. Jika durasi habis masa berlaku tidak ditentukan untuk resource atau penyimpanan, resource izin tersebut tidak akan habis masa berlakunya. - Token akses.
curl
Contoh berikut menunjukkan permintaan POST
menggunakan curl
:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/consent+json; charset=utf-8" \ --data "{ \"user_id\": \"USER_ID\", \"policies\": [{ \"resource_attributes\": [{ \"attribute_definition_id\": \"data_identifiable\", \"values\": [\"identifiable\"] }], \"authorization_rule\": { \"expression\": \"requester_identity == 'clinical-admin'\", } }, { \"resource_attributes\": [{ \"attribute_definition_id\": \"data_identifiable\", \"values\": [\"de-identified\"] }], \"authorization_rule\": { \"expression\": \"requester_identity in ['internal-researcher', 'external-researcher']\" } }], \"consent_artifact\": \"projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID\", \"ttl\": \"EXPIRATION_DURATION\" }" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents"
Jika permintaan berhasil, server akan menampilkan respons yang mirip dengan contoh berikut:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "CONSENT_STATE", "stateChangeTime": "STATE_CHANGE_TIME", "expireTime": "EXPIRE_TIME" }
PowerShell
Contoh berikut menunjukkan permintaan POST
menggunakan Windows PowerShell:
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/consent+json; charset=utf-8" ` -Body "{ 'user_id': 'USER_ID', 'policies': [{ 'resource_attributes': [{ 'attribute_definition_id': 'data_identifiable', 'values': ['identifiable'] }], 'authorization_rule': { 'expression': 'requester_identity == \'clinical-admin\'', } },{ 'resource_attributes': [{ 'attribute_definition_id': 'data_identifiable', 'values': ['de-identified'] }], 'authorization_rule': { 'expression': 'requester_identity in [\'internal-researcher\', \'external-researcher\']' } }], 'consent_artifact': 'projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID', 'ttl': 'EXPIRATION_DURATION' }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents" | Select-Object -Expand Content
Jika permintaan berhasil, server akan menampilkan respons yang mirip dengan contoh berikut:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "CONSENT_STATE", "stateChangeTime": "STATE_CHANGE_TIME", "expireTime": "EXPIRE_TIME" }
Mendapatkan persetujuan
Contoh berikut menunjukkan cara mendapatkan izin. Untuk informasi selengkapnya, lihat
projects.locations.datasets.consentStores.consents.get
.
Untuk mendapatkan izin, buat permintaan GET
dan tentukan informasi berikut dalam permintaan:
- Nama set data induk
- Nama penyimpanan Consent
- Nama izin
- Token akses
curl
Contoh berikut menunjukkan permintaan GET
menggunakan curl
:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID"
Jika permintaan berhasil, server akan menampilkan respons dalam format JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "CONSENT_STATE", "stateChangeTime": "STATE_CHANGE_TIME", "revisionCreateTime": "REVISION_CREATE_TIME", "expireTime": "EXPIRE_TIME" }
PowerShell
Contoh berikut menunjukkan permintaan GET
menggunakan Windows PowerShell:
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-RestMethod ` -Method Get ` -Headers $headers ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID" | ConvertTo-Json
Jika permintaan berhasil, server akan menampilkan respons dalam format JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": "", "authorizationRule": "@{expression=requester_identity == 'clinical-admin'}" }, { "resourceAttributes": "", "authorizationRule": "@{expression=requester_identity in ['internal-researcher', 'external-researcher']}" } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "CONSENT_STATE", "stateChangeTime": "STATE_CHANGE_TIME", "revisionCreateTime": "REVISION_CREATE_TIME", "expireTime": "EXPIRE_TIME" }
Mencantumkan izin di penyimpanan Consent
Contoh berikut menunjukkan cara mencantumkan persetujuan di penyimpanan Consent.
Untuk mencantumkan izin di Consent store, gunakan metode projects.locations.datasets.consentStores.consents.list
.
curl
Untuk mencantumkan izin di penyimpanan Consent, buat permintaan GET
dan tentukan informasi berikut:
- Nama penyimpanan persetujuan orang tua
- Filter penelusuran opsional untuk mengambil izin berdasarkan ID pengguna, status, waktu pembuatan, atau artefak izin
- Token akses
Contoh berikut menunjukkan permintaan GET
yang menggunakan curl
.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents"
Jika permintaan berhasil, server akan menampilkan respons dalam format JSON:
{ "consents": [ { "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "CONSENT_STATE", "stateChangeTime": "STATE_CHANGE_TIME", "revisionCreateTime": "REVISION_CREATE_TIME", "expireTime": "EXPIRE_TIME" }, { ... } ] }
PowerShell
Untuk mencantumkan izin di penyimpanan Consent, buat permintaan GET
dan tentukan informasi berikut:
- Nama set data induk
- Filter penelusuran opsional untuk mengambil izin berdasarkan ID pengguna, status, waktu pembuatan, atau artefak izin
- Token akses
Contoh berikut menunjukkan permintaan GET
menggunakan Windows PowerShell.
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Get ` -Headers $headers ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents" | Select-Object -Expand Content
Jika permintaan berhasil, server akan menampilkan respons dalam format JSON:
{ "consents": [ { "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "CONSENT_STATE", "stateChangeTime": "STATE_CHANGE_TIME", "revisionCreateTime": "REVISION_CREATE_TIME", "expireTime": "EXPIRE_TIME" }, { ... } ] }
Anda juga dapat mencantumkan revisi izin tertentu menggunakan metode projects.locations.datasets.consentStores.consents.listRevisions
.
Memperbarui izin
Anda mungkin perlu memperbarui status izin dari waktu ke waktu. Anda dapat melakukannya dengan
mengubah status izin. Setiap pembaruan dan perubahan status menghasilkan revisi
izin yang baru. Revisi sebelumnya dapat diakses dengan menambahkan @{revision_id}
ke nama resource izin.
Memperbarui izin
Untuk memperbarui kolom userId
, policies
, consentArtifact
, atau revokeConsentArtifact
dari izin aktif atau draf, gunakan metode projects.locations.datasets.consentStores.consents.patch
. Revisi baru dilakukan dengan perubahan tersebut dan ditetapkan ke status saat ini.
Untuk memperbarui izin, buat permintaan PATCH
dan tentukan informasi berikut dalam permintaan:
- Jalur REST izin yang akan diperbarui
- Kolom yang akan diperbarui
- Mask pembaruan
- Token akses
curl
Contoh berikut menunjukkan permintaan PATCH
menggunakan curl
yang mengupdate
artefak izin:
curl -X PATCH \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/consent+json; charset=utf-8" \ --data "{ \"consentArtifact\": \"projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID\" }" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID?updateMask=consentArtifact"
Jika permintaan berhasil, server akan menampilkan respons yang mirip dengan contoh berikut dalam format JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "ACTIVE", "stateChangeTime": "STATE_CHANGE_TIME", "revisionCreateTime": "REVISION_CREATE_TIME", "expireTime": "EXPIRE_TIME" }
PowerShell
Contoh berikut menunjukkan permintaan PATCH
menggunakan Windows PowerShell yang
memperbarui artefak izin:
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Patch ` -Headers $headers ` -ContentType: "application/consent+json; charset=utf-8" ` -Body "{ 'consentArtifact': 'projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID' }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID?updateMask=consentArtifact" | Select-Object -Expand Content
Jika permintaan berhasil, server akan menampilkan respons yang mirip dengan contoh berikut dalam format JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "ACTIVE", "stateChangeTime": "STATE_CHANGE_TIME", "revisionCreateTime": "REVISION_CREATE_TIME", "expireTime": "EXPIRE_TIME" }
Mengaktifkan izin
Untuk mengubah status izin dari DRAFT
menjadi ACTIVE
setelah pengguna menyetujui izin, gunakan metode projects.locations.datasets.consentStores.consents.activateConsent
. Revisi baru dilakukan dengan status ACTIVE
. Jika status izin adalah ACTIVE
, izin tersebut akan disertakan dalam permintaan penentuan akses.
Untuk mengaktifkan izin, buat permintaan POST
dan tentukan informasi berikut dalam permintaan:
- Jalur REST izin yang akan diaktifkan
- Jalur REST ke artefak opsional untuk mendokumentasikan alasan izin diaktifkan
- Token akses
curl
Contoh berikut menunjukkan permintaan POST
menggunakan curl
:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/consent+json; charset=utf-8" \ --data "{ 'consent_artifact': 'projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/userConsentArtifacts/CONSENT_ARTIFACT_RESOURCE_ID' \ }" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID:activate"
Jika permintaan berhasil, server akan menampilkan respons yang mirip dengan contoh berikut dalam format JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "ACTIVE", "stateChangeTime": "STATE_CHANGE_TIME", "expireTime": "EXPIRE_TIME" }
PowerShell
Contoh berikut menunjukkan permintaan POST
menggunakan Windows PowerShell:
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/consent+json; charset=utf-8" ` -Body "{ 'consent_artifact': '/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/userConsentArtifacts/CONSENT_ARTIFACT_ID' }" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID:activate" | Select-Object -Expand Content
Jika permintaan berhasil, server akan menampilkan respons yang mirip dengan contoh berikut dalam format JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "ACTIVE", "stateChangeTime": "STATE_CHANGE_TIME", "expireTime": "EXPIRE_TIME" }
Mencabut dan menolak izin
Untuk mengubah status izin dari DRAFT
menjadi REJECTED
, misalnya, jika pengguna menunjukkan bahwa izin tersebut tidak dapat diterima, gunakan metode projects.locations.datasets.consentStores.consents.reject
. Jika status izin adalah REJECTED
, izin tidak disertakan dalam
permintaan penentuan akses.
Untuk mengubah status izin dari ACTIVE
menjadi REVOKED
, misalnya jika pengguna meminta untuk membatalkan izin yang telah diberikan sebelumnya, gunakan metode projects.locations.datasets.consentStores.consents.revoke
. Revisi baru dilakukan dengan status REVOKED
. Izin dengan status REVOKED
tidak disertakan dalam permintaan penentuan akses. Anda dapat membuat artefak opsional yang terkait dengan izin untuk mendokumentasikan alasan izin dicabut. Mencabut izin tidak akan menghapus izin tersebut.
Untuk mencabut izin, buat permintaan POST
dan tentukan informasi berikut dalam permintaan:
- Jalur REST izin yang akan dicabut
- Jalur REST ke artefak opsional untuk mendokumentasikan alasan izin dicabut
- Token akses
curl
Contoh berikut menunjukkan permintaan POST
menggunakan curl
:
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/consent+json; charset=utf-8" \ --data "{}" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID:revoke"
Jika permintaan berhasil, server akan menampilkan respons yang mirip dengan contoh berikut dalam format JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "REVOKED", "stateChangeTime": "STATE_CHANGE_TIME", "expireTime": "EXPIRE_TIME" }
PowerShell
Contoh berikut menunjukkan permintaan POST
menggunakan Windows PowerShell:
$cred = gcloud auth application-default print-access-token $headers = @{ Authorization = "Bearer $cred" } Invoke-WebRequest ` -Method Post ` -Headers $headers ` -ContentType: "application/consent+json; charset=utf-8" ` -Body "{}" ` -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID:revoke" | Select-Object -Expand Content
Jika permintaan berhasil, server akan menampilkan respons yang mirip dengan contoh berikut dalam format JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consents/CONSENT_ID", "userId": "USER_ID", "policies": [ { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "identifiable" ] } ], "authorizationRule": { "expression": "requester_identity == 'clinical-admin'" } }, { "resourceAttributes": [ { "attributeDefinitionId": "data_identifiable", "values": [ "de-identified" ] } ], "authorizationRule": { "expression": "requester_identity in ['internal-researcher', 'external-researcher']" } } ], "consentArtifact": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/consentStores/CONSENT_STORE_ID/consentArtifacts/CONSENT_ARTIFACT_ID", "state": "REVOKED", "stateChangeTime": "STATE_CHANGE_TIME", "expireTime": "EXPIRE_TIME" }