pcm-coordinator/api/desc/vm/pcm-vm.api

513 lines
22 KiB
Plaintext

syntax = "v1"
info(
title: "VM core"
desc: "VM core微服务"
author: "wanqgi"
email: "1364512070@qq.com"
)
type (
Rate{
}
Absolute{
MaxServerMeta int64 `json:"max_server_meta,optional"`
MaxPersonality int64 `json:"max_personality,optional"`
TotalServerGroupsUsed int64 `json:"total_server_groups_used,optional"`
MaxImageMeta int64 `json:"max_image_meta,optional"`
MaxPersonalitySize int64 `json:"max_personality_size,optional"`
MaxTotalKeypairs int64 `json:"max_total_keypairs,optional"`
MaxSecurityGroupRules int64 `json:"max_security_group_rules,optional"`
MaxServerGroups int64 `json:"max_server_groups,optional"`
TotalCoresUsed int64 `json:"total_cores_used,optional"`
TotalRAMUsed int64 `json:"total_ram_used,optional"`
TotalInstancesUsed int64 `json:"total_instances_used,optional"`
MaxSecurityGroups int64 `json:"max_security_groups,optional"`
TotalFloatingIpsUsed int64 `json:"total_floating_ips_used,optional"`
MaxTotalCores int64 `json:"max_total_cores,optional"`
MaxServerGroupMembers int64 `json:"max_server_group_members,optional"`
MaxTotalFloatingIps int64 `json:"max_total_floating_ips,optional"`
TotalSecurityGroupsUsed int64 `json:"total_security_groups_used,optional"`
MaxTotalInstances int64 `json:"max_total_instances,optional"`
MaxTotalRAMSize int64 `json:"max_total_ram_size,optional"`
}
Limits{
rate Rate `json:"rate,optional"`
absolute Absolute`json:"absolute,optional"`
}
GetComputeLimitsReq{
Limit int32 `json:"limit,optional"`
OffSet int32 `json:"offSet,optional"`
}
GetComputeLimitsResp{
limits Limits `json:"limits,optional"`
Code int32 `json:"code,omitempty"`
Msg string `json:"msg,omitempty"`
ErrorMsg string `json:"errorMsg,omitempty"`
}
)
type (
VolumeRate{
}
VolumeAbsolute{
TotalSnapshotsUsed int32 `json:"total_snapshots_used,optional"`
MaxTotalBackups int32 `json:"max_total_backups,optional"`
MaxTotalVolumeGigabytes int32 `json:"max_total_volume_gigabytes,optional"`
MaxTotalSnapshots int32 `json:"max_total_snapshots,optional"`
MaxTotalBackupGigabytes int32 `json:"max_total_backup_gigabytes,optional"`
TotalBackupGigabytesUsed int32 `json:"total_backup_gigabytes_used,optional"`
MaxTotalVolumes int32 `json:"max_total_volumes,optional"`
TotalVolumesUsed int32 `json:"total_volumes_used,optional"`
TotalBackupsUsed int32 `json:"total_backups_used,optional"`
TotalGigabytesUsed int32 `json:"total_gigabytes_used,optional"`
}
VolumeLimits{
rate VolumeRate `json:"rate,optional"`
absolute VolumeAbsolute`json:"absolute,optional"`
}
GetVolumeLimitsReq{
Limit int32 `json:"limit,optional"`
OffSet int32 `json:"offSet,optional"`
}
GetVolumeLimitsResp{
limits VolumeLimits `json:"limits,optional"`
Code int32 `json:"code,omitempty"`
Msg string `json:"msg,omitempty"`
ErrorMsg string `json:"errorMsg,omitempty"`
}
)
/****************** servers start*************************/
type (
ListServersReq {
Limit int32 `form:"limit,optional"`
OffSet int32 `form:"offSet,optional"`
}
ListServersResp {
TotalNumber uint32 `json:"totalNumber" copier:"TotalNumber"`
Servers []Servers `json:"servers" copier:"Servers"`
servers_links []Servers_links `json:"serversLinks" copier:"Servers_links"`
Code int32 `json:"code,omitempty"`
Msg string `json:"msg,omitempty"`
ErrorMsg string `json:"errorMsg,omitempty"`
}
Servers {
Id string `json:"id" copier:"Id"`
Name string `json:"name" copier:"Name"`
Links []Links `json:"links " copier:"Links "`
}
Links {
Href string `json:"href " copier:"Href"`
Rel string `json:"rel" copier:"Rel"`
}
Servers_links{
Href string `json:"href " copier:"Href"`
Rel string `json:"rel" copier:"Rel"`
}
)
type(
ListServersDetailedReq{
}
ListServersDetailedResp{
ServersDetailed []ServersDetailed `json:"servers" copier:"ServersDetailed"`
Code int32 `json:"code,omitempty"`
Msg string `json:"msg,omitempty"`
ErrorMsg string `json:"errorMsg,omitempty"`
}
ServersDetailed{
created string `json:"created" copier:"created"`
id string `json:"id" copier:"id"`
key_name string `json:"key_name" copier:"key_name"`
locked bool `json:"locked" copier:"locked"`
name string `json:"name" copier:"name"`
progress uint32 `json:"progress" copier:"progress"`
status string `json:"status" copier:"status"`
tenant_id string `json:"tenant_id" copier:"tenant_id"`
updated string `json:"updated" copier:"updated"`
user_id string `json:"user_id" copier:"user_id"`
}
)
type (
DeleteServerReq{
ServerId string `form:"server_id" copier:"ServerId"`
}
DeleteServerResp{
Code int32 `json:"code,omitempty"`
Msg string `json:"msg,omitempty"`
ErrorMsg string `json:"errorMsg,omitempty"`
}
)
type (
CreateServerReq{
Server Server `json:"server" copier:"Server"`
}
CreateServerResp{
Server ServerResp `json:"server" copier:"Server"`
Code int32 `json:"code,omitempty"`
Msg string `json:"msg,omitempty"`
ErrorMsg string `json:"errorMsg,omitempty"`
}
Server {
Name string `json:"name" copier:"Name"`
FlavorRef string `json:"flavorRef" copier:"FlavorRef"`
ImageRef string `json:"imageRef" copier:"ImageRef"`
Networks []CreNetwork `json:"networks" copier:"Networks"`
//AdminPass string `json:"adminPass" copier:"AdminPass"`
}
CreNetwork {
Uuid string `json:"uuid" copier:"Uuid"`
}
ServerResp {
Id string `json:"id" copier:"Id"`
Links []Links `json:"links" copier:"Links"`
OSDCFDiskConfig string `json:"OS_DCF_diskConfig" copier:"OSDCFDiskConfig"`
SecurityGroups []Security_groups `json:"security_groups" copier:"SecurityGroups"`
AdminPass string `json:"adminPass" copier:"AdminPass"`
}
Security_groups {
Name string `json:"name" copier:"Name"`
}
)
/****************** servers end*************************/
/******************find images end*************************/
type (
ListImagesReq {
Limit int32 `form:"limit,optional"`
// Marker string `json:"marker" copier:"Marker"`
// Name string `json:"name" copier:"Name"`
// Owner string `json:"owner" copier:"Owner"`
// Protected bool `json:"protected" copier:"Protected"`
// Status int32 `json:"status" copier:"Status"`
// Visibility int32 `json:"visibility" copier:"Visibility"`
// Os_hidden bool `json:"os_hidden" copier:"Os_hidden"`
// Member_status string `json:"member_status" copier:"Member_status"`
// Size_max string `json:"size_max" copier:"Size_max"`
// Size_min string `json:"size_min" copier:"Size_min"`
// Created_at string `json:"created_at" copier:"Created_at"`
// Updated_at string `json:"updated_at" copier:"Updated_at"`
// Sort_dir string `json:"sort_dir" copier:"Sort_dir"`
// Sort_key string `json:"sort_key" copier:"Sort_key"`
// Sort string `json:"sort" copier:"Sort"`
}
ListImagesResp {
First string `json:"first" copier:"First"`
Next string `json:"next" copier:"Next"`
Schema string `json:"schema" copier:"Schema"`
Images []Images `json:"images" copier:"Images"`
Code int32 `json:"code,omitempty"`
Msg string `json:"msg,omitempty"`
ErrorMsg string `json:"errorMsg,omitempty"`
}
Images {
Status string `json:"status" copier:"Status"`
Name string `json:"name" copier:"Name"`
Tags []Tags `json:"tags" copier:"Tags"`
Container_format string `json:"container_format" copier:"Container_format"`
Created_at string `json:"created_at" copier:"Created_at"`
Disk_format string `json:"disk_format" copier:"Disk_format"`
Updated_at string `json:"updated_at" copier:"Updated_at"`
Visibility string `json:"visibility" copier:"Visibility"`
Self string `json:"self" copier:"Self"`
min_disk uint32 `json:"min_disk" copier:"Min_disk"`
Protected bool `json:"protected" copier:"Protected"`
Id string `json:"id" copier:"Id"`
File string `json:"file" copier:"File"`
Checksum string `json:"checksum" copier:"Checksum"`
Os_hash_algo string `json:"os_hash_algo" copier:"Os_hash_algo"`
Os_hash_value string `json:"os_hash_value" copier:"Os_hash_value"`
Os_hidden string `json:"os_hidden" copier:"Os_hidden"`
Owner string `json:"owner" copier:"Owner"`
Size uint32 `json:"size" copier:"Size"`
Min_ram uint32 `json:"min_ram" copier:"Min_ram"`
Schema string `json:"schema" copier:"Schema"`
Virtual_size int32 `json:"virtual_size" copier:"Virtual_size"`
}
Tags {
}
)
type(
CreateImageReq{
Container_format string `json:"container_format" copier:"Container_format"`
Disk_format string `json:"disk_format" copier:"Disk_format"`
Id string `json:"id" copier:"Id"`
Min_disk string `json:"min_disk" copier:"Min_disk"`
Min_ram string `json:"min_ram" copier:"Min_ram"`
Name string `json:"name" copier:"Name"`
Protected string `json:"protected" copier:"Protected"`
Tags []Tags `json:"tags" copier:"Tags"`
visibility string `json:"visibility" copier:"visibility"`
}
CreateImageResq {
Location string `json:"location" copier:"Location"`
}
)
type(
DeleteImageReq{
ImageId string `form:"image_id" copier:"ImageId"`
}
DeleteImageResp {
Code int32 `json:"code,omitempty"`
Msg string `json:"msg,omitempty"`
ErrorMsg string `json:"errorMsg,omitempty"`
}
)
/******************find images end*************************/
/******************find Networks end*************************/
type(
ListNetworksReq{
}
ListNetworksResp{
Networks []Network `json:"networks" copier:"Networks"`
Code int32 `json:"code,omitempty"`
Msg string `json:"msg,omitempty"`
ErrorMsg string `json:"errorMsg,omitempty"`
}
Network {
AdminStateUp bool `json:"admin_state_up" copier:"AdminStateUp"`
AvailabilityZoneHints []string `json:"availability_zone_hints" copier:"AvailabilityZoneHints"`
AvailabilityZones []string `json:"availability_zones" copier:"AvailabilityZones"`
CreatedAt string `json:"created_at" copier:"CreatedAt"`
DnsDomain string `json:"dns_domain" copier:"DnsDomain"`
Id string `json:"id" copier:"Id"`
Ipv4AddressScope string `json:"ipv4_address_scope" copier:"Ipv4AddressScope"`
Ipv6AddressScope string `json:"ipv6_address_scope" copier:"Ipv6AddressScope"`
L2Adjacency bool `json:"l2_adjacency" copier:"L2Adjacency"`
Mtu int64 `json:"mtu" copier:"Mtu"`
Name string `json:"name" copier:"Name"`
PortSecurityEnabled bool `json:"port_security_enabled" copier:"PortSecurityEnabled"`
ProjectId string `json:"project_id" copier:"ProjectId"`
QosPolicyId string `json:"qos_policy_id" copier:"QosPolicyId"`
RevisionNumber string `json:"revision_number" copier:"RevisionNumber"`
Shared bool `json:"shared" copier:"Shared"`
RouterExternal bool `json:"router_external" copier:"RouterExternal"`
Status string `json:"status" copier:"Status"`
Subnets []string `json:"subnets" copier:"Subnets"`
Tags []string `json:"tags" copier:"Tags"`
TenantId string `json:"tenant_id" copier:"TenantId"`
UpdatedAt string `json:"updated_at" copier:"UpdatedAt"`
VlanTransparent bool `json:"vlan_transparent" copier:"VlanTransparent"`
Description string `json:"description" copier:"Description"`
IsDefault bool `json:"is_default" copier:"IsDefault"`
}
)
type(
DeleteNetworkReq{
NetworkId string `form:"network_id" copier:"NetworkId"`
}
DeleteNetworkResp {
Code int32 `json:"code,omitempty" copier:"Code"`
Msg string `json:"msg,omitempty" copier:"Msg"`
ErrorMsg string `json:"errorMsg,omitempty" copier:"ErrorMsg"`
}
)
type(
CreateNetworkReq{
Network CreateNetwork `json:"network" copier:"Network"`
}
CreateNetworkResp{
Network Network `json:"network" copier:"Network"`
Code int32 `json:"code,omitempty" copier:"Code"`
Msg string `json:"msg,omitempty" copier:"Msg"`
ErrorMsg string `json:"errorMsg,omitempty" copier:"ErrorMsg"`
}
CreateNetwork {
AdminStateUp bool `json:"admin_state_up" copier:"AdminStateUp"`
Name string `json:"name" copier:"Name"`
Shared bool `json:"shared" copier:"Shared"`
}
)
type (
CreateSubnetReq{
Subnet Subnet `json:"subnet" copier:"Subnet"`
}
CreateSubnetResp{
Subnet SubnetResp `json:"subnet" copier:"Subnet"`
Code int32 `json:"code,omitempty" copier:"Code"`
Msg string `json:"msg,omitempty" copier:"Msg"`
ErrorMsg string `json:"errorMsg,omitempty" copier:"ErrorMsg"`
}
Subnet {
NetworkId string `json:"network_id" copier:"NetworkId"`
Name string `json:"name" copier:"Name"`
Cidr string `json:"cidr" copier:"Cidr"`
Ip_version int32 `json:"ip_version" copier:"IpVersion"`
Gateway_ip string `json:"gateway_ip" copier:"GatewayIp"`
Enable_dhcp bool `json:"enable_dhcp" copier:"EnableDhcp"`
Allocation_pools []Allocation_pools `json:"allocation_pools" copier:"AllocationPools"`
Dns_nameservers []string `json:"dns_nameservers" copier:"DnsNameservers"`
Host_routes []string `json:"host_routes" copier:"HostRoutes"`
}
SubnetResp {
Name string `json:"name" copier:"Name"`
Cidr string `json:"cidr" copier:"Cidr"`
Ip_version int32 `json:"ip_version" copier:"Ip_version"`
Gateway_ip string `json:"gateway_ip" copier:"Gateway_ip"`
Enable_dhcp bool `json:"enable_dhcp" copier:"Enable_dhcp"`
Allocation_pools []Allocation_pools `json:"allocation_pools" copier:"Allocation_pools"`
Dns_nameservers []string `json:"dns_nameservers" copier:"Dns_nameservers"`
Host_routes []string `json:"host_routes" copier:"Host_routes"`
Network_id string `json:"network_id" copier:"Network_id"`
Segment_id string `json:"segment_id" copier:"Segment_id"`
Project_id string `json:"project_id" copier:"Project_id"`
Tenant_id string `json:"tenant_id" copier:"Tenant_id"`
Dns_publish_fixed_ip string `json:"Dns_publish_fixed_ip" copier:"Dns_publish_fixed_ip"`
Id string `json:"id" copier:"Id"`
Created_at string `json:"created_at" copier:"Created_at"`
Description string `json:"description" copier:"Description"`
Ipv6_address_mode string `json:"ipv6_address_mode" copier:"Ipv6_address_mode"`
Ipv6_ra_mode string `json:"ipv6_ra_mode" copier:"Ipv6_ra_mode"`
Revision_number string `json:"revision_number" copier:"Revision_number"`
Service_types []string `json:"service_types" copier:"Service_types"`
Subnetpool_id string `json:"subnetpool_id" copier:"Subnetpool_id"`
Tags []string `json:"tags" copier:"Tags"`
Updated_at string `json:"updated_at" copier:"Updated_at"`
}
Allocation_pools{
Start string `json:"start" copier:"Start"`
End string `json:"end" copier:"End"`
}
)
/******************find Networks end*************************/
/******************find ListVolumesDetail start*************************/
type(
ListVolumesDetailReq{
}
ListVolumesDetailResp{
VolumeDetail []VolumeDetail `json:"volumes" copier:"VolumeDetail"`
Code int32 `json:"code,omitempty"`
Msg string `json:"msg,omitempty"`
ErrorMsg string `json:"errorMsg,omitempty"`
}
VolumeDetail{
created_at string `json:"created_at" copier:"created_at"`
id string `json:"id" copier:"id"`
availability_zone string `json:"availability_zone" copier:"availability_zone"`
encrypted bool `json:"encrypted" copier:"encrypted"`
name string `json:"name" copier:"name"`
size int32 `json:"size" copier:"size"`
status string `json:"status" copier:"status"`
tenant_id string `json:"tenant_id" copier:"tenant_id"`
updated string `json:"Updated" copier:"updated"`
user_id string `json:"User_id" copier:"user_id"`
description string `json:"description" copier:"description"`
multiattach bool `json:"multiattach" copier:"multiattach"`
bootable bool `json:"bootable" copier:"bootable"`
volume_type string `json:"volume_type" copier:"volume_type"`
count int32 `json:"count" copier:"Count"`
shared_targets bool `json:"shared_targets" copier:"shared_targets"`
consumes_quota bool `json:"consumes_quota" copier:"consumes_quota"`
}
)
type(
DeleteVolumeReq{
VolumeId string `form:"volume_id" copier:"VolumeId"`
cascade bool `json:"cascade" copier:"cascade"`
force bool `json:"force" copier:"force"`
}
DeleteVolumeResp {
Code int32 `json:"code,omitempty" copier:"Code"`
Msg string `json:"msg,omitempty" copier:"Msg"`
ErrorMsg string `json:"errorMsg,omitempty" copier:"ErrorMsg"`
}
)
type(
CreateVolumeReq{
Volume Volume `json:"volume" copier:"Volume"`
}
CreateVolumeResp {
Volume VolumeResp `json:"volume" copier:"Volume"`
Code int32 `json:"code,omitempty" copier:"Code"`
Msg string `json:"msg,omitempty" copier:"Msg"`
ErrorMsg string `json:"errorMsg,omitempty" copier:"ErrorMsg"`
}
Volume {
Size int32 `json:"size" copier:"Size"`
AvailabilityZone string `json:"availability_zone" copier:"AvailabilityZone"`
Description string `json:"description" copier:"Description"`
Name string `json:"name" copier:"Name"`
VolumeType string `json:"volume_type" copier:"VolumeType"`
}
VolumeResp{
CreatedAt string `json:"created_at" copier:"CreatedAt"`
Id string `json:"id" copier:"Id"`
AvailabilityZone string `json:"availability_zone" copier:"AvailabilityZone"`
Encrypted bool `json:"encrypted" copier:"Encrypted"`
Name string `json:"name" copier:"Name"`
Size int32 `json:"size" copier:"Size"`
Status string `json:"status" copier:"Status"`
TenantId string `json:"tenant_id" copier:"TenantId"`
Updated string `json:"updated" copier:"Updated"`
UserId string `json:"user_id" copier:"UserId"`
Description string `json:"description" copier:"Description"`
Multiattach bool `json:"multiattach" copier:"Multiattach"`
Bootable bool `json:"bootable" copier:"Bootable"`
VolumeType string `json:"volume_type" copier:"VolumeType"`
Count int32 `json:"count" copier:"Count"`
SharedTargets bool `json:"shared_targets" copier:"SharedTargets"`
ConsumesQuota bool `json:"consumes_quota" copier:"ConsumesQuota"`
}
)
/******************find ListVolumesDetail end*************************/
type(
ListFlavorsDetailReq{
}
ListFlavorsDetailResp{
Flavor []Flavors `json:"flavors" copier:"Flavor"`
Code int32 `json:"code,omitempty"`
Msg string `json:"msg,omitempty"`
ErrorMsg string `json:"errorMsg,omitempty"`
}
Flavors{
name string `json:"name" copier:"name"`
description string `json:"description" copier:"description"`
id string `json:"id" copier:"id"`
disk int32 `json:"disk" copier:"disk"`
ephemeral uint32 `json:"ephemeral" copier:"ephemeral"`
original_name string `json:"original_name" copier:"original_name"`
ram int32 `json:"ram" copier:"ram"`
swap int32 `json:"swap" copier:"swap"`
vcpus int32 `json:"vcpus" copier:"vcpus"`
rxtx_factor float32 `json:"rxtx_factor" copier:"rxtx_factor"`
os_flavor_access_is_public bool `json:"os_flavor_access_is_public" copier:"os_flavor_access_is_public"`
}
)