@@ -242,6 +242,20 @@ func CreateWithEngine(client *golangsdk.ServiceClient, ops CreateOpsBuilder, eng
242242 return
243243}
244244
245+ func CreateInstance (client * golangsdk.ServiceClient , ops CreateOpsBuilder ) (r CreateResult ) {
246+ b , err := ops .ToInstanceCreateMap ()
247+ if err != nil {
248+ r .Err = err
249+ return
250+ }
251+
252+ _ , r .Err = client .Post (createInstanceURL (client ), b , & r .Body , & golangsdk.RequestOpts {
253+ OkCodes : []int {200 },
254+ })
255+
256+ return
257+ }
258+
245259// Delete an instance by id
246260func Delete (client * golangsdk.ServiceClient , id string ) (r DeleteResult ) {
247261 _ , r .Err = client .Delete (deleteURL (client , id ), & golangsdk.RequestOpts {
@@ -386,6 +400,29 @@ func Resize(client *golangsdk.ServiceClient, id string, opts ResizeInstanceOpts)
386400 return "" , err
387401}
388402
403+ func ExtendInstance (client * golangsdk.ServiceClient , instanceId string , opts ResizeInstanceOpts ) (string , error ) {
404+ b , err := golangsdk .BuildRequestBody (opts , "" )
405+ if err != nil {
406+ return "" , err
407+ }
408+
409+ var rst golangsdk.Result
410+ _ , err = client .Post (extendInstanceURL (client , instanceId ), b , & rst .Body , & golangsdk.RequestOpts {
411+ MoreHeaders : requestOpts .MoreHeaders ,
412+ })
413+
414+ if err == nil {
415+ var r struct {
416+ JobID string `json:"job_id"`
417+ }
418+ if err = rst .ExtractInto (& r ); err != nil {
419+ return "" , err
420+ }
421+ return r .JobID , nil
422+ }
423+ return "" , err
424+ }
425+
389426// CrossVpcUpdateOpts is the structure required by the UpdateCrossVpc method to update the internal IP address for
390427// cross-VPC access.
391428type CrossVpcUpdateOpts struct {
0 commit comments