カタログ品目ACLの更新

post

/api/20210901/catalog/{type}/{id}/actions/updateACL

指定されたIDのカタログ品目のアクセス制御リスト(ACL)を更新します。

リクエスト

パス・パラメータ
  • base64url形式のカタログ品目ID。
  • カタログ品目のタイプこのAPIがサポートするコンテンツ・タイプには、フォルダ、ワークブック、サブジェクト領域、分析、ダッシュボード、ダッシュボード・ページ、レポート、接続、データセット、データ・フロー、シーケンス、スクリプトおよびセマンティック・モデルが含まれます。
サポートされているメディア・タイプ
リクエスト本文 - application/json ()
ルート・スキーマ: schema
Type: object
ソースを表示
  • aclList
    ACLのリスト
  • 指定してtrueにした場合、カタログ品目がコンテナ項目である場合は、すべてのサブ項目が同じACLを継承します。
  • デフォルト値: replaceAll
    指定できる値: [ "ReplaceAll", "ReplaceMatchingAccounts", "DeleteMatchingAccounts" ]
    更新モード。ReplaceAllは、既存のすべてのACLを削除し、指定されたACLに置き換えます。ReplaceMatchingAccountsは、一致するアカウントに対してのみ、既存のACLを指定されたACLに置き換えます。DeleteMatchingAccountsは、指定されたアカウントのACLを削除します。
ネストされたスキーマ: aclList
Type: array
ACLのリスト
ソースを表示
ネストされたスキーマ: CatalogItemACL
Type: object
ソースを表示
ネストされたスキーマ: accountType
すべてに一致
UserまたはApplicationRole。
ソースを表示
  • 指定できる値: [ "User", "ApplicationRole" ]
  • UserまたはApplicationRole。
ネストされたスキーマ: permissions
すべてに一致
有効な権限。権限が指定されていない場合、権限は無効になります。
ソースを表示
  • Permissions
  • 有効な権限。権限が指定されていない場合、権限は無効になります。
ネストされたスキーマ: Permissions
Type: object
ソースを表示
先頭に戻る

レスポンス

サポートされているメディア・タイプ

200レスポンス

成功した操作
本文()
ルート・スキーマ: CatalogItemACLs
Type: array
ソースを表示
ネストされたスキーマ: CatalogItemACL
Type: object
ソースを表示
ネストされたスキーマ: accountType
すべてに一致
UserまたはApplicationRole。
ソースを表示
  • 指定できる値: [ "User", "ApplicationRole" ]
  • UserまたはApplicationRole。
ネストされたスキーマ: permissions
すべてに一致
有効な権限。権限が指定されていない場合、権限は無効になります。
ソースを表示
  • Permissions
  • 有効な権限。権限が指定されていない場合、権限は無効になります。
ネストされたスキーマ: Permissions
Type: object
ソースを表示

400レスポンス

不正なリクエスト(無効な問合せパラメータ、不正なヘッダーなど)。
本文()
ルート・スキーマ: Error
Type: object
ソースを表示

401レスポンス

未承認(資格情報の欠落や期限切れなど)。
本文()
ルート・スキーマ: Error
Type: object
ソースを表示

403レスポンス

禁止(操作の権限がない、不明な理由によりリクエストが拒否されたなど)。
本文()
ルート・スキーマ: Error
Type: object
ソースを表示

404レスポンス

見つかりません。リクエストされたリソースが見つかりませんでした。
本文()
ルート・スキーマ: Error
Type: object
ソースを表示

500レスポンス

内部サーバー・エラー。サーバーで、リクエストの履行を妨げる予期しない状況が発生しました。
本文()
ルート・スキーマ: Error
Type: object
ソースを表示
先頭に戻る

カタログ品目のACLは、次の3つの方法で更新できます。
  • 例1 - カタログ品目のACL全体を置換します(updateMode=ReplaceAll)
  • 例2 - カタログ品目へのアクセス権を持つ1人以上のユーザーおよびアプリケーション・ロールのACLの更新(updateMode=ReplaceMatchingAccounts)
  • 例3 - カタログ・オブジェクトへのアクセス権を持つ1人以上のユーザーおよびアプリケーション・ロールのACLの削除(updateMode=DeleteMatchingAccounts)

これらの例は、特定のカタログ・オブジェクトMySalesWorkbookのアクセス制御リスト(ACL)の詳細を更新する方法を示しています。アイテムのtype値はworkbooksです。ワークブックIDは/@Catalog/shared/Sales/MySalesWorkbookで、Base64URLセーフでエンコードされたid値はL0BDYXRhbG9nL3NoYXJlZC9TYWxlcy9NeVNhbGVzV29ya2Jvb2sです。

まず、ACLの詳細が必要なワークブックのオブジェクトIDを取得します。「オブジェクトID」の値は、Oracle Analytics Serverのアイテムの「検査」ダイアログから取得できます。次に、Base64URLで値をエンコードしてidを決定します。

例1 - カタログ品目のACL全体の置換

この例では、現在のACLを削除し、複数のアプリケーション・ロール(BI Consumer、BI Service Administrator、DV Consumer、DV Content Author)および単一ユーザー(salesadmin)の新しいACLに置き換えます。

cURLの例:

必要なtypeおよびidを指定してcURLコマンドを実行します。更新モードをReplaceAllに設定します。

curl -i \
     --header 'Authorization: Bearer <token>' \
     --header 'Content-Type: application/json' \
     --request POST   'https://<hostname>/api/20210901/catalog/workbooks/L0BDYXRhbG9nL3NoYXJlZC9TYWxlcy9NeVNhbGVzV29ya2Jvb2s/actions/updateACL'  \
     --data '{"updateMode": "ReplaceAll",     \
        "aclList": [ \
         {           \
          "accountGuid": "BIConsumer",           \
          "accountType": "ApplicationRole",      \    
          "accountDisplayName": "BI Consumer",   \ 
          "permissions": {  \
            "read": true,   \
            "write": false, \
            "list": true,   \
            "delete": false, \
            "changePermission": false, \
            "takeOwnership": false    \    
           }   
          },   
          {       
           "accountGuid": "BIServiceAdministrator", \ 
           "accountType": "ApplicationRole",        \ 
           "accountDisplayName": "BI Service Administrator", \ 
           "permissions": { \
            "read": true,  \
            "write": true,  \
            "list": true,  \
            "delete": true, \
            "changePermission": true, \
            "takeOwnership": true     \  
            } \
           }, \
           {  \     
           "accountGuid": "DVConsumer",       \ 
           "accountType": "ApplicationRole",     \ 
           "accountDisplayName": "DV Consumer",   \
           "permissions": { \
            "read": true, \
            "write": false, \
            "list": true, \
            "delete": false, \
            "changePermission": false, \
            "takeOwnership": false      \
            } \
           },  \
           {     \   
           "accountGuid": "DVContentAuthor",     \   
           "accountType": "ApplicationRole",      \  
           "accountDisplayName": "DV Content Author",       
           "permissions": { \
            "read": true, \
            "write": false, \
            "list": true, \
            "delete": false, \
            "changePermission": false, \
            "takeOwnership": false     \   
            } \
           },   \    
           {    \    
           "accountGuid": "salesadmin",   \     
           "accountType": "User",     \   
           "permissions": { \
            "read": true, \
            "write": true, \
            "list": true, \
            "delete": true, \
            "changePermission": true, \
            "takeOwnership": false     \   
           }    \  
        }  \ 
       ] \
    }' \

リクエスト本文の例

Not applicable.

レスポンス本文の例

Status 200:
[
 {
   "accountGuid": "BIConsumer",
   "accountType": "ApplicationRole",
   "accountDisplayName": "BI Consumer",
      "permissions": {
          "read": true,
          "write": false,
          "list": true,
          "delete": false,
          "changePermission": false,
          "takeOwnership": false
       }
 },
 {
  "accountGuid": "BIServiceAdministrator",
  "accountType": "ApplicationRole",
  "accountDisplayName": "BI Service Administrator",
      "permissions": {
         "read": true,
         "write": true,
         "list": true,
         "delete": true,
         "changePermission": true,
         "takeOwnership": true
       }
 },
 {
  "accountGuid": "DVConsumer",
  "accountType": "ApplicationRole",
  "accountDisplayName": "DV Consumer",
      "permissions": {
         "read": true,
         "write": false,
         "list": true,
         "delete": false,
         "changePermission": false,
         "takeOwnership": false
       }
 },
 {
  "accountGuid": "DVContentAuthor",
  "accountType": "ApplicationRole",
  "accountDisplayName": "DV Content Author",
      "permissions": {
         "read": true,
         "write": false,
         "list": true,
         "delete": false,
         "changePermission": false,
         "takeOwnership": false
       }
 },
 {
  "accountGuid": "salesadmin",
  "accountType": "User",
      "permissions": {
         "read": true,
         "write": true,
         "list": true,
         "delete": true,
         "changePermission": true,
         "takeOwnership": false
       }
 }
]

例2 - カタログ品目へのアクセス権を持つ1人以上のユーザーおよびアプリケーション・ロールのACLの更新

この例では、DV Content Authorアプリケーション・ロールのACLを更新します。

cURLの例:

必要なtypeおよびidを指定してcURLコマンドを実行します。更新モードをReplaceMatchingAccountsに設定します。

curl -i  \
     --header 'Authorization: Bearer <token>'  \
     --header 'Content-Type: application/json'  \
     --request POST
'https://<hostname>/api/20210901/catalog/workbooks/L0BDYXRhbG9nL3NoYXJlZC9TYWxlcy9NeVNhbGVzV29ya2Jvb2s/actions/updateACL'  \
     --data '{"updateMode": "ReplaceMatchingAccounts", \
        "aclList": [\
         {      \
            "accountGuid": "DVContentAuthor",    \
            "accountType": "ApplicationRole",   \
            "permissions": { \
              "read": true, \
              "write": false, \
              "list": true, \
              "delete": false , \
              "changePermission": false, \
              "takeOwnership": false     \
             }   \
          }   \
        ] \
     }' \

リクエスト本文の例

Not applicable.

レスポンス本文の例

Status 200:
[
 {
  "accountGuid": "DVContentAuthor",
  "accountType": "ApplicationRole",
  "accountDisplayName": "DV Content Author",
      "permissions": {
         "read": true,
         "write": false,
         "list": true,
         "delete": false,
         "changePermission": false,
         "takeOwnership": false
       }
 }
]

例3 - カタログ品目へのアクセス権を持つ1人以上のユーザーおよびアプリケーション・ロールのACLの削除

この例では、salesadminユーザーのACLを削除します。

cURLの例:

必要なtypeおよびidを指定してcURLコマンドを実行します。更新モードをDeleteMatchingAccountsに設定します。

curl -i  \
     --header 'Authorization: Bearer <token>' \
     --header 'Content-Type: application/json' \
     --request POST
'https://<hostname>/api/20210901/catalog/workbooks/L0BDYXRhbG9nL3NoYXJlZC9TYWxlcy9NeVNhbGVzV29ya2Jvb2s/actions/updateACL' \
     --data '{"updateMode": "DeleteMatchingAccounts", \
        "aclList": [\
         {        \
          "accountGuid": "salesadmin",  \
          "accountType": "User",        \
          "permissions": {  \
            "read": true,   \
            "write": false, \
            "list": true,   \
            "delete": false,   \
            "changePermission": false,   \
            "takeOwnership": false     \
           }  \
        }     \
       ]      \
    }'        \

リクエスト本文の例

Not applicable.

レスポンス本文の例

Status 200:
先頭に戻る