openapi: 3.1.0 info: title: Apollo Config Open Apps Namespaces API description: Apollo Open API for configuration management including app management, namespace management, configuration publishing, and release management. Apollo provides centralized configuration management for distributed systems with real-time push, versioning, and gray release support. version: 2.2.0 contact: name: Apollo Config url: https://www.apolloconfig.com/ license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 servers: - url: http://localhost:8070 description: Local Apollo Portal - url: http://{portal_host}:{port} description: Custom Apollo Portal variables: portal_host: default: localhost port: default: '8070' security: - PortalToken: [] tags: - name: Namespaces description: Namespace management paths: /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces: get: operationId: listNamespaces summary: List namespaces description: Returns all namespaces for an app/env/cluster combination. tags: - Namespaces parameters: - $ref: '#/components/parameters/env' - $ref: '#/components/parameters/appId' - $ref: '#/components/parameters/clusterName' responses: '200': description: List of namespaces content: application/json: schema: type: array items: $ref: '#/components/schemas/Namespace' post: operationId: createNamespace summary: Create a namespace description: Creates a new namespace (app-level namespace definition). tags: - Namespaces parameters: - $ref: '#/components/parameters/env' - $ref: '#/components/parameters/appId' - $ref: '#/components/parameters/clusterName' requestBody: required: true content: application/json: schema: type: object required: - appId - clusterName - namespaceName - format - isPublic properties: appId: type: string clusterName: type: string namespaceName: type: string format: type: string enum: - properties - xml - json - yml - yaml - txt isPublic: type: boolean comment: type: string dataChangeCreatedBy: type: string responses: '200': description: Namespace created content: application/json: schema: $ref: '#/components/schemas/Namespace' /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}: get: operationId: getNamespace summary: Get namespace info description: Returns information about a specific namespace including items. tags: - Namespaces parameters: - $ref: '#/components/parameters/env' - $ref: '#/components/parameters/appId' - $ref: '#/components/parameters/clusterName' - $ref: '#/components/parameters/namespaceName' responses: '200': description: Namespace info content: application/json: schema: $ref: '#/components/schemas/Namespace' '404': description: Namespace not found /openapi/v1/envs/{env}/apps/{appId}/clusters/{clusterName}/namespaces/{namespaceName}/lock: get: operationId: getNamespaceLock summary: Get namespace lock info description: Returns lock information for a namespace (who modified it last). tags: - Namespaces parameters: - $ref: '#/components/parameters/env' - $ref: '#/components/parameters/appId' - $ref: '#/components/parameters/clusterName' - $ref: '#/components/parameters/namespaceName' responses: '200': description: Lock info content: application/json: schema: type: object properties: namespaceName: type: string isLocked: type: boolean lockedBy: type: string components: schemas: Namespace: type: object properties: appId: type: string clusterName: type: string namespaceName: type: string comment: type: string format: type: string enum: - properties - xml - json - yml - yaml - txt isPublic: type: boolean items: type: array items: $ref: '#/components/schemas/Item' dataChangeCreatedBy: type: string dataChangeLastModifiedBy: type: string dataChangeCreatedTime: type: string format: date-time dataChangeLastModifiedTime: type: string format: date-time Item: type: object properties: id: type: integer format: int64 namespaceId: type: integer format: int64 key: type: string value: type: string comment: type: string lineNum: type: integer dataChangeCreatedBy: type: string dataChangeLastModifiedBy: type: string dataChangeCreatedTime: type: string format: date-time dataChangeLastModifiedTime: type: string format: date-time parameters: clusterName: name: clusterName in: path required: true schema: type: string description: Cluster name (default is 'default') env: name: env in: path required: true schema: type: string description: Environment (e.g., DEV, FAT, UAT, PRO) namespaceName: name: namespaceName in: path required: true schema: type: string description: Namespace name (default is 'application') appId: name: appId in: path required: true schema: type: string description: Application ID securitySchemes: PortalToken: type: apiKey name: Authorization in: header description: Apollo Portal open API token