github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/dms/v2/rabbitmq/instances/results.go (about)

     1  package instances
     2  
     3  import (
     4  	"github.com/chnsz/golangsdk"
     5  	"github.com/chnsz/golangsdk/openstack/common/tags"
     6  	"github.com/chnsz/golangsdk/pagination"
     7  )
     8  
     9  // InstanceCreate response
    10  type InstanceCreate struct {
    11  	InstanceID string `json:"instance_id"`
    12  }
    13  
    14  // CreateResult is a struct that contains all the return parameters of creation
    15  type CreateResult struct {
    16  	golangsdk.Result
    17  }
    18  
    19  // Extract from CreateResult
    20  func (r CreateResult) Extract() (*InstanceCreate, error) {
    21  	var s InstanceCreate
    22  	err := r.Result.ExtractInto(&s)
    23  	return &s, err
    24  }
    25  
    26  // DeleteResult is a struct which contains the result of deletion
    27  type DeleteResult struct {
    28  	golangsdk.ErrResult
    29  }
    30  
    31  type ListResponse struct {
    32  	Instances  []Instance `json:"instances"`
    33  	TotalCount int        `json:"instance_num"`
    34  }
    35  
    36  // Instance response
    37  type Instance struct {
    38  	Name                     string             `json:"name"`
    39  	Description              string             `json:"description"`
    40  	Engine                   string             `json:"engine"`
    41  	EngineVersion            string             `json:"engine_version"`
    42  	Specification            string             `json:"specification"`
    43  	StorageSpace             int                `json:"storage_space"`
    44  	UsedStorageSpace         int                `json:"used_storage_space"`
    45  	ConnectAddress           string             `json:"connect_address"`
    46  	Port                     int                `json:"port"`
    47  	Status                   string             `json:"status"`
    48  	InstanceID               string             `json:"instance_id"`
    49  	ResourceSpecCode         string             `json:"resource_spec_code"`
    50  	BrokerNum                int                `json:"broker_num"`
    51  	ChargingMode             int                `json:"charging_mode"`
    52  	VPCID                    string             `json:"vpc_id"`
    53  	VPCName                  string             `json:"vpc_name"`
    54  	CreatedAt                string             `json:"created_at"`
    55  	UserID                   string             `json:"user_id"`
    56  	UserName                 string             `json:"user_name"`
    57  	OrderID                  string             `json:"order_id"`
    58  	MaintainBegin            string             `json:"maintain_begin"`
    59  	MaintainEnd              string             `json:"maintain_end"`
    60  	EnablePublicIP           bool               `json:"enable_publicip"`
    61  	PublicIPAddress          string             `json:"publicip_address"`
    62  	PublicIPID               string             `json:"publicip_id"`
    63  	ManagementConnectAddress string             `json:"management_connect_address"`
    64  	SslEnable                bool               `json:"ssl_enable"`
    65  	EnterpriseProjectID      string             `json:"enterprise_project_id"`
    66  	IsLogicalVolume          bool               `json:"is_logical_volume"`
    67  	ExtendTimes              int                `json:"extend_times"`
    68  	Type                     string             `json:"type"`
    69  	ProductID                string             `json:"product_id"`
    70  	SecurityGroupID          string             `json:"security_group_id"`
    71  	SecurityGroupName        string             `json:"security_group_name"`
    72  	SubnetID                 string             `json:"subnet_id"`
    73  	AvailableZones           []string           `json:"available_zones"`
    74  	TotalStorageSpace        int                `json:"total_storage_space"`
    75  	StorageResourceID        string             `json:"storage_resource_id"`
    76  	StorageSpecCode          string             `json:"storage_spec_code"`
    77  	Ipv6Enable               bool               `json:"ipv6_enable"`
    78  	Ipv6ConnectAddresses     []string           `json:"ipv6_connect_addresses"`
    79  	ServiceType              string             `json:"service_type"`
    80  	StorageType              string             `json:"storage_type"`
    81  	PublicBoundWidth         int                `json:"public_boundwidth"`
    82  	EnableLogCollect         bool               `json:"enable_log_collection"`
    83  	ConnectorEnalbe          bool               `json:"connector_enable"`
    84  	ConnectorID              string             `json:"connector_id"`
    85  	RestEnable               bool               `json:"rest_enable"`
    86  	RestConnectAddress       string             `json:"rest_connect_address"`
    87  	MessageQueryInstEnable   bool               `json:"message_query_inst_enable"`
    88  	VpcClientPlain           bool               `json:"vpc_client_plain"`
    89  	SupportFeatures          string             `json:"support_features"`
    90  	TraceEnable              bool               `json:"trace_enable"`
    91  	DiskEncrypted            bool               `json:"disk_encrypted"`
    92  	CesVersion               string             `json:"ces_version"`
    93  	AccessUser               string             `json:"access_user"`
    94  	Task                     Task               `json:"task"`
    95  	Tags                     []tags.ResourceTag `json:"tags"`
    96  }
    97  
    98  type Task struct {
    99  	Name      string `json:"name"`
   100  	Status    string `json:"status"`
   101  	CreatedAt string `json:"created_at"`
   102  }
   103  
   104  // UpdateResult is a struct from which can get the result of update method
   105  type UpdateResult struct {
   106  	golangsdk.Result
   107  }
   108  
   109  // GetResult contains the body of getting detailed
   110  type GetResult struct {
   111  	golangsdk.Result
   112  }
   113  
   114  // Extract from GetResult
   115  func (r GetResult) Extract() (*Instance, error) {
   116  	var s Instance
   117  	err := r.Result.ExtractInto(&s)
   118  	return &s, err
   119  }
   120  
   121  type Page struct {
   122  	pagination.SinglePageBase
   123  }
   124  
   125  func (r Page) IsEmpty() (bool, error) {
   126  	data, err := ExtractInstances(r)
   127  	if err != nil {
   128  		return false, err
   129  	}
   130  	return len(data.Instances) == 0, err
   131  }
   132  
   133  // ExtractCloudServers is a function that takes a ListResult and returns the services' information.
   134  func ExtractInstances(r pagination.Page) (ListResponse, error) {
   135  	var s ListResponse
   136  	err := (r.(Page)).ExtractInto(&s)
   137  	return s, err
   138  }
   139  
   140  // ResetPasswordResult is a struct that contains all the return parameters of ResetPassword function
   141  type ResetPasswordResult struct {
   142  	golangsdk.Result
   143  }