> ## Documentation Index > Fetch the complete documentation index at: https://bunny.net/docs/llms.txt > Use this file to discover all available pages before exploring further. # Patch Container Template > Partially updates a container template within an application. Only provided fields will be updated; existing fields not included in the request will remain unchanged. ## OpenAPI ````yaml https://api-mc.opsbunny.net/docs/public/swagger.json patch /apps/{appId}/containers/{containerId} openapi: 3.0.4 info: title: Public API description: 'Public API endpoints for user consumption. Release version: v1.11.1.0' version: '1.0' servers: - url: https://api.bunny.net/mc security: - AccessKey: [] paths: /apps/{appId}/containers/{containerId}: patch: tags: - Containers summary: Patch Container Template description: >- Partially updates a container template within an application. Only provided fields will be updated; existing fields not included in the request will remain unchanged. operationId: PatchApplicationContainerTemplate parameters: - name: appId in: path description: The ID of the application required: true schema: type: string - name: containerId in: path description: The ID of the container template to update required: true schema: type: string requestBody: description: >- Partial container template configuration with only the fields to update content: application/json: schema: $ref: '#/components/schemas/PatchContainerRequest' text/json: schema: $ref: '#/components/schemas/PatchContainerRequest' application/*+json: schema: $ref: '#/components/schemas/PatchContainerRequest' responses: '200': description: Container template was successfully updated. content: application/json: schema: $ref: '#/components/schemas/ContainerTemplate' '400': description: Invalid input. content: application/json: schema: $ref: '#/components/schemas/ErrorDetails' '401': description: User is unauthorized. content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: User has invalid card or suspended. content: application/json: schema: $ref: '#/components/schemas/ErrorDetails' '404': description: Application or container template not found. content: application/json: schema: $ref: '#/components/schemas/ErrorDetails' '500': description: Unexpected server error. content: application/json: schema: $ref: '#/components/schemas/ErrorDetails' components: schemas: PatchContainerRequest: type: object properties: name: type: string nullable: true image: type: string nullable: true imageName: minLength: 1 pattern: '[a-zA-Z0-9]+(?:[./_-]{1,2}[a-zA-Z0-9]+)*' type: string nullable: true imageNamespace: minLength: 1 pattern: '[a-zA-Z0-9]+(?:[./_-]{1,2}[a-zA-Z0-9]+)*' type: string nullable: true imageTag: minLength: 1 pattern: '[a-zA-Z0-9]+(?:[._-]{1,2}[a-zA-Z0-9]+)*' type: string nullable: true imageDigest: pattern: sha256:[a-z0-9]{64} type: string nullable: true imageRegistryId: minLength: 1 type: string nullable: true imagePullPolicy: $ref: '#/components/schemas/ImagePullPolicy' entryPoint: $ref: '#/components/schemas/ContainerEntryPoint' probes: $ref: '#/components/schemas/ContainerProbes' environmentVariables: type: array items: $ref: '#/components/schemas/EnvironmentVariable' nullable: true endpoints: type: array items: $ref: '#/components/schemas/EndpointRequest' nullable: true volumeMounts: type: array items: $ref: '#/components/schemas/VolumeMountRequest' nullable: true additionalProperties: false ContainerTemplate: required: - endpoints - entryPoint - environmentVariables - id - image - imageDigest - imageName - imageNamespace - imagePullPolicy - imageRegistryId - imageTag - name - packageId - probes - volumeMounts type: object properties: id: minLength: 1 type: string name: minLength: 1 type: string packageId: minLength: 1 type: string image: minLength: 1 type: string imageName: minLength: 1 type: string imageNamespace: minLength: 1 type: string imageTag: minLength: 1 type: string imageRegistryId: minLength: 1 type: string imageDigest: minLength: 1 type: string imagePullPolicy: $ref: '#/components/schemas/ImagePullPolicy' entryPoint: $ref: '#/components/schemas/ContainerEntryPoint' probes: $ref: '#/components/schemas/ContainerProbes' environmentVariables: type: array items: $ref: '#/components/schemas/EnvironmentVariable' endpoints: type: array items: $ref: '#/components/schemas/ContainerEndpoint' volumeMounts: type: array items: $ref: '#/components/schemas/ContainerVolumeMount' additionalProperties: false description: Container template model ErrorDetails: type: object properties: title: type: string description: A short, human-readable summary of the problem type. readOnly: true status: type: integer description: The HTTP status code. format: int32 readOnly: true detail: type: string description: >- A human-readable explanation specific to this occurrence of the problem. nullable: true readOnly: true instance: type: string description: >- A URI reference that identifies the specific occurrence of the problem. nullable: true readOnly: true errors: type: array items: $ref: '#/components/schemas/ValidationError' description: Additional validation errors for field-specific issues. nullable: true readOnly: true id: type: string description: >- The application ID, returned as an RFC 7807 extension field when relevant (e.g. partial save errors). Matches the "id" field from successful create response for consistency. nullable: true readOnly: true additionalProperties: false description: RFC 7807 Problem Details response model. ProblemDetails: type: object properties: type: type: string nullable: true title: type: string nullable: true status: type: integer format: int32 nullable: true detail: type: string nullable: true instance: type: string nullable: true additionalProperties: {} ImagePullPolicy: enum: - always - ifNotPresent type: string ContainerEntryPoint: type: object properties: command: type: string nullable: true commandArray: type: array items: type: string nullable: true arguments: type: string nullable: true argumentsArray: type: array items: type: string nullable: true workingDirectory: type: string nullable: true additionalProperties: false ContainerProbes: type: object properties: startup: $ref: '#/components/schemas/ContainerProbe' readiness: $ref: '#/components/schemas/ContainerProbe' liveness: $ref: '#/components/schemas/ContainerProbe' additionalProperties: false EnvironmentVariable: required: - name type: object properties: name: minLength: 1 type: string value: type: string additionalProperties: false EndpointRequest: required: - displayName type: object properties: displayName: maxLength: 50 minLength: 1 type: string cdn: $ref: '#/components/schemas/CdnEndpointRequest' anycast: $ref: '#/components/schemas/AnycastEndpointRequest' additionalProperties: false VolumeMountRequest: required: - mountPath - name type: object properties: name: maxLength: 50 minLength: 1 type: string mountPath: minLength: 1 pattern: ^/(?!.*//)(?!.*\.\.)(?!.*\s)([a-zA-Z0-9._-]+/?)+$ type: string additionalProperties: false ContainerEndpoint: required: - displayName - id - isSslEnabled - portMappings - publicHost - pullZoneId - type type: object properties: id: minLength: 1 type: string description: >- Unique endpoint id. Use this value as `container_endpoint_id` when creating a pull zone that targets this endpoint. displayName: minLength: 1 type: string publicHost: minLength: 1 type: string type: $ref: '#/components/schemas/EndpointType' isSslEnabled: type: boolean pullZoneId: minLength: 1 type: string portMappings: type: array items: $ref: '#/components/schemas/EndpointPortMapping' stickySessions: $ref: '#/components/schemas/EndpointStickySession' internalIpAddresses: type: array items: $ref: '#/components/schemas/EndpointInternalIp' nullable: true publicIpAddresses: type: array items: $ref: '#/components/schemas/EndpointInternalIp' nullable: true additionalProperties: false description: Container endpoint model ContainerVolumeMount: required: - mountPath - name type: object properties: name: minLength: 1 type: string mountPath: minLength: 1 type: string additionalProperties: false ValidationError: required: - message type: object properties: field: type: string nullable: true message: type: string additionalProperties: false ContainerProbe: type: object properties: initialDelaySeconds: maximum: 3600 minimum: 1 type: integer format: int32 default: 10 nullable: true periodSeconds: maximum: 3600 minimum: 1 type: integer format: int32 default: 10 nullable: true timeoutSeconds: maximum: 3600 minimum: 1 type: integer format: int32 default: 7 nullable: true failureThreshold: maximum: 1000 minimum: 1 type: integer format: int32 default: 3 nullable: true successThreshold: maximum: 1000 minimum: 1 type: integer format: int32 default: 1 nullable: true httpGet: $ref: '#/components/schemas/HttpGetProbe' tcpSocket: $ref: '#/components/schemas/TcpSocketProbe' grpc: $ref: '#/components/schemas/GrpcProbe' additionalProperties: false CdnEndpointRequest: type: object properties: isSslEnabled: type: boolean stickySessions: $ref: '#/components/schemas/StickySessionSettings' pullZoneId: type: integer format: int32 nullable: true portMappings: maxItems: 1 minItems: 1 type: array items: $ref: '#/components/schemas/ContainerPortMappingRequest' additionalProperties: false AnycastEndpointRequest: required: - portMappings - type type: object properties: type: $ref: '#/components/schemas/AnycastIpProtocolVersion' portMappings: minItems: 1 type: array items: $ref: '#/components/schemas/ContainerPortMappingRequest' additionalProperties: false EndpointType: enum: - cdn - anycast - publicIp type: string EndpointPortMapping: required: - containerPort - exposedPort - protocols type: object properties: containerPort: type: integer format: int32 exposedPort: type: integer format: int32 protocols: type: array items: $ref: '#/components/schemas/ProtocolV3' additionalProperties: false EndpointStickySession: required: - cookieName - enabled - sessionHeaders type: object properties: enabled: type: boolean sessionHeaders: type: array items: type: string cookieName: minLength: 1 type: string additionalProperties: false EndpointInternalIp: required: - address - region type: object properties: address: minLength: 1 type: string region: minLength: 1 type: string additionalProperties: false HttpGetProbe: type: object properties: request: $ref: '#/components/schemas/HttpGetProbeRequestDetails' response: $ref: '#/components/schemas/HttpGetProbeResponseDetails' additionalProperties: false TcpSocketProbe: type: object properties: request: $ref: '#/components/schemas/TcpSocketProbeRequestDetails' additionalProperties: false GrpcProbe: type: object properties: request: $ref: '#/components/schemas/GrpcProbeRequestDetails' additionalProperties: false StickySessionSettings: required: - sessionHeaders type: object properties: enabled: type: boolean sessionHeaders: maxItems: 3 minItems: 1 type: array items: type: string cookieName: type: string additionalProperties: false ContainerPortMappingRequest: required: - containerPort type: object properties: containerPort: maximum: 65535 minimum: 1 type: integer format: int32 exposedPort: maximum: 65535 minimum: 1 type: integer format: int32 nullable: true protocols: type: array items: $ref: '#/components/schemas/Protocol' additionalProperties: false AnycastIpProtocolVersion: enum: - iPv4 type: string ProtocolV3: enum: - tcp - udp - sctp type: string HttpGetProbeRequestDetails: type: object properties: path: type: string portNumber: maximum: 65535 minimum: 1 type: integer format: int32 additionalProperties: false HttpGetProbeResponseDetails: type: object properties: expectedStatusCode: $ref: '#/components/schemas/HttpStatusCode' additionalProperties: false TcpSocketProbeRequestDetails: type: object properties: portNumber: maximum: 65535 minimum: 1 type: integer format: int32 additionalProperties: false GrpcProbeRequestDetails: type: object properties: portNumber: maximum: 65535 minimum: 1 type: integer format: int32 serviceName: type: string description: >- If this is not specified, the default behavior is to probe the server's overall health status. nullable: true additionalProperties: false Protocol: enum: - tcp - udp - sctp type: string HttpStatusCode: enum: - continue - switchingProtocols - processing - earlyHints - ok - created - accepted - nonAuthoritativeInformation - noContent - resetContent - partialContent - multiStatus - alreadyReported - imUsed - multipleChoices - movedPermanently - found - seeOther - notModified - useProxy - unused - temporaryRedirect - permanentRedirect - badRequest - unauthorized - paymentRequired - forbidden - notFound - methodNotAllowed - notAcceptable - proxyAuthenticationRequired - requestTimeout - conflict - gone - lengthRequired - preconditionFailed - requestEntityTooLarge - requestUriTooLong - unsupportedMediaType - requestedRangeNotSatisfiable - expectationFailed - misdirectedRequest - unprocessableEntity - locked - failedDependency - upgradeRequired - preconditionRequired - tooManyRequests - requestHeaderFieldsTooLarge - unavailableForLegalReasons - internalServerError - notImplemented - badGateway - serviceUnavailable - gatewayTimeout - httpVersionNotSupported - variantAlsoNegotiates - insufficientStorage - loopDetected - notExtended - networkAuthenticationRequired type: string securitySchemes: AccessKey: type: apiKey description: Please enter a valid personal API key. name: AccessKey in: header ```` This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.