openapi: 3.2.0 info: title: Sakura Internet No SQL API version: 2.1.1 contact: name: SAKURA internet Inc. license: name: Copyright(C) SAKURA internet Inc. all rights reserved. description: 'Operations tagged NoSQL across 2 of this provider''s published API definitions: nosql-api.yaml, sakura-internet-nosql-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://secure.sakura.ad.jp/cloud/zone/tk1b/api/cloud/1.1 tags: - name: NoSQL description: NoSQLの作成・ノード追加・更新・削除 paths: /appliance: get: tags: - NoSQL summary: NoSQL一覧取得API description: NoSQLの一覧取得を行います。 operationId: listNosqlDatabases parameters: - name: Filter.Class in: query description: Class固定 required: true schema: type: string example: nosql responses: '200': description: 成功時のレスポンス content: application/json: schema: $ref: '#/components/schemas/NosqlListResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '500': $ref: '#/components/responses/ServerErrorResponse' post: tags: - NoSQL summary: NoSQL作成API description: 'NoSQLの新規作成および既存NoSQLへのノード追加を行います。 新規作成時とノード追加時では、必要となる項目が異なります。 各操作ごとの必須項目は、スキーマ定義内の各プロパティの説明欄に明記していますので、詳細はそちらをご参照ください。 - **新規作成時必須**: 新規作成の際に必須の項目 - **ノード追加時必須**: ノード追加の際に必須の項目 - **新規作成時・ノード追加時必須**: 新規作成・ノード追加の両方で必須の項目 ※ノード追加では、既存NoSQLの設定情報(**ノード追加時必須**以外の項目)と一致させるか未指定である必要があります。' operationId: createNosqlDatabase requestBody: description: NoSQLの作成を行うためのリクエストボディ content: application/json: schema: $ref: '#/components/schemas/NosqlCreateRequest' required: true responses: '202': description: 成功時のレスポンス content: application/json: schema: $ref: '#/components/schemas/NosqlCreateResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '409': $ref: '#/components/responses/ConflictResponse' '500': $ref: '#/components/responses/ServerErrorResponse' servers: - url: https://secure.sakura.ad.jp/cloud/zone/tk1b/api/cloud/1.1 /appliance/{applianceID}: get: tags: - NoSQL summary: NoSQL取得API description: 対象のNoSQLの取得を行います。 operationId: readNosqlDatabase parameters: - $ref: '#/components/parameters/ApplianceID' responses: '200': description: 成功時のレスポンス content: application/json: schema: $ref: '#/components/schemas/NosqlReadResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '404': $ref: '#/components/responses/NotFoundResponse' '500': $ref: '#/components/responses/ServerErrorResponse' put: tags: - NoSQL summary: NoSQL更新API description: '対象のNoSQLに対しての更新を行います。 追加ノードのアプライアンスIDを指定して更新を行うことはできません。 プライマリノードのアプライアンスIDを指定することで、追加ノードに対しても更新が適用されます。' operationId: updateNosqlDatabase parameters: - $ref: '#/components/parameters/ApplianceID' requestBody: description: NoSQLの更新を行うためのリクエストボディ content: application/json: schema: $ref: '#/components/schemas/NosqlUpdateRequest' required: true responses: '200': description: 成功時のレスポンス content: application/json: schema: $ref: '#/components/schemas/NosqlSuccessResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '404': $ref: '#/components/responses/NotFoundResponse' '409': $ref: '#/components/responses/ConflictResponse' '500': $ref: '#/components/responses/ServerErrorResponse' delete: tags: - NoSQL summary: NoSQL削除API description: '対象のNoSQLを削除します。 プライマリノードのアプライアンスIDを指定して削除する場合、ノード追加したデータは削除されません。 ノード追加している場合は、追加ノードのアプライアンスIDを指定して、個別に削除する必要があります。' operationId: deleteNosqlDatabase parameters: - $ref: '#/components/parameters/ApplianceID' responses: '200': description: NoSQL削除受け付け成功時のレスポンス content: application/json: schema: $ref: '#/components/schemas/NosqlSuccessResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '404': $ref: '#/components/responses/NotFoundResponse' '409': $ref: '#/components/responses/ConflictResponse' '500': $ref: '#/components/responses/ServerErrorResponse' servers: - url: https://secure.sakura.ad.jp/cloud/zone/tk1b/api/cloud/1.1 /appliance/{applianceID}/config: put: tags: - NoSQL summary: NoSQL反映API description: '対象のNoSQLに対しての更新を反映します。 追加ノードのアプライアンスIDを指定して反映処理をすることはできません。 プライマリノードのアプライアンスIDを指定することで、追加ノードに対しても更新が反映されます。' operationId: applyNosqlDatabaseConfig parameters: - $ref: '#/components/parameters/ApplianceID' responses: '200': description: 成功時のレスポンス content: application/json: schema: $ref: '#/components/schemas/NosqlIsOkResponse' '400': $ref: '#/components/responses/BadRequestResponse' servers: - url: https://secure.sakura.ad.jp/cloud/zone/tk1b/api/cloud/1.1 /appliance/{applianceID}/status: get: tags: - NoSQL summary: NoSQL状態確認API description: '対象のNoSQLの情報を取得します。 追加ノードのアプライアンスIDを指定して呼び出した場合、返却される情報はプライマリノードを指定した場合と同一の内容となります。' operationId: readNosqlDatabaseStatus parameters: - $ref: '#/components/parameters/ApplianceID' responses: '200': description: 成功時のレスポンス content: application/json: schema: $ref: '#/components/schemas/NosqlStatusResponse' '400': $ref: '#/components/responses/BadRequestResponse' '401': $ref: '#/components/responses/UnauthorizedResponse' '500': $ref: '#/components/responses/ServerErrorResponse' servers: - url: https://secure.sakura.ad.jp/cloud/zone/tk1b/api/cloud/1.1 components: schemas: NosqlApplianceResponse: type: object allOf: - $ref: '#/components/schemas/NosqlApplianceInputResponse' - type: object properties: ID: type: string description: アプライアンスID example: '113600097295' Plan: $ref: '#/components/schemas/NosqlPlan' Settings: $ref: '#/components/schemas/NosqlSettingsResponse' SettingsHash: type: string example: d41d8cd98f00b204e9800998ecf8427e Remark: allOf: - $ref: '#/components/schemas/NosqlRemarkResponse' - type: object properties: Zone: type: object description: ゾーン properties: ID: type: string description: ゾーンID example: '30293' ServiceClass: type: string description: サービスクラス example: cloud/nosql/plan/1 Availability: $ref: '#/components/schemas/Availability' Instance: $ref: '#/components/schemas/Instance' Disk: type: - object - 'null' description: "ディスク情報 \n" properties: EncryptionKey: type: - object - 'null' description: 暗号化キー情報 properties: KMSKeyID: type: - string - 'null' description: KMSキーID example: '113700349294' EncryptionAlgorithm: type: string description: 暗号化アルゴリズム example: aes256_xts ServiceClass: $ref: '#/components/schemas/NosqlServiceClass' Generation: type: integer example: 200 CreatedAt: type: string format: date-time example: '2021-01-01T00:00:00Z' Interfaces: type: array items: type: - object - 'null' properties: IPAddress: type: - string - 'null' description: IPアドレス example: 163.43.142.254 UserIPAddress: type: - string - 'null' description: ユーザ側スイッチに接続するIPアドレス example: 192.168.100.11 HostName: type: - string - 'null' description: ホスト名 example: null Switch: type: object description: スイッチ情報 properties: ID: type: string description: スイッチID example: '113600097295' name: type: string description: スイッチ名 example: switch_name Scope: type: string description: スコープ(shared/user) example: user Subnet: type: - object - 'null' description: サブネット情報 properties: NetworkAddress: type: string description: ネットワークアドレス example: 163.43.142.0 NetworkMaskLen: type: integer description: ネットマスク example: 24 DefaultRoute: type: - string - 'null' description: ゲートウェイのアドレス example: 163.43.142.1 Internet: type: object properties: BandWidthMbps: type: integer example: 100 UserSubnet: type: object description: ユーザサブネット情報 properties: DefaultRoute: type: - string - 'null' description: ゲートウェイのアドレス example: 192.168.100.254 NetworkMaskLen: type: integer description: ネットマスク example: 24 NosqlApplianceInputResponse: type: object properties: Class: type: string description: クラス example: nosql Name: type: string description: NoSQLの名前 example: CassandraName minLength: 1 maxLength: 64 Description: type: string description: NoSQLの説明 example: 説明 minLength: 0 maxLength: 512 Tags: $ref: '#/components/schemas/Tags' NosqlIsOkResponse: type: object properties: Nosql: type: object properties: is_ok: $ref: '#/components/schemas/is_ok' is_ok: $ref: '#/components/schemas/is_ok' ServiceClass: type: string description: "サービスクラス \n**新規作成時・ノード追加時必須**\n\n| プラン名 | サービスクラスパス | \n|--------------|----------------------------|\n| 40GBプラン | cloud/nosql/plan/1 |\n| 100GBプラン | cloud/nosql/plan/2 |\n| 100GBプラン/ノード | cloud/nosql/plan/2/node |\n| 250GBプラン | cloud/nosql/plan/3 |\n| 250GBプラン/ノード | cloud/nosql/plan/3/node |\n" example: cloud/nosql/plan/1 Success: oneOf: - type: boolean example: true - type: string example: Accepted NosqlCreateRequest: type: object properties: Appliance: type: object allOf: - $ref: '#/components/schemas/NosqlApplianceInput' - type: object properties: ServiceClass: $ref: '#/components/schemas/ServiceClass' Plan: $ref: '#/components/schemas/Plan' Disk: type: - object - 'null' description: "ディスク情報 \nディスクの情報は暗号化する場合は EncryptionAlgorithm と EncryptionKey を指定する必要があります。\n" properties: EncryptionKey: type: - object - 'null' description: 暗号化キー情報 properties: KMSKeyID: type: - string - 'null' description: KMSキーID example: '113700349294' EncryptionAlgorithm: type: string description: 暗号化アルゴリズム example: aes256_xts Settings: $ref: '#/components/schemas/NosqlSettings' Remark: $ref: '#/components/schemas/NosqlRemark' UserInterfaces: type: array items: type: object properties: Switch: type: object description: スイッチ properties: ID: type: string description: "スイッチID \n**新規作成時・ノード追加時必須**\n" example: '113600097295' required: - ID UserIPAddress1: type: string description: "ユーザIPアドレス1 \n**新規作成時・ノード追加時必須**\n" format: ipv4 example: 192.168.100.11 UserIPAddress2: type: string description: "ユーザIPアドレス2 \n**新規作成時・ノード追加時必須** \n40GBプラン(ノード数1)の場合は設定不要です。\n" format: ipv4 example: 192.168.100.12 UserIPAddress3: type: string description: "ユーザIPアドレス3 \n**新規作成時必須** \n40GBプラン(ノード数1)の場合は設定不要です。\n" format: ipv4 example: 192.168.100.13 UserSubnet: type: object properties: DefaultRoute: type: string example: 192.168.100.254 description: "ゲートウェイのアドレス \n**新規作成時・ノード追加時必須**\n" NetworkMaskLen: type: integer example: 24 description: "ネットマスク \n**新規作成時・ノード追加時必須**\n" required: - NetworkMaskLen - DefaultRoute required: - Switch - UserIPAddress1 - UserSubnet required: - Class - Name - ServiceClass - Plan - Remark - UserInterfaces - Settings required: - Appliance NosqlStatusResponse: type: object properties: Appliance: type: object properties: ID: type: string example: '113600097295' SettingsResponse: type: object description: NoSQLのステータスレスポンス properties: Nosql: type: object properties: DatabaseVersion: type: string description: NoSQLの現在のバージョン example: 4.1.7 UpgradeVersion: type: string description: NoSQLの更新可能な最新のバージョン example: 4.1.9 Jobs: type: array description: ジョブ情報 items: type: object properties: JobType: type: string description: ジョブタイプ example: Create JobStatus: type: string description: ジョブステータス example: Done PrimaryNodes: type: object description: プライマリノード情報 properties: Appliance: $ref: '#/components/schemas/NosqlNodeAppliance' AddNodes: type: array description: 追加されたノードの情報 items: type: object required: - Appliance properties: Appliance: $ref: '#/components/schemas/NosqlNodeAppliance' is_ok: $ref: '#/components/schemas/is_ok' Availability: type: string description: 'NoSQLの利用可能状態 | 値 | 説明 | |-----------|------------| | migrating | 準備中 | | available | 利用可能 | | failed | 利用不可 | ' enum: - migrating - available - failed example: available Tags: type: - array - 'null' description: タグ maxItems: 10 items: type: string example: tag maxLength: 32 pattern: ^[^\s\u3000]+$ example: - tag1 is_ok: type: boolean description: 成功のレスポンス(true:成功) example: true NosqlSuccessResponse: type: object properties: Appliance: $ref: '#/components/schemas/NosqlAppliance' Success: $ref: '#/components/schemas/Success' is_ok: $ref: '#/components/schemas/is_ok' NosqldbNodeStatus: type: object properties: Index: type: integer description: ノードの通番 example: 0 UserIPAddress: type: string format: ipv4 description: ユーザ側スイッチに接続するIPアドレス example: 192.168.100.11 NodeType: type: string description: 'ノードタイプ | 値 | 説明 | |----|--------------| | 0 | 正常 | | 1 | デッドノード | | 2 | 予備IPサーバ | ' enum: - '0' - '1' - '2' example: '0' NosqlRemark: type: object properties: Nosql: type: object properties: PrimaryNodes: type: object description: "プライマリノード情報。\n**ノード追加時必須** \nノード追加を行う場合は、対象となる既存NoSQLのアプライアンス情報を設定してください。\n" properties: Appliance: type: object description: "既存のNoSQLのアプライアンス情報 \n**ノード追加時必須**\n" properties: ID: type: string description: "既存のNoSQLのアプライアンスID \n**ノード追加時必須**\n" example: '113700352689' Zone: type: object description: "既存のNoSQLのゾーン \n**ノード追加時必須**\n" properties: Name: type: string description: "既存のNoSQLのゾーン情報 \n**ノード追加時必須**\n" example: tk1b required: - Name required: - ID - Zone required: - Appliance DatabaseEngine: type: - string - 'null' description: "データベースに使用するエンジン \n**新規作成時必須**\n" enum: - Cassandra example: Cassandra DatabaseVersion: type: - string - 'null' description: "データベースバージョン \n**新規作成時必須**\n" anyOf: - pattern: ^\d+\.\d+\.\d+$ - pattern: ^$ example: 4.1.9 DefaultUser: type: - string - 'null' description: "デフォルトユーザ名 \n**新規作成時必須**\n" example: defaultuser01 maxLength: 20 anyOf: - pattern: ^[a-z][a-z0-9_]{3,19}$ - pattern: ^$ DiskSize: type: - integer - 'null' description: "ディスクサイズ(MB) \n未指定時はプランから自動設定\n" example: 102400 Memory: type: - integer - 'null' description: "メモリ(MB) \n未指定時はプランから自動設定\n" example: 8192 Nodes: type: - integer - 'null' description: "ノード数 \n未指定時はプランから自動設定\n" example: 3 minimum: 1 maximum: 3 Port: type: - integer - 'null' description: "ポート \n**新規作成時必須**\n" example: 9042 minimum: 1024 maximum: 65535 Storage: type: - string - 'null' description: "ストレージ \n**新規作成時必須**\n" example: SSD enum: - SSD Virtualcore: type: - integer - 'null' description: "仮想コア \n未指定時はプランから自動設定 \n" example: 3 Zone: type: string description: "ゾーン \n**新規作成時・ノード追加時必須**\n" example: tk1b required: - Zone Servers: type: array items: type: object properties: UserIPAddress: type: string format: ipv4 description: "ユーザ側スイッチに接続するIPアドレス \n**新規作成時・ノード追加時必須**\n\n※ノード数分指定する\n" example: 192.168.100.11 required: - UserIPAddress Network: type: object description: ネットワーク情報 properties: DefaultRoute: type: string description: "ゲートウェイのアドレス \n**新規作成時・ノード追加時必須**\n" example: 192.168.100.254 NetworkMaskLen: type: integer description: "ネットマスク \n**新規作成時・ノード追加時必須**\n" example: 24 required: - DefaultRoute - NetworkMaskLen required: - Nosql - Servers - Network NosqlCreateResponse: type: object properties: Appliance: $ref: '#/components/schemas/NosqlAppliance' Class: type: string description: クラス example: nosql Name: type: string description: NoSQLの名前 example: CassandraName minLength: 1 maxLength: 64 Description: type: string description: NoSQLの説明 example: 説明 minLength: 0 maxLength: 512 Plan: $ref: '#/components/schemas/Plan' Settings: $ref: '#/components/schemas/NosqlSettings' Remark: $ref: '#/components/schemas/NosqlRemark' ID: type: string example: '113600097295' Account: type: object properties: ID: type: string Tags: $ref: '#/components/schemas/Tags' Availability: $ref: '#/components/schemas/Availability' ServerCount: type: integer example: 1 HiddenRemark: type: object properties: PlanSpec: type: object properties: Note: type: object properties: ID: type: string ServiceClass: type: string example: cloud/nosql/plan/1 Encrypted: type: object properties: Algorithm: type: string IV: type: string md5: type: string Associative: type: boolean Data: type: string Success: $ref: '#/components/schemas/Success' is_ok: $ref: '#/components/schemas/is_ok' required: - Appliance - ID ConflictErrorResponse: type: object description: エラーレスポンス properties: is_fatal: type: boolean description: エラーのレスポンス(true:エラー) example: true serial: type: string description: 追跡コード example: 3a5a51fdxxxxx5f6794e82cc8d00d3xx status: type: string description: ステータス example: 409 Conflict error_code: type: string description: エラーコード example: limit_count_in_zone error_msg: type: string description: エラーメッセージ example: 要求を受け付けできません。 NosqlListResponse: type: object properties: From: type: integer example: 0 Count: type: integer example: 1 Total: type: integer example: 1 Appliances: type: array items: $ref: '#/components/schemas/NosqlApplianceResponse' is_ok: $ref: '#/components/schemas/is_ok' required: - From - Count - Total - Appliances NosqlAppliance: type: object allOf: - $ref: '#/components/schemas/NosqlApplianceInput' - type: object properties: ID: type: string description: アプライアンスID example: '113600097295' Plan: $ref: '#/components/schemas/Plan' Settings: $ref: '#/components/schemas/NosqlSettings' SettingsHash: type: string example: d41d8cd98f00b204e9800998ecf8427e Remark: allOf: - $ref: '#/components/schemas/NosqlRemark' - type: object properties: Zone: type: object description: ゾーン properties: ID: type: string description: ゾーンID example: '30293' ServiceClass: type: string description: サービスクラス example: cloud/nosql/plan/1 Availability: $ref: '#/components/schemas/Availability' Instance: $ref: '#/components/schemas/Instance' Disk: type: - object - 'null' description: "ディスク情報 \n" properties: EncryptionKey: type: object description: 暗号化キー情報 properties: KMSKeyID: type: string description: KMSキーID example: '113700349294' EncryptionAlgorithm: type: string description: 暗号化アルゴリズム example: aes256_xts ServiceClass: $ref: '#/components/schemas/ServiceClass' Generation: type: integer example: 200 CreatedAt: type: string format: date-time example: '2021-01-01T00:00:00Z' Interfaces: type: array items: type: - object - 'null' properties: IPAddress: type: - string - 'null' description: IPアドレス example: 163.43.142.254 UserIPAddress: type: - string - 'null' description: ユーザ側スイッチに接続するIPアドレス example: 192.168.100.11 HostName: type: - string - 'null' description: ホスト名 example: null Switch: type: object description: スイッチ情報 required: - ID properties: ID: type: string description: スイッチID example: '113600097295' name: type: string description: スイッチ名 example: switch_name Scope: type: string description: スコープ(shared/user) example: user Subnet: type: - object - 'null' description: サブネット情報 properties: NetworkAddress: type: string description: ネットワークアドレス example: 163.43.142.0 NetworkMaskLen: type: integer description: ネットマスク example: 24 DefaultRoute: type: - string - 'null' description: ゲートウェイのアドレス example: 163.43.142.1 Internet: type: object properties: BandWidthMbps: type: integer example: 100 UserSubnet: type: object description: ユーザサブネット情報 properties: DefaultRoute: type: - string - 'null' description: ゲートウェイのアドレス example: 192.168.100.254 NetworkMaskLen: type: integer description: ネットマスク example: 24 NosqlSettingsResponse: type: object properties: Backup: type: - object - 'null' description: バックアップ情報 properties: Connect: type: string description: バックアップ先(NFS URL形式) example: nfs://192.168.100.250/export pattern: ^(nfs://[0-9\.]+/[A-Za-z0-9_\-\/]+)$ DayOfWeek: type: - array - 'null' description: バックアップスケジュール items: type: string enum: - sun - mon - tue - wed - thu - fri - sat example: - sun - mon Time: type: - string - 'null' description: バックアップする時間 example: 00:00 pattern: ^(([0-1][0-9]|2[0-3]):(00|15|30|45))?$ Rotate: type: integer description: バックアップ数(1から8まで) minimum: 1 maximum: 8 example: 3 SourceNetwork: type: array description: 送信元ネットワークアドレス uniqueItems: true items: type: string pattern: ^(?:[0-9]{1,3}\.){3}[0-9]{1,3}(?:/(?:[0-9]|[1-2][0-9]|3[0-2]))?$ example: - 192.168.100.200 - 192.168.100.201 - 192.168.100.202 ReserveIPAddress: description: "予備IPアドレス \n※デッドノード発生時、ノード切替を行う際に使用する予備のIPアドレス\n" type: string format: ipv4 example: 192.168.100.203 Repair: type: - object - 'null' description: 定期リペア設定 properties: Incremental: type: object description: 増分リペア設定 properties: DaysOfWeek: type: array description: 実行曜日 items: type: string enum: - sun - mon - tue - wed - thu - fri - sat example: - sun - mon Time: type: string description: 実行時間 pattern: ^(([0-1][0-9]|2[0-3]):(00|15|30|45))?$ example: 00:00 Full: type: object description: 完全リペア設定 properties: Interval: type: integer description: 7日ごとの実行間隔(日数) enum: - 7 - 14 - 21 - 28 example: 7 DayOfWeek: type: string description: 実行曜日 enum: - sun - mon - tue - wed - thu - fri - sat example: sun Time: type: string description: 実行時間 pattern: ^(([0-1][0-9]|2[0-3]):(00|15|30|45))?$ example: 00:00 Plan: type: object description: "プラン \n**新規作成時・ノード追加時必須**\n" properties: ID: type: integer description: "プランID \n**新規作成時・ノード追加時必須**\n\n利用可能なプランID:\n| プラン名 | プランID | \n|--------------|------------|\n| 40GBプラン | 51142 |\n| 100GBプラン | 51143 |\n| 100GBプラン/ノード | 51145 |\n| 250GBプラン | 51144 |\n| 250GBプラン/ノード | 51146 |\n" example: 51142 required: - ID NosqlReadResponse: type: object properties: Appliance: $ref: '#/components/schemas/NosqlApplianceResponse' is_ok: $ref: '#/components/schemas/is_ok' required: - Appliance NosqlPlan: type: object description: プラン properties: ID: type: integer description: "プランID \n\n| プラン名 | プランID | \n|--------------|------------|\n| 40GBプラン | 51142 |\n| 100GBプラン | 51143 |\n| 100GBプラン/ノード | 51145 |\n| 250GBプラン | 51144 |\n| 250GBプラン/ノード | 51146 |\n" example: 51142 Password: type: string example: Default-Password01 description: "パスワード \n**新規作成時必須**\n" pattern: ^[a-zA-Z0-9-._]+$ minLength: 12 maxLength: 30 NosqlApplianceInput: type: object properties: Class: type: string description: "クラス \n**新規作成時・ノード追加時必須**\n" example: nosql Name: type: string description: "NoSQLの名前 \n**新規作成時・ノード追加時必須**\n" example: CassandraName minLength: 1 maxLength: 64 Description: type: string description: NoSQLの説明 example: 説明 minLength: 0 maxLength: 512 Tags: $ref: '#/components/schemas/Tags' NosqlNodeAppliance: type: object description: ノードのアプライアンス情報 required: - ID - Availability properties: ID: type: string description: アプライアンスID example: '113700352689' Availability: $ref: '#/components/schemas/Availability' Zone: type: object description: ゾーン情報 properties: Name: type: string description: ゾーン名 example: tk1b Nodes: type: array description: ノードの詳細情報 items: $ref: '#/components/schemas/NosqldbNodeStatus' NosqlUpdateRequest: type: object properties: Appliance: type: object allOf: - $ref: '#/components/schemas/NosqlApplianceInput' - type: object properties: ID: type: string description: アプライアンスID example: '113600097295' Settings: $ref: '#/components/schemas/NosqlSettings' required: - ID - Settings required: - Appliance NosqlServiceClass: type: string description: "サービスクラス\n\n| プラン名 | サービスクラスパス | \n|--------------|----------------------------|\n| 40GBプラン | cloud/nosql/plan/1 |\n| 100GBプラン | cloud/nosql/plan/2 |\n| 100GBプラン/ノード | cloud/nosql/plan/2/node |\n| 250GBプラン | cloud/nosql/plan/3 |\n| 250GBプラン/ノード | cloud/nosql/plan/3/node |\n" example: cloud/nosql/plan/1 NosqlRemarkResponse: type: object properties: Nosql: type: object properties: PrimaryNodes: type: object description: プライマリノード情報 properties: Appliance: type: object description: 既存のNoSQLのアプライアンス情報 properties: ID: type: string description: 既存のNoSQLのアプライアンスID example: '113700352689' Zone: type: object description: 既存のNoSQLのゾーン properties: Name: type: string description: 既存のNoSQLのゾーン情報 example: tk1b DatabaseEngine: type: string description: データベースに使用するエンジン enum: - Cassandra example: Cassandra DatabaseVersion: type: string description: データベースバージョン pattern: ^\d+\.\d+\.\d+$ example: 4.1.9 DefaultUser: type: string description: デフォルトユーザ名 example: defaultuser01 minLength: 4 maxLength: 20 pattern: ^[a-z][a-z0-9_]{3,19}$ DiskSize: type: integer description: ディスクサイズ(MB) example: 102400 enum: - 40960 - 102400 - 256000 Memory: type: integer description: メモリ(MB) example: 8192 enum: - 4096 - 8192 - 16384 Nodes: type: integer description: ノード数 example: 3 minimum: 1 maximum: 3 Port: type: integer description: ポート example: 9042 minimum: 1024 maximum: 65535 Storage: type: string description: ストレージ example: SSD enum: - SSD Virtualcore: type: integer description: 仮想コア example: 3 enum: - 2 - 3 - 6 Zone: type: string description: ゾーン example: tk1b Servers: type: array items: type: object properties: UserIPAddress: type: string format: ipv4 description: "ユーザ側スイッチに接続するIPアドレス \n" example: 192.168.100.11 Network: type: object description: ネットワーク情報 properties: DefaultRoute: type: string description: ゲートウェイのアドレス example: 192.168.100.254 NetworkMaskLen: type: integer description: ネットマスク example: 24 NosqlSettings: type: object properties: Password: $ref: '#/components/schemas/Password' ReserveIPAddress: description: "予備IPアドレス \n**新規作成時・ノード追加時必須** \n※デッドノード発生時、ノード切替を行う際に使用する予備のIPアドレス \nただし、40GBプランの場合は必須ではありません。\n" type: string format: ipv4 example: 192.168.100.203 Backup: type: - object - 'null' description: バックアップ情報 properties: Connect: type: string description: バックアップ先(NFS URL形式) example: nfs://192.168.100.250/export pattern: ^(nfs://[0-9\.]+/[A-Za-z0-9_\-\/]+)$ DayOfWeek: type: - array - 'null' description: バックアップスケジュール items: type: string enum: - sun - mon - tue - wed - thu - fri - sat example: - sun - mon Time: type: - string - 'null' description: バックアップする時間 example: 00:00 pattern: ^(([0-1][0-9]|2[0-3]):(00|15|30|45))?$ Rotate: type: integer description: バックアップ数(1から8まで) minimum: 1 maximum: 8 example: 3 required: - Connect - Rotate SourceNetwork: type: array description: 送信元ネットワークアドレス uniqueItems: true items: type: string pattern: ^(?:[0-9]{1,3}\.){3}[0-9]{1,3}(?:/(?:[0-9]|[1-2][0-9]|3[0-2]))?$ example: - 192.168.100.200 - 192.168.100.201 - 192.168.100.202 Repair: type: - object - 'null' description: "定期リペア設定 \n※40GBプランはノード数が1のため、リペア設定を行うことはできません。 \n" properties: Incremental: type: object description: 増分リペア設定 properties: DaysOfWeek: type: array description: 実行曜日 items: type: string enum: - sun - mon - tue - wed - thu - fri - sat example: - sun - mon Time: type: string description: 実行時間 pattern: ^(([0-1][0-9]|2[0-3]):(00|15|30|45))?$ example: 00:00 required: - DaysOfWeek - Time Full: type: object description: 完全リペア設定 properties: Interval: type: integer description: 7日ごとの実行間隔(日数) enum: - 7 - 14 - 21 - 28 example: 7 DayOfWeek: type: string description: 実行曜日 enum: - sun - mon - tue - wed - thu - fri - sat example: sun Time: type: string description: 実行時間 pattern: ^(([0-1][0-9]|2[0-3]):(00|15|30|45))?$ example: 00:00 required: - Interval - DayOfWeek - Time Instance: type: object properties: Status: type: string example: up StatusChangedAt: type: - string - 'null' format: date-time example: '2021-01-01T00:00:00Z' Host: type: - object - 'null' properties: Name: type: string example: host_name InfoURL: type: string example: '' Hosts: type: array items: type: object properties: Name: type: string InfoURL: type: string parameters: ApplianceID: name: applianceID in: path description: アプライアンスID required: true schema: type: string example: '113600102549' responses: UnauthorizedResponse: description: 認証エラー content: application/json: schema: type: object description: エラーレスポンス properties: is_fatal: type: boolean description: エラーのレスポンス(true:エラー) example: true serial: type: string description: 追跡コード example: 3a5a51fdxxxxx5f6794e82cc8d00d3xx status: type: string description: ステータス example: 401 Unauthorized error_code: type: string description: エラーコード example: unauthorized error_msg: type: string description: エラーメッセージ example: この操作は認証が必要です。 ServerErrorResponse: description: サーバエラー content: application/json: schema: type: object description: エラーレスポンス properties: is_fatal: type: boolean description: エラーのレスポンス(true:エラー) example: true serial: type: string description: 追跡コード example: 3a5a51fdxxxxx5f6794e82cc8d00d3xx status: type: string description: ステータス example: 500 Internal Server Error error_code: type: string description: エラーコード example: internal_server_error error_msg: type: string description: エラーメッセージ example: サーバ内部エラーが発生しました。 BadRequestResponse: description: Requestエラー content: application/json: schema: type: object description: エラーレスポンス properties: is_fatal: type: boolean description: エラーのレスポンス(true:エラー) example: true serial: type: string description: 追跡コード example: 3a5a51fdxxxxx5f6794e82cc8d00d3xx status: type: string description: ステータス example: 400 Bad Request error_code: type: string description: エラーコード example: bad_request error_msg: type: string description: エラーメッセージ example: 不適切な要求です。 NotFoundResponse: description: リソースが存在しない content: application/json: schema: type: object description: エラーレスポンス properties: is_fatal: type: boolean description: エラーのレスポンス(true:エラー) example: true serial: type: string description: 追跡コード example: 3a5a51fdxxxxx5f6794e82cc8d00d3xx status: type: string description: ステータス example: 404 Not Found error_code: type: string description: エラーコード example: not_found error_msg: type: string description: エラーメッセージ example: 対象が見つかりません。 ConflictResponse: description: リソースが競合している content: application/json: schema: $ref: '#/components/schemas/ConflictErrorResponse' x-refined-from: - nosql-api.yaml - sakura-internet-nosql-openapi.yml