diff --git a/specification/materializedviews/MaterializedViews.Management/examples/2025-04-01/MaterializedViews_CreateOrUpdate.json b/specification/materializedviews/MaterializedViews.Management/examples/2025-04-01/MaterializedViews_CreateOrUpdate.json new file mode 100644 index 000000000000..4f84e7c0628f --- /dev/null +++ b/specification/materializedviews/MaterializedViews.Management/examples/2025-04-01/MaterializedViews_CreateOrUpdate.json @@ -0,0 +1,66 @@ +{ + "operationId": "MaterializedViews_CreateOrUpdate", + "title": "Create or update a MaterializedView", + "parameters": { + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "resourceGroupName": "testrg", + "materializedViewName": "testview", + "api-version": "2025-04-01", + "resource": { + "location": "East US", + "properties": { + "viewDefinition": "SELECT * FROM source_table WHERE active = 1", + "refreshPolicy": { + "isAutoRefresh": true, + "refreshIntervalMinutes": 60 + }, + "dataSource": { + "connectionString": "Server=myserver;Database=mydatabase;", + "dataSourceType": "SqlServer" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/testrg/providers/Microsoft.MaterializedViews/materializedViews/testview", + "name": "testview", + "type": "Microsoft.MaterializedViews/materializedViews", + "location": "East US", + "properties": { + "provisioningState": "Succeeded", + "viewDefinition": "SELECT * FROM source_table WHERE active = 1", + "refreshPolicy": { + "isAutoRefresh": true, + "refreshIntervalMinutes": 60 + }, + "dataSource": { + "connectionString": "Server=myserver;Database=mydatabase;", + "dataSourceType": "SqlServer" + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/testrg/providers/Microsoft.MaterializedViews/materializedViews/testview", + "name": "testview", + "type": "Microsoft.MaterializedViews/materializedViews", + "location": "East US", + "properties": { + "provisioningState": "Provisioning", + "viewDefinition": "SELECT * FROM source_table WHERE active = 1", + "refreshPolicy": { + "isAutoRefresh": true, + "refreshIntervalMinutes": 60 + }, + "dataSource": { + "connectionString": "Server=myserver;Database=mydatabase;", + "dataSourceType": "SqlServer" + } + } + } + } + } +} \ No newline at end of file diff --git a/specification/materializedviews/MaterializedViews.Management/main.tsp b/specification/materializedviews/MaterializedViews.Management/main.tsp new file mode 100644 index 000000000000..0fb39c30a84b --- /dev/null +++ b/specification/materializedviews/MaterializedViews.Management/main.tsp @@ -0,0 +1,130 @@ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +using TypeSpec.Http; +using TypeSpec.Rest; +using TypeSpec.Versioning; +using Azure.ResourceManager; +using Azure.Core; + +@armProviderNamespace +@service(#{ title: "Microsoft MaterializedViews Management Service" }) +@doc("Microsoft MaterializedViews Management Service") +@versioned(Microsoft.MaterializedViews.Versions) +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) +namespace Microsoft.MaterializedViews; + +/** The available API versions. */ +enum Versions { + /** 2025-04-01 version */ + @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @useDependency(Azure.Core.Versions.v1_0_Preview_1) + v2025_04_01: "2025-04-01", +} + +interface Operations extends Azure.ResourceManager.Operations {} + +@doc("A MaterializedView resource") +model MaterializedViewResource is TrackedResource { + @pattern("^[a-zA-Z][a-zA-Z0-9-]{2,63}$") + @key("materializedViewName") + @segment("materializedViews") + @doc("MaterializedView resource name") + @visibility(Lifecycle.Read) + @path + name: string; +} + +@doc("The properties of MaterializedView resource") +model MaterializedViewProperties { + @doc("Provisioning state of MaterializedView resource.") + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + @doc("The definition of the materialized view") + viewDefinition?: string; + + @doc("The refresh policy of the materialized view") + refreshPolicy?: RefreshPolicy; + + @doc("The data source connection information") + dataSource?: DataSourceInfo; +} + +@doc("Provisioning state of the resource") +@lroStatus +union ProvisioningState { + @doc("Resource has been created.") + Succeeded: "Succeeded", + + @doc("Resource creation failed.") + Failed: "Failed", + + @doc("Resource creation was canceled.") + Canceled: "Canceled", + + @doc("This state indicates that the resource is being provisioned.") + Provisioning: "Provisioning", + + @doc("This state indicates that the resource is being updated.") + Updating: "Updating", + + @doc("This state indicates that the resource is being deleted.") + Deleting: "Deleting", + + @doc("This state indicates that the operation on the resource has been accepted.") + Accepted: "Accepted", + + string, +} + +@doc("Refresh policy for the materialized view") +model RefreshPolicy { + @doc("Whether the materialized view is automatically refreshed") + isAutoRefresh?: boolean; + + @doc("Refresh interval in minutes") + refreshIntervalMinutes?: int32; +} + +@doc("Data source information for the materialized view") +model DataSourceInfo { + @doc("The connection string to the data source") + connectionString?: string; + + @doc("The type of data source") + dataSourceType?: DataSourceType; +} + +@doc("Type of data source") +union DataSourceType { + @doc("SQL Server data source") + SqlServer: "SqlServer", + + @doc("PostgreSQL data source") + PostgreSQL: "PostgreSQL", + + @doc("Azure SQL Database") + AzureSqlDatabase: "AzureSqlDatabase", + + string, +} + +@armResourceOperations +interface MaterializedViews { + get is ArmResourceRead; + createOrUpdate is ArmResourceCreateOrReplaceAsync; + update is ArmTagsPatchAsync; + delete is ArmResourceDeleteWithoutOkAsync; + listByResourceGroup is ArmResourceListByParent; + listBySubscription is ArmListBySubscription; + + @doc("Refresh a materialized view") + @action("refresh") + refresh is ArmResourceActionNoResponseContentAsync< + MaterializedViewResource, + void + >; +} diff --git a/specification/materializedviews/MaterializedViews.Management/tspconfig.yaml b/specification/materializedviews/MaterializedViews.Management/tspconfig.yaml new file mode 100644 index 000000000000..ac3b1da3ea95 --- /dev/null +++ b/specification/materializedviews/MaterializedViews.Management/tspconfig.yaml @@ -0,0 +1,50 @@ +parameters: + "service-dir": + default: "sdk/materializedviews" +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + omit-unreachable-types: true + emitter-output-dir: "{project-root}/.." + azure-resource-provider-folder: "resource-manager" + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/materializedviews.json" + examples-dir: "{project-root}/examples" + "@azure-tools/typespec-csharp": + flavor: azure + package-dir: "Azure.ResourceManager.MaterializedViews" + clear-output-folder: true + model-namespace: false + namespace: "{package-dir}" + "@azure-tools/typespec-python": + package-dir: "azure-mgmt-materializedviews" + namespace: "azure.mgmt.materializedviews" + generate-test: true + generate-sample: true + flavor: "azure" + "@azure-tools/typespec-java": + package-dir: "azure-resourcemanager-materializedviews" + namespace: "com.azure.resourcemanager.materializedviews" + service-name: "MaterializedViews" + flavor: azure + "@azure-tools/typespec-ts": + service-dir: sdk/materializedviews + package-dir: "arm-materializedviews" + is-modular-library: true + flavor: "azure" + experimental-extensible-enums: true + package-details: + name: "@azure/arm-materializedviews" + "@azure-tools/typespec-go": + service-dir: "sdk/resourcemanager/materializedviews" + package-dir: "armmaterializedviews" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/{package-dir}" + fix-const-stuttering: true + flavor: "azure" + generate-samples: true + generate-fakes: true + head-as-boolean: true + inject-spans: true +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/resource-manager" diff --git a/specification/materializedviews/resource-manager/Microsoft.MaterializedViews/stable/2025-04-01/examples/MaterializedViews_CreateOrUpdate.json b/specification/materializedviews/resource-manager/Microsoft.MaterializedViews/stable/2025-04-01/examples/MaterializedViews_CreateOrUpdate.json new file mode 100644 index 000000000000..4f84e7c0628f --- /dev/null +++ b/specification/materializedviews/resource-manager/Microsoft.MaterializedViews/stable/2025-04-01/examples/MaterializedViews_CreateOrUpdate.json @@ -0,0 +1,66 @@ +{ + "operationId": "MaterializedViews_CreateOrUpdate", + "title": "Create or update a MaterializedView", + "parameters": { + "subscriptionId": "12345678-1234-1234-1234-123456789012", + "resourceGroupName": "testrg", + "materializedViewName": "testview", + "api-version": "2025-04-01", + "resource": { + "location": "East US", + "properties": { + "viewDefinition": "SELECT * FROM source_table WHERE active = 1", + "refreshPolicy": { + "isAutoRefresh": true, + "refreshIntervalMinutes": 60 + }, + "dataSource": { + "connectionString": "Server=myserver;Database=mydatabase;", + "dataSourceType": "SqlServer" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/testrg/providers/Microsoft.MaterializedViews/materializedViews/testview", + "name": "testview", + "type": "Microsoft.MaterializedViews/materializedViews", + "location": "East US", + "properties": { + "provisioningState": "Succeeded", + "viewDefinition": "SELECT * FROM source_table WHERE active = 1", + "refreshPolicy": { + "isAutoRefresh": true, + "refreshIntervalMinutes": 60 + }, + "dataSource": { + "connectionString": "Server=myserver;Database=mydatabase;", + "dataSourceType": "SqlServer" + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/testrg/providers/Microsoft.MaterializedViews/materializedViews/testview", + "name": "testview", + "type": "Microsoft.MaterializedViews/materializedViews", + "location": "East US", + "properties": { + "provisioningState": "Provisioning", + "viewDefinition": "SELECT * FROM source_table WHERE active = 1", + "refreshPolicy": { + "isAutoRefresh": true, + "refreshIntervalMinutes": 60 + }, + "dataSource": { + "connectionString": "Server=myserver;Database=mydatabase;", + "dataSourceType": "SqlServer" + } + } + } + } + } +} \ No newline at end of file diff --git a/specification/materializedviews/resource-manager/Microsoft.MaterializedViews/stable/2025-04-01/materializedviews.json b/specification/materializedviews/resource-manager/Microsoft.MaterializedViews/stable/2025-04-01/materializedviews.json new file mode 100644 index 000000000000..ee1b2a3085b9 --- /dev/null +++ b/specification/materializedviews/resource-manager/Microsoft.MaterializedViews/stable/2025-04-01/materializedviews.json @@ -0,0 +1,634 @@ +{ + "swagger": "2.0", + "info": { + "title": "Microsoft MaterializedViews Management Service", + "version": "2025-04-01", + "description": "Microsoft MaterializedViews Management Service", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "host": "management.azure.com", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow.", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "tags": [ + { + "name": "Operations" + }, + { + "name": "MaterializedViews" + } + ], + "paths": { + "/providers/Microsoft.MaterializedViews/operations": { + "get": { + "operationId": "Operations_List", + "tags": [ + "Operations" + ], + "description": "List the operations for the provider", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/OperationListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.MaterializedViews/materializedViews": { + "get": { + "operationId": "MaterializedViews_ListBySubscription", + "tags": [ + "MaterializedViews" + ], + "description": "List MaterializedViewResource resources by subscription ID", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/MaterializedViewResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MaterializedViews/materializedViews": { + "get": { + "operationId": "MaterializedViews_ListByResourceGroup", + "tags": [ + "MaterializedViews" + ], + "description": "List MaterializedViewResource resources by resource group", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/MaterializedViewResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MaterializedViews/materializedViews/{materializedViewName}": { + "get": { + "operationId": "MaterializedViews_Get", + "tags": [ + "MaterializedViews" + ], + "description": "Get a MaterializedViewResource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "materializedViewName", + "in": "path", + "description": "MaterializedView resource name", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9-]{2,63}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/MaterializedViewResource" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + } + }, + "put": { + "operationId": "MaterializedViews_CreateOrUpdate", + "tags": [ + "MaterializedViews" + ], + "description": "Create a MaterializedViewResource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "materializedViewName", + "in": "path", + "description": "MaterializedView resource name", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9-]{2,63}$" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/MaterializedViewResource" + } + } + ], + "responses": { + "200": { + "description": "Resource 'MaterializedViewResource' update operation succeeded", + "schema": { + "$ref": "#/definitions/MaterializedViewResource" + } + }, + "201": { + "description": "Resource 'MaterializedViewResource' create operation succeeded", + "schema": { + "$ref": "#/definitions/MaterializedViewResource" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create or update a MaterializedView": { + "$ref": "./examples/MaterializedViews_CreateOrUpdate.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "MaterializedViews_Update", + "tags": [ + "MaterializedViews" + ], + "description": "Update a MaterializedViewResource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "materializedViewName", + "in": "path", + "description": "MaterializedView resource name", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9-]{2,63}$" + }, + { + "name": "properties", + "in": "body", + "description": "The resource properties to be updated.", + "required": true, + "schema": { + "$ref": "#/definitions/MaterializedViewResourceTagsUpdate" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/MaterializedViewResource" + } + }, + "202": { + "description": "Resource update request accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "MaterializedViews_Delete", + "tags": [ + "MaterializedViews" + ], + "description": "Delete a MaterializedViewResource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "materializedViewName", + "in": "path", + "description": "MaterializedView resource name", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9-]{2,63}$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.MaterializedViews/materializedViews/{materializedViewName}/refresh": { + "post": { + "operationId": "MaterializedViews_Refresh", + "tags": [ + "MaterializedViews" + ], + "description": "Refresh a materialized view", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "materializedViewName", + "in": "path", + "description": "MaterializedView resource name", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9-]{2,63}$" + } + ], + "responses": { + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + } + }, + "definitions": { + "DataSourceInfo": { + "type": "object", + "description": "Data source information for the materialized view", + "properties": { + "connectionString": { + "type": "string", + "description": "The connection string to the data source" + }, + "dataSourceType": { + "$ref": "#/definitions/DataSourceType", + "description": "The type of data source" + } + } + }, + "DataSourceType": { + "type": "string", + "description": "Type of data source", + "enum": [ + "SqlServer", + "PostgreSQL", + "AzureSqlDatabase" + ], + "x-ms-enum": { + "name": "DataSourceType", + "modelAsString": true, + "values": [ + { + "name": "SqlServer", + "value": "SqlServer", + "description": "SQL Server data source" + }, + { + "name": "PostgreSQL", + "value": "PostgreSQL", + "description": "PostgreSQL data source" + }, + { + "name": "AzureSqlDatabase", + "value": "AzureSqlDatabase", + "description": "Azure SQL Database" + } + ] + } + }, + "MaterializedViewProperties": { + "type": "object", + "description": "The properties of MaterializedView resource", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning state of MaterializedView resource.", + "readOnly": true + }, + "viewDefinition": { + "type": "string", + "description": "The definition of the materialized view" + }, + "refreshPolicy": { + "$ref": "#/definitions/RefreshPolicy", + "description": "The refresh policy of the materialized view" + }, + "dataSource": { + "$ref": "#/definitions/DataSourceInfo", + "description": "The data source connection information" + } + } + }, + "MaterializedViewResource": { + "type": "object", + "description": "A MaterializedView resource", + "properties": { + "properties": { + "$ref": "#/definitions/MaterializedViewProperties", + "description": "The resource-specific properties for this resource." + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource" + } + ] + }, + "MaterializedViewResourceListResult": { + "type": "object", + "description": "The response of a MaterializedViewResource list operation.", + "properties": { + "value": { + "type": "array", + "description": "The MaterializedViewResource items on this page", + "items": { + "$ref": "#/definitions/MaterializedViewResource" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "MaterializedViewResourceTagsUpdate": { + "type": "object", + "description": "The type used for updating tags in MaterializedViewResource resources.", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + } + } + }, + "ProvisioningState": { + "type": "string", + "description": "Provisioning state of the resource", + "enum": [ + "Succeeded", + "Failed", + "Canceled", + "Provisioning", + "Updating", + "Deleting", + "Accepted" + ], + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Resource has been created." + }, + { + "name": "Failed", + "value": "Failed", + "description": "Resource creation failed." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "Resource creation was canceled." + }, + { + "name": "Provisioning", + "value": "Provisioning", + "description": "This state indicates that the resource is being provisioned." + }, + { + "name": "Updating", + "value": "Updating", + "description": "This state indicates that the resource is being updated." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "This state indicates that the resource is being deleted." + }, + { + "name": "Accepted", + "value": "Accepted", + "description": "This state indicates that the operation on the resource has been accepted." + } + ] + } + }, + "RefreshPolicy": { + "type": "object", + "description": "Refresh policy for the materialized view", + "properties": { + "isAutoRefresh": { + "type": "boolean", + "description": "Whether the materialized view is automatically refreshed" + }, + "refreshIntervalMinutes": { + "type": "integer", + "format": "int32", + "description": "Refresh interval in minutes" + } + } + } + }, + "parameters": {} +}