{"openapi":"3.0.1","info":{"title":"Service Registry API","description":"REST API for managing services in the Service Registry","version":"1.0.0","contact":{"name":"Atlassian Service Registry Team","email":"service-registry@atlassian.com"}},"servers":[{"url":"https://api.atlassian.com/jsm/api/{cloudId}/v1/services/","description":"Production server (API)","variables":{"cloudId":{"description":"Cloud ID of the Atlassian site","default":"your-cloud-id"}}},{"url":"https://{your-site}.atlassian.net/gateway/api/jsm/api/v1/services/","description":"Production server (Gateway API)","variables":{"your-site":{"description":"Your Atlassian site subdomain","default":"your-site"}}}],"paths":{"/":{"get":{"summary":"List services","description":"This endpoint is designed to provide a comprehensive view of all services in your system. This API supports pagination with allowing you to customize the view based on your specific needs.","tags":["Services"],"x-experimental":true,"parameters":[{"name":"offset","in":"query","description":"Number of services to skip (default: 0)","required":false,"schema":{"type":"integer","format":"int64","default":0,"minimum":0}},{"name":"size","in":"query","description":"Maximum number of services to return (default: 20)","required":false,"schema":{"type":"integer","format":"int64","default":20,"minimum":1,"maximum":100}}],"responses":{"200":{"description":"Services returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListServicesResponse"}}}},"400":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"post":{"summary":"Create a new service","description":"The endpoint allows users to programmatically generate services with customized parameters, including owners, approvers, and stakeholders.","tags":["Services"],"x-experimental":true,"requestBody":{"description":"Service creation request","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateServiceRequest"}}}},"responses":{"201":{"description":"Service created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/{service}":{"get":{"summary":"Get service","description":"This endpoint provides users the ability to retrieve comprehensive details of a specific service using its id (ARI).","tags":["Services"],"x-experimental":true,"parameters":[{"name":"service","in":"path","description":"Service identifier (ARI or encoded ARI)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Service returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Service not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"patch":{"summary":"Update a service","description":"This endpoint is used to update an existing service with the specified configuration. Only provided fields will be updated.","tags":["Services"],"x-experimental":true,"parameters":[{"name":"service","in":"path","required":true,"description":"Service identifier (ARI or encoded ARI)","schema":{"type":"string"}}],"requestBody":{"description":"Service update request","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateServiceRequest"}}}},"responses":{"200":{"description":"Service updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}}},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Service not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"delete":{"summary":"Delete service","description":"This endpoint is utilized to delete services.","tags":["Services"],"x-experimental":true,"parameters":[{"name":"service","in":"path","description":"Service identifier (ARI or encoded ARI)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Service deleted successfully"},"400":{"description":"Invalid request data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Service not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"schemas":{"ListServicesResponse":{"type":"object","required":["services","pagination"],"properties":{"services":{"type":"array","items":{"$ref":"#/components/schemas/Service"},"description":"List of services"},"pagination":{"$ref":"#/components/schemas/Pagination"}}},"Pagination":{"type":"object","required":["totalCount","hasNext"],"properties":{"totalCount":{"type":"integer","description":"Total number of items","example":64},"hasNext":{"type":"boolean","description":"Whether there are more items available","example":true}}},"Service":{"type":"object","required":["id","name","tier"],"properties":{"id":{"type":"string","description":"Unique identifier for the service (base64 encoded)","example":"b:YXJpOmNsb3VkOmdyYXBoOjpzZXJ2aWNlLzIzYmNiMzU4LWUwNzItNDM0Ny05YzkyLWRhY2RjYjVmNGM0Zi84MjBiZjAxOC02OTQ1LTExZjAtYjcyNy0wYWZmZWM0NzkxZmY="},"name":{"type":"string","description":"Name of the service","example":"AAAAAA - API - TEST 7"},"description":{"type":"string","nullable":true,"description":"Description of the service","example":"Description"},"tier":{"type":"integer","description":"Service tier level (1-4)","minimum":1,"maximum":4,"example":3},"type":{"type":"string","nullable":true,"description":"Type of service","enum":["SOFTWARE_SERVICES","BUSINESS_SERVICES","CAPABILITIES_SERVICES","APPLICATIONS"],"example":"SOFTWARE_SERVICES"},"changeApprovers":{"$ref":"#/components/schemas/ChangeApprovers"},"responders":{"$ref":"#/components/schemas/Responders"},"stakeholders":{"$ref":"#/components/schemas/Stakeholders"},"projects":{"$ref":"#/components/schemas/Projects"},"owner":{"type":"string","nullable":true,"description":"Owner of the service (JSM team ID)","example":"a1b2c3d4e5f6"}}},"ChangeApprovers":{"type":"object","properties":{"groups":{"type":"array","items":{"type":"string"},"description":"List of group IDs for change approvers","example":["0ab1db2d-4880-4c14-adc3-c4677f730dc8"]}}},"Responders":{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"},"description":"List of user account IDs for responders","example":["61a11abf3618cd006fa95ff8"]},"teams":{"type":"array","items":{"type":"string"},"description":"List of JSM team IDs for responders","example":["7h8j9k0l1m2n","3p4q5r6s7t8u"]}}},"Stakeholders":{"type":"object","properties":{"users":{"type":"array","items":{"type":"string"},"description":"List of user account IDs for stakeholders","example":["61a11abf3618cd006fa95ff8"]}}},"Projects":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string"},"description":"List of Jira project IDs","example":["10002"]}}},"CreateServiceRequest":{"type":"object","required":["name","tier"],"properties":{"name":{"type":"string","description":"Name of the service","minLength":1,"maxLength":100,"example":"My Service"},"description":{"type":"string","nullable":true,"description":"Description of the service","minLength":1,"maxLength":1000,"example":"This is a sample service"},"tier":{"type":"integer","description":"Service tier level (1-4)","minimum":1,"maximum":4,"example":2},"type":{"type":"string","nullable":true,"description":"Type of service","enum":["SOFTWARE_SERVICES","BUSINESS_SERVICES","CAPABILITIES_SERVICES","APPLICATIONS"],"example":"SOFTWARE_SERVICES"},"owner":{"type":"string","nullable":true,"description":"Owner of the service (JSM team ID)","example":"a1b2c3d4e5f6"},"changeApprovers":{"$ref":"#/components/schemas/ChangeApprovers"},"responders":{"$ref":"#/components/schemas/Responders"},"stakeholders":{"$ref":"#/components/schemas/Stakeholders"},"projects":{"$ref":"#/components/schemas/Projects"}}},"UpdateServiceRequest":{"type":"object","properties":{"name":{"type":"string","description":"Name of the service","minLength":1,"maxLength":100,"example":"My Service"},"description":{"type":"string","nullable":true,"description":"Description of the service","minLength":1,"maxLength":1000,"example":"This is a sample service"},"tier":{"type":"integer","description":"Service tier level (1-4)","minimum":1,"maximum":4,"example":2},"type":{"type":"string","nullable":true,"description":"Type of service","enum":["SOFTWARE_SERVICES","BUSINESS_SERVICES","CAPABILITIES_SERVICES","APPLICATIONS"],"example":"SOFTWARE_SERVICES"},"owner":{"type":"string","nullable":true,"description":"Owner of the service (JSM team ID)","example":"a1b2c3d4e5f6"},"changeApprovers":{"$ref":"#/components/schemas/ChangeApprovers"},"responders":{"$ref":"#/components/schemas/Responders"},"stakeholders":{"$ref":"#/components/schemas/Stakeholders"},"projects":{"$ref":"#/components/schemas/Projects"}}},"ErrorResponse":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"Error message","example":"Invalid request data"},"details":{"type":"string","description":"Additional error details","example":"Name is required"},"timestamp":{"type":"string","format":"date-time","description":"Error timestamp","example":"2023-12-07T10:30:00Z"}}}},"securitySchemes":{"basicAuth":{"type":"http","scheme":"basic","description":"Basic authentication using username and API token"}}},"security":[{"basicAuth":[]}],"tags":[{"name":"Services","description":"The Services API is designed to manage services and enable teams to manage services effectively. This resource represents the all contracts of Services in Jira Service Management."}]}