Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions specification/servicefabricmanagedclusters/cspell.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ words:
- reimages
- snat
- waagent
- BYOVNET
overrides:
- filename: >-
**/specification/servicefabricmanagedclusters/resource-manager/Microsoft.ServiceFabric/ServiceFabricManagedClusters/**/*.json
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ interface ManagedClusters {
/**
* Gets a fault simulation by the simulationId.
*/
@removed(Versions.v2026_02_01)
@tag("FaultSimulation")
getFaultSimulation is ArmResourceActionSync<
ManagedCluster,
Expand All @@ -106,6 +107,7 @@ interface ManagedClusters {
/**
* Gets the list of recent fault simulations for the cluster.
*/
@removed(Versions.v2026_02_01)
@tag("FaultSimulation")
@list
listFaultSimulation is ArmResourceActionSync<
Expand All @@ -117,6 +119,7 @@ interface ManagedClusters {
/**
* Starts a fault simulation on the cluster.
*/
@removed(Versions.v2026_02_01)
@tag("FaultSimulation")
startFaultSimulation is ArmResourceActionAsync<
ManagedCluster,
Expand All @@ -129,6 +132,7 @@ interface ManagedClusters {
/**
* Stops a fault simulation on the cluster.
*/
@removed(Versions.v2026_02_01)
@tag("FaultSimulation")
stopFaultSimulation is ArmResourceActionAsync<
ManagedCluster,
Expand Down Expand Up @@ -452,6 +456,12 @@ model ManagedClusterProperties {
*/
@added(Versions.v2025_06_01_preview)
enableOutboundOnlyNodeTypes?: boolean;

/**
* Determines whether to skip the assignment of the managed network security group (SF-NSG) to the cluster subnet when using a bring-your-own virtual network (BYOVNET) configuration. The default value is false.
*/
@added(Versions.v2026_02_01)
skipManagedNsgAssignment?: boolean;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

skipManagedNsgAssignment?: boolean;

Is it possible to add a well-chosen enum instead of adding boolean switches? Generally enums make better properties than booleans. They are more descriptive and flexible while being easier for customers to discover, understand and use. Ref: https://eng.ms/docs/products/arm/rp_onboarding/process/api_review_best_practices. They allow values other than just true/false and support description strings. Even if you only ever want two values, you can have a string enum with two values.

In this case, maybe something like securityGroup: { Managed, BringYourOwn, None } or something similar is worth considering.

}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@ interface NodeTypes {
/**
* Starts a fault simulation on the node type.
*/
@removed(Versions.v2026_02_01)
@tag("FaultSimulation")
startFaultSimulation is ArmResourceActionAsync<
NodeType,
Expand All @@ -151,6 +152,7 @@ interface NodeTypes {
/**
* Stops a fault simulation on the node type.
*/
@removed(Versions.v2026_02_01)
@tag("FaultSimulation")
stopFaultSimulation is ArmResourceActionAsync<
NodeType,
Expand All @@ -163,6 +165,7 @@ interface NodeTypes {
/**
* Gets a fault simulation by the simulationId.
*/
@removed(Versions.v2026_02_01)
@tag("FaultSimulation")
getFaultSimulation is ArmResourceActionSync<
NodeType,
Expand All @@ -173,6 +176,7 @@ interface NodeTypes {
/**
* Gets the list of recent fault simulations for the node type.
*/
@removed(Versions.v2026_02_01)
@tag("FaultSimulation")
@list
listFaultSimulation is ArmResourceActionSync<
Expand Down Expand Up @@ -545,6 +549,12 @@ model NodeTypeProperties {
*/
@added(Versions.v2025_06_01_preview)
isOutboundOnly?: boolean;

/**
* Specifies whether the node type should use a resilient ephemeral OS disk when using a supported SKU size. A resilient ephemeral OS disk provides improved reliability for ephemeral OS disks by enabling full caching.
*/
@added(Versions.v2026_02_01)
enableResilientEphemeralOsDisk?: boolean;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

enableResilientEphemeralOsDisk?: boolean;

Similar feedback here. APIs that allow clients to choose behavior based on well-designed enums are better and more extensible than adding boolean flags. Over time, APIs turn into messy true/false bitvectors.

This could be something more like osDiskType: { ResilientEphemeral, StandardCaching, NoCaching }, or whatever options are (or will be) offered.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mentat9

Hey, these changes are already rolling out because they were approved in the previous ARM review. We were waiting until that rollout completed to complete the spec PR and start SDK generation.

}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"parameters": {
"api-version": "2026-02-01",
"applicationName": "myApp",
"clusterName": "myCluster",
"parameters": {
"eventsHealthStateFilter": "Error",
"deployedApplicationsHealthStateFilter": "Error",
"servicesHealthStateFilter": "Error",
"excludeHealthStatistics": true,
"timeout": 30
},
"resourceGroupName": "resRg",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"202": {
"headers": {
"Azure-AsyncOperation": "http://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ServiceFabric/locations/eastus/managedClusterOperationStatus/1ca6e48d-70ca-4e43-b652-3b0522f64d67?api-version=2026-02-01",
"Location": "http://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ServiceFabric/locations/eastus/managedClusterOperationResults/1ca6e48d-70ca-4e43-b652-3b0522f64d67?api-version=2026-02-01"
}
}
},
"operationId": "Applications_FetchHealth",
"title": "Fetch application health"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"parameters": {
"api-version": "2026-02-01",
"applicationName": "myApp",
"clusterName": "myCluster",
"resourceGroupName": "resRg",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"202": {
"headers": {
"Azure-AsyncOperation": "http://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ServiceFabric/locations/eastus/managedClusterOperationStatus/1ca6e48d-70ca-4e43-b652-3b0522f64d67?api-version=2026-02-01",
"Location": "http://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ServiceFabric/locations/eastus/managedClusterOperationResults/1ca6e48d-70ca-4e43-b652-3b0522f64d67?api-version=2026-02-01"
}
}
},
"operationId": "Applications_ReadUpgrade",
"title": "Get an application upgrade"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"parameters": {
"api-version": "2026-02-01",
"applicationName": "myApp",
"clusterName": "myCluster",
"parameters": {
"nodeName": "nt1_0",
"serviceManifestName": "TestPkg",
"servicePackageActivationId": "sharedProcess",
"codePackageName": "Code",
"codePackageInstanceId": "133991326715515522"
},
"resourceGroupName": "resRg",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"202": {
"headers": {
"Azure-AsyncOperation": "http://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ServiceFabric/locations/eastus/managedClusterOperationStatus/1ca6e48d-70ca-4e43-b652-3b0522f64d67?api-version=2026-02-01",
"Location": "http://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ServiceFabric/locations/eastus/managedClusterOperationResults/1ca6e48d-70ca-4e43-b652-3b0522f64d67?api-version=2026-02-01"
}
}
},
"operationId": "Applications_RestartDeployedCodePackage",
"title": "Restart deployed code package"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"parameters": {
"api-version": "2026-02-01",
"applicationName": "myApp",
"clusterName": "myCluster",
"parameters": {
"upgradeDomainName": "UD1"
},
"resourceGroupName": "resRg",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"202": {
"headers": {
"Azure-AsyncOperation": "http://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ServiceFabric/locations/eastus/managedClusterOperationStatus/1ca6e48d-70ca-4e43-b652-3b0522f64d67?api-version=2026-02-01",
"Location": "http://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ServiceFabric/locations/eastus/managedClusterOperationResults/1ca6e48d-70ca-4e43-b652-3b0522f64d67?api-version=2026-02-01"
}
}
},
"operationId": "Applications_ResumeUpgrade",
"title": "Resume upgrade"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"parameters": {
"api-version": "2026-02-01",
"applicationName": "myApp",
"clusterName": "myCluster",
"resourceGroupName": "resRg",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"202": {
"headers": {
"Azure-AsyncOperation": "http://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ServiceFabric/locations/eastus/managedClusterOperationStatus/1ca6e48d-70ca-4e43-b652-3b0522f64d67?api-version=2026-02-01",
"Location": "http://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ServiceFabric/locations/eastus/managedClusterOperationResults/1ca6e48d-70ca-4e43-b652-3b0522f64d67?api-version=2026-02-01"
}
}
},
"operationId": "Applications_StartRollback",
"title": "Start an application upgrade rollback"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
{
"parameters": {
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"resourceGroupName": "resRg",
"clusterName": "myCluster",
"applicationName": "myApp",
"api-version": "2026-02-01",
"parameters": {
"upgradeKind": "Rolling",
"name": "fabric:/Voting",
"updateDescription": {
"rollingUpgradeMode": "Monitored",
"forceRestart": true,
"failureAction": "Manual",
"healthCheckWaitDurationInMilliseconds": "PT0H0M10S",
"healthCheckStableDurationInMilliseconds": "PT1H0M0S",
"healthCheckRetryTimeoutInMilliseconds": "PT0H15M0S",
"upgradeTimeoutInMilliseconds": "PT2H0M0S",
"upgradeDomainTimeoutInMilliseconds": "PT2H0M0S"
},
"applicationHealthPolicy": {
"considerWarningAsError": true,
"maxPercentUnhealthyDeployedApplications": 10,
"defaultServiceTypeHealthPolicy": {
"maxPercentUnhealthyPartitionsPerService": 10,
"maxPercentUnhealthyReplicasPerPartition": 11,
"maxPercentUnhealthyServices": 12
},
"serviceTypeHealthPolicyMap": {
"VotingWeb": {
"maxPercentUnhealthyPartitionsPerService": 13,
"maxPercentUnhealthyReplicasPerPartition": 14,
"maxPercentUnhealthyServices": 15
}
}
}
}
},
"responses": {
"202": {
"headers": {
"Location": "http://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ServiceFabric/locations/eastus/managedClusterOperationResults/1ca6e48d-70ca-4e43-b652-3b0522f64d67?api-version=2023-07-01-preview",
"Azure-AsyncOperation": "http://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ServiceFabric/locations/eastus/managedClusterOperationStatus/1ca6e48d-70ca-4e43-b652-3b0522f64d67?api-version=2023-07-01-preview"
}
}
},
"operationId": "Applications_UpdateUpgrade",
"title": "Update an application upgrade"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"parameters": {
"api-version": "2026-02-01",
"applicationName": "myApp",
"clusterName": "myCluster",
"resourceGroupName": "resRg",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"202": {
"headers": {
"Azure-AsyncOperation": "http://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ServiceFabric/locations/eastus/managedClusterOperationStatus/1ca6e48d-70ca-4e43-b652-3b0522f64d67?api-version=2026-02-01",
"Location": "http://10.91.140.224/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.ServiceFabric/locations/eastus/operationResults/9c2ce367-47ea-43de-b69e-c5a423da4557?api-version=2026-02-01"
}
},
"204": {}
},
"operationId": "Applications_Delete",
"title": "Delete an application"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
{
"parameters": {
"api-version": "2026-02-01",
"applicationName": "myApp",
"clusterName": "myCluster",
"resourceGroupName": "resRg",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"200": {
"body": {
"name": "myApp",
"type": "Microsoft.ServiceFabric/managedClusters/applications",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resRg/providers/Microsoft.ServiceFabric/managedclusters/myCluster/applications/myApp",
"location": "eastus",
"properties": {
"parameters": {
"param1": "value1"
},
"provisioningState": "Updating",
"upgradePolicy": {
"applicationHealthPolicy": {
"considerWarningAsError": true,
"defaultServiceTypeHealthPolicy": {
"maxPercentUnhealthyPartitionsPerService": 0,
"maxPercentUnhealthyReplicasPerPartition": 0,
"maxPercentUnhealthyServices": 0
},
"maxPercentUnhealthyDeployedApplications": 0,
"serviceTypeHealthPolicyMap": {
"service1": {
"maxPercentUnhealthyPartitionsPerService": 30,
"maxPercentUnhealthyReplicasPerPartition": 30,
"maxPercentUnhealthyServices": 30
}
}
},
"forceRestart": false,
"instanceCloseDelayDuration": 600,
"recreateApplication": false,
"rollingUpgradeMonitoringPolicy": {
"failureAction": "Rollback",
"healthCheckRetryTimeout": "00:10:00",
"healthCheckStableDuration": "00:05:00",
"healthCheckWaitDuration": "00:02:00",
"upgradeDomainTimeout": "00:15:00",
"upgradeTimeout": "01:00:00"
},
"upgradeMode": "UnmonitoredAuto",
"upgradeReplicaSetCheckTimeout": 3600
},
"version": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resRg/providers/Microsoft.ServiceFabric/managedclusters/myCluster/applicationTypes/myAppType/versions/1.0"
},
"tags": {}
},
"headers": {}
}
},
"operationId": "Applications_Get",
"title": "Get an application"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"parameters": {
"api-version": "2026-02-01",
"clusterName": "myCluster",
"resourceGroupName": "resRg",
"subscriptionId": "00000000-0000-0000-0000-000000000000"
},
"responses": {
"200": {
"body": {
"nextLink": "http://examplelink.com",
"value": [
{
"name": "myApp",
"type": "Microsoft.ServiceFabric/managedClusters/applications",
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resRg/providers/Microsoft.ServiceFabric/managedclusters/myCluster/applications/myApp",
"properties": {
"provisioningState": "Updating",
"version": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resRg/providers/Microsoft.ServiceFabric/managedclusters/myCluster/applicationTypes/myAppType/versions/1.0"
}
}
]
},
"headers": {}
}
},
"operationId": "Applications_List",
"title": "Get a list of application resources"
}
Loading