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 yang berkaitan dengan izin pengguna sebagai
ConsentArtifact
.
ConsentArtifact
dapat menyertakan stempel waktu tanda tangan dan gambar
tanda tangan atau dokumen lain yang berfungsi sebagai "bukti" izin.
Consent Management API menyimpan data izin yang tidak sensitif sebagai objek
Consent
. Consent
mencakup ID pengguna buram, kebijakan izin yang diberikan oleh
pengguna, dan status kebijakan izin.
Karena izin dan artefak izin memiliki jalur resource yang berbeda, izinnya dapat ditetapkan secara independen untuk meminimalkan akses ke data izin sensitif dalam artefak izin.
Izin mendukung durasi masa berlaku yang memungkinkan Anda mengonfigurasi kapan izin berakhir dan tidak lagi valid. Durasi masa berlaku dapat ditetapkan ke tanggal atau jangka waktu tertentu, seperti satu tahun.
Selama pembuatan penyimpanan izin, Anda dapat mengonfigurasi durasi habis masa berlaku default untuk penyimpanan izin. Selama pembuatan izin, Anda dapat mengonfigurasi durasi masa berlaku untuk izin. Durasi habis masa berlaku yang ditetapkan selama pembuatan izin akan menggantikan durasi default yang ditetapkan untuk penyimpanan izin.
Izin dapat dibuat dalam status ACTIVE
atau DRAFT
. Izin dalam
status ACTIVE
digunakan oleh Consent Management API untuk membuat determinasi
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 mencatat 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 mencakup 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 izin induk.
- ID pengguna unik dan buram yang mewakili 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 wali atau saksi opsional.
- Gambar atau dokumen opsional yang berfungsi sebagai "bukti" izin, seperti gambar tanda tangan, gambar yang merekam layar alur izin seluler, atau dokumen PDF yang ditandatangani. Image 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
yang 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 non-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 izin induk.
- ID pengguna unik dan buram yang mewakili pengguna yang memberikan izin.
- Maksimal 10 kebijakan izin, masing-masing dengan kumpulan nilai atribut
RESOURCE
dan aturan otorisasi yang dinyatakan dalam Common Expression Language (CEL) yang menjelaskan intent pengguna dengan definisi atribut yang dibuat sebelumnya. Batasan berikut untuk CEL berlaku:- Anda hanya dapat menentukan maksimum 10 operator logika per kebijakan.
- Anda hanya dapat menggunakan operator DAN (&&), ATAU (||), dan DALAM.
- 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 habis masa berlaku opsional untuk izin, yang ditentukan sebagai tanggal atau
jangka waktu. Nilai ini harus diberikan dalam detik dan diakhiri dengan
huruf s. Misalnya,
86000s
. Nilai ini mengganti durasi masa berlaku yang dikonfigurasi untuk penyimpanan izin. Jika Anda tidak mengonfigurasi masa berlaku, resource akan mewarisi durasi masa berlaku default dari penyimpanan izin. Jika durasi masa berlaku tidak ditentukan untuk resource atau penyimpanan, resource izin tidak akan habis masa berlakunya. - Token akses.
curl
Contoh berikut menunjukkan permintaan POST
yang 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 izin
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 izin
- Nama izin
- Token akses
curl
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/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 izin
Contoh berikut menunjukkan cara mencantumkan izin di penyimpanan izin.
Untuk mencantumkan izin di penyimpanan izin, gunakan
metode projects.locations.datasets.consentStores.consents.list
.
curl
Untuk mencantumkan izin di penyimpanan izin, buat permintaan GET
dan tentukan
informasi berikut:
- Nama penyimpanan izin induk
- 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 izin, 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 akan 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
izin aktif atau draf, gunakan
metode
projects.locations.datasets.consentStores.consents.patch
. Revisi baru di-commit dengan perubahan 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 update
- Token akses
curl
Contoh berikut menunjukkan permintaan PATCH
menggunakan curl
yang memperbarui
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 menerima
izin, gunakan
metode
projects.locations.datasets.consentStores.consents.activateConsent
. Revisi baru di-commit dengan status ACTIVE
. Jika status izin adalah ACTIVE
, izin 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
yang 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 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 sebelumnya diberikan, gunakan
metode
projects.locations.datasets.consentStores.consents.revoke
. Revisi baru di-commit 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
yang 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" }