2083 lines
66 KiB
YAML
2083 lines
66 KiB
YAML
swagger: '2.0'
|
|
info:
|
|
title: Karbor API
|
|
description: Protect all you hold dear
|
|
version: 0.99.0
|
|
host: api.karbor.nowhere.com
|
|
schemes:
|
|
- https
|
|
basePath: /v1
|
|
produces:
|
|
- application/json
|
|
paths:
|
|
/{project_id}/providers:
|
|
get:
|
|
summary: Providers
|
|
description: |
|
|
The Providers endpoint returns information about the providers
|
|
offered at a given service. All providers need to be configured
|
|
first by the admin.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
tags:
|
|
- Protection Provider
|
|
responses:
|
|
'200':
|
|
description: An array of providers
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Provider'
|
|
examples:
|
|
application/json: {
|
|
"providers": [
|
|
{
|
|
"id": "2220f8b1-975d-4621-a872-fa9afb43cb6c",
|
|
"name": "OS Infra Provider",
|
|
"description": "This provider uses OpenStack's own services (swift, cinder) as storage",
|
|
"extended_info_schema": {
|
|
"options_schema": {
|
|
"OS::Cinder::Volume": {
|
|
"required": [
|
|
"backup_mode"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"backup_mode": {
|
|
"default": "auto",
|
|
"enum": [
|
|
"full",
|
|
"incremental",
|
|
"auto"
|
|
],
|
|
"type": "string",
|
|
"description": "The backup mode.",
|
|
"title": "Backup Mode"
|
|
}
|
|
},
|
|
"title": "Cinder Protection Options"
|
|
}
|
|
},
|
|
"saved_info_schema": {
|
|
"OS::Cinder::Volume": {
|
|
"required": [
|
|
"name"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The name for this backup.",
|
|
"title": "Name"
|
|
}
|
|
},
|
|
"title": "Cinder Protection Saved Info"
|
|
}
|
|
},
|
|
"restore_schema": {
|
|
"OS::Cinder::Volume": {
|
|
"type": "object",
|
|
"properties": {
|
|
"restore_name": {
|
|
"type": "string",
|
|
"description": "The name of the restored volume.",
|
|
"title": "Restore Name"
|
|
}
|
|
},
|
|
"title": "Cinder Protection Restore"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"providers_links": [
|
|
{
|
|
"href": "/v1/{project_id}/providers?limit={limit_num}&marker=cf56bd3e-97a7-4078-b6d5-f36246333fd9",
|
|
"rel": "next"
|
|
}
|
|
]
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
/{project_id}/providers/{provider_id}:
|
|
get:
|
|
summary: Provider
|
|
description: |
|
|
The Providers endpoint returns information about a specific provider.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/provider_idParam'
|
|
tags:
|
|
- Protection Provider
|
|
responses:
|
|
'200':
|
|
description: A protection provider.
|
|
schema:
|
|
$ref: '#/definitions/Provider'
|
|
examples:
|
|
application/json: {
|
|
"provider": {
|
|
"id": "2220f8b1-975d-4621-a872-fa9afb43cb6c",
|
|
"name": "OS Infra Provider",
|
|
"description": "This provider uses OpenStack's own services (swift, cinder) as storage",
|
|
"extended_info_schema": {
|
|
"options_schema": {
|
|
"OS::Cinder::Volume": {
|
|
"required": [
|
|
"backup_mode"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"backup_mode": {
|
|
"default": "auto",
|
|
"enum": [
|
|
"full",
|
|
"incremental",
|
|
"auto"
|
|
],
|
|
"type": "string",
|
|
"description": "The backup mode.",
|
|
"title": "Backup Mode"
|
|
}
|
|
},
|
|
"title": "Cinder Protection Options"
|
|
}
|
|
},
|
|
"saved_info_schema": {
|
|
"OS::Cinder::Volume": {
|
|
"required": [
|
|
"name"
|
|
],
|
|
"type": "object",
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The name for this backup.",
|
|
"title": "Name"
|
|
}
|
|
},
|
|
"title": "Cinder Protection Saved Info"
|
|
}
|
|
},
|
|
"restore_schema": {
|
|
"OS::Cinder::Volume": {
|
|
"type": "object",
|
|
"properties": {
|
|
"restore_name": {
|
|
"type": "string",
|
|
"description": "The name of the restored volume.",
|
|
"title": "Restore Name"
|
|
}
|
|
},
|
|
"title": "Cinder Protection Restore"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
|
|
/{project_id}/providers/{provider_id}/checkpoints:
|
|
get:
|
|
summary: List checkpoints
|
|
description: |
|
|
The checkpoints endpoint returns information about the checkpoints
|
|
offered at a given provider.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/provider_idParam'
|
|
- $ref: '#/parameters/statusFilterParam'
|
|
- $ref: '#/parameters/sortParam'
|
|
- $ref: '#/parameters/limitParam'
|
|
- $ref: '#/parameters/markerParam'
|
|
tags:
|
|
- Protection Provider
|
|
- Checkpoint
|
|
responses:
|
|
'200':
|
|
description: An array of checkpoints
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Checkpoint'
|
|
examples:
|
|
application/json: {
|
|
"checkpoints": [
|
|
{
|
|
"id": "dcb20606-ad71-40a3-80e4-ef0fafdad0c3",
|
|
"project_id": "e486a2f49695423ca9c47e589b948108",
|
|
"status": "available",
|
|
"protection_plan": {
|
|
"id": "3523a271-68aa-42f5-b9ba-56e5200a2ebb",
|
|
"name": "My 3 tier application",
|
|
"provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
|
|
"resources": [
|
|
{
|
|
"id": "99777fdd-8a5b-45ab-ba2c-52420008103f",
|
|
"type": "OS::Glance::Image",
|
|
"name": "cirros-0.3.4-x86_64-uec"
|
|
},
|
|
{
|
|
"id": "cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01",
|
|
"type": "OS::Nova::Server",
|
|
"name": "App server"
|
|
},
|
|
{
|
|
"id": "25336116-f38e-4c22-81ad-e9b7bd71ba51",
|
|
"type": "OS::Cinder::Volume",
|
|
"name": "System volume"
|
|
},
|
|
{
|
|
"id": "33b6bb0b-1157-4e66-8553-1c9e14b1c7ba",
|
|
"type": "OS::Cinder::Volume",
|
|
"name": "Data volume"
|
|
}
|
|
]
|
|
},
|
|
"resource_graph": "[{'0x3': ['OS::Cinder::Volume', '33b6bb0b-1157-4e66-8553-1c9e14b1c7ba', 'Data volume'], '0x2': ['OS::Cinder::Volume', '25336116-f38e-4c22-81ad-e9b7bd71ba51', 'System volume'], '0x1': ['OS::Nova::Server', 'cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01', 'App server'], '0x0': ['OS::Glance::Image', '99777fdd-8a5b-45ab-ba2c-52420008103f', 'cirros-0.3.4-x86_64-uec']}, [['0x1', ['0x0']]]]"
|
|
}
|
|
],
|
|
"checkpoints_links": [
|
|
{
|
|
"href": "/v1/{project_id}/checkpoints?limit={limit_num}&marker=dcb20606-ad71-40a3-80e4-ef0fafdad0c3",
|
|
"rel": "next"
|
|
}
|
|
]
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
post:
|
|
summary: Checkpoints
|
|
description: |
|
|
Execute the protect operation for the specified plan and create a
|
|
checkpoint at a given provider.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/provider_idParam'
|
|
- name: checkpoint
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/CheckpointCreateBody'
|
|
tags:
|
|
- Protection Provider
|
|
- Checkpoint
|
|
responses:
|
|
'200':
|
|
description: Checkpoint created
|
|
schema:
|
|
$ref: '#/definitions/Checkpoint'
|
|
examples:
|
|
application/json: {
|
|
"checkpoint": {
|
|
"id": "dcb20606-ad71-40a3-80e4-ef0fafdad0c3",
|
|
"project_id": "e486a2f49695423ca9c47e589b948108",
|
|
"status": "available",
|
|
"protection_plan": {
|
|
"id": "3523a271-68aa-42f5-b9ba-56e5200a2ebb",
|
|
"name": "My 3 tier application",
|
|
"provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
|
|
"resources": [
|
|
{
|
|
"id": "99777fdd-8a5b-45ab-ba2c-52420008103f",
|
|
"type": "OS::Glance::Image",
|
|
"name": "cirros-0.3.4-x86_64-uec"
|
|
},
|
|
{
|
|
"id": "cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01",
|
|
"type": "OS::Nova::Server",
|
|
"name": "App server"
|
|
},
|
|
{
|
|
"id": "25336116-f38e-4c22-81ad-e9b7bd71ba51",
|
|
"type": "OS::Cinder::Volume",
|
|
"name": "System volume"
|
|
},
|
|
{
|
|
"id": "33b6bb0b-1157-4e66-8553-1c9e14b1c7ba",
|
|
"type": "OS::Cinder::Volume",
|
|
"name": "Data volume"
|
|
}
|
|
]
|
|
},
|
|
"resource_graph": "[{'0x3': ['OS::Cinder::Volume', '33b6bb0b-1157-4e66-8553-1c9e14b1c7ba', 'Data volume'], '0x2': ['OS::Cinder::Volume', '25336116-f38e-4c22-81ad-e9b7bd71ba51', 'System volume'], '0x1': ['OS::Nova::Server', 'cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01', 'App server'], '0x0': ['OS::Glance::Image', '99777fdd-8a5b-45ab-ba2c-52420008103f', 'cirros-0.3.4-x86_64-uec']}, [['0x1', ['0x0']]]]"
|
|
}
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
/{project_id}/providers/{provider_id}/checkpoints/{checkpoint_id}:
|
|
get:
|
|
summary: Get the specified checkpoint
|
|
description: |
|
|
The checkpoints endpoint returns information about the specified
|
|
checkpoint offered at a given provider.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/provider_idParam'
|
|
- $ref: '#/parameters/checkpoint_idParam'
|
|
tags:
|
|
- Protection Provider
|
|
- Checkpoint
|
|
responses:
|
|
'200':
|
|
description: The checkpoint information
|
|
schema:
|
|
$ref: '#/definitions/Checkpoint'
|
|
examples:
|
|
application/json: {
|
|
"checkpoint": {
|
|
"id": "dcb20606-ad71-40a3-80e4-ef0fafdad0c3",
|
|
"project_id": "e486a2f49695423ca9c47e589b948108",
|
|
"status": "available",
|
|
"protection_plan": {
|
|
"id": "3523a271-68aa-42f5-b9ba-56e5200a2ebb",
|
|
"name": "My 3 tier application",
|
|
"provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
|
|
"resources": [
|
|
{
|
|
"id": "99777fdd-8a5b-45ab-ba2c-52420008103f",
|
|
"type": "OS::Glance::Image",
|
|
"name": "cirros-0.3.4-x86_64-uec"
|
|
},
|
|
{
|
|
"id": "cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01",
|
|
"type": "OS::Nova::Server",
|
|
"name": "App server"
|
|
},
|
|
{
|
|
"id": "25336116-f38e-4c22-81ad-e9b7bd71ba51",
|
|
"type": "OS::Cinder::Volume",
|
|
"name": "System volume"
|
|
},
|
|
{
|
|
"id": "33b6bb0b-1157-4e66-8553-1c9e14b1c7ba",
|
|
"type": "OS::Cinder::Volume",
|
|
"name": "Data volume"
|
|
}
|
|
]
|
|
},
|
|
"resource_graph": "[{'0x3': ['OS::Cinder::Volume', '33b6bb0b-1157-4e66-8553-1c9e14b1c7ba', 'Data volume'], '0x2': ['OS::Cinder::Volume', '25336116-f38e-4c22-81ad-e9b7bd71ba51', 'System volume'], '0x1': ['OS::Nova::Server', 'cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01', 'App server'], '0x0': ['OS::Glance::Image', '99777fdd-8a5b-45ab-ba2c-52420008103f', 'cirros-0.3.4-x86_64-uec']}, [['0x1', ['0x0']]]]"
|
|
}
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
delete:
|
|
summary: Delete checkpoint
|
|
description: |
|
|
The checkpoint endpoint deletes a checkpoint
|
|
at a given provider.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/provider_idParam'
|
|
- $ref: '#/parameters/checkpoint_idParam'
|
|
tags:
|
|
- Protection Provider
|
|
- Checkpoint
|
|
responses:
|
|
'200':
|
|
description: Checkpoint deleted
|
|
examples:
|
|
application/json: {}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
|
|
/{project_id}/plans:
|
|
get:
|
|
summary: Get protection plans
|
|
description: |
|
|
The Plans endpoint returns information about the protection plans
|
|
offered for the given project.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/nameFilterParam'
|
|
- $ref: '#/parameters/statusFilterParam'
|
|
- $ref: '#/parameters/sortParam'
|
|
- $ref: '#/parameters/limitParam'
|
|
- $ref: '#/parameters/markerParam'
|
|
tags:
|
|
- Project API
|
|
- Protection Plan
|
|
responses:
|
|
'200':
|
|
description: An array of protection plans
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/ProtectionPlan'
|
|
examples:
|
|
application/json: {
|
|
"plans": [
|
|
{
|
|
"id": "9e5475d2-6425-4986-9136-a4f09642297f",
|
|
"name": "My 3 tier application",
|
|
"resources": [
|
|
{
|
|
"id": "99777fdd-8a5b-45ab-ba2c-52420008103f",
|
|
"type": "OS::Glance::Image",
|
|
"name": "cirros-0.3.4-x86_64-uec"
|
|
},
|
|
{
|
|
"id": "cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01",
|
|
"type": "OS::Nova::Server",
|
|
"name": "App server"
|
|
},
|
|
{
|
|
"id": "25336116-f38e-4c22-81ad-e9b7bd71ba51",
|
|
"type": "OS::Cinder::Volume",
|
|
"name": "System volume",
|
|
"extra_info": {
|
|
"availability_zone": "az1"
|
|
}
|
|
},
|
|
{
|
|
"id": "33b6bb0b-1157-4e66-8553-1c9e14b1c7ba",
|
|
"type": "OS::Cinder::Volume",
|
|
"name": "Data volume",
|
|
"extra_info": {
|
|
"availability_zone": "az1"
|
|
}
|
|
}
|
|
],
|
|
"status": "suspended",
|
|
"provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
|
|
"parameters": {
|
|
"OS::Nova::Server": {
|
|
"backup_name": "os"
|
|
},
|
|
"OS::Nova::Server#cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01": {
|
|
"backup_name": "crash"
|
|
},
|
|
"OS::Cinder::Volume": {
|
|
"backup_name": "os"
|
|
},
|
|
"OS::Cinder::Volume#33b6bb0b-1157-4e66-8553-1c9e14b1c7ba": {
|
|
"backup_name": "crash"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"plans_links": [
|
|
{
|
|
"href": "/v1/{project_id}/plans?limit={limit_num}&marker=9e5475d2-6425-4986-9136-a4f09642297f",
|
|
"rel": "next"
|
|
}
|
|
]
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
post:
|
|
summary: Create a plan
|
|
description: |
|
|
Create a new plan. The operation will create a new revision for
|
|
the plan.
|
|
tags:
|
|
- Project API
|
|
- Protection Plan
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- name: plan
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/ProtectionPlan'
|
|
responses:
|
|
'200':
|
|
description: The new created plan information
|
|
schema:
|
|
$ref: '#/definitions/ProtectionPlan'
|
|
examples:
|
|
application/json: {
|
|
"plan": {
|
|
"id": "9e5475d2-6425-4986-9136-a4f09642297f",
|
|
"name": "My 3 tier application",
|
|
"resources": [
|
|
{
|
|
"id": "99777fdd-8a5b-45ab-ba2c-52420008103f",
|
|
"type": "OS::Glance::Image",
|
|
"name": "cirros-0.3.4-x86_64-uec"
|
|
},
|
|
{
|
|
"id": "cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01",
|
|
"type": "OS::Nova::Server",
|
|
"name": "App server"
|
|
},
|
|
{
|
|
"id": "25336116-f38e-4c22-81ad-e9b7bd71ba51",
|
|
"type": "OS::Cinder::Volume",
|
|
"name": "System volume",
|
|
"extra_info": {
|
|
"availability_zone": "az1"
|
|
}
|
|
},
|
|
{
|
|
"id": "33b6bb0b-1157-4e66-8553-1c9e14b1c7ba",
|
|
"type": "OS::Cinder::Volume",
|
|
"name": "Data volume",
|
|
"extra_info": {
|
|
"availability_zone": "az1"
|
|
}
|
|
}
|
|
],
|
|
"status": "suspended",
|
|
"provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
|
|
"parameters": {
|
|
"OS::Nova::Server": {
|
|
"backup_name": "os"
|
|
},
|
|
"OS::Nova::Server#cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01": {
|
|
"backup_name": "crash"
|
|
},
|
|
"OS::Cinder::Volume": {
|
|
"backup_name": "os"
|
|
},
|
|
"OS::Cinder::Volume#33b6bb0b-1157-4e66-8553-1c9e14b1c7ba": {
|
|
"backup_name": "crash"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
/{project_id}/plans/{plan_id}:
|
|
get:
|
|
summary: Protection Plan
|
|
description: |
|
|
The Plan endpoint returns information about a specific plan.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/plan_idParam'
|
|
tags:
|
|
- Project API
|
|
- Protection Plan
|
|
responses:
|
|
'200':
|
|
description: show the protection plan
|
|
schema:
|
|
$ref: '#/definitions/ProtectionPlan'
|
|
examples:
|
|
application/json: {
|
|
"plan": {
|
|
"id": "9e5475d2-6425-4986-9136-a4f09642297f",
|
|
"name": "My 3 tier application",
|
|
"resources": [
|
|
{
|
|
"id": "99777fdd-8a5b-45ab-ba2c-52420008103f",
|
|
"type": "OS::Glance::Image",
|
|
"name": "cirros-0.3.4-x86_64-uec"
|
|
},
|
|
{
|
|
"id": "cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01",
|
|
"type": "OS::Nova::Server",
|
|
"name": "App server"
|
|
},
|
|
{
|
|
"id": "25336116-f38e-4c22-81ad-e9b7bd71ba51",
|
|
"type": "OS::Cinder::Volume",
|
|
"name": "System volume",
|
|
"extra_info": {
|
|
"availability_zone": "az1"
|
|
}
|
|
},
|
|
{
|
|
"id": "33b6bb0b-1157-4e66-8553-1c9e14b1c7ba",
|
|
"type": "OS::Cinder::Volume",
|
|
"name": "Data volume",
|
|
"extra_info": {
|
|
"availability_zone": "az1"
|
|
}
|
|
}
|
|
],
|
|
"status": "suspended",
|
|
"provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
|
|
"parameters": {
|
|
"OS::Nova::Server": {
|
|
"backup_name": "os"
|
|
},
|
|
"OS::Nova::Server#cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01": {
|
|
"backup_name": "crash"
|
|
},
|
|
"OS::Cinder::Volume": {
|
|
"backup_name": "os"
|
|
},
|
|
"OS::Cinder::Volume#33b6bb0b-1157-4e66-8553-1c9e14b1c7ba": {
|
|
"backup_name": "crash"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
put:
|
|
summary: Protection Plan
|
|
description: |
|
|
Update a specific plan.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/plan_idParam'
|
|
- name: plan
|
|
in: body
|
|
schema:
|
|
$ref: '#/definitions/ProtectionPlanUpdateBody'
|
|
tags:
|
|
- Project API
|
|
- Protection Plan
|
|
responses:
|
|
'200':
|
|
description: update the protection plan
|
|
schema:
|
|
$ref: '#/definitions/ProtectionPlan'
|
|
examples:
|
|
application/json: {
|
|
"plan": {
|
|
"id": "9e5475d2-6425-4986-9136-a4f09642297f",
|
|
"name": "My 1 tier application",
|
|
"resources": [
|
|
{
|
|
"id": "99777fdd-8a5b-45ab-ba2c-52420008103f",
|
|
"type": "OS::Glance::Image",
|
|
"name": "cirros-0.3.4-x86_64-uec"
|
|
},
|
|
{
|
|
"id": "cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01",
|
|
"type": "OS::Nova::Server",
|
|
"name": "App server"
|
|
},
|
|
{
|
|
"id": "25336116-f38e-4c22-81ad-e9b7bd71ba51",
|
|
"type": "OS::Cinder::Volume",
|
|
"name": "System volume",
|
|
"extra_info": {
|
|
"availability_zone": "az1"
|
|
}
|
|
},
|
|
{
|
|
"id": "33b6bb0b-1157-4e66-8553-1c9e14b1c7ba",
|
|
"type": "OS::Cinder::Volume",
|
|
"name": "Data volume",
|
|
"extra_info": {
|
|
"availability_zone": "az1"
|
|
}
|
|
}
|
|
],
|
|
"status": "started",
|
|
"provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
|
|
"parameters": {
|
|
"OS::Nova::Server": {
|
|
"backup_name": "os"
|
|
},
|
|
"OS::Nova::Server#cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01": {
|
|
"backup_name": "crash"
|
|
},
|
|
"OS::Cinder::Volume": {
|
|
"backup_name": "os"
|
|
},
|
|
"OS::Cinder::Volume#33b6bb0b-1157-4e66-8553-1c9e14b1c7ba": {
|
|
"backup_name": "crash"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
delete:
|
|
summary: Protection Plan
|
|
description: |
|
|
The Plan endpoint deletes a specific plan.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/plan_idParam'
|
|
tags:
|
|
- Project API
|
|
- Protection Plan
|
|
responses:
|
|
'200':
|
|
description: Protection plan deleted
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
|
|
/{project_id}/protectables:
|
|
get:
|
|
summary: Protectables
|
|
description: |
|
|
Return all the available protectable types.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
tags:
|
|
- Protectable
|
|
responses:
|
|
'200':
|
|
description: The available protectable types
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/ProtectableType'
|
|
examples:
|
|
application/json: {
|
|
"protectable_type":[
|
|
"OS::Keystone::Project",
|
|
"OS::Cinder::Volume",
|
|
"OS::Cinder::ConsistencyGroup",
|
|
"OS::Glance::Image",
|
|
"OS::Nova::Server"
|
|
]
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
/{project_id}/protectables/{protectable_type}:
|
|
get:
|
|
summary: Protectables
|
|
description: |
|
|
Return the information of a given protectable type.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/protectable_typeParam'
|
|
tags:
|
|
- Protectable
|
|
responses:
|
|
'200':
|
|
description: The protectable information
|
|
schema:
|
|
$ref: '#/definitions/ProtectableInfo'
|
|
examples:
|
|
application/json: {
|
|
"protectable_type": {
|
|
"name": "OS::Nova::Server",
|
|
"dependent_types": [
|
|
"OS::Cinder::Volume",
|
|
"OS::Glance::Image"
|
|
]
|
|
}
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
/{project_id}/protectables/{protectable_type}/instances:
|
|
get:
|
|
summary: Resource Instances
|
|
description: |
|
|
Return all the available instances for the given protectable type.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/protectable_typeParam'
|
|
- $ref: '#/parameters/nameFilterParam'
|
|
- $ref: '#/parameters/sortParam'
|
|
- $ref: '#/parameters/limitParam'
|
|
- $ref: '#/parameters/markerParam'
|
|
- $ref: '#/parameters/parametersParam'
|
|
tags:
|
|
- Protectable
|
|
- Resource
|
|
responses:
|
|
'200':
|
|
description: The available instances for the protectable type.
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Resource'
|
|
examples:
|
|
application/json: {
|
|
"instances": [
|
|
{
|
|
"id": "25336116-f38e-4c22-81ad-e9b7bd71ba51",
|
|
"type": "OS::Cinder::Volume",
|
|
"name": "System volume",
|
|
"extra_info": {
|
|
"availability_zone": "az1"
|
|
}
|
|
},
|
|
{
|
|
"id": "33b6bb0b-1157-4e66-8553-1c9e14b1c7ba",
|
|
"type": "OS::Cinder::Volume",
|
|
"name": "Data volume",
|
|
"extra_info": {
|
|
"availability_zone": "az1"
|
|
}
|
|
}
|
|
],
|
|
"instances_links": [
|
|
{
|
|
"href": "/v1/{project_id}/instances?limit=1&marker=cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01",
|
|
"rel": "next"
|
|
}
|
|
]
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
/{project_id}/protectables/{protectable_type}/instances/{resource_id}:
|
|
get:
|
|
summary: Resource Instance
|
|
description: |
|
|
Return information about a specific instance and its immediate dependencies.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/protectable_typeParam'
|
|
- $ref: '#/parameters/resource_idParam'
|
|
- $ref: '#/parameters/parametersParam'
|
|
tags:
|
|
- Protectable
|
|
- Resource
|
|
responses:
|
|
'200':
|
|
description: Information about the instance.
|
|
schema:
|
|
$ref: '#/definitions/Resource'
|
|
examples:
|
|
application/json: {
|
|
"instance": {
|
|
"id": "cb4ef2ff-10f5-46c9-bce4-cf7a49c65a01",
|
|
"type": "OS::Nova::Server",
|
|
"name": "My VM",
|
|
"dependent_resources": [
|
|
{
|
|
"id": "99777fdd-8a5b-45ab-ba2c-52420008103f",
|
|
"type": "OS::Glance::Image",
|
|
"name": "cirros-0.3.4-x86_64-uec"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
|
|
/{project_id}/scheduled_operations:
|
|
get:
|
|
summary: Scheduled Operations
|
|
description: |
|
|
Scheduled operations are operations that will be executed when
|
|
a specific trigger is triggered.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/nameFilterParam'
|
|
- $ref: '#/parameters/scheduled_operation_typeFilterParam'
|
|
- $ref: '#/parameters/trigger_idFilterParam'
|
|
- $ref: '#/parameters/scheduled_operation_defFilterParam'
|
|
- $ref: '#/parameters/sortParam'
|
|
- $ref: '#/parameters/limitParam'
|
|
- $ref: '#/parameters/markerParam'
|
|
tags:
|
|
- Project API
|
|
- Scheduled Operation
|
|
responses:
|
|
'200':
|
|
description: An array of scheduled operations
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/ScheduledOperation'
|
|
examples:
|
|
application/json: {
|
|
"operations": [
|
|
{
|
|
"scheduled_operation": {
|
|
"id": "1a2c0c3d-f402-4cd8-b5db-82e85cb51fad",
|
|
"name": "My scheduled operation",
|
|
"description": "It will run everyday",
|
|
"operation_type": "protect",
|
|
"trigger_id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa398",
|
|
"operation_definition": {
|
|
"provider_id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa399",
|
|
"plan_id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa398"
|
|
},
|
|
"enabled": 1
|
|
}
|
|
},
|
|
],
|
|
"operations_links": ""
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
post:
|
|
summary: Scheduled operation
|
|
description: |
|
|
Create a new scheduled operation.
|
|
tags:
|
|
- Project API
|
|
- Scheduled Operation
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- name: scheduled_operation
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/ScheduledOperationCreateBody'
|
|
responses:
|
|
'200':
|
|
description: The new scheduled operation
|
|
schema:
|
|
$ref: '#/definitions/ScheduledOperation'
|
|
examples:
|
|
application/json: {
|
|
"scheduled_operation": {
|
|
"id": "1a2c0c3d-f402-4cd8-b5db-82e85cb51fad",
|
|
"name": "My scheduled operation",
|
|
"description": "It will run everyday",
|
|
"operation_type": "protect",
|
|
"trigger_id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa398",
|
|
"operation_definition": {
|
|
"provider_id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa399",
|
|
"plan_id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa398",
|
|
},
|
|
"enabled": 1
|
|
}
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
/{project_id}/scheduled_operations/{scheduled_operation_id}:
|
|
get:
|
|
summary: Scheduled Operation
|
|
description: |
|
|
Get the specified scheduled operation information.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/scheduled_operation_idParam'
|
|
tags:
|
|
- Project API
|
|
- Scheduled Operation
|
|
responses:
|
|
'200':
|
|
description: A scheduled operation
|
|
schema:
|
|
$ref: '#/definitions/ScheduledOperation'
|
|
examples:
|
|
application/json: {
|
|
"scheduled_operation": {
|
|
"id": "1a2c0c3d-f402-4cd8-b5db-82e85cb51fad",
|
|
"name": "My scheduled operation",
|
|
"description": "It will run everyday",
|
|
"operation_type": "protect",
|
|
"trigger_id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa398",
|
|
"operation_definition": {
|
|
"provider_id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa399",
|
|
"plan_id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa398"
|
|
},
|
|
"enabled": 1
|
|
}
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
delete:
|
|
summary: Scheduled operation
|
|
description: |
|
|
Delete a scheduled operation.
|
|
tags:
|
|
- Project API
|
|
- Scheduled Operation
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/scheduled_operation_idParam'
|
|
responses:
|
|
'200':
|
|
description: Scheduled operation deleted
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
|
|
/{project_id}/operation_logs/:
|
|
get:
|
|
summary: Operation log.
|
|
description: |
|
|
Get the operation logs information about different operations(protect, delete, restore)
|
|
in karbor protection service.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/checkpoint_idFilterParam'
|
|
- $ref: '#/parameters/plan_idFilterParam'
|
|
- $ref: '#/parameters/restore_idFilterParam'
|
|
- $ref: '#/parameters/statusFilterParam'
|
|
- $ref: '#/parameters/sortParam'
|
|
- $ref: '#/parameters/limitParam'
|
|
- $ref: '#/parameters/markerParam'
|
|
tags:
|
|
- Project API
|
|
- Scheduled Operation
|
|
responses:
|
|
'200':
|
|
description: An array of operation logs
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/OperationLog'
|
|
examples:
|
|
application/json: {
|
|
"operation_logs": [{
|
|
"status": "deleted",
|
|
"provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
|
|
"restore_id": null,
|
|
"checkpoint_id": "dbc459ff-2ac6-44fa-ba15-89350d7ebd43",
|
|
"error_info": null,
|
|
"ended_at": "2017-07-28T09:02:57.000000",
|
|
"started_at": "2017-07-28T09:02:41.000000",
|
|
"id": "f0aa664b-f385-4618-bc27-9e0116cceea7",
|
|
"extra_info": null,
|
|
"plan_id": "d58ffd3e-f64e-4b67-9bb0-b86d3483e7d0",
|
|
"scheduled_operation_id": null,
|
|
"operation_type": "protect"
|
|
},
|
|
{
|
|
"status": "success",
|
|
"provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
|
|
"restore_id": "7c0d396a-981b-4953-95f5-30382ddaa8bf",
|
|
"checkpoint_id": "dbc459ff-2ac6-44fa-ba15-89350d7ebd43",
|
|
"error_info": null,
|
|
"ended_at": "2017-07-28T08:58:08.000000",
|
|
"started_at": "2017-07-28T08:57:36.000000",
|
|
"id": "8736649d-857e-4637-923c-3bdb35edd74e",
|
|
"extra_info": null,
|
|
"plan_id": null,
|
|
"scheduled_operation_id": null,
|
|
"operation_type": "restore"
|
|
},
|
|
{
|
|
"status": "available",
|
|
"provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
|
|
"restore_id": null,
|
|
"checkpoint_id": "dbc459ff-2ac6-44fa-ba15-89350d7ebd43",
|
|
"error_info": null,
|
|
"ended_at": "2017-07-28T08:43:22.000000",
|
|
"started_at": "2017-07-28T08:42:02.000000",
|
|
"id": "7a16c731-0658-47dd-aa3b-98ee21830e23",
|
|
"extra_info": null,
|
|
"plan_id": "d58ffd3e-f64e-4b67-9bb0-b86d3483e7d0",
|
|
"scheduled_operation_id": null,
|
|
"operation_type": "protect"
|
|
}]
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
/{project_id}/operation_logs/{operation_log_id}:
|
|
get:
|
|
summary: Operation log.
|
|
description: |
|
|
Get the information about an operation log.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/operation_log_idParam'
|
|
tags:
|
|
- Project API
|
|
- Scheduled Operation
|
|
responses:
|
|
'200':
|
|
description: The operation log information.
|
|
schema:
|
|
$ref: '#/definitions/OperationLog'
|
|
examples:
|
|
application/json: {
|
|
"operation_log": {
|
|
"status": "available",
|
|
"provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
|
|
"restore_id": null,
|
|
"checkpoint_id": "dbc459ff-2ac6-44fa-ba15-89350d7ebd43",
|
|
"error_info": null,
|
|
"ended_at": "2017-07-28T08:43:22.000000",
|
|
"started_at": "2017-07-28T08:42:02.000000",
|
|
"id": "7a16c731-0658-47dd-aa3b-98ee21830e23",
|
|
"extra_info": null,
|
|
"plan_id": "d58ffd3e-f64e-4b67-9bb0-b86d3483e7d0",
|
|
"scheduled_operation_id": null,
|
|
"operation_type": "protect"
|
|
}
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
|
|
/{project_id}/restores:
|
|
get:
|
|
summary: Restores
|
|
description: |
|
|
List all restores finished and in progress, triggered by
|
|
a given project.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/statusFilterParam'
|
|
- $ref: '#/parameters/sortParam'
|
|
- $ref: '#/parameters/limitParam'
|
|
- $ref: '#/parameters/markerParam'
|
|
tags:
|
|
- Project API
|
|
- Restore
|
|
responses:
|
|
'200':
|
|
description: An array of restores
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Restore'
|
|
examples:
|
|
application/json: {
|
|
"restores": [
|
|
{
|
|
"id": "22b82aa7-9179-4c71-bba2-caf5c0e68db7",
|
|
"project_id": "e486a2f49695423ca9c47e589b948108",
|
|
"provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
|
|
"checkpoint_id": "dcb20606-ad71-40a3-80e4-ef0fafdad0c3",
|
|
"restore_target": "http://192.168.1.2/identity/",
|
|
"parameters": {
|
|
"OS::Cinder::Volume": {
|
|
},
|
|
"OS::Nova::Server#3f8af6c6-ecea-42bd-b44c-724785bbe5ea": {
|
|
}
|
|
},
|
|
"status": "success"
|
|
}
|
|
],
|
|
"restores_links": [
|
|
{
|
|
"href": "/v1/{project_id}/restores?limit={limit_num}&marker=22b82aa7-9179-4c71-bba2-caf5c0e68db7",
|
|
"rel": "next"
|
|
}
|
|
]
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
post:
|
|
summary: Restores
|
|
description: |
|
|
Start a restore.
|
|
tags:
|
|
- Project API
|
|
- Restore
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- name: restore
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/RestoreCreateBody'
|
|
responses:
|
|
'200':
|
|
description: The new started restore information
|
|
schema:
|
|
$ref: '#/definitions/Restore'
|
|
examples:
|
|
application/json: {
|
|
"restore": {
|
|
"id": "22b82aa7-9179-4c71-bba2-caf5c0e68db7",
|
|
"project_id": "e486a2f49695423ca9c47e589b948108",
|
|
"provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
|
|
"checkpoint_id": "dcb20606-ad71-40a3-80e4-ef0fafdad0c3",
|
|
"restore_target": "http://192.168.1.2/identity/",
|
|
"parameters": {
|
|
"OS::Cinder::Volume": {
|
|
},
|
|
"OS::Nova::Server#3f8af6c6-ecea-42bd-b44c-724785bbe5ea": {
|
|
}
|
|
},
|
|
"status": "success"
|
|
}
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
/{project_id}/restores/{restore_id}:
|
|
get:
|
|
summary: Restores
|
|
description: |
|
|
Get the information of a given restore.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/restore_idParam'
|
|
tags:
|
|
- Project API
|
|
- Restore
|
|
responses:
|
|
'200':
|
|
description: The restore information
|
|
schema:
|
|
$ref: '#/definitions/Restore'
|
|
examples:
|
|
application/json: {
|
|
"restore": {
|
|
"id": "22b82aa7-9179-4c71-bba2-caf5c0e68db7",
|
|
"project_id": "e486a2f49695423ca9c47e589b948108",
|
|
"provider_id": "cf56bd3e-97a7-4078-b6d5-f36246333fd9",
|
|
"checkpoint_id": "dcb20606-ad71-40a3-80e4-ef0fafdad0c3",
|
|
"restore_target": "http://192.168.1.2/identity/",
|
|
"parameters": {
|
|
"OS::Cinder::Volume": {
|
|
},
|
|
"OS::Nova::Server#3f8af6c6-ecea-42bd-b44c-724785bbe5ea": {
|
|
}
|
|
},
|
|
"status": "success"
|
|
}
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
|
|
/{project_id}/triggers:
|
|
get:
|
|
summary: Triggers
|
|
description: |
|
|
List all of the triggers created by a given project.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/nameFilterParam'
|
|
- $ref: '#/parameters/typeFilterParam'
|
|
- $ref: '#/parameters/propertiesFilterParam'
|
|
- $ref: '#/parameters/sortParam'
|
|
- $ref: '#/parameters/limitParam'
|
|
- $ref: '#/parameters/markerParam'
|
|
tags:
|
|
- Project API
|
|
- Trigger
|
|
responses:
|
|
'200':
|
|
description: An array of triggers
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Trigger'
|
|
examples:
|
|
application/json: {
|
|
"triggers": [{
|
|
"trigger_info": {
|
|
"id": "cc1a-4516-9435-0ebb13caa398",
|
|
"name": "My backup trigger",
|
|
"type": "time",
|
|
"properties": {
|
|
"format": "crontab",
|
|
"pattern": "0 9 * * *",
|
|
"start_time": "2015-12-17T08:30:00",
|
|
"end_time": "2016-03-17T08:30:00",
|
|
"window": "60",
|
|
}
|
|
}
|
|
},
|
|
],
|
|
"triggers_links": ""
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
post:
|
|
summary: Trigger
|
|
description: |
|
|
Create a new scheduled operation.
|
|
tags:
|
|
- Project API
|
|
- Trigger
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- name: trigger_info
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/TriggerCreateBody'
|
|
responses:
|
|
'200':
|
|
description: The new created trigger
|
|
schema:
|
|
$ref: '#/definitions/Trigger'
|
|
examples:
|
|
application/json: {
|
|
"trigger_info": {
|
|
"id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa398",
|
|
"name": "My backup trigger",
|
|
"type": "time",
|
|
"properties": {
|
|
"format": "crontab",
|
|
"pattern": "0 9 * * *",
|
|
"start_time": "2015-12-17T08:30:00",
|
|
"end_time": "2016-03-17T08:30:00",
|
|
"window": "60",
|
|
}
|
|
}
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
/{project_id}/triggers/{trigger_id}:
|
|
put:
|
|
summary: Trigger
|
|
description: |
|
|
Update the specified trigger created by a given project.
|
|
tags:
|
|
- Project API
|
|
- Trigger
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/trigger_idParam'
|
|
- name: trigger_info
|
|
in: body
|
|
required: true
|
|
schema:
|
|
$ref: '#/definitions/TriggerUpdateBody'
|
|
responses:
|
|
'200':
|
|
description: The updated trigger
|
|
schema:
|
|
$ref: '#/definitions/Trigger'
|
|
examples:
|
|
application/json: {
|
|
"trigger_info": {
|
|
"id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa398",
|
|
"name": "My backup trigger",
|
|
"type": "time",
|
|
"properties": {
|
|
"format": "crontab",
|
|
"pattern": "0 10 * * *",
|
|
"start_time": "2015-12-17T08:30:00",
|
|
"end_time": "2016-03-17T08:30:00",
|
|
"window": "60",
|
|
}
|
|
}
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
get:
|
|
summary: Triggers
|
|
description: |
|
|
Get the specified trigger created by a given project.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/trigger_idParam'
|
|
tags:
|
|
- Project API
|
|
- Trigger
|
|
responses:
|
|
'200':
|
|
description: The trigger information
|
|
schema:
|
|
$ref: '#/definitions/Trigger'
|
|
examples:
|
|
application/json: {
|
|
"trigger_info": {
|
|
"id": "2a9ce1f3-cc1a-4516-9435-0ebb13caa398",
|
|
"name": "My backup trigger",
|
|
"type": "time",
|
|
"properties": {
|
|
"format": "crontab",
|
|
"pattern": "0 9 * * *",
|
|
"start_time": "2015-12-17T08:30:00",
|
|
"end_time": "2016-03-17T08:30:00",
|
|
"window": "60",
|
|
}
|
|
}
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
delete:
|
|
summary: Trigger
|
|
description: |
|
|
Delete a trigger created by a given project.
|
|
parameters:
|
|
- $ref: '#/parameters/projectParam'
|
|
- $ref: '#/parameters/trigger_idParam'
|
|
tags:
|
|
- Project API
|
|
- Trigger
|
|
responses:
|
|
'200':
|
|
description: Trigger deleted
|
|
'424':
|
|
description: Trigger is being used by scheduled operation
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
examples:
|
|
application/json: {
|
|
"code": 424,
|
|
"message": "Trigger is being used by one or more operations",
|
|
}
|
|
default:
|
|
description: Unexpected error
|
|
schema:
|
|
$ref: '#/definitions/Error'
|
|
|
|
definitions:
|
|
Provider:
|
|
type: object
|
|
required: [ name ]
|
|
properties:
|
|
id:
|
|
readOnly: true
|
|
type: string
|
|
format: UUID
|
|
description: |
|
|
Unique identifier representing a specific protection provider.
|
|
name:
|
|
type: string
|
|
description: Display name of provider.
|
|
description:
|
|
type: string
|
|
description: Description of provider.
|
|
extended_info_schema:
|
|
$ref: '#/definitions/ExtendedInfoSchema'
|
|
|
|
ExtendedInfoSchema:
|
|
type: object
|
|
required: [ options_schema, saved_info_schema, restore_schema ]
|
|
properties:
|
|
options_schema:
|
|
type: object
|
|
description: |
|
|
A mapping between a resource type and a JSON Schema that defines the options for that type.
|
|
saved_info_schema:
|
|
type: object
|
|
description: |
|
|
A mapping between a resource type and a JSON Schema that defines the saved info fields for that type.
|
|
restore_schema:
|
|
type: object
|
|
description: |
|
|
A mapping between a resource type and a JSON Schema that defines the restore options for that type.
|
|
|
|
Checkpoint:
|
|
type: object
|
|
properties:
|
|
id:
|
|
readOnly: true
|
|
type: string
|
|
format: UUID
|
|
description: |
|
|
Unique identifier representing a specific protection provider.
|
|
project_id:
|
|
type: string
|
|
format: UUID
|
|
protection_plan:
|
|
readOnly: true
|
|
$ref: '#/definitions/ProtectionPlan'
|
|
status:
|
|
readOnly: true
|
|
type: string
|
|
|
|
CheckpointCreateBody:
|
|
type: object
|
|
discriminator: plan_id
|
|
required: [ plan_id ]
|
|
properties:
|
|
plan_id:
|
|
readOnly: true
|
|
type: string
|
|
format: UUID
|
|
description: Unique identifier representing a specific protection protection plan.
|
|
extra_info:
|
|
readOnly: true
|
|
type: dict
|
|
description: The extra info parameter of the checkpoint.
|
|
|
|
Resource:
|
|
type: object
|
|
properties:
|
|
id:
|
|
readOnly: true
|
|
type: string
|
|
type:
|
|
$ref: '#/definitions/ProtectableType'
|
|
readOnly: true
|
|
name:
|
|
readOnly: true
|
|
type: string
|
|
|
|
ProtectionPlan:
|
|
type: object
|
|
required: [ name, provider_id, resources ]
|
|
properties:
|
|
id:
|
|
readOnly: true
|
|
type: string
|
|
format: UUID
|
|
description: Unique identifier representing a specific protection protection plan.
|
|
name:
|
|
type: string
|
|
description: Display name of plan.
|
|
description:
|
|
type: string
|
|
description: description about the plan.
|
|
resources:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Resource'
|
|
status:
|
|
type: string
|
|
description: The status of the plan. It's either 'suspended' or 'started'.
|
|
provider_id:
|
|
type: string
|
|
format: UUID
|
|
description: |
|
|
Unique identifier representing a specific protection provider that
|
|
will store checkpoints for this protection plan.
|
|
parameters:
|
|
type: object
|
|
format: dict
|
|
|
|
ProtectionPlanUpdateBody:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: Display name of plan.
|
|
resources:
|
|
type: array
|
|
items:
|
|
$ref: '#/definitions/Resource'
|
|
status:
|
|
type: string
|
|
description: The status of the plan. It's either 'suspended' or 'started'.
|
|
|
|
ProtectableType:
|
|
type: string
|
|
format: Heat Type String
|
|
example: "OS::Nova::Server"
|
|
description: |
|
|
Name of the resource type. When available the types that are defined by Heat
|
|
are used.
|
|
|
|
ProtectableInfo:
|
|
type: object
|
|
properties:
|
|
name:
|
|
$ref: '#/definitions/ProtectableType'
|
|
dependent_types:
|
|
type: array
|
|
description: |
|
|
List of types that might depend on this type. For example an
|
|
"OS::Nova::Server" has "OS::Cinder::Volume" as a dependent type.
|
|
items:
|
|
$ref: '#/definitions/ProtectableType'
|
|
|
|
OperationDefinition:
|
|
type: object
|
|
discriminator: type
|
|
required: [ type ]
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: UUID
|
|
description: |
|
|
Unique identifier representing a specific operation definition.
|
|
type:
|
|
type: string
|
|
description: |
|
|
Type of the operation. This defines what kind of operation this
|
|
object defines the arguments for.
|
|
|
|
ProtectOperationDefinition:
|
|
description: |
|
|
Operation definition for protect operation.
|
|
allOf:
|
|
- $ref: '#/definitions/OperationDefinition'
|
|
- type: object
|
|
properties:
|
|
protection_plan_id:
|
|
type: string
|
|
format: UUID
|
|
parameters:
|
|
type: object
|
|
format: dict
|
|
required: [ protection_plan_id ]
|
|
|
|
DeleteOperationDefinition:
|
|
description: |
|
|
Operation definition for delete operation.
|
|
allOf:
|
|
- $ref: '#/definitions/OperationDefinition'
|
|
- type: object
|
|
properties:
|
|
checkpoint_path:
|
|
type: string
|
|
provider_id:
|
|
type: string
|
|
format: UUID
|
|
required: [ checkpoint_path, provider_id ]
|
|
|
|
StartOperationDefinition:
|
|
description: |
|
|
Operation definition for start operation.
|
|
allOf:
|
|
- $ref: '#/definitions/OperationDefinition'
|
|
- type: object
|
|
properties:
|
|
protection_plan_id:
|
|
type: string
|
|
format: UUID
|
|
required: [ protection_plan_id ]
|
|
|
|
SuspendOperationDefinition:
|
|
description: |
|
|
Operation definition for suspend operation.
|
|
allOf:
|
|
- $ref: '#/definitions/OperationDefinition'
|
|
- type: object
|
|
properties:
|
|
protection_plan_id:
|
|
type: string
|
|
format: UUID
|
|
required: [ protection_plan_id ]
|
|
|
|
RestoreOperationDefinition:
|
|
description: |
|
|
Operation definition for restore operation.
|
|
allOf:
|
|
- $ref: '#/definitions/OperationDefinition'
|
|
- type: object
|
|
properties:
|
|
checkpoint_id:
|
|
type: string
|
|
format: UUID
|
|
provider_id:
|
|
type: string
|
|
format: UUID
|
|
restore_target:
|
|
type: string
|
|
format: UUID
|
|
restore_auth:
|
|
type: object
|
|
format: dict
|
|
parameters:
|
|
type: object
|
|
format: dict
|
|
required: [ checkpoint_id, provider_id ]
|
|
|
|
ScheduledOperation:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: UUID
|
|
description: |
|
|
Unique identifier representing a specific scheduled operation.
|
|
name:
|
|
type: string
|
|
description: Display name of scheduled operation.
|
|
description:
|
|
type: string
|
|
description: Description about the scheduled operation.
|
|
operation_type:
|
|
type: string
|
|
trigger_id:
|
|
type: string
|
|
format: UUID
|
|
operation_definition:
|
|
type: object
|
|
description: |
|
|
Supply parameters for the operation type.
|
|
enabled:
|
|
type: integer
|
|
|
|
ScheduledOperationCreateBody:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: Display name of scheduled operation.
|
|
description:
|
|
type: string
|
|
description: Description about the scheduled operation.
|
|
operation_type:
|
|
type: string
|
|
trigger_id:
|
|
type: string
|
|
format: UUID
|
|
operation_definition:
|
|
type: object
|
|
description: |
|
|
Supply parameters for the operation type.
|
|
|
|
OperationStatus:
|
|
type: object
|
|
properties:
|
|
status:
|
|
type: string
|
|
description:
|
|
type: string
|
|
|
|
OperationLog:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: UUID
|
|
description: |
|
|
Unique identifier representing a specific operation log.
|
|
scheduled_operation_id:
|
|
type: string
|
|
format: UUID
|
|
description: |
|
|
ID of the scheduled operation that defines this log.
|
|
started_at:
|
|
type: string
|
|
description: When was this operation run started in ISO 8601 format.
|
|
ended_at:
|
|
type: string
|
|
description: When was this operation run ended in ISO 8601 format.
|
|
status:
|
|
type: string
|
|
description: Status of the operation could be running, finished, failed.
|
|
error:
|
|
type: string
|
|
description: If the status is 'failed' this will contain the reason for the failure.
|
|
entries:
|
|
type: array
|
|
description: Complete log of the entires for the operation.
|
|
items:
|
|
$ref: '#/definitions/OperationLogEntry'
|
|
|
|
OperationLogEntry:
|
|
type: object
|
|
properties:
|
|
timestamp:
|
|
type: string
|
|
description: When was this log line emitted in ISO 8601 format.
|
|
message:
|
|
type: string
|
|
description: Message containing information about an event.
|
|
|
|
Trigger:
|
|
type: object
|
|
discriminator: type
|
|
required: [ type ]
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: UUID
|
|
description: |
|
|
Unique identifier representing a specific trigger.
|
|
name:
|
|
type: string
|
|
description: Display name of trigger.
|
|
type:
|
|
type: string
|
|
description: |
|
|
Type of the trigger. This defines what kind of trigger this
|
|
object defines the arguments for.
|
|
properties:
|
|
type: object
|
|
description: |
|
|
Trigger properties. Supply parameters for the trigger type.
|
|
|
|
TimeTrigger:
|
|
description: |
|
|
Trigger definition for time trigger.
|
|
allOf:
|
|
- $ref: '#/definitions/Trigger'
|
|
- type: object
|
|
properties:
|
|
property:
|
|
type: object
|
|
required: [ start_time, trigger_window, format ]
|
|
properties:
|
|
format:
|
|
type: string
|
|
enum: [ crontab ]
|
|
start_time:
|
|
type: string
|
|
trigger_window:
|
|
type: string
|
|
format: xsd:duration
|
|
|
|
TriggerCreateBody:
|
|
type: object
|
|
discriminator: type
|
|
required: [ type ]
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: Display name of trigger.
|
|
type:
|
|
type: string
|
|
description: |
|
|
Type of the trigger. This defines what kind of trigger this
|
|
object defines the arguments for.
|
|
properties:
|
|
type: object
|
|
description: |
|
|
Trigger properties. Supply parameters for the trigger type.
|
|
|
|
TriggerUpdateBody:
|
|
type: object
|
|
discriminator: type
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: Display name of trigger.
|
|
properties:
|
|
type: object
|
|
description: |
|
|
Trigger properties. Supply parameters for the trigger type.
|
|
|
|
Restore:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
format: UUID
|
|
description: |
|
|
Unique identifier representing a specific restore.
|
|
project_id:
|
|
type: string
|
|
format: UUID
|
|
provider_id:
|
|
type: string
|
|
format: UUID
|
|
checkpoint_id:
|
|
type: string
|
|
format: UUID
|
|
restore_target:
|
|
type: string
|
|
format: url
|
|
parameters:
|
|
type: object
|
|
format: dict
|
|
status:
|
|
type: string
|
|
|
|
RestoreCreateBody:
|
|
type: object
|
|
required: [ provider_id, checkpoint_id, restore_target, parameters ]
|
|
properties:
|
|
provider_id:
|
|
type: string
|
|
format: UUID
|
|
checkpoint_id:
|
|
type: string
|
|
format: UUID
|
|
restore_target:
|
|
type: string
|
|
format: url
|
|
restore_auth:
|
|
type: object
|
|
format: dict
|
|
parameters:
|
|
type: object
|
|
format: dict
|
|
properties:
|
|
username:
|
|
type: string
|
|
password:
|
|
type: string
|
|
|
|
Error:
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: integer
|
|
format: int32
|
|
message:
|
|
type: string
|
|
fields:
|
|
type: string
|
|
|
|
parameters:
|
|
projectParam:
|
|
name: project_id
|
|
in: path
|
|
description: |
|
|
Specifies the ID of the project that owns this entity
|
|
required: true
|
|
type: string
|
|
format: uuid
|
|
|
|
sortParam:
|
|
name: sort
|
|
in: query
|
|
description: |
|
|
Comma-separated list of sort keys and optional sort directions in the
|
|
form of `<key>[:<direction>]`. A valid direction is asc
|
|
(ascending) or desc (descending).
|
|
required: false
|
|
type: string
|
|
|
|
limitParam:
|
|
name: limit
|
|
in: query
|
|
description: |
|
|
Requests a specified page size of returned items from the query.
|
|
Returns a number of items up to the specified limit value.
|
|
Use the limit parameter to make an initial limited request and use the
|
|
ID of the last-seen item from the response as the marker parameter value
|
|
in a subsequent limited request.
|
|
type: integer
|
|
format: int64
|
|
|
|
markerParam:
|
|
name: marker
|
|
in: query
|
|
description: |
|
|
Specifies the ID of the last-seen item. Use the limit parameter to make
|
|
an initial limited request and use the ID of the last-seen item from the
|
|
response as the marker parameter value in a subsequent limited request.
|
|
type: string
|
|
|
|
parametersParam:
|
|
name: parameters
|
|
in: query
|
|
description: |
|
|
The parameters field for protectable instances query.
|
|
type: string
|
|
provider_idParam:
|
|
name: provider_id
|
|
in: path
|
|
description: id of the provider.
|
|
required: true
|
|
type: string
|
|
format: uuid
|
|
|
|
plan_idParam:
|
|
name: plan_id
|
|
in: path
|
|
description: id of the plan.
|
|
required: true
|
|
type: string
|
|
format: uuid
|
|
|
|
checkpoint_idParam:
|
|
name: checkpoint_id
|
|
in: path
|
|
description: id of the checkpoint.
|
|
required: true
|
|
type: string
|
|
format: uuid
|
|
|
|
trigger_idParam:
|
|
name: trigger_id
|
|
in: path
|
|
description: id of the trigger.
|
|
required: true
|
|
type: string
|
|
format: uuid
|
|
|
|
resource_idParam:
|
|
name: resource_id
|
|
in: path
|
|
description: id of the resource.
|
|
required: true
|
|
type: string
|
|
format: uuid
|
|
|
|
restore_idParam:
|
|
name: restore_id
|
|
in: path
|
|
description: id of the restore.
|
|
required: true
|
|
type: string
|
|
format: uuid
|
|
|
|
scheduled_operation_idParam:
|
|
name: scheduled_operation_id
|
|
in: path
|
|
description: id of the scheduled operation.
|
|
required: true
|
|
type: string
|
|
format: uuid
|
|
|
|
operation_log_idParam:
|
|
name: operation_log_id
|
|
in: path
|
|
description: id of the operation log.
|
|
required: true
|
|
type: string
|
|
format: uuid
|
|
|
|
nameFilterParam:
|
|
name: name
|
|
in: query
|
|
description: name of the entity. Could be a regex pattern.
|
|
required: false
|
|
type: string
|
|
format: regex
|
|
|
|
typeFilterParam:
|
|
name: type
|
|
in: query
|
|
description: type of the entity.
|
|
required: false
|
|
type: string
|
|
|
|
statusFilterParam:
|
|
name: status
|
|
in: query
|
|
description: status of the entity.
|
|
required: false
|
|
type: string
|
|
|
|
propertiesFilterParam:
|
|
name: properties
|
|
in: query
|
|
description: property of the entity. Could be a regex pattern.
|
|
required: false
|
|
type: string
|
|
format: regex
|
|
|
|
scheduled_operation_typeFilterParam:
|
|
name: operation_type
|
|
in: query
|
|
description: type of the scheduled operation.
|
|
required: false
|
|
type: string
|
|
format: regex
|
|
|
|
scheduled_operation_defFilterParam:
|
|
name: operation_definition
|
|
in: query
|
|
description: definition of the scheduled operation. Could be a regex pattern.
|
|
required: false
|
|
type: string
|
|
format: regex
|
|
|
|
trigger_idFilterParam:
|
|
name: trigger_id
|
|
in: query
|
|
description: id of the trigger.
|
|
required: false
|
|
type: string
|
|
format: uuid
|
|
|
|
protectable_typeParam:
|
|
name: protectable_type
|
|
in: path
|
|
description: the resource type.
|
|
required: true
|
|
type: string
|
|
format: Heat Type String
|