openapi: 3.2.0 info: title: Sakura Internet Iam Policy API version: 2.1.0 contact: name: SAKURA internet Inc. description: 'Operations tagged iam-policy across 2 of this provider''s published API definitions: iam-api.yaml, sakura-internet-iam-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://secure.sakura.ad.jp/cloud/api/iam/1.0 security: - ServicePrincipalAuth: [] tags: - name: iam-policy x-displayName: IAMポリシー description: IAMポリシーに関する機能 paths: /projects/{project_id}/iam-policy: parameters: - $ref: '#/components/parameters/ProjectID' get: operationId: readProjectIamPolicy tags: - iam-policy summary: プロジェクトIAMポリシーを取得する responses: '200': description: 成功 content: application/json: schema: type: object required: - bindings properties: bindings: type: array items: $ref: '#/components/schemas/IamPolicy' example: bindings: - role: type: preset id: admin principals: - type: user id: 111111111111 - type: group id: 1 - type: service-principal id: 111111111111 '401': description: 認証情報が無効 content: application/json: schema: $ref: '#/components/schemas/Http401Unauthorized' '403': description: アクセス権限がない content: application/json: schema: $ref: '#/components/schemas/Http403Forbidden' '404': description: 指定したプロジェクトが存在しない content: application/json: schema: $ref: '#/components/schemas/Http404NotFound' '429': description: APIリクエストのレートリミット超過 content: application/json: schema: $ref: '#/components/schemas/Http429TooManyRequests' put: operationId: updateProjectIamPolicy tags: - iam-policy summary: プロジェクトIAMポリシーを更新する requestBody: description: プロジェクトIAMポリシーの情報を含んだJSON required: true content: application/json: schema: type: object required: - bindings properties: bindings: type: array items: $ref: '#/components/schemas/IamPolicy' example: bindings: - role: type: preset id: admin principals: - type: user id: 111111111111 - type: group id: 1 - type: service-principal id: 111111111111 responses: '200': description: 成功 content: application/json: schema: type: object required: - bindings properties: bindings: type: array items: $ref: '#/components/schemas/IamPolicy' '400': description: 不正なリクエスト content: application/json: schema: $ref: '#/components/schemas/Http400BadRequest' examples: LowestGrantableResourceInvalid: summary: 付与可能な最低階層を満たしていない value: type: about:blank status: 400 title: invalid detail: Invalid input. errors: role: - message: '"folder-admin"はフォルダ階層以上にのみ付与可能です' code: invalid '401': description: 認証情報が無効 content: application/json: schema: $ref: '#/components/schemas/Http401Unauthorized' '403': description: アクセス権限がない content: application/json: schema: $ref: '#/components/schemas/Http403Forbidden' '404': description: 指定したプロジェクトが存在しない content: application/json: schema: $ref: '#/components/schemas/Http404NotFound' '429': description: APIリクエストのレートリミット超過 content: application/json: schema: $ref: '#/components/schemas/Http429TooManyRequests' '503': description: 一時的な処理エラー content: application/json: schema: $ref: '#/components/schemas/Http503ServiceUnavailable' servers: - url: https://secure.sakura.ad.jp/cloud/api/iam/1.0 /folders/{folder_id}/iam-policy: parameters: - $ref: '#/components/parameters/FolderID' get: operationId: readFolderIamPolicy tags: - iam-policy summary: フォルダIAMポリシーを取得する responses: '200': description: 成功 content: application/json: schema: type: object required: - bindings properties: bindings: type: array items: $ref: '#/components/schemas/IamPolicy' example: bindings: - role: type: preset id: admin principals: - type: user id: 111111111111 - type: group id: 1 - type: service-principal id: 111111111111 '401': description: 認証情報が無効 content: application/json: schema: $ref: '#/components/schemas/Http401Unauthorized' '403': description: アクセス権限がない content: application/json: schema: $ref: '#/components/schemas/Http403Forbidden' '404': description: 指定したフォルダが存在しない content: application/json: schema: $ref: '#/components/schemas/Http404NotFound' '429': description: APIリクエストのレートリミット超過 content: application/json: schema: $ref: '#/components/schemas/Http429TooManyRequests' put: operationId: updateFolderIamPolicy tags: - iam-policy summary: フォルダIAMポリシーを更新する requestBody: description: フォルダIAMポリシーの情報を含んだJSON required: true content: application/json: schema: type: object required: - bindings properties: bindings: type: array items: $ref: '#/components/schemas/IamPolicy' example: bindings: - role: type: preset id: admin principals: - type: user id: 111111111111 - type: group id: 1 - type: service-principal id: 111111111111 responses: '200': description: 成功 content: application/json: schema: type: object required: - bindings properties: bindings: type: array items: $ref: '#/components/schemas/IamPolicy' '400': description: 不正なリクエスト content: application/json: schema: $ref: '#/components/schemas/Http400BadRequest' examples: LowestGrantableResourceInvalid: summary: 付与可能な最低階層を満たしていない value: type: about:blank status: 400 title: invalid detail: Invalid input. errors: role: - message: '"servicepolicy-admin"は組織階層以上にのみ付与可能です' code: invalid '401': description: 認証情報が無効 content: application/json: schema: $ref: '#/components/schemas/Http401Unauthorized' '403': description: アクセス権限がない content: application/json: schema: $ref: '#/components/schemas/Http403Forbidden' '404': description: 指定したフォルダが存在しない content: application/json: schema: $ref: '#/components/schemas/Http404NotFound' '429': description: APIリクエストのレートリミット超過 content: application/json: schema: $ref: '#/components/schemas/Http429TooManyRequests' '503': description: 一時的な処理エラー content: application/json: schema: $ref: '#/components/schemas/Http503ServiceUnavailable' servers: - url: https://secure.sakura.ad.jp/cloud/api/iam/1.0 /organization-iam-policy: get: operationId: readOrganizationIamPolicy tags: - iam-policy summary: 組織IAMポリシーを取得する responses: '200': description: 成功 content: application/json: schema: type: object required: - bindings properties: bindings: type: array items: $ref: '#/components/schemas/IamPolicy' example: bindings: - role: type: preset id: admin principals: - type: user id: 111111111111 - type: group id: 1 - type: service-principal id: 111111111111 '401': description: 認証情報が無効 content: application/json: schema: $ref: '#/components/schemas/Http401Unauthorized' '403': description: アクセス権限がない content: application/json: schema: $ref: '#/components/schemas/Http403Forbidden' '429': description: APIリクエストのレートリミット超過 content: application/json: schema: $ref: '#/components/schemas/Http429TooManyRequests' put: operationId: updateOrganizationIamPolicy tags: - iam-policy summary: 組織IAMポリシーを更新する requestBody: description: 組織IAMポリシーの情報を含んだJSON required: true content: application/json: schema: type: object required: - bindings properties: bindings: type: array items: $ref: '#/components/schemas/IamPolicy' example: bindings: - role: type: preset id: admin principals: - type: user id: 111111111111 - type: group id: 1 - type: service-principal id: 111111111111 responses: '200': description: 成功 content: application/json: schema: type: object required: - bindings properties: bindings: type: array items: $ref: '#/components/schemas/IamPolicy' '400': description: 不正なリクエスト content: application/json: schema: $ref: '#/components/schemas/Http400BadRequest' '401': description: 認証情報が無効 content: application/json: schema: $ref: '#/components/schemas/Http401Unauthorized' '403': description: アクセス権限がない content: application/json: schema: $ref: '#/components/schemas/Http403Forbidden' '429': description: APIリクエストのレートリミット超過 content: application/json: schema: $ref: '#/components/schemas/Http429TooManyRequests' '503': description: 一時的な処理エラー content: application/json: schema: $ref: '#/components/schemas/Http503ServiceUnavailable' servers: - url: https://secure.sakura.ad.jp/cloud/api/iam/1.0 components: schemas: Http404NotFound: type: object required: - type - status - title - detail properties: type: type: string description: 問題を説明するドキュメントへのURI(基本的にはabout:blank) example: about:blank status: type: integer description: HTTPステータスコード example: 404 title: type: string description: 問題を表す簡単な文字列 example: not_found detail: type: string description: 問題の詳細を説明した文字列(人が読んで問題解決に繋がるような説明) example: 見つかりませんでした。 Http429TooManyRequests: type: object required: - type - status - title - detail properties: type: type: string description: 問題を説明するドキュメントへのURI(基本的にはabout:blank) example: about:blank status: type: integer description: HTTPステータスコード example: 429 title: type: string description: 問題を表す簡単な文字列 example: throttled detail: type: string description: 問題の詳細を説明した文字列(人が読んで問題解決に繋がるような説明) example: リクエストの処理は絞られました。 60秒後に利用可能になります。 Http503ServiceUnavailable: type: object required: - type - status - title - detail properties: type: type: string description: 問題を説明するドキュメントへのURI(基本的にはabout:blank) example: about:blank status: type: integer description: HTTPステータスコード example: 503 title: type: string description: 問題を表す簡単な文字列 example: temporary_unavailable detail: type: string description: 問題の詳細を説明した文字列(人が読んで問題解決に繋がるような説明) example: 一時的にエラーが発生しました。 IamPolicy: type: object properties: role: type: object properties: type: type: string enum: - preset id: type: string description: IAMロールID example: admin principals: type: array items: $ref: '#/components/schemas/Principal' Http403Forbidden: type: object required: - type - status - title - detail properties: type: type: string description: 問題を説明するドキュメントへのURI(基本的にはabout:blank) example: about:blank status: type: integer description: HTTPステータスコード example: 403 title: type: string description: 問題を表す簡単な文字列 example: permission_denied detail: type: string description: 問題の詳細を説明した文字列(人が読んで問題解決に繋がるような説明) example: このアクションを実行する権限がありません。 Principal: type: object properties: type: type: string description: プリンシパルのタイプ example: user id: type: integer description: プリンシパルのID example: 111111111111 Http400BadRequest: type: object required: - type - status - title - detail - errors properties: type: type: string description: 問題を説明するドキュメントへのURI(基本的にはabout:blank) example: about:blank status: type: integer description: HTTPステータスコード example: 400 title: type: string description: 問題を表す簡単な文字列 example: invalid detail: type: string description: 問題の詳細を説明した文字列(人が読んで問題解決に繋がるような説明) example: 不正な入力です。 errors: type: object additionalProperties: type: array items: type: object required: - message - code properties: message: type: string description: エラー内容を説明した文字列 code: type: string description: エラーの内容を表す文字列 description: リクエストボディの特定キーに関するエラー properties: non_field_errors: type: array items: type: object required: - message - code properties: message: type: string description: エラー内容を説明した文字列 code: type: string description: エラーの内容を表す文字列 description: リクエストボディの特定キーに関係しないエラー example: key1: - message: この項目は必須です。 code: required key2: - message: 有効な値ではありません。 code: invalid key3: - message: この項目は少なくとも*文字以上にしてください。 code: min_length key4: - message: この項目が*文字より長くならないようにしてください。 code: max_length Http401Unauthorized: type: object required: - type - status - title - detail properties: type: type: string description: 問題を説明するドキュメントへのURI(基本的にはabout:blank) example: about:blank status: type: integer description: HTTPステータスコード example: 401 title: type: string description: 問題を表す簡単な文字列 example: authentication_failed detail: type: string description: 問題の詳細を説明した文字列(人が読んで問題解決に繋がるような説明) example: 認証情報が含まれていません。 parameters: FolderID: in: path name: folder_id description: フォルダID required: true schema: type: integer ProjectID: in: path name: project_id description: プロジェクトID required: true schema: type: integer securitySchemes: ServicePrincipalAuth: description: 'サービスプリンシパル認証 - サービスプリンシパルのアクセストークンを指定 ' type: http scheme: bearer ProjectApiKeyAuth: description: 'APIキー認証 - ユーザー名に発行したAPIキーのアクセストークンを指定 - パスワードに発行したAPIキーのアクセストークンシークレットを指定 ' type: http scheme: basic x-refined-from: - iam-api.yaml - sakura-internet-iam-openapi.yml