code: public CreateInstanceResponse createInstance(CreateInstanceRequest request)
              throws BceClientException {
          checkNotNull(request, "request should not be null.");
          if (Strings.isNullOrEmpty(request.getClientToken())) {
              request.setClientToken(this.generateClientToken());
          }
          if (null == request.getBilling()) {
              request.setBilling(generateDefaultBilling());
          }
          checkStringNotEmpty(request.getImageId(), "imageId should not be empty");
          InternalRequest internalRequest = this.createRequest(request, HttpMethodName.POST, INSTANCE_PREFIX);
          internalRequest.addParameter("clientToken", request.getClientToken());
          if (!Strings.isNullOrEmpty(request.getAdminPass())) {
              BceCredentials credentials = config.getCredentials();
              if (internalRequest.getCredentials() != null) {
                  credentials = internalRequest.getCredentials();
              }
              try {
                  request.setAdminPass(this.aes128WithFirst16Char(request.getAdminPass(), credentials.getSecretKey()));
              } catch (GeneralSecurityException e) {
                  throw new BceClientException("Encryption procedure exception", e);
              }
          }
          fillPayload(internalRequest, request);
          return invokeHttpClient(internalRequest, CreateInstanceResponse.class);
      }
docs: Create a bcc Instance with the specified options,
  see all the supported instance in {@link com.baidubce.services.bcc.model.instance.InstanceType}
  You must fill the field of clientToken,which is especially for keeping idempotent.
  
  This is an asynchronous interface,
  you can get the latest status by invoke {@link #getInstance(GetInstanceRequest)}
  
  @param request The request containing all options for creating a bcc Instance.
  @return List of instanceId newly created
  @throws BceClientException