建立新套件
POST /accounts/{account_id}/core/v1/packages
指示要建立的 Package API 資源的期望值。
參數
| Name | 類型 | 在 | 必要 | 說明 |
|---|---|---|---|---|
account_id |
字串 |
路徑 |
True |
包含帳戶資源的 ID
|
請求本文
指示要建立的 Package API 資源的期望值。
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
類型 |
字串 |
True |
資源的媒體類型。定義的值為:
|
版本 |
字串 |
True |
資源版本。已定義值包括:
|
packageName |
字串 |
True |
包含套件名稱的 JSON 字串。已定義的值包括:
|
packageVersion |
字串 |
True |
包含套件 SemVer 的 JSON 字串。已定義的值包括:
|
packageType |
字串 |
True |
包含套件類型的 JSON 字串,指示這是完整安裝套件還是修補程式。已定義的值包括:
|
bundleName |
陣列[string] |
錯誤 |
包含套件所在套裝組合名稱的 JSON 字串 JSON 陣列。 |
severityLevel |
字串 |
True |
描述此修補程式或安裝嚴重性層級的 JSON 字串。定義的值為:
|
映像 |
陣列["映像"] |
錯誤 |
JSON 陣列,包含 JSON 物件,每個物件都包含一個屬於該套件的 Docker 映像。 |
成品 |
陣列["成品"] |
錯誤 |
描述與此套件相關的其他成品(二進位檔案和其他檔案)的 JSON 物件 JSON 陣列。 |
檔案 |
陣列["檔案"] |
錯誤 |
JSON 陣列,包含 JSON 物件,每個物件代表與此套件相關聯的非映像成品。 |
upgradableVersions |
錯誤 |
JSON 物件,包含可升級至套件版本的最低和最高版本。 |
|
相依性 |
陣列["相依性"] |
錯誤 |
JSON 物件的 JSON 陣列,描述安裝此套件所需的指定相依性最低版本 |
中繼資料 |
錯誤 |
與資源相關聯的用戶端和服務指定中繼資料。定義的值為:
|
範例請求
{
"type": "application/astra-package",
"version": "1.0",
"packageName": "acc",
"packageVersion": "22.09.1",
"packageType": "patch",
"severityLevel": "recommended",
"images": [
{
"imagePath": "/globalcicd/acc",
"imageName": "storage-provider",
"imageTag": "1.3.116",
"imageDigest": "sha256:2e04d178815537b0ad8c3224e8754e3364456781a161f1be239853dae33deafc"
},
{
"imagePath": "/globalcicd/acc",
"imageName": "storage-backend-metrics",
"imageTag": "1.3.45",
"imageDigest": "sha256:2e04d178815537b0ad8c3224e8754e3364456781a161f1be239853dae33deafc"
},
{
"imagePath": "/globalcicd/acc",
"imageName": "credentials",
"imageTag": "1.3.45",
"imageDigest": "sha256:2e04d178815537b0ad8c322445654e33642da781a161f1be239853dae33deafc"
}
],
"files": [
{
"fileName": "astra_control_center_min.yaml",
"fileIdentifier": "astra_min",
"fileMediaType": "application/x-yaml",
"fileContents": "VGhpcyBpcyBzdXBwb3NlZCB0byBiZSBhIGNvbXByZXNzZWQgZmlsZSBjb250ZW50"
}
],
"dependencies": [
{
"componentName": "acc",
"componentMinVersion": "22.04.29"
},
{
"componentName": "kubernetes",
"componentMinVersion": "v1.19.7",
"componentMaxVersion": "v1.22"
},
{
"componentName": "trident",
"componentMinVersion": "v21.01.1"
}
]
}
回應
Status: 201, Returns the newly created package resource in the JSON response body.
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
類型 |
字串 |
True |
資源的媒體類型。定義的值為:
|
版本 |
字串 |
True |
資源版本。已定義值包括:
|
ID |
字串 |
True |
資源的全域唯一識別碼。定義的值為:
|
packageName |
字串 |
True |
包含套件名稱的 JSON 字串。已定義的值包括:
|
packageVersion |
字串 |
True |
包含套件 SemVer 的 JSON 字串。已定義的值包括:
|
packageType |
字串 |
True |
包含套件類型的 JSON 字串,指示這是完整安裝套件還是修補程式。已定義的值包括:
|
bundleName |
陣列[string] |
錯誤 |
包含套件所在套裝組合名稱的 JSON 字串 JSON 陣列。 |
severityLevel |
字串 |
True |
描述此修補程式或安裝嚴重性層級的 JSON 字串。定義的值為:
|
packageState |
字串 |
True |
JSON 字串,包含指示套件運作狀態的值。套件驗證並匯入後,狀態將顯示為「complete」。否則,狀態將顯示為「incomplete」。定義的值為:
|
packageStateTransitions |
True |
JSON 物件的 JSON 陣列,每個物件代表從給定已定義狀態允許的狀態轉換集。每個 JSON 物件包含「from」和「to」欄位,其中「from」值是狀態名稱,「to」值是允許的目標狀態陣列。已定義的值為:
|
|
packageStateDetails |
True |
JSON 物件的 JSON 陣列,其中列出有關目前「狀態」的其他詳細資料。如果沒有可用的詳細資料,此陣列將為空白。
|
|
映像 |
陣列["映像"] |
錯誤 |
JSON 陣列,包含 JSON 物件,每個物件都包含一個屬於該套件的 Docker 映像。 |
成品 |
陣列["成品"] |
錯誤 |
描述與此套件相關的其他成品(二進位檔案和其他檔案)的 JSON 物件 JSON 陣列。 |
檔案 |
陣列["檔案"] |
錯誤 |
JSON 陣列,包含 JSON 物件,每個物件代表與此套件相關聯的非映像成品。 |
upgradableVersions |
錯誤 |
JSON 物件,包含可升級至套件版本的最低和最高版本。 |
|
相依性 |
陣列["相依性"] |
錯誤 |
JSON 物件的 JSON 陣列,描述安裝此套件所需的指定相依性最低版本 |
中繼資料 |
True |
與資源相關聯的用戶端和服務指定中繼資料。定義的值為:
|
範例回應
{
"type": "application/astra-package",
"version": "1.0",
"id": "54edc2b3-18c5-5371-904b-ebcd04d88bdc",
"packageName": "acc",
"packageVersion": "22.09.1",
"packageType": "patch",
"packageState": "available",
"packageStateTransitions": [
{
"from": "verifying",
"to": [
"corrupt",
"incomplete",
"available"
]
},
{
"from": "corrupt",
"to": [
"incomplete",
"available"
]
},
{
"from": "incomplete",
"to": [
"corrupt",
"available"
]
},
{
"from": "available",
"to": [
"corrupt",
"available"
]
}
],
"packageStateDetails": [],
"severityLevel": "recommended",
"images": [
{
"imagePath": "/globalcicd/acc",
"imageName": "storage-provider",
"imageTag": "1.3.116",
"imageDigest": "sha256:2e04d178815537b0ad8c3224e8754e33642da781a161f1be239853dae33deafc"
},
{
"imagePath": "/globalcicd/acc",
"imageName": "storage-backend-metrics",
"imageTag": "1.3.45",
"imageDigest": "sha256:2e04d178815537b0ad8c3224e8754e33642da781a161f1be239853dae33deafc"
},
{
"imagePath": "/globalcicd/acc",
"imageName": "credentials",
"imageTag": "1.3.45",
"imageDigest": "sha256:2e04d178815537b0ad8c3224e8754e33642da781a161f1be239853dae33deafc"
}
],
"files": [
{
"fileName": "astra_control_center_min.yaml",
"fileIdentifier": "astra_min",
"fileMediaType": "application/x-yaml",
"fileContents": "VGhpcyBpcyBzdXBwb3NlZCB0byBiZSBhIGNvbXByZXNzZWQgZmlsZSBjb250ZW50"
}
],
"dependencies": [
{
"componentName": "acc",
"componentMinVersion": "22.04.29"
},
{
"componentName": "kubernetes",
"componentMinVersion": "v1.19.7",
"componentMaxVersion": "v1.20"
},
{
"componentName": "trident",
"componentMinVersion": "v21.01.1"
}
],
"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 | 類型 | 必要 | 說明 |
|---|---|---|---|
類型 |
字串 |
True |
|
標題 |
字串 |
True |
|
詳細資料 |
字串 |
True |
|
狀態 |
字串 |
True |
|
correlationID |
字串 |
錯誤 |
範例回應
{
"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 | 類型 | 必要 | 說明 |
|---|---|---|---|
類型 |
字串 |
True |
|
標題 |
字串 |
True |
|
詳細資料 |
字串 |
True |
|
狀態 |
字串 |
True |
|
correlationID |
字串 |
錯誤 |
|
invalidFields |
陣列["invalidFields"] |
錯誤 |
無效請求本文欄位清單 |
範例回應
{
"type": "https://astra.netapp.io/problems/5",
"title": "Invalid query parameters",
"detail": "The supplied query parameters are invalid.",
"status": "400"
}
回應
Status: 409, Conflict
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
類型 |
字串 |
True |
|
標題 |
字串 |
True |
|
詳細資料 |
字串 |
True |
|
狀態 |
字串 |
True |
|
correlationID |
字串 |
錯誤 |
|
invalidFields |
陣列["invalidFields"] |
錯誤 |
無效請求本文欄位清單 |
範例回應
{
"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 | 類型 | 必要 | 說明 |
|---|---|---|---|
類型 |
字串 |
True |
|
標題 |
字串 |
True |
|
詳細資料 |
字串 |
True |
|
狀態 |
字串 |
True |
|
correlationID |
字串 |
錯誤 |
範例回應
{
"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 | 類型 | 必要 | 說明 |
|---|---|---|---|
類型 |
字串 |
True |
|
標題 |
字串 |
True |
|
詳細資料 |
字串 |
True |
|
狀態 |
字串 |
True |
|
correlationID |
字串 |
錯誤 |
範例錯誤回應
{
"type": "https://astra.netapp.io/problems/2",
"title": "Collection not found",
"detail": "The collection specified in the request URI wasn't found.",
"status": "404"
}
定義
請參閱定義
dependsOnImages
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
imagePath |
字串 |
True |
包含此 Docker 映像路徑的 JSON 字串。它不能包含登錄名稱,只能包含從根目錄到映像的絕對路徑。範例:/globalcicd/acc 已定義的值包括:
|
imageName |
字串 |
True |
包含 Docker 映像名稱的 JSON 字串。已定義的值包括:
|
imageTag |
字串 |
True |
代表此映像標籤 / 版本的 JSON 字串。定義的值為:
|
映像
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
imageName |
字串 |
True |
包含 Docker 映像名稱的 JSON 字串。已定義的值包括:
|
imagePath |
字串 |
True |
包含此 Docker 映像路徑的 JSON 字串。它不能包含登錄名稱,只能包含從根目錄到映像的絕對路徑。範例:/globalcicd/acc 已定義的值包括:
|
imageTag |
字串 |
True |
代表此映像標籤 / 版本的 JSON 字串。定義的值為:
|
imageDigest |
字串 |
True |
代表此映像摘要的 JSON 字串。定義的值為:
|
dependsOnImages |
錯誤 |
描述安裝或升級目前映像所需映像的 JSON 物件 JSON 陣列。 |
dependsOnComponents
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
componentName |
字串 |
True |
描述元件名稱的 JSON 字串。定義的值為:
|
版本 |
陣列[string] |
True |
定義安裝目前映像所需元件版本的 JSON 字串 JSON 陣列。 |
成品
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
artifactName |
字串 |
True |
包含檔案名稱的 JSON 字串。定義的值為:
|
artifactIdentifier |
字串 |
True |
包含此檔案識別碼的 JSON 字串。在同一套件類型的不同版本之間,檔案名稱可能會變更,但識別碼通常保持不變。已定義的值包括:
|
artifactPath |
字串 |
True |
JSON 字串,包含從已知 Astra Control Center 資料儲存區/位置的根目錄到此成品的路徑。範例:/vmware/1.0/ 定義的值為:
|
artifactVersion |
字串 |
錯誤 |
JSON 字串,包含該成品的版本(如果有提供)。定義的值為:
|
dependsOnComponents |
錯誤 |
描述安裝 / 升級目前映像所需的已安裝元件的 JSON 物件 JSON 陣列。 |
檔案
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
fileName |
字串 |
True |
包含檔案名稱的 JSON 字串。定義的值為:
|
fileIdentifier |
字串 |
True |
包含此檔案識別碼的 JSON 字串。在同一套件類型的不同版本之間,檔案名稱可能會變更,但識別碼通常保持不變。已定義的值包括:
|
fileMediaType |
字串 |
True |
包含檔案媒體類型的 JSON 字串。定義的值可以是任何已定義的媒體類型 "IANA"。此外,也支援 application/x-yaml 或 application/x-yaml(用於 yaml 檔案)。
|
fileContents |
字串 |
True |
包含檔案內容的 JSON 字串。已定義的值包括:
|
upgradableVersions
JSON 物件,包含可升級至套件版本的最低和最高版本。
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
minVersion |
字串 |
錯誤 |
描述可升級到套件版本的最低版本的 JSON 字串。定義的值為:
|
maxVersion |
字串 |
錯誤 |
描述可升級到套件版本的最高版本的 JSON 字串。已定義的值包括:
|
相依性
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
componentName |
字串 |
True |
描述元件名稱的 JSON 字串。定義的值為:
|
componentMinVersion |
字串 |
錯誤 |
描述該元件所需最低版本的 JSON 字串。已定義的值包括:
|
componentMaxVersion |
字串 |
錯誤 |
描述該元件所需最高版本的 JSON 字串。已定義的值包括:
|
type_astra_label
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
姓名 |
字串 |
True |
|
值 |
字串 |
True |
type_astra_metadata
與資源相關聯的用戶端和服務指定中繼資料。定義的值為:
-
符合 Astra Metadata Schema。如果在建立時未指定、則會建立沒有標籤的中繼資料物件。
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
標籤 |
True |
||
建立時間戳記 |
字串 |
True |
|
修改時間戳記 |
字串 |
True |
|
建立者 |
字串 |
True |
|
modifiedBy |
字串 |
錯誤 |
type_astra_stateTransition
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
從 |
字串 |
True |
|
到 |
陣列[string] |
True |
additionalDetails
type_astra_stateDetail
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
類型 |
字串 |
True |
|
標題 |
字串 |
True |
|
詳細資料 |
字串 |
True |
|
additionalDetails |
錯誤 |
invalidParams
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
姓名 |
字串 |
True |
無效查詢參數的名稱 |
原因 |
字串 |
True |
查詢參數無效的原因 |
invalidFields
| Name | 類型 | 必要 | 說明 |
|---|---|---|---|
姓名 |
字串 |
True |
無效請求內文欄位的名稱 |
原因 |
字串 |
True |
請求本文欄位無效的原因 |