diff --git a/specification/managedoperations/ManagedOps.Management/examples/2025-07-28-preview/ManagedOps_CreateOrUpdate.json b/specification/managedoperations/ManagedOps.Management/examples/2025-07-28-preview/ManagedOps_CreateOrUpdate.json new file mode 100644 index 000000000000..29e63bde0ad3 --- /dev/null +++ b/specification/managedoperations/ManagedOps.Management/examples/2025-07-28-preview/ManagedOps_CreateOrUpdate.json @@ -0,0 +1,147 @@ +{ + "title": "ManagedOps_CreateOrUpdate", + "operationId": "ManagedOps_CreateOrUpdate", + "parameters": { + "api-version": "2025-07-28-preview", + "subscriptionId": "11809CA1-E126-4017-945E-AA795CD5C5A9", + "managedOpsName": "default", + "resource": { + "properties": { + "sku": { + "name": "ManagedOps", + "tier": "Basic" + }, + "desiredConfiguration": { + "changeTrackingAndInventory": { + "logAnalyticsWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.OperationalInsights/workspaces/00000000-0000-0000-0000-000000000000-Default" + }, + "azureMonitorInsights": { + "azureMonitorWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.Monitor/accounts/example" + }, + "userAssignedManagedIdentityId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myManagedIdentity" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/providers/Microsoft.ManagedOps/managedOps/default", + "name": "default", + "type": "Microsoft.ManagedOps/managedOps", + "systemData": { + "createdBy": "myUser", + "createdByType": "User", + "createdAt": "2023-05-19T00:28:48.610Z", + "lastModifiedBy": "myUser", + "lastModifiedByType": "User", + "lastModifiedAt": "2023-05-19T00:28:48.610Z" + }, + "properties": { + "sku": { + "name": "ManagedOps", + "tier": "Basic" + }, + "desiredConfiguration": { + "changeTrackingAndInventory": { + "logAnalyticsWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.OperationalInsights/workspaces/00000000-0000-0000-0000-000000000000-Default" + }, + "azureMonitorInsights": { + "azureMonitorWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.Monitor/accounts/example" + }, + "userAssignedManagedIdentityId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myManagedIdentity", + "defenderForServers": "Disable", + "defenderCspm": "Disable" + }, + "provisioningState": "Provisioning", + "policyAssignmentProperties": { + "policyInitiativeAssignmentId": "/subscriptions/aa4c0cba-5c0a-4751-a5e3-ea28e50afeeb/providers/microsoft.authorization/policyassignments/test-edition-policy-2" + }, + "services": { + "changeTrackingAndInventory": { + "dcrId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/xingftestrg/providers/Microsoft.Insights/dataCollectionRules/ct-dcr131878407", + "enablementStatus": "Enabled" + }, + "azureMonitorInsights": { + "dcrId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/xingftestrg/providers/Microsoft.Insights/dataCollectionRules/ami-dcr131878407", + "enablementStatus": "Enabled" + }, + "azureUpdateManager": { + "enablementStatus": "Enabled" + }, + "azurePolicyAndMachineConfiguration": { + "enablementStatus": "Enabled" + }, + "defenderForServers": { + "enablementStatus": "Enabled" + }, + "defenderCspm": { + "enablementStatus": "Enabled" + } + } + } + } + }, + "201": { + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + }, + "body": { + "id": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/providers/Microsoft.ManagedOps/managedOps/default", + "name": "default", + "type": "Microsoft.ManagedOps/managedOps", + "systemData": { + "createdBy": "myUser", + "createdByType": "User", + "createdAt": "2023-05-19T00:28:48.610Z", + "lastModifiedBy": "myUser", + "lastModifiedByType": "User", + "lastModifiedAt": "2023-05-19T00:28:48.610Z" + }, + "properties": { + "sku": { + "name": "ManagedOps", + "tier": "Basic" + }, + "desiredConfiguration": { + "changeTrackingAndInventory": { + "logAnalyticsWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.OperationalInsights/workspaces/00000000-0000-0000-0000-000000000000-Default" + }, + "azureMonitorInsights": { + "azureMonitorWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.Monitor/accounts/example" + }, + "userAssignedManagedIdentityId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myManagedIdentity", + "defenderForServers": "Enable", + "defenderCspm": "Enable" + }, + "provisioningState": "Provisioning", + "policyAssignmentProperties": { + "policyInitiativeAssignmentId": "/subscriptions/aa4c0cba-5c0a-4751-a5e3-ea28e50afeeb/providers/microsoft.authorization/policyassignments/test-edition-policy-2" + }, + "services": { + "changeTrackingAndInventory": { + "dcrId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/xingftestrg/providers/Microsoft.Insights/dataCollectionRules/ct-dcr131878407", + "enablementStatus": "Enabled" + }, + "azureMonitorInsights": { + "dcrId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/xingftestrg/providers/Microsoft.Insights/dataCollectionRules/ami-dcr131878407", + "enablementStatus": "Enabled" + }, + "azureUpdateManager": { + "enablementStatus": "Enabled" + }, + "azurePolicyAndMachineConfiguration": { + "enablementStatus": "Enabled" + }, + "defenderForServers": { + "enablementStatus": "Enabled" + }, + "defenderCspm": { + "enablementStatus": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/managedoperations/ManagedOps.Management/examples/2025-07-28-preview/ManagedOps_Delete.json b/specification/managedoperations/ManagedOps.Management/examples/2025-07-28-preview/ManagedOps_Delete.json new file mode 100644 index 000000000000..18f504b83498 --- /dev/null +++ b/specification/managedoperations/ManagedOps.Management/examples/2025-07-28-preview/ManagedOps_Delete.json @@ -0,0 +1,18 @@ +{ + "title": "ManagedOps_Delete", + "operationId": "ManagedOps_Delete", + "parameters": { + "api-version": "2025-07-28-preview", + "subscriptionId": "11809CA1-E126-4017-945E-AA795CD5C5A9", + "managedOpsName": "default" + }, + "responses": { + "202": { + "headers": { + "location": "https://contoso.com/operationstatus", + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + } + }, + "204": {} + } +} diff --git a/specification/managedoperations/ManagedOps.Management/examples/2025-07-28-preview/ManagedOps_Get.json b/specification/managedoperations/ManagedOps.Management/examples/2025-07-28-preview/ManagedOps_Get.json new file mode 100644 index 000000000000..b482f75442de --- /dev/null +++ b/specification/managedoperations/ManagedOps.Management/examples/2025-07-28-preview/ManagedOps_Get.json @@ -0,0 +1,69 @@ +{ + "title": "ManagedOps_Get", + "operationId": "ManagedOps_Get", + "parameters": { + "api-version": "2025-07-28-preview", + "subscriptionId": "11809CA1-E126-4017-945E-AA795CD5C5A9", + "managedOpsName": "default" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/providers/Microsoft.ManagedOps/managedOps/default", + "name": "default", + "type": "Microsoft.ManagedOps/managedOps", + "systemData": { + "createdBy": "myUser", + "createdByType": "User", + "createdAt": "2023-05-19T00:28:48.610Z", + "lastModifiedBy": "myUser", + "lastModifiedByType": "User", + "lastModifiedAt": "2023-05-19T00:28:48.610Z" + }, + "properties": { + "sku": { + "name": "ManagedOps", + "tier": "Basic" + }, + "desiredConfiguration": { + "changeTrackingAndInventory": { + "logAnalyticsWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.OperationalInsights/workspaces/00000000-0000-0000-0000-000000000000-Default" + }, + "azureMonitorInsights": { + "azureMonitorWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.Monitor/accounts/example" + }, + "userAssignedManagedIdentityId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myManagedIdentity", + "defenderForServers": "Enable", + "defenderCspm": "Enable" + }, + "provisioningState": "Provisioning", + "policyAssignmentProperties": { + "policyInitiativeAssignmentId": "/subscriptions/aa4c0cba-5c0a-4751-a5e3-ea28e50afeeb/providers/microsoft.authorization/policyassignments/test-edition-policy-2" + }, + "services": { + "changeTrackingAndInventory": { + "dcrId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/xingftestrg/providers/Microsoft.Insights/dataCollectionRules/ct-dcr131878407", + "enablementStatus": "Enabled" + }, + "azureMonitorInsights": { + "dcrId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/xingftestrg/providers/Microsoft.Insights/dataCollectionRules/ami-dcr131878407", + "enablementStatus": "Enabled" + }, + "azureUpdateManager": { + "enablementStatus": "Enabled" + }, + "azurePolicyAndMachineConfiguration": { + "enablementStatus": "Enabled" + }, + "defenderForServers": { + "enablementStatus": "Enabled" + }, + "defenderCspm": { + "enablementStatus": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/managedoperations/ManagedOps.Management/examples/2025-07-28-preview/ManagedOps_List.json b/specification/managedoperations/ManagedOps.Management/examples/2025-07-28-preview/ManagedOps_List.json new file mode 100644 index 000000000000..757acff124bd --- /dev/null +++ b/specification/managedoperations/ManagedOps.Management/examples/2025-07-28-preview/ManagedOps_List.json @@ -0,0 +1,72 @@ +{ + "title": "ManagedOps_List", + "operationId": "ManagedOps_List", + "parameters": { + "api-version": "2025-07-28-preview", + "subscriptionId": "11809CA1-E126-4017-945E-AA795CD5C5A9" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/providers/Microsoft.ManagedOps/managedOps/default", + "name": "default", + "type": "Microsoft.ManagedOps/managedOps", + "systemData": { + "createdBy": "myUser", + "createdByType": "User", + "createdAt": "2023-05-19T00:28:48.610Z", + "lastModifiedBy": "myUser", + "lastModifiedByType": "User", + "lastModifiedAt": "2023-05-19T00:28:48.610Z" + }, + "properties": { + "sku": { + "name": "ManagedOps", + "tier": "Basic" + }, + "desiredConfiguration": { + "changeTrackingAndInventory": { + "logAnalyticsWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.OperationalInsights/workspaces/00000000-0000-0000-0000-000000000000-Default" + }, + "azureMonitorInsights": { + "azureMonitorWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.Monitor/accounts/example" + }, + "userAssignedManagedIdentityId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myManagedIdentity", + "defenderForServers": "Enable", + "defenderCspm": "Enable" + }, + "provisioningState": "Provisioning", + "policyAssignmentProperties": { + "policyInitiativeAssignmentId": "/subscriptions/aa4c0cba-5c0a-4751-a5e3-ea28e50afeeb/providers/microsoft.authorization/policyassignments/test-edition-policy-2" + }, + "services": { + "changeTrackingAndInventory": { + "dcrId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/xingftestrg/providers/Microsoft.Insights/dataCollectionRules/ct-dcr131878407", + "enablementStatus": "Enabled" + }, + "azureMonitorInsights": { + "dcrId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/xingftestrg/providers/Microsoft.Insights/dataCollectionRules/ami-dcr131878407", + "enablementStatus": "Enabled" + }, + "azureUpdateManager": { + "enablementStatus": "Enabled" + }, + "azurePolicyAndMachineConfiguration": { + "enablementStatus": "Enabled" + }, + "defenderForServers": { + "enablementStatus": "Enabled" + }, + "defenderCspm": { + "enablementStatus": "Enabled" + } + } + } + } + ] + } + } + } +} diff --git a/specification/managedoperations/ManagedOps.Management/examples/2025-07-28-preview/ManagedOps_Update.json b/specification/managedoperations/ManagedOps.Management/examples/2025-07-28-preview/ManagedOps_Update.json new file mode 100644 index 000000000000..6d47772a7ab1 --- /dev/null +++ b/specification/managedoperations/ManagedOps.Management/examples/2025-07-28-preview/ManagedOps_Update.json @@ -0,0 +1,75 @@ +{ + "title": "ManagedOps_Update", + "operationId": "ManagedOps_Update", + "parameters": { + "api-version": "2025-07-28-preview", + "subscriptionId": "11809CA1-E126-4017-945E-AA795CD5C5A9", + "managedOpsName": "default", + "properties": {} + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/providers/Microsoft.ManagedOps/managedOps/default", + "name": "default", + "type": "Microsoft.ManagedOps/managedOps", + "systemData": { + "createdBy": "myUser", + "createdByType": "User", + "createdAt": "2023-05-19T00:28:48.610Z", + "lastModifiedBy": "myUser", + "lastModifiedByType": "User", + "lastModifiedAt": "2023-05-19T00:28:48.610Z" + }, + "properties": { + "sku": { + "name": "ManagedOps", + "tier": "Basic" + }, + "desiredConfiguration": { + "changeTrackingAndInventory": { + "logAnalyticsWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.OperationalInsights/workspaces/00000000-0000-0000-0000-000000000000-Default" + }, + "azureMonitorInsights": { + "azureMonitorWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.Monitor/accounts/example" + }, + "userAssignedManagedIdentityId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myManagedIdentity", + "defenderForServers": "Enable", + "defenderCspm": "Enable" + }, + "provisioningState": "Provisioning", + "policyAssignmentProperties": { + "policyInitiativeAssignmentId": "/subscriptions/aa4c0cba-5c0a-4751-a5e3-ea28e50afeeb/providers/microsoft.authorization/policyassignments/test-edition-policy-2" + }, + "services": { + "changeTrackingAndInventory": { + "dcrId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/xingftestrg/providers/Microsoft.Insights/dataCollectionRules/ct-dcr131878407", + "enablementStatus": "Enabled" + }, + "azureMonitorInsights": { + "dcrId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/xingftestrg/providers/Microsoft.Insights/dataCollectionRules/ami-dcr131878407", + "enablementStatus": "Enabled" + }, + "azureUpdateManager": { + "enablementStatus": "Enabled" + }, + "azurePolicyAndMachineConfiguration": { + "enablementStatus": "Enabled" + }, + "defenderForServers": { + "enablementStatus": "Enabled" + }, + "defenderCspm": { + "enablementStatus": "Enabled" + } + } + } + } + }, + "202": { + "headers": { + "location": "https://contoso.com/operationstatus" + } + } + } +} diff --git a/specification/managedoperations/ManagedOps.Management/examples/2025-07-28-preview/Operations_List.json b/specification/managedoperations/ManagedOps.Management/examples/2025-07-28-preview/Operations_List.json new file mode 100644 index 000000000000..2110e900d771 --- /dev/null +++ b/specification/managedoperations/ManagedOps.Management/examples/2025-07-28-preview/Operations_List.json @@ -0,0 +1,25 @@ +{ + "title": "Operations_List", + "operationId": "Operations_List", + "parameters": { + "api-version": "2025-07-28-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "NameOfOperation", + "display": { + "provider": "myProvider", + "resource": "myResource", + "operation": "read", + "description": "Read resources" + } + } + ], + "nextLink": null + } + } + } +} diff --git a/specification/managedoperations/ManagedOps.Management/main.tsp b/specification/managedoperations/ManagedOps.Management/main.tsp new file mode 100644 index 000000000000..fb3ecbc8f953 --- /dev/null +++ b/specification/managedoperations/ManagedOps.Management/main.tsp @@ -0,0 +1,23 @@ +import "@typespec/http"; +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./managedOps.tsp"; + +using Versioning; +using Azure.ResourceManager; + +@armProviderNamespace +@service(#{ title: "Managed Operations control plane service" }) +@doc("Managed Operations API.") +@versioned(Microsoft.ManagedOps.Versions) +namespace Microsoft.ManagedOps; + +enum Versions { + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) + @doc("2025-07-28-preview") + v2025_07_28_preview: "2025-07-28-preview", +} + +interface Operations extends Azure.ResourceManager.Operations {} diff --git a/specification/managedoperations/ManagedOps.Management/managedOps.tsp b/specification/managedoperations/ManagedOps.Management/managedOps.tsp new file mode 100644 index 000000000000..7c969ff82ac9 --- /dev/null +++ b/specification/managedoperations/ManagedOps.Management/managedOps.tsp @@ -0,0 +1,245 @@ +import "@typespec/http"; +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +using Http; +using Rest; +using Versioning; +using Azure.Core; +using Azure.ResourceManager; + +@armProviderNamespace +@service(#{ title: "Managed Operations control plane service" }) +@doc("Managed Operations API.") +@versioned(Microsoft.ManagedOps.Versions) +namespace Microsoft.ManagedOps; + +@doc("The Managed Operations resource.") +@subscriptionResource +model ManagedOp is ProxyResource { + /** Fix the name of the resource to ensure it is a singleton */ + @doc("Name of the resource.") + @key("managedOpsName") + @pattern("default") + @segment("managedOps") + @path + name: string; +} + +@doc("Properties of the ManagedOps resource.") +model ManagedOpsProperties { + @doc("Product plan details of this resource.") + @visibility(Lifecycle.Read) + sku?: Sku; + + @doc("Provisioning state of the resource.") + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + @doc("Desired configuration input by the user.") + @visibility(Lifecycle.Read, Lifecycle.Create, Lifecycle.Update) + desiredConfiguration: DesiredConfiguration; + + @doc("Services provisioned by this resource.") + @visibility(Lifecycle.Read) + services?: ServiceInformation; + + @doc("Policy assignments created for managing services.") + @visibility(Lifecycle.Read) + policyAssignmentProperties?: PolicyAssignmentProperties; +} + +@doc("Services provisioned by this resource.") +model ServiceInformation { + @doc("Change Tracking and Inventory service information.") + @visibility(Lifecycle.Read) + changeTrackingAndInventory?: ChangeTrackingInformation; + + @doc("Azure Monitor Insights service information.") + @visibility(Lifecycle.Read) + azureMonitorInsights?: AzureMonitorInformation; + + @doc("Azure Update Manager service information.") + @visibility(Lifecycle.Read) + azureUpdateManager?: UpdateManagerInformation; + + @doc("Azure Policy and Machine Configuration service information.") + @visibility(Lifecycle.Read) + azurePolicyAndMachineConfiguration?: GuestConfigurationInformation; + + @doc("Defender for Servers service information.") + @visibility(Lifecycle.Read) + defenderForServers?: DefenderForServersInformation; + + @doc("Defender for Cloud's Cloud security posture management (CSPM) service information.") + @visibility(Lifecycle.Read) + defenderCspm?: DefenderCspmInformation; +} + +@doc("Policy assignments created for managing services.") +model PolicyAssignmentProperties { + @doc("Policy initiative assignment ID.") + policyInitiativeAssignmentId: armResourceIdentifier<[ + { + type: "Microsoft.Authorization/policyassignments"; + } + ]>; +} + +#suppress "@azure-tools/typespec-azure-core/no-unnamed-union" "Maintaining compatibility with current SDKs." +alias enablementState = + | "Enabled" + | "InProgress" + | "Failed" + | "Disabled" + | string; + +@doc("Change Tracking and Inventory service information.") +model ChangeTrackingInformation { + @doc("ID of Data Collection Rule (DCR) associated with this service.") + dcrId: armResourceIdentifier<[ + { + type: "Microsoft.Insights/dataCollectionRules"; + } + ]>; + + @doc("Indicates whether the service is enabled.") + enablementStatus: enablementState; +} + +@doc("Azure Monitor Insights service information.") +model AzureMonitorInformation { + @doc("ID of Data Collection Rule (DCR) associated with this service.") + dcrId: armResourceIdentifier<[ + { + type: "Microsoft.Insights/dataCollectionRules"; + } + ]>; + + @doc("Indicates whether the service is enabled.") + enablementStatus: enablementState; +} + +@doc("Azure Update Manager service information.") +model UpdateManagerInformation { + @doc("Indicates whether the service is enabled.") + enablementStatus: enablementState; +} + +@doc("Azure Policy and Machine Configuration service information.") +model GuestConfigurationInformation { + @doc("Indicates whether the service is enabled.") + enablementStatus: enablementState; +} + +@doc("Defender for Servers service information.") +model DefenderForServersInformation { + @doc("Indicates whether the service is enabled.") + enablementStatus: enablementState; +} + +@doc("Defender Cloud Security Posture Management (CSPM) service information.") +model DefenderCspmInformation { + @doc("Indicates whether the service is enabled.") + enablementStatus: enablementState; +} + +@doc("Specifies the service plan for this resource.") +model Sku { + @doc("Name of the SKU.") + name: string; + + @doc("Pricing tier of the SKU.") + tier: string; +} + +@doc("Desired configuration input by the user.") +model DesiredConfiguration { + @doc("Configuration for the Change Tracking and Inventory service.") + @visibility(Lifecycle.Create, Lifecycle.Read) + changeTrackingAndInventory: ChangeTrackingConfiguration; + + @doc("Configuration for the Azure Monitor Insights service.") + @visibility(Lifecycle.Create, Lifecycle.Read) + azureMonitorInsights: AzureMonitorConfiguration; + + @doc("User assigned Managed Identity used to perform operations on machines managed by Ops360.") + @visibility(Lifecycle.Create, Lifecycle.Read) + userAssignedManagedIdentityId: armResourceIdentifier<[ + { + type: "Microsoft.ManagedIdentity/userAssignedIdentities"; + } + ]>; + + @doc("Desired enablement state of the Defender For Servers service.") + @visibility(Lifecycle.Read, Lifecycle.Update, Lifecycle.Create) + defenderForServers?: desiredEnablementState; + + @doc("Desired enablement state of the Defender Cloud Security Posture Management (CSPM) service.") + @visibility(Lifecycle.Read, Lifecycle.Update, Lifecycle.Create) + defenderCspm?: desiredEnablementState; +} + +#suppress "@azure-tools/typespec-azure-core/no-unnamed-union" "Maintaining compatibility with current SDKs." +alias desiredEnablementState = "Enable" | "Disable" | string; + +@doc("Configuration for the Change Tracking and Inventory service.") +model ChangeTrackingConfiguration { + @doc("Log analytics workspace resource ID used by the service.") + logAnalyticsWorkspaceId: armResourceIdentifier<[ + { + type: "Microsoft.OperationalInsights/workspaces"; + } + ]>; +} + +@doc("Configuration for the Azure Monitor Insights service.") +model AzureMonitorConfiguration { + @doc("Azure monitor workspace resource ID used by the service.") + azureMonitorWorkspaceId: armResourceIdentifier<[ + { + type: "Microsoft.Monitor/accounts"; + } + ]>; +} + +@doc("The provisioning state of a resource.") +@lroStatus +union ProvisioningState { + string, + ResourceProvisioningState, + + @doc("The resource has begun provisioning.") + Provisioning: "Provisioning", + + @doc("The resource is being deleted.") + Deleting: "Deleting", +} + +/** The operations that can be performed on our resource */ +@armResourceOperations(ManagedOp) +interface ManagedOps { + @doc("Gets the information of the ManagedOps instance.") + get is ArmResourceRead; + + @doc("Creates or updates the ManagedOps instance.") + createOrUpdate is ArmResourceCreateOrUpdateAsync; + + @doc("List all ManagedOps instances in the subscription.") + list is ArmListBySubscription; + + @doc("Updates the ManagedOps instance with the supplied fields.") + @patch(#{ implicitOptionality: true }) + update is ArmCustomPatchAsync< + ManagedOp, + Azure.ResourceManager.Foundations.ResourceUpdateModel< + ManagedOp, + ManagedOpsProperties + > + >; + + @doc("Deletes the ManagedOps instance.") + delete is ArmResourceDeleteWithoutOkAsync; +} diff --git a/specification/managedoperations/ManagedOps.Management/tspconfig.yaml b/specification/managedoperations/ManagedOps.Management/tspconfig.yaml new file mode 100644 index 000000000000..7558bd1087c9 --- /dev/null +++ b/specification/managedoperations/ManagedOps.Management/tspconfig.yaml @@ -0,0 +1,47 @@ +parameters: + "service-dir": + default: "sdk/managedops" +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + use-read-only-status-schema: true + emitter-output-dir: "{project-root}/.." + azure-resource-provider-folder: "resource-manager" + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/managedops.json" + "@azure-tools/typespec-csharp": + flavor: azure + emitter-output-dir: "{output-dir}/{service-dir}/Azure.ResourceManager.ManagedOps" + clear-output-folder: true + model-namespace: true + namespace: "Azure.ResourceManager.ManagedOps" + "@azure-tools/typespec-python": + emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-managedops" + namespace: "azure.mgmt.managedops" + generate-test: true + generate-sample: true + flavor: "azure" + "@azure-tools/typespec-ts": + emitter-output-dir: "{output-dir}/{service-dir}/arm-managedops" + flavor: azure + experimental-extensible-enums: true + package-details: + name: "@azure/arm-managedops" + "@azure-tools/typespec-go": + service-dir: "sdk/resourcemanager/managedops" + emitter-output-dir: "{output-dir}/{service-dir}/armmanagedops" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armmanagedops" + fix-const-stuttering: true + flavor: "azure" + generate-samples: true + generate-fakes: true + head-as-boolean: true + inject-spans: true + "@azure-tools/typespec-java": + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-managedops" + namespace: "com.azure.resourcemanager.managedops" + service-name: "ManagedOps" + flavor: "azure" +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/resource-manager" diff --git a/specification/managedoperations/cspell.yaml b/specification/managedoperations/cspell.yaml new file mode 100644 index 000000000000..409160e8fe1c --- /dev/null +++ b/specification/managedoperations/cspell.yaml @@ -0,0 +1,4 @@ +import: + - ../../cspell.yaml +words: + - cspm diff --git a/specification/managedoperations/resource-manager/Microsoft.ManagedOps/preview/2025-07-28-preview/examples/ManagedOps_CreateOrUpdate.json b/specification/managedoperations/resource-manager/Microsoft.ManagedOps/preview/2025-07-28-preview/examples/ManagedOps_CreateOrUpdate.json new file mode 100644 index 000000000000..29e63bde0ad3 --- /dev/null +++ b/specification/managedoperations/resource-manager/Microsoft.ManagedOps/preview/2025-07-28-preview/examples/ManagedOps_CreateOrUpdate.json @@ -0,0 +1,147 @@ +{ + "title": "ManagedOps_CreateOrUpdate", + "operationId": "ManagedOps_CreateOrUpdate", + "parameters": { + "api-version": "2025-07-28-preview", + "subscriptionId": "11809CA1-E126-4017-945E-AA795CD5C5A9", + "managedOpsName": "default", + "resource": { + "properties": { + "sku": { + "name": "ManagedOps", + "tier": "Basic" + }, + "desiredConfiguration": { + "changeTrackingAndInventory": { + "logAnalyticsWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.OperationalInsights/workspaces/00000000-0000-0000-0000-000000000000-Default" + }, + "azureMonitorInsights": { + "azureMonitorWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.Monitor/accounts/example" + }, + "userAssignedManagedIdentityId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myManagedIdentity" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/providers/Microsoft.ManagedOps/managedOps/default", + "name": "default", + "type": "Microsoft.ManagedOps/managedOps", + "systemData": { + "createdBy": "myUser", + "createdByType": "User", + "createdAt": "2023-05-19T00:28:48.610Z", + "lastModifiedBy": "myUser", + "lastModifiedByType": "User", + "lastModifiedAt": "2023-05-19T00:28:48.610Z" + }, + "properties": { + "sku": { + "name": "ManagedOps", + "tier": "Basic" + }, + "desiredConfiguration": { + "changeTrackingAndInventory": { + "logAnalyticsWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.OperationalInsights/workspaces/00000000-0000-0000-0000-000000000000-Default" + }, + "azureMonitorInsights": { + "azureMonitorWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.Monitor/accounts/example" + }, + "userAssignedManagedIdentityId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myManagedIdentity", + "defenderForServers": "Disable", + "defenderCspm": "Disable" + }, + "provisioningState": "Provisioning", + "policyAssignmentProperties": { + "policyInitiativeAssignmentId": "/subscriptions/aa4c0cba-5c0a-4751-a5e3-ea28e50afeeb/providers/microsoft.authorization/policyassignments/test-edition-policy-2" + }, + "services": { + "changeTrackingAndInventory": { + "dcrId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/xingftestrg/providers/Microsoft.Insights/dataCollectionRules/ct-dcr131878407", + "enablementStatus": "Enabled" + }, + "azureMonitorInsights": { + "dcrId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/xingftestrg/providers/Microsoft.Insights/dataCollectionRules/ami-dcr131878407", + "enablementStatus": "Enabled" + }, + "azureUpdateManager": { + "enablementStatus": "Enabled" + }, + "azurePolicyAndMachineConfiguration": { + "enablementStatus": "Enabled" + }, + "defenderForServers": { + "enablementStatus": "Enabled" + }, + "defenderCspm": { + "enablementStatus": "Enabled" + } + } + } + } + }, + "201": { + "headers": { + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + }, + "body": { + "id": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/providers/Microsoft.ManagedOps/managedOps/default", + "name": "default", + "type": "Microsoft.ManagedOps/managedOps", + "systemData": { + "createdBy": "myUser", + "createdByType": "User", + "createdAt": "2023-05-19T00:28:48.610Z", + "lastModifiedBy": "myUser", + "lastModifiedByType": "User", + "lastModifiedAt": "2023-05-19T00:28:48.610Z" + }, + "properties": { + "sku": { + "name": "ManagedOps", + "tier": "Basic" + }, + "desiredConfiguration": { + "changeTrackingAndInventory": { + "logAnalyticsWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.OperationalInsights/workspaces/00000000-0000-0000-0000-000000000000-Default" + }, + "azureMonitorInsights": { + "azureMonitorWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.Monitor/accounts/example" + }, + "userAssignedManagedIdentityId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myManagedIdentity", + "defenderForServers": "Enable", + "defenderCspm": "Enable" + }, + "provisioningState": "Provisioning", + "policyAssignmentProperties": { + "policyInitiativeAssignmentId": "/subscriptions/aa4c0cba-5c0a-4751-a5e3-ea28e50afeeb/providers/microsoft.authorization/policyassignments/test-edition-policy-2" + }, + "services": { + "changeTrackingAndInventory": { + "dcrId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/xingftestrg/providers/Microsoft.Insights/dataCollectionRules/ct-dcr131878407", + "enablementStatus": "Enabled" + }, + "azureMonitorInsights": { + "dcrId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/xingftestrg/providers/Microsoft.Insights/dataCollectionRules/ami-dcr131878407", + "enablementStatus": "Enabled" + }, + "azureUpdateManager": { + "enablementStatus": "Enabled" + }, + "azurePolicyAndMachineConfiguration": { + "enablementStatus": "Enabled" + }, + "defenderForServers": { + "enablementStatus": "Enabled" + }, + "defenderCspm": { + "enablementStatus": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/managedoperations/resource-manager/Microsoft.ManagedOps/preview/2025-07-28-preview/examples/ManagedOps_Delete.json b/specification/managedoperations/resource-manager/Microsoft.ManagedOps/preview/2025-07-28-preview/examples/ManagedOps_Delete.json new file mode 100644 index 000000000000..18f504b83498 --- /dev/null +++ b/specification/managedoperations/resource-manager/Microsoft.ManagedOps/preview/2025-07-28-preview/examples/ManagedOps_Delete.json @@ -0,0 +1,18 @@ +{ + "title": "ManagedOps_Delete", + "operationId": "ManagedOps_Delete", + "parameters": { + "api-version": "2025-07-28-preview", + "subscriptionId": "11809CA1-E126-4017-945E-AA795CD5C5A9", + "managedOpsName": "default" + }, + "responses": { + "202": { + "headers": { + "location": "https://contoso.com/operationstatus", + "Azure-AsyncOperation": "https://contoso.com/operationstatus" + } + }, + "204": {} + } +} diff --git a/specification/managedoperations/resource-manager/Microsoft.ManagedOps/preview/2025-07-28-preview/examples/ManagedOps_Get.json b/specification/managedoperations/resource-manager/Microsoft.ManagedOps/preview/2025-07-28-preview/examples/ManagedOps_Get.json new file mode 100644 index 000000000000..b482f75442de --- /dev/null +++ b/specification/managedoperations/resource-manager/Microsoft.ManagedOps/preview/2025-07-28-preview/examples/ManagedOps_Get.json @@ -0,0 +1,69 @@ +{ + "title": "ManagedOps_Get", + "operationId": "ManagedOps_Get", + "parameters": { + "api-version": "2025-07-28-preview", + "subscriptionId": "11809CA1-E126-4017-945E-AA795CD5C5A9", + "managedOpsName": "default" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/providers/Microsoft.ManagedOps/managedOps/default", + "name": "default", + "type": "Microsoft.ManagedOps/managedOps", + "systemData": { + "createdBy": "myUser", + "createdByType": "User", + "createdAt": "2023-05-19T00:28:48.610Z", + "lastModifiedBy": "myUser", + "lastModifiedByType": "User", + "lastModifiedAt": "2023-05-19T00:28:48.610Z" + }, + "properties": { + "sku": { + "name": "ManagedOps", + "tier": "Basic" + }, + "desiredConfiguration": { + "changeTrackingAndInventory": { + "logAnalyticsWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.OperationalInsights/workspaces/00000000-0000-0000-0000-000000000000-Default" + }, + "azureMonitorInsights": { + "azureMonitorWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.Monitor/accounts/example" + }, + "userAssignedManagedIdentityId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myManagedIdentity", + "defenderForServers": "Enable", + "defenderCspm": "Enable" + }, + "provisioningState": "Provisioning", + "policyAssignmentProperties": { + "policyInitiativeAssignmentId": "/subscriptions/aa4c0cba-5c0a-4751-a5e3-ea28e50afeeb/providers/microsoft.authorization/policyassignments/test-edition-policy-2" + }, + "services": { + "changeTrackingAndInventory": { + "dcrId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/xingftestrg/providers/Microsoft.Insights/dataCollectionRules/ct-dcr131878407", + "enablementStatus": "Enabled" + }, + "azureMonitorInsights": { + "dcrId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/xingftestrg/providers/Microsoft.Insights/dataCollectionRules/ami-dcr131878407", + "enablementStatus": "Enabled" + }, + "azureUpdateManager": { + "enablementStatus": "Enabled" + }, + "azurePolicyAndMachineConfiguration": { + "enablementStatus": "Enabled" + }, + "defenderForServers": { + "enablementStatus": "Enabled" + }, + "defenderCspm": { + "enablementStatus": "Enabled" + } + } + } + } + } + } +} diff --git a/specification/managedoperations/resource-manager/Microsoft.ManagedOps/preview/2025-07-28-preview/examples/ManagedOps_List.json b/specification/managedoperations/resource-manager/Microsoft.ManagedOps/preview/2025-07-28-preview/examples/ManagedOps_List.json new file mode 100644 index 000000000000..757acff124bd --- /dev/null +++ b/specification/managedoperations/resource-manager/Microsoft.ManagedOps/preview/2025-07-28-preview/examples/ManagedOps_List.json @@ -0,0 +1,72 @@ +{ + "title": "ManagedOps_List", + "operationId": "ManagedOps_List", + "parameters": { + "api-version": "2025-07-28-preview", + "subscriptionId": "11809CA1-E126-4017-945E-AA795CD5C5A9" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/providers/Microsoft.ManagedOps/managedOps/default", + "name": "default", + "type": "Microsoft.ManagedOps/managedOps", + "systemData": { + "createdBy": "myUser", + "createdByType": "User", + "createdAt": "2023-05-19T00:28:48.610Z", + "lastModifiedBy": "myUser", + "lastModifiedByType": "User", + "lastModifiedAt": "2023-05-19T00:28:48.610Z" + }, + "properties": { + "sku": { + "name": "ManagedOps", + "tier": "Basic" + }, + "desiredConfiguration": { + "changeTrackingAndInventory": { + "logAnalyticsWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.OperationalInsights/workspaces/00000000-0000-0000-0000-000000000000-Default" + }, + "azureMonitorInsights": { + "azureMonitorWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.Monitor/accounts/example" + }, + "userAssignedManagedIdentityId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myManagedIdentity", + "defenderForServers": "Enable", + "defenderCspm": "Enable" + }, + "provisioningState": "Provisioning", + "policyAssignmentProperties": { + "policyInitiativeAssignmentId": "/subscriptions/aa4c0cba-5c0a-4751-a5e3-ea28e50afeeb/providers/microsoft.authorization/policyassignments/test-edition-policy-2" + }, + "services": { + "changeTrackingAndInventory": { + "dcrId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/xingftestrg/providers/Microsoft.Insights/dataCollectionRules/ct-dcr131878407", + "enablementStatus": "Enabled" + }, + "azureMonitorInsights": { + "dcrId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/xingftestrg/providers/Microsoft.Insights/dataCollectionRules/ami-dcr131878407", + "enablementStatus": "Enabled" + }, + "azureUpdateManager": { + "enablementStatus": "Enabled" + }, + "azurePolicyAndMachineConfiguration": { + "enablementStatus": "Enabled" + }, + "defenderForServers": { + "enablementStatus": "Enabled" + }, + "defenderCspm": { + "enablementStatus": "Enabled" + } + } + } + } + ] + } + } + } +} diff --git a/specification/managedoperations/resource-manager/Microsoft.ManagedOps/preview/2025-07-28-preview/examples/ManagedOps_Update.json b/specification/managedoperations/resource-manager/Microsoft.ManagedOps/preview/2025-07-28-preview/examples/ManagedOps_Update.json new file mode 100644 index 000000000000..6d47772a7ab1 --- /dev/null +++ b/specification/managedoperations/resource-manager/Microsoft.ManagedOps/preview/2025-07-28-preview/examples/ManagedOps_Update.json @@ -0,0 +1,75 @@ +{ + "title": "ManagedOps_Update", + "operationId": "ManagedOps_Update", + "parameters": { + "api-version": "2025-07-28-preview", + "subscriptionId": "11809CA1-E126-4017-945E-AA795CD5C5A9", + "managedOpsName": "default", + "properties": {} + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/providers/Microsoft.ManagedOps/managedOps/default", + "name": "default", + "type": "Microsoft.ManagedOps/managedOps", + "systemData": { + "createdBy": "myUser", + "createdByType": "User", + "createdAt": "2023-05-19T00:28:48.610Z", + "lastModifiedBy": "myUser", + "lastModifiedByType": "User", + "lastModifiedAt": "2023-05-19T00:28:48.610Z" + }, + "properties": { + "sku": { + "name": "ManagedOps", + "tier": "Basic" + }, + "desiredConfiguration": { + "changeTrackingAndInventory": { + "logAnalyticsWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.OperationalInsights/workspaces/00000000-0000-0000-0000-000000000000-Default" + }, + "azureMonitorInsights": { + "azureMonitorWorkspaceId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.Monitor/accounts/example" + }, + "userAssignedManagedIdentityId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myManagedIdentity", + "defenderForServers": "Enable", + "defenderCspm": "Enable" + }, + "provisioningState": "Provisioning", + "policyAssignmentProperties": { + "policyInitiativeAssignmentId": "/subscriptions/aa4c0cba-5c0a-4751-a5e3-ea28e50afeeb/providers/microsoft.authorization/policyassignments/test-edition-policy-2" + }, + "services": { + "changeTrackingAndInventory": { + "dcrId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/xingftestrg/providers/Microsoft.Insights/dataCollectionRules/ct-dcr131878407", + "enablementStatus": "Enabled" + }, + "azureMonitorInsights": { + "dcrId": "/subscriptions/11809CA1-E126-4017-945E-AA795CD5C5A9/resourceGroups/xingftestrg/providers/Microsoft.Insights/dataCollectionRules/ami-dcr131878407", + "enablementStatus": "Enabled" + }, + "azureUpdateManager": { + "enablementStatus": "Enabled" + }, + "azurePolicyAndMachineConfiguration": { + "enablementStatus": "Enabled" + }, + "defenderForServers": { + "enablementStatus": "Enabled" + }, + "defenderCspm": { + "enablementStatus": "Enabled" + } + } + } + } + }, + "202": { + "headers": { + "location": "https://contoso.com/operationstatus" + } + } + } +} diff --git a/specification/managedoperations/resource-manager/Microsoft.ManagedOps/preview/2025-07-28-preview/examples/Operations_List.json b/specification/managedoperations/resource-manager/Microsoft.ManagedOps/preview/2025-07-28-preview/examples/Operations_List.json new file mode 100644 index 000000000000..2110e900d771 --- /dev/null +++ b/specification/managedoperations/resource-manager/Microsoft.ManagedOps/preview/2025-07-28-preview/examples/Operations_List.json @@ -0,0 +1,25 @@ +{ + "title": "Operations_List", + "operationId": "Operations_List", + "parameters": { + "api-version": "2025-07-28-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "NameOfOperation", + "display": { + "provider": "myProvider", + "resource": "myResource", + "operation": "read", + "description": "Read resources" + } + } + ], + "nextLink": null + } + } + } +} diff --git a/specification/managedoperations/resource-manager/Microsoft.ManagedOps/preview/2025-07-28-preview/managedops.json b/specification/managedoperations/resource-manager/Microsoft.ManagedOps/preview/2025-07-28-preview/managedops.json new file mode 100644 index 000000000000..3528f06e672e --- /dev/null +++ b/specification/managedoperations/resource-manager/Microsoft.ManagedOps/preview/2025-07-28-preview/managedops.json @@ -0,0 +1,901 @@ +{ + "swagger": "2.0", + "info": { + "title": "Managed Operations control plane service", + "version": "2025-07-28-preview", + "description": "Managed Operations API.", + "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": "ManagedOps" + } + ], + "paths": { + "/providers/Microsoft.ManagedOps/operations": { + "get": { + "operationId": "Operations_List", + "tags": [ + "Operations" + ], + "description": "List the operations for the provider", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/OperationListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Operations_List": { + "$ref": "./examples/Operations_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.ManagedOps/managedOps": { + "get": { + "operationId": "ManagedOps_List", + "tags": [ + "ManagedOps" + ], + "description": "List all ManagedOps instances in the subscription.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ManagedOpListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ManagedOps_List": { + "$ref": "./examples/ManagedOps_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.ManagedOps/managedOps/{managedOpsName}": { + "get": { + "operationId": "ManagedOps_Get", + "tags": [ + "ManagedOps" + ], + "description": "Gets the information of the ManagedOps instance.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "managedOpsName", + "in": "path", + "description": "Name of the resource.", + "required": true, + "type": "string", + "pattern": "default" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ManagedOp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ManagedOps_Get": { + "$ref": "./examples/ManagedOps_Get.json" + } + } + }, + "put": { + "operationId": "ManagedOps_CreateOrUpdate", + "tags": [ + "ManagedOps" + ], + "description": "Creates or updates the ManagedOps instance.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "managedOpsName", + "in": "path", + "description": "Name of the resource.", + "required": true, + "type": "string", + "pattern": "default" + }, + { + "name": "resource", + "in": "body", + "description": "Resource create parameters.", + "required": true, + "schema": { + "$ref": "#/definitions/ManagedOp" + } + } + ], + "responses": { + "200": { + "description": "Resource 'ManagedOp' update operation succeeded", + "schema": { + "$ref": "#/definitions/ManagedOp" + } + }, + "201": { + "description": "Resource 'ManagedOp' create operation succeeded", + "schema": { + "$ref": "#/definitions/ManagedOp" + }, + "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/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ManagedOps_CreateOrUpdate": { + "$ref": "./examples/ManagedOps_CreateOrUpdate.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "ManagedOps_Update", + "tags": [ + "ManagedOps" + ], + "description": "Updates the ManagedOps instance with the supplied fields.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "managedOpsName", + "in": "path", + "description": "Name of the resource.", + "required": true, + "type": "string", + "pattern": "default" + }, + { + "name": "properties", + "in": "body", + "description": "The resource properties to be updated.", + "required": true, + "schema": { + "$ref": "#/definitions/ManagedOpUpdate" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ManagedOp" + } + }, + "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/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ManagedOps_Update": { + "$ref": "./examples/ManagedOps_Update.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "ManagedOps_Delete", + "tags": [ + "ManagedOps" + ], + "description": "Deletes the ManagedOps instance.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "managedOpsName", + "in": "path", + "description": "Name of the resource.", + "required": true, + "type": "string", + "pattern": "default" + } + ], + "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/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ManagedOps_Delete": { + "$ref": "./examples/ManagedOps_Delete.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + } + }, + "definitions": { + "AzureMonitorConfiguration": { + "type": "object", + "description": "Configuration for the Azure Monitor Insights service.", + "properties": { + "azureMonitorWorkspaceId": { + "type": "string", + "format": "arm-id", + "description": "Azure monitor workspace resource ID used by the service.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Monitor/accounts" + } + ] + } + } + }, + "required": [ + "azureMonitorWorkspaceId" + ] + }, + "AzureMonitorInformation": { + "type": "object", + "description": "Azure Monitor Insights service information.", + "properties": { + "dcrId": { + "type": "string", + "format": "arm-id", + "description": "ID of Data Collection Rule (DCR) associated with this service.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Insights/dataCollectionRules" + } + ] + } + }, + "enablementStatus": { + "type": "string", + "description": "Indicates whether the service is enabled.", + "enum": [ + "Enabled", + "InProgress", + "Failed", + "Disabled" + ], + "x-ms-enum": { + "modelAsString": true + } + } + }, + "required": [ + "dcrId", + "enablementStatus" + ] + }, + "ChangeTrackingConfiguration": { + "type": "object", + "description": "Configuration for the Change Tracking and Inventory service.", + "properties": { + "logAnalyticsWorkspaceId": { + "type": "string", + "format": "arm-id", + "description": "Log analytics workspace resource ID used by the service.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.OperationalInsights/workspaces" + } + ] + } + } + }, + "required": [ + "logAnalyticsWorkspaceId" + ] + }, + "ChangeTrackingInformation": { + "type": "object", + "description": "Change Tracking and Inventory service information.", + "properties": { + "dcrId": { + "type": "string", + "format": "arm-id", + "description": "ID of Data Collection Rule (DCR) associated with this service.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Insights/dataCollectionRules" + } + ] + } + }, + "enablementStatus": { + "type": "string", + "description": "Indicates whether the service is enabled.", + "enum": [ + "Enabled", + "InProgress", + "Failed", + "Disabled" + ], + "x-ms-enum": { + "modelAsString": true + } + } + }, + "required": [ + "dcrId", + "enablementStatus" + ] + }, + "DefenderCspmInformation": { + "type": "object", + "description": "Defender Cloud Security Posture Management (CSPM) service information.", + "properties": { + "enablementStatus": { + "type": "string", + "description": "Indicates whether the service is enabled.", + "enum": [ + "Enabled", + "InProgress", + "Failed", + "Disabled" + ], + "x-ms-enum": { + "modelAsString": true + } + } + }, + "required": [ + "enablementStatus" + ] + }, + "DefenderForServersInformation": { + "type": "object", + "description": "Defender for Servers service information.", + "properties": { + "enablementStatus": { + "type": "string", + "description": "Indicates whether the service is enabled.", + "enum": [ + "Enabled", + "InProgress", + "Failed", + "Disabled" + ], + "x-ms-enum": { + "modelAsString": true + } + } + }, + "required": [ + "enablementStatus" + ] + }, + "DesiredConfiguration": { + "type": "object", + "description": "Desired configuration input by the user.", + "properties": { + "changeTrackingAndInventory": { + "$ref": "#/definitions/ChangeTrackingConfiguration", + "description": "Configuration for the Change Tracking and Inventory service.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "azureMonitorInsights": { + "$ref": "#/definitions/AzureMonitorConfiguration", + "description": "Configuration for the Azure Monitor Insights service.", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "userAssignedManagedIdentityId": { + "type": "string", + "format": "arm-id", + "description": "User assigned Managed Identity used to perform operations on machines managed by Ops360.", + "x-ms-mutability": [ + "read", + "create" + ], + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.ManagedIdentity/userAssignedIdentities" + } + ] + } + }, + "defenderForServers": { + "type": "string", + "description": "Desired enablement state of the Defender For Servers service.", + "enum": [ + "Enable", + "Disable" + ], + "x-ms-enum": { + "modelAsString": true + }, + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "defenderCspm": { + "type": "string", + "description": "Desired enablement state of the Defender Cloud Security Posture Management (CSPM) service.", + "enum": [ + "Enable", + "Disable" + ], + "x-ms-enum": { + "modelAsString": true + }, + "x-ms-mutability": [ + "read", + "update", + "create" + ] + } + }, + "required": [ + "changeTrackingAndInventory", + "azureMonitorInsights", + "userAssignedManagedIdentityId" + ] + }, + "DesiredConfigurationUpdate": { + "type": "object", + "description": "Desired configuration input by the user.", + "properties": { + "defenderForServers": { + "type": "string", + "description": "Desired enablement state of the Defender For Servers service.", + "enum": [ + "Enable", + "Disable" + ], + "x-ms-enum": { + "modelAsString": true + }, + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "defenderCspm": { + "type": "string", + "description": "Desired enablement state of the Defender Cloud Security Posture Management (CSPM) service.", + "enum": [ + "Enable", + "Disable" + ], + "x-ms-enum": { + "modelAsString": true + }, + "x-ms-mutability": [ + "read", + "update", + "create" + ] + } + } + }, + "GuestConfigurationInformation": { + "type": "object", + "description": "Azure Policy and Machine Configuration service information.", + "properties": { + "enablementStatus": { + "type": "string", + "description": "Indicates whether the service is enabled.", + "enum": [ + "Enabled", + "InProgress", + "Failed", + "Disabled" + ], + "x-ms-enum": { + "modelAsString": true + } + } + }, + "required": [ + "enablementStatus" + ] + }, + "ManagedOp": { + "type": "object", + "description": "The Managed Operations resource.", + "properties": { + "properties": { + "$ref": "#/definitions/ManagedOpsProperties", + "description": "The resource-specific properties for this resource." + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "ManagedOpListResult": { + "type": "object", + "description": "The response of a ManagedOp list operation.", + "properties": { + "value": { + "type": "array", + "description": "The ManagedOp items on this page", + "items": { + "$ref": "#/definitions/ManagedOp" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "ManagedOpUpdate": { + "type": "object", + "description": "The type used for update operations of the ManagedOp.", + "properties": { + "properties": { + "$ref": "#/definitions/ManagedOpUpdateProperties", + "description": "The resource-specific properties for this resource." + } + } + }, + "ManagedOpUpdateProperties": { + "type": "object", + "description": "The updatable properties of the ManagedOp.", + "properties": { + "desiredConfiguration": { + "$ref": "#/definitions/DesiredConfigurationUpdate", + "description": "Desired configuration input by the user.", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + } + } + }, + "ManagedOpsProperties": { + "type": "object", + "description": "Properties of the ManagedOps resource.", + "properties": { + "sku": { + "$ref": "#/definitions/Sku", + "description": "Product plan details of this resource.", + "readOnly": true + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning state of the resource.", + "readOnly": true + }, + "desiredConfiguration": { + "$ref": "#/definitions/DesiredConfiguration", + "description": "Desired configuration input by the user.", + "x-ms-mutability": [ + "read", + "update", + "create" + ] + }, + "services": { + "$ref": "#/definitions/ServiceInformation", + "description": "Services provisioned by this resource.", + "readOnly": true + }, + "policyAssignmentProperties": { + "$ref": "#/definitions/PolicyAssignmentProperties", + "description": "Policy assignments created for managing services.", + "readOnly": true + } + }, + "required": [ + "desiredConfiguration" + ] + }, + "PolicyAssignmentProperties": { + "type": "object", + "description": "Policy assignments created for managing services.", + "properties": { + "policyInitiativeAssignmentId": { + "type": "string", + "format": "arm-id", + "description": "Policy initiative assignment ID.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Authorization/policyassignments" + } + ] + } + } + }, + "required": [ + "policyInitiativeAssignmentId" + ] + }, + "ProvisioningState": { + "type": "string", + "description": "The provisioning state of a resource.", + "enum": [ + "Succeeded", + "Failed", + "Canceled", + "Provisioning", + "Deleting" + ], + "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": "The resource has begun provisioning." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "The resource is being deleted." + } + ] + }, + "readOnly": true + }, + "ServiceInformation": { + "type": "object", + "description": "Services provisioned by this resource.", + "properties": { + "changeTrackingAndInventory": { + "$ref": "#/definitions/ChangeTrackingInformation", + "description": "Change Tracking and Inventory service information.", + "readOnly": true + }, + "azureMonitorInsights": { + "$ref": "#/definitions/AzureMonitorInformation", + "description": "Azure Monitor Insights service information.", + "readOnly": true + }, + "azureUpdateManager": { + "$ref": "#/definitions/UpdateManagerInformation", + "description": "Azure Update Manager service information.", + "readOnly": true + }, + "azurePolicyAndMachineConfiguration": { + "$ref": "#/definitions/GuestConfigurationInformation", + "description": "Azure Policy and Machine Configuration service information.", + "readOnly": true + }, + "defenderForServers": { + "$ref": "#/definitions/DefenderForServersInformation", + "description": "Defender for Servers service information.", + "readOnly": true + }, + "defenderCspm": { + "$ref": "#/definitions/DefenderCspmInformation", + "description": "Defender for Cloud's Cloud security posture management (CSPM) service information.", + "readOnly": true + } + } + }, + "Sku": { + "type": "object", + "description": "Specifies the service plan for this resource.", + "properties": { + "name": { + "type": "string", + "description": "Name of the SKU." + }, + "tier": { + "type": "string", + "description": "Pricing tier of the SKU." + } + }, + "required": [ + "name", + "tier" + ] + }, + "UpdateManagerInformation": { + "type": "object", + "description": "Azure Update Manager service information.", + "properties": { + "enablementStatus": { + "type": "string", + "description": "Indicates whether the service is enabled.", + "enum": [ + "Enabled", + "InProgress", + "Failed", + "Disabled" + ], + "x-ms-enum": { + "modelAsString": true + } + } + }, + "required": [ + "enablementStatus" + ] + } + }, + "parameters": {} +} diff --git a/specification/managedoperations/resource-manager/readme.az.md b/specification/managedoperations/resource-manager/readme.az.md new file mode 100644 index 000000000000..468db80515d1 --- /dev/null +++ b/specification/managedoperations/resource-manager/readme.az.md @@ -0,0 +1,27 @@ +## AZ + +These settings apply only when `--az` is specified on the command line. + +For new Resource Provider. It is highly recommended to onboard Azure CLI extensions. There's no differences in terms of customer usage. + +```yaml $(az) && $(target-mode) != 'core' +az: + extensions: managedops + namespace: azure.mgmt.managedops + package-name: azure-mgmt-managedops +az-output-folder: $(azure-cli-extension-folder)/src/managedops +python-sdk-output-folder: "$(az-output-folder)/azext_managedops/vendored_sdks/managedops" +# add additional configuration here specific for Azure CLI +# refer to the faq.md for more details +``` + +This is for command modules that already in azure cli main repo. + +```yaml $(az) && $(target-mode) == 'core' +az: + extensions: managedops + namespace: azure.mgmt.managedops + package-name: azure-mgmt-managedops +az-output-folder: $(azure-cli-folder)/src/azure-cli/azure/cli/command_modules/managedops +python-sdk-output-folder: "$(az-output-folder)/vendored_sdks/managedops" +``` diff --git a/specification/managedoperations/resource-manager/readme.cli.md b/specification/managedoperations/resource-manager/readme.cli.md new file mode 100644 index 000000000000..13278814ef95 --- /dev/null +++ b/specification/managedoperations/resource-manager/readme.cli.md @@ -0,0 +1 @@ +## CLI Common Settings for all the command line tools diff --git a/specification/managedoperations/resource-manager/readme.csharp.md b/specification/managedoperations/resource-manager/readme.csharp.md new file mode 100644 index 000000000000..35b743d9c316 --- /dev/null +++ b/specification/managedoperations/resource-manager/readme.csharp.md @@ -0,0 +1,15 @@ +## C# + +These settings apply only when `--csharp` is specified on the command line. +Please also specify `--csharp-sdks-folder=`. + +```yaml $(csharp) +csharp: + azure-arm: true + license-header: MICROSOFT_MIT_NO_VERSION + payload-flattening-threshold: 1 + clear-output-folder: true + client-side-validation: false + namespace: Microsoft.ManagedOps + output-folder: $(csharp-sdks-folder)/managedoperations/management/Microsoft.ManagedOps/GeneratedProtocol +``` diff --git a/specification/managedoperations/resource-manager/readme.go.md b/specification/managedoperations/resource-manager/readme.go.md new file mode 100644 index 000000000000..4f2c2ac20a04 --- /dev/null +++ b/specification/managedoperations/resource-manager/readme.go.md @@ -0,0 +1,11 @@ +## Go + +These settings apply only when `--go` is specified on the command line. + +```yaml $(go) && $(track2) +azure-arm: true +license-header: MICROSOFT_MIT_NO_VERSION +module-name: sdk/resourcemanager/managedops/managedops +module: github.com/Azure/azure-sdk-for-go/$(module-name) +output-folder: $(go-sdk-folder)/$(module-name) +``` diff --git a/specification/managedoperations/resource-manager/readme.java.md b/specification/managedoperations/resource-manager/readme.java.md new file mode 100644 index 000000000000..7ffcfc9f9f29 --- /dev/null +++ b/specification/managedoperations/resource-manager/readme.java.md @@ -0,0 +1,8 @@ +## Java + +These settings apply only when `--java` is specified on the command line. + +```yaml $(java) +client-flattened-annotation-target: disabled +uuid-as-string: true +``` diff --git a/specification/managedoperations/resource-manager/readme.md b/specification/managedoperations/resource-manager/readme.md new file mode 100644 index 000000000000..5930a40e775a --- /dev/null +++ b/specification/managedoperations/resource-manager/readme.md @@ -0,0 +1,88 @@ +# ManagedOps + +> see https://aka.ms/autorest + +This is the AutoRest configuration file for ManagedOps. + +## Getting Started + +To build the SDKs for My API, simply install AutoRest via `npm` (`npm install -g autorest`) and then run: + +> `autorest readme.md` + +To see additional help and options, run: + +> `autorest --help` + +For other options on installation see [Installing AutoRest](https://aka.ms/autorest/install) on the AutoRest github page. + +--- + +## Configuration + +### Basic Information + +These are the global settings for the ManagedOps. + +```yaml +openapi-type: arm +openapi-subtype: rpaas +tag: package-2025-07-28-preview +``` + +### Tag: package-2025-07-28-preview + +These settings apply only when `--tag=package-2025-07-28-preview` is specified on the command line. + + + +```yaml $(tag) == 'package-2025-07-28-preview' + +input-file: + + - Microsoft.ManagedOps/preview/2025-07-28-preview/managedops.json +``` + +--- + +# Code Generation + +## Swagger to SDK + +This section describes what SDK should be generated by the automatic system. +This is not used by Autorest itself. + +```yaml $(swagger-to-sdk) +swagger-to-sdk: + - repo: azure-sdk-for-python + - repo: azure-sdk-for-csharp + - repo: azure-sdk-for-go + - repo: azure-sdk-for-js + - repo: azure-resource-manager-schemas + - repo: azure-cli-extensions + - repo: azure-powershell +``` + +## Az + +See configuration in [readme.az.md](./readme.az.md) + +## Go + +See configuration in [readme.go.md](./readme.go.md) + +## Python + +See configuration in [readme.python.md](./readme.python.md) + +## TypeScript + +See configuration in [readme.typescript.md](./readme.typescript.md) + +## CSharp + +See configuration in [readme.csharp.md](./readme.csharp.md) + +## Java + +See configuration in [readme.java.md](./readme.java.md) diff --git a/specification/managedoperations/resource-manager/readme.python.md b/specification/managedoperations/resource-manager/readme.python.md new file mode 100644 index 000000000000..2ffe7ba2a707 --- /dev/null +++ b/specification/managedoperations/resource-manager/readme.python.md @@ -0,0 +1,18 @@ +## Python + +These settings apply only when `--python` is specified on the command line. +Please also specify `--python-sdks-folder=`. + +```yaml $(python) +azure-arm: true +license-header: MICROSOFT_MIT_NO_VERSION +package-name: azure-mgmt-managedops +namespace: azure.mgmt.managedops +package-version: 1.0.0b1 +clear-output-folder: true +``` + +```yaml $(python) +no-namespace-folders: true +output-folder: $(python-sdks-folder)/managedops/azure-mgmt-managedops/azure/mgmt/managedops +``` diff --git a/specification/managedoperations/resource-manager/readme.typescript.md b/specification/managedoperations/resource-manager/readme.typescript.md new file mode 100644 index 000000000000..8322542b4f4c --- /dev/null +++ b/specification/managedoperations/resource-manager/readme.typescript.md @@ -0,0 +1,14 @@ +## TypeScript + +These settings apply only when `--typescript` is specified on the command line. +Please also specify `--typescript-sdks-folder=`. + +```yaml $(typescript) +typescript: + azure-arm: true + package-name: "@azure/arm-managedops" + output-folder: "$(typescript-sdks-folder)/sdk/managedops/arm-managedops" + payload-flattening-threshold: 1 + clear-output-folder: true + generate-metadata: true +```