---
updatedAt: 2026-07-28T19:57:20.000Z
---

# Create a clone of an existing event broker service

<p>Create a clone of an existing event broker service. </p><p>You must specify the unique identifiers of the event broker service in the URL and the datacenter in the request body. By default, the name of the new service is the name of the specified event broker service with  " - Clone" appended to the name. When the event broker service that you clone has deletion protection enabled ('locked' is ‘true’), the new event broker service also has deletion protection enabled. If service creation fails during the clone process, deletion protection is disabled ('locked' is 'false') and allows you to delete the failed service.</p><p>Cloning copies the Rest Delivery Endpoints, but disables them. You must re-enable the endpoints after creating the cloned service.</p><p>This endpoint does not clone: </p><ul><li>The custom hostname (or custom domain hostnames)</li><li>Bridge configuration </li><li>Event mesh configuration (Dynamic Message Routing (DMR) configuration)</li><li>Distributed tracing configuration</li><li>Event Broker Service Single Sign-on (SSO) configuration (OAuth profiles)</li><li>The router name for the event broker service</li><li>Server certificates</li></ul><p>Optionally, you can set the service connection endpoint settings as they are not cloned from the specified service.</p><br><br><a href="https://api.solace.dev/cloud/reference/authentication">Token Permissions</a>: [ <code>services:post</code> ]

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "MISSION CONTROL",
    "description": "Documentation for Mission Control API",
    "version": "2.2.1"
  },
  "servers": [
    {
      "url": "https://api.solace.cloud",
      "description": "Solace Cloud US EAST Region"
    },
    {
      "url": "https://api.solacecloud.com.au",
      "description": "Solace Cloud AU Region"
    },
    {
      "url": "https://api.solacecloud.eu",
      "description": "Solace Cloud EU Region"
    },
    {
      "url": "https://api.solacecloud.sg",
      "description": "Solace Cloud SG Region"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "paths": {
    "/api/v2/missionControl/eventBrokerServices/{id}/clone": {
      "post": {
        "tags": [
          "Event Broker Services"
        ],
        "summary": "Create a clone of an existing event broker service",
        "description": "<p>Create a clone of an existing event broker service. </p><p>You must specify the unique identifiers of the event broker service in the URL and the datacenter in the request body. By default, the name of the new service is the name of the specified event broker service with  \" - Clone\" appended to the name. When the event broker service that you clone has deletion protection enabled ('locked' is ‘true’), the new event broker service also has deletion protection enabled. If service creation fails during the clone process, deletion protection is disabled ('locked' is 'false') and allows you to delete the failed service.</p><p>Cloning copies the Rest Delivery Endpoints, but disables them. You must re-enable the endpoints after creating the cloned service.</p><p>This endpoint does not clone: </p><ul><li>The custom hostname (or custom domain hostnames)</li><li>Bridge configuration </li><li>Event mesh configuration (Dynamic Message Routing (DMR) configuration)</li><li>Distributed tracing configuration</li><li>Event Broker Service Single Sign-on (SSO) configuration (OAuth profiles)</li><li>The router name for the event broker service</li><li>Server certificates</li></ul><p>Optionally, you can set the service connection endpoint settings as they are not cloned from the specified service.</p><br><br><a href=\"https://api.solace.dev/cloud/reference/authentication\">Token Permissions</a>: [ <code>services:post</code> ]",
        "operationId": "cloneService",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "The unique identifier of the event broker service to clone.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The fields to specify to clone an event broker service.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CloneServiceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "example": {
                  "message": "An entity of type service was passed in an invalid format.",
                  "errorId": "618e2fb0-a198-4d9d-9219-13e51ef0ecec",
                  "validationDetails": {
                    "serviceClassId": [
                      "must not be blank"
                    ]
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "example": {
                  "message": "An authentication error occurred.",
                  "errorId": "618e2fb0-a198-4d9d-9219-13e51ef0ecec"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "example": {
                  "message": "You do not have permissions to perform this operation.",
                  "errorId": "618e2fb0-a198-4d9d-9219-13e51ef0ecec"
                }
              }
            }
          },
          "404": {
            "description": "Not found.",
            "content": {
              "application/json": {}
            }
          },
          "409": {
            "description": "Conflict.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway - Marketplace integration error.",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "CloneServiceRequest": {
        "required": [
          "datacenterId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the clone service request.",
            "readOnly": true
          },
          "type": {
            "type": "string",
            "description": "The type of object for informational purposes.",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "The event broker service name.",
            "example": "my-service-name"
          },
          "datacenterId": {
            "minLength": 1,
            "type": "string",
            "description": "The identifier of the datacenter.",
            "example": "k8s-us-east-1"
          },
          "serviceConnectionEndpoints": {
            "type": "array",
            "description": "The collection of service connection endpoints.",
            "items": {
              "$ref": "#/components/schemas/ConnectionEndpoint"
            }
          },
          "serviceCloneAttributes": {
            "$ref": "#/components/schemas/ServiceCloneAttributes"
          },
          "customRouterName": {
            "maxLength": 12,
            "minLength": 3,
            "pattern": "^[a-z0-9]*$",
            "type": "string",
            "description": "<p>The unique prefix for the name of the router for the event broker service. The prefix must be constructed using only lower-case, alphanumeric characters.</p><p>When the customRouterName value is defined, it is added as a prefix to the event broker service node role, and \"cn\" (custom name) is appended to the end to create the custom router name, for example, \"customprimarycn\".</p><p> If the customRouterName value is left blank, the prefix defaults to the service id of the event broker service. This is prefixed to the event broker service node role to create the router name, for example, \"bd37t1d5h4kprimary\".<p><p><b>Note:</b> customRouterName is only supported on event broker versions 10.4 or greater.</p>",
            "example": "abc123"
          },
          "environmentId": {
            "type": "string",
            "description": "The unique identifier of the environment where you want to create the service.\n\nYou can only specify an environment identifier when creating services in a Public Region. You cannot specify an environment identifier when creating a service in a Dedicated Region.\n\nCreating a service in a Public Region without specifying an environment identifier places it in the default environment.\n"
          }
        }
      },
      "ConnectionEndpoint": {
        "required": [
          "accessType",
          "name",
          "ports"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The identifier of the connection endpoint.",
            "readOnly": true
          },
          "type": {
            "type": "string",
            "description": "The type of object for informational purposes.",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "The name of the connection endpoint."
          },
          "description": {
            "type": "string",
            "description": "The description for the connection endpoint."
          },
          "accessType": {
            "$ref": "#/components/schemas/ConnectionEndpointAccessType"
          },
          "k8sServiceType": {
            "type": "string",
            "description": "The connectivity configuration that is used in the Kubernetes cluster.",
            "readOnly": true,
            "enum": [
              "LOADBALANCER",
              "NODEPORT",
              "CLUSTERIP"
            ]
          },
          "k8sServiceId": {
            "type": "string",
            "description": "The identifier for the Kubernetes service.",
            "readOnly": true
          },
          "creationState": {
            "$ref": "#/components/schemas/CreationState"
          },
          "ports": {
            "minItems": 1,
            "type": "array",
            "description": "<p>The protocols and port numbers of the connection endpoint. The serviceManagementTlsListenPort and serviceSmfTlsListenPort protocols\nalong with the port numbers must be specified in the request.</p>\n<p>Connection specific protocols. </p>\n<ul>\n<li><b>Solace Messaging</b> </li>\n<ul>\n<li>'serviceSmfPlainTextListenPort'-Use SMF Host (plain-text) over TCP to connect and exchange messages with the event broker service.</li>\n<li>'serviceSmfCompressedListenPort'-Use SMF (plain-text) in a compressed format over TCP to connect and exchange messages with\nthe event broker service.</li>\n<li>'serviceSmfTlsListenPort'-Use secure SMF using TLS over TCP.</li>\n</ul>\n<br>\n<li><b>Solace Web Messaging</b></li>\n<ul>\n<li>'serviceWebPlainTextListenPort'-Use WebSocket over HTTP (plain-text).</li>\n<li>'serviceWebTlsListenPort'-Use WebSocket over secured HTTP.</li>\n</ul>\n<br>\n<li><b>AMQP</b></li>\n<ul>\n<li>'serviceAmqpPlainTextListenPort'-Use AMQP (plain-text).</li>\n<li>'serviceAmqpTlsListenPort'-Use AMQP over a secure TCP connection.</li>\n</ul>\n<br>\n<li><b>MQTT</b></li>\n<ul>\n<li>'serviceMqttPlainTextListenPort'-Use MQTT (plain-text).</li>\n<li>'serviceMqttWebSocketListenPort'-Use MQTT WebSocket (plain-text).</li>\n<li>'serviceMqttTlsListenPort'-Use secure MQTT.</li>\n<li>'serviceMqttTlsWebSocketListenPort'-Use WebSocket secured MQTT.</li>\n</ul>\n<br>\n<li><b>REST</b></li>\n<ul>\n<li>'serviceRestIncomingPlainTextListenPort'-Use REST messaging (plain-text).</li>\n<li>'serviceRestIncomingTlsListenPort'-Use secure REST messaging.</li>\n</ul>\n<br>\n<li><b>Management</b></li>\n<ul>\n<li>'serviceManagementTlsListenPort'-Use the secured management connection, which uses SEMP to manage the event broker. This port\nmust be enabled on at least one of the service connection endpoints on the event broker service.</li>\n<li>'managementSshTlsListenPort'-Use a secure port to connect to the event broker service to issue Solace Command Line Interface\n(CLI). This port provides you with scope-restricted access to the event broker service.</li>\n</ul>\n<ul>\n",
            "items": {
              "$ref": "#/components/schemas/ServiceConnectionEndpointPort"
            }
          },
          "annotations": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "description": "Annotations to apply to this connection endpoint's Kubernetes Service."
            },
            "description": "Annotations to apply to this connection endpoint's Kubernetes Service."
          },
          "annotationsRemoved": {
            "type": "array",
            "description": "Annotation keys to remove from this connection endpoint's Kubernetes Service.",
            "items": {
              "type": "string",
              "description": "Annotation keys to remove from this connection endpoint's Kubernetes Service."
            }
          },
          "hostNames": {
            "type": "array",
            "description": "The hostnames assigned to the connection endpoint.",
            "readOnly": true,
            "items": {
              "type": "string",
              "description": "The hostnames assigned to the connection endpoint.",
              "readOnly": true
            }
          }
        },
        "description": "A collection of networking protocol and port configurations that permit applications to connect to the event broker service."
      },
      "ConnectionEndpointAccessType": {
        "type": "string",
        "description": "The connectivity for the connection endpoint. This can be through private IP addresses (PRIVATE) or public internet (PUBLIC).\nFor event brokers deployed to self-managed containers, only PRIVATE is supported: public ingress is not provided, so reaching the event broker from the internet must be arranged on your own network. PUBLIC is rejected for those services.\n",
        "example": "PUBLIC",
        "enum": [
          "PUBLIC",
          "PRIVATE"
        ]
      },
      "CreationState": {
        "type": "string",
        "description": "The creation state of the connection endpoint.",
        "readOnly": true,
        "enum": [
          "pending",
          "inProgress",
          "completed",
          "failed",
          "migrating",
          "waitingForDeployment"
        ]
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "A user-friendly message that describes the error.",
            "example": "An error occurred."
          },
          "errorId": {
            "type": "string",
            "description": "The UUID (Universally Unique Identifier) that is logged with an appropriate stack trace for a WARN or ERROR log that allows support to better determine what cause the error.",
            "example": "123e4567-e89b-12d3-a456-426655440000"
          },
          "meta": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "description": "The metadata about the error. This provides additional information about the error that occurred.",
              "example": "'object': { 'field': 'description' }"
            },
            "description": "The metadata about the error. This provides additional information about the error that occurred.",
            "example": "'object': { 'field': 'description' }"
          },
          "validationDetails": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "description": "When applicable, these are the details of issues with the fields provided for the REST call.",
              "example": "'name': ['Not unique']",
              "items": {
                "type": "string",
                "description": "When applicable, these are the details of issues with the fields provided for the REST call.",
                "example": "'name': ['Not unique']"
              }
            },
            "description": "When applicable, these are the details of issues with the fields provided for the REST call.",
            "example": "'name': ['Not unique']"
          }
        }
      },
      "Link": {
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "description": "The location of the related resource, relative to the API root.",
            "readOnly": true,
            "example": "/api/v2/missionControl/eventBrokerServices/abc123/deploymentInstructions"
          }
        },
        "description": "A link to a related resource.",
        "readOnly": true
      },
      "Operation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Operations requiring time to complete provide an operation identifier so you can query their progress."
          },
          "type": {
            "type": "string",
            "description": "The type of object for informational purposes.",
            "readOnly": true,
            "example": "operation"
          },
          "operationType": {
            "$ref": "#/components/schemas/jobOperationTypes"
          },
          "createdBy": {
            "type": "string",
            "description": "The unique identifier representing the user who created the operation."
          },
          "createdTime": {
            "type": "string",
            "description": "The time the operation was created, in ISO 8601 date/time format.",
            "example": "2022-03-14T15:01:34.000Z"
          },
          "completedTime": {
            "type": "string",
            "description": "The completion time, whether it was successful or failed, in ISO 8601 date/time format.",
            "example": "2022-03-14T15:01:34.000Z"
          },
          "resourceId": {
            "type": "string",
            "description": "The resource ID that the operation belongs to.",
            "readOnly": true,
            "example": "abcd1234"
          },
          "resourceType": {
            "type": "string",
            "description": "The resource type that the operation belongs to.",
            "readOnly": true,
            "example": "service"
          },
          "progressLogs": {
            "type": "array",
            "description": "The progress logs for the operation, if available. Not all operations provide progress logs. If the operation provides progress logs, you will see them listed below.",
            "items": {
              "$ref": "#/components/schemas/OperationProgressLog"
            }
          },
          "status": {
            "type": "string",
            "description": "The status of the operation.",
            "readOnly": true,
            "example": "PENDING",
            "enum": [
              "PENDING",
              "INPROGRESS",
              "SUCCEEDED",
              "FAILED"
            ]
          },
          "error": {
            "$ref": "#/components/schemas/OperationError"
          },
          "_links": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Link"
            },
            "description": "Links to resources related to this operation, keyed by link relation. Present only for operations that have related resources to point at.",
            "readOnly": true
          }
        }
      },
      "OperationError": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "A user-friendly message describing the reason for the error or what went wrong."
          },
          "errorId": {
            "type": "string",
            "description": "A universally unique identifier (UUID) is useful for debugging. You can provide this code as part of the information you send to our support team."
          }
        }
      },
      "OperationProgressLog": {
        "type": "object",
        "properties": {
          "step": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "timestamp": {
            "type": "string"
          },
          "stepId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "description": "The progress logs for the operation, if available. Not all operations provide progress logs. If the operation provides progress logs, you will see them listed below."
      },
      "OperationResponse": {
        "required": [
          "data",
          "meta"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/Operation"
          },
          "meta": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          }
        }
      },
      "ServiceCloneAttributes": {
        "type": "object",
        "properties": {
          "components": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "SERVICE_CONFIGURATION",
                "BROKER_CONFIGURATION",
                "CERTIFICATE_AUTHORITIES"
              ]
            }
          }
        },
        "description": "<p>The event broker service settings that you can specify to clone. The cluster name, client authentication (client user names), and management users are always cloned to the new service.  You can specify one or more of  the following attributes to clone to the new event broker service:</p>\n<ul>\n<li>'SERVICE_CONFIGURATION'-The LDAP authentication profiles, LDAP management, SEMP over message bus enabled setting, and SYSLOG configuration settings.</li>\n<li>'BROKER_CONFIGURATION'-Message VPN settings, such as topics, topic endpoints, queues, ACL profiles, client profiles, REST Delivery Points (including any configured client certificates).</li>\n<li>'CERTIFICATE_AUTHORITIES'-Domain and Client Certificate Authorities (CAs).</li>\n</ul>\n<p>If you don't specify an attribute (default), all the supported settings except for the 'CERTIFICATE_AUTHORITIES' settings are cloned to the new service.</p>",
        "example": {
          "components": [
            "SERVICE_CONFIGURATION",
            "BROKER_CONFIGURATION",
            "CERTIFICATE_AUTHORITIES"
          ]
        }
      },
      "ServiceConnectionEndpointPort": {
        "required": [
          "protocol"
        ],
        "type": "object",
        "properties": {
          "protocol": {
            "type": "string",
            "description": "Messaging or management protocol.",
            "enum": [
              "serviceSmfPlainTextListenPort",
              "serviceSmfCompressedListenPort",
              "serviceSmfTlsListenPort",
              "serviceWebPlainTextListenPort",
              "serviceWebTlsListenPort",
              "serviceAmqpPlainTextListenPort",
              "serviceAmqpTlsListenPort",
              "serviceMqttPlainTextListenPort",
              "serviceMqttWebSocketListenPort",
              "serviceMqttTlsListenPort",
              "serviceMqttTlsWebSocketListenPort",
              "serviceRestIncomingPlainTextListenPort",
              "serviceRestIncomingTlsListenPort",
              "serviceManagementTlsListenPort",
              "managementSshTlsListenPort"
            ]
          },
          "port": {
            "maximum": 65535,
            "minimum": 0,
            "type": "integer",
            "description": "Port number. Use '0' to disable the port.",
            "format": "int32"
          }
        },
        "description": "<p>The protocols and port numbers of the connection endpoint. The serviceManagementTlsListenPort and serviceSmfTlsListenPort protocols\nalong with the port numbers must be specified in the request.</p>\n<p>Connection specific protocols. </p>\n<ul>\n<li><b>Solace Messaging</b> </li>\n<ul>\n<li>'serviceSmfPlainTextListenPort'-Use SMF Host (plain-text) over TCP to connect and exchange messages with the event broker service.</li>\n<li>'serviceSmfCompressedListenPort'-Use SMF (plain-text) in a compressed format over TCP to connect and exchange messages with\nthe event broker service.</li>\n<li>'serviceSmfTlsListenPort'-Use secure SMF using TLS over TCP.</li>\n</ul>\n<br>\n<li><b>Solace Web Messaging</b></li>\n<ul>\n<li>'serviceWebPlainTextListenPort'-Use WebSocket over HTTP (plain-text).</li>\n<li>'serviceWebTlsListenPort'-Use WebSocket over secured HTTP.</li>\n</ul>\n<br>\n<li><b>AMQP</b></li>\n<ul>\n<li>'serviceAmqpPlainTextListenPort'-Use AMQP (plain-text).</li>\n<li>'serviceAmqpTlsListenPort'-Use AMQP over a secure TCP connection.</li>\n</ul>\n<br>\n<li><b>MQTT</b></li>\n<ul>\n<li>'serviceMqttPlainTextListenPort'-Use MQTT (plain-text).</li>\n<li>'serviceMqttWebSocketListenPort'-Use MQTT WebSocket (plain-text).</li>\n<li>'serviceMqttTlsListenPort'-Use secure MQTT.</li>\n<li>'serviceMqttTlsWebSocketListenPort'-Use WebSocket secured MQTT.</li>\n</ul>\n<br>\n<li><b>REST</b></li>\n<ul>\n<li>'serviceRestIncomingPlainTextListenPort'-Use REST messaging (plain-text).</li>\n<li>'serviceRestIncomingTlsListenPort'-Use secure REST messaging.</li>\n</ul>\n<br>\n<li><b>Management</b></li>\n<ul>\n<li>'serviceManagementTlsListenPort'-Use the secured management connection, which uses SEMP to manage the event broker. This port\nmust be enabled on at least one of the service connection endpoints on the event broker service.</li>\n<li>'managementSshTlsListenPort'-Use a secure port to connect to the event broker service to issue Solace Command Line Interface\n(CLI). This port provides you with scope-restricted access to the event broker service.</li>\n</ul>\n<ul>\n"
      },
      "jobOperationTypes": {
        "type": "string",
        "description": "The type of operation against the resource.",
        "enum": [
          "createService",
          "cloneService",
          "deleteService",
          "createClientProfile",
          "updateClientProfile",
          "deleteClientProfile",
          "createDnsName",
          "moveDnsName",
          "deleteDnsName",
          "serviceRequest",
          "infrastructureRequest",
          "datacenterRequest",
          "uploadCertificate",
          "installCertificate",
          "deleteCertificate",
          "haSwitchover",
          "rotateReplicationPSK",
          "serviceScaleUp",
          "serviceUpgrade",
          "createConnectionEndpoint",
          "updateConnectionEndpoint",
          "updateMateLinkEncryption",
          "deleteConnectionEndpoint",
          "createLdapManagementAccess",
          "updateLdapManagementAccess",
          "deleteLdapManagementAccess",
          "createLdapProfile",
          "updateLdapProfile",
          "deleteLdapProfile",
          "enableDmrCluster",
          "disableDmrCluster",
          "resetBrokerPasswords"
        ]
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  }
}
```