openapi: 3.2.0 info: title: Sakura Internet Cluster API version: 1.4.0 contact: name: SAKURA internet Inc. license: name: Copyright(C) SAKURA internet Inc. all rights reserved. description: 'Operations tagged cluster across 2 of this provider''s published API definitions: apprun-dedicated-api.yaml, sakura-internet-apprun-dedicated-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://secure.sakura.ad.jp/cloud/api/apprun-dedicated/1.0 description: AppRun専有型 API エンドポイント variables: {} security: - BasicAuth: [] tags: - name: Cluster paths: /clusters: post: operationId: createCluster summary: クラスタの作成 description: 新しいクラスタを作成します。作成後にクラスタIDを返します。 parameters: [] responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/CreateClusterResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Cluster requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateClusterRequest' get: operationId: listClusters summary: クラスタの一覧を取得 description: アカウントに紐づくクラスタの一覧を返します。ページネーションに対応します。 parameters: - name: lastClusterID in: query required: false schema: $ref: '#/components/schemas/ClusterID' explode: false - name: cursor in: query required: false description: 前ページの最後のID。これ以降のデータを取得するためのカーソル。 schema: $ref: '#/components/schemas/ClusterID' explode: false - name: maxItems in: query required: true schema: type: integer format: int64 minimum: 5 maximum: 30 default: 20 explode: false responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/ListClustersResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Cluster servers: - url: https://secure.sakura.ad.jp/cloud/api/apprun-dedicated/1.0 description: AppRun専有型 API エンドポイント variables: {} /clusters/{clusterID}: get: operationId: readCluster summary: クラスタの詳細を取得 description: 指定したクラスタの詳細を返します。 parameters: - name: clusterID in: path required: true schema: $ref: '#/components/schemas/ClusterID' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/ReadClusterResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Cluster delete: operationId: deleteCluster summary: クラスタの削除 description: 指定したクラスタを削除します。 parameters: - name: clusterID in: path required: true schema: $ref: '#/components/schemas/ClusterID' responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Cluster put: operationId: updateCluster summary: クラスタの更新 description: 指定したクラスタの設定を更新します。 parameters: - name: clusterID in: path required: true schema: $ref: '#/components/schemas/ClusterID' responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Cluster requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateClusterRequest' servers: - url: https://secure.sakura.ad.jp/cloud/api/apprun-dedicated/1.0 description: AppRun専有型 API エンドポイント variables: {} /clusters/{clusterID}/asg: post: operationId: createAutoScalingGroup summary: オートスケーリンググループの作成 description: 新しいオートスケーリンググループを作成します。 parameters: - name: clusterID in: path required: true schema: $ref: '#/components/schemas/ClusterID' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/CreateAutoScalingGroupResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Cluster requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateAutoScalingGroupRequest' get: operationId: listAutoScalingGroups summary: オートスケーリンググループの一覧を取得 description: クラスタに所属するオートスケーリンググループの一覧を返します。ページネーションに対応します。 parameters: - name: clusterID in: path required: true schema: $ref: '#/components/schemas/ClusterID' - name: lastAutoScalingGroupID in: query required: false schema: $ref: '#/components/schemas/AutoScalingGroupID' explode: false - name: cursor in: query required: false description: 前ページの最後のID。これ以降のデータを取得するためのカーソル。 schema: $ref: '#/components/schemas/AutoScalingGroupID' explode: false - name: maxItems in: query required: true schema: type: integer format: int64 minimum: 1 maximum: 30 default: 20 explode: false responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/ListAutoScalingGroupsResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Cluster servers: - url: https://secure.sakura.ad.jp/cloud/api/apprun-dedicated/1.0 description: AppRun専有型 API エンドポイント variables: {} /clusters/{clusterID}/asg/{autoScalingGroupID}: get: operationId: readAutoScalingGroup summary: オートスケーリンググループの詳細を取得 description: 指定したオートスケーリンググループの詳細を返します。 parameters: - name: clusterID in: path required: true schema: $ref: '#/components/schemas/ClusterID' - name: autoScalingGroupID in: path required: true schema: $ref: '#/components/schemas/AutoScalingGroupID' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/ReadAutoScalingGroupResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Cluster delete: operationId: deleteAutoScalingGroup summary: オートスケーリンググループの削除 description: 指定したオートスケーリンググループを削除します。 parameters: - name: clusterID in: path required: true schema: $ref: '#/components/schemas/ClusterID' - name: autoScalingGroupID in: path required: true schema: $ref: '#/components/schemas/AutoScalingGroupID' responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Cluster servers: - url: https://secure.sakura.ad.jp/cloud/api/apprun-dedicated/1.0 description: AppRun専有型 API エンドポイント variables: {} /clusters/{clusterID}/asg/{autoScalingGroupID}/load_balancers: post: operationId: createLoadBalancer summary: ロードバランサの作成 description: 指定したオートスケーリンググループにロードバランサを作成します。 parameters: - name: clusterID in: path required: true schema: $ref: '#/components/schemas/ClusterID' - name: autoScalingGroupID in: path required: true schema: $ref: '#/components/schemas/AutoScalingGroupID' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/CreateLoadBalancerResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Cluster requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateLoadBalancerRequest' get: operationId: listLoadBalancers summary: ロードバランサの一覧を取得 description: オートスケーリンググループに属するロードバランサの一覧を返します。ページネーションに対応します。 parameters: - name: clusterID in: path required: true schema: $ref: '#/components/schemas/ClusterID' - name: autoScalingGroupID in: path required: true schema: $ref: '#/components/schemas/AutoScalingGroupID' - name: cursor in: query required: false schema: $ref: '#/components/schemas/LoadBalancerID' explode: false - name: maxItems in: query required: true schema: type: integer format: int64 minimum: 2 maximum: 30 default: 20 explode: false responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/ListLoadBalancersResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Cluster servers: - url: https://secure.sakura.ad.jp/cloud/api/apprun-dedicated/1.0 description: AppRun専有型 API エンドポイント variables: {} /clusters/{clusterID}/asg/{autoScalingGroupID}/load_balancers/{loadBalancerID}: get: operationId: readLoadBalancer summary: ロードバランサの詳細を取得 description: 指定したロードバランサの詳細を返します。 parameters: - name: clusterID in: path required: true schema: $ref: '#/components/schemas/ClusterID' - name: autoScalingGroupID in: path required: true schema: $ref: '#/components/schemas/AutoScalingGroupID' - name: loadBalancerID in: path required: true schema: $ref: '#/components/schemas/LoadBalancerID' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/ReadLoadBalancerResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Cluster delete: operationId: deleteLoadBalancer summary: ロードバランサを削除する description: 指定したロードバランサを削除します。 parameters: - name: clusterID in: path required: true schema: $ref: '#/components/schemas/ClusterID' - name: autoScalingGroupID in: path required: true schema: $ref: '#/components/schemas/AutoScalingGroupID' - name: loadBalancerID in: path required: true schema: $ref: '#/components/schemas/LoadBalancerID' responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Cluster servers: - url: https://secure.sakura.ad.jp/cloud/api/apprun-dedicated/1.0 description: AppRun専有型 API エンドポイント variables: {} /clusters/{clusterID}/asg/{autoScalingGroupID}/load_balancers/{loadBalancerID}/load_balancer_nodes: get: operationId: listLoadBalancerNodes summary: ロードバランサノードの一覧を取得 description: 指定したロードバランサに属するノードの一覧を返します。 parameters: - name: clusterID in: path required: true schema: $ref: '#/components/schemas/ClusterID' - name: autoScalingGroupID in: path required: true schema: $ref: '#/components/schemas/AutoScalingGroupID' - name: loadBalancerID in: path required: true schema: $ref: '#/components/schemas/LoadBalancerID' - name: cursor in: query required: false schema: $ref: '#/components/schemas/LoadBalancerNodeID' explode: false - name: maxItems in: query required: true schema: type: integer format: int64 minimum: 2 maximum: 30 default: 20 explode: false responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/ListLoadBalancerNodesResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Cluster servers: - url: https://secure.sakura.ad.jp/cloud/api/apprun-dedicated/1.0 description: AppRun専有型 API エンドポイント variables: {} /clusters/{clusterID}/asg/{autoScalingGroupID}/load_balancers/{loadBalancerID}/load_balancer_nodes/{loadBalancerNodeID}: get: operationId: readLoadBalancerNode summary: ロードバランサノードの詳細を取得 description: 指定したロードバランサノードの詳細を返します。 parameters: - name: clusterID in: path required: true schema: $ref: '#/components/schemas/ClusterID' - name: autoScalingGroupID in: path required: true schema: $ref: '#/components/schemas/AutoScalingGroupID' - name: loadBalancerID in: path required: true schema: $ref: '#/components/schemas/LoadBalancerID' - name: loadBalancerNodeID in: path required: true schema: $ref: '#/components/schemas/LoadBalancerNodeID' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/ReadLoadBalancerNodeResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Cluster servers: - url: https://secure.sakura.ad.jp/cloud/api/apprun-dedicated/1.0 description: AppRun専有型 API エンドポイント variables: {} /clusters/{clusterID}/asg/{autoScalingGroupID}/worker_nodes: get: operationId: listWorkerNodes summary: オートスケーリンググループに所属するワーカノードの一覧を取得 description: オートスケーリンググループに所属するワーカノードの一覧を返します。ページネーションに対応します。 parameters: - name: clusterID in: path required: true schema: $ref: '#/components/schemas/ClusterID' - name: autoScalingGroupID in: path required: true schema: $ref: '#/components/schemas/AutoScalingGroupID' - name: cursor in: query required: false schema: $ref: '#/components/schemas/WorkerNodeID' explode: false - name: maxItems in: query required: true schema: type: integer format: int64 minimum: 2 maximum: 100 default: 20 explode: false responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/ListWorkerNodesResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Cluster servers: - url: https://secure.sakura.ad.jp/cloud/api/apprun-dedicated/1.0 description: AppRun専有型 API エンドポイント variables: {} /clusters/{clusterID}/asg/{autoScalingGroupID}/worker_nodes/{workerNodeID}: get: operationId: readWorkerNode summary: オートスケーリンググループに所属するワーカノードの詳細を取得 description: 指定したワーカノードの詳細を返します。 parameters: - name: clusterID in: path required: true schema: $ref: '#/components/schemas/ClusterID' - name: autoScalingGroupID in: path required: true schema: $ref: '#/components/schemas/AutoScalingGroupID' - name: workerNodeID in: path required: true schema: $ref: '#/components/schemas/WorkerNodeID' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/ReadWorkerNodeResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Cluster servers: - url: https://secure.sakura.ad.jp/cloud/api/apprun-dedicated/1.0 description: AppRun専有型 API エンドポイント variables: {} /clusters/{clusterID}/asg/{autoScalingGroupID}/worker_nodes/{workerNodeID}/draining: put: operationId: updateWorkerNodeDraining summary: ワーカノードのドレイン状態を変更する description: 指定したワーカノードのドレイン状態を更新します(ドレインを有効/無効にします)。 parameters: - name: clusterID in: path required: true schema: $ref: '#/components/schemas/ClusterID' - name: autoScalingGroupID in: path required: true schema: $ref: '#/components/schemas/AutoScalingGroupID' - name: workerNodeID in: path required: true schema: $ref: '#/components/schemas/WorkerNodeID' responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Cluster requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateWorkerNodeDrainingRequest' servers: - url: https://secure.sakura.ad.jp/cloud/api/apprun-dedicated/1.0 description: AppRun専有型 API エンドポイント variables: {} /clusters/{clusterID}/load_balancer: get: operationId: readClusterLoadBalancer summary: クラスタのロードバランサ設定を取得 description: 指定したクラスタに紐づくロードバランサ設定(Let's Encrypt メール設定の有無と公開ポート設定)を返します。 parameters: - name: clusterID in: path required: true schema: $ref: '#/components/schemas/ClusterID' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/ReadClusterLoadBalancerResponse' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Cluster patch: operationId: patchClusterLoadBalancer summary: クラスタのロードバランサ設定を部分更新 description: 指定したクラスタに紐づくロードバランサ設定を部分更新します。未指定の項目は既存値を維持します。 parameters: - name: clusterID in: path required: true schema: $ref: '#/components/schemas/ClusterID' responses: '204': description: 'There is no content to send for this request, but the headers may be useful. ' default: description: An unexpected error response. content: application/json: schema: $ref: '#/components/schemas/Error' tags: - Cluster requestBody: required: true content: application/merge-patch+json: schema: $ref: '#/components/schemas/PatchClusterLoadBalancerRequest' servers: - url: https://secure.sakura.ad.jp/cloud/api/apprun-dedicated/1.0 description: AppRun専有型 API エンドポイント variables: {} components: schemas: ListLoadBalancerNodesResponse: type: object required: - loadBalancerNodes properties: loadBalancerNodes: type: array items: $ref: '#/components/schemas/LoadBalancerNode' description: ロードバランサノードの一覧 nextCursor: allOf: - $ref: '#/components/schemas/LoadBalancerNodeID' description: 次ページのカーソル。次のリクエストでcursorとして指定する。データが残っていなければnull。 description: ロードバランサノードの一覧レスポンス example: loadBalancerNodes: - loadBalancerNodeID: 550e8400-e29b-41d4-a716-446655440001 resourceID: '12345678901' status: healthy interfaces: - interfaceIndex: 1 addresses: - address: 10.0.0.8/24 vip: false - address: 10.0.1.2/24 vip: true - interfaceIndex: 2 addresses: - address: 10.0.2.8/24 vip: false - address: 10.0.3.4/24 vip: true archiveVersion: 2025.1014.1 created: 1577836800 - loadBalancerNodeID: 660e8400-e29b-41d4-a716-446655440001 resourceID: '12345678901' status: healthy interfaces: - interfaceIndex: 1 addresses: - address: 10.0.0.9/24 vip: false createErrorMessage: クラスタのサービスプリンシパルにさくらのクラウドの作成・削除権限が付与されているか確認してください created: 1577836800 UpdateClusterRequest: type: object required: - servicePrincipalID properties: letsEncryptEmail: type: string pattern: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ description: 'Let''s Encrypt による証明書発行を有効にするにはここにメールアドレスを設定します。 Let''s Encrypt による証明書発行は HTTP-01 チャレンジになるため、80 番ポートを HTTPプロトコルで外向きに解放する必要があります。' title: Let's Encrypt のメールアドレス servicePrincipalID: $ref: '#/components/schemas/ServicePrincipalID' ports: type: array items: $ref: '#/components/schemas/ClusterLoadBalancerPort' maxItems: 5 description: ロードバランサのポート群 ListLoadBalancersResponse: type: object required: - loadBalancers properties: loadBalancers: type: array items: $ref: '#/components/schemas/ReadLoadBalancerSummary' description: ロードバランサの一覧 nextCursor: allOf: - $ref: '#/components/schemas/LoadBalancerID' description: 次ページのカーソル。次のリクエストでcursorとして指定する。データが残っていなければnull。 description: ロードバランサの一覧レスポンス example: loadBalancers: - loadBalancerID: 550e8400-e29b-41d4-a716-446655440000 name: example-lb serviceClassPath: cloud/apprun/dedicated/lb/1vcpu_2gb_1 created: 1577836800 deleting: false - loadBalancerID: 550e8400-e29b-41d4-a716-446655440001 name: another-lb serviceClassPath: cloud/apprun/dedicated/lb/1vcpu_2gb_1 created: 1577836800 deleting: true CreateAutoScalingGroupRequest: type: object required: - name - zone - workerServiceClassPath - minNodes - maxNodes - interfaces properties: name: type: string minLength: 1 maxLength: 20 pattern: ^[a-zA-Z0-9_-]+$ description: オートスケーリンググループの名前。クラスタ内でユニーク。英数字、アンダースコア、ハイフンのみ使用可能 zone: type: string description: オートスケーリンググループのゾーン nameServers: type: array items: $ref: '#/components/schemas/Ipv4' minItems: 1 maxItems: 3 description: ネームサーバ設定 workerServiceClassPath: type: string minLength: 1 maxLength: 255 description: ワーカノードのサービスクラスパス minNodes: type: integer format: int32 minimum: 1 maximum: 10 description: オートスケーリンググループの最小ノード数 maxNodes: type: integer format: int32 minimum: 1 maximum: 10 description: オートスケーリンググループの最大ノード数 interfaces: type: array items: $ref: '#/components/schemas/AutoScalingGroupNodeInterface' minItems: 1 maxItems: 5 title: ネットワークインターフェース定義 ReadClusterResponse: type: object required: - cluster properties: cluster: allOf: - $ref: '#/components/schemas/ReadCluster' description: クラスタの情報 example: cluster: clusterID: 13B9EA83-DDB0-4385-9533-3D693A6A310F name: mock-cluster hasLetsEncryptEmail: true ports: - port: 80 protocol: http - port: 443 protocol: https servicePrincipalID: '123456789012' created: 1577836800 ReadCluster: type: object required: - clusterID - name - created - hasLetsEncryptEmail - ports - servicePrincipalID properties: clusterID: $ref: '#/components/schemas/ClusterID' name: type: string minLength: 1 maxLength: 20 pattern: ^[a-zA-Z0-9_-]+$ description: クラスタの名前。プロジェクト内でユニーク。英数字、アンダースコア、ハイフンのみ使用可能 created: type: integer format: unixtime description: クラスタの作成日時:UNIX時間(秒) hasLetsEncryptEmail: type: boolean description: Let's Encrypt 用のメールアドレスが設定済みかどうか ports: type: array items: $ref: '#/components/schemas/ClusterLoadBalancerPort' maxItems: 5 description: ロードバランサのポート群 servicePrincipalID: $ref: '#/components/schemas/ServicePrincipalID' ClusterID: type: string format: uuid description: クラスタID example: 13B9EA83-DDB0-4385-9533-3D693A6A310F ClusterLoadBalancerPort: type: object required: - port - protocol properties: port: type: integer format: uint16 minimum: 1 maximum: 65535 description: 外部公開するポート番号。5950-5959は予約されているため指定不可 example: 8080 protocol: type: string enum: - http - https - tcp description: ポートで扱うプロトコル WorkerNodeInterfaceAddress: type: object required: - address properties: address: type: string description: アドレス ReadClusterSummary: type: object required: - clusterID - name - created properties: clusterID: $ref: '#/components/schemas/ClusterID' name: type: string minLength: 1 maxLength: 20 pattern: ^[a-zA-Z0-9_-]+$ description: クラスタの名前。プロジェクト内でユニーク。英数字、アンダースコア、ハイフンのみ使用可能 created: type: integer format: unixtime description: クラスタの作成日時:UNIX時間(秒) LoadBalancerInterface: type: object required: - interfaceIndex - upstream properties: interfaceIndex: type: integer format: int16 description: 例:eth0→0、eth1→1、eth2→2。0は必須。重複不可。 title: インターフェース番号 upstream: type: string description: 接続先スイッチ ipPool: type: array items: $ref: '#/components/schemas/IpRange' maxItems: 20 description: アップストリームが 'shared' の場合、指定できません。それ以外のときは必須です。 title: IPアドレスの割り当て範囲 netmaskLen: type: integer format: int16 minimum: 8 maximum: 29 description: アップストリームが 'shared' の場合、指定できません。それ以外のときは必須です。 title: ネットマスク長 defaultGateway: type: string description: アップストリームが 'shared' の場合、指定できません。 title: デフォルトゲートウェイ vip: type: string pattern: ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ description: アップストリームが 'shared' の場合、指定できません。 title: ロードバランサの VIP virtualRouterID: type: integer format: int16 description: アップストリームが 'shared' の場合、指定できません。1-255 の値を指定します。ロードバランサの VIP を指定した場合は、virtualRouterID の入力は必須です。 title: バーチャルルーターID packetFilterID: type: string description: パケットフィルターID ReadClusterLoadBalancerResponse: type: object required: - loadBalancer properties: loadBalancer: allOf: - $ref: '#/components/schemas/ReadClusterLoadBalancer' description: ロードバランサ設定の情報 example: loadBalancer: hasLetsEncryptEmail: true ports: - port: 80 protocol: http - port: 443 protocol: https CreateClusterRequest: type: object required: - name - ports - servicePrincipalID properties: name: type: string minLength: 1 maxLength: 20 pattern: ^[a-zA-Z0-9_-]+$ description: クラスタの名前。プロジェクト内でユニーク。英数字、アンダースコア、ハイフンのみ使用可能 letsEncryptEmail: type: string pattern: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ description: 'Let''s Encrypt による証明書発行を有効にするにはここにメールアドレスを設定します。 Let''s Encrypt による証明書発行は HTTP-01 チャレンジになるため、80 番ポートを HTTPプロトコルで外向きに解放する必要があります。' title: Let's Encrypt のメールアドレス ports: type: array items: $ref: '#/components/schemas/ClusterLoadBalancerPort' maxItems: 5 description: ロードバランサのポート群 servicePrincipalID: $ref: '#/components/schemas/ServicePrincipalID' WorkerNodeID: type: string format: uuid LoadBalancerNodeInterface: type: object required: - interfaceIndex - addresses properties: interfaceIndex: type: integer format: int16 minimum: 0 description: インターフェース番号。eth0 なら 0。eth1 なら 1。 addresses: type: array items: $ref: '#/components/schemas/LoadBalancerNodeInterfaceAddress' description: ロードバランサノードのアドレス CreateClusterResponse: type: object required: - cluster properties: cluster: allOf: - $ref: '#/components/schemas/ClusterIdentifier' description: 作成されたクラスタの情報 LoadBalancerNodeID: type: string format: uuid ListClustersResponse: type: object required: - clusters properties: clusters: type: array items: $ref: '#/components/schemas/ReadClusterSummary' description: クラスタの一覧 nextCursor: allOf: - $ref: '#/components/schemas/ClusterID' description: 次ページのカーソル。次のリクエストでcursorとして指定する。データが残っていなければnull。 example: clusters: - clusterID: 13B9EA83-DDB0-4385-9533-3D693A6A310F name: mock-cluster created: 1577836800 Error: type: object required: - status - title properties: status: type: integer format: int32 title: type: string ReadAutoScalingGroupResponse: type: object required: - autoScalingGroup properties: autoScalingGroup: allOf: - $ref: '#/components/schemas/ReadAutoScalingGroup' description: オートスケーリンググループの情報 example: autoScalingGroup: autoScalingGroupID: 123e4567-e89b-12d3-a456-426614174001 name: tokyo-asg zone: tk1b minNodes: 2 maxNodes: 10 workerNodeCount: 3 workerServiceClassPath: cloud/apprun/dedicated/worker/1vcpu_2gb deleting: false nameServers: - 192.0.2.1 interfaces: - interfaceIndex: 0 netmaskLen: 24 upstream: '111111111111' packetFilterID: pf-123456 defaultGateway: 192.0.1.1 connectsToLB: true - interfaceIndex: 1 netmaskLen: 24 upstream: '111111111112' connectsToLB: false Ipv4: type: string pattern: ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ LoadBalancerIdentifier: type: object required: - loadBalancerID properties: loadBalancerID: allOf: - $ref: '#/components/schemas/LoadBalancerID' description: ロードバランサID readOnly: true ClusterLoadBalancerPortMergePatchCreateOrUpdateReplaceOnly: type: object required: - port - protocol properties: port: type: integer format: uint16 minimum: 1 maximum: 65535 description: 外部公開するポート番号。5950-5959は予約されているため指定不可 example: 8080 protocol: type: string enum: - http - https - tcp description: ポートで扱うプロトコル UpdateWorkerNodeDrainingRequest: type: object required: - draining properties: draining: type: boolean description: ドレイン状態にするかどうか description: ワーカノードのドレイン状態を変更するリクエスト ListWorkerNodesResponse: type: object required: - workerNodes properties: workerNodes: type: array items: $ref: '#/components/schemas/WorkerNodeSummary' description: ワーカノードの一覧 nextCursor: allOf: - $ref: '#/components/schemas/WorkerNodeID' description: 次ページのカーソル。次のリクエストでcursorとして指定する。データが残っていなければnull。 example: workerNodes: - workerNodeID: 123e4567-e89b-12d3-a456-426614174002 resourceID: worker-node-01 draining: false status: healthy networkInterfaces: - interfaceIndex: 0 addresses: - address: 192.168.0.1 - interfaceIndex: 1 addresses: - address: 10.0.0.8 archiveVersion: 2025.1014.1 created: 1577836800 - workerNodeID: 987f6543-e21a-45c3-b123-554433221101 resourceID: worker-node-02 draining: true status: healthy networkInterfaces: - interfaceIndex: 0 addresses: - address: 192.168.0.1 - interfaceIndex: 1 addresses: - address: 10.0.0.8 archiveVersion: 2025.1014.2 created: 1577836800 - workerNodeID: 487f6543-e21a-45c3-b123-554433221101 resourceID: worker-node-03 draining: true status: creating networkInterfaces: - interfaceIndex: 0 addresses: - address: 192.168.0.1 - interfaceIndex: 1 addresses: - address: 10.0.0.8 archiveVersion: 2025.1014.3 created: 1577836800 createErrorMessage: クラスタのサービスプリンシパルにさくらのクラウドの作成・削除権限が付与されているか確認してください LoadBalancerID: type: string format: uuid IpRange: type: object required: - start - end properties: start: $ref: '#/components/schemas/Ipv4' end: $ref: '#/components/schemas/Ipv4' ApplicationVersionNumber: type: integer format: int32 minimum: 1 example: 3 ApplicationID: type: string format: uuid AutoScalingGroupID: type: string format: uuid WorkerNodeNetworkInterface: type: object required: - interfaceIndex - addresses properties: interfaceIndex: type: integer format: int16 minimum: 0 description: インターフェース番号。eth0 なら 0。eth1 なら 1。 addresses: type: array items: $ref: '#/components/schemas/WorkerNodeInterfaceAddress' description: インターフェースに割り当てられたIPアドレスのリスト LoadBalancerNode: type: object required: - loadBalancerNodeID - resourceID - status - interfaces - created properties: loadBalancerNodeID: allOf: - $ref: '#/components/schemas/LoadBalancerNodeID' description: ID resourceID: type: - string - 'null' description: リソースID status: allOf: - $ref: '#/components/schemas/LoadBalancerNodeStatus' description: ノードの状態 interfaces: type: array items: $ref: '#/components/schemas/LoadBalancerNodeInterface' description: インターフェース情報 archiveVersion: type: string description: ノードにインストールされているアーカイブのバージョン createErrorMessage: type: string description: ノードの作成に関するエラーメッセージ created: type: integer format: unixtime description: 作成日時:UNIX時間(秒) AutoScalingGroupNodeInterface: type: object required: - interfaceIndex - upstream - connectsToLB properties: interfaceIndex: type: integer format: int16 description: インターフェース番号。例:eth0→0、eth1→1、eth2→2。0は必須。重複不可。 upstream: type: string description: '''shared'' にすると共有セグメントに繋がります。ルータ+スイッチ、および共有セグメントにつなげられるのは eth0 のみです。' title: 接続先スイッチ ipPool: type: array items: $ref: '#/components/schemas/IpRange' maxItems: 20 description: IPプールは最大20個まで指定可能。アップストリームが 'shared' の場合は指定できません。それ以外の場合は指定必須です。 title: IPアドレスの割り当て範囲 netmaskLen: type: integer format: int16 minimum: 8 maximum: 29 description: アップストリームが 'shared' の場合、指定できません。それ以外の場合は指定必須です。 title: ネットマスク長 defaultGateway: type: string description: アップストリームが 'shared' の場合、指定できません。 title: デフォルトゲートウェイ packetFilterID: type: string description: パケットフィルターID connectsToLB: type: boolean description: 一つのオートスケーリンググループにつき、一つのインターフェースのみがロードバランサ接続対象となる。接続対象になった場合、そのインターフェースに割り当てられた IP アドレスがロードバランサのバックエンドとして登録される。クラスタにロードバランサポートが設定されている場合、一つのインターフェースが true である必要がある。 title: ロードバランサ接続対象インターフェースかどうか LoadBalancerNodeStatus: type: string enum: - healthy - unhealthy - creating - starting description: ロードバランサノードの状態を表す列挙型 WorkerNodeStatus: type: string enum: - healthy - unhealthy - creating - starting description: ワーカノードの状態を表す列挙型 PatchClusterLoadBalancerRequest: type: object properties: letsEncryptEmail: type: - string - 'null' pattern: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ description: 'Let''s Encrypt による証明書発行を有効にするにはここにメールアドレスを設定します。 Let''s Encrypt による証明書発行は HTTP-01 チャレンジになるため、80 番ポートを HTTPプロトコルで外向きに解放する必要があります。' title: Let's Encrypt のメールアドレス ports: type: array items: $ref: '#/components/schemas/ClusterLoadBalancerPortMergePatchCreateOrUpdateReplaceOnly' maxItems: 5 description: ロードバランサのポート群 LoadBalancerNodeInterfaceAddress: type: object required: - address - vip properties: address: type: string description: アドレス vip: type: boolean description: VIPかどうか ReadLoadBalancer: type: object required: - loadBalancerID - name - serviceClassPath - created - deleting - interfaces properties: loadBalancerID: allOf: - $ref: '#/components/schemas/LoadBalancerID' description: ロードバランサID name: type: string minLength: 1 maxLength: 20 pattern: ^[a-zA-Z0-9_-]+$ description: ロードバランサ名。オートスケーリンググループ内でユニーク。英数字とハイフン、アンダースコアのみ使用可能 serviceClassPath: type: string minLength: 1 maxLength: 255 description: ロードバランサのサービスクラスパス nameServers: type: array items: $ref: '#/components/schemas/Ipv4' minItems: 1 maxItems: 3 description: ネームサーバ設定 created: type: integer format: unixtime description: ロードバランサの作成日時:UNIX時間(秒) deleting: type: boolean description: 削除中 interfaces: type: array items: $ref: '#/components/schemas/LoadBalancerInterface' minItems: 1 maxItems: 5 description: ロードバランサのインターフェース AutoScalingGroupIdentifier: type: object required: - autoScalingGroupID properties: autoScalingGroupID: allOf: - $ref: '#/components/schemas/AutoScalingGroupID' readOnly: true WorkerNode: type: object required: - workerNodeID - resourceID - draining - status - networkInterfaces - created - healthy - creating - runningContainers properties: workerNodeID: allOf: - $ref: '#/components/schemas/WorkerNodeID' description: ワーカノードID resourceID: type: - string - 'null' description: アプライアンスリソースID draining: type: boolean description: ドレイン状態かどうか status: allOf: - $ref: '#/components/schemas/WorkerNodeStatus' description: ノード状態 networkInterfaces: type: array items: $ref: '#/components/schemas/WorkerNodeNetworkInterface' description: ネットワークインターフェース情報 archiveVersion: type: string description: ノードにインストールされているアーカイブのバージョン created: type: integer format: unixtime description: リソース作成日時:UNIX時間(秒) createErrorMessage: type: string description: ノード作成に関するエラーメッセージ healthy: type: boolean description: ヘルシーかどうか creating: type: boolean description: ワーカノードが作成中かどうか runningContainers: type: array items: $ref: '#/components/schemas/WorkerNodeRunningContainer' description: 実行中コンテナ ServicePrincipalID: type: string minLength: 12 maxLength: 12 description: サービスプリンシパルのID example: '123456789012' ReadWorkerNodeResponse: type: object required: - workerNode properties: workerNode: allOf: - $ref: '#/components/schemas/WorkerNode' description: ワーカノードの詳細 example: workerNode: workerNodeID: 123e4567-e89b-12d3-a456-426614174002 resourceID: worker-node-01 draining: false healthy: true creating: false status: healthy created: 1577836800 runningContainers: - containerID: container-01 name: nginx state: running status: running image: nginx:latest startedAt: 1577836800 applicationID: A0199B39-B361-45B9-8DF4-FC8BE494D690 applicationVersion: 1 - containerID: container-02 name: redis state: running status: running image: redis:latest startedAt: 1577836800 applicationID: A0199B39-B361-45B9-8DF4-FC8BE494D690 applicationVersion: 1 networkInterfaces: - interfaceIndex: 0 addresses: - address: 10.0.0.1 - interfaceIndex: 1 addresses: - address: 192.168.0.1 archiveVersion: 2025.1014.1 createErrorMessage: クラスタのサービスプリンシパルにさくらのクラウドの作成・削除権限が付与されているか確認してください WorkerNodeRunningContainer: type: object required: - containerID - name - state - status - image - startedAt - applicationID - applicationVersion properties: containerID: type: string description: コンテナID name: type: string description: コンテナ名 state: type: string description: コンテナのステート(created、running、restarting、removing、paused、exited、dead のうちいずれか) status: type: string description: コンテナのステータス image: type: string description: コンテナのイメージ startedAt: type: integer format: unixtime description: コンテナの開始日時:UNIX時間(秒) applicationID: allOf: - $ref: '#/components/schemas/ApplicationID' description: アプリケーションID applicationVersion: allOf: - $ref: '#/components/schemas/ApplicationVersionNumber' description: アプリケーションバージョン CreateLoadBalancerResponse: type: object required: - loadBalancer properties: loadBalancer: allOf: - $ref: '#/components/schemas/LoadBalancerIdentifier' description: 作成されたロードバランサの情報 description: ロードバランサの作成レスポンス example: loadBalancer: loadBalancerID: 123e4567-e89b-12d3-a456-426614174000 ListAutoScalingGroupsResponse: type: object required: - autoScalingGroups properties: autoScalingGroups: type: array items: $ref: '#/components/schemas/ReadAutoScalingGroup' description: オートスケーリンググループの一覧 nextCursor: allOf: - $ref: '#/components/schemas/AutoScalingGroupID' description: 次ページのカーソル。次のリクエストでcursorとして指定する。データが残っていなければnull。 example: autoScalingGroups: - autoScalingGroupID: 123e4567-e89b-12d3-a456-426614174001 name: tokyo-asg zone: tk1b minNodes: 2 maxNodes: 10 workerNodeCount: 3 workerServiceClassPath: cloud/apprun/dedicated/worker/1vcpu_2gb deleting: false interfaces: - interfaceIndex: 0 ipPool: - start: 192.0.1.0 end: 192.0.1.255 netmaskLen: 24 upstream: '111111111111' packetFilterID: pf-123456 defaultGateway: 192.0.1.1 connectsToLB: true - interfaceIndex: 1 ipPool: - start: 192.0.2.0 end: 192.0.2.255 netmaskLen: 24 upstream: '111111111112' connectsToLB: false ReadAutoScalingGroup: type: object required: - autoScalingGroupID - name - zone - workerServiceClassPath - minNodes - maxNodes - workerNodeCount - interfaces - deleting properties: autoScalingGroupID: $ref: '#/components/schemas/AutoScalingGroupID' name: type: string minLength: 1 maxLength: 20 pattern: ^[a-zA-Z0-9_-]+$ description: オートスケーリンググループの名前。クラスタ内でユニーク。英数字、アンダースコア、ハイフンのみ使用可能 zone: type: string description: オートスケーリンググループのゾーン nameServers: type: array items: $ref: '#/components/schemas/Ipv4' minItems: 1 maxItems: 3 description: ネームサーバ設定 workerServiceClassPath: type: string minLength: 1 maxLength: 255 description: ワーカノードのサービスクラスパス minNodes: type: integer format: int32 minimum: 1 maximum: 10 description: オートスケーリンググループの最小ノード数 maxNodes: type: integer format: int32 minimum: 1 maximum: 10 description: オートスケーリンググループの最大ノード数 workerNodeCount: type: integer format: int32 description: 現在のワーカノードの数 interfaces: type: array items: $ref: '#/components/schemas/AutoScalingGroupNodeInterface' minItems: 1 maxItems: 5 title: ネットワークインターフェース定義 deleting: type: boolean description: 削除中 ReadLoadBalancerSummary: type: object required: - loadBalancerID - name - serviceClassPath - created - deleting properties: loadBalancerID: allOf: - $ref: '#/components/schemas/LoadBalancerID' description: ロードバランサID name: type: string minLength: 1 maxLength: 20 pattern: ^[a-zA-Z0-9_-]+$ description: ロードバランサ名。オートスケーリンググループ内でユニーク。英数字とハイフン、アンダースコアのみ使用可能 serviceClassPath: type: string minLength: 1 maxLength: 255 description: ロードバランサのサービスクラスパス nameServers: type: array items: $ref: '#/components/schemas/Ipv4' minItems: 1 maxItems: 3 description: ネームサーバ設定 created: type: integer format: unixtime description: ロードバランサの作成日時:UNIX時間(秒) deleting: type: boolean description: 削除中 CreateLoadBalancerRequest: type: object required: - name - serviceClassPath - interfaces properties: name: type: string minLength: 1 maxLength: 20 pattern: ^[a-zA-Z0-9_-]+$ description: ロードバランサ名。オートスケーリンググループ内でユニーク。英数字とハイフン、アンダースコアのみ使用可能 serviceClassPath: type: string minLength: 1 maxLength: 255 description: ロードバランサのサービスクラスパス nameServers: type: array items: $ref: '#/components/schemas/Ipv4' minItems: 1 maxItems: 3 description: ネームサーバ設定 interfaces: type: array items: $ref: '#/components/schemas/LoadBalancerInterface' minItems: 1 maxItems: 5 description: ロードバランサのインターフェース ReadLoadBalancerResponse: type: object required: - loadBalancer properties: loadBalancer: allOf: - $ref: '#/components/schemas/ReadLoadBalancer' description: ロードバランサの情報 description: ロードバランサの詳細取得レスポンス example: loadBalancer: loadBalancerID: 550e8400-e29b-41d4-a716-446655440000 name: example-lb serviceClassPath: cloud/apprun/dedicated/lb/1vcpu_2gb_1 deleting: false interfaces: - interfaceIndex: 1 vip: 192.168.1.100 netmaskLen: 24 virtualRouterID: 51 upstream: switch1 packetFilterID: pf-123456 defaultGateway: 192.168.1.0/32 - interfaceIndex: 2 netmaskLen: 24 upstream: switch2 created: 1577836800 ClusterIdentifier: type: object required: - clusterID properties: clusterID: allOf: - $ref: '#/components/schemas/ClusterID' readOnly: true WorkerNodeSummary: type: object required: - workerNodeID - resourceID - draining - status - networkInterfaces - created properties: workerNodeID: allOf: - $ref: '#/components/schemas/WorkerNodeID' description: ワーカノードID resourceID: type: - string - 'null' description: アプライアンスリソースID draining: type: boolean description: ドレイン状態かどうか status: allOf: - $ref: '#/components/schemas/WorkerNodeStatus' description: ノード状態 networkInterfaces: type: array items: $ref: '#/components/schemas/WorkerNodeNetworkInterface' description: ネットワークインターフェース情報 archiveVersion: type: string description: ノードにインストールされているアーカイブのバージョン created: type: integer format: unixtime description: リソース作成日時:UNIX時間(秒) createErrorMessage: type: string description: ノード作成に関するエラーメッセージ ReadLoadBalancerNodeResponse: type: object required: - loadBalancerNode properties: loadBalancerNode: allOf: - $ref: '#/components/schemas/LoadBalancerNode' description: ロードバランサノードの情報 description: ロードバランサノードの詳細取得レスポンス example: loadBalancerNode: loadBalancerNodeID: 550e8400-e29b-41d4-a716-446655440001 resourceID: '12345678901' status: healthy interfaces: - interfaceIndex: 1 addresses: - address: 10.0.0.2/24 vip: false - address: 10.0.1.2/24 vip: true - interfaceIndex: 2 addresses: - address: 10.0.2.8/24 vip: false - address: 10.0.3.4/24 vip: true archiveVersion: 2025.1014.1 createErrorMessage: クラスタのサービスプリンシパルにさくらのクラウドの作成・削除権限が付与されているか確認してください created: 1577836800 ReadClusterLoadBalancer: type: object required: - hasLetsEncryptEmail - ports properties: hasLetsEncryptEmail: type: boolean description: Let's Encrypt 用のメールアドレスが設定済みかどうか ports: type: array items: $ref: '#/components/schemas/ClusterLoadBalancerPort' maxItems: 5 description: ロードバランサのポート群 CreateAutoScalingGroupResponse: type: object required: - autoScalingGroup properties: autoScalingGroup: allOf: - $ref: '#/components/schemas/AutoScalingGroupIdentifier' description: 作成されたオートスケーリンググループの情報 securitySchemes: BasicAuth: type: http scheme: Basic externalDocs: url: https://manual.sakura.ad.jp/cloud/apprun-dedicated/releasenote.html description: リリースノート | さくらのクラウド マニュアル x-refined-from: - apprun-dedicated-api.yaml - sakura-internet-apprun-dedicated-openapi.yml