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 mencakup 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 terpisah untuk meminimalkan akses ke data izin sensitif dalam artefak izin.
Izin mendukung durasi habis masa berlaku yang memungkinkan Anda mengonfigurasi kapan izin habis masa berlakunya dan tidak lagi valid. Durasi habis masa berlaku dapat ditetapkan ke tanggal tertentu atau jangka waktu, 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 kedaluwarsa untuk izin tersebut. Durasi habis masa berlaku yang ditetapkan selama pembuatan izin 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 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 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 toko izin induk.
- ID pengguna yang unik dan buram yang mewakili pengguna yang memberikan izin.
- Tanda tangan pengguna, yang secara opsional mencakup 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. 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 yang tidak sensitif, termasuk ID pengguna yang tidak transparan, 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 toko izin induk.
- ID pengguna yang unik dan buram yang mewakili pengguna yang memberikan izin.
- Hingga 10 kebijakan izin, masing-masing dengan serangkaian nilai atribut
RESOURCE
dan aturan otorisasi yang dinyatakan dalam Common Expression Language (CEL) yang menjelaskan maksud pengguna dengan definisi atribut yang dibuat sebelumnya. Batasan berikut berlaku untuk CEL:- 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, baik
DRAFT
maupunACTIVE
. 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 diberi akhiran huruf s. Misalnya,
86000s
. Nilai ini menggantikan 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 habis masa berlaku tidak ditentukan untuk resource atau toko, masa berlaku resource izin tidak akan habis. - 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 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
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
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 menghasilkan revisi baru izin. 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 dilakukan 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
mengupdate 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 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 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 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 pencabutan izin
- 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" }