管理対象クラスター用の新しいアプリを作成する
POST /accounts/{account_id}/topology/v2/managedClusters/{managedCluster_id}/apps
作成するアプリ API リソースの希望値を指定します。
パラメータ
| Name | を入力します | 入力 | 必須 | 説明 |
|---|---|---|---|---|
account_id |
string |
path(パス) |
True |
包含するアカウントリソースのID
|
managedCluster_id |
string |
path(パス) |
True |
包含するmanagedClusterリソースのID |
要求の本文
作成するアプリ API リソースの希望値を指定します。
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
を入力します |
string |
True |
リソースのメディアタイプ。定義された値は次のとおりです:
|
バージョン |
string |
True |
リソースのバージョン。定義された値は次のとおりです:
|
名前 |
string |
True |
アプリケーション名を含むJSON文字列。定義された値は次のとおりです:
|
clusterScopedResources |
False |
このアプリに含まれるクラスタを対象としたリソースを記述するJSONオブジェクトのJSON配列 |
|
namespaceScopedResources |
False |
このアプリに含まれるリソースを記述するJSONオブジェクトのJSON配列 |
|
namespaceMapping |
False |
JSONオブジェクトのJSON配列。各オブジェクトは、クローン操作のソースネームスペースをデスティネーションネームスペースにマッピングします。定義された値は次のとおりです:
|
|
storageClassMapping |
False |
JSONオブジェクトのJSON配列。各JSONオブジェクトは、リストア処理のために、ソースストレージクラスをデスティネーション ストレージクラスにマッピングします。要素が存在しない場合、または存在しない場合は、元のソースストレージクラス名が使用されます。定義された値は次のとおりです:
|
|
clusterID |
string |
False |
アプリケーションが実行されているクラスタのIDを含むJSON文字列。アプリケーションが現在実行されていない場合は返されません。作成時に指定すると、clusterIDはアプリケーションをクローンするクラスタを示します。指定されたクラスタが存在しない場合、または指定されたクラスタがリクエストURIで指定されたclusterIDと一致しない場合、クローンは失敗します。定義された値は次のとおりです:
|
sourceAppID |
string |
False |
ソースアプリケーションのIDを含むJSON文字列。アプリケーションが別のアプリケーションからクローンされた場合、またはバックアップやスナップショットから復元された場合にのみ返されます。作成時に指定される場合、sourceAppIDはsourceClusterIDと組み合わせて使用され、どの実行中のアプリケーションがクローンされるかを示します。指定されたアプリケーションが指定されたソースクラスタ上に存在しない場合、クローンは失敗します。アプリケーションを作成する際に指定できるのは、sourceAppID、backupID、snapshotIDのうちいずれか1つだけです。定義された値は次のとおりです:
|
sourceClusterID |
string |
False |
アプリケーションが以前実行されていたクラスタのIDを含むJSON文字列。アプリケーションが別のクラスタからクローニングされた場合にのみ返されます。作成時に指定した場合、sourceClusterIDはsourceAppIDと組み合わせて使用され、クローニングするアプリケーションのソース クラスタを示します。指定したソース クラスタが存在しない場合、クローンは失敗します。定義された値は次のとおりです:
|
backupID |
string |
False |
アプリケーションが復元されたバックアップのIDを含むJSON文字列。アプリケーションがバックアップから復元された場合にのみ返されます。作成時に指定すると、backupIDはアプリケーションが既存のバックアップからクローンされることを示します。指定されたバックアップが存在しない場合、クローン作成は失敗します。アプリケーションを作成する際に指定できるのは、sourceAppID、backupID、snapshotIDのうちいずれか1つだけです。置換時に指定される場合、backupIDは、アプリケーションがインプレース復元されるアプリケーションバックアップを示します。指定されたバックアップが存在しない場合、復元は失敗します。アプリケーションの更新時には、backupIDまたはsnapshotIDのいずれか一方のみを指定できます。定義済みの値は次のとおりです:
|
snapshotID |
string |
False |
アプリケーションが復元されたスナップショットのIDを含むJSON文字列。アプリケーションがスナップショットから復元された場合にのみ返されます。作成時に指定すると、snapshotIDは、アプリケーションが既存のスナップショットからクローンされることを示します。指定されたスナップショットが存在しない場合、クローンは失敗します。アプリケーションを作成する際に指定できるのは、sourceAppID、backupID、snapshotIDのうちいずれか1つだけです。置換時に指定される場合、snapshotIDは、アプリケーションがその場で復元されるアプリケーションのスナップショットを示します。指定されたスナップショットが存在しない場合、復元は失敗します。アプリケーションを更新する際には、backupIDとsnapshotIDのどちらか一方のみを指定できます。定義された値は次のとおりです:
|
restoreFilter |
False |
選択的復元操作に含めるリソースと除外するリソースを記述するフィルタのリストを含むJSONオブジェクト。含める設定と除外設定は相互に排他的であり、選択的復元ではいずれか一方のフィルタしか使用できません。 |
|
メタデータ |
False |
リソースに関連付けられた、クライアントおよびサービス指定のメタデータ。定義された値は次のとおりです:
|
リクエスト例
{
"type": "application/astra-app",
"version": "2.2",
"name": "jenkins",
"clusterID": "0f284377-e5dc-4dcd-bacd-3197f2b8a347",
"namespaceScopedResources": [
{
"namespace": "production"
}
]
}
応答
Status: 201, Returns the newly created app resource in the JSON response body.
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
を入力します |
string |
True |
リソースのメディアタイプ。定義された値は次のとおりです:
|
バージョン |
string |
True |
リソースのバージョン。定義された値は次のとおりです:
|
ID |
string |
True |
リソースのグローバル一意識別子。定義された値は次のとおりです:
|
リンク |
True |
リソースに対してサポートされている操作を説明するリンク。 |
|
名前 |
string |
True |
アプリケーション名を含むJSON文字列。定義された値は次のとおりです:
|
clusterScopedResources |
False |
このアプリに含まれるクラスタを対象としたリソースを記述するJSONオブジェクトのJSON配列 |
|
namespaceScopedResources |
True |
このアプリに含まれるリソースを記述するJSONオブジェクトのJSON配列 |
|
lastResourceCollectionTimestamp |
string |
False |
最後にリソース収集が実行された日時を示すタイムスタンプを含むJSON文字列。このフィールドは、このアプリケーションに対してまだリソース収集が実行されていない場合は設定されません。定義された値は次のとおりです:
|
状態 |
string |
True |
アプリケーションの動作状態を示す値を含むJSON文字列。定義された値は次のとおりです:
|
stateTransitions |
False |
JSONオブジェクトのJSON配列。各オブジェクトは、特定の定義済み状態からの許可された状態遷移のセットを表します。各JSONオブジェクトには「from」と「to」というフィールドが含まれており、「from」の値は状態の名前、「to」の値は許可された宛先状態の配列です。 |
|
stateDetails |
True |
現在の状態に関する詳細情報(現在の状態に至った理由を含む)をリストしたJSONオブジェクトのJSON配列。詳細情報が利用できない場合、この配列は空になります。定義された値は次のとおりです:
|
|
protectionState |
string |
True |
アプリケーションの保護状態を示す値を含むJSON文字列。定義された値は次のとおりです:
|
protectionStateDetails |
True |
現在の保護状態に関する詳細情報(現在の状態に至った理由を含む)を一覧表示するJSONオブジェクトのJSON配列。詳細情報が利用できない場合、この配列は空になります。定義された値は次のとおりです:
|
|
appDetectedType |
string |
False |
検出された特定のアプリケーションの種類を一意に表すJSON文字列。定義された値は次のとおりです:
|
ネームスペース |
array[string] |
True |
アプリケーションが実行されている名前空間の名前を含むJSON文字列のJSON配列。定義された値は次のとおりです:
|
namespaceMapping |
False |
JSONオブジェクトのJSON配列。各オブジェクトは、クローン操作のソースネームスペースをデスティネーションネームスペースにマッピングします。定義された値は次のとおりです:
|
|
storageClassMapping |
False |
JSONオブジェクトのJSON配列。各JSONオブジェクトは、リストア処理のために、ソースストレージクラスをデスティネーション ストレージクラスにマッピングします。要素が存在しない場合、または存在しない場合は、元のソースストレージクラス名が使用されます。定義された値は次のとおりです:
|
|
clusterName |
string |
False |
アプリケーションが実行されているクラスタの名前を含むJSON文字列。アプリケーションが現在実行されていない場合は返されません。 |
clusterID |
string |
False |
アプリケーションが実行されているクラスタのIDを含むJSON文字列。アプリケーションが現在実行されていない場合は返されません。作成時に指定すると、clusterIDはアプリケーションをクローンするクラスタを示します。指定されたクラスタが存在しない場合、または指定されたクラスタがリクエストURIで指定されたclusterIDと一致しない場合、クローンは失敗します。定義された値は次のとおりです:
|
clusterType |
string |
False |
クラスターの種類を示す値を含むJSON文字列。定義された値は次のとおりです:
|
sourceAppID |
string |
False |
ソースアプリケーションのIDを含むJSON文字列。アプリケーションが別のアプリケーションからクローンされた場合、またはバックアップやスナップショットから復元された場合にのみ返されます。作成時に指定される場合、sourceAppIDはsourceClusterIDと組み合わせて使用され、どの実行中のアプリケーションがクローンされるかを示します。指定されたアプリケーションが指定されたソースクラスタ上に存在しない場合、クローンは失敗します。アプリケーションを作成する際に指定できるのは、sourceAppID、backupID、snapshotIDのうちいずれか1つだけです。定義された値は次のとおりです:
|
sourceClusterName |
string |
False |
アプリケーションが以前実行されていたクラスタの名前を含むJSON文字列。アプリケーションが別のクラスタからクローニングされた場合にのみ返されます。 |
sourceClusterID |
string |
False |
アプリケーションが以前実行されていたクラスタのIDを含むJSON文字列。アプリケーションが別のクラスタからクローニングされた場合にのみ返されます。作成時に指定した場合、sourceClusterIDはsourceAppIDと組み合わせて使用され、クローニングするアプリケーションのソース クラスタを示します。指定したソース クラスタが存在しない場合、クローンは失敗します。定義された値は次のとおりです:
|
backupID |
string |
False |
アプリケーションが復元されたバックアップのIDを含むJSON文字列。アプリケーションがバックアップから復元された場合にのみ返されます。作成時に指定すると、backupIDはアプリケーションが既存のバックアップからクローンされることを示します。指定されたバックアップが存在しない場合、クローン作成は失敗します。アプリケーションを作成する際に指定できるのは、sourceAppID、backupID、snapshotIDのうちいずれか1つだけです。置換時に指定される場合、backupIDは、アプリケーションがインプレース復元されるアプリケーションバックアップを示します。指定されたバックアップが存在しない場合、復元は失敗します。アプリケーションの更新時には、backupIDまたはsnapshotIDのいずれか一方のみを指定できます。定義済みの値は次のとおりです:
|
snapshotID |
string |
False |
アプリケーションが復元されたスナップショットのIDを含むJSON文字列。アプリケーションがスナップショットから復元された場合にのみ返されます。作成時に指定すると、snapshotIDは、アプリケーションが既存のスナップショットからクローンされることを示します。指定されたスナップショットが存在しない場合、クローンは失敗します。アプリケーションを作成する際に指定できるのは、sourceAppID、backupID、snapshotIDのうちいずれか1つだけです。置換時に指定される場合、snapshotIDは、アプリケーションがその場で復元されるアプリケーションのスナップショットを示します。指定されたスナップショットが存在しない場合、復元は失敗します。アプリケーションを更新する際には、backupIDとsnapshotIDのどちらか一方のみを指定できます。定義された値は次のとおりです:
|
replicationSourceAppID |
string |
False |
このアプリケーションに複製されるアプリケーションのIDを含むJSON文字列。アプリケーションが現在AppMirror関係のデスティネーション クラスタであり、その関係がfailedOver状態でない場合にのみ返されます。関係がfailedOver状態の場合、このフィールドは返されません。定義された値は次のとおりです:
|
restoreFilter |
False |
選択的復元操作に含めるリソースと除外するリソースを記述するフィルタのリストを含むJSONオブジェクト。含める設定と除外設定は相互に排他的であり、選択的復元ではいずれか一方のフィルタしか使用できません。 |
|
メタデータ |
True |
リソースに関連付けられた、クライアントおよびサービス指定のメタデータ。定義された値は次のとおりです:
|
回答例
{
"type": "application/astra-app",
"version": "2.2",
"id": "39c1c79f-efab-5357-88fb-20e628c4dd96",
"links": [],
"name": "jenkins",
"namespaceScopedResources": [
{
"namespace": "production",
"labelSelectors": []
}
],
"state": "pending",
"stateDetails": [],
"protectionState": "none",
"protectionStateDetails": [],
"namespaces": [
"production"
],
"clusterName": "GKE-22",
"clusterID": "0f284377-e5dc-4dcd-bacd-3197f2b8a347",
"clusterType": "kubernetes",
"metadata": {
"labels": [],
"creationTimestamp": "2022-10-06T20:58:16.305662Z",
"modificationTimestamp": "2022-10-06T20:58:16.305662Z",
"createdBy": "8f84cf09-8036-51e4-b579-bd30cb07b269"
}
}
応答
Status: 401, Unauthorized
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
を入力します |
string |
True |
|
タイトル |
string |
True |
|
詳細 |
string |
True |
|
ステータス |
string |
True |
|
correlationID |
string |
False |
回答例
{
"type": "https://astra.netapp.io/problems/3",
"title": "Missing bearer token",
"detail": "The request is missing the required bearer token.",
"status": "401"
}
応答
Status: 400, Bad request
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
を入力します |
string |
True |
|
タイトル |
string |
True |
|
詳細 |
string |
True |
|
ステータス |
string |
True |
|
correlationID |
string |
False |
回答例
{
"type": "https://astra.netapp.io/problems/5",
"title": "Invalid query parameters",
"detail": "The supplied query parameters are invalid.",
"status": "400"
}
応答
Status: 409, Conflict
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
を入力します |
string |
True |
|
タイトル |
string |
True |
|
詳細 |
string |
True |
|
ステータス |
string |
True |
|
correlationID |
string |
False |
回答例
{
"type": "https://astra.netapp.io/problems/10",
"title": "JSON resource conflict",
"detail": "The request body JSON contains a field that conflicts with an idempotent value.",
"status": "409"
}
応答
Status: 403, Forbidden
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
を入力します |
string |
True |
|
タイトル |
string |
True |
|
詳細 |
string |
True |
|
ステータス |
string |
True |
|
correlationID |
string |
False |
回答例
{
"type": "https://astra.netapp.io/problems/11",
"title": "Operation not permitted",
"detail": "The requested operation isn't permitted.",
"status": "403"
}
エラー
Status: 404, Not found
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
を入力します |
string |
True |
|
タイトル |
string |
True |
|
詳細 |
string |
True |
|
ステータス |
string |
True |
|
correlationID |
string |
False |
エラー応答の例
{
"type": "https://astra.netapp.io/problems/2",
"title": "Collection not found",
"detail": "The collection specified in the request URI wasn't found.",
"status": "404"
}
用語の意味
定義を参照
GVK
Kubernetesのグループ/バージョン/種類を含むJSONオブジェクト。
-
このオブジェクトは、Astra/apiResourcesに対して内部的に検証されます。
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
グループ |
string |
True |
Kubernetesによって割り当てられたグループ識別子を含むJSON文字列。
|
種類 |
string |
True |
Kubernetesによって割り当てられた種類識別子を含むJSON文字列。
|
バージョン |
string |
True |
Kubernetesによって割り当てられたバージョン識別子を含むJSON文字列。
|
clusterScopedResources
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
GVK |
True |
Kubernetesのグループ/バージョン/種類を含むJSONオブジェクト。
|
|
labelSelectors |
array[string] |
False |
クラスタ内のクラスタスコープGroupVersionKinds(GVK)のラベルセレクタを表すJSON文字列のJSON配列。これが空の場合、クラスタ上のすべてのGVKインスタンスが含まれます。この配列の各要素はKubernetesラベルセレクタ文字列であり、それらの値に対して同じ文法に従います。例:
|
namespaceScopedResources
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
namespace |
string |
True |
アプリケーションが定義されている名前空間の名前を含むJSON文字列。定義された値は次のとおりです:
|
labelSelectors |
array[string] |
False |
名前空間内のラベルセレクタを表すJSON文字列のJSON配列。これが空の場合、名前空間内のすべてのリソースが含まれます。この配列の各要素はKubernetesラベルセレクタ文字列であり、それらの値に関する文法に従います。例:
|
namespaceMapping
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
ソース |
string |
True |
ソース クラスタ上のネームスペース名を含む JSON 文字列。定義された値は次のとおりです:
|
を参照してください。 |
string |
True |
デスティネーション クラスタ上のネームスペースの名前を含む JSON 文字列。定義された値は次のとおりです:
|
storageClassMapping
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
ソース |
string |
True |
ソースストレージクラスの名前を含むJSON文字列。すべてのソースストレージクラスを指定する場合は、「*」を指定することもできます。定義された値は次のとおりです:
|
を参照してください。 |
string |
True |
デスティネーション ストレージ クラスの名前を含む JSON 文字列。定義された値は次のとおりです:
|
GVKN
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
グループ |
string |
False |
Kubernetesによって割り当てられたグループ識別子を含むJSON文字列。
|
バージョン |
string |
False |
Kubernetesによって割り当てられたバージョン識別子を含むJSON文字列。
|
種類 |
string |
False |
Kubernetesによって割り当てられた種類識別子を含むJSON文字列。
|
ネームスペース |
array[string] |
False |
リソースを含めるか除外するかを指定する名前空間を記述するJSON文字列のJSON配列。定義された値は次のとおりです:
|
名前 |
array[string] |
False |
選択的復元に含めるか除外するかを指定するKubernetesリソース名を記述したJSON文字列のJSON配列。定義された値は次のとおりです:
|
labelSelectors |
array[string] |
False |
選択的リストアからリソースを含めるか除外するかを決定するために使用されるKubernetesラベルセレクタを記述するJSON文字列のJSON配列。この配列の各要素はKubernetesラベルセレクタ文字列であり、それらの値に対して同じ文法に従います。例:
|
restoreFilter
選択的復元操作に含めるリソースと除外するリソースを記述するフィルタのリストを含むJSONオブジェクト。含める設定と除外設定は相互に排他的であり、選択的復元ではいずれか一方のフィルタしか使用できません。
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
resourceSelectionCriteria |
string |
True |
リソースフィルターがリソースを選択する方法を示す値を含むJSON文字列。有効な値は include または exclude です。 |
GVKN |
配列["GVKN"] |
True |
選択的復元時にフィルタリングするリソースを記述するJSONオブジェクトのJSON配列。指定されたすべてのフィルタフィールドが対応するリソースフィールドと一致する場合、そのリソースは単一のGVKNフィルタ要素に一致します。配列であるフィルタフィールド(例えば、名前空間や名前)は、その要素のいずれかが対応するリソースフィールドと一致する場合に一致します。labelSelectorsフィールドでは、すべてのセレクタが一致する必要があります。GVKNフィルタオブジェクトの配列内のいずれかのフィルタに一致するリソースは、resourceSelectionCriteriaの値に基づいて復元に含まれるか除外されます。空のGVKNオブジェクトを指定すると、検証エラーが発生します。 |
type_astra_label
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
名前 |
string |
True |
|
Value |
string |
True |
type_astra_metadata_update
リソースに関連付けられた、クライアントおよびサービス指定のメタデータ。定義された値は次のとおりです:
-
Astra メタデータスキーマに準拠します。作成時に指定しない場合、ラベルのないメタデータオブジェクトが作成されます。更新時に指定されていない場合、メタデータオブジェクトのラベル、creationTimestamp および createdBy は、変更なしで保持されます。
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
ラベル |
False |
||
作成タイムスタンプ |
string |
False |
|
modificationTimestamp |
string |
False |
|
作成者 |
string |
False |
|
modifiedBy |
string |
False |
targetSchema
accept-post
accept-put
ヒント
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
ステータス |
string |
False |
|
許可する |
array[string] |
False |
|
accept-post |
False |
||
権限 |
array[string] |
False |
|
accept-put |
False |
type_astra_link
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
rel |
string |
True |
|
href |
string |
True |
|
を入力します |
string |
False |
|
targetSchema |
False |
||
タイトル |
string |
False |
|
ヒント |
False |
namespaceScopedResources
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
namespace |
string |
True |
アプリケーションが定義されている名前空間の名前を含むJSON文字列。定義された値は次のとおりです:
|
labelSelectors |
array[string] |
True |
名前空間内のラベルセレクタを表すJSON文字列のJSON配列。これが空の場合、名前空間内のすべてのリソースが含まれます。この配列の各要素はKubernetesラベルセレクタ文字列であり、それらの値に関する文法に従います。例:
|
type_astra_stateTransition
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
- |
string |
True |
|
- |
array[string] |
True |
additionalDetails
type_astra_stateDetail
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
を入力します |
string |
True |
|
タイトル |
string |
True |
|
詳細 |
string |
True |
|
additionalDetails |
False |
restoreFilter
選択的復元操作に含めるリソースと除外するリソースを記述するフィルタのリストを含むJSONオブジェクト。含める設定と除外設定は相互に排他的であり、選択的復元ではいずれか一方のフィルタしか使用できません。
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
resourceSelectionCriteria |
string |
False |
リソースフィルターがリソースを選択する方法を示す値を含むJSON文字列。有効な値は include または exclude です。 |
GVKN |
配列["GVKN"] |
False |
選択的復元時にフィルタリングするリソースを記述するJSONオブジェクトのJSON配列。指定されたすべてのフィルタフィールドが対応するリソースフィールドと一致する場合、そのリソースは単一のGVKNフィルタ要素に一致します。配列であるフィルタフィールド(例えば、名前空間や名前)は、その要素のいずれかが対応するリソースフィールドと一致する場合に一致します。labelSelectorsフィールドでは、すべてのセレクタが一致する必要があります。GVKNフィルタオブジェクトの配列内のいずれかのフィルタに一致するリソースは、resourceSelectionCriteriaの値に基づいて復元に含まれるか除外されます。空のGVKNオブジェクトを指定すると、検証エラーが発生します。 |
invalidParams
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
名前 |
string |
True |
無効なクエリパラメータの名前 |
理由 |
string |
True |
クエリパラメータが無効な理由 |
invalidFields
| Name | を入力します | 必須 | 説明 |
|---|---|---|---|
名前 |
string |
True |
無効なリクエストボディフィールドの名前 |
理由 |
string |
True |
リクエスト本文フィールドが無効な理由 |