Semantic Model Schema

This page contains the complete JSON schema for Semantic Model.

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://salesforce.com/schemas/semantic-model-output.json",
  "title": "Salesforce Semantic Model Output Schema",
  "description": "Schema representing the Salesforce semantic model",
  "type": "object",
  "required": ["apiName"],
  "properties": {
    "id": {
      "type": "string",
      "description": "The object ID of the semantic model"
    },
    "apiName": {
      "type": "string",
      "description": "The API name of the semantic model"
    },
    "label": {
      "type": "string",
      "description": "The display name of the semantic model to be used in the UI"
    },
    "baseModelApiName": {
      "type": "string",
      "description": "The origin model of the semantic entity"
    },
    "createdBy": {
      "type": "string",
      "description": "The user who created the semantic model"
    },
    "createdDate": {
      "type": "string",
      "format": "date-time",
      "description": "The date when the semantic model was created"
    },
    "lastModifiedBy": {
      "type": "string",
      "description": "The user who last modified the semantic model"
    },
    "lastModifiedDate": {
      "type": "string",
      "format": "date-time",
      "description": "The date when the semantic model was last modified"
    },
    "description": {
      "type": "string",
      "description": "The description of the semantic model"
    },
    "cacheKey": {
      "type": "string",
      "description": "The canonical URL for caching purposes"
    },
    "externalConnectionApiName": {
      "type": "string",
      "description": "References the external connection details for external definition"
    },
    "isQueryable": {
      "type": "string",
      "enum": ["Queryable", "NotQueryable"],
      "description": "Indicates if the entity can be queried in semantic query engine"
    },
    "externalId": {
      "type": "string",
      "description": "The external ID of the semantic entity from the external data source"
    },
    "dataspace": {
      "type": "string",
      "description": "Dataspace in which the semantic model is located"
    },
    "app": {
      "type": "string",
      "description": "App to which the semantic model belongs"
    },
    "categories": {
      "type": "array",
      "description": "Product category of the semantic model (Marketing, Commerce, Sales, Service, Other)",
      "items": {
        "type": "string",
        "enum": ["Marketing", "Commerce", "Sales", "Service", "Other"]
      }
    },
    "currency": {
      "$ref": "#/definitions/semanticModelCurrency",
      "description": "Model default currency"
    },
    "baseModels": {
      "type": "array",
      "description": "List of base models the current model is extending",
      "items": {
        "$ref": "#/definitions/semanticBaseModel"
      }
    },
    "externalConnections": {
      "type": "array",
      "description": "List of external connections of the model",
      "items": {
        "$ref": "#/definitions/semanticModelExternalConnection"
      }
    },
    "sourceCreation": {
      "type": "string",
      "description": "The source type from which the model was created"
    },
    "sourceCreationName": {
      "type": "string",
      "description": "The source identifier name"
    },
    "semanticDataObjectsUrl": {
      "type": "string",
      "description": "The URL that references the semantic data objects"
    },
    "semanticRelationshipsUrl": {
      "type": "string",
      "description": "The URL that references the semantic relationships"
    },
    "semanticParametersUrl": {
      "type": "string",
      "description": "The URL that references the semantic parameters"
    },
    "semanticCalculatedDimensionsUrl": {
      "type": "string",
      "description": "The URL that references the semantic calculated dimensions"
    },
    "semanticCalculatedMeasurementsUrl": {
      "type": "string",
      "description": "The URL that references the semantic calculated measurements"
    },
    "semanticGroupingsUrl": {
      "type": "string",
      "description": "The URL that references the semantic groupings"
    },
    "isLocked": {
      "type": "boolean",
      "description": "Whether the model is locked for edit/delete"
    },
    "lockedActions": {
      "type": "object",
      "description": "A mapping of actions to their corresponding lock reasons",
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "businessPreferences": {
      "type": "string",
      "description": "Allows analysts to include business-specific preferences or context"
    },
    "agentEnabled": {
      "type": "boolean",
      "description": "Indicates whether agent features are enabled for this model"
    },
    "lastDraftModifiedDate": {
      "type": "string",
      "format": "date-time",
      "description": "Last modified date of the draft version"
    },
    "lastPublishedModifiedDate": {
      "type": "string",
      "format": "date-time",
      "description": "Last modified date of the published version"
    },
    "versionState": {
      "type": "string",
      "description": "Version state of the semantic model"
    },
    "isAiDrafted": {
      "type": "boolean",
      "description": "Indicates whether the model was AI-drafted"
    },
    "semanticDataObjects": {
      "type": "array",
      "description": "The list of semantic data objects belonging to the semantic model",
      "items": {
        "$ref": "#/definitions/semanticDataObject"
      }
    },
    "semanticRelationships": {
      "type": "array",
      "description": "The list of relationships belonging to the semantic model",
      "items": {
        "$ref": "#/definitions/semanticRelationship"
      }
    },
    "semanticParameters": {
      "type": "array",
      "description": "The list of parameters belonging to the semantic model",
      "items": {
        "$ref": "#/definitions/semanticParameter"
      }
    },
    "semanticCalculatedMeasurements": {
      "type": "array",
      "description": "The semantic calculated measurements belonging to this model",
      "items": {
        "$ref": "#/definitions/semanticCalculatedMeasurement"
      }
    },
    "semanticCalculatedDimensions": {
      "type": "array",
      "description": "The semantic calculated dimensions belonging to this model",
      "items": {
        "$ref": "#/definitions/semanticCalculatedDimension"
      }
    },
    "semanticLogicalViews": {
      "type": "array",
      "description": "The semantic logical views belonging to this model",
      "items": {
        "$ref": "#/definitions/semanticLogicalView"
      }
    },
    "semanticMetrics": {
      "type": "array",
      "description": "The semantic metrics belonging to this model",
      "items": {
        "$ref": "#/definitions/semanticMetric"
      }
    },
    "semanticGroupings": {
      "type": "array",
      "description": "The semantic groupings belonging to this model",
      "items": {
        "$ref": "#/definitions/semanticGrouping"
      }
    },
    "semanticDimensionHierarchies": {
      "type": "array",
      "description": "The semantic dimension hierarchies belonging to this model",
      "items": {
        "$ref": "#/definitions/semanticDimensionHierarchy"
      }
    },
    "semanticModelInfo": {
      "$ref": "#/definitions/semanticModelInfo",
      "description": "Model information"
    },
    "fieldsOverrides": {
      "type": "array",
      "description": "The semantic overrides belonging to this model",
      "items": {
        "$ref": "#/definitions/semanticOverride"
      }
    },
    "semanticModelFilters": {
      "type": "array",
      "description": "The semantic model filters belonging to this model",
      "items": {
        "$ref": "#/definitions/semanticModelFilter"
      }
    },
    "modelFilter": {
      "$ref": "#/definitions/semanticModelFilter",
      "description": "The semantic model filter defined directly on this model"
    },
    "hasUnmapped": {
      "type": "boolean",
      "description": "The semantic model contains unmapped semantic definition"
    },
    "isPartialSdm": {
      "type": "boolean",
      "description": "Indicates if the model is partial because of Data Gov"
    },
    "isUpsertable": {
      "type": "boolean",
      "description": "Indicates if the model can be edited (does not contain non-queryable entities)"
    },
    "workspaceId": {
      "type": "string",
      "description": "Analytics workspace ID"
    },
    "allowUnmapped": {
      "type": "boolean",
      "description": "Indicates if the model allows unmapped definitions"
    }
  },
  "additionalProperties": true,
  "definitions": {
    "semanticModelCurrency": {
      "type": "object",
      "description": "Output representation for semantic model currency",
      "properties": {
        "id": {
          "type": "string",
          "description": "Currency ISO code ID"
        },
        "name": {
          "type": "string",
          "description": "Currency name"
        },
        "useOrgDefault": {
          "type": "boolean",
          "description": "Use the default org currency ISO code"
        }
      },
      "additionalProperties": true
    },
    "semanticModelInfo": {
      "type": "object",
      "description": "Output representation of model info",
      "required": ["definitionsCount", "maxDefinitionCount", "modelHierarchyDepth"],
      "properties": {
        "definitionsCount": {
          "type": "integer",
          "description": "The number of definitions in model"
        },
        "maxDefinitionCount": {
          "type": "integer",
          "description": "The max definition count in model"
        },
        "modelHierarchyDepth": {
          "type": "integer",
          "description": "The extensibility depth in model (number of base models in the chain)"
        }
      },
      "additionalProperties": true
    },
    "semanticDataObject": {
      "type": "object",
      "required": ["apiName"],
      "properties": {
        "id": {
          "type": "string"
        },
        "apiName": {
          "type": "string",
          "description": "Unique API name for the data object"
        },
        "label": {
          "type": "string",
          "description": "Display label"
        },
        "baseModelApiName": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "createdBy": {
          "type": "string"
        },
        "createdDate": {
          "type": "string",
          "format": "date-time"
        },
        "lastModifiedBy": {
          "type": "string"
        },
        "lastModifiedDate": {
          "type": "string",
          "format": "date-time"
        },
        "cacheKey": {
          "type": "string"
        },
        "externalConnectionApiName": {
          "type": "string"
        },
        "isQueryable": {
          "type": "string",
          "enum": ["Queryable", "NotQueryable"]
        },
        "externalId": {
          "type": "string"
        },
        "isSystemDefinition": {
          "type": "boolean"
        },
        "unmapped": {
          "type": "boolean"
        },
        "dataObjectName": {
          "type": "string",
          "description": "The API name of the referenced object"
        },
        "dataObjectType": {
          "type": "string",
          "enum": ["Dlo", "Query"],
          "description": "Type of data object"
        },
        "shouldIncludeAllFields": {
          "type": "boolean",
          "description": "Indicates whether all fields or only specific fields should be included"
        },
        "semanticDimensions": {
          "type": "array",
          "description": "The list of the referenced semantic dimensions",
          "items": {
            "$ref": "#/definitions/semanticDimension"
          }
        },
        "semanticMeasurements": {
          "type": "array",
          "description": "The list of the referenced semantic measurements",
          "items": {
            "$ref": "#/definitions/semanticMeasurement"
          }
        },
        "semanticDimensionsUrl": {
          "type": "string"
        },
        "semanticMeasurementsUrl": {
          "type": "string"
        },
        "logicalViewId": {
          "type": "string"
        },
        "filterLogic": {
          "type": "string"
        },
        "filters": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/semanticFilter"
          }
        },
        "tableType": {
          "type": "string",
          "enum": ["Standard", "Dimension", "Fact"]
        },
        "primaryNameField": {
          "type": "string"
        },
        "standardDataObjectName": {
          "type": "string"
        },
        "semanticOverridePolicyType": {
          "type": "string"
        },
        "overriddenProperties": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "customSqlIdentifier": {
          "type": "string"
        },
        "dependencies": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/semanticDefinitionDependency"
          }
        }
      },
      "additionalProperties": true
    },
    "semanticDimension": {
      "type": "object",
      "required": ["apiName"],
      "properties": {
        "id": {
          "type": "string"
        },
        "apiName": {
          "type": "string",
          "description": "Unique API name"
        },
        "label": {
          "type": "string",
          "description": "Display label"
        },
        "baseModelApiName": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "createdBy": {
          "type": "string"
        },
        "createdDate": {
          "type": "string",
          "format": "date-time"
        },
        "lastModifiedBy": {
          "type": "string"
        },
        "lastModifiedDate": {
          "type": "string",
          "format": "date-time"
        },
        "cacheKey": {
          "type": "string"
        },
        "externalConnectionApiName": {
          "type": "string"
        },
        "isQueryable": {
          "type": "string",
          "enum": ["Queryable", "NotQueryable"]
        },
        "externalId": {
          "type": "string"
        },
        "isSystemDefinition": {
          "type": "boolean"
        },
        "unmapped": {
          "type": "boolean"
        },
        "dataObjectFieldName": {
          "type": "string",
          "description": "The API name of the referenced data object dimension"
        },
        "dataType": {
          "type": "string",
          "enum": ["Text", "Number", "Date", "DateTime", "Boolean", "Currency", "Email", "Percentage", "PhoneNumber", "Url", "Geo"]
        },
        "displayCategory": {
          "type": "string",
          "enum": ["Discrete", "Continuous"]
        },
        "isVisible": {
          "type": "boolean"
        },
        "sortOrder": {
          "type": "string",
          "enum": ["None", "Ascending", "Descending"]
        },
        "geoRole": {
          "type": "string"
        },
        "decimalPlace": {
          "type": "integer"
        },
        "semanticDataType": {
          "type": "string"
        },
        "isPrimaryKey": {
          "type": "boolean"
        },
        "isKeyQualifier": {
          "type": "boolean"
        },
        "keyQualifierName": {
          "type": "string"
        },
        "storageDataType": {
          "type": "string"
        },
        "externalStorageName": {
          "type": "string"
        },
        "externalDataType": {
          "type": "string"
        },
        "standardDataObjectFieldName": {
          "type": "string"
        },
        "semanticOverridePolicyType": {
          "type": "string"
        },
        "overriddenProperties": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "customSqlIdentifier": {
          "type": "string"
        },
        "dependencies": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/semanticDefinitionDependency"
          }
        }
      },
      "additionalProperties": true
    },
    "semanticMeasurement": {
      "type": "object",
      "required": ["apiName"],
      "properties": {
        "id": {
          "type": "string"
        },
        "apiName": {
          "type": "string",
          "description": "Unique API name"
        },
        "label": {
          "type": "string",
          "description": "Display label"
        },
        "baseModelApiName": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "createdBy": {
          "type": "string"
        },
        "createdDate": {
          "type": "string",
          "format": "date-time"
        },
        "lastModifiedBy": {
          "type": "string"
        },
        "lastModifiedDate": {
          "type": "string",
          "format": "date-time"
        },
        "cacheKey": {
          "type": "string"
        },
        "externalConnectionApiName": {
          "type": "string"
        },
        "isQueryable": {
          "type": "string",
          "enum": ["Queryable", "NotQueryable"]
        },
        "externalId": {
          "type": "string"
        },
        "isSystemDefinition": {
          "type": "boolean"
        },
        "unmapped": {
          "type": "boolean"
        },
        "dataObjectFieldName": {
          "type": "string",
          "description": "The API name of the referenced data object measurement"
        },
        "dataType": {
          "type": "string",
          "enum": ["Number", "Currency", "Percentage", "Text", "Date", "DateTime", "Boolean", "Url", "Email", "PhoneNumber", "Geo"]
        },
        "aggregationType": {
          "type": "string",
          "enum": ["Sum", "Avg", "Min", "Max", "Count", "CountDistinct", "UserAgg", "Median", "Stddev", "Stddevp", "Var", "Varp", "Last", "First", "None"]
        },
        "displayCategory": {
          "type": "string",
          "enum": ["Continuous"]
        },
        "decimalPlace": {
          "type": "integer"
        },
        "isAggregatable": {
          "type": "boolean"
        },
        "directionality": {
          "type": "string",
          "enum": ["Up", "Down"]
        },
        "shouldTreatNullsAsZeros": {
          "type": "boolean"
        },
        "isVisible": {
          "type": "boolean"
        },
        "sortOrder": {
          "type": "string",
          "enum": ["None", "Ascending", "Descending"]
        },
        "semanticDataType": {
          "type": "string"
        },
        "sentiment": {
          "type": "string",
          "enum": ["SentimentTypeUpIsGood", "SentimentTypeDownIsGood"]
        },
        "isPrimaryKey": {
          "type": "boolean"
        },
        "isKeyQualifier": {
          "type": "boolean"
        },
        "keyQualifierName": {
          "type": "string"
        },
        "storageDataType": {
          "type": "string"
        },
        "externalStorageName": {
          "type": "string"
        },
        "externalDataType": {
          "type": "string"
        },
        "standardDataObjectFieldName": {
          "type": "string"
        },
        "semanticOverridePolicyType": {
          "type": "string"
        },
        "overriddenProperties": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "customSqlIdentifier": {
          "type": "string"
        },
        "dependencies": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/semanticDefinitionDependency"
          }
        }
      },
      "additionalProperties": true
    },
    "semanticCalculatedMeasurement": {
      "type": "object",
      "required": ["apiName", "expression"],
      "properties": {
        "id": {
          "type": "string"
        },
        "apiName": {
          "type": "string",
          "description": "Unique API name"
        },
        "label": {
          "type": "string",
          "description": "Display label"
        },
        "baseModelApiName": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "createdBy": {
          "type": "string"
        },
        "createdDate": {
          "type": "string",
          "format": "date-time"
        },
        "lastModifiedBy": {
          "type": "string"
        },
        "lastModifiedDate": {
          "type": "string",
          "format": "date-time"
        },
        "cacheKey": {
          "type": "string"
        },
        "externalConnectionApiName": {
          "type": "string"
        },
        "isQueryable": {
          "type": "string",
          "enum": ["Queryable", "NotQueryable"]
        },
        "externalId": {
          "type": "string"
        },
        "isSystemDefinition": {
          "type": "boolean"
        },
        "unmapped": {
          "type": "boolean"
        },
        "expression": {
          "type": "string",
          "description": "Formula that generates a new Semantic Calculated Measurement"
        },
        "syntax": {
          "type": "string",
          "description": "The syntax of the semantic expression"
        },
        "dataType": {
          "type": "string",
          "enum": ["Number", "Currency", "Percentage", "Text", "Date", "DateTime", "Boolean", "Url", "Email", "PhoneNumber", "Geo"]
        },
        "aggregationType": {
          "type": "string",
          "enum": ["Sum", "Avg", "Min", "Max", "Count", "CountDistinct", "UserAgg", "Median", "Stddev", "Stddevp", "Var", "Varp", "Last", "First", "None"]
        },
        "totalAggregationType": {
          "type": "string",
          "enum": ["Sum", "Avg", "Min", "Max", "Count", "Median", "Stddev", "Stddevp", "Var", "Varp", "Last", "First", "None"]
        },
        "displayCategory": {
          "type": "string",
          "enum": ["Continuous", "Discrete"]
        },
        "decimalPlace": {
          "type": "integer"
        },
        "isAggregatable": {
          "type": "boolean"
        },
        "directionality": {
          "type": "string",
          "enum": ["Up", "Down"]
        },
        "shouldTreatNullsAsZeros": {
          "type": "boolean"
        },
        "isVisible": {
          "type": "boolean"
        },
        "sortOrder": {
          "type": "string",
          "enum": ["None", "Ascending", "Descending"]
        },
        "semanticDataType": {
          "type": "string"
        },
        "sentiment": {
          "type": "string",
          "enum": ["SentimentTypeUpIsGood", "SentimentTypeDownIsGood"]
        },
        "filterLogic": {
          "type": "string"
        },
        "filters": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/semanticFilter"
          }
        },
        "isOverrideBase": {
          "type": "boolean"
        },
        "level": {
          "type": "string",
          "enum": ["Row", "AggregateFunction"]
        },
        "externalLevel": {
          "type": "string",
          "enum": ["Row", "AggregateFunction"]
        },
        "externalStorageName": {
          "type": "string"
        },
        "externalDataType": {
          "type": "string"
        },
        "semanticOverridePolicyType": {
          "type": "string"
        },
        "overriddenProperties": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "dependencies": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/semanticDefinitionDependency"
          }
        }
      },
      "additionalProperties": true
    },
    "semanticCalculatedDimension": {
      "type": "object",
      "required": ["apiName", "expression"],
      "properties": {
        "id": {
          "type": "string"
        },
        "apiName": {
          "type": "string",
          "description": "Unique API name"
        },
        "label": {
          "type": "string",
          "description": "Display label"
        },
        "baseModelApiName": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "createdBy": {
          "type": "string"
        },
        "createdDate": {
          "type": "string",
          "format": "date-time"
        },
        "lastModifiedBy": {
          "type": "string"
        },
        "lastModifiedDate": {
          "type": "string",
          "format": "date-time"
        },
        "cacheKey": {
          "type": "string"
        },
        "externalConnectionApiName": {
          "type": "string"
        },
        "isQueryable": {
          "type": "string",
          "enum": ["Queryable", "NotQueryable"]
        },
        "externalId": {
          "type": "string"
        },
        "isSystemDefinition": {
          "type": "boolean"
        },
        "unmapped": {
          "type": "boolean"
        },
        "expression": {
          "type": "string",
          "description": "The semantic expressions for generating the calculation"
        },
        "syntax": {
          "type": "string",
          "description": "The syntax of the semantic expression"
        },
        "dataType": {
          "type": "string",
          "enum": ["Text", "Number", "Date", "DateTime", "Boolean", "Currency", "Email", "Percentage", "PhoneNumber", "Url", "Geo"]
        },
        "displayCategory": {
          "type": "string",
          "enum": ["Discrete", "Continuous"]
        },
        "isVisible": {
          "type": "boolean"
        },
        "sortOrder": {
          "type": "string",
          "enum": ["None", "Ascending", "Descending"]
        },
        "geoRole": {
          "type": "string"
        },
        "decimalPlace": {
          "type": "integer"
        },
        "semanticDataType": {
          "type": "string"
        },
        "filterLogic": {
          "type": "string"
        },
        "filters": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/semanticFilter"
          }
        },
        "isOverrideBase": {
          "type": "boolean"
        },
        "level": {
          "type": "string",
          "enum": ["Row", "AggregateFunction"]
        },
        "externalLevel": {
          "type": "string",
          "enum": ["Row", "AggregateFunction"]
        },
        "externalStorageName": {
          "type": "string"
        },
        "externalDataType": {
          "type": "string"
        },
        "semanticOverridePolicyType": {
          "type": "string"
        },
        "overriddenProperties": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "dependencies": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/semanticDefinitionDependency"
          }
        }
      },
      "additionalProperties": true
    },
    "semanticRelationship": {
      "type": "object",
      "required": ["apiName", "leftSemanticDefinitionApiName", "rightSemanticDefinitionApiName", "criteria"],
      "properties": {
        "id": {
          "type": "string"
        },
        "apiName": {
          "type": "string",
          "description": "Unique API name"
        },
        "label": {
          "type": "string",
          "description": "Display label"
        },
        "baseModelApiName": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "createdBy": {
          "type": "string"
        },
        "createdDate": {
          "type": "string",
          "format": "date-time"
        },
        "lastModifiedBy": {
          "type": "string"
        },
        "lastModifiedDate": {
          "type": "string",
          "format": "date-time"
        },
        "cacheKey": {
          "type": "string"
        },
        "externalConnectionApiName": {
          "type": "string"
        },
        "isQueryable": {
          "type": "string",
          "enum": ["Queryable", "NotQueryable"]
        },
        "externalId": {
          "type": "string"
        },
        "isSystemDefinition": {
          "type": "boolean"
        },
        "unmapped": {
          "type": "boolean"
        },
        "leftSemanticDefinitionApiName": {
          "type": "string",
          "description": "The API name of the left semantic definition"
        },
        "rightSemanticDefinitionApiName": {
          "type": "string",
          "description": "The API name of the right semantic definition"
        },
        "criteria": {
          "type": "array",
          "description": "The join criteria to use when querying definitions",
          "items": {
            "$ref": "#/definitions/semanticRelationshipCriteria"
          },
          "minItems": 1
        },
        "cardinality": {
          "type": "string",
          "enum": ["OneToOne", "OneToMany", "ManyToOne", "ManyToMany", "Unspecified"]
        },
        "joinType": {
          "type": "string",
          "enum": ["Auto", "Inner", "Left", "Right", "Full"]
        },
        "isEnabled": {
          "type": "boolean"
        },
        "logicalViewId": {
          "type": "string"
        },
        "dependencies": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/semanticDefinitionDependency"
          }
        }
      },
      "additionalProperties": true
    },
    "semanticDefinitionDependency": {
      "type": "object",
      "description": "Represents a dependency of a semantic definition on another definition",
      "properties": {
        "dependentDefinitionApiName": {
          "type": "string",
          "description": "API name of the dependent definition"
        },
        "dependentFieldApiName": {
          "type": "string",
          "description": "API name of the dependent data object field"
        }
      },
      "additionalProperties": true
    },
    "semanticFilter": {
      "type": "object",
      "description": "A semantic filter",
      "properties": {
        "fieldName": {
          "type": "string",
          "description": "The API name on the field being filtered"
        },
        "operator": {
          "type": "string",
          "description": "The operator for the filter"
        },
        "value": {
          "type": "string",
          "description": "The string representation of the value to filter against"
        },
        "values": {
          "type": "array",
          "description": "Array of values to filter against",
          "items": {
            "type": "string"
          }
        }
      },
      "additionalProperties": true
    },
    "semanticRelationshipCriteria": {
      "type": "object",
      "required": ["leftSemanticFieldApiName", "rightSemanticFieldApiName"],
      "description": "A semantic relationship criteria",
      "properties": {
        "leftSemanticFieldApiName": {
          "type": "string",
          "description": "The API name of the field from the left semantic data object"
        },
        "rightSemanticFieldApiName": {
          "type": "string",
          "description": "The API name of the field from the right semantic data object"
        },
        "joinOperator": {
          "type": "string",
          "enum": ["Equals", "EqualsIgnoreCase", "GreaterThan", "LessThan", "GreaterThanOrEqual", "LessThanOrEqual", "NotEquals", "NotEqualsIgnoreCase"],
          "description": "The join operator"
        },
        "leftFieldType": {
          "type": "string",
          "enum": ["TableField", "SemanticField", "Formula"],
          "description": "The left field reference type"
        },
        "rightFieldType": {
          "type": "string",
          "enum": ["TableField", "SemanticField", "Formula"],
          "description": "The right field reference type"
        }
      },
      "additionalProperties": true
    },
    "semanticBaseModel": {
      "type": "object",
      "description": "Output representation for base models",
      "properties": {
        "apiName": {
          "type": "string",
          "description": "API name of base model"
        },
        "label": {
          "type": "string",
          "description": "Label of base model"
        }
      },
      "additionalProperties": true
    },
    "semanticModelExternalConnection": {
      "type": "object",
      "description": "Output representation for external connection",
      "properties": {
        "id": {
          "type": "string"
        },
        "apiName": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "baseModelApiName": {
          "type": "string"
        },
        "createdBy": {
          "type": "string"
        },
        "createdDate": {
          "type": "string",
          "format": "date-time"
        },
        "lastModifiedBy": {
          "type": "string"
        },
        "lastModifiedDate": {
          "type": "string",
          "format": "date-time"
        },
        "description": {
          "type": "string"
        },
        "cacheKey": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "description": "Type of external connection"
        },
        "lastSync": {
          "type": "string",
          "format": "date-time",
          "description": "Indicates the last sync date from the external connection"
        },
        "tableauPublishedDataSource": {
          "type": "object",
          "description": "Additional metadata for Tableau published data source external connection"
        }
      },
      "additionalProperties": true
    },
    "semanticParameter": {
      "type": "object",
      "description": "A semantic parameter",
      "properties": {
        "id": {
          "type": "string"
        },
        "apiName": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "baseModelApiName": {
          "type": "string"
        },
        "createdBy": {
          "type": "string"
        },
        "createdDate": {
          "type": "string",
          "format": "date-time"
        },
        "lastModifiedBy": {
          "type": "string"
        },
        "lastModifiedDate": {
          "type": "string",
          "format": "date-time"
        },
        "description": {
          "type": "string"
        },
        "cacheKey": {
          "type": "string"
        },
        "isSystemDefinition": {
          "type": "boolean"
        },
        "externalConnectionApiName": {
          "type": "string"
        },
        "externalId": {
          "type": "string"
        },
        "unmapped": {
          "type": "boolean"
        },
        "isQueryable": {
          "type": "string",
          "enum": ["Queryable", "NotQueryable"]
        },
        "dataType": {
          "type": "string",
          "description": "The data type of the semantic parameter"
        },
        "type": {
          "type": "string",
          "description": "The semantic parameter type"
        },
        "defaultValue": {
          "type": "string",
          "description": "The default value of the semantic parameter"
        },
        "values": {
          "type": "array",
          "description": "The list values of the semantic parameter (deprecated)",
          "items": {
            "type": "string"
          }
        },
        "allowedValues": {
          "type": "array",
          "description": "The allowed list values of the semantic parameter",
          "items": {
            "type": "object"
          }
        },
        "minValue": {
          "type": "string",
          "description": "The minimum value range of the semantic parameter"
        },
        "maxValue": {
          "type": "string",
          "description": "The maximum value range of the semantic parameter"
        },
        "stepSize": {
          "type": "string",
          "description": "The step size range of the semantic parameter"
        },
        "externalDataType": {
          "type": "string",
          "description": "The external data type"
        },
        "dependencies": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/semanticDefinitionDependency"
          }
        }
      },
      "additionalProperties": true
    },
    "semanticOverride": {
      "type": "object",
      "description": "A semantic override representation",
      "required": ["id", "entityFqn", "entityId", "propertyName", "propertyOverrideValue"],
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the override entity"
        },
        "entityFqn": {
          "type": "string",
          "description": "The Fully Qualified Name of the overridden entity"
        },
        "entityId": {
          "type": "string",
          "description": "The ID of the overridden entity"
        },
        "propertyName": {
          "type": "string",
          "description": "The name of the overridden property"
        },
        "propertyOverrideValue": {
          "type": "string",
          "description": "The new value of the overridden property"
        },
        "propertyBaseModelValue": {
          "type": "string",
          "description": "The original value of the overridden property"
        },
        "isQueryable": {
          "type": "string",
          "enum": ["Queryable", "NotQueryable"]
        }
      },
      "additionalProperties": true
    },
    "semanticModelFilter": {
      "type": "object",
      "description": "Output representation for a semantic model filter",
      "properties": {
        "id": {
          "type": "string"
        },
        "apiName": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "baseModelApiName": {
          "type": "string"
        },
        "createdBy": {
          "type": "string"
        },
        "createdDate": {
          "type": "string",
          "format": "date-time"
        },
        "lastModifiedBy": {
          "type": "string"
        },
        "lastModifiedDate": {
          "type": "string",
          "format": "date-time"
        },
        "description": {
          "type": "string"
        },
        "cacheKey": {
          "type": "string"
        },
        "externalConnectionApiName": {
          "type": "string"
        },
        "isQueryable": {
          "type": "string",
          "enum": ["Queryable", "NotQueryable"]
        },
        "externalId": {
          "type": "string"
        },
        "filterLogic": {
          "type": "string",
          "description": "The filter logic expression that defines how the filters are combined"
        },
        "filters": {
          "type": "array",
          "description": "The list of filters to be applied",
          "items": {
            "$ref": "#/definitions/semanticFilter"
          }
        }
      },
      "additionalProperties": true
    },
    "semanticGrouping": {
      "type": "object",
      "description": "Output representation for semantic grouping",
      "required": ["apiName", "type", "fieldReference", "configuration"],
      "properties": {
        "id": {
          "type": "string"
        },
        "apiName": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "baseModelApiName": {
          "type": "string"
        },
        "createdBy": {
          "type": "string"
        },
        "createdDate": {
          "type": "string",
          "format": "date-time"
        },
        "lastModifiedBy": {
          "type": "string"
        },
        "lastModifiedDate": {
          "type": "string",
          "format": "date-time"
        },
        "description": {
          "type": "string"
        },
        "cacheKey": {
          "type": "string"
        },
        "isSystemDefinition": {
          "type": "boolean"
        },
        "externalConnectionApiName": {
          "type": "string"
        },
        "externalId": {
          "type": "string"
        },
        "unmapped": {
          "type": "boolean"
        },
        "isQueryable": {
          "type": "string",
          "enum": ["Queryable", "NotQueryable"]
        },
        "type": {
          "type": "string",
          "description": "The semantic grouping type"
        },
        "fieldReference": {
          "type": "object",
          "description": "References to a specific field"
        },
        "configuration": {
          "type": "object",
          "description": "Configurations for the semantic grouping"
        },
        "externalDataType": {
          "type": "string",
          "description": "The external data type"
        },
        "dependencies": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/semanticDefinitionDependency"
          }
        }
      },
      "additionalProperties": true
    },
    "semanticMetric": {
      "type": "object",
      "description": "Output representation for creating a semantic metric",
      "properties": {
        "id": {
          "type": "string"
        },
        "apiName": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "baseModelApiName": {
          "type": "string"
        },
        "createdBy": {
          "type": "string"
        },
        "createdDate": {
          "type": "string",
          "format": "date-time"
        },
        "lastModifiedBy": {
          "type": "string"
        },
        "lastModifiedDate": {
          "type": "string",
          "format": "date-time"
        },
        "description": {
          "type": "string"
        },
        "cacheKey": {
          "type": "string"
        },
        "isSystemDefinition": {
          "type": "boolean"
        },
        "externalConnectionApiName": {
          "type": "string"
        },
        "externalId": {
          "type": "string"
        },
        "unmapped": {
          "type": "boolean"
        },
        "isQueryable": {
          "type": "string",
          "enum": ["Queryable", "NotQueryable"]
        },
        "measurementReference": {
          "type": "object",
          "description": "References a specific calculated measurement or field"
        },
        "timeDimensionReference": {
          "type": "object",
          "description": "References a specific calculated time dimension or field"
        },
        "additionalDimensions": {
          "type": "array",
          "description": "A list of dimension API names that can be used as filters",
          "items": {
            "type": "object"
          }
        },
        "timeGrains": {
          "type": "array",
          "description": "The time grain values allowed to be used",
          "items": {
            "type": "string"
          }
        },
        "insightsSettings": {
          "type": "object",
          "description": "Insights settings for the metric"
        },
        "filterLogic": {
          "type": "string",
          "description": "The logic expression for generating a filter"
        },
        "filters": {
          "type": "array",
          "description": "A list of filters to be used",
          "items": {
            "$ref": "#/definitions/semanticFilter"
          }
        },
        "aggregationType": {
          "type": "string",
          "description": "Function that computes numerical calculations on data"
        },
        "isCumulative": {
          "type": "boolean",
          "description": "Whether the metric is cumulative"
        },
        "isGoalEditingBlocked": {
          "type": "boolean",
          "description": "Whether goal editing is blocked"
        },
        "dependencies": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/semanticDefinitionDependency"
          }
        }
      },
      "additionalProperties": true
    },
    "semanticLogicalView": {
      "type": "object",
      "description": "A semantic logical view",
      "properties": {
        "id": {
          "type": "string"
        },
        "apiName": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "baseModelApiName": {
          "type": "string"
        },
        "createdBy": {
          "type": "string"
        },
        "createdDate": {
          "type": "string",
          "format": "date-time"
        },
        "lastModifiedBy": {
          "type": "string"
        },
        "lastModifiedDate": {
          "type": "string",
          "format": "date-time"
        },
        "description": {
          "type": "string"
        },
        "cacheKey": {
          "type": "string"
        },
        "isSystemDefinition": {
          "type": "boolean"
        },
        "externalConnectionApiName": {
          "type": "string"
        },
        "externalId": {
          "type": "string"
        },
        "unmapped": {
          "type": "boolean"
        },
        "isQueryable": {
          "type": "string",
          "enum": ["Queryable", "NotQueryable"]
        },
        "semanticDataObjects": {
          "type": "array",
          "description": "The list of the referenced semantic data objects",
          "items": {
            "$ref": "#/definitions/semanticDataObject"
          }
        },
        "semanticRelationships": {
          "type": "array",
          "description": "The list of the referenced semantic relationships",
          "items": {
            "$ref": "#/definitions/semanticRelationship"
          }
        },
        "filterLogic": {
          "type": "string",
          "description": "The logic expression for generating a filter based on the list of filters"
        },
        "filters": {
          "type": "array",
          "description": "A list of filters to be used to create filter logic",
          "items": {
            "$ref": "#/definitions/semanticFilter"
          }
        },
        "semanticUnions": {
          "type": "array",
          "description": "Semantic unions",
          "items": {
            "type": "object"
          }
        },
        "customSQL": {
          "type": "string",
          "description": "Custom SQL for the logical view"
        },
        "customSQLV2": {
          "type": "string",
          "description": "Custom SQL V2 for the logical view"
        },
        "semanticViewTypeEnum": {
          "type": "string",
          "description": "The type of semantic view"
        },
        "referenceIntegritySemanticDataObjects": {
          "type": "array",
          "description": "The list of the referenced semantic data objects used for reference integrity",
          "items": {
            "$ref": "#/definitions/semanticDataObject"
          }
        },
        "tableType": {
          "type": "string",
          "enum": ["Standard", "Dimension", "Fact"]
        },
        "primaryNameField": {
          "type": "string"
        },
        "semanticOverridePolicyType": {
          "type": "string"
        },
        "overriddenProperties": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "hierarchyMetadata": {
          "type": "object",
          "description": "Hierarchy metadata"
        },
        "dependencies": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/semanticDefinitionDependency"
          }
        }
      },
      "additionalProperties": true
    },
    "semanticDimensionHierarchy": {
      "type": "object",
      "required": ["apiName", "levels"],
      "description": "Semantic dimension hierarchy output representation",
      "properties": {
        "id": {
          "type": "string"
        },
        "apiName": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "baseModelApiName": {
          "type": "string"
        },
        "createdBy": {
          "type": "string"
        },
        "createdDate": {
          "type": "string",
          "format": "date-time"
        },
        "lastModifiedBy": {
          "type": "string"
        },
        "lastModifiedDate": {
          "type": "string",
          "format": "date-time"
        },
        "description": {
          "type": "string"
        },
        "cacheKey": {
          "type": "string"
        },
        "isSystemDefinition": {
          "type": "boolean"
        },
        "externalConnectionApiName": {
          "type": "string"
        },
        "externalId": {
          "type": "string"
        },
        "unmapped": {
          "type": "boolean"
        },
        "isQueryable": {
          "type": "string",
          "enum": ["Queryable", "NotQueryable"]
        },
        "levels": {
          "type": "array",
          "description": "Ordered list of levels that define the structure of the dimension hierarchy",
          "items": {
            "type": "object"
          }
        },
        "dependencies": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/semanticDefinitionDependency"
          }
        }
      },
      "additionalProperties": true
    }
  }
}