1package migrate
2
3// Copyright (c) Microsoft and contributors.  All rights reserved.
4//
5// Licensed under the Apache License, Version 2.0 (the "License");
6// you may not use this file except in compliance with the License.
7// You may obtain a copy of the License at
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13//
14// See the License for the specific language governing permissions and
15// limitations under the License.
16//
17// Code generated by Microsoft (R) AutoRest Code Generator.
18// Changes may cause incorrect behavior and will be lost if the code is regenerated.
19
20import (
21	"encoding/json"
22	"github.com/Azure/go-autorest/autorest"
23	"github.com/Azure/go-autorest/autorest/date"
24)
25
26// The package's fully qualified name.
27const fqdn = "github.com/Azure/azure-sdk-for-go/services/migrate/mgmt/2018-02-02/migrate"
28
29// AssessmentSizingCriterion enumerates the values for assessment sizing criterion.
30type AssessmentSizingCriterion string
31
32const (
33	// AsOnPremises ...
34	AsOnPremises AssessmentSizingCriterion = "AsOnPremises"
35	// PerformanceBased ...
36	PerformanceBased AssessmentSizingCriterion = "PerformanceBased"
37)
38
39// PossibleAssessmentSizingCriterionValues returns an array of possible values for the AssessmentSizingCriterion const type.
40func PossibleAssessmentSizingCriterionValues() []AssessmentSizingCriterion {
41	return []AssessmentSizingCriterion{AsOnPremises, PerformanceBased}
42}
43
44// AssessmentStage enumerates the values for assessment stage.
45type AssessmentStage string
46
47const (
48	// Approved ...
49	Approved AssessmentStage = "Approved"
50	// InProgress ...
51	InProgress AssessmentStage = "InProgress"
52	// UnderReview ...
53	UnderReview AssessmentStage = "UnderReview"
54)
55
56// PossibleAssessmentStageValues returns an array of possible values for the AssessmentStage const type.
57func PossibleAssessmentStageValues() []AssessmentStage {
58	return []AssessmentStage{Approved, InProgress, UnderReview}
59}
60
61// AssessmentStatus enumerates the values for assessment status.
62type AssessmentStatus string
63
64const (
65	// Completed ...
66	Completed AssessmentStatus = "Completed"
67	// Created ...
68	Created AssessmentStatus = "Created"
69	// Invalid ...
70	Invalid AssessmentStatus = "Invalid"
71	// Running ...
72	Running AssessmentStatus = "Running"
73	// Updated ...
74	Updated AssessmentStatus = "Updated"
75)
76
77// PossibleAssessmentStatusValues returns an array of possible values for the AssessmentStatus const type.
78func PossibleAssessmentStatusValues() []AssessmentStatus {
79	return []AssessmentStatus{Completed, Created, Invalid, Running, Updated}
80}
81
82// AzureDiskSize enumerates the values for azure disk size.
83type AzureDiskSize string
84
85const (
86	// PremiumP10 ...
87	PremiumP10 AzureDiskSize = "Premium_P10"
88	// PremiumP20 ...
89	PremiumP20 AzureDiskSize = "Premium_P20"
90	// PremiumP30 ...
91	PremiumP30 AzureDiskSize = "Premium_P30"
92	// PremiumP4 ...
93	PremiumP4 AzureDiskSize = "Premium_P4"
94	// PremiumP40 ...
95	PremiumP40 AzureDiskSize = "Premium_P40"
96	// PremiumP50 ...
97	PremiumP50 AzureDiskSize = "Premium_P50"
98	// PremiumP6 ...
99	PremiumP6 AzureDiskSize = "Premium_P6"
100	// StandardS10 ...
101	StandardS10 AzureDiskSize = "Standard_S10"
102	// StandardS20 ...
103	StandardS20 AzureDiskSize = "Standard_S20"
104	// StandardS30 ...
105	StandardS30 AzureDiskSize = "Standard_S30"
106	// StandardS4 ...
107	StandardS4 AzureDiskSize = "Standard_S4"
108	// StandardS40 ...
109	StandardS40 AzureDiskSize = "Standard_S40"
110	// StandardS50 ...
111	StandardS50 AzureDiskSize = "Standard_S50"
112	// StandardS6 ...
113	StandardS6 AzureDiskSize = "Standard_S6"
114	// Unknown ...
115	Unknown AzureDiskSize = "Unknown"
116)
117
118// PossibleAzureDiskSizeValues returns an array of possible values for the AzureDiskSize const type.
119func PossibleAzureDiskSizeValues() []AzureDiskSize {
120	return []AzureDiskSize{PremiumP10, PremiumP20, PremiumP30, PremiumP4, PremiumP40, PremiumP50, PremiumP6, StandardS10, StandardS20, StandardS30, StandardS4, StandardS40, StandardS50, StandardS6, Unknown}
121}
122
123// AzureDiskSuitabilityExplanation enumerates the values for azure disk suitability explanation.
124type AzureDiskSuitabilityExplanation string
125
126const (
127	// AzureDiskSuitabilityExplanationDiskSizeGreaterThanSupported ...
128	AzureDiskSuitabilityExplanationDiskSizeGreaterThanSupported AzureDiskSuitabilityExplanation = "DiskSizeGreaterThanSupported"
129	// AzureDiskSuitabilityExplanationInternalErrorOccurredForDiskEvaluation ...
130	AzureDiskSuitabilityExplanationInternalErrorOccurredForDiskEvaluation AzureDiskSuitabilityExplanation = "InternalErrorOccurredForDiskEvaluation"
131	// AzureDiskSuitabilityExplanationNoDiskSizeFoundForSelectedRedundancy ...
132	AzureDiskSuitabilityExplanationNoDiskSizeFoundForSelectedRedundancy AzureDiskSuitabilityExplanation = "NoDiskSizeFoundForSelectedRedundancy"
133	// AzureDiskSuitabilityExplanationNoDiskSizeFoundInSelectedLocation ...
134	AzureDiskSuitabilityExplanationNoDiskSizeFoundInSelectedLocation AzureDiskSuitabilityExplanation = "NoDiskSizeFoundInSelectedLocation"
135	// AzureDiskSuitabilityExplanationNoSuitableDiskSizeForIops ...
136	AzureDiskSuitabilityExplanationNoSuitableDiskSizeForIops AzureDiskSuitabilityExplanation = "NoSuitableDiskSizeForIops"
137	// AzureDiskSuitabilityExplanationNoSuitableDiskSizeForThroughput ...
138	AzureDiskSuitabilityExplanationNoSuitableDiskSizeForThroughput AzureDiskSuitabilityExplanation = "NoSuitableDiskSizeForThroughput"
139	// AzureDiskSuitabilityExplanationNotApplicable ...
140	AzureDiskSuitabilityExplanationNotApplicable AzureDiskSuitabilityExplanation = "NotApplicable"
141	// AzureDiskSuitabilityExplanationUnknown ...
142	AzureDiskSuitabilityExplanationUnknown AzureDiskSuitabilityExplanation = "Unknown"
143)
144
145// PossibleAzureDiskSuitabilityExplanationValues returns an array of possible values for the AzureDiskSuitabilityExplanation const type.
146func PossibleAzureDiskSuitabilityExplanationValues() []AzureDiskSuitabilityExplanation {
147	return []AzureDiskSuitabilityExplanation{AzureDiskSuitabilityExplanationDiskSizeGreaterThanSupported, AzureDiskSuitabilityExplanationInternalErrorOccurredForDiskEvaluation, AzureDiskSuitabilityExplanationNoDiskSizeFoundForSelectedRedundancy, AzureDiskSuitabilityExplanationNoDiskSizeFoundInSelectedLocation, AzureDiskSuitabilityExplanationNoSuitableDiskSizeForIops, AzureDiskSuitabilityExplanationNoSuitableDiskSizeForThroughput, AzureDiskSuitabilityExplanationNotApplicable, AzureDiskSuitabilityExplanationUnknown}
148}
149
150// AzureDiskType enumerates the values for azure disk type.
151type AzureDiskType string
152
153const (
154	// AzureDiskTypePremium ...
155	AzureDiskTypePremium AzureDiskType = "Premium"
156	// AzureDiskTypeStandard ...
157	AzureDiskTypeStandard AzureDiskType = "Standard"
158	// AzureDiskTypeUnknown ...
159	AzureDiskTypeUnknown AzureDiskType = "Unknown"
160)
161
162// PossibleAzureDiskTypeValues returns an array of possible values for the AzureDiskType const type.
163func PossibleAzureDiskTypeValues() []AzureDiskType {
164	return []AzureDiskType{AzureDiskTypePremium, AzureDiskTypeStandard, AzureDiskTypeUnknown}
165}
166
167// AzureHybridUseBenefit enumerates the values for azure hybrid use benefit.
168type AzureHybridUseBenefit string
169
170const (
171	// AzureHybridUseBenefitNo ...
172	AzureHybridUseBenefitNo AzureHybridUseBenefit = "No"
173	// AzureHybridUseBenefitUnknown ...
174	AzureHybridUseBenefitUnknown AzureHybridUseBenefit = "Unknown"
175	// AzureHybridUseBenefitYes ...
176	AzureHybridUseBenefitYes AzureHybridUseBenefit = "Yes"
177)
178
179// PossibleAzureHybridUseBenefitValues returns an array of possible values for the AzureHybridUseBenefit const type.
180func PossibleAzureHybridUseBenefitValues() []AzureHybridUseBenefit {
181	return []AzureHybridUseBenefit{AzureHybridUseBenefitNo, AzureHybridUseBenefitUnknown, AzureHybridUseBenefitYes}
182}
183
184// AzureLocation enumerates the values for azure location.
185type AzureLocation string
186
187const (
188	// AzureLocationAustraliaEast ...
189	AzureLocationAustraliaEast AzureLocation = "AustraliaEast"
190	// AzureLocationAustraliaSoutheast ...
191	AzureLocationAustraliaSoutheast AzureLocation = "AustraliaSoutheast"
192	// AzureLocationBrazilSouth ...
193	AzureLocationBrazilSouth AzureLocation = "BrazilSouth"
194	// AzureLocationCanadaCentral ...
195	AzureLocationCanadaCentral AzureLocation = "CanadaCentral"
196	// AzureLocationCanadaEast ...
197	AzureLocationCanadaEast AzureLocation = "CanadaEast"
198	// AzureLocationCentralIndia ...
199	AzureLocationCentralIndia AzureLocation = "CentralIndia"
200	// AzureLocationCentralUs ...
201	AzureLocationCentralUs AzureLocation = "CentralUs"
202	// AzureLocationChinaEast ...
203	AzureLocationChinaEast AzureLocation = "ChinaEast"
204	// AzureLocationChinaNorth ...
205	AzureLocationChinaNorth AzureLocation = "ChinaNorth"
206	// AzureLocationEastAsia ...
207	AzureLocationEastAsia AzureLocation = "EastAsia"
208	// AzureLocationEastUs ...
209	AzureLocationEastUs AzureLocation = "EastUs"
210	// AzureLocationEastUs2 ...
211	AzureLocationEastUs2 AzureLocation = "EastUs2"
212	// AzureLocationGermanyCentral ...
213	AzureLocationGermanyCentral AzureLocation = "GermanyCentral"
214	// AzureLocationGermanyNortheast ...
215	AzureLocationGermanyNortheast AzureLocation = "GermanyNortheast"
216	// AzureLocationJapanEast ...
217	AzureLocationJapanEast AzureLocation = "JapanEast"
218	// AzureLocationJapanWest ...
219	AzureLocationJapanWest AzureLocation = "JapanWest"
220	// AzureLocationKoreaCentral ...
221	AzureLocationKoreaCentral AzureLocation = "KoreaCentral"
222	// AzureLocationKoreaSouth ...
223	AzureLocationKoreaSouth AzureLocation = "KoreaSouth"
224	// AzureLocationNorthCentralUs ...
225	AzureLocationNorthCentralUs AzureLocation = "NorthCentralUs"
226	// AzureLocationNorthEurope ...
227	AzureLocationNorthEurope AzureLocation = "NorthEurope"
228	// AzureLocationSouthCentralUs ...
229	AzureLocationSouthCentralUs AzureLocation = "SouthCentralUs"
230	// AzureLocationSoutheastAsia ...
231	AzureLocationSoutheastAsia AzureLocation = "SoutheastAsia"
232	// AzureLocationSouthIndia ...
233	AzureLocationSouthIndia AzureLocation = "SouthIndia"
234	// AzureLocationUkSouth ...
235	AzureLocationUkSouth AzureLocation = "UkSouth"
236	// AzureLocationUkWest ...
237	AzureLocationUkWest AzureLocation = "UkWest"
238	// AzureLocationUnknown ...
239	AzureLocationUnknown AzureLocation = "Unknown"
240	// AzureLocationWestCentralUs ...
241	AzureLocationWestCentralUs AzureLocation = "WestCentralUs"
242	// AzureLocationWestEurope ...
243	AzureLocationWestEurope AzureLocation = "WestEurope"
244	// AzureLocationWestIndia ...
245	AzureLocationWestIndia AzureLocation = "WestIndia"
246	// AzureLocationWestUs ...
247	AzureLocationWestUs AzureLocation = "WestUs"
248	// AzureLocationWestUs2 ...
249	AzureLocationWestUs2 AzureLocation = "WestUs2"
250)
251
252// PossibleAzureLocationValues returns an array of possible values for the AzureLocation const type.
253func PossibleAzureLocationValues() []AzureLocation {
254	return []AzureLocation{AzureLocationAustraliaEast, AzureLocationAustraliaSoutheast, AzureLocationBrazilSouth, AzureLocationCanadaCentral, AzureLocationCanadaEast, AzureLocationCentralIndia, AzureLocationCentralUs, AzureLocationChinaEast, AzureLocationChinaNorth, AzureLocationEastAsia, AzureLocationEastUs, AzureLocationEastUs2, AzureLocationGermanyCentral, AzureLocationGermanyNortheast, AzureLocationJapanEast, AzureLocationJapanWest, AzureLocationKoreaCentral, AzureLocationKoreaSouth, AzureLocationNorthCentralUs, AzureLocationNorthEurope, AzureLocationSouthCentralUs, AzureLocationSoutheastAsia, AzureLocationSouthIndia, AzureLocationUkSouth, AzureLocationUkWest, AzureLocationUnknown, AzureLocationWestCentralUs, AzureLocationWestEurope, AzureLocationWestIndia, AzureLocationWestUs, AzureLocationWestUs2}
255}
256
257// AzureNetworkAdapterSuitabilityExplanation enumerates the values for azure network adapter suitability
258// explanation.
259type AzureNetworkAdapterSuitabilityExplanation string
260
261const (
262	// AzureNetworkAdapterSuitabilityExplanationInternalErrorOccured ...
263	AzureNetworkAdapterSuitabilityExplanationInternalErrorOccured AzureNetworkAdapterSuitabilityExplanation = "InternalErrorOccured"
264	// AzureNetworkAdapterSuitabilityExplanationNotApplicable ...
265	AzureNetworkAdapterSuitabilityExplanationNotApplicable AzureNetworkAdapterSuitabilityExplanation = "NotApplicable"
266	// AzureNetworkAdapterSuitabilityExplanationUnknown ...
267	AzureNetworkAdapterSuitabilityExplanationUnknown AzureNetworkAdapterSuitabilityExplanation = "Unknown"
268)
269
270// PossibleAzureNetworkAdapterSuitabilityExplanationValues returns an array of possible values for the AzureNetworkAdapterSuitabilityExplanation const type.
271func PossibleAzureNetworkAdapterSuitabilityExplanationValues() []AzureNetworkAdapterSuitabilityExplanation {
272	return []AzureNetworkAdapterSuitabilityExplanation{AzureNetworkAdapterSuitabilityExplanationInternalErrorOccured, AzureNetworkAdapterSuitabilityExplanationNotApplicable, AzureNetworkAdapterSuitabilityExplanationUnknown}
273}
274
275// AzureOfferCode enumerates the values for azure offer code.
276type AzureOfferCode string
277
278const (
279	// AzureOfferCodeMSAZR0003P ...
280	AzureOfferCodeMSAZR0003P AzureOfferCode = "MSAZR0003P"
281	// AzureOfferCodeMSAZR0022P ...
282	AzureOfferCodeMSAZR0022P AzureOfferCode = "MSAZR0022P"
283	// AzureOfferCodeMSAZR0023P ...
284	AzureOfferCodeMSAZR0023P AzureOfferCode = "MSAZR0023P"
285	// AzureOfferCodeMSAZR0025P ...
286	AzureOfferCodeMSAZR0025P AzureOfferCode = "MSAZR0025P"
287	// AzureOfferCodeMSAZR0029P ...
288	AzureOfferCodeMSAZR0029P AzureOfferCode = "MSAZR0029P"
289	// AzureOfferCodeMSAZR0036P ...
290	AzureOfferCodeMSAZR0036P AzureOfferCode = "MSAZR0036P"
291	// AzureOfferCodeMSAZR0044P ...
292	AzureOfferCodeMSAZR0044P AzureOfferCode = "MSAZR0044P"
293	// AzureOfferCodeMSAZR0059P ...
294	AzureOfferCodeMSAZR0059P AzureOfferCode = "MSAZR0059P"
295	// AzureOfferCodeMSAZR0060P ...
296	AzureOfferCodeMSAZR0060P AzureOfferCode = "MSAZR0060P"
297	// AzureOfferCodeMSAZR0062P ...
298	AzureOfferCodeMSAZR0062P AzureOfferCode = "MSAZR0062P"
299	// AzureOfferCodeMSAZR0063P ...
300	AzureOfferCodeMSAZR0063P AzureOfferCode = "MSAZR0063P"
301	// AzureOfferCodeMSAZR0064P ...
302	AzureOfferCodeMSAZR0064P AzureOfferCode = "MSAZR0064P"
303	// AzureOfferCodeMSAZR0111P ...
304	AzureOfferCodeMSAZR0111P AzureOfferCode = "MSAZR0111P"
305	// AzureOfferCodeMSAZR0120P ...
306	AzureOfferCodeMSAZR0120P AzureOfferCode = "MSAZR0120P"
307	// AzureOfferCodeMSAZR0121P ...
308	AzureOfferCodeMSAZR0121P AzureOfferCode = "MSAZR0121P"
309	// AzureOfferCodeMSAZR0122P ...
310	AzureOfferCodeMSAZR0122P AzureOfferCode = "MSAZR0122P"
311	// AzureOfferCodeMSAZR0123P ...
312	AzureOfferCodeMSAZR0123P AzureOfferCode = "MSAZR0123P"
313	// AzureOfferCodeMSAZR0124P ...
314	AzureOfferCodeMSAZR0124P AzureOfferCode = "MSAZR0124P"
315	// AzureOfferCodeMSAZR0125P ...
316	AzureOfferCodeMSAZR0125P AzureOfferCode = "MSAZR0125P"
317	// AzureOfferCodeMSAZR0126P ...
318	AzureOfferCodeMSAZR0126P AzureOfferCode = "MSAZR0126P"
319	// AzureOfferCodeMSAZR0127P ...
320	AzureOfferCodeMSAZR0127P AzureOfferCode = "MSAZR0127P"
321	// AzureOfferCodeMSAZR0128P ...
322	AzureOfferCodeMSAZR0128P AzureOfferCode = "MSAZR0128P"
323	// AzureOfferCodeMSAZR0129P ...
324	AzureOfferCodeMSAZR0129P AzureOfferCode = "MSAZR0129P"
325	// AzureOfferCodeMSAZR0130P ...
326	AzureOfferCodeMSAZR0130P AzureOfferCode = "MSAZR0130P"
327	// AzureOfferCodeMSAZR0144P ...
328	AzureOfferCodeMSAZR0144P AzureOfferCode = "MSAZR0144P"
329	// AzureOfferCodeMSAZR0148P ...
330	AzureOfferCodeMSAZR0148P AzureOfferCode = "MSAZR0148P"
331	// AzureOfferCodeMSAZR0149P ...
332	AzureOfferCodeMSAZR0149P AzureOfferCode = "MSAZR0149P"
333	// AzureOfferCodeMSAZRDE0003P ...
334	AzureOfferCodeMSAZRDE0003P AzureOfferCode = "MSAZRDE0003P"
335	// AzureOfferCodeMSAZRDE0044P ...
336	AzureOfferCodeMSAZRDE0044P AzureOfferCode = "MSAZRDE0044P"
337	// AzureOfferCodeMSMCAZR0044P ...
338	AzureOfferCodeMSMCAZR0044P AzureOfferCode = "MSMCAZR0044P"
339	// AzureOfferCodeMSMCAZR0059P ...
340	AzureOfferCodeMSMCAZR0059P AzureOfferCode = "MSMCAZR0059P"
341	// AzureOfferCodeMSMCAZR0060P ...
342	AzureOfferCodeMSMCAZR0060P AzureOfferCode = "MSMCAZR0060P"
343	// AzureOfferCodeMSMCAZR0063P ...
344	AzureOfferCodeMSMCAZR0063P AzureOfferCode = "MSMCAZR0063P"
345	// AzureOfferCodeMSMCAZR0120P ...
346	AzureOfferCodeMSMCAZR0120P AzureOfferCode = "MSMCAZR0120P"
347	// AzureOfferCodeMSMCAZR0121P ...
348	AzureOfferCodeMSMCAZR0121P AzureOfferCode = "MSMCAZR0121P"
349	// AzureOfferCodeMSMCAZR0125P ...
350	AzureOfferCodeMSMCAZR0125P AzureOfferCode = "MSMCAZR0125P"
351	// AzureOfferCodeMSMCAZR0128P ...
352	AzureOfferCodeMSMCAZR0128P AzureOfferCode = "MSMCAZR0128P"
353	// AzureOfferCodeUnknown ...
354	AzureOfferCodeUnknown AzureOfferCode = "Unknown"
355)
356
357// PossibleAzureOfferCodeValues returns an array of possible values for the AzureOfferCode const type.
358func PossibleAzureOfferCodeValues() []AzureOfferCode {
359	return []AzureOfferCode{AzureOfferCodeMSAZR0003P, AzureOfferCodeMSAZR0022P, AzureOfferCodeMSAZR0023P, AzureOfferCodeMSAZR0025P, AzureOfferCodeMSAZR0029P, AzureOfferCodeMSAZR0036P, AzureOfferCodeMSAZR0044P, AzureOfferCodeMSAZR0059P, AzureOfferCodeMSAZR0060P, AzureOfferCodeMSAZR0062P, AzureOfferCodeMSAZR0063P, AzureOfferCodeMSAZR0064P, AzureOfferCodeMSAZR0111P, AzureOfferCodeMSAZR0120P, AzureOfferCodeMSAZR0121P, AzureOfferCodeMSAZR0122P, AzureOfferCodeMSAZR0123P, AzureOfferCodeMSAZR0124P, AzureOfferCodeMSAZR0125P, AzureOfferCodeMSAZR0126P, AzureOfferCodeMSAZR0127P, AzureOfferCodeMSAZR0128P, AzureOfferCodeMSAZR0129P, AzureOfferCodeMSAZR0130P, AzureOfferCodeMSAZR0144P, AzureOfferCodeMSAZR0148P, AzureOfferCodeMSAZR0149P, AzureOfferCodeMSAZRDE0003P, AzureOfferCodeMSAZRDE0044P, AzureOfferCodeMSMCAZR0044P, AzureOfferCodeMSMCAZR0059P, AzureOfferCodeMSMCAZR0060P, AzureOfferCodeMSMCAZR0063P, AzureOfferCodeMSMCAZR0120P, AzureOfferCodeMSMCAZR0121P, AzureOfferCodeMSMCAZR0125P, AzureOfferCodeMSMCAZR0128P, AzureOfferCodeUnknown}
360}
361
362// AzurePricingTier enumerates the values for azure pricing tier.
363type AzurePricingTier string
364
365const (
366	// Basic ...
367	Basic AzurePricingTier = "Basic"
368	// Standard ...
369	Standard AzurePricingTier = "Standard"
370)
371
372// PossibleAzurePricingTierValues returns an array of possible values for the AzurePricingTier const type.
373func PossibleAzurePricingTierValues() []AzurePricingTier {
374	return []AzurePricingTier{Basic, Standard}
375}
376
377// AzureStorageRedundancy enumerates the values for azure storage redundancy.
378type AzureStorageRedundancy string
379
380const (
381	// AzureStorageRedundancyGeoRedundant ...
382	AzureStorageRedundancyGeoRedundant AzureStorageRedundancy = "GeoRedundant"
383	// AzureStorageRedundancyLocallyRedundant ...
384	AzureStorageRedundancyLocallyRedundant AzureStorageRedundancy = "LocallyRedundant"
385	// AzureStorageRedundancyReadAccessGeoRedundant ...
386	AzureStorageRedundancyReadAccessGeoRedundant AzureStorageRedundancy = "ReadAccessGeoRedundant"
387	// AzureStorageRedundancyUnknown ...
388	AzureStorageRedundancyUnknown AzureStorageRedundancy = "Unknown"
389	// AzureStorageRedundancyZoneRedundant ...
390	AzureStorageRedundancyZoneRedundant AzureStorageRedundancy = "ZoneRedundant"
391)
392
393// PossibleAzureStorageRedundancyValues returns an array of possible values for the AzureStorageRedundancy const type.
394func PossibleAzureStorageRedundancyValues() []AzureStorageRedundancy {
395	return []AzureStorageRedundancy{AzureStorageRedundancyGeoRedundant, AzureStorageRedundancyLocallyRedundant, AzureStorageRedundancyReadAccessGeoRedundant, AzureStorageRedundancyUnknown, AzureStorageRedundancyZoneRedundant}
396}
397
398// AzureVMSize enumerates the values for azure vm size.
399type AzureVMSize string
400
401const (
402	// AzureVMSizeBasicA0 ...
403	AzureVMSizeBasicA0 AzureVMSize = "Basic_A0"
404	// AzureVMSizeBasicA1 ...
405	AzureVMSizeBasicA1 AzureVMSize = "Basic_A1"
406	// AzureVMSizeBasicA2 ...
407	AzureVMSizeBasicA2 AzureVMSize = "Basic_A2"
408	// AzureVMSizeBasicA3 ...
409	AzureVMSizeBasicA3 AzureVMSize = "Basic_A3"
410	// AzureVMSizeBasicA4 ...
411	AzureVMSizeBasicA4 AzureVMSize = "Basic_A4"
412	// AzureVMSizeStandardA0 ...
413	AzureVMSizeStandardA0 AzureVMSize = "Standard_A0"
414	// AzureVMSizeStandardA1 ...
415	AzureVMSizeStandardA1 AzureVMSize = "Standard_A1"
416	// AzureVMSizeStandardA10 ...
417	AzureVMSizeStandardA10 AzureVMSize = "Standard_A10"
418	// AzureVMSizeStandardA11 ...
419	AzureVMSizeStandardA11 AzureVMSize = "Standard_A11"
420	// AzureVMSizeStandardA1V2 ...
421	AzureVMSizeStandardA1V2 AzureVMSize = "Standard_A1_v2"
422	// AzureVMSizeStandardA2 ...
423	AzureVMSizeStandardA2 AzureVMSize = "Standard_A2"
424	// AzureVMSizeStandardA2mV2 ...
425	AzureVMSizeStandardA2mV2 AzureVMSize = "Standard_A2m_v2"
426	// AzureVMSizeStandardA2V2 ...
427	AzureVMSizeStandardA2V2 AzureVMSize = "Standard_A2_v2"
428	// AzureVMSizeStandardA3 ...
429	AzureVMSizeStandardA3 AzureVMSize = "Standard_A3"
430	// AzureVMSizeStandardA4 ...
431	AzureVMSizeStandardA4 AzureVMSize = "Standard_A4"
432	// AzureVMSizeStandardA4mV2 ...
433	AzureVMSizeStandardA4mV2 AzureVMSize = "Standard_A4m_v2"
434	// AzureVMSizeStandardA4V2 ...
435	AzureVMSizeStandardA4V2 AzureVMSize = "Standard_A4_v2"
436	// AzureVMSizeStandardA5 ...
437	AzureVMSizeStandardA5 AzureVMSize = "Standard_A5"
438	// AzureVMSizeStandardA6 ...
439	AzureVMSizeStandardA6 AzureVMSize = "Standard_A6"
440	// AzureVMSizeStandardA7 ...
441	AzureVMSizeStandardA7 AzureVMSize = "Standard_A7"
442	// AzureVMSizeStandardA8 ...
443	AzureVMSizeStandardA8 AzureVMSize = "Standard_A8"
444	// AzureVMSizeStandardA8mV2 ...
445	AzureVMSizeStandardA8mV2 AzureVMSize = "Standard_A8m_v2"
446	// AzureVMSizeStandardA8V2 ...
447	AzureVMSizeStandardA8V2 AzureVMSize = "Standard_A8_v2"
448	// AzureVMSizeStandardA9 ...
449	AzureVMSizeStandardA9 AzureVMSize = "Standard_A9"
450	// AzureVMSizeStandardD1 ...
451	AzureVMSizeStandardD1 AzureVMSize = "Standard_D1"
452	// AzureVMSizeStandardD11 ...
453	AzureVMSizeStandardD11 AzureVMSize = "Standard_D11"
454	// AzureVMSizeStandardD11V2 ...
455	AzureVMSizeStandardD11V2 AzureVMSize = "Standard_D11_v2"
456	// AzureVMSizeStandardD12 ...
457	AzureVMSizeStandardD12 AzureVMSize = "Standard_D12"
458	// AzureVMSizeStandardD12V2 ...
459	AzureVMSizeStandardD12V2 AzureVMSize = "Standard_D12_v2"
460	// AzureVMSizeStandardD13 ...
461	AzureVMSizeStandardD13 AzureVMSize = "Standard_D13"
462	// AzureVMSizeStandardD13V2 ...
463	AzureVMSizeStandardD13V2 AzureVMSize = "Standard_D13_v2"
464	// AzureVMSizeStandardD14 ...
465	AzureVMSizeStandardD14 AzureVMSize = "Standard_D14"
466	// AzureVMSizeStandardD14V2 ...
467	AzureVMSizeStandardD14V2 AzureVMSize = "Standard_D14_v2"
468	// AzureVMSizeStandardD15V2 ...
469	AzureVMSizeStandardD15V2 AzureVMSize = "Standard_D15_v2"
470	// AzureVMSizeStandardD1V2 ...
471	AzureVMSizeStandardD1V2 AzureVMSize = "Standard_D1_v2"
472	// AzureVMSizeStandardD2 ...
473	AzureVMSizeStandardD2 AzureVMSize = "Standard_D2"
474	// AzureVMSizeStandardD2V2 ...
475	AzureVMSizeStandardD2V2 AzureVMSize = "Standard_D2_v2"
476	// AzureVMSizeStandardD3 ...
477	AzureVMSizeStandardD3 AzureVMSize = "Standard_D3"
478	// AzureVMSizeStandardD3V2 ...
479	AzureVMSizeStandardD3V2 AzureVMSize = "Standard_D3_v2"
480	// AzureVMSizeStandardD4 ...
481	AzureVMSizeStandardD4 AzureVMSize = "Standard_D4"
482	// AzureVMSizeStandardD4V2 ...
483	AzureVMSizeStandardD4V2 AzureVMSize = "Standard_D4_v2"
484	// AzureVMSizeStandardD5V2 ...
485	AzureVMSizeStandardD5V2 AzureVMSize = "Standard_D5_v2"
486	// AzureVMSizeStandardDS1 ...
487	AzureVMSizeStandardDS1 AzureVMSize = "Standard_DS1"
488	// AzureVMSizeStandardDS11 ...
489	AzureVMSizeStandardDS11 AzureVMSize = "Standard_DS11"
490	// AzureVMSizeStandardDS11V2 ...
491	AzureVMSizeStandardDS11V2 AzureVMSize = "Standard_DS11_v2"
492	// AzureVMSizeStandardDS12 ...
493	AzureVMSizeStandardDS12 AzureVMSize = "Standard_DS12"
494	// AzureVMSizeStandardDS12V2 ...
495	AzureVMSizeStandardDS12V2 AzureVMSize = "Standard_DS12_v2"
496	// AzureVMSizeStandardDS13 ...
497	AzureVMSizeStandardDS13 AzureVMSize = "Standard_DS13"
498	// AzureVMSizeStandardDS13V2 ...
499	AzureVMSizeStandardDS13V2 AzureVMSize = "Standard_DS13_v2"
500	// AzureVMSizeStandardDS14 ...
501	AzureVMSizeStandardDS14 AzureVMSize = "Standard_DS14"
502	// AzureVMSizeStandardDS14V2 ...
503	AzureVMSizeStandardDS14V2 AzureVMSize = "Standard_DS14_v2"
504	// AzureVMSizeStandardDS15V2 ...
505	AzureVMSizeStandardDS15V2 AzureVMSize = "Standard_DS15_v2"
506	// AzureVMSizeStandardDS1V2 ...
507	AzureVMSizeStandardDS1V2 AzureVMSize = "Standard_DS1_v2"
508	// AzureVMSizeStandardDS2 ...
509	AzureVMSizeStandardDS2 AzureVMSize = "Standard_DS2"
510	// AzureVMSizeStandardDS2V2 ...
511	AzureVMSizeStandardDS2V2 AzureVMSize = "Standard_DS2_v2"
512	// AzureVMSizeStandardDS3 ...
513	AzureVMSizeStandardDS3 AzureVMSize = "Standard_DS3"
514	// AzureVMSizeStandardDS3V2 ...
515	AzureVMSizeStandardDS3V2 AzureVMSize = "Standard_DS3_v2"
516	// AzureVMSizeStandardDS4 ...
517	AzureVMSizeStandardDS4 AzureVMSize = "Standard_DS4"
518	// AzureVMSizeStandardDS4V2 ...
519	AzureVMSizeStandardDS4V2 AzureVMSize = "Standard_DS4_v2"
520	// AzureVMSizeStandardDS5V2 ...
521	AzureVMSizeStandardDS5V2 AzureVMSize = "Standard_DS5_v2"
522	// AzureVMSizeStandardF1 ...
523	AzureVMSizeStandardF1 AzureVMSize = "Standard_F1"
524	// AzureVMSizeStandardF16 ...
525	AzureVMSizeStandardF16 AzureVMSize = "Standard_F16"
526	// AzureVMSizeStandardF16s ...
527	AzureVMSizeStandardF16s AzureVMSize = "Standard_F16s"
528	// AzureVMSizeStandardF1s ...
529	AzureVMSizeStandardF1s AzureVMSize = "Standard_F1s"
530	// AzureVMSizeStandardF2 ...
531	AzureVMSizeStandardF2 AzureVMSize = "Standard_F2"
532	// AzureVMSizeStandardF2s ...
533	AzureVMSizeStandardF2s AzureVMSize = "Standard_F2s"
534	// AzureVMSizeStandardF4 ...
535	AzureVMSizeStandardF4 AzureVMSize = "Standard_F4"
536	// AzureVMSizeStandardF4s ...
537	AzureVMSizeStandardF4s AzureVMSize = "Standard_F4s"
538	// AzureVMSizeStandardF8 ...
539	AzureVMSizeStandardF8 AzureVMSize = "Standard_F8"
540	// AzureVMSizeStandardF8s ...
541	AzureVMSizeStandardF8s AzureVMSize = "Standard_F8s"
542	// AzureVMSizeStandardG1 ...
543	AzureVMSizeStandardG1 AzureVMSize = "Standard_G1"
544	// AzureVMSizeStandardG2 ...
545	AzureVMSizeStandardG2 AzureVMSize = "Standard_G2"
546	// AzureVMSizeStandardG3 ...
547	AzureVMSizeStandardG3 AzureVMSize = "Standard_G3"
548	// AzureVMSizeStandardG4 ...
549	AzureVMSizeStandardG4 AzureVMSize = "Standard_G4"
550	// AzureVMSizeStandardG5 ...
551	AzureVMSizeStandardG5 AzureVMSize = "Standard_G5"
552	// AzureVMSizeStandardGS1 ...
553	AzureVMSizeStandardGS1 AzureVMSize = "Standard_GS1"
554	// AzureVMSizeStandardGS2 ...
555	AzureVMSizeStandardGS2 AzureVMSize = "Standard_GS2"
556	// AzureVMSizeStandardGS3 ...
557	AzureVMSizeStandardGS3 AzureVMSize = "Standard_GS3"
558	// AzureVMSizeStandardGS4 ...
559	AzureVMSizeStandardGS4 AzureVMSize = "Standard_GS4"
560	// AzureVMSizeStandardGS5 ...
561	AzureVMSizeStandardGS5 AzureVMSize = "Standard_GS5"
562	// AzureVMSizeStandardH16 ...
563	AzureVMSizeStandardH16 AzureVMSize = "Standard_H16"
564	// AzureVMSizeStandardH16m ...
565	AzureVMSizeStandardH16m AzureVMSize = "Standard_H16m"
566	// AzureVMSizeStandardH16mr ...
567	AzureVMSizeStandardH16mr AzureVMSize = "Standard_H16mr"
568	// AzureVMSizeStandardH16r ...
569	AzureVMSizeStandardH16r AzureVMSize = "Standard_H16r"
570	// AzureVMSizeStandardH8 ...
571	AzureVMSizeStandardH8 AzureVMSize = "Standard_H8"
572	// AzureVMSizeStandardH8m ...
573	AzureVMSizeStandardH8m AzureVMSize = "Standard_H8m"
574	// AzureVMSizeStandardL16s ...
575	AzureVMSizeStandardL16s AzureVMSize = "Standard_L16s"
576	// AzureVMSizeStandardL32s ...
577	AzureVMSizeStandardL32s AzureVMSize = "Standard_L32s"
578	// AzureVMSizeStandardL4s ...
579	AzureVMSizeStandardL4s AzureVMSize = "Standard_L4s"
580	// AzureVMSizeStandardL8s ...
581	AzureVMSizeStandardL8s AzureVMSize = "Standard_L8s"
582	// AzureVMSizeUnknown ...
583	AzureVMSizeUnknown AzureVMSize = "Unknown"
584)
585
586// PossibleAzureVMSizeValues returns an array of possible values for the AzureVMSize const type.
587func PossibleAzureVMSizeValues() []AzureVMSize {
588	return []AzureVMSize{AzureVMSizeBasicA0, AzureVMSizeBasicA1, AzureVMSizeBasicA2, AzureVMSizeBasicA3, AzureVMSizeBasicA4, AzureVMSizeStandardA0, AzureVMSizeStandardA1, AzureVMSizeStandardA10, AzureVMSizeStandardA11, AzureVMSizeStandardA1V2, AzureVMSizeStandardA2, AzureVMSizeStandardA2mV2, AzureVMSizeStandardA2V2, AzureVMSizeStandardA3, AzureVMSizeStandardA4, AzureVMSizeStandardA4mV2, AzureVMSizeStandardA4V2, AzureVMSizeStandardA5, AzureVMSizeStandardA6, AzureVMSizeStandardA7, AzureVMSizeStandardA8, AzureVMSizeStandardA8mV2, AzureVMSizeStandardA8V2, AzureVMSizeStandardA9, AzureVMSizeStandardD1, AzureVMSizeStandardD11, AzureVMSizeStandardD11V2, AzureVMSizeStandardD12, AzureVMSizeStandardD12V2, AzureVMSizeStandardD13, AzureVMSizeStandardD13V2, AzureVMSizeStandardD14, AzureVMSizeStandardD14V2, AzureVMSizeStandardD15V2, AzureVMSizeStandardD1V2, AzureVMSizeStandardD2, AzureVMSizeStandardD2V2, AzureVMSizeStandardD3, AzureVMSizeStandardD3V2, AzureVMSizeStandardD4, AzureVMSizeStandardD4V2, AzureVMSizeStandardD5V2, AzureVMSizeStandardDS1, AzureVMSizeStandardDS11, AzureVMSizeStandardDS11V2, AzureVMSizeStandardDS12, AzureVMSizeStandardDS12V2, AzureVMSizeStandardDS13, AzureVMSizeStandardDS13V2, AzureVMSizeStandardDS14, AzureVMSizeStandardDS14V2, AzureVMSizeStandardDS15V2, AzureVMSizeStandardDS1V2, AzureVMSizeStandardDS2, AzureVMSizeStandardDS2V2, AzureVMSizeStandardDS3, AzureVMSizeStandardDS3V2, AzureVMSizeStandardDS4, AzureVMSizeStandardDS4V2, AzureVMSizeStandardDS5V2, AzureVMSizeStandardF1, AzureVMSizeStandardF16, AzureVMSizeStandardF16s, AzureVMSizeStandardF1s, AzureVMSizeStandardF2, AzureVMSizeStandardF2s, AzureVMSizeStandardF4, AzureVMSizeStandardF4s, AzureVMSizeStandardF8, AzureVMSizeStandardF8s, AzureVMSizeStandardG1, AzureVMSizeStandardG2, AzureVMSizeStandardG3, AzureVMSizeStandardG4, AzureVMSizeStandardG5, AzureVMSizeStandardGS1, AzureVMSizeStandardGS2, AzureVMSizeStandardGS3, AzureVMSizeStandardGS4, AzureVMSizeStandardGS5, AzureVMSizeStandardH16, AzureVMSizeStandardH16m, AzureVMSizeStandardH16mr, AzureVMSizeStandardH16r, AzureVMSizeStandardH8, AzureVMSizeStandardH8m, AzureVMSizeStandardL16s, AzureVMSizeStandardL32s, AzureVMSizeStandardL4s, AzureVMSizeStandardL8s, AzureVMSizeUnknown}
589}
590
591// AzureVMSuitabilityExplanation enumerates the values for azure vm suitability explanation.
592type AzureVMSuitabilityExplanation string
593
594const (
595	// AzureVMSuitabilityExplanationBootTypeNotSupported ...
596	AzureVMSuitabilityExplanationBootTypeNotSupported AzureVMSuitabilityExplanation = "BootTypeNotSupported"
597	// AzureVMSuitabilityExplanationBootTypeUnknown ...
598	AzureVMSuitabilityExplanationBootTypeUnknown AzureVMSuitabilityExplanation = "BootTypeUnknown"
599	// AzureVMSuitabilityExplanationCheckCentOsVersion ...
600	AzureVMSuitabilityExplanationCheckCentOsVersion AzureVMSuitabilityExplanation = "CheckCentOsVersion"
601	// AzureVMSuitabilityExplanationCheckCoreOsLinuxVersion ...
602	AzureVMSuitabilityExplanationCheckCoreOsLinuxVersion AzureVMSuitabilityExplanation = "CheckCoreOsLinuxVersion"
603	// AzureVMSuitabilityExplanationCheckDebianLinuxVersion ...
604	AzureVMSuitabilityExplanationCheckDebianLinuxVersion AzureVMSuitabilityExplanation = "CheckDebianLinuxVersion"
605	// AzureVMSuitabilityExplanationCheckOpenSuseLinuxVersion ...
606	AzureVMSuitabilityExplanationCheckOpenSuseLinuxVersion AzureVMSuitabilityExplanation = "CheckOpenSuseLinuxVersion"
607	// AzureVMSuitabilityExplanationCheckOracleLinuxVersion ...
608	AzureVMSuitabilityExplanationCheckOracleLinuxVersion AzureVMSuitabilityExplanation = "CheckOracleLinuxVersion"
609	// AzureVMSuitabilityExplanationCheckRedHatLinuxVersion ...
610	AzureVMSuitabilityExplanationCheckRedHatLinuxVersion AzureVMSuitabilityExplanation = "CheckRedHatLinuxVersion"
611	// AzureVMSuitabilityExplanationCheckSuseLinuxVersion ...
612	AzureVMSuitabilityExplanationCheckSuseLinuxVersion AzureVMSuitabilityExplanation = "CheckSuseLinuxVersion"
613	// AzureVMSuitabilityExplanationCheckUbuntuLinuxVersion ...
614	AzureVMSuitabilityExplanationCheckUbuntuLinuxVersion AzureVMSuitabilityExplanation = "CheckUbuntuLinuxVersion"
615	// AzureVMSuitabilityExplanationCheckWindowsServer2008R2Version ...
616	AzureVMSuitabilityExplanationCheckWindowsServer2008R2Version AzureVMSuitabilityExplanation = "CheckWindowsServer2008R2Version"
617	// AzureVMSuitabilityExplanationEndorsedWithConditionsLinuxDistributions ...
618	AzureVMSuitabilityExplanationEndorsedWithConditionsLinuxDistributions AzureVMSuitabilityExplanation = "EndorsedWithConditionsLinuxDistributions"
619	// AzureVMSuitabilityExplanationGuestOperatingSystemArchitectureNotSupported ...
620	AzureVMSuitabilityExplanationGuestOperatingSystemArchitectureNotSupported AzureVMSuitabilityExplanation = "GuestOperatingSystemArchitectureNotSupported"
621	// AzureVMSuitabilityExplanationGuestOperatingSystemNotSupported ...
622	AzureVMSuitabilityExplanationGuestOperatingSystemNotSupported AzureVMSuitabilityExplanation = "GuestOperatingSystemNotSupported"
623	// AzureVMSuitabilityExplanationGuestOperatingSystemUnknown ...
624	AzureVMSuitabilityExplanationGuestOperatingSystemUnknown AzureVMSuitabilityExplanation = "GuestOperatingSystemUnknown"
625	// AzureVMSuitabilityExplanationInternalErrorOccuredDuringComputeEvaluation ...
626	AzureVMSuitabilityExplanationInternalErrorOccuredDuringComputeEvaluation AzureVMSuitabilityExplanation = "InternalErrorOccuredDuringComputeEvaluation"
627	// AzureVMSuitabilityExplanationInternalErrorOccuredDuringNetworkEvaluation ...
628	AzureVMSuitabilityExplanationInternalErrorOccuredDuringNetworkEvaluation AzureVMSuitabilityExplanation = "InternalErrorOccuredDuringNetworkEvaluation"
629	// AzureVMSuitabilityExplanationInternalErrorOccuredDuringStorageEvaluation ...
630	AzureVMSuitabilityExplanationInternalErrorOccuredDuringStorageEvaluation AzureVMSuitabilityExplanation = "InternalErrorOccuredDuringStorageEvaluation"
631	// AzureVMSuitabilityExplanationMoreDisksThanSupported ...
632	AzureVMSuitabilityExplanationMoreDisksThanSupported AzureVMSuitabilityExplanation = "MoreDisksThanSupported"
633	// AzureVMSuitabilityExplanationNoGuestOperatingSystemConditionallySupported ...
634	AzureVMSuitabilityExplanationNoGuestOperatingSystemConditionallySupported AzureVMSuitabilityExplanation = "NoGuestOperatingSystemConditionallySupported"
635	// AzureVMSuitabilityExplanationNoSuitableVMSizeFound ...
636	AzureVMSuitabilityExplanationNoSuitableVMSizeFound AzureVMSuitabilityExplanation = "NoSuitableVmSizeFound"
637	// AzureVMSuitabilityExplanationNotApplicable ...
638	AzureVMSuitabilityExplanationNotApplicable AzureVMSuitabilityExplanation = "NotApplicable"
639	// AzureVMSuitabilityExplanationNoVMSizeForBasicPricingTier ...
640	AzureVMSuitabilityExplanationNoVMSizeForBasicPricingTier AzureVMSuitabilityExplanation = "NoVmSizeForBasicPricingTier"
641	// AzureVMSuitabilityExplanationNoVMSizeForSelectedAzureLocation ...
642	AzureVMSuitabilityExplanationNoVMSizeForSelectedAzureLocation AzureVMSuitabilityExplanation = "NoVmSizeForSelectedAzureLocation"
643	// AzureVMSuitabilityExplanationNoVMSizeForSelectedPricingTier ...
644	AzureVMSuitabilityExplanationNoVMSizeForSelectedPricingTier AzureVMSuitabilityExplanation = "NoVmSizeForSelectedPricingTier"
645	// AzureVMSuitabilityExplanationNoVMSizeForStandardPricingTier ...
646	AzureVMSuitabilityExplanationNoVMSizeForStandardPricingTier AzureVMSuitabilityExplanation = "NoVmSizeForStandardPricingTier"
647	// AzureVMSuitabilityExplanationNoVMSizeSupportsNetworkPerformance ...
648	AzureVMSuitabilityExplanationNoVMSizeSupportsNetworkPerformance AzureVMSuitabilityExplanation = "NoVmSizeSupportsNetworkPerformance"
649	// AzureVMSuitabilityExplanationNoVMSizeSupportsStoragePerformance ...
650	AzureVMSuitabilityExplanationNoVMSizeSupportsStoragePerformance AzureVMSuitabilityExplanation = "NoVmSizeSupportsStoragePerformance"
651	// AzureVMSuitabilityExplanationOneOrMoreAdaptersNotSuitable ...
652	AzureVMSuitabilityExplanationOneOrMoreAdaptersNotSuitable AzureVMSuitabilityExplanation = "OneOrMoreAdaptersNotSuitable"
653	// AzureVMSuitabilityExplanationOneOrMoreDisksNotSuitable ...
654	AzureVMSuitabilityExplanationOneOrMoreDisksNotSuitable AzureVMSuitabilityExplanation = "OneOrMoreDisksNotSuitable"
655	// AzureVMSuitabilityExplanationUnendorsedLinuxDistributions ...
656	AzureVMSuitabilityExplanationUnendorsedLinuxDistributions AzureVMSuitabilityExplanation = "UnendorsedLinuxDistributions"
657	// AzureVMSuitabilityExplanationUnknown ...
658	AzureVMSuitabilityExplanationUnknown AzureVMSuitabilityExplanation = "Unknown"
659	// AzureVMSuitabilityExplanationWindowsClientVersionsConditionallySupported ...
660	AzureVMSuitabilityExplanationWindowsClientVersionsConditionallySupported AzureVMSuitabilityExplanation = "WindowsClientVersionsConditionallySupported"
661	// AzureVMSuitabilityExplanationWindowsOSNoLongerUnderMSSupport ...
662	AzureVMSuitabilityExplanationWindowsOSNoLongerUnderMSSupport AzureVMSuitabilityExplanation = "WindowsOSNoLongerUnderMSSupport"
663	// AzureVMSuitabilityExplanationWindowsServerVersionConditionallySupported ...
664	AzureVMSuitabilityExplanationWindowsServerVersionConditionallySupported AzureVMSuitabilityExplanation = "WindowsServerVersionConditionallySupported"
665	// AzureVMSuitabilityExplanationWindowsServerVersionsSupportedWithCaveat ...
666	AzureVMSuitabilityExplanationWindowsServerVersionsSupportedWithCaveat AzureVMSuitabilityExplanation = "WindowsServerVersionsSupportedWithCaveat"
667)
668
669// PossibleAzureVMSuitabilityExplanationValues returns an array of possible values for the AzureVMSuitabilityExplanation const type.
670func PossibleAzureVMSuitabilityExplanationValues() []AzureVMSuitabilityExplanation {
671	return []AzureVMSuitabilityExplanation{AzureVMSuitabilityExplanationBootTypeNotSupported, AzureVMSuitabilityExplanationBootTypeUnknown, AzureVMSuitabilityExplanationCheckCentOsVersion, AzureVMSuitabilityExplanationCheckCoreOsLinuxVersion, AzureVMSuitabilityExplanationCheckDebianLinuxVersion, AzureVMSuitabilityExplanationCheckOpenSuseLinuxVersion, AzureVMSuitabilityExplanationCheckOracleLinuxVersion, AzureVMSuitabilityExplanationCheckRedHatLinuxVersion, AzureVMSuitabilityExplanationCheckSuseLinuxVersion, AzureVMSuitabilityExplanationCheckUbuntuLinuxVersion, AzureVMSuitabilityExplanationCheckWindowsServer2008R2Version, AzureVMSuitabilityExplanationEndorsedWithConditionsLinuxDistributions, AzureVMSuitabilityExplanationGuestOperatingSystemArchitectureNotSupported, AzureVMSuitabilityExplanationGuestOperatingSystemNotSupported, AzureVMSuitabilityExplanationGuestOperatingSystemUnknown, AzureVMSuitabilityExplanationInternalErrorOccuredDuringComputeEvaluation, AzureVMSuitabilityExplanationInternalErrorOccuredDuringNetworkEvaluation, AzureVMSuitabilityExplanationInternalErrorOccuredDuringStorageEvaluation, AzureVMSuitabilityExplanationMoreDisksThanSupported, AzureVMSuitabilityExplanationNoGuestOperatingSystemConditionallySupported, AzureVMSuitabilityExplanationNoSuitableVMSizeFound, AzureVMSuitabilityExplanationNotApplicable, AzureVMSuitabilityExplanationNoVMSizeForBasicPricingTier, AzureVMSuitabilityExplanationNoVMSizeForSelectedAzureLocation, AzureVMSuitabilityExplanationNoVMSizeForSelectedPricingTier, AzureVMSuitabilityExplanationNoVMSizeForStandardPricingTier, AzureVMSuitabilityExplanationNoVMSizeSupportsNetworkPerformance, AzureVMSuitabilityExplanationNoVMSizeSupportsStoragePerformance, AzureVMSuitabilityExplanationOneOrMoreAdaptersNotSuitable, AzureVMSuitabilityExplanationOneOrMoreDisksNotSuitable, AzureVMSuitabilityExplanationUnendorsedLinuxDistributions, AzureVMSuitabilityExplanationUnknown, AzureVMSuitabilityExplanationWindowsClientVersionsConditionallySupported, AzureVMSuitabilityExplanationWindowsOSNoLongerUnderMSSupport, AzureVMSuitabilityExplanationWindowsServerVersionConditionallySupported, AzureVMSuitabilityExplanationWindowsServerVersionsSupportedWithCaveat}
672}
673
674// CloudSuitability enumerates the values for cloud suitability.
675type CloudSuitability string
676
677const (
678	// CloudSuitabilityConditionallySuitable ...
679	CloudSuitabilityConditionallySuitable CloudSuitability = "ConditionallySuitable"
680	// CloudSuitabilityNotSuitable ...
681	CloudSuitabilityNotSuitable CloudSuitability = "NotSuitable"
682	// CloudSuitabilityReadinessUnknown ...
683	CloudSuitabilityReadinessUnknown CloudSuitability = "ReadinessUnknown"
684	// CloudSuitabilitySuitable ...
685	CloudSuitabilitySuitable CloudSuitability = "Suitable"
686	// CloudSuitabilityUnknown ...
687	CloudSuitabilityUnknown CloudSuitability = "Unknown"
688)
689
690// PossibleCloudSuitabilityValues returns an array of possible values for the CloudSuitability const type.
691func PossibleCloudSuitabilityValues() []CloudSuitability {
692	return []CloudSuitability{CloudSuitabilityConditionallySuitable, CloudSuitabilityNotSuitable, CloudSuitabilityReadinessUnknown, CloudSuitabilitySuitable, CloudSuitabilityUnknown}
693}
694
695// Currency enumerates the values for currency.
696type Currency string
697
698const (
699	// CurrencyARS ...
700	CurrencyARS Currency = "ARS"
701	// CurrencyAUD ...
702	CurrencyAUD Currency = "AUD"
703	// CurrencyBRL ...
704	CurrencyBRL Currency = "BRL"
705	// CurrencyCAD ...
706	CurrencyCAD Currency = "CAD"
707	// CurrencyCHF ...
708	CurrencyCHF Currency = "CHF"
709	// CurrencyCNY ...
710	CurrencyCNY Currency = "CNY"
711	// CurrencyDKK ...
712	CurrencyDKK Currency = "DKK"
713	// CurrencyEUR ...
714	CurrencyEUR Currency = "EUR"
715	// CurrencyGBP ...
716	CurrencyGBP Currency = "GBP"
717	// CurrencyHKD ...
718	CurrencyHKD Currency = "HKD"
719	// CurrencyIDR ...
720	CurrencyIDR Currency = "IDR"
721	// CurrencyINR ...
722	CurrencyINR Currency = "INR"
723	// CurrencyJPY ...
724	CurrencyJPY Currency = "JPY"
725	// CurrencyKRW ...
726	CurrencyKRW Currency = "KRW"
727	// CurrencyMXN ...
728	CurrencyMXN Currency = "MXN"
729	// CurrencyMYR ...
730	CurrencyMYR Currency = "MYR"
731	// CurrencyNOK ...
732	CurrencyNOK Currency = "NOK"
733	// CurrencyNZD ...
734	CurrencyNZD Currency = "NZD"
735	// CurrencyRUB ...
736	CurrencyRUB Currency = "RUB"
737	// CurrencySAR ...
738	CurrencySAR Currency = "SAR"
739	// CurrencySEK ...
740	CurrencySEK Currency = "SEK"
741	// CurrencyTRY ...
742	CurrencyTRY Currency = "TRY"
743	// CurrencyTWD ...
744	CurrencyTWD Currency = "TWD"
745	// CurrencyUnknown ...
746	CurrencyUnknown Currency = "Unknown"
747	// CurrencyUSD ...
748	CurrencyUSD Currency = "USD"
749	// CurrencyZAR ...
750	CurrencyZAR Currency = "ZAR"
751)
752
753// PossibleCurrencyValues returns an array of possible values for the Currency const type.
754func PossibleCurrencyValues() []Currency {
755	return []Currency{CurrencyARS, CurrencyAUD, CurrencyBRL, CurrencyCAD, CurrencyCHF, CurrencyCNY, CurrencyDKK, CurrencyEUR, CurrencyGBP, CurrencyHKD, CurrencyIDR, CurrencyINR, CurrencyJPY, CurrencyKRW, CurrencyMXN, CurrencyMYR, CurrencyNOK, CurrencyNZD, CurrencyRUB, CurrencySAR, CurrencySEK, CurrencyTRY, CurrencyTWD, CurrencyUnknown, CurrencyUSD, CurrencyZAR}
756}
757
758// DiscoveryStatus enumerates the values for discovery status.
759type DiscoveryStatus string
760
761const (
762	// DiscoveryStatusCompleted ...
763	DiscoveryStatusCompleted DiscoveryStatus = "Completed"
764	// DiscoveryStatusInProgress ...
765	DiscoveryStatusInProgress DiscoveryStatus = "InProgress"
766	// DiscoveryStatusNotStarted ...
767	DiscoveryStatusNotStarted DiscoveryStatus = "NotStarted"
768	// DiscoveryStatusUnknown ...
769	DiscoveryStatusUnknown DiscoveryStatus = "Unknown"
770)
771
772// PossibleDiscoveryStatusValues returns an array of possible values for the DiscoveryStatus const type.
773func PossibleDiscoveryStatusValues() []DiscoveryStatus {
774	return []DiscoveryStatus{DiscoveryStatusCompleted, DiscoveryStatusInProgress, DiscoveryStatusNotStarted, DiscoveryStatusUnknown}
775}
776
777// MachineBootType enumerates the values for machine boot type.
778type MachineBootType string
779
780const (
781	// MachineBootTypeBIOS ...
782	MachineBootTypeBIOS MachineBootType = "BIOS"
783	// MachineBootTypeEFI ...
784	MachineBootTypeEFI MachineBootType = "EFI"
785	// MachineBootTypeUnknown ...
786	MachineBootTypeUnknown MachineBootType = "Unknown"
787)
788
789// PossibleMachineBootTypeValues returns an array of possible values for the MachineBootType const type.
790func PossibleMachineBootTypeValues() []MachineBootType {
791	return []MachineBootType{MachineBootTypeBIOS, MachineBootTypeEFI, MachineBootTypeUnknown}
792}
793
794// NameAvailabilityReason enumerates the values for name availability reason.
795type NameAvailabilityReason string
796
797const (
798	// NameAvailabilityReasonAlreadyExists ...
799	NameAvailabilityReasonAlreadyExists NameAvailabilityReason = "AlreadyExists"
800	// NameAvailabilityReasonAvailable ...
801	NameAvailabilityReasonAvailable NameAvailabilityReason = "Available"
802	// NameAvailabilityReasonInvalid ...
803	NameAvailabilityReasonInvalid NameAvailabilityReason = "Invalid"
804)
805
806// PossibleNameAvailabilityReasonValues returns an array of possible values for the NameAvailabilityReason const type.
807func PossibleNameAvailabilityReasonValues() []NameAvailabilityReason {
808	return []NameAvailabilityReason{NameAvailabilityReasonAlreadyExists, NameAvailabilityReasonAvailable, NameAvailabilityReasonInvalid}
809}
810
811// Percentile enumerates the values for percentile.
812type Percentile string
813
814const (
815	// Percentile50 ...
816	Percentile50 Percentile = "Percentile50"
817	// Percentile90 ...
818	Percentile90 Percentile = "Percentile90"
819	// Percentile95 ...
820	Percentile95 Percentile = "Percentile95"
821	// Percentile99 ...
822	Percentile99 Percentile = "Percentile99"
823)
824
825// PossiblePercentileValues returns an array of possible values for the Percentile const type.
826func PossiblePercentileValues() []Percentile {
827	return []Percentile{Percentile50, Percentile90, Percentile95, Percentile99}
828}
829
830// ProvisioningState enumerates the values for provisioning state.
831type ProvisioningState string
832
833const (
834	// Accepted ...
835	Accepted ProvisioningState = "Accepted"
836	// Creating ...
837	Creating ProvisioningState = "Creating"
838	// Deleting ...
839	Deleting ProvisioningState = "Deleting"
840	// Failed ...
841	Failed ProvisioningState = "Failed"
842	// Moving ...
843	Moving ProvisioningState = "Moving"
844	// Succeeded ...
845	Succeeded ProvisioningState = "Succeeded"
846)
847
848// PossibleProvisioningStateValues returns an array of possible values for the ProvisioningState const type.
849func PossibleProvisioningStateValues() []ProvisioningState {
850	return []ProvisioningState{Accepted, Creating, Deleting, Failed, Moving, Succeeded}
851}
852
853// TimeRange enumerates the values for time range.
854type TimeRange string
855
856const (
857	// Day ...
858	Day TimeRange = "Day"
859	// Month ...
860	Month TimeRange = "Month"
861	// Week ...
862	Week TimeRange = "Week"
863)
864
865// PossibleTimeRangeValues returns an array of possible values for the TimeRange const type.
866func PossibleTimeRangeValues() []TimeRange {
867	return []TimeRange{Day, Month, Week}
868}
869
870// AssessedDisk a disk assessed for an assessment.
871type AssessedDisk struct {
872	// Name - READ-ONLY; Name of the assessed disk.
873	Name *string `json:"name,omitempty"`
874	// GigabytesProvisioned - READ-ONLY; Gigabytes of storage provisioned for this disk.
875	GigabytesProvisioned *float64 `json:"gigabytesProvisioned,omitempty"`
876	// GigabytesConsumed - READ-ONLY; Gigabytes of storage consumed by this disk.
877	GigabytesConsumed *float64 `json:"gigabytesConsumed,omitempty"`
878	// MegabytesPerSecondOfRead - READ-ONLY; Disk throughput in MegaBytes per second.
879	MegabytesPerSecondOfRead *float64 `json:"megabytesPerSecondOfRead,omitempty"`
880	// MegabytesPerSecondOfReadDataPointsExpected - READ-ONLY; Expected data points for MegaBytes per second of read.
881	MegabytesPerSecondOfReadDataPointsExpected *int32 `json:"megabytesPerSecondOfReadDataPointsExpected,omitempty"`
882	// MegabytesPerSecondOfReadDataPointsReceived - READ-ONLY; Received data points for MegaBytes per second of read.
883	MegabytesPerSecondOfReadDataPointsReceived *int32 `json:"megabytesPerSecondOfReadDataPointsReceived,omitempty"`
884	// MegabytesPerSecondOfWrite - READ-ONLY; Disk throughput in MegaBytes per second.
885	MegabytesPerSecondOfWrite *float64 `json:"megabytesPerSecondOfWrite,omitempty"`
886	// MegabytesPerSecondOfWriteDataPointsExpected - READ-ONLY; Expected data points for MegaBytes per second of write.
887	MegabytesPerSecondOfWriteDataPointsExpected *int32 `json:"megabytesPerSecondOfWriteDataPointsExpected,omitempty"`
888	// MegabytesPerSecondOfWriteDataPointsReceived - READ-ONLY; Received data points for MegaBytes per second of write.
889	MegabytesPerSecondOfWriteDataPointsReceived *int32 `json:"megabytesPerSecondOfWriteDataPointsReceived,omitempty"`
890	// NumberOfReadOperationsPerSecond - READ-ONLY; Number of read operations per second for the disk.
891	NumberOfReadOperationsPerSecond *float64 `json:"numberOfReadOperationsPerSecond,omitempty"`
892	// NumberOfReadOperationsPerSecondDataPointsExpected - READ-ONLY; Expected number of data points for read operations per second.
893	NumberOfReadOperationsPerSecondDataPointsExpected *int32 `json:"numberOfReadOperationsPerSecondDataPointsExpected,omitempty"`
894	// NumberOfReadOperationsPerSecondDataPointsReceived - READ-ONLY; Received number of data points for read operations per second.
895	NumberOfReadOperationsPerSecondDataPointsReceived *int32 `json:"numberOfReadOperationsPerSecondDataPointsReceived,omitempty"`
896	// NumberOfWriteOperationsPerSecond - READ-ONLY; Number of read and write operations per second for the disk.
897	NumberOfWriteOperationsPerSecond *float64 `json:"numberOfWriteOperationsPerSecond,omitempty"`
898	// NumberOfWriteOperationsPerSecondDataPointsExpected - READ-ONLY; Expected number of data points for write operations per second.
899	NumberOfWriteOperationsPerSecondDataPointsExpected *int32 `json:"numberOfWriteOperationsPerSecondDataPointsExpected,omitempty"`
900	// NumberOfWriteOperationsPerSecondDataPointsReceived - READ-ONLY; Received number of data points for write operations per second.
901	NumberOfWriteOperationsPerSecondDataPointsReceived *int32 `json:"numberOfWriteOperationsPerSecondDataPointsReceived,omitempty"`
902	// MonthlyStorageCost - READ-ONLY; Estimated aggregate storage cost for a 31-day month for this disk.
903	MonthlyStorageCost *float64 `json:"monthlyStorageCost,omitempty"`
904	// RecommendedDiskType - READ-ONLY; Storage type selected for this disk. Possible values include: 'AzureDiskTypeUnknown', 'AzureDiskTypeStandard', 'AzureDiskTypePremium'
905	RecommendedDiskType AzureDiskType `json:"recommendedDiskType,omitempty"`
906	// RecommendedDiskSize - READ-ONLY; Recommended Azure size for the disk, given utilization data and preferences set on Assessment. Possible values include: 'Unknown', 'StandardS4', 'StandardS6', 'StandardS10', 'StandardS20', 'StandardS30', 'StandardS40', 'StandardS50', 'PremiumP4', 'PremiumP6', 'PremiumP10', 'PremiumP20', 'PremiumP30', 'PremiumP40', 'PremiumP50'
907	RecommendedDiskSize AzureDiskSize `json:"recommendedDiskSize,omitempty"`
908	// GigabytesForRecommendedDiskSize - READ-ONLY; Gigabytes of storage provided by the recommended Azure disk size.
909	GigabytesForRecommendedDiskSize *int32 `json:"gigabytesForRecommendedDiskSize,omitempty"`
910	// Suitability - READ-ONLY; Whether this disk is suitable for Azure. Possible values include: 'CloudSuitabilityUnknown', 'CloudSuitabilityNotSuitable', 'CloudSuitabilitySuitable', 'CloudSuitabilityConditionallySuitable', 'CloudSuitabilityReadinessUnknown'
911	Suitability CloudSuitability `json:"suitability,omitempty"`
912	// SuitabilityExplanation - READ-ONLY; If disk is suitable, this explains the reasons and mitigation steps. Possible values include: 'AzureDiskSuitabilityExplanationUnknown', 'AzureDiskSuitabilityExplanationNotApplicable', 'AzureDiskSuitabilityExplanationDiskSizeGreaterThanSupported', 'AzureDiskSuitabilityExplanationNoSuitableDiskSizeForIops', 'AzureDiskSuitabilityExplanationNoSuitableDiskSizeForThroughput', 'AzureDiskSuitabilityExplanationNoDiskSizeFoundInSelectedLocation', 'AzureDiskSuitabilityExplanationNoDiskSizeFoundForSelectedRedundancy', 'AzureDiskSuitabilityExplanationInternalErrorOccurredForDiskEvaluation'
913	SuitabilityExplanation AzureDiskSuitabilityExplanation `json:"suitabilityExplanation,omitempty"`
914}
915
916// AssessedMachine a machine evaluated as part of an assessment.
917type AssessedMachine struct {
918	autorest.Response `json:"-"`
919	// ID - READ-ONLY; Path reference to this assessed machine. /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Migrate/projects/{projectName}/groups/{groupName}/assessments/{assessmentName}/assessedMachines/{assessedMachineName}
920	ID *string `json:"id,omitempty"`
921	// Name - READ-ONLY; Name of the machine.
922	Name *string `json:"name,omitempty"`
923	// ETag - For optimistic concurrency control.
924	ETag *string `json:"eTag,omitempty"`
925	// Type - READ-ONLY; Type of the object = [Microsoft.Migrate/projects/groups/assessments/assessedMachines].
926	Type *string `json:"type,omitempty"`
927	// AssessedMachineProperties - Properties of an assessed machine.
928	*AssessedMachineProperties `json:"properties,omitempty"`
929}
930
931// MarshalJSON is the custom marshaler for AssessedMachine.
932func (am AssessedMachine) MarshalJSON() ([]byte, error) {
933	objectMap := make(map[string]interface{})
934	if am.ETag != nil {
935		objectMap["eTag"] = am.ETag
936	}
937	if am.AssessedMachineProperties != nil {
938		objectMap["properties"] = am.AssessedMachineProperties
939	}
940	return json.Marshal(objectMap)
941}
942
943// UnmarshalJSON is the custom unmarshaler for AssessedMachine struct.
944func (am *AssessedMachine) UnmarshalJSON(body []byte) error {
945	var m map[string]*json.RawMessage
946	err := json.Unmarshal(body, &m)
947	if err != nil {
948		return err
949	}
950	for k, v := range m {
951		switch k {
952		case "id":
953			if v != nil {
954				var ID string
955				err = json.Unmarshal(*v, &ID)
956				if err != nil {
957					return err
958				}
959				am.ID = &ID
960			}
961		case "name":
962			if v != nil {
963				var name string
964				err = json.Unmarshal(*v, &name)
965				if err != nil {
966					return err
967				}
968				am.Name = &name
969			}
970		case "eTag":
971			if v != nil {
972				var eTag string
973				err = json.Unmarshal(*v, &eTag)
974				if err != nil {
975					return err
976				}
977				am.ETag = &eTag
978			}
979		case "type":
980			if v != nil {
981				var typeVar string
982				err = json.Unmarshal(*v, &typeVar)
983				if err != nil {
984					return err
985				}
986				am.Type = &typeVar
987			}
988		case "properties":
989			if v != nil {
990				var assessedMachineProperties AssessedMachineProperties
991				err = json.Unmarshal(*v, &assessedMachineProperties)
992				if err != nil {
993					return err
994				}
995				am.AssessedMachineProperties = &assessedMachineProperties
996			}
997		}
998	}
999
1000	return nil
1001}
1002
1003// AssessedMachineProperties properties of an assessed machine.
1004type AssessedMachineProperties struct {
1005	// Groups - READ-ONLY; List of references to the groups that the machine is member of.
1006	Groups *[]string `json:"groups,omitempty"`
1007	// DiscoveredTimestamp - READ-ONLY; Time when this machine was discovered by Azure Migrate agent. Date-Time represented in ISO-8601 format.
1008	DiscoveredTimestamp *date.Time `json:"discoveredTimestamp,omitempty"`
1009	// BootType - READ-ONLY; Boot type of the machine. Possible values include: 'MachineBootTypeUnknown', 'MachineBootTypeEFI', 'MachineBootTypeBIOS'
1010	BootType MachineBootType `json:"bootType,omitempty"`
1011	// DatacenterContainer - READ-ONLY; Container defined in the management solution that this machine is part of in the datacenter.
1012	DatacenterContainer *string `json:"datacenterContainer,omitempty"`
1013	// DatacenterManagementServer - READ-ONLY; Name of the server hosting the datacenter management solution.
1014	DatacenterManagementServer *string `json:"datacenterManagementServer,omitempty"`
1015	// DatacenterMachineID - READ-ONLY; ID of the machine as tracked by the datacenter management solution.
1016	DatacenterMachineID *string `json:"datacenterMachineId,omitempty"`
1017	// DatacenterManagementServerID - READ-ONLY; ID of the server hosting the datacenter management solution.
1018	DatacenterManagementServerID *string `json:"datacenterManagementServerId,omitempty"`
1019	// Description - READ-ONLY; Description of the machine
1020	Description *string `json:"description,omitempty"`
1021	// DisplayName - READ-ONLY; User readable name of the machine as defined by the user in their private datacenter.
1022	DisplayName *string `json:"displayName,omitempty"`
1023	// MegabytesOfMemory - READ-ONLY; Memory in Megabytes.
1024	MegabytesOfMemory *float64 `json:"megabytesOfMemory,omitempty"`
1025	// NumberOfCores - READ-ONLY; Processor count.
1026	NumberOfCores *int32 `json:"numberOfCores,omitempty"`
1027	// OperatingSystem - READ-ONLY; Operating System of the machine.
1028	OperatingSystem *string `json:"operatingSystem,omitempty"`
1029	// MonthlyBandwidthCost - READ-ONLY; Monthly network cost estimate for the network adapters that are attached to this machine as a group, for a 31-day month.
1030	MonthlyBandwidthCost *float64 `json:"monthlyBandwidthCost,omitempty"`
1031	// MonthlyStorageCost - READ-ONLY; Monthly storage cost estimate for the disks that are attached to this machine as a group, for a 31-day month.
1032	MonthlyStorageCost *float64 `json:"monthlyStorageCost,omitempty"`
1033	// Disks - READ-ONLY; Dictionary of disks attached to the machine. Key is ID of disk. Value is a disk object.
1034	Disks map[string]*AssessedDisk `json:"disks"`
1035	// NetworkAdapters - READ-ONLY; Dictionary of network adapters attached to the machine. Key is name of the adapter. Value is a network adapter object.
1036	NetworkAdapters map[string]*AssessedNetworkAdapter `json:"networkAdapters"`
1037	// RecommendedSize - READ-ONLY; Recommended Azure size for this machine. Possible values include: 'AzureVMSizeUnknown', 'AzureVMSizeBasicA0', 'AzureVMSizeBasicA1', 'AzureVMSizeBasicA2', 'AzureVMSizeBasicA3', 'AzureVMSizeBasicA4', 'AzureVMSizeStandardA0', 'AzureVMSizeStandardA1', 'AzureVMSizeStandardA2', 'AzureVMSizeStandardA3', 'AzureVMSizeStandardA4', 'AzureVMSizeStandardA5', 'AzureVMSizeStandardA6', 'AzureVMSizeStandardA7', 'AzureVMSizeStandardA8', 'AzureVMSizeStandardA9', 'AzureVMSizeStandardA10', 'AzureVMSizeStandardA11', 'AzureVMSizeStandardA1V2', 'AzureVMSizeStandardA2V2', 'AzureVMSizeStandardA4V2', 'AzureVMSizeStandardA8V2', 'AzureVMSizeStandardA2mV2', 'AzureVMSizeStandardA4mV2', 'AzureVMSizeStandardA8mV2', 'AzureVMSizeStandardD1', 'AzureVMSizeStandardD2', 'AzureVMSizeStandardD3', 'AzureVMSizeStandardD4', 'AzureVMSizeStandardD11', 'AzureVMSizeStandardD12', 'AzureVMSizeStandardD13', 'AzureVMSizeStandardD14', 'AzureVMSizeStandardD1V2', 'AzureVMSizeStandardD2V2', 'AzureVMSizeStandardD3V2', 'AzureVMSizeStandardD4V2', 'AzureVMSizeStandardD5V2', 'AzureVMSizeStandardD11V2', 'AzureVMSizeStandardD12V2', 'AzureVMSizeStandardD13V2', 'AzureVMSizeStandardD14V2', 'AzureVMSizeStandardD15V2', 'AzureVMSizeStandardDS1', 'AzureVMSizeStandardDS2', 'AzureVMSizeStandardDS3', 'AzureVMSizeStandardDS4', 'AzureVMSizeStandardDS11', 'AzureVMSizeStandardDS12', 'AzureVMSizeStandardDS13', 'AzureVMSizeStandardDS14', 'AzureVMSizeStandardDS1V2', 'AzureVMSizeStandardDS2V2', 'AzureVMSizeStandardDS3V2', 'AzureVMSizeStandardDS4V2', 'AzureVMSizeStandardDS5V2', 'AzureVMSizeStandardDS11V2', 'AzureVMSizeStandardDS12V2', 'AzureVMSizeStandardDS13V2', 'AzureVMSizeStandardDS14V2', 'AzureVMSizeStandardDS15V2', 'AzureVMSizeStandardF1', 'AzureVMSizeStandardF2', 'AzureVMSizeStandardF4', 'AzureVMSizeStandardF8', 'AzureVMSizeStandardF16', 'AzureVMSizeStandardF1s', 'AzureVMSizeStandardF2s', 'AzureVMSizeStandardF4s', 'AzureVMSizeStandardF8s', 'AzureVMSizeStandardF16s', 'AzureVMSizeStandardG1', 'AzureVMSizeStandardG2', 'AzureVMSizeStandardG3', 'AzureVMSizeStandardG4', 'AzureVMSizeStandardG5', 'AzureVMSizeStandardGS1', 'AzureVMSizeStandardGS2', 'AzureVMSizeStandardGS3', 'AzureVMSizeStandardGS4', 'AzureVMSizeStandardGS5', 'AzureVMSizeStandardH8', 'AzureVMSizeStandardH16', 'AzureVMSizeStandardH8m', 'AzureVMSizeStandardH16m', 'AzureVMSizeStandardH16r', 'AzureVMSizeStandardH16mr', 'AzureVMSizeStandardL4s', 'AzureVMSizeStandardL8s', 'AzureVMSizeStandardL16s', 'AzureVMSizeStandardL32s'
1038	RecommendedSize AzureVMSize `json:"recommendedSize,omitempty"`
1039	// NumberOfCoresForRecommendedSize - READ-ONLY; Number of CPU cores in the Recommended Azure VM Size.
1040	NumberOfCoresForRecommendedSize *int32 `json:"numberOfCoresForRecommendedSize,omitempty"`
1041	// MegabytesOfMemoryForRecommendedSize - READ-ONLY; Megabytes of memory in the Recommended Azure VM Size.
1042	MegabytesOfMemoryForRecommendedSize *float64 `json:"megabytesOfMemoryForRecommendedSize,omitempty"`
1043	// MonthlyComputeCostForRecommendedSize - READ-ONLY; Compute Cost for a 31-day month, if the machine is migrated to Azure with the Recommended Size.
1044	MonthlyComputeCostForRecommendedSize *float64 `json:"monthlyComputeCostForRecommendedSize,omitempty"`
1045	// PercentageCoresUtilization - READ-ONLY; Utilization percentage of the processor core as observed in the private data center, in the Time Range selected on Assessment, reported as the Percentile value based on the percentile number selected in assessment.
1046	PercentageCoresUtilization *float64 `json:"percentageCoresUtilization,omitempty"`
1047	// PercentageMemoryUtilization - READ-ONLY; Utilization percentage of the memory as observed in the private data center, in the Time Range selected on Assessment, reported as the Percentile value based on the percentile number selected in assessment.
1048	PercentageMemoryUtilization *float64 `json:"percentageMemoryUtilization,omitempty"`
1049	// PercentageCoresUtilizationDataPointsExpected - READ-ONLY; Expected data points for percentage of cores utilization.
1050	PercentageCoresUtilizationDataPointsExpected *int32 `json:"percentageCoresUtilizationDataPointsExpected,omitempty"`
1051	// PercentageCoresUtilizationDataPointsReceived - READ-ONLY; Received data points for percentage of cores utilization.
1052	PercentageCoresUtilizationDataPointsReceived *int32 `json:"percentageCoresUtilizationDataPointsReceived,omitempty"`
1053	// PercentageMemoryUtilizationDataPointsExpected - READ-ONLY; Expected data points for percentage of memory utilization.
1054	PercentageMemoryUtilizationDataPointsExpected *int32 `json:"percentageMemoryUtilizationDataPointsExpected,omitempty"`
1055	// PercentageMemoryUtilizationDataPointsReceived - READ-ONLY; Received data points for percentage of memory utilization.
1056	PercentageMemoryUtilizationDataPointsReceived *int32 `json:"percentageMemoryUtilizationDataPointsReceived,omitempty"`
1057	// Suitability - READ-ONLY; Whether machine is suitable for migration to Azure. Possible values include: 'CloudSuitabilityUnknown', 'CloudSuitabilityNotSuitable', 'CloudSuitabilitySuitable', 'CloudSuitabilityConditionallySuitable', 'CloudSuitabilityReadinessUnknown'
1058	Suitability CloudSuitability `json:"suitability,omitempty"`
1059	// SuitabilityExplanation - READ-ONLY; If machine is not ready to be migrated, this explains the reasons and mitigation steps. Possible values include: 'AzureVMSuitabilityExplanationUnknown', 'AzureVMSuitabilityExplanationNotApplicable', 'AzureVMSuitabilityExplanationGuestOperatingSystemArchitectureNotSupported', 'AzureVMSuitabilityExplanationGuestOperatingSystemNotSupported', 'AzureVMSuitabilityExplanationBootTypeNotSupported', 'AzureVMSuitabilityExplanationMoreDisksThanSupported', 'AzureVMSuitabilityExplanationNoSuitableVMSizeFound', 'AzureVMSuitabilityExplanationOneOrMoreDisksNotSuitable', 'AzureVMSuitabilityExplanationOneOrMoreAdaptersNotSuitable', 'AzureVMSuitabilityExplanationInternalErrorOccuredDuringComputeEvaluation', 'AzureVMSuitabilityExplanationInternalErrorOccuredDuringStorageEvaluation', 'AzureVMSuitabilityExplanationInternalErrorOccuredDuringNetworkEvaluation', 'AzureVMSuitabilityExplanationNoVMSizeSupportsStoragePerformance', 'AzureVMSuitabilityExplanationNoVMSizeSupportsNetworkPerformance', 'AzureVMSuitabilityExplanationNoVMSizeForSelectedPricingTier', 'AzureVMSuitabilityExplanationNoVMSizeForSelectedAzureLocation', 'AzureVMSuitabilityExplanationCheckRedHatLinuxVersion', 'AzureVMSuitabilityExplanationCheckOpenSuseLinuxVersion', 'AzureVMSuitabilityExplanationCheckWindowsServer2008R2Version', 'AzureVMSuitabilityExplanationCheckCentOsVersion', 'AzureVMSuitabilityExplanationCheckDebianLinuxVersion', 'AzureVMSuitabilityExplanationCheckSuseLinuxVersion', 'AzureVMSuitabilityExplanationCheckOracleLinuxVersion', 'AzureVMSuitabilityExplanationCheckUbuntuLinuxVersion', 'AzureVMSuitabilityExplanationCheckCoreOsLinuxVersion', 'AzureVMSuitabilityExplanationWindowsServerVersionConditionallySupported', 'AzureVMSuitabilityExplanationNoGuestOperatingSystemConditionallySupported', 'AzureVMSuitabilityExplanationWindowsClientVersionsConditionallySupported', 'AzureVMSuitabilityExplanationBootTypeUnknown', 'AzureVMSuitabilityExplanationGuestOperatingSystemUnknown', 'AzureVMSuitabilityExplanationWindowsServerVersionsSupportedWithCaveat', 'AzureVMSuitabilityExplanationWindowsOSNoLongerUnderMSSupport', 'AzureVMSuitabilityExplanationEndorsedWithConditionsLinuxDistributions', 'AzureVMSuitabilityExplanationUnendorsedLinuxDistributions', 'AzureVMSuitabilityExplanationNoVMSizeForStandardPricingTier', 'AzureVMSuitabilityExplanationNoVMSizeForBasicPricingTier'
1060	SuitabilityExplanation AzureVMSuitabilityExplanation `json:"suitabilityExplanation,omitempty"`
1061	// CreatedTimestamp - READ-ONLY; Time when this machine was created. Date-Time represented in ISO-8601 format.
1062	CreatedTimestamp *date.Time `json:"createdTimestamp,omitempty"`
1063	// UpdatedTimestamp - READ-ONLY; Time when this machine was last updated. Date-Time represented in ISO-8601 format.
1064	UpdatedTimestamp *date.Time `json:"updatedTimestamp,omitempty"`
1065}
1066
1067// MarshalJSON is the custom marshaler for AssessedMachineProperties.
1068func (amp AssessedMachineProperties) MarshalJSON() ([]byte, error) {
1069	objectMap := make(map[string]interface{})
1070	return json.Marshal(objectMap)
1071}
1072
1073// AssessedMachineResultList list of assessed machines.
1074type AssessedMachineResultList struct {
1075	autorest.Response `json:"-"`
1076	// Value - List of assessed machines.
1077	Value *[]AssessedMachine `json:"value,omitempty"`
1078}
1079
1080// AssessedNetworkAdapter a network adapter assessed for an assessment.
1081type AssessedNetworkAdapter struct {
1082	// MacAddress - READ-ONLY; MAC Address of the network adapter.
1083	MacAddress *string `json:"macAddress,omitempty"`
1084	// IPAddresses - READ-ONLY; List of IP Addresses on the network adapter.
1085	IPAddresses *[]string `json:"ipAddresses,omitempty"`
1086	// MonthlyBandwidthCosts - READ-ONLY; Monthly cost estimate for network bandwidth used by this network adapter.
1087	MonthlyBandwidthCosts *float64 `json:"monthlyBandwidthCosts,omitempty"`
1088	// MegabytesPerSecondReceived - READ-ONLY; Adapter throughput for incoming traffic in MegaBytes per second.
1089	MegabytesPerSecondReceived *float64 `json:"megabytesPerSecondReceived,omitempty"`
1090	// MegabytesPerSecondReceivedDataPointsExpected - READ-ONLY; Expected data points for incoming traffic in MegaBytes per second.
1091	MegabytesPerSecondReceivedDataPointsExpected *int32 `json:"megabytesPerSecondReceivedDataPointsExpected,omitempty"`
1092	// MegabytesPerSecondOfReadDataPointsReceived - READ-ONLY; Received data points for incoming traffic in MegaBytes per second.
1093	MegabytesPerSecondOfReadDataPointsReceived *int32 `json:"megabytesPerSecondOfReadDataPointsReceived,omitempty"`
1094	// MegabytesPerSecondTransmitted - READ-ONLY; Adapter throughput for outgoing traffic in MegaBytes per second.
1095	MegabytesPerSecondTransmitted *float64 `json:"megabytesPerSecondTransmitted,omitempty"`
1096	// MegabytesPerSecondTransmittedDataPointsExpected - READ-ONLY; Expected data points for outgoing traffic in MegaBytes per second.
1097	MegabytesPerSecondTransmittedDataPointsExpected *int32 `json:"megabytesPerSecondTransmittedDataPointsExpected,omitempty"`
1098	// MegabytesPerSecondTransmittedDataPointsReceived - READ-ONLY; Received data points for outgoing traffic in MegaBytes per second.
1099	MegabytesPerSecondTransmittedDataPointsReceived *int32 `json:"megabytesPerSecondTransmittedDataPointsReceived,omitempty"`
1100	// NetGigabytesTransmittedPerMonth - Gigabytes transmitted through this adapter each month.
1101	NetGigabytesTransmittedPerMonth *float64 `json:"netGigabytesTransmittedPerMonth,omitempty"`
1102	// Suitability - READ-ONLY; Whether this adapter is suitable for Azure. Possible values include: 'CloudSuitabilityUnknown', 'CloudSuitabilityNotSuitable', 'CloudSuitabilitySuitable', 'CloudSuitabilityConditionallySuitable', 'CloudSuitabilityReadinessUnknown'
1103	Suitability CloudSuitability `json:"suitability,omitempty"`
1104	// SuitabilityExplanation - READ-ONLY; If network adapter is suitable, this explains the reasons and mitigation steps. Possible values include: 'AzureNetworkAdapterSuitabilityExplanationUnknown', 'AzureNetworkAdapterSuitabilityExplanationNotApplicable', 'AzureNetworkAdapterSuitabilityExplanationInternalErrorOccured'
1105	SuitabilityExplanation AzureNetworkAdapterSuitabilityExplanation `json:"suitabilityExplanation,omitempty"`
1106}
1107
1108// Assessment an assessment created for a group in the Migration project.
1109type Assessment struct {
1110	autorest.Response `json:"-"`
1111	// ID - READ-ONLY; Path reference to this assessment. /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Migrate/projects/{projectName}/groups/{groupName}/assessment/{assessmentName}
1112	ID *string `json:"id,omitempty"`
1113	// Name - READ-ONLY; Unique name of an assessment.
1114	Name *string `json:"name,omitempty"`
1115	// ETag - For optimistic concurrency control.
1116	ETag *string `json:"eTag,omitempty"`
1117	// Type - READ-ONLY; Type of the object = [Microsoft.Migrate/projects/groups/assessments].
1118	Type *string `json:"type,omitempty"`
1119	// AssessmentProperties - Properties of the assessment.
1120	*AssessmentProperties `json:"properties,omitempty"`
1121}
1122
1123// MarshalJSON is the custom marshaler for Assessment.
1124func (a Assessment) MarshalJSON() ([]byte, error) {
1125	objectMap := make(map[string]interface{})
1126	if a.ETag != nil {
1127		objectMap["eTag"] = a.ETag
1128	}
1129	if a.AssessmentProperties != nil {
1130		objectMap["properties"] = a.AssessmentProperties
1131	}
1132	return json.Marshal(objectMap)
1133}
1134
1135// UnmarshalJSON is the custom unmarshaler for Assessment struct.
1136func (a *Assessment) UnmarshalJSON(body []byte) error {
1137	var m map[string]*json.RawMessage
1138	err := json.Unmarshal(body, &m)
1139	if err != nil {
1140		return err
1141	}
1142	for k, v := range m {
1143		switch k {
1144		case "id":
1145			if v != nil {
1146				var ID string
1147				err = json.Unmarshal(*v, &ID)
1148				if err != nil {
1149					return err
1150				}
1151				a.ID = &ID
1152			}
1153		case "name":
1154			if v != nil {
1155				var name string
1156				err = json.Unmarshal(*v, &name)
1157				if err != nil {
1158					return err
1159				}
1160				a.Name = &name
1161			}
1162		case "eTag":
1163			if v != nil {
1164				var eTag string
1165				err = json.Unmarshal(*v, &eTag)
1166				if err != nil {
1167					return err
1168				}
1169				a.ETag = &eTag
1170			}
1171		case "type":
1172			if v != nil {
1173				var typeVar string
1174				err = json.Unmarshal(*v, &typeVar)
1175				if err != nil {
1176					return err
1177				}
1178				a.Type = &typeVar
1179			}
1180		case "properties":
1181			if v != nil {
1182				var assessmentProperties AssessmentProperties
1183				err = json.Unmarshal(*v, &assessmentProperties)
1184				if err != nil {
1185					return err
1186				}
1187				a.AssessmentProperties = &assessmentProperties
1188			}
1189		}
1190	}
1191
1192	return nil
1193}
1194
1195// AssessmentOptionsResultList list of assessment options.
1196type AssessmentOptionsResultList struct {
1197	autorest.Response `json:"-"`
1198	// VMFamilies - READ-ONLY; Dictionary of VM families grouped by vm family name describing the targeted azure locations of VM family and the category of the family.
1199	VMFamilies *[]VMFamily `json:"vmFamilies,omitempty"`
1200	// ReservedInstanceVMFamilies - READ-ONLY; List of supported VM Families.
1201	ReservedInstanceVMFamilies *[]string `json:"reservedInstanceVmFamilies,omitempty"`
1202}
1203
1204// AssessmentProperties properties of an assessment.
1205type AssessmentProperties struct {
1206	// AzureLocation - Target Azure location for which the machines should be assessed. These enums are the same as used by Compute API. Possible values include: 'AzureLocationUnknown', 'AzureLocationEastAsia', 'AzureLocationSoutheastAsia', 'AzureLocationAustraliaEast', 'AzureLocationAustraliaSoutheast', 'AzureLocationBrazilSouth', 'AzureLocationCanadaCentral', 'AzureLocationCanadaEast', 'AzureLocationWestEurope', 'AzureLocationNorthEurope', 'AzureLocationCentralIndia', 'AzureLocationSouthIndia', 'AzureLocationWestIndia', 'AzureLocationJapanEast', 'AzureLocationJapanWest', 'AzureLocationKoreaCentral', 'AzureLocationKoreaSouth', 'AzureLocationUkWest', 'AzureLocationUkSouth', 'AzureLocationNorthCentralUs', 'AzureLocationEastUs', 'AzureLocationWestUs2', 'AzureLocationSouthCentralUs', 'AzureLocationCentralUs', 'AzureLocationEastUs2', 'AzureLocationWestUs', 'AzureLocationWestCentralUs', 'AzureLocationGermanyCentral', 'AzureLocationGermanyNortheast', 'AzureLocationChinaNorth', 'AzureLocationChinaEast'
1207	AzureLocation AzureLocation `json:"azureLocation,omitempty"`
1208	// AzureOfferCode - Offer code according to which cost estimation is done. Possible values include: 'AzureOfferCodeUnknown', 'AzureOfferCodeMSAZR0003P', 'AzureOfferCodeMSAZR0044P', 'AzureOfferCodeMSAZR0059P', 'AzureOfferCodeMSAZR0060P', 'AzureOfferCodeMSAZR0062P', 'AzureOfferCodeMSAZR0063P', 'AzureOfferCodeMSAZR0064P', 'AzureOfferCodeMSAZR0029P', 'AzureOfferCodeMSAZR0022P', 'AzureOfferCodeMSAZR0023P', 'AzureOfferCodeMSAZR0148P', 'AzureOfferCodeMSAZR0025P', 'AzureOfferCodeMSAZR0036P', 'AzureOfferCodeMSAZR0120P', 'AzureOfferCodeMSAZR0121P', 'AzureOfferCodeMSAZR0122P', 'AzureOfferCodeMSAZR0123P', 'AzureOfferCodeMSAZR0124P', 'AzureOfferCodeMSAZR0125P', 'AzureOfferCodeMSAZR0126P', 'AzureOfferCodeMSAZR0127P', 'AzureOfferCodeMSAZR0128P', 'AzureOfferCodeMSAZR0129P', 'AzureOfferCodeMSAZR0130P', 'AzureOfferCodeMSAZR0111P', 'AzureOfferCodeMSAZR0144P', 'AzureOfferCodeMSAZR0149P', 'AzureOfferCodeMSMCAZR0044P', 'AzureOfferCodeMSMCAZR0059P', 'AzureOfferCodeMSMCAZR0060P', 'AzureOfferCodeMSMCAZR0063P', 'AzureOfferCodeMSMCAZR0120P', 'AzureOfferCodeMSMCAZR0121P', 'AzureOfferCodeMSMCAZR0125P', 'AzureOfferCodeMSMCAZR0128P', 'AzureOfferCodeMSAZRDE0003P', 'AzureOfferCodeMSAZRDE0044P'
1209	AzureOfferCode AzureOfferCode `json:"azureOfferCode,omitempty"`
1210	// AzurePricingTier - Pricing tier for Size evaluation. Possible values include: 'Standard', 'Basic'
1211	AzurePricingTier AzurePricingTier `json:"azurePricingTier,omitempty"`
1212	// AzureStorageRedundancy - Storage Redundancy type offered by Azure. Possible values include: 'AzureStorageRedundancyUnknown', 'AzureStorageRedundancyLocallyRedundant', 'AzureStorageRedundancyZoneRedundant', 'AzureStorageRedundancyGeoRedundant', 'AzureStorageRedundancyReadAccessGeoRedundant'
1213	AzureStorageRedundancy AzureStorageRedundancy `json:"azureStorageRedundancy,omitempty"`
1214	// ScalingFactor - Scaling factor used over utilization data to add a performance buffer for new machines to be created in Azure. Min Value = 1.0, Max value = 1.9, Default = 1.3.
1215	ScalingFactor *float64 `json:"scalingFactor,omitempty"`
1216	// Percentile - Percentile of performance data used to recommend Azure size. Possible values include: 'Percentile50', 'Percentile90', 'Percentile95', 'Percentile99'
1217	Percentile Percentile `json:"percentile,omitempty"`
1218	// TimeRange - Time range of performance data used to recommend a size. Possible values include: 'Day', 'Week', 'Month'
1219	TimeRange TimeRange `json:"timeRange,omitempty"`
1220	// Stage - User configurable setting that describes the status of the assessment. Possible values include: 'InProgress', 'UnderReview', 'Approved'
1221	Stage AssessmentStage `json:"stage,omitempty"`
1222	// Currency - Currency to report prices in. Possible values include: 'CurrencyUnknown', 'CurrencyUSD', 'CurrencyDKK', 'CurrencyCAD', 'CurrencyIDR', 'CurrencyJPY', 'CurrencyKRW', 'CurrencyNZD', 'CurrencyNOK', 'CurrencyRUB', 'CurrencySAR', 'CurrencyZAR', 'CurrencySEK', 'CurrencyTRY', 'CurrencyGBP', 'CurrencyMXN', 'CurrencyMYR', 'CurrencyINR', 'CurrencyHKD', 'CurrencyBRL', 'CurrencyTWD', 'CurrencyEUR', 'CurrencyCHF', 'CurrencyARS', 'CurrencyAUD', 'CurrencyCNY'
1223	Currency Currency `json:"currency,omitempty"`
1224	// AzureHybridUseBenefit - AHUB discount on windows virtual machines. Possible values include: 'AzureHybridUseBenefitUnknown', 'AzureHybridUseBenefitYes', 'AzureHybridUseBenefitNo'
1225	AzureHybridUseBenefit AzureHybridUseBenefit `json:"azureHybridUseBenefit,omitempty"`
1226	// DiscountPercentage - Custom discount percentage to be applied on final costs. Can be in the range [0, 100].
1227	DiscountPercentage *float64 `json:"discountPercentage,omitempty"`
1228	// ConfidenceRatingInPercentage - READ-ONLY; Confidence rating percentage for assessment. Can be in the range [0, 100].
1229	ConfidenceRatingInPercentage *float64 `json:"confidenceRatingInPercentage,omitempty"`
1230	// SizingCriterion - Assessment sizing criterion. Possible values include: 'PerformanceBased', 'AsOnPremises'
1231	SizingCriterion AssessmentSizingCriterion `json:"sizingCriterion,omitempty"`
1232	// PricesTimestamp - READ-ONLY; Time when the Azure Prices were queried. Date-Time represented in ISO-8601 format.
1233	PricesTimestamp *date.Time `json:"pricesTimestamp,omitempty"`
1234	// CreatedTimestamp - READ-ONLY; Time when this project was created. Date-Time represented in ISO-8601 format.
1235	CreatedTimestamp *date.Time `json:"createdTimestamp,omitempty"`
1236	// UpdatedTimestamp - READ-ONLY; Time when this project was last updated. Date-Time represented in ISO-8601 format.
1237	UpdatedTimestamp *date.Time `json:"updatedTimestamp,omitempty"`
1238	// MonthlyComputeCost - READ-ONLY; Monthly compute cost estimate for the machines that are part of this assessment as a group, for a 31-day month.
1239	MonthlyComputeCost *float64 `json:"monthlyComputeCost,omitempty"`
1240	// MonthlyBandwidthCost - READ-ONLY; Monthly network cost estimate for the machines that are part of this assessment as a group, for a 31-day month.
1241	MonthlyBandwidthCost *float64 `json:"monthlyBandwidthCost,omitempty"`
1242	// MonthlyStorageCost - READ-ONLY; Monthly storage cost estimate for the machines that are part of this assessment as a group, for a 31-day month.
1243	MonthlyStorageCost *float64 `json:"monthlyStorageCost,omitempty"`
1244	// Status - READ-ONLY; Whether the assessment has been created and is valid. Possible values include: 'Created', 'Updated', 'Running', 'Completed', 'Invalid'
1245	Status AssessmentStatus `json:"status,omitempty"`
1246	// NumberOfMachines - READ-ONLY; Number of assessed machines part of this assessment.
1247	NumberOfMachines *int32 `json:"numberOfMachines,omitempty"`
1248}
1249
1250// AssessmentResultList list of assessments.
1251type AssessmentResultList struct {
1252	autorest.Response `json:"-"`
1253	// Value - List of assessments.
1254	Value *[]Assessment `json:"value,omitempty"`
1255}
1256
1257// CheckNameAvailabilityParameters parameters for a check name availability request.
1258type CheckNameAvailabilityParameters struct {
1259	// Name - The name to check for availability
1260	Name *string `json:"name,omitempty"`
1261	// Type - The resource type. Must be set to Microsoft.Migrate/projects
1262	Type *string `json:"type,omitempty"`
1263}
1264
1265// CheckNameAvailabilityResult the CheckNameAvailability operation response.
1266type CheckNameAvailabilityResult struct {
1267	autorest.Response `json:"-"`
1268	// NameAvailable - READ-ONLY; Gets a boolean value that indicates whether the name is available for you to use. If true, the name is available. If false, the name has already been taken or invalid and cannot be used.
1269	NameAvailable *bool `json:"nameAvailable,omitempty"`
1270	// Reason - READ-ONLY; Gets the reason that a project name could not be used. The Reason element is only returned if NameAvailable is false. Possible values include: 'NameAvailabilityReasonAvailable', 'NameAvailabilityReasonInvalid', 'NameAvailabilityReasonAlreadyExists'
1271	Reason NameAvailabilityReason `json:"reason,omitempty"`
1272	// Message - READ-ONLY; Gets an error message explaining the Reason value in more detail.
1273	Message *string `json:"message,omitempty"`
1274}
1275
1276// CloudError an error response from the Azure Migrate service.
1277type CloudError struct {
1278	Error *CloudErrorBody `json:"error,omitempty"`
1279}
1280
1281// CloudErrorBody an error response from the Azure Migrate service.
1282type CloudErrorBody struct {
1283	// Code - An identifier for the error. Codes are invariant and are intended to be consumed programmatically.
1284	Code *string `json:"code,omitempty"`
1285	// Message - A message describing the error, intended to be suitable for display in a user interface.
1286	Message *string `json:"message,omitempty"`
1287	// Target - The target of the particular error. For example, the name of the property in error.
1288	Target *string `json:"target,omitempty"`
1289	// Details - A list of additional details about the error.
1290	Details *[]CloudErrorBody `json:"details,omitempty"`
1291}
1292
1293// Disk a disk discovered on a machine.
1294type Disk struct {
1295	// GigabytesAllocated - READ-ONLY; Gigabytes of storage provisioned for this disk.
1296	GigabytesAllocated *float64 `json:"gigabytesAllocated,omitempty"`
1297	// GigabytesConsumed - READ-ONLY; Gigabytes of storage consumed by this disk.
1298	GigabytesConsumed *float64 `json:"gigabytesConsumed,omitempty"`
1299}
1300
1301// DownloadURL download URL for assessment report.
1302type DownloadURL struct {
1303	autorest.Response `json:"-"`
1304	// AssessmentReportURL - READ-ONLY; Hyperlink to download report.
1305	AssessmentReportURL *string `json:"assessmentReportUrl,omitempty"`
1306	// ExpirationTime - READ-ONLY; Expiry date of download url.
1307	ExpirationTime *date.Time `json:"expirationTime,omitempty"`
1308}
1309
1310// Group a group created in a Migration project.
1311type Group struct {
1312	autorest.Response `json:"-"`
1313	// ID - READ-ONLY; Path reference to this group. /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Migrate/projects/{projectName}/groups/{groupName}
1314	ID *string `json:"id,omitempty"`
1315	// Name - READ-ONLY; Name of the group.
1316	Name *string `json:"name,omitempty"`
1317	// ETag - For optimistic concurrency control.
1318	ETag *string `json:"eTag,omitempty"`
1319	// Type - READ-ONLY; Type of the object = [Microsoft.Migrate/projects/groups].
1320	Type *string `json:"type,omitempty"`
1321	// GroupProperties - Properties of the group.
1322	*GroupProperties `json:"properties,omitempty"`
1323}
1324
1325// MarshalJSON is the custom marshaler for Group.
1326func (g Group) MarshalJSON() ([]byte, error) {
1327	objectMap := make(map[string]interface{})
1328	if g.ETag != nil {
1329		objectMap["eTag"] = g.ETag
1330	}
1331	if g.GroupProperties != nil {
1332		objectMap["properties"] = g.GroupProperties
1333	}
1334	return json.Marshal(objectMap)
1335}
1336
1337// UnmarshalJSON is the custom unmarshaler for Group struct.
1338func (g *Group) UnmarshalJSON(body []byte) error {
1339	var m map[string]*json.RawMessage
1340	err := json.Unmarshal(body, &m)
1341	if err != nil {
1342		return err
1343	}
1344	for k, v := range m {
1345		switch k {
1346		case "id":
1347			if v != nil {
1348				var ID string
1349				err = json.Unmarshal(*v, &ID)
1350				if err != nil {
1351					return err
1352				}
1353				g.ID = &ID
1354			}
1355		case "name":
1356			if v != nil {
1357				var name string
1358				err = json.Unmarshal(*v, &name)
1359				if err != nil {
1360					return err
1361				}
1362				g.Name = &name
1363			}
1364		case "eTag":
1365			if v != nil {
1366				var eTag string
1367				err = json.Unmarshal(*v, &eTag)
1368				if err != nil {
1369					return err
1370				}
1371				g.ETag = &eTag
1372			}
1373		case "type":
1374			if v != nil {
1375				var typeVar string
1376				err = json.Unmarshal(*v, &typeVar)
1377				if err != nil {
1378					return err
1379				}
1380				g.Type = &typeVar
1381			}
1382		case "properties":
1383			if v != nil {
1384				var groupProperties GroupProperties
1385				err = json.Unmarshal(*v, &groupProperties)
1386				if err != nil {
1387					return err
1388				}
1389				g.GroupProperties = &groupProperties
1390			}
1391		}
1392	}
1393
1394	return nil
1395}
1396
1397// GroupProperties properties of group resource.
1398type GroupProperties struct {
1399	// Machines - List of machine names that are part of this group.
1400	Machines *[]string `json:"machines,omitempty"`
1401	// Assessments - READ-ONLY; List of References to Assessments created on this group.
1402	Assessments *[]string `json:"assessments,omitempty"`
1403	// CreatedTimestamp - READ-ONLY; Time when this project was created. Date-Time represented in ISO-8601 format.
1404	CreatedTimestamp *date.Time `json:"createdTimestamp,omitempty"`
1405	// UpdatedTimestamp - READ-ONLY; Time when this project was last updated. Date-Time represented in ISO-8601 format.
1406	UpdatedTimestamp *date.Time `json:"updatedTimestamp,omitempty"`
1407}
1408
1409// GroupResultList list of groups.
1410type GroupResultList struct {
1411	autorest.Response `json:"-"`
1412	// Value - List of groups.
1413	Value *[]Group `json:"value,omitempty"`
1414}
1415
1416// Machine a machine in a migration project.
1417type Machine struct {
1418	autorest.Response `json:"-"`
1419	// ID - READ-ONLY; Path reference to this machine. /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Migrate/projects/{projectName}/machines/{machineName}
1420	ID *string `json:"id,omitempty"`
1421	// Name - READ-ONLY; Name of the machine. It is a GUID which is unique identifier of machine in private data center. For user-readable name, we have a displayName property on this machine.
1422	Name *string `json:"name,omitempty"`
1423	// ETag - For optimistic concurrency control.
1424	ETag *string `json:"eTag,omitempty"`
1425	// Type - READ-ONLY; Type of the object = [Microsoft.Migrate/projects/machines].
1426	Type *string `json:"type,omitempty"`
1427	// MachineProperties - Properties of the machine.
1428	*MachineProperties `json:"properties,omitempty"`
1429}
1430
1431// MarshalJSON is the custom marshaler for Machine.
1432func (mVar Machine) MarshalJSON() ([]byte, error) {
1433	objectMap := make(map[string]interface{})
1434	if mVar.ETag != nil {
1435		objectMap["eTag"] = mVar.ETag
1436	}
1437	if mVar.MachineProperties != nil {
1438		objectMap["properties"] = mVar.MachineProperties
1439	}
1440	return json.Marshal(objectMap)
1441}
1442
1443// UnmarshalJSON is the custom unmarshaler for Machine struct.
1444func (mVar *Machine) UnmarshalJSON(body []byte) error {
1445	var m map[string]*json.RawMessage
1446	err := json.Unmarshal(body, &m)
1447	if err != nil {
1448		return err
1449	}
1450	for k, v := range m {
1451		switch k {
1452		case "id":
1453			if v != nil {
1454				var ID string
1455				err = json.Unmarshal(*v, &ID)
1456				if err != nil {
1457					return err
1458				}
1459				mVar.ID = &ID
1460			}
1461		case "name":
1462			if v != nil {
1463				var name string
1464				err = json.Unmarshal(*v, &name)
1465				if err != nil {
1466					return err
1467				}
1468				mVar.Name = &name
1469			}
1470		case "eTag":
1471			if v != nil {
1472				var eTag string
1473				err = json.Unmarshal(*v, &eTag)
1474				if err != nil {
1475					return err
1476				}
1477				mVar.ETag = &eTag
1478			}
1479		case "type":
1480			if v != nil {
1481				var typeVar string
1482				err = json.Unmarshal(*v, &typeVar)
1483				if err != nil {
1484					return err
1485				}
1486				mVar.Type = &typeVar
1487			}
1488		case "properties":
1489			if v != nil {
1490				var machineProperties MachineProperties
1491				err = json.Unmarshal(*v, &machineProperties)
1492				if err != nil {
1493					return err
1494				}
1495				mVar.MachineProperties = &machineProperties
1496			}
1497		}
1498	}
1499
1500	return nil
1501}
1502
1503// MachineProperties properties of a machine.
1504type MachineProperties struct {
1505	// BootType - READ-ONLY; Boot type of the machine. Possible values include: 'MachineBootTypeUnknown', 'MachineBootTypeEFI', 'MachineBootTypeBIOS'
1506	BootType MachineBootType `json:"bootType,omitempty"`
1507	// DatacenterContainer - READ-ONLY; Container defined in the management solution that this machine is part of in the datacenter.
1508	DatacenterContainer *string `json:"datacenterContainer,omitempty"`
1509	// DatacenterManagementServer - READ-ONLY; Name of the server hosting the datacenter management solution.
1510	DatacenterManagementServer *string `json:"datacenterManagementServer,omitempty"`
1511	// DatacenterMachineID - READ-ONLY; ID of the machine as tracked by the datacenter management solution.
1512	DatacenterMachineID *string `json:"datacenterMachineId,omitempty"`
1513	// DatacenterManagementServerID - READ-ONLY; ID of the server hosting the datacenter management solution.
1514	DatacenterManagementServerID *string `json:"datacenterManagementServerId,omitempty"`
1515	// Description - READ-ONLY; Description of the machine
1516	Description *string `json:"description,omitempty"`
1517	// DisplayName - READ-ONLY; User readable name of the machine as defined by the user in their private datacenter.
1518	DisplayName *string `json:"displayName,omitempty"`
1519	// MegabytesOfMemory - READ-ONLY; Memory in Megabytes.
1520	MegabytesOfMemory *float64 `json:"megabytesOfMemory,omitempty"`
1521	// NumberOfCores - READ-ONLY; Processor count.
1522	NumberOfCores *int32 `json:"numberOfCores,omitempty"`
1523	// OperatingSystem - READ-ONLY; Operating System of the machine.
1524	OperatingSystem *string `json:"operatingSystem,omitempty"`
1525	// Groups - READ-ONLY; List of references to the groups that the machine is member of.
1526	Groups *[]string `json:"groups,omitempty"`
1527	// CreatedTimestamp - READ-ONLY; Time when this machine was created. Date-Time represented in ISO-8601 format.
1528	CreatedTimestamp *date.Time `json:"createdTimestamp,omitempty"`
1529	// UpdatedTimestamp - READ-ONLY; Time when this machine was last updated. Date-Time represented in ISO-8601 format.
1530	UpdatedTimestamp *date.Time `json:"updatedTimestamp,omitempty"`
1531	// DiscoveredTimestamp - READ-ONLY; Time when this machine was discovered by Azure Migrate agent. Date-Time represented in ISO-8601 format.
1532	DiscoveredTimestamp *date.Time `json:"discoveredTimestamp,omitempty"`
1533	// Disks - READ-ONLY; Dictionary of disks attached to the machine. Key is ID of disk. Value is a disk object
1534	Disks map[string]*Disk `json:"disks"`
1535	// NetworkAdapters - READ-ONLY; Dictionary of network adapters attached to the machine. Key is ID of network adapter. Value is a network adapter object
1536	NetworkAdapters map[string]*NetworkAdapter `json:"networkAdapters"`
1537}
1538
1539// MarshalJSON is the custom marshaler for MachineProperties.
1540func (mp MachineProperties) MarshalJSON() ([]byte, error) {
1541	objectMap := make(map[string]interface{})
1542	return json.Marshal(objectMap)
1543}
1544
1545// MachineResultList list of machines.
1546type MachineResultList struct {
1547	autorest.Response `json:"-"`
1548	// Value - List of machines.
1549	Value *[]Machine `json:"value,omitempty"`
1550}
1551
1552// NetworkAdapter a network adapter discovered on a machine.
1553type NetworkAdapter struct {
1554	// MacAddress - READ-ONLY; MAC Address of the network adapter.
1555	MacAddress *string `json:"macAddress,omitempty"`
1556	// IPAddresses - READ-ONLY; List of IP Addresses on the network adapter.
1557	IPAddresses *[]string `json:"ipAddresses,omitempty"`
1558}
1559
1560// Operation a REST API operation supported by the provider.
1561type Operation struct {
1562	// Name - READ-ONLY; Name of the operation.
1563	Name *string `json:"name,omitempty"`
1564	// Display - Displayable properties of the operation.
1565	Display *OperationDisplay `json:"display,omitempty"`
1566	// Origin - READ-ONLY; Origin of the operation.
1567	Origin *string `json:"origin,omitempty"`
1568}
1569
1570// OperationDisplay displayable properties of the operation.
1571type OperationDisplay struct {
1572	// Provider - READ-ONLY; Provider of the operation.
1573	Provider *string `json:"provider,omitempty"`
1574	// Resource - READ-ONLY; Resource operated on by the operation.
1575	Resource *string `json:"resource,omitempty"`
1576	// Operation - READ-ONLY; Operation Type.
1577	Operation *string `json:"operation,omitempty"`
1578	// Description - READ-ONLY; Description of the operation.
1579	Description *string `json:"description,omitempty"`
1580}
1581
1582// OperationResultList list of API operations.
1583type OperationResultList struct {
1584	autorest.Response `json:"-"`
1585	// Value - List of operations.
1586	Value *[]Operation `json:"value,omitempty"`
1587}
1588
1589// Project azure Migrate Project.
1590type Project struct {
1591	autorest.Response `json:"-"`
1592	// ID - READ-ONLY; Path reference to this project /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Migrate/projects/{projectName}
1593	ID *string `json:"id,omitempty"`
1594	// Name - READ-ONLY; Name of the project.
1595	Name *string `json:"name,omitempty"`
1596	// Type - READ-ONLY; Type of the object = [Microsoft.Migrate/projects].
1597	Type *string `json:"type,omitempty"`
1598	// ETag - For optimistic concurrency control.
1599	ETag *string `json:"eTag,omitempty"`
1600	// Location - Azure location in which project is created.
1601	Location *string `json:"location,omitempty"`
1602	// Tags - Tags provided by Azure Tagging service.
1603	Tags interface{} `json:"tags,omitempty"`
1604	// ProjectProperties - Properties of the project.
1605	*ProjectProperties `json:"properties,omitempty"`
1606}
1607
1608// MarshalJSON is the custom marshaler for Project.
1609func (p Project) MarshalJSON() ([]byte, error) {
1610	objectMap := make(map[string]interface{})
1611	if p.ETag != nil {
1612		objectMap["eTag"] = p.ETag
1613	}
1614	if p.Location != nil {
1615		objectMap["location"] = p.Location
1616	}
1617	if p.Tags != nil {
1618		objectMap["tags"] = p.Tags
1619	}
1620	if p.ProjectProperties != nil {
1621		objectMap["properties"] = p.ProjectProperties
1622	}
1623	return json.Marshal(objectMap)
1624}
1625
1626// UnmarshalJSON is the custom unmarshaler for Project struct.
1627func (p *Project) UnmarshalJSON(body []byte) error {
1628	var m map[string]*json.RawMessage
1629	err := json.Unmarshal(body, &m)
1630	if err != nil {
1631		return err
1632	}
1633	for k, v := range m {
1634		switch k {
1635		case "id":
1636			if v != nil {
1637				var ID string
1638				err = json.Unmarshal(*v, &ID)
1639				if err != nil {
1640					return err
1641				}
1642				p.ID = &ID
1643			}
1644		case "name":
1645			if v != nil {
1646				var name string
1647				err = json.Unmarshal(*v, &name)
1648				if err != nil {
1649					return err
1650				}
1651				p.Name = &name
1652			}
1653		case "type":
1654			if v != nil {
1655				var typeVar string
1656				err = json.Unmarshal(*v, &typeVar)
1657				if err != nil {
1658					return err
1659				}
1660				p.Type = &typeVar
1661			}
1662		case "eTag":
1663			if v != nil {
1664				var eTag string
1665				err = json.Unmarshal(*v, &eTag)
1666				if err != nil {
1667					return err
1668				}
1669				p.ETag = &eTag
1670			}
1671		case "location":
1672			if v != nil {
1673				var location string
1674				err = json.Unmarshal(*v, &location)
1675				if err != nil {
1676					return err
1677				}
1678				p.Location = &location
1679			}
1680		case "tags":
1681			if v != nil {
1682				var tags interface{}
1683				err = json.Unmarshal(*v, &tags)
1684				if err != nil {
1685					return err
1686				}
1687				p.Tags = tags
1688			}
1689		case "properties":
1690			if v != nil {
1691				var projectProperties ProjectProperties
1692				err = json.Unmarshal(*v, &projectProperties)
1693				if err != nil {
1694					return err
1695				}
1696				p.ProjectProperties = &projectProperties
1697			}
1698		}
1699	}
1700
1701	return nil
1702}
1703
1704// ProjectKey ID and Key for Migration Project.
1705type ProjectKey struct {
1706	autorest.Response `json:"-"`
1707	// WorkspaceID - READ-ONLY; ID of Migration Project.
1708	WorkspaceID *string `json:"workspaceId,omitempty"`
1709	// WorkspaceKey - READ-ONLY; Key of Migration Project.
1710	WorkspaceKey *string `json:"workspaceKey,omitempty"`
1711}
1712
1713// ProjectProperties properties of a project.
1714type ProjectProperties struct {
1715	// CreatedTimestamp - READ-ONLY; Time when this project was created. Date-Time represented in ISO-8601 format.
1716	CreatedTimestamp *date.Time `json:"createdTimestamp,omitempty"`
1717	// UpdatedTimestamp - READ-ONLY; Time when this project was last updated. Date-Time represented in ISO-8601 format.
1718	UpdatedTimestamp *date.Time `json:"updatedTimestamp,omitempty"`
1719	// DiscoveryStatus - READ-ONLY; Reports whether project is under discovery. Possible values include: 'DiscoveryStatusUnknown', 'DiscoveryStatusNotStarted', 'DiscoveryStatusInProgress', 'DiscoveryStatusCompleted'
1720	DiscoveryStatus DiscoveryStatus `json:"discoveryStatus,omitempty"`
1721	// CustomerWorkspaceID - ARM ID of the Service Map workspace created by user.
1722	CustomerWorkspaceID *string `json:"customerWorkspaceId,omitempty"`
1723	// CustomerWorkspaceLocation - Location of the Service Map workspace created by user.
1724	CustomerWorkspaceLocation *string `json:"customerWorkspaceLocation,omitempty"`
1725	// LastDiscoveryTimestamp - READ-ONLY; Time when this project was created. Date-Time represented in ISO-8601 format. This value will be null until discovery is complete.
1726	LastDiscoveryTimestamp *date.Time `json:"lastDiscoveryTimestamp,omitempty"`
1727	// LastDiscoverySessionID - READ-ONLY; Session id of the last discovery.
1728	LastDiscoverySessionID *string `json:"lastDiscoverySessionId,omitempty"`
1729	// NumberOfGroups - READ-ONLY; Number of groups created in the project.
1730	NumberOfGroups *int32 `json:"numberOfGroups,omitempty"`
1731	// NumberOfMachines - READ-ONLY; Number of machines in the project.
1732	NumberOfMachines *int32 `json:"numberOfMachines,omitempty"`
1733	// NumberOfAssessments - READ-ONLY; Number of assessments created in the project.
1734	NumberOfAssessments *int32 `json:"numberOfAssessments,omitempty"`
1735	// LastAssessmentTimestamp - READ-ONLY; Time when last assessment was created. Date-Time represented in ISO-8601 format. This value will be null until assessment is created.
1736	LastAssessmentTimestamp *date.Time `json:"lastAssessmentTimestamp,omitempty"`
1737	// ProvisioningState - Provisioning state of the project. Possible values include: 'Accepted', 'Creating', 'Deleting', 'Failed', 'Moving', 'Succeeded'
1738	ProvisioningState ProvisioningState `json:"provisioningState,omitempty"`
1739}
1740
1741// ProjectResultList list of projects.
1742type ProjectResultList struct {
1743	autorest.Response `json:"-"`
1744	// Value - List of projects.
1745	Value *[]Project `json:"value,omitempty"`
1746}
1747
1748// VMFamily VM family name, the list of targeted azure locations and the category of the family.
1749type VMFamily struct {
1750	// FamilyName - READ-ONLY; Name of the VM family.
1751	FamilyName *string `json:"familyName,omitempty"`
1752	// TargetLocations - READ-ONLY; List of Azure regions.
1753	TargetLocations *[]string `json:"targetLocations,omitempty"`
1754	// Category - READ-ONLY; Category of the VM family.
1755	Category *[]string `json:"category,omitempty"`
1756}
1757