Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
a9f9d4e
Base commit
sorabhtandon Sep 13, 2025
bd9efa2
Changes for public preview
sorabhtandon Sep 13, 2025
da754a8
Running TSP format
sorabhtandon Sep 13, 2025
9666a21
Adding suppressions for SDK
sorabhtandon Sep 13, 2025
7544651
Excluding Domain Specific words from specll check
sorabhtandon Sep 13, 2025
672ca0b
fixing Lintdiff errors
sorabhtandon Sep 13, 2025
ed67b0c
fixes
sorabhtandon Sep 13, 2025
49020e9
fixes
sorabhtandon Sep 13, 2025
02bf233
Adding refresh API
sorabhtandon Sep 14, 2025
64ec51c
Fixes
sorabhtandon Sep 14, 2025
608f73c
fixes
sorabhtandon Sep 14, 2025
70183c4
fixes
sorabhtandon Sep 14, 2025
e1c1a21
Fxies
sorabhtandon Sep 14, 2025
23d7616
fixing formattng isues
sorabhtandon Sep 14, 2025
1b4c036
Adding suppression for migrateprojects
sorabhtandon Sep 15, 2025
a7ba3b8
Adding suppressions for lintdiff
sorabhtandon Sep 15, 2025
cb633b0
Adding further types for drApplicanceInventoryId
sorabhtandon Sep 15, 2025
b2b89bb
Fixing formatting issues
sorabhtandon Sep 15, 2025
2398f88
removing duplicate attributes
sorabhtandon Sep 15, 2025
e210cfc
fixing refresh API names for java and csharp clients
sorabhtandon Sep 15, 2025
9022a12
Adding examples
sorabhtandon Sep 15, 2025
178f81a
Adding examples
sorabhtandon Sep 16, 2025
d3dc988
Minor changs for public preview release
sorabhtandon Oct 14, 2025
816e850
Fixing Typespec validation
sorabhtandon Oct 14, 2025
2a9d9d5
enhancments
sorabhtandon Nov 1, 2025
f0f2752
minor fixes
sorabhtandon Nov 1, 2025
46eccc1
Fixing model validations
sorabhtandon Nov 1, 2025
ec9a2d9
fixes
sorabhtandon Nov 3, 2025
32a5399
Merge branch 'main' into sorabhtandon/waves-api
sorabhtandon Nov 4, 2025
a4e0136
Merge branch 'main' into sorabhtandon/waves-api
sorabhtandon Nov 4, 2025
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
13 changes: 13 additions & 0 deletions specification/migrate/Waves.Management/ApiVersions.tsp
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import "@azure-tools/typespec-azure-resource-manager";

using TypeSpec.Versioning;
using Azure.ResourceManager;

namespace Microsoft.Migrate;

@doc("Common API Versions for Migrate Project Tracked Resource.")
enum ApiVersions {
@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6)
@doc("2025-03-30-preview API Version.")
v2025_03_30_preview: "2025-03-30-preview",
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import "../Enums/Enums.tsp";

namespace Microsoft.Migrate;

@doc("Common properties for all azure tracked and proxy resources.")
model AzureResourceProperties {
@doc("The status of the last operation.")
@visibility(Lifecycle.Read)
provisioningState?: ProvisioningState;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
import "@typespec/rest";
import "@typespec/http";
import "@azure-tools/typespec-azure-core";

using TypeSpec.Rest;
using TypeSpec.Http;
using Azure.ResourceManager;

namespace Microsoft.Migrate;

@doc("A Migrate project Resource.")
model MigrateProject is TrackedResource<MigrateProjectProperties> {
@doc("Migrate Project Name")
@segment("migrateProjects")
@key("projectName")
@path
@pattern("^[^<>&:\\?/#]{1,260}$")
name: string;
}

#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "Migrate Project is already GA and does not have provisioning state"
@doc("Properties of a migrate project.")
model MigrateProjectProperties {
@doc("Register tools inside project.")
@visibility(Lifecycle.Read)
registeredTools?: Items[];

@doc("Service endpoint.")
serviceEndpoint?: string;

#suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "Migrate Project is already GA and has these properties as record"
@doc("Project summary.")
@visibility(Lifecycle.Read)
summary?: Record<ProjectSummary>;

@doc("Last summary refresh time.")
@visibility(Lifecycle.Read)
lastSummaryRefreshedTime?: utcDateTime;

@doc("Refresh summary state.")
@visibility(Lifecycle.Read)
refreshSummaryState?: RefreshSummaryState;

@doc("Utility storage account id.")
utilityStorageAccountId?: string;

@doc("Gets or sets the state of public network access.")
publicNetworkAccess?: PublicNetworkAccess;

@doc("Gets the private endpoint connections.")
@visibility(Lifecycle.Read)
privateEndpointConnections?: PrivateEndpointConnection[];
}

@doc("Project summary.")
model ProjectSummary {
@doc("Instance type.")
@visibility(Lifecycle.Read)
instanceType?: string;

@doc("Refresh summary state.")
refreshSummaryState?: RefreshSummaryState;

@doc("Last summary refresh time.")
lastSummaryRefreshedTime?: utcDateTime;

#suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "Migrate Project is already GA and has these properties as record"
@doc("Extended summary.")
extendedSummary?: Record<string>;
}

@doc("Refresh summary state.")
union RefreshSummaryState {
string,

@doc("Started State")
Started: "Started",

@doc("InProgress State")
InProgress: "InProgress",

@doc("Completed State")
Completed: "Completed",

@doc("Failed State")
Failed: "Failed",
}

@doc("Items Enum")
union Items {
string,

@doc("Server Discovery Item")
ServerDiscovery: "ServerDiscovery",

@doc("Server Assessment Item")
ServerAssessment: "ServerAssessment",

@doc("Server Migration Item")
ServerMigration: "ServerMigration",

@doc("Cloudamize Item")
Cloudamize: "Cloudamize",

@doc("Turbonomic Item")
Turbonomic: "Turbonomic",

@doc("Zerto Item")
Zerto: "Zerto",

@doc("CorentTech Item")
CorentTech: "CorentTech",

@doc("ServerAssessmentV1")
ServerAssessmentV1: "ServerAssessmentV1",

@doc("ServerMigration_Replication")
ServerMigration_Replication: "ServerMigration_Replication",

@doc("Carbonite Item")
Carbonite: "Carbonite",

@doc("DataMigrationAssistant Item")
DataMigrationAssistant: "DataMigrationAssistant",

@doc("DatabaseMigrationService Item")
DatabaseMigrationService: "DatabaseMigrationService",

@doc("Device42 Item")
Device42: "Device42",

@doc("JetStream Item")
JetStream: "JetStream",

@doc("RackWare Item")
RackWare: "RackWare",

@doc("UnifyCloud Item")
UnifyCloud: "UnifyCloud",

@doc("Flexera Item")
Flexera: "Flexera",

@doc("ServerDiscovery_Import Item.")
ServerDiscovery_Import: "ServerDiscovery_Import",

@doc("Lakeside Item")
Lakeside: "Lakeside",

@doc("AppServiceMigrationAssistant Item")
AppServiceMigrationAssistant: "AppServiceMigrationAssistant",

@doc("Movere Item")
Movere: "Movere",

@doc("CloudSphere Item")
CloudSphere: "CloudSphere",

@doc("Modernization Item")
Modernization: "Modernization",

@doc("ServerMigration_DataReplication Item")
ServerMigration_DataReplication: "ServerMigration_DataReplication",

@doc("Unknown Item")
Unknown: "Unknown",
}

@doc("Gets or sets the state of public network access.")
union PublicNetworkAccess {
string,

@doc("NotSpecified Network Access")
NotSpecified: "NotSpecified",

@doc("Enabled Network Access")
Enabled: "Enabled",

@doc("Disabled Network Access")
Disabled: "Disabled",
}
30 changes: 30 additions & 0 deletions specification/migrate/Waves.Management/Common/Enums/Enums.tsp
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
using Azure.ResourceManager;
using TypeSpec.Versioning;

namespace Microsoft.Migrate;

@doc("The status of the current operation.")
union ProvisioningState {
@doc("Resource provisioning Successful.")
Succeeded: "Succeeded",

@doc("Resource provisioning Failed.")
Failed: "Failed",

@doc("Resource provisioning Canceled.")
Canceled: "Canceled",

@doc("Resource is being Provisioned.")
Provisioning: "Provisioning",

@doc("Resource is being Updated.")
Updating: "Updating",

@doc("Resource is being Deleted.")
Deleting: "Deleting",

@doc("Resource is being Accepted.")
Accepted: "Accepted",

string,
}
64 changes: 64 additions & 0 deletions specification/migrate/Waves.Management/WebModels/Enums/Enums.tsp
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
using Azure.ResourceManager;

@doc("Strategy for migration to Azure")
union Strategy {
@doc("No specific strategy defined.")
None: "None",

@doc("Rehost: Also known as 'lift and shift', this strategy involves moving existing applications to Azure without modification.")
Rehost: "Rehost",

@doc("Refactor: Often referred to as 'lift, tinker, and shift', this involves making minor modifications to the application to take advantage of Azure's cloud capabilities.")
Refactor: "Refactor",

@doc("Rearchitect: This approach involves significant changes to the application's architecture to fully utilize cloud-native features and scalability of Azure.")
Rearchitect: "Rearchitect",

@doc("Rebuild: Involves completely redesigning and rewriting the application from scratch to be cloud-native, leveraging Azure's advanced services.")
Rebuild: "Rebuild",

@doc("Replace: This strategy involves discarding the existing application and replacing it with a new Azure solution or a SaaS platform.")
Replace: "Replace",

@doc("Retire: This strategy involves discarding the existing application and replacing it with a new Azure solution or a SaaS platform.")
Retire: "Retire",

@doc("Retain: Keeping certain applications in the current environment when they are not suitable for cloud migration or when the timing is not right.")
Retain: "Retain",

@doc("Replatform: This strategy involves making more substantial changes to the application.")
Replatform: "Replatform",

string,
}

@doc("TaskScope can be either 'Wave' or 'MigrationEntity' or 'MigrationEntityGroup'")
union TaskScope {
@doc("Wave task - typically related to a specific wave of migration")
Wave: "Wave",

@doc("Migration Entity task - typically related to a specific migration entity")
MigrationEntity: "MigrationEntity",

@doc("Migration Entity Group task - typically related to a specific migration entity group")
MigrationEntityGroup: "MigrationEntityGroup",

string,
}

@doc("TaskType can be either 'User' or 'System'")
union TaskType {
@doc("UserDefined task - typically initiated by a user")
UserDefined: "UserDefined",

@doc("SystemDefined task - typically initiated by the system")
SystemDefined: "SystemDefined",

string,
}

@doc("Migration Specific Properties Instance Types.")
union MigrationSpecificPropertiesInstanceType {
ServerMigration: "ServerMigration",
string,
}
Loading
Loading