Updated on 2024-08-08 GMT+08:00

Modifying Instance Information

Function

This API is used to modify the name and description of an instance.

Calling Method

For details, see Calling APIs.

URI

PUT /v2/{project_id}/instances/{instance_id}

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID. For details, see Obtaining a Project ID.

instance_id

Yes

String

Instance ID.

Request Parameters

Table 2 Request body parameters

Parameter

Mandatory

Type

Description

name

No

String

Instance name.

An instance name consists of 4 to 64 characters including letters, digits, and hyphens (-) and must start with a letter.

description

No

String

Description of an instance.

The description supports up to 1024 characters.

NOTE:

The backslash () and quotation mark (") are special characters for JSON messages. When using these characters in a parameter value, add the escape character () before the characters, for example, \ and ".

maintain_begin

No

String

Time at which the maintenance window starts. The format is HH:mm:ss.

  • The start time and end time of the maintenance time window must indicate the time segment of a supported maintenance time window.

  • The start time must be set to 22:00:00, 02:00:00, 06:00:00, 10:00:00, 14:00:00, or 18:00:00.

  • The start time and end time must be set in pairs. If the start time is left blank, the end time must also be left blank. In this case, the system automatically sets the start time to 02:00:00.

maintain_end

No

String

Time at which the maintenance window ends. The format is HH:mm:ss.

  • The start time and end time of the maintenance time window must indicate the time segment of a supported maintenance time window.

  • The end time is four hours later than the start time. For example, if the start time is 22:00:00, the end time is 02:00:00.

  • The start time and end time must be set in pairs. If the end time is left blank, the start time is also left blank. In this case, the system automatically sets the end time to 06:00:00.

security_group_id

No

String

Security group ID.

To obtain it, log in to the VPC console and view the security group ID on the security group details page.

enable_publicip

No

Boolean

Whether to enable public access for the RabbitMQ instance.

  • true: enable

  • false: disable

publicip_id

No

String

ID of the EIP bound to a RabbitMQ instance.

This parameter is mandatory if public access is enabled (that is, enable_publicip is set to true).

Method: Log in to the Network Console, go to the EIPs page, click the specified EIP, and find the ID in the Basic Information area.

enterprise_project_id

No

String

Enterprise project.

enable_acl

No

Boolean

ACL (only for RabbitMQ AMQP).

Response Parameters

None

Example Requests

  • Modifying the name and description of an instance.

    PUT https://{endpoint}/v2/{project_id}/instances/{instance_id}
    
    {
      "name" : "rabbitmq-01",
      "description" : "instance description"
    }
  • Modifying the name, description, and maintenance time window of an instance.

    PUT https://{endpoint}/v2/{project_id}/instances/{instance_id}
    
    {
      "name" : "rabbitmq-01",
      "description" : "instance description",
      "maintain_begin" : "02:00:00",
      "maintain_end" : "06:00:00"
    }
  • Enabling public network access

    PUT https://{endpoint}/v2/{project_id}/instances/{instance_id}
    
    {
      "enable_publicip" : true,
      "publicip_id" : "32685c2b-xxxx-xxxx-86c6-a1902359xxxx"
    }

Example Responses

None

SDK Sample Code

The SDK sample code is as follows.

  • Modifying the name and description of an instance.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    package com.huaweicloud.sdk.test;
    
    import com.huaweicloud.sdk.core.auth.ICredential;
    import com.huaweicloud.sdk.core.auth.BasicCredentials;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.rabbitmq.v2.region.RabbitMQRegion;
    import com.huaweicloud.sdk.rabbitmq.v2.*;
    import com.huaweicloud.sdk.rabbitmq.v2.model.*;
    
    
    public class UpdateInstanceSolution {
    
        public static void main(String[] args) {
            // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
            // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
            String ak = System.getenv("CLOUD_SDK_AK");
            String sk = System.getenv("CLOUD_SDK_SK");
            String projectId = "{project_id}";
    
            ICredential auth = new BasicCredentials()
                    .withProjectId(projectId)
                    .withAk(ak)
                    .withSk(sk);
    
            RabbitMQClient client = RabbitMQClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(RabbitMQRegion.valueOf("<YOUR REGION>"))
                    .build();
            UpdateInstanceRequest request = new UpdateInstanceRequest();
            request.withInstanceId("{instance_id}");
            UpdateInstanceReq body = new UpdateInstanceReq();
            body.withDescription("instance description");
            body.withName("rabbitmq-01");
            request.withBody(body);
            try {
                UpdateInstanceResponse response = client.updateInstance(request);
                System.out.println(response.toString());
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getRequestId());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }
    
  • Modifying the name, description, and maintenance time window of an instance.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    package com.huaweicloud.sdk.test;
    
    import com.huaweicloud.sdk.core.auth.ICredential;
    import com.huaweicloud.sdk.core.auth.BasicCredentials;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.rabbitmq.v2.region.RabbitMQRegion;
    import com.huaweicloud.sdk.rabbitmq.v2.*;
    import com.huaweicloud.sdk.rabbitmq.v2.model.*;
    
    
    public class UpdateInstanceSolution {
    
        public static void main(String[] args) {
            // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
            // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
            String ak = System.getenv("CLOUD_SDK_AK");
            String sk = System.getenv("CLOUD_SDK_SK");
            String projectId = "{project_id}";
    
            ICredential auth = new BasicCredentials()
                    .withProjectId(projectId)
                    .withAk(ak)
                    .withSk(sk);
    
            RabbitMQClient client = RabbitMQClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(RabbitMQRegion.valueOf("<YOUR REGION>"))
                    .build();
            UpdateInstanceRequest request = new UpdateInstanceRequest();
            request.withInstanceId("{instance_id}");
            UpdateInstanceReq body = new UpdateInstanceReq();
            body.withMaintainEnd("06:00:00");
            body.withMaintainBegin("02:00:00");
            body.withDescription("instance description");
            body.withName("rabbitmq-01");
            request.withBody(body);
            try {
                UpdateInstanceResponse response = client.updateInstance(request);
                System.out.println(response.toString());
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getRequestId());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }
    
  • Enabling public network access

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    package com.huaweicloud.sdk.test;
    
    import com.huaweicloud.sdk.core.auth.ICredential;
    import com.huaweicloud.sdk.core.auth.BasicCredentials;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.rabbitmq.v2.region.RabbitMQRegion;
    import com.huaweicloud.sdk.rabbitmq.v2.*;
    import com.huaweicloud.sdk.rabbitmq.v2.model.*;
    
    
    public class UpdateInstanceSolution {
    
        public static void main(String[] args) {
            // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
            // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
            String ak = System.getenv("CLOUD_SDK_AK");
            String sk = System.getenv("CLOUD_SDK_SK");
            String projectId = "{project_id}";
    
            ICredential auth = new BasicCredentials()
                    .withProjectId(projectId)
                    .withAk(ak)
                    .withSk(sk);
    
            RabbitMQClient client = RabbitMQClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(RabbitMQRegion.valueOf("<YOUR REGION>"))
                    .build();
            UpdateInstanceRequest request = new UpdateInstanceRequest();
            request.withInstanceId("{instance_id}");
            UpdateInstanceReq body = new UpdateInstanceReq();
            body.withPublicipId("32685c2b-xxxx-xxxx-86c6-a1902359xxxx");
            body.withEnablePublicip(true);
            request.withBody(body);
            try {
                UpdateInstanceResponse response = client.updateInstance(request);
                System.out.println(response.toString());
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getRequestId());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }
    
  • Modifying the name and description of an instance.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    # coding: utf-8
    
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdkrabbitmq.v2.region.rabbitmq_region import RabbitMQRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdkrabbitmq.v2 import *
    
    if __name__ == "__main__":
        # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak = os.environ["CLOUD_SDK_AK"]
        sk = os.environ["CLOUD_SDK_SK"]
        projectId = "{project_id}"
    
        credentials = BasicCredentials(ak, sk, projectId)
    
        client = RabbitMQClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(RabbitMQRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = UpdateInstanceRequest()
            request.instance_id = "{instance_id}"
            request.body = UpdateInstanceReq(
                description="instance description",
                name="rabbitmq-01"
            )
            response = client.update_instance(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • Modifying the name, description, and maintenance time window of an instance.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    # coding: utf-8
    
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdkrabbitmq.v2.region.rabbitmq_region import RabbitMQRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdkrabbitmq.v2 import *
    
    if __name__ == "__main__":
        # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak = os.environ["CLOUD_SDK_AK"]
        sk = os.environ["CLOUD_SDK_SK"]
        projectId = "{project_id}"
    
        credentials = BasicCredentials(ak, sk, projectId)
    
        client = RabbitMQClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(RabbitMQRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = UpdateInstanceRequest()
            request.instance_id = "{instance_id}"
            request.body = UpdateInstanceReq(
                maintain_end="06:00:00",
                maintain_begin="02:00:00",
                description="instance description",
                name="rabbitmq-01"
            )
            response = client.update_instance(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • Enabling public network access

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    # coding: utf-8
    
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdkrabbitmq.v2.region.rabbitmq_region import RabbitMQRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdkrabbitmq.v2 import *
    
    if __name__ == "__main__":
        # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak = os.environ["CLOUD_SDK_AK"]
        sk = os.environ["CLOUD_SDK_SK"]
        projectId = "{project_id}"
    
        credentials = BasicCredentials(ak, sk, projectId)
    
        client = RabbitMQClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(RabbitMQRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = UpdateInstanceRequest()
            request.instance_id = "{instance_id}"
            request.body = UpdateInstanceReq(
                publicip_id="32685c2b-xxxx-xxxx-86c6-a1902359xxxx",
                enable_publicip=True
            )
            response = client.update_instance(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • Modifying the name and description of an instance.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        rabbitmq "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/rabbitmq/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/rabbitmq/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/rabbitmq/v2/region"
    )
    
    func main() {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak := os.Getenv("CLOUD_SDK_AK")
        sk := os.Getenv("CLOUD_SDK_SK")
        projectId := "{project_id}"
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            WithProjectId(projectId).
            Build()
    
        client := rabbitmq.NewRabbitMQClient(
            rabbitmq.RabbitMQClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.UpdateInstanceRequest{}
    	request.InstanceId = "{instance_id}"
    	descriptionUpdateInstanceReq:= "instance description"
    	nameUpdateInstanceReq:= "rabbitmq-01"
    	request.Body = &model.UpdateInstanceReq{
    		Description: &descriptionUpdateInstanceReq,
    		Name: &nameUpdateInstanceReq,
    	}
    	response, err := client.UpdateInstance(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    
  • Modifying the name, description, and maintenance time window of an instance.

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        rabbitmq "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/rabbitmq/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/rabbitmq/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/rabbitmq/v2/region"
    )
    
    func main() {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak := os.Getenv("CLOUD_SDK_AK")
        sk := os.Getenv("CLOUD_SDK_SK")
        projectId := "{project_id}"
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            WithProjectId(projectId).
            Build()
    
        client := rabbitmq.NewRabbitMQClient(
            rabbitmq.RabbitMQClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.UpdateInstanceRequest{}
    	request.InstanceId = "{instance_id}"
    	maintainEndUpdateInstanceReq:= "06:00:00"
    	maintainBeginUpdateInstanceReq:= "02:00:00"
    	descriptionUpdateInstanceReq:= "instance description"
    	nameUpdateInstanceReq:= "rabbitmq-01"
    	request.Body = &model.UpdateInstanceReq{
    		MaintainEnd: &maintainEndUpdateInstanceReq,
    		MaintainBegin: &maintainBeginUpdateInstanceReq,
    		Description: &descriptionUpdateInstanceReq,
    		Name: &nameUpdateInstanceReq,
    	}
    	response, err := client.UpdateInstance(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    
  • Enabling public network access

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        rabbitmq "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/rabbitmq/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/rabbitmq/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/rabbitmq/v2/region"
    )
    
    func main() {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak := os.Getenv("CLOUD_SDK_AK")
        sk := os.Getenv("CLOUD_SDK_SK")
        projectId := "{project_id}"
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            WithProjectId(projectId).
            Build()
    
        client := rabbitmq.NewRabbitMQClient(
            rabbitmq.RabbitMQClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.UpdateInstanceRequest{}
    	request.InstanceId = "{instance_id}"
    	publicipIdUpdateInstanceReq:= "32685c2b-xxxx-xxxx-86c6-a1902359xxxx"
    	enablePublicipUpdateInstanceReq:= true
    	request.Body = &model.UpdateInstanceReq{
    		PublicipId: &publicipIdUpdateInstanceReq,
    		EnablePublicip: &enablePublicipUpdateInstanceReq,
    	}
    	response, err := client.UpdateInstance(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    

For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.

Status Codes

Status Code

Description

204

The instance is modified successfully.

Error Codes

See Error Codes.