---
id: service-specification-update
title: "Update a service specification"
description: "Updates a service specification"
sidebar_label: "Update a service specification"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "patch api-method"
info_path: docs/api/nullplatform-api
custom_edit_url: null
---

import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import ParamsDetails from "@theme/ParamsDetails";
import RequestSchema from "@theme/RequestSchema";
import StatusCodes from "@theme/StatusCodes";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";
import Heading from "@theme/Heading";

<Heading
  as={"h1"}
  className={"openapi__heading"}
  children={"Update a service specification"}
>
</Heading>

<MethodEndpoint
  method={"patch"}
  path={"/service_specification/{id}"}
  context={"endpoint"}
>
  
</MethodEndpoint>



Updates a service specification

<Heading
  id={"request"}
  as={"h2"}
  className={"openapi-tabs__heading"}
  children={"Request"}
>
</Heading>

<ParamsDetails
  parameters={[{"schema":{"title":"Id","type":"string","format":"uuid","description":"Unique identifier for the entity represented as a UUID"},"in":"path","name":"id","required":true}]}
>
  
</ParamsDetails>

<RequestSchema
  title={"Body"}
  body={{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"not":{"enum":[null]},"description":"Name of the entity. Must be a non-empty string and not equal to null"},"visible_to":{"title":"Visibility","type":"array","description":"Array representing visibility settings for the entity. Specifies what/who can see this entity","items":{"title":"NRN","type":"string","pattern":"^organization=[0-9*]+(:account=[0-9*]+)?(:namespace=[0-9*]+)?(:application=[0-9*]+)?(:scope=[0-9*]+)?$","description":"Nullplatform Resource Name (NRN) representing a hierarchical identifier for nullplatform resources"}},"attributes":{"title":"Attribute","type":"object","properties":{"schema":{"type":"object","default":{},"description":"Specification of the attribute schema. Must be a valid JSON Schema"},"values":{"type":"object","default":{},"description":"Values associated with the attribute. Must validate against provided schema"}},"required":["schema","values"],"propertyNames":{"enum":["schema","values"],"description":"Allowed property names"},"additionalProperties":false,"description":"Object representing an attribute with a schema and associated values"},"selectors":{"title":"Selector","type":"object","properties":{"imported":{"type":"boolean","default":false},"provider":{"type":"string","minLength":1,"maxLength":100,"default":"any"},"category":{"type":"string","minLength":1,"maxLength":100,"default":"any"},"sub_category":{"type":"string","minLength":1,"maxLength":100,"default":"any"}},"additionalProperties":{"anyOf":[{"type":"string","minLength":1,"maxLength":100},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"description":"Key-value object representing instance selectors"},"type":{"type":"string","enum":["dependency","scope"],"description":"Type of the service specification. Should be one of the specified values in the enumeration"},"dimensions":{"title":"Specification Dimension","type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"required":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["required"]}},"scopes":{"title":"Specification Scope","type":"object","properties":{"provider":{"type":"object","properties":{"values":{"type":"array","items":{"oneOf":[{"type":"string","enum":["AWS:SERVERLESS:LAMBDA","AWS:WEB_POOL:EC2INSTANCES","AWS:WEB_POOL:EKS","AZURE:WEB_POOL:AKS","GOOGLE:WEB_POOL:GKE","OCI:WEB_POOL:OKE"]},{"type":"string","format":"uuid","description":"UUID of a scope specification"}]},"minItems":1}},"additionalProperties":false,"required":["values"]}},"additionalProperties":false},"assignable_to":{"type":"string","enum":["any","dimension","scope"],"description":"Specifies if the service can be assigned to any entity, only dimensions, or only scopes."},"use_default_actions":{"type":"boolean","description":"Specifies if the service specification should autogenerate its create, update, and delete actions from the attributes schema. When omitted on create, the default is true for every type except `scope`"},"use_default_naming":{"type":"boolean","description":"When true, the instance name is optional and generated by nullplatform or taken from the schema's `name` property. When false, a caller-provided name is required. Defaults to true for new specifications"},"package_id":{"type":"string","format":"uuid","nullable":true,"description":"The package that owns this service specification. Set automatically when a package revision that includes the specification is published; a specification belongs to at most one package. `PATCH` can point it at another package or clear it with `null` to release the claim, for example after deleting the package. The change is refused while any instance of the specification is bound to a package revision, current or desired"}},"description":"Object representing service specifications","additionalProperties":false,"title":"ServiceSpecification","example":{"name":"my-service-specification","visible_to":["organization=1:account=1","organization=1:account=2"],"dimensions":{"environment":{"required":true,"values":["production","staging"]}},"scopes":{"provider":{"values":["AWS:SERVERLESS:LAMBDA","AWS:WEB_POOL:EC2INSTANCES","uuid-of-a-specific-scope-specification"]}},"assignable_to":"any","attributes":{"schema":{"type":"object","properties":{"my_string_property":{"type":"string"},"my_number_property":{"type":"number","default":0}},"required":["my_string_property"]},"values":{}}}}}},"description":"Object representing service specifications"}}
>
  
</RequestSchema>

<StatusCodes
  id={undefined}
  label={undefined}
  responses={{"2XX":{"description":"Object representing service specifications","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"title":"Id","type":"string","format":"uuid","description":"Unique identifier for the entity represented as a UUID"},"name":{"type":"string","minLength":1,"not":{"enum":[null]},"description":"Name of the entity. Must be a non-empty string and not equal to null"},"slug":{"type":"string","minLength":1,"not":{"enum":[null]},"description":"Slug of the specification. Automatically generated from \"name\""},"created_at":{"type":"string","format":"date"},"updated_at":{"type":"string","format":"date"},"visible_to":{"title":"Visibility","type":"array","description":"Array representing visibility settings for the entity. Specifies what/who can see this entity","items":{"title":"NRN","type":"string","pattern":"^organization=[0-9*]+(:account=[0-9*]+)?(:namespace=[0-9*]+)?(:application=[0-9*]+)?(:scope=[0-9*]+)?$","description":"Nullplatform Resource Name (NRN) representing a hierarchical identifier for nullplatform resources"}},"attributes":{"title":"Attribute","type":"object","properties":{"schema":{"type":"object","default":{},"description":"Specification of the attribute schema. Must be a valid JSON Schema"},"values":{"type":"object","default":{},"description":"Values associated with the attribute. Must validate against provided schema"}},"required":["schema","values"],"propertyNames":{"enum":["schema","values"],"description":"Allowed property names"},"additionalProperties":false,"description":"Object representing an attribute with a schema and associated values"},"selectors":{"title":"Selector","type":"object","properties":{"imported":{"type":"boolean","default":false},"provider":{"type":"string","minLength":1,"maxLength":100,"default":"any"},"category":{"type":"string","minLength":1,"maxLength":100,"default":"any"},"sub_category":{"type":"string","minLength":1,"maxLength":100,"default":"any"}},"additionalProperties":{"anyOf":[{"type":"string","minLength":1,"maxLength":100},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"description":"Key-value object representing instance selectors"},"type":{"type":"string","enum":["dependency","scope"],"description":"Type of the service specification. Should be one of the specified values in the enumeration"},"dimensions":{"title":"Specification Dimension","type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"required":{"type":"boolean"},"values":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"required":["required"]}},"scopes":{"title":"Specification Scope","type":"object","properties":{"provider":{"type":"object","properties":{"values":{"type":"array","items":{"oneOf":[{"type":"string","enum":["AWS:SERVERLESS:LAMBDA","AWS:WEB_POOL:EC2INSTANCES","AWS:WEB_POOL:EKS","AZURE:WEB_POOL:AKS","GOOGLE:WEB_POOL:GKE","OCI:WEB_POOL:OKE"]},{"type":"string","format":"uuid","description":"UUID of a scope specification"}]},"minItems":1}},"additionalProperties":false,"required":["values"]}},"additionalProperties":false},"assignable_to":{"type":"string","enum":["any","dimension","scope"],"description":"Specifies if the service can be assigned to any entity, only dimensions, or only scopes."},"use_default_actions":{"type":"boolean","description":"Specifies if the service specification should autogenerate its create, update, and delete actions from the attributes schema. When omitted on create, the default is true for every type except `scope`"},"use_default_naming":{"type":"boolean","description":"When true, the instance name is optional and generated by nullplatform or taken from the schema's `name` property. When false, a caller-provided name is required. Defaults to true for new specifications"},"package_id":{"type":"string","format":"uuid","nullable":true,"description":"The package that owns this service specification. Set automatically when a package revision that includes the specification is published; a specification belongs to at most one package. `PATCH` can point it at another package or clear it with `null` to release the claim, for example after deleting the package. The change is refused while any instance of the specification is bound to a package revision, current or desired"}},"description":"Object representing service specifications","additionalProperties":false,"title":"ServiceSpecification","example":{"name":"my-service-specification","visible_to":["organization=1:account=1","organization=1:account=2"],"dimensions":{"environment":{"required":true,"values":["production","staging"]}},"scopes":{"provider":{"values":["AWS:SERVERLESS:LAMBDA","AWS:WEB_POOL:EC2INSTANCES","uuid-of-a-specific-scope-specification"]}},"assignable_to":"any","attributes":{"schema":{"type":"object","properties":{"my_string_property":{"type":"string"},"my_number_property":{"type":"number","default":0}},"required":["my_string_property"]},"values":{}}}}}}},"4XX":{"description":"Format for representing errors during API interactions","content":{"application/json":{"schema":{"title":"Error","type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code indicating the error"},"code":{"type":"string","description":"Unique error code for reference and categorization"},"error":{"type":"string","description":"Short, human-readable error type or category"},"message":{"type":"string","description":"Detailed error message providing additional context"}},"description":"Format for representing errors during API interactions","required":["statusCode","error","message"]}}}},"5XX":{"description":"Format for representing errors during API interactions","content":{"application/json":{"schema":{"title":"Error","type":"object","properties":{"statusCode":{"type":"number","description":"HTTP status code indicating the error"},"code":{"type":"string","description":"Unique error code for reference and categorization"},"error":{"type":"string","description":"Short, human-readable error type or category"},"message":{"type":"string","description":"Detailed error message providing additional context"}},"description":"Format for representing errors during API interactions","required":["statusCode","error","message"]}}}}}}
>
  
</StatusCodes>


      