앱의 AppMirror 리소스 목록을 표시합니다
GET /accounts/{account_id}/k8s/v1/apps/{app_id}/appMirrors
컬렉션에서 일치하는 모든 리소스를 JSON 배열로 반환합니다. 요청에 개별 필드가 지정된 경우, items JSON 배열에는 지정된 순서대로 각 일치하는 리소스에 대해 요청된 필드가 포함됩니다.
매개변수
| 이름 | 유형 | 에서 | 필수 요소입니다 | 설명 |
|---|---|---|---|---|
account_id |
문자열 |
경로 |
참 |
포함하는 계정 리소스의 ID
|
app_id |
문자열 |
경로 |
참 |
포함하는 앱 리소스의 ID |
포함 |
문자열 |
쿼리 |
거짓 |
컬렉션 목록을 표시할 때 어떤 필드를 반환해야 하는지 지정합니다. URL 예: "include=id", "include=id,name" OpenAPI 예: "id" |
제한 |
문자열 |
쿼리 |
거짓 |
컬렉션 목록을 표시할 때 반환할 최대 리소스 수를 나타냅니다. URL 예: "limit=2" OpenAPI 예: "2" |
필터 |
문자열 |
쿼리 |
거짓 |
컬렉션 목록을 표시할 때 리소스를 반환하기 위해 어떤 필드를 일치시켜야 하는지를 나타냅니다. 지원되는 연산자는 다음과 같습니다.
URL 예: "filter=field%20eq%20%27value%27" OpenAPI 예: "field eq 'value'" |
응답
Status: 200, Returns a JSON array of all matching resources in the collection. If individual fields are specified in the request, the items JSON array will contain the fields requested for each matching resource in the order specified.
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
항목 |
array[다음 중 하나: "appMirror_1.1_get_response_body", array[]] |
참 |
|
메타데이터 |
참 |
응답 예
{
"type": "application/astra-appMirrors",
"version": "1.1",
"items": [
{
"type": "application/astra-appMirror",
"version": "1.1",
"id": "f1c98c2e-6391-42d3-8b21-3e75dac048a3",
"sourceAppID": "efd639b6-fc92-4112-8841-0c0ab7890ae0",
"sourceClusterID": "5789e026-c2e2-41e9-ab00-9766bcfa8951",
"destinationAppID": "cd7b6d91-fc19-4983-a754-9a7bb4d80a7b",
"destinationClusterID": "c5d023a9-4061-4a8a-bfbf-3be11ff06226",
"namespaceMapping": [
{
"clusterID": "5789e026-c2e2-41e9-ab00-9766bcfa8951",
"namespaces": [
"ns1-src",
"ns2-src"
]
},
{
"clusterID": "c5d023a9-4061-4a8a-bfbf-3be11ff06226",
"namespaces": [
"ns1-dest",
"ns2-dest"
]
}
],
"state": "established",
"stateTransitions": [
{
"from": "establishing",
"to": [
"established",
"deleting"
]
},
{
"from": "established",
"to": [
"failingOver",
"deleting"
]
},
{
"from": "failingOver",
"to": [
"failedOver",
"deleting"
]
},
{
"from": "failedOver",
"to": [
"establishing",
"deleting"
]
},
{
"from": "deleting",
"to": [
"deleted"
]
}
],
"stateDesired": "established",
"stateAllowed": [
"failedOver",
"deleted"
],
"stateDetails": [
{
"type": "https://astra.netapp.io/stateDetails/1",
"title": "AppMirror relationship established",
"detail": "The AppMirror relationship has been successfully established."
}
],
"healthState": "normal",
"healthStateTransitions": [
{
"from": "indeterminate",
"to": [
"normal",
"warning",
"critical"
]
},
{
"from": "normal",
"to": [
"indeterminate",
"warning",
"critical"
]
},
{
"from": "warning",
"to": [
"indeterminate",
"normal",
"critical"
]
},
{
"from": "critical",
"to": [
"indeterminate",
"normal",
"warning"
]
}
],
"healthStateDetails": [
{
"type": "https://astra.netapp.io/stateDetails/2",
"title": "SnapMirror syncing successfully",
"detail": "All SnapMirror relationships are synchronizing as expected."
}
],
"metadata": {
"labels": [],
"creationTimestamp": "2020-08-06T12:24:52.256624Z",
"modificationTimestamp": "2020-08-06T12:24:52.256624Z",
"createdBy": "11c0cfa1-4f27-4ef7-a21c-cb452fc5c9aa"
}
},
{
"type": "application/astra-appMirror",
"version": "1.1",
"id": "114633f0-5b59-4bd7-adce-a9ba4423a1bd",
"sourceAppID": "eaf8b854-211d-460a-ac18-d093d8e2ac70",
"sourceClusterID": "fcb27b51-ebb7-40ca-b8f1-1d23ebd06889",
"destinationAppID": "e829c5e0-750f-44ad-a684-aee85be2c2bb",
"destinationClusterID": "fcb27b51-ebb7-40ca-b8f1-1d23ebd06889",
"namespaceMapping": [
{
"clusterID": "fcb27b51-ebb7-40ca-b8f1-1d23ebd06889",
"namespaces": [
"app-namespace"
],
"role": "source"
},
{
"clusterID": "fcb27b51-ebb7-40ca-b8f1-1d23ebd06889",
"namespaces": [
"destination-app-namespace"
],
"role": "destination"
}
],
"storageClasses": [
{
"storageClassName": "destination-sc",
"clusterID": "fcb27b51-ebb7-40ca-b8f1-1d23ebd06889",
"role": "destination"
}
],
"state": "established",
"stateTransitions": [
{
"from": "establishing",
"to": [
"established",
"deleting"
]
},
{
"from": "established",
"to": [
"failingOver",
"deleting"
]
},
{
"from": "failingOver",
"to": [
"failedOver",
"deleting"
]
},
{
"from": "failedOver",
"to": [
"establishing",
"deleting"
]
}
],
"stateDesired": "established",
"stateAllowed": [
"failedOver",
"deleted"
],
"stateDetails": [],
"transferState": "idle",
"transferStateTransitions": [
{
"from": "transferring",
"to": [
"idle"
]
},
{
"from": "idle",
"to": [
"transferring"
]
}
],
"transferStateDetails": [
{
"type": "https://astra.netapp.io/stateDetails/24",
"title": "Snapshot replication completed",
"detail": "A snapshot was replicated to the destination.",
"additionalDetails": {
"completionTime": "2023-07-06T22:46:39Z",
"snapshotID": "ae60820d-e963-4eab-8bb3-9159e9f012f0",
"startTime": "2023-07-06T22:46:08Z"
}
}
],
"healthState": "normal",
"healthStateTransitions": [],
"healthStateDetails": [
{
"type": "https://astra.netapp.io/stateDetails/24",
"title": "Snapshot replication completed",
"detail": "A snapshot was replicated to the destination.",
"additionalDetails": {
"completionTime": "2023-07-06T22:46:39Z",
"snapshotID": "ae60820d-e963-4eab-8bb3-9159e9f012f0",
"startTime": "2023-07-06T22:46:08Z"
}
}
],
"metadata": {
"labels": [],
"creationTimestamp": "2023-07-06T22:45:24Z",
"modificationTimestamp": "2023-07-06T22:45:24Z",
"createdBy": "cc420827-f968-4da7-9e72-df8a0fd52f94"
}
}
],
"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
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
유형 |
문자열 |
참 |
|
제목 |
문자열 |
참 |
|
세부 정보 |
문자열 |
참 |
|
상태 |
문자열 |
참 |
|
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
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
유형 |
문자열 |
참 |
|
제목 |
문자열 |
참 |
|
세부 정보 |
문자열 |
참 |
|
상태 |
문자열 |
참 |
|
correlationID |
문자열 |
거짓 |
|
invalidParams |
배열["invalidParams"] |
거짓 |
유효하지 않은 쿼리 매개변수 목록 |
응답 예
{
"type": "https://astra.netapp.io/problems/5",
"title": "Invalid query parameters",
"detail": "The supplied query parameters are invalid.",
"status": "400"
}
응답
Status: 403, Forbidden
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
유형 |
문자열 |
참 |
|
제목 |
문자열 |
참 |
|
세부 정보 |
문자열 |
참 |
|
상태 |
문자열 |
참 |
|
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
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
유형 |
문자열 |
참 |
|
제목 |
문자열 |
참 |
|
세부 정보 |
문자열 |
참 |
|
상태 |
문자열 |
참 |
|
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"
}
정의
정의를 참조하세요
namespaceMapping
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
clusterID |
문자열 |
거짓 |
네임스페이스가 지정된 클러스터의 식별자입니다. 정의된 값은 다음과 같습니다.
|
네임스페이스 |
배열[string] |
거짓 |
클러스터에서 사용할 네임스페이스 목록입니다. 인덱스를 기준으로 다른 클러스터 네임스페이스 목록과 연관되어 있습니다. 정의된 값은 다음과 같습니다.
|
역할 |
문자열 |
거짓 |
이 네임스페이스 정의의 초기 역할입니다. 이 매개변수는 동일 클러스터 복제 구성이 사용되는 경우를 제외하고는 선택 사항입니다. 정의된 값은 다음과 같습니다.
|
storageClasses
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
clusterID |
문자열 |
거짓 |
스토리지 클래스가 지정된 클러스터의 식별자입니다. 정의된 값은 다음과 같습니다.
|
storageClassName |
문자열 |
거짓 |
"clusterID"에 지정된 클러스터에 PVC를 생성할 때 사용할 스토리지 클래스의 이름입니다. 정의된 값은 다음과 같습니다.
|
역할 |
문자열 |
거짓 |
이 스토리지 클래스 정의의 초기 역할입니다. 이 매개변수는 동일 클러스터 복제 구성을 사용하는 경우를 제외하고는 선택 사항입니다. 정의된 값은 다음과 같습니다.
|
type_astra_stateTransition
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
에서 |
문자열 |
참 |
|
~ |
배열[string] |
참 |
additionalDetails
type_astra_stateDetail
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
유형 |
문자열 |
참 |
|
제목 |
문자열 |
참 |
|
세부 정보 |
문자열 |
참 |
|
additionalDetails |
거짓 |
type_astra_label
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
이름 |
문자열 |
참 |
|
값 |
문자열 |
참 |
type_astra_메타데이터_업데이트
리소스와 연결된 클라이언트 및 서비스 지정 메타데이터입니다. 정의된 값은 다음과 같습니다.
-
Astra 메타데이터 스키마를 준수합니다. 생성 시 지정하지 않으면 레이블 없이 메타데이터 객체가 생성됩니다. 업데이트 시 지정하지 않으면 메타데이터 객체의 레이블인 creationTimestamp와 createdBy는 수정 없이 유지됩니다.
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
라벨 |
거짓 |
||
CreationTimestamp 를 클릭합니다 |
문자열 |
거짓 |
|
modificationTimestamp |
문자열 |
거짓 |
|
생성 시 |
문자열 |
거짓 |
|
modifiedBy |
문자열 |
거짓 |
appMirror_1.1_get_response_body
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
유형 |
문자열 |
참 |
리소스의 미디어 유형입니다. 정의된 값은 다음과 같습니다.
|
버전 |
문자열 |
참 |
리소스 버전입니다. 정의된 값은 다음과 같습니다.
|
ID입니다 |
문자열 |
참 |
리소스의 전역 고유 식별자입니다. 정의된 값은 다음과 같습니다.
|
sourceAppID |
문자열 |
참 |
소스 애플리케이션의 식별자입니다. sourceAppID를 destinationAppID로 교체할 때만 업데이트됩니다. 정의된 값은 다음과 같습니다.
|
sourceClusterID |
문자열 |
참 |
소스 애플리케이션을 호스팅하는 관리형 클러스터의 식별자입니다. 이 필드는 읽기 전용이며 소스 애플리케이션의 호스트 클러스터를 기준으로 결정됩니다. 업데이트 시 제공되는 경우 소스 애플리케이션의 클러스터 ID와 일치해야 하므로 sourceAppID를 destinationAppID로 교체할 때만 변경될 수 있습니다. 정의된 값은 다음과 같습니다.
|
타겟AppID |
문자열 |
거짓 |
타겟 애플리케이션의 식별자입니다. 관계 초기화 과정에서 새 앱 ID가 생성되므로 생성 시에는 제공할 수 없습니다. sourceAppID를 destinationAppID로 교체할 때만 업데이트할 수 있습니다. 정의된 값은 다음과 같습니다.
|
타겟클러스터ID |
문자열 |
참 |
타겟 애플리케이션을 호스팅할 관리형 클러스터의 식별자입니다. 타겟 애플리케이션이 생성될 클러스터를 결정하므로 생성 시 반드시 제공해야 합니다. 업데이트 시 제공하는 경우 타겟 애플리케이션의 클러스터 ID와 일치해야 하므로 sourceAppID와 destinationAppID를 교환할 때만 변경할 수 있습니다. 정의된 값은 다음과 같습니다.
|
namespaceMapping |
거짓 |
소스 애플리케이션의 네임스페이스에 해당하는 타겟 애플리케이션을 생성할 때 사용할 네임스페이스입니다. 각 JSON 객체에는 "clusterID" 및 "namespaces" 필드가 포함되어 있으며, 여기서 "clusterID" 값은 소스 또는 타겟 클러스터의 JSON 문자열 ID이고 "namespaces" 값은 JSON 문자열의 JSON 배열입니다. 각 클러스터에 대해 정확히 하나의 JSON 객체가 있어야 하며 네임스페이스는 인덱스별로 상호 연결됩니다. 제공되지 않은 경우 소스 클러스터의 동일한 네임스페이스가 타겟 클러스터에서 사용됩니다. 정의된 값은 다음과 같습니다.
|
|
storageClasses |
배열["storageClasses"] |
거짓 |
새로운 영구 볼륨 클레임(PVC)을 생성할 때 타겟 클러스터에서 사용할 스토리지 클래스입니다. 각 JSON 객체에는 "clusterID" 및 "storageClassName" 필드가 포함되어 있으며, "clusterID" 값은 소스 또는 타겟 클러스터의 JSON 문자열 ID이고, "storageClassName"은 해당 클러스터에서 PVC를 생성할 때 사용할 스토리지 클래스입니다. 제공되지 않거나 클러스터에 대한 값이 없는 경우 해당 클러스터에 기본 스토리지 클래스가 사용됩니다. 정의된 값은 다음과 같습니다.
|
상태 |
문자열 |
참 |
관계의 상태입니다. 정의된 값은 다음과 같습니다.
|
stateTransitions |
거짓 |
허용되는 상태 전환. 이 리소스에 대해 가능한 상태 전환은 다음과 같습니다.
|
|
stateDesired |
문자열 |
참 |
관계의 원하는 상태입니다. 생성 시 유효한 값은 "established"뿐입니다. 정의된 값은 다음과 같습니다.
|
stateAllowed |
배열[string] |
거짓 |
주어진 상태에서 요청할 수 있는 상태들입니다. 정의된 각 상태에서 다음과 같은 상태들을 요청할 수 있습니다:
|
stateDetails |
참 |
현재 상태에 도달한 이유를 포함하여 현재 상태에 대한 추가 정보입니다. 정보가 없는 경우 이 배열은 비어 있습니다. 정의된 값은 다음과 같습니다.
|
|
transferState |
문자열 |
거짓 |
현재 또는 가장 최근 스냅샷 전송 상태입니다. 정의된 값은 다음과 같습니다.
|
transferStateTransitions |
거짓 |
주어진 정의된 상태에서 허용되는 상태 전환입니다. 이 리소스에 대해 가능한 상태 전환은 다음과 같습니다.
|
|
transferStateDetails |
거짓 |
현재 상태에 도달한 이유를 포함하여 현재 상태에 대한 추가 정보입니다. 정보가 없는 경우 이 배열은 비어 있습니다. 정의된 값은 다음과 같습니다.
|
|
healthState |
문자열 |
참 |
리소스의 상태입니다. 정의된 값은 다음과 같습니다.
|
healthStateTransitions |
참 |
주어진 정의된 상태에서 허용되는 상태 전환입니다. 이 리소스에 대해 가능한 상태 전환은 다음과 같습니다.
|
|
healthStateDetails |
참 |
현재 상태에 도달한 이유를 포함하여 현재 상태에 대한 추가 정보입니다. 정보가 없는 경우 이 배열은 비어 있습니다. 정의된 값은 다음과 같습니다.
|
|
메타데이터 |
참 |
리소스와 연결된 클라이언트 및 서비스 지정 메타데이터입니다. 정의된 값은 다음과 같습니다.
|
type_astra_메타데이터_목록
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
계속 |
문자열 |
거짓 |
|
카운트 |
숫자 |
거짓 |
|
라벨 |
거짓 |
||
CreationTimestamp 를 클릭합니다 |
문자열 |
거짓 |
|
modificationTimestamp |
문자열 |
거짓 |
|
생성 시 |
문자열 |
거짓 |
|
modifiedBy |
문자열 |
거짓 |
invalidParams
| 이름 | 유형 | 필수 요소입니다 | 설명 |
|---|---|---|---|
이름 |
문자열 |
참 |
잘못된 쿼리 매개변수의 이름 |
이유 |
문자열 |
참 |
쿼리 매개변수가 유효하지 않은 이유 |