openapi: 3.1.0 info: title: SAP Business Intelligence SAP Analytics Cloud Catalog Models API description: REST API for SAP Analytics Cloud enabling data integration, story management, model administration, and analytics operations. Provides programmatic access to create and manage stories, models, data imports, and user administration within SAP Analytics Cloud. version: '1.0' contact: name: SAP Support url: https://support.sap.com/en/index.html termsOfService: https://www.sap.com/about/legal/terms-of-use.html servers: - url: https://{tenant}.sapanalytics.cloud/api/v1 description: SAP Analytics Cloud Tenant variables: tenant: default: mytenant description: SAP Analytics Cloud tenant identifier security: - oauth2: [] tags: - name: Models description: Manage data models and dimensions paths: /models: get: operationId: listModels summary: SAP Business Intelligence List models description: Retrieve a list of all data models available in the tenant. tags: - Models parameters: - $ref: '#/components/parameters/limitParam' - $ref: '#/components/parameters/offsetParam' responses: '200': description: List of models content: application/json: schema: $ref: '#/components/schemas/ModelCollection' '401': description: Unauthorized post: operationId: createModel summary: SAP Business Intelligence Create a model description: Create a new data model with specified dimensions and measures. tags: - Models requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateModelRequest' responses: '201': description: Model created content: application/json: schema: $ref: '#/components/schemas/Model' '400': description: Invalid request '401': description: Unauthorized /models/{modelId}: get: operationId: getModel summary: SAP Business Intelligence Get a model description: Retrieve details of a specific data model including dimensions and measures. tags: - Models parameters: - $ref: '#/components/parameters/modelId' responses: '200': description: Model details content: application/json: schema: $ref: '#/components/schemas/Model' '401': description: Unauthorized '404': description: Model not found put: operationId: updateModel summary: SAP Business Intelligence Update a model description: Update properties of an existing data model. tags: - Models parameters: - $ref: '#/components/parameters/modelId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateModelRequest' responses: '200': description: Model updated content: application/json: schema: $ref: '#/components/schemas/Model' '400': description: Invalid request '401': description: Unauthorized '404': description: Model not found delete: operationId: deleteModel summary: SAP Business Intelligence Delete a model description: Delete an existing data model. tags: - Models parameters: - $ref: '#/components/parameters/modelId' responses: '204': description: Model deleted '401': description: Unauthorized '404': description: Model not found /models/{modelId}/dimensions: get: operationId: listModelDimensions summary: SAP Business Intelligence List model dimensions description: Retrieve all dimensions defined in a specific model. tags: - Models parameters: - $ref: '#/components/parameters/modelId' responses: '200': description: List of dimensions content: application/json: schema: $ref: '#/components/schemas/DimensionCollection' '401': description: Unauthorized '404': description: Model not found /models/{modelId}/measures: get: operationId: listModelMeasures summary: SAP Business Intelligence List model measures description: Retrieve all measures defined in a specific model. tags: - Models parameters: - $ref: '#/components/parameters/modelId' responses: '200': description: List of measures content: application/json: schema: $ref: '#/components/schemas/MeasureCollection' '401': description: Unauthorized '404': description: Model not found components: parameters: limitParam: name: limit in: query description: Maximum number of results to return schema: type: integer default: 50 minimum: 1 maximum: 1000 modelId: name: modelId in: path required: true description: Model unique identifier schema: type: string offsetParam: name: offset in: query description: Number of results to skip for pagination schema: type: integer default: 0 minimum: 0 schemas: DimensionCollection: type: object properties: items: type: array items: $ref: '#/components/schemas/Dimension' UpdateModelRequest: type: object properties: name: type: string description: Updated name description: type: string description: Updated description MeasureCollection: type: object properties: items: type: array items: $ref: '#/components/schemas/Measure' Dimension: type: object properties: id: type: string description: Dimension unique identifier name: type: string description: Dimension name description: type: string description: Dimension description type: type: string enum: - Generic - Account - Date - Organization - Version description: Dimension type CreateModelRequest: type: object required: - name - type properties: name: type: string description: Name for the new model description: type: string description: Description for the model type: type: string enum: - Planning - Analytic - Dataset description: Model type Model: type: object properties: id: type: string description: Unique identifier for the model name: type: string description: Name of the model description: type: string description: Description of the model type: type: string enum: - Planning - Analytic - Dataset description: Model type createdBy: type: string description: User who created the model createdTime: type: string format: date-time description: When the model was created modifiedTime: type: string format: date-time description: When the model was last modified dimensions: type: array items: $ref: '#/components/schemas/Dimension' description: Dimensions in the model measures: type: array items: $ref: '#/components/schemas/Measure' description: Measures in the model Measure: type: object properties: id: type: string description: Measure unique identifier name: type: string description: Measure name description: type: string description: Measure description aggregationType: type: string enum: - SUM - COUNT - AVG - MIN - MAX description: Aggregation type for the measure ModelCollection: type: object properties: items: type: array items: $ref: '#/components/schemas/Model' totalCount: type: integer description: Total number of models available securitySchemes: oauth2: type: oauth2 description: OAuth 2.0 authentication for SAP Analytics Cloud flows: clientCredentials: tokenUrl: https://{tenant}.sapanalytics.cloud/oauth/token scopes: {} externalDocs: description: SAP Analytics Cloud API Documentation url: https://help.sap.com/docs/SAP_ANALYTICS_CLOUD