1// +build go1.13
2
3// Copyright (c) Microsoft Corporation. All rights reserved.
4// Licensed under the MIT License. See License.txt in the project root for license information.
5// Code generated by Microsoft (R) AutoRest Code Generator.
6// Changes may cause incorrect behavior and will be lost if the code is regenerated.
7
8package armoperationalinsights
9
10import (
11	"encoding/json"
12	"github.com/Azure/azure-sdk-for-go/sdk/azcore"
13	"reflect"
14	"time"
15)
16
17// AssociatedWorkspace - The list of Log Analytics workspaces associated with the cluster.
18type AssociatedWorkspace struct {
19	// READ-ONLY; The time of workspace association.
20	AssociateDate *string `json:"associateDate,omitempty" azure:"ro"`
21
22	// READ-ONLY; The ResourceId id the assigned workspace.
23	ResourceID *string `json:"resourceId,omitempty" azure:"ro"`
24
25	// READ-ONLY; The id of the assigned workspace.
26	WorkspaceID *string `json:"workspaceId,omitempty" azure:"ro"`
27
28	// READ-ONLY; The name id the assigned workspace.
29	WorkspaceName *string `json:"workspaceName,omitempty" azure:"ro"`
30}
31
32// AvailableServiceTier - Service Tier details.
33type AvailableServiceTier struct {
34	// READ-ONLY; The capacity reservation level in GB per day. Returned for the Capacity Reservation Service Tier.
35	CapacityReservationLevel *int64 `json:"capacityReservationLevel,omitempty" azure:"ro"`
36
37	// READ-ONLY; The default retention for the Service Tier, in days.
38	DefaultRetention *int64 `json:"defaultRetention,omitempty" azure:"ro"`
39
40	// READ-ONLY; True if the Service Tier is enabled for the workspace.
41	Enabled *bool `json:"enabled,omitempty" azure:"ro"`
42
43	// READ-ONLY; Time when the sku was last updated for the workspace. Returned for the Capacity Reservation Service Tier.
44	LastSKUUpdate *string `json:"lastSkuUpdate,omitempty" azure:"ro"`
45
46	// READ-ONLY; The maximum retention for the Service Tier, in days.
47	MaximumRetention *int64 `json:"maximumRetention,omitempty" azure:"ro"`
48
49	// READ-ONLY; The minimum retention for the Service Tier, in days.
50	MinimumRetention *int64 `json:"minimumRetention,omitempty" azure:"ro"`
51
52	// READ-ONLY; The name of the Service Tier.
53	ServiceTier *SKUNameEnum `json:"serviceTier,omitempty" azure:"ro"`
54}
55
56// AvailableServiceTiersListByWorkspaceOptions contains the optional parameters for the AvailableServiceTiers.ListByWorkspace method.
57type AvailableServiceTiersListByWorkspaceOptions struct {
58	// placeholder for future optional parameters
59}
60
61// AzureEntityResource - The resource model definition for an Azure Resource Manager resource with an etag.
62type AzureEntityResource struct {
63	Resource
64	// READ-ONLY; Resource Etag.
65	Etag *string `json:"etag,omitempty" azure:"ro"`
66}
67
68// MarshalJSON implements the json.Marshaller interface for type AzureEntityResource.
69func (a AzureEntityResource) MarshalJSON() ([]byte, error) {
70	objectMap := a.marshalInternal()
71	return json.Marshal(objectMap)
72}
73
74func (a AzureEntityResource) marshalInternal() map[string]interface{} {
75	objectMap := a.Resource.marshalInternal()
76	populate(objectMap, "etag", a.Etag)
77	return objectMap
78}
79
80// CapacityReservationProperties - The Capacity Reservation properties.
81type CapacityReservationProperties struct {
82	// READ-ONLY; The last time Sku was updated.
83	LastSKUUpdate *string `json:"lastSkuUpdate,omitempty" azure:"ro"`
84
85	// READ-ONLY; Minimum CapacityReservation value in GB.
86	MinCapacity *int64 `json:"minCapacity,omitempty" azure:"ro"`
87}
88
89// Cluster - The top level Log Analytics cluster resource container.
90type Cluster struct {
91	TrackedResource
92	// The identity of the resource.
93	Identity *Identity `json:"identity,omitempty"`
94
95	// Log Analytics cluster properties.
96	Properties *ClusterProperties `json:"properties,omitempty"`
97
98	// The sku properties.
99	SKU *ClusterSKU `json:"sku,omitempty"`
100}
101
102// MarshalJSON implements the json.Marshaller interface for type Cluster.
103func (c Cluster) MarshalJSON() ([]byte, error) {
104	objectMap := c.TrackedResource.marshalInternal()
105	populate(objectMap, "identity", c.Identity)
106	populate(objectMap, "properties", c.Properties)
107	populate(objectMap, "sku", c.SKU)
108	return json.Marshal(objectMap)
109}
110
111// ClusterListResult - The list clusters operation response.
112type ClusterListResult struct {
113	// The link used to get the next page of recommendations.
114	NextLink *string `json:"nextLink,omitempty"`
115
116	// A list of Log Analytics clusters.
117	Value []*Cluster `json:"value,omitempty"`
118}
119
120// MarshalJSON implements the json.Marshaller interface for type ClusterListResult.
121func (c ClusterListResult) MarshalJSON() ([]byte, error) {
122	objectMap := make(map[string]interface{})
123	populate(objectMap, "nextLink", c.NextLink)
124	populate(objectMap, "value", c.Value)
125	return json.Marshal(objectMap)
126}
127
128// ClusterPatch - The top level Log Analytics cluster resource container.
129type ClusterPatch struct {
130	// The identity of the resource.
131	Identity *Identity `json:"identity,omitempty"`
132
133	// Log Analytics cluster properties.
134	Properties *ClusterPatchProperties `json:"properties,omitempty"`
135
136	// The sku properties.
137	SKU *ClusterSKU `json:"sku,omitempty"`
138
139	// Resource tags.
140	Tags map[string]*string `json:"tags,omitempty"`
141}
142
143// MarshalJSON implements the json.Marshaller interface for type ClusterPatch.
144func (c ClusterPatch) MarshalJSON() ([]byte, error) {
145	objectMap := make(map[string]interface{})
146	populate(objectMap, "identity", c.Identity)
147	populate(objectMap, "properties", c.Properties)
148	populate(objectMap, "sku", c.SKU)
149	populate(objectMap, "tags", c.Tags)
150	return json.Marshal(objectMap)
151}
152
153// ClusterPatchProperties - Log Analytics cluster patch properties.
154type ClusterPatchProperties struct {
155	// The cluster's billing type.
156	BillingType *BillingType `json:"billingType,omitempty"`
157
158	// The associated key properties.
159	KeyVaultProperties *KeyVaultProperties `json:"keyVaultProperties,omitempty"`
160}
161
162// ClusterProperties - Cluster properties.
163type ClusterProperties struct {
164	// The list of Log Analytics workspaces associated with the cluster
165	AssociatedWorkspaces []*AssociatedWorkspace `json:"associatedWorkspaces,omitempty"`
166
167	// The cluster's billing type.
168	BillingType *BillingType `json:"billingType,omitempty"`
169
170	// Additional properties for capacity reservation
171	CapacityReservationProperties *CapacityReservationProperties `json:"capacityReservationProperties,omitempty"`
172
173	// Sets whether the cluster will support availability zones. This can be set as true only in regions where Azure Data Explorer support Availability Zones.
174	// This Property can not be modified after cluster
175	// creation. Default value is 'true' if region supports Availability Zones.
176	IsAvailabilityZonesEnabled *bool `json:"isAvailabilityZonesEnabled,omitempty"`
177
178	// Configures whether cluster will use double encryption. This Property can not be modified after cluster creation. Default value is 'true'
179	IsDoubleEncryptionEnabled *bool `json:"isDoubleEncryptionEnabled,omitempty"`
180
181	// The associated key properties.
182	KeyVaultProperties *KeyVaultProperties `json:"keyVaultProperties,omitempty"`
183
184	// READ-ONLY; The ID associated with the cluster.
185	ClusterID *string `json:"clusterId,omitempty" azure:"ro"`
186
187	// READ-ONLY; The cluster creation time
188	CreatedDate *string `json:"createdDate,omitempty" azure:"ro"`
189
190	// READ-ONLY; The last time the cluster was updated.
191	LastModifiedDate *string `json:"lastModifiedDate,omitempty" azure:"ro"`
192
193	// READ-ONLY; The provisioning state of the cluster.
194	ProvisioningState *ClusterEntityStatus `json:"provisioningState,omitempty" azure:"ro"`
195}
196
197// MarshalJSON implements the json.Marshaller interface for type ClusterProperties.
198func (c ClusterProperties) MarshalJSON() ([]byte, error) {
199	objectMap := make(map[string]interface{})
200	populate(objectMap, "associatedWorkspaces", c.AssociatedWorkspaces)
201	populate(objectMap, "billingType", c.BillingType)
202	populate(objectMap, "capacityReservationProperties", c.CapacityReservationProperties)
203	populate(objectMap, "clusterId", c.ClusterID)
204	populate(objectMap, "createdDate", c.CreatedDate)
205	populate(objectMap, "isAvailabilityZonesEnabled", c.IsAvailabilityZonesEnabled)
206	populate(objectMap, "isDoubleEncryptionEnabled", c.IsDoubleEncryptionEnabled)
207	populate(objectMap, "keyVaultProperties", c.KeyVaultProperties)
208	populate(objectMap, "lastModifiedDate", c.LastModifiedDate)
209	populate(objectMap, "provisioningState", c.ProvisioningState)
210	return json.Marshal(objectMap)
211}
212
213// ClusterSKU - The cluster sku definition.
214type ClusterSKU struct {
215	// The capacity value
216	Capacity *int64 `json:"capacity,omitempty"`
217
218	// The name of the SKU.
219	Name *ClusterSKUNameEnum `json:"name,omitempty"`
220}
221
222// ClustersBeginCreateOrUpdateOptions contains the optional parameters for the Clusters.BeginCreateOrUpdate method.
223type ClustersBeginCreateOrUpdateOptions struct {
224	// placeholder for future optional parameters
225}
226
227// ClustersBeginDeleteOptions contains the optional parameters for the Clusters.BeginDelete method.
228type ClustersBeginDeleteOptions struct {
229	// placeholder for future optional parameters
230}
231
232// ClustersGetOptions contains the optional parameters for the Clusters.Get method.
233type ClustersGetOptions struct {
234	// placeholder for future optional parameters
235}
236
237// ClustersListByResourceGroupOptions contains the optional parameters for the Clusters.ListByResourceGroup method.
238type ClustersListByResourceGroupOptions struct {
239	// placeholder for future optional parameters
240}
241
242// ClustersListOptions contains the optional parameters for the Clusters.List method.
243type ClustersListOptions struct {
244	// placeholder for future optional parameters
245}
246
247// ClustersUpdateOptions contains the optional parameters for the Clusters.Update method.
248type ClustersUpdateOptions struct {
249	// placeholder for future optional parameters
250}
251
252// CoreSummary - The core summary of a search.
253type CoreSummary struct {
254	// REQUIRED; The number of documents of a core summary.
255	NumberOfDocuments *int64 `json:"numberOfDocuments,omitempty"`
256
257	// The status of a core summary.
258	Status *string `json:"status,omitempty"`
259}
260
261// DataExport - The top level data export resource container.
262type DataExport struct {
263	ProxyResource
264	// data export properties.
265	Properties *DataExportProperties `json:"properties,omitempty"`
266}
267
268// MarshalJSON implements the json.Marshaller interface for type DataExport.
269func (d DataExport) MarshalJSON() ([]byte, error) {
270	objectMap := d.ProxyResource.marshalInternal()
271	populate(objectMap, "properties", d.Properties)
272	return json.Marshal(objectMap)
273}
274
275// DataExportListResult - Result of the request to list data exports.
276type DataExportListResult struct {
277	// List of data export instances within a workspace..
278	Value []*DataExport `json:"value,omitempty"`
279}
280
281// MarshalJSON implements the json.Marshaller interface for type DataExportListResult.
282func (d DataExportListResult) MarshalJSON() ([]byte, error) {
283	objectMap := make(map[string]interface{})
284	populate(objectMap, "value", d.Value)
285	return json.Marshal(objectMap)
286}
287
288// DataExportProperties - Data Export properties.
289type DataExportProperties struct {
290	// REQUIRED; An array of tables to export, for example: [“Heartbeat, SecurityEvent”].
291	TableNames []*string `json:"tableNames,omitempty"`
292
293	// The latest data export rule modification time.
294	CreatedDate *string `json:"createdDate,omitempty"`
295
296	// The data export rule ID.
297	DataExportID *string `json:"dataExportId,omitempty"`
298
299	// destination properties.
300	Destination *Destination `json:"destination,omitempty"`
301
302	// Active when enabled.
303	Enable *bool `json:"enable,omitempty"`
304
305	// Date and time when the export was last modified.
306	LastModifiedDate *string `json:"lastModifiedDate,omitempty"`
307}
308
309// MarshalJSON implements the json.Marshaller interface for type DataExportProperties.
310func (d DataExportProperties) MarshalJSON() ([]byte, error) {
311	objectMap := make(map[string]interface{})
312	populate(objectMap, "createdDate", d.CreatedDate)
313	populate(objectMap, "dataExportId", d.DataExportID)
314	populate(objectMap, "destination", d.Destination)
315	populate(objectMap, "enable", d.Enable)
316	populate(objectMap, "lastModifiedDate", d.LastModifiedDate)
317	populate(objectMap, "tableNames", d.TableNames)
318	return json.Marshal(objectMap)
319}
320
321// DataExportsCreateOrUpdateOptions contains the optional parameters for the DataExports.CreateOrUpdate method.
322type DataExportsCreateOrUpdateOptions struct {
323	// placeholder for future optional parameters
324}
325
326// DataExportsDeleteOptions contains the optional parameters for the DataExports.Delete method.
327type DataExportsDeleteOptions struct {
328	// placeholder for future optional parameters
329}
330
331// DataExportsGetOptions contains the optional parameters for the DataExports.Get method.
332type DataExportsGetOptions struct {
333	// placeholder for future optional parameters
334}
335
336// DataExportsListByWorkspaceOptions contains the optional parameters for the DataExports.ListByWorkspace method.
337type DataExportsListByWorkspaceOptions struct {
338	// placeholder for future optional parameters
339}
340
341// DataSource - Datasources under OMS Workspace.
342type DataSource struct {
343	ProxyResource
344	// REQUIRED; The kind of the DataSource.
345	Kind *DataSourceKind `json:"kind,omitempty"`
346
347	// REQUIRED; The data source properties in raw json format, each kind of data source have it's own schema.
348	Properties map[string]interface{} `json:"properties,omitempty"`
349
350	// The ETag of the data source.
351	Etag *string `json:"etag,omitempty"`
352
353	// Resource tags.
354	Tags map[string]*string `json:"tags,omitempty"`
355}
356
357// MarshalJSON implements the json.Marshaller interface for type DataSource.
358func (d DataSource) MarshalJSON() ([]byte, error) {
359	objectMap := d.ProxyResource.marshalInternal()
360	populate(objectMap, "etag", d.Etag)
361	populate(objectMap, "kind", d.Kind)
362	populate(objectMap, "properties", d.Properties)
363	populate(objectMap, "tags", d.Tags)
364	return json.Marshal(objectMap)
365}
366
367// DataSourceFilter - DataSource filter. Right now, only filter by kind is supported.
368type DataSourceFilter struct {
369	// The kind of the DataSource.
370	Kind *DataSourceKind `json:"kind,omitempty"`
371}
372
373// DataSourceListResult - The list data source by workspace operation response.
374type DataSourceListResult struct {
375	// The link (url) to the next page of datasources.
376	NextLink *string `json:"nextLink,omitempty"`
377
378	// A list of datasources.
379	Value []*DataSource `json:"value,omitempty"`
380}
381
382// MarshalJSON implements the json.Marshaller interface for type DataSourceListResult.
383func (d DataSourceListResult) MarshalJSON() ([]byte, error) {
384	objectMap := make(map[string]interface{})
385	populate(objectMap, "nextLink", d.NextLink)
386	populate(objectMap, "value", d.Value)
387	return json.Marshal(objectMap)
388}
389
390// DataSourcesCreateOrUpdateOptions contains the optional parameters for the DataSources.CreateOrUpdate method.
391type DataSourcesCreateOrUpdateOptions struct {
392	// placeholder for future optional parameters
393}
394
395// DataSourcesDeleteOptions contains the optional parameters for the DataSources.Delete method.
396type DataSourcesDeleteOptions struct {
397	// placeholder for future optional parameters
398}
399
400// DataSourcesGetOptions contains the optional parameters for the DataSources.Get method.
401type DataSourcesGetOptions struct {
402	// placeholder for future optional parameters
403}
404
405// DataSourcesListByWorkspaceOptions contains the optional parameters for the DataSources.ListByWorkspace method.
406type DataSourcesListByWorkspaceOptions struct {
407	// Starting point of the collection of data source instances.
408	Skiptoken *string
409}
410
411// DeletedWorkspacesListByResourceGroupOptions contains the optional parameters for the DeletedWorkspaces.ListByResourceGroup method.
412type DeletedWorkspacesListByResourceGroupOptions struct {
413	// placeholder for future optional parameters
414}
415
416// DeletedWorkspacesListOptions contains the optional parameters for the DeletedWorkspaces.List method.
417type DeletedWorkspacesListOptions struct {
418	// placeholder for future optional parameters
419}
420
421// Destination properties.
422type Destination struct {
423	// REQUIRED; The destination resource ID. This can be copied from the Properties entry of the destination resource in Azure.
424	ResourceID *string `json:"resourceId,omitempty"`
425
426	// destination meta data.
427	MetaData *DestinationMetaData `json:"metaData,omitempty"`
428
429	// READ-ONLY; The type of the destination resource
430	Type *Type `json:"type,omitempty" azure:"ro"`
431}
432
433// DestinationMetaData - Destination meta data.
434type DestinationMetaData struct {
435	// Optional. Allows to define an Event Hub name. Not applicable when destination is Storage Account.
436	EventHubName *string `json:"eventHubName,omitempty"`
437}
438
439// ErrorAdditionalInfo - The resource management error additional info.
440type ErrorAdditionalInfo struct {
441	// READ-ONLY; The additional info.
442	Info map[string]interface{} `json:"info,omitempty" azure:"ro"`
443
444	// READ-ONLY; The additional info type.
445	Type *string `json:"type,omitempty" azure:"ro"`
446}
447
448// ErrorDetail - The error detail.
449type ErrorDetail struct {
450	// READ-ONLY; The error additional info.
451	AdditionalInfo []*ErrorAdditionalInfo `json:"additionalInfo,omitempty" azure:"ro"`
452
453	// READ-ONLY; The error code.
454	Code *string `json:"code,omitempty" azure:"ro"`
455
456	// READ-ONLY; The error details.
457	Details []*ErrorDetail `json:"details,omitempty" azure:"ro"`
458
459	// READ-ONLY; The error message.
460	Message *string `json:"message,omitempty" azure:"ro"`
461
462	// READ-ONLY; The error target.
463	Target *string `json:"target,omitempty" azure:"ro"`
464}
465
466// MarshalJSON implements the json.Marshaller interface for type ErrorDetail.
467func (e ErrorDetail) MarshalJSON() ([]byte, error) {
468	objectMap := make(map[string]interface{})
469	populate(objectMap, "additionalInfo", e.AdditionalInfo)
470	populate(objectMap, "code", e.Code)
471	populate(objectMap, "details", e.Details)
472	populate(objectMap, "message", e.Message)
473	populate(objectMap, "target", e.Target)
474	return json.Marshal(objectMap)
475}
476
477// ErrorResponse - Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData
478// error response format.).
479// Implements the error and azcore.HTTPResponse interfaces.
480type ErrorResponse struct {
481	raw string
482	// The error object.
483	InnerError *ErrorDetail `json:"error,omitempty"`
484}
485
486// Error implements the error interface for type ErrorResponse.
487// The contents of the error text are not contractual and subject to change.
488func (e ErrorResponse) Error() string {
489	return e.raw
490}
491
492// GatewaysDeleteOptions contains the optional parameters for the Gateways.Delete method.
493type GatewaysDeleteOptions struct {
494	// placeholder for future optional parameters
495}
496
497// Identity for the resource.
498type Identity struct {
499	// REQUIRED; Type of managed service identity.
500	Type *IdentityType `json:"type,omitempty"`
501
502	// The list of user identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form:
503	// '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.
504	UserAssignedIdentities map[string]*UserIdentityProperties `json:"userAssignedIdentities,omitempty"`
505
506	// READ-ONLY; The principal ID of resource identity.
507	PrincipalID *string `json:"principalId,omitempty" azure:"ro"`
508
509	// READ-ONLY; The tenant ID of resource.
510	TenantID *string `json:"tenantId,omitempty" azure:"ro"`
511}
512
513// MarshalJSON implements the json.Marshaller interface for type Identity.
514func (i Identity) MarshalJSON() ([]byte, error) {
515	objectMap := make(map[string]interface{})
516	populate(objectMap, "principalId", i.PrincipalID)
517	populate(objectMap, "tenantId", i.TenantID)
518	populate(objectMap, "type", i.Type)
519	populate(objectMap, "userAssignedIdentities", i.UserAssignedIdentities)
520	return json.Marshal(objectMap)
521}
522
523// IntelligencePack - Intelligence Pack containing a string name and boolean indicating if it's enabled.
524type IntelligencePack struct {
525	// The display name of the intelligence pack.
526	DisplayName *string `json:"displayName,omitempty"`
527
528	// The enabled boolean for the intelligence pack.
529	Enabled *bool `json:"enabled,omitempty"`
530
531	// The name of the intelligence pack.
532	Name *string `json:"name,omitempty"`
533}
534
535// IntelligencePacksDisableOptions contains the optional parameters for the IntelligencePacks.Disable method.
536type IntelligencePacksDisableOptions struct {
537	// placeholder for future optional parameters
538}
539
540// IntelligencePacksEnableOptions contains the optional parameters for the IntelligencePacks.Enable method.
541type IntelligencePacksEnableOptions struct {
542	// placeholder for future optional parameters
543}
544
545// IntelligencePacksListOptions contains the optional parameters for the IntelligencePacks.List method.
546type IntelligencePacksListOptions struct {
547	// placeholder for future optional parameters
548}
549
550// KeyVaultProperties - The key vault properties.
551type KeyVaultProperties struct {
552	// The name of the key associated with the Log Analytics cluster.
553	KeyName *string `json:"keyName,omitempty"`
554
555	// Selected key minimum required size.
556	KeyRsaSize *int32 `json:"keyRsaSize,omitempty"`
557
558	// The Key Vault uri which holds they key associated with the Log Analytics cluster.
559	KeyVaultURI *string `json:"keyVaultUri,omitempty"`
560
561	// The version of the key associated with the Log Analytics cluster.
562	KeyVersion *string `json:"keyVersion,omitempty"`
563}
564
565// LinkedService - The top level Linked service resource container.
566type LinkedService struct {
567	ProxyResource
568	// REQUIRED; The properties of the linked service.
569	Properties *LinkedServiceProperties `json:"properties,omitempty"`
570
571	// Resource tags.
572	Tags map[string]*string `json:"tags,omitempty"`
573}
574
575// MarshalJSON implements the json.Marshaller interface for type LinkedService.
576func (l LinkedService) MarshalJSON() ([]byte, error) {
577	objectMap := l.ProxyResource.marshalInternal()
578	populate(objectMap, "properties", l.Properties)
579	populate(objectMap, "tags", l.Tags)
580	return json.Marshal(objectMap)
581}
582
583// LinkedServiceListResult - The list linked service operation response.
584type LinkedServiceListResult struct {
585	// The list of linked service instances
586	Value []*LinkedService `json:"value,omitempty"`
587}
588
589// MarshalJSON implements the json.Marshaller interface for type LinkedServiceListResult.
590func (l LinkedServiceListResult) MarshalJSON() ([]byte, error) {
591	objectMap := make(map[string]interface{})
592	populate(objectMap, "value", l.Value)
593	return json.Marshal(objectMap)
594}
595
596// LinkedServiceProperties - Linked service properties.
597type LinkedServiceProperties struct {
598	// The provisioning state of the linked service.
599	ProvisioningState *LinkedServiceEntityStatus `json:"provisioningState,omitempty"`
600
601	// The resource id of the resource that will be linked to the workspace. This should be used for linking resources which require read access
602	ResourceID *string `json:"resourceId,omitempty"`
603
604	// The resource id of the resource that will be linked to the workspace. This should be used for linking resources which require write access
605	WriteAccessResourceID *string `json:"writeAccessResourceId,omitempty"`
606}
607
608// LinkedServicesBeginCreateOrUpdateOptions contains the optional parameters for the LinkedServices.BeginCreateOrUpdate method.
609type LinkedServicesBeginCreateOrUpdateOptions struct {
610	// placeholder for future optional parameters
611}
612
613// LinkedServicesBeginDeleteOptions contains the optional parameters for the LinkedServices.BeginDelete method.
614type LinkedServicesBeginDeleteOptions struct {
615	// placeholder for future optional parameters
616}
617
618// LinkedServicesGetOptions contains the optional parameters for the LinkedServices.Get method.
619type LinkedServicesGetOptions struct {
620	// placeholder for future optional parameters
621}
622
623// LinkedServicesListByWorkspaceOptions contains the optional parameters for the LinkedServices.ListByWorkspace method.
624type LinkedServicesListByWorkspaceOptions struct {
625	// placeholder for future optional parameters
626}
627
628// LinkedStorageAccountsCreateOrUpdateOptions contains the optional parameters for the LinkedStorageAccounts.CreateOrUpdate method.
629type LinkedStorageAccountsCreateOrUpdateOptions struct {
630	// placeholder for future optional parameters
631}
632
633// LinkedStorageAccountsDeleteOptions contains the optional parameters for the LinkedStorageAccounts.Delete method.
634type LinkedStorageAccountsDeleteOptions struct {
635	// placeholder for future optional parameters
636}
637
638// LinkedStorageAccountsGetOptions contains the optional parameters for the LinkedStorageAccounts.Get method.
639type LinkedStorageAccountsGetOptions struct {
640	// placeholder for future optional parameters
641}
642
643// LinkedStorageAccountsListByWorkspaceOptions contains the optional parameters for the LinkedStorageAccounts.ListByWorkspace method.
644type LinkedStorageAccountsListByWorkspaceOptions struct {
645	// placeholder for future optional parameters
646}
647
648// LinkedStorageAccountsListResult - The list linked storage accounts service operation response.
649type LinkedStorageAccountsListResult struct {
650	// A list of linked storage accounts instances.
651	Value []*LinkedStorageAccountsResource `json:"value,omitempty"`
652}
653
654// MarshalJSON implements the json.Marshaller interface for type LinkedStorageAccountsListResult.
655func (l LinkedStorageAccountsListResult) MarshalJSON() ([]byte, error) {
656	objectMap := make(map[string]interface{})
657	populate(objectMap, "value", l.Value)
658	return json.Marshal(objectMap)
659}
660
661// LinkedStorageAccountsProperties - Linked storage accounts properties.
662type LinkedStorageAccountsProperties struct {
663	// Linked storage accounts resources ids.
664	StorageAccountIDs []*string `json:"storageAccountIds,omitempty"`
665
666	// READ-ONLY; Linked storage accounts type.
667	DataSourceType *DataSourceType `json:"dataSourceType,omitempty" azure:"ro"`
668}
669
670// MarshalJSON implements the json.Marshaller interface for type LinkedStorageAccountsProperties.
671func (l LinkedStorageAccountsProperties) MarshalJSON() ([]byte, error) {
672	objectMap := make(map[string]interface{})
673	populate(objectMap, "dataSourceType", l.DataSourceType)
674	populate(objectMap, "storageAccountIds", l.StorageAccountIDs)
675	return json.Marshal(objectMap)
676}
677
678// LinkedStorageAccountsResource - Linked storage accounts top level resource container.
679type LinkedStorageAccountsResource struct {
680	ProxyResource
681	// REQUIRED; Linked storage accounts properties.
682	Properties *LinkedStorageAccountsProperties `json:"properties,omitempty"`
683}
684
685// MarshalJSON implements the json.Marshaller interface for type LinkedStorageAccountsResource.
686func (l LinkedStorageAccountsResource) MarshalJSON() ([]byte, error) {
687	objectMap := l.ProxyResource.marshalInternal()
688	populate(objectMap, "properties", l.Properties)
689	return json.Marshal(objectMap)
690}
691
692// ManagementGroup - A management group that is connected to a workspace
693type ManagementGroup struct {
694	// The properties of the management group.
695	Properties *ManagementGroupProperties `json:"properties,omitempty"`
696}
697
698// ManagementGroupProperties - Management group properties.
699type ManagementGroupProperties struct {
700	// The datetime that the management group was created.
701	Created *time.Time `json:"created,omitempty"`
702
703	// The last datetime that the management group received data.
704	DataReceived *time.Time `json:"dataReceived,omitempty"`
705
706	// The unique ID of the management group.
707	ID *string `json:"id,omitempty"`
708
709	// Gets or sets a value indicating whether the management group is a gateway.
710	IsGateway *bool `json:"isGateway,omitempty"`
711
712	// The name of the management group.
713	Name *string `json:"name,omitempty"`
714
715	// The SKU of System Center that is managing the management group.
716	SKU *string `json:"sku,omitempty"`
717
718	// The number of servers connected to the management group.
719	ServerCount *int32 `json:"serverCount,omitempty"`
720
721	// The version of System Center that is managing the management group.
722	Version *string `json:"version,omitempty"`
723}
724
725// MarshalJSON implements the json.Marshaller interface for type ManagementGroupProperties.
726func (m ManagementGroupProperties) MarshalJSON() ([]byte, error) {
727	objectMap := make(map[string]interface{})
728	populate(objectMap, "created", (*timeRFC3339)(m.Created))
729	populate(objectMap, "dataReceived", (*timeRFC3339)(m.DataReceived))
730	populate(objectMap, "id", m.ID)
731	populate(objectMap, "isGateway", m.IsGateway)
732	populate(objectMap, "name", m.Name)
733	populate(objectMap, "sku", m.SKU)
734	populate(objectMap, "serverCount", m.ServerCount)
735	populate(objectMap, "version", m.Version)
736	return json.Marshal(objectMap)
737}
738
739// UnmarshalJSON implements the json.Unmarshaller interface for type ManagementGroupProperties.
740func (m *ManagementGroupProperties) UnmarshalJSON(data []byte) error {
741	var rawMsg map[string]json.RawMessage
742	if err := json.Unmarshal(data, &rawMsg); err != nil {
743		return err
744	}
745	for key, val := range rawMsg {
746		var err error
747		switch key {
748		case "created":
749			var aux timeRFC3339
750			err = unpopulate(val, &aux)
751			m.Created = (*time.Time)(&aux)
752			delete(rawMsg, key)
753		case "dataReceived":
754			var aux timeRFC3339
755			err = unpopulate(val, &aux)
756			m.DataReceived = (*time.Time)(&aux)
757			delete(rawMsg, key)
758		case "id":
759			err = unpopulate(val, &m.ID)
760			delete(rawMsg, key)
761		case "isGateway":
762			err = unpopulate(val, &m.IsGateway)
763			delete(rawMsg, key)
764		case "name":
765			err = unpopulate(val, &m.Name)
766			delete(rawMsg, key)
767		case "sku":
768			err = unpopulate(val, &m.SKU)
769			delete(rawMsg, key)
770		case "serverCount":
771			err = unpopulate(val, &m.ServerCount)
772			delete(rawMsg, key)
773		case "version":
774			err = unpopulate(val, &m.Version)
775			delete(rawMsg, key)
776		}
777		if err != nil {
778			return err
779		}
780	}
781	return nil
782}
783
784// ManagementGroupsListOptions contains the optional parameters for the ManagementGroups.List method.
785type ManagementGroupsListOptions struct {
786	// placeholder for future optional parameters
787}
788
789// MetricName - The name of a metric.
790type MetricName struct {
791	// The localized name of the metric.
792	LocalizedValue *string `json:"localizedValue,omitempty"`
793
794	// The system name of the metric.
795	Value *string `json:"value,omitempty"`
796}
797
798// Operation - Supported operation of OperationalInsights resource provider.
799type Operation struct {
800	// Display metadata associated with the operation.
801	Display *OperationDisplay `json:"display,omitempty"`
802
803	// Operation name: {provider}/{resource}/{operation}
804	Name *string `json:"name,omitempty"`
805}
806
807// OperationDisplay - Display metadata associated with the operation.
808type OperationDisplay struct {
809	// Description of operation
810	Description *string `json:"description,omitempty"`
811
812	// Type of operation: get, read, delete, etc.
813	Operation *string `json:"operation,omitempty"`
814
815	// Service provider: Microsoft OperationsManagement.
816	Provider *string `json:"provider,omitempty"`
817
818	// Resource on which the operation is performed etc.
819	Resource *string `json:"resource,omitempty"`
820}
821
822// OperationListResult - Result of the request to list solution operations.
823type OperationListResult struct {
824	// List of solution operations supported by the OperationsManagement resource provider.
825	Value []*Operation `json:"value,omitempty"`
826
827	// READ-ONLY; URL to get the next set of operation list results if there are any.
828	NextLink *string `json:"nextLink,omitempty" azure:"ro"`
829}
830
831// MarshalJSON implements the json.Marshaller interface for type OperationListResult.
832func (o OperationListResult) MarshalJSON() ([]byte, error) {
833	objectMap := make(map[string]interface{})
834	populate(objectMap, "nextLink", o.NextLink)
835	populate(objectMap, "value", o.Value)
836	return json.Marshal(objectMap)
837}
838
839// OperationStatus - The status of operation.
840type OperationStatus struct {
841	// The end time of the operation.
842	EndTime *string `json:"endTime,omitempty"`
843
844	// The error detail of the operation if any.
845	Error *ErrorResponse `json:"error,omitempty"`
846
847	// The operation Id.
848	ID *string `json:"id,omitempty"`
849
850	// The operation name.
851	Name *string `json:"name,omitempty"`
852
853	// The start time of the operation.
854	StartTime *string `json:"startTime,omitempty"`
855
856	// The status of the operation.
857	Status *string `json:"status,omitempty"`
858}
859
860// OperationStatusesGetOptions contains the optional parameters for the OperationStatuses.Get method.
861type OperationStatusesGetOptions struct {
862	// placeholder for future optional parameters
863}
864
865// OperationsListOptions contains the optional parameters for the Operations.List method.
866type OperationsListOptions struct {
867	// placeholder for future optional parameters
868}
869
870// PrivateLinkScopedResource - The private link scope resource reference.
871type PrivateLinkScopedResource struct {
872	// The full resource Id of the private link scope resource.
873	ResourceID *string `json:"resourceId,omitempty"`
874
875	// The private link scope unique Identifier.
876	ScopeID *string `json:"scopeId,omitempty"`
877}
878
879// ProxyResource - The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location
880type ProxyResource struct {
881	Resource
882}
883
884func (p ProxyResource) marshalInternal() map[string]interface{} {
885	objectMap := p.Resource.marshalInternal()
886	return objectMap
887}
888
889// Resource - Common fields that are returned in the response for all Azure Resource Manager resources
890type Resource struct {
891	// READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
892	ID *string `json:"id,omitempty" azure:"ro"`
893
894	// READ-ONLY; The name of the resource
895	Name *string `json:"name,omitempty" azure:"ro"`
896
897	// READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
898	Type *string `json:"type,omitempty" azure:"ro"`
899}
900
901// MarshalJSON implements the json.Marshaller interface for type Resource.
902func (r Resource) MarshalJSON() ([]byte, error) {
903	objectMap := r.marshalInternal()
904	return json.Marshal(objectMap)
905}
906
907func (r Resource) marshalInternal() map[string]interface{} {
908	objectMap := make(map[string]interface{})
909	populate(objectMap, "id", r.ID)
910	populate(objectMap, "name", r.Name)
911	populate(objectMap, "type", r.Type)
912	return objectMap
913}
914
915// SavedSearch - Value object for saved search results.
916type SavedSearch struct {
917	ProxyResource
918	// REQUIRED; The properties of the saved search.
919	Properties *SavedSearchProperties `json:"properties,omitempty"`
920
921	// The ETag of the saved search. To override an existing saved search, use "*" or specify the current Etag
922	Etag *string `json:"etag,omitempty"`
923}
924
925// MarshalJSON implements the json.Marshaller interface for type SavedSearch.
926func (s SavedSearch) MarshalJSON() ([]byte, error) {
927	objectMap := s.ProxyResource.marshalInternal()
928	populate(objectMap, "etag", s.Etag)
929	populate(objectMap, "properties", s.Properties)
930	return json.Marshal(objectMap)
931}
932
933// SavedSearchProperties - Value object for saved search results.
934type SavedSearchProperties struct {
935	// REQUIRED; The category of the saved search. This helps the user to find a saved search faster.
936	Category *string `json:"category,omitempty"`
937
938	// REQUIRED; Saved search display name.
939	DisplayName *string `json:"displayName,omitempty"`
940
941	// REQUIRED; The query expression for the saved search.
942	Query *string `json:"query,omitempty"`
943
944	// The function alias if query serves as a function.
945	FunctionAlias *string `json:"functionAlias,omitempty"`
946
947	// The optional function parameters if query serves as a function. Value should be in the following format: 'param-name1:type1 = defaultvalue1, param-name2:type2
948	// = defaultvalue2'. For more examples and
949	// proper syntax please refer to https://docs.microsoft.com/en-us/azure/kusto/query/functions/user-defined-functions.
950	FunctionParameters *string `json:"functionParameters,omitempty"`
951
952	// The tags attached to the saved search.
953	Tags []*Tag `json:"tags,omitempty"`
954
955	// The version number of the query language. The current version is 2 and is the default.
956	Version *int64 `json:"version,omitempty"`
957}
958
959// MarshalJSON implements the json.Marshaller interface for type SavedSearchProperties.
960func (s SavedSearchProperties) MarshalJSON() ([]byte, error) {
961	objectMap := make(map[string]interface{})
962	populate(objectMap, "category", s.Category)
963	populate(objectMap, "displayName", s.DisplayName)
964	populate(objectMap, "functionAlias", s.FunctionAlias)
965	populate(objectMap, "functionParameters", s.FunctionParameters)
966	populate(objectMap, "query", s.Query)
967	populate(objectMap, "tags", s.Tags)
968	populate(objectMap, "version", s.Version)
969	return json.Marshal(objectMap)
970}
971
972// SavedSearchesCreateOrUpdateOptions contains the optional parameters for the SavedSearches.CreateOrUpdate method.
973type SavedSearchesCreateOrUpdateOptions struct {
974	// placeholder for future optional parameters
975}
976
977// SavedSearchesDeleteOptions contains the optional parameters for the SavedSearches.Delete method.
978type SavedSearchesDeleteOptions struct {
979	// placeholder for future optional parameters
980}
981
982// SavedSearchesGetOptions contains the optional parameters for the SavedSearches.Get method.
983type SavedSearchesGetOptions struct {
984	// placeholder for future optional parameters
985}
986
987// SavedSearchesListByWorkspaceOptions contains the optional parameters for the SavedSearches.ListByWorkspace method.
988type SavedSearchesListByWorkspaceOptions struct {
989	// placeholder for future optional parameters
990}
991
992// SavedSearchesListResult - The saved search list operation response.
993type SavedSearchesListResult struct {
994	// The array of result values.
995	Value []*SavedSearch `json:"value,omitempty"`
996}
997
998// MarshalJSON implements the json.Marshaller interface for type SavedSearchesListResult.
999func (s SavedSearchesListResult) MarshalJSON() ([]byte, error) {
1000	objectMap := make(map[string]interface{})
1001	populate(objectMap, "value", s.Value)
1002	return json.Marshal(objectMap)
1003}
1004
1005// SchemaGetOptions contains the optional parameters for the Schema.Get method.
1006type SchemaGetOptions struct {
1007	// placeholder for future optional parameters
1008}
1009
1010// SearchGetSchemaResponse - The get schema operation response.
1011type SearchGetSchemaResponse struct {
1012	// The metadata from search results.
1013	Metadata *SearchMetadata `json:"metadata,omitempty"`
1014
1015	// The array of result values.
1016	Value []*SearchSchemaValue `json:"value,omitempty"`
1017}
1018
1019// MarshalJSON implements the json.Marshaller interface for type SearchGetSchemaResponse.
1020func (s SearchGetSchemaResponse) MarshalJSON() ([]byte, error) {
1021	objectMap := make(map[string]interface{})
1022	populate(objectMap, "metadata", s.Metadata)
1023	populate(objectMap, "value", s.Value)
1024	return json.Marshal(objectMap)
1025}
1026
1027// SearchMetadata - Metadata for search results.
1028type SearchMetadata struct {
1029	// The aggregated grouping fields.
1030	AggregatedGroupingFields *string `json:"aggregatedGroupingFields,omitempty"`
1031
1032	// The aggregated value field.
1033	AggregatedValueField *string `json:"aggregatedValueField,omitempty"`
1034
1035	// The core summaries.
1036	CoreSummaries []*CoreSummary `json:"coreSummaries,omitempty"`
1037
1038	// The ETag of the search results.
1039	ETag *string `json:"eTag,omitempty"`
1040
1041	// The id of the search results request.
1042	ID *string `json:"id,omitempty"`
1043
1044	// The time of last update.
1045	LastUpdated *time.Time `json:"lastUpdated,omitempty"`
1046
1047	// The max of all aggregates returned in the result set.
1048	Max *int64 `json:"max,omitempty"`
1049
1050	// The request time.
1051	RequestTime *int64 `json:"requestTime,omitempty"`
1052
1053	// The search result type.
1054	ResultType *string `json:"resultType,omitempty"`
1055
1056	// The schema.
1057	Schema *SearchMetadataSchema `json:"schema,omitempty"`
1058
1059	// The request id of the search.
1060	SearchID *string `json:"requestId,omitempty"`
1061
1062	// How the results are sorted.
1063	Sort []*SearchSort `json:"sort,omitempty"`
1064
1065	// The start time for the search.
1066	StartTime *time.Time `json:"startTime,omitempty"`
1067
1068	// The status of the search results.
1069	Status *string `json:"status,omitempty"`
1070
1071	// The sum of all aggregates returned in the result set.
1072	Sum *int64 `json:"sum,omitempty"`
1073
1074	// The number of top search results.
1075	Top *int64 `json:"top,omitempty"`
1076
1077	// The total number of search results.
1078	Total *int64 `json:"total,omitempty"`
1079}
1080
1081// MarshalJSON implements the json.Marshaller interface for type SearchMetadata.
1082func (s SearchMetadata) MarshalJSON() ([]byte, error) {
1083	objectMap := make(map[string]interface{})
1084	populate(objectMap, "aggregatedGroupingFields", s.AggregatedGroupingFields)
1085	populate(objectMap, "aggregatedValueField", s.AggregatedValueField)
1086	populate(objectMap, "coreSummaries", s.CoreSummaries)
1087	populate(objectMap, "eTag", s.ETag)
1088	populate(objectMap, "id", s.ID)
1089	populate(objectMap, "lastUpdated", (*timeRFC3339)(s.LastUpdated))
1090	populate(objectMap, "max", s.Max)
1091	populate(objectMap, "requestTime", s.RequestTime)
1092	populate(objectMap, "resultType", s.ResultType)
1093	populate(objectMap, "schema", s.Schema)
1094	populate(objectMap, "requestId", s.SearchID)
1095	populate(objectMap, "sort", s.Sort)
1096	populate(objectMap, "startTime", (*timeRFC3339)(s.StartTime))
1097	populate(objectMap, "status", s.Status)
1098	populate(objectMap, "sum", s.Sum)
1099	populate(objectMap, "top", s.Top)
1100	populate(objectMap, "total", s.Total)
1101	return json.Marshal(objectMap)
1102}
1103
1104// UnmarshalJSON implements the json.Unmarshaller interface for type SearchMetadata.
1105func (s *SearchMetadata) UnmarshalJSON(data []byte) error {
1106	var rawMsg map[string]json.RawMessage
1107	if err := json.Unmarshal(data, &rawMsg); err != nil {
1108		return err
1109	}
1110	for key, val := range rawMsg {
1111		var err error
1112		switch key {
1113		case "aggregatedGroupingFields":
1114			err = unpopulate(val, &s.AggregatedGroupingFields)
1115			delete(rawMsg, key)
1116		case "aggregatedValueField":
1117			err = unpopulate(val, &s.AggregatedValueField)
1118			delete(rawMsg, key)
1119		case "coreSummaries":
1120			err = unpopulate(val, &s.CoreSummaries)
1121			delete(rawMsg, key)
1122		case "eTag":
1123			err = unpopulate(val, &s.ETag)
1124			delete(rawMsg, key)
1125		case "id":
1126			err = unpopulate(val, &s.ID)
1127			delete(rawMsg, key)
1128		case "lastUpdated":
1129			var aux timeRFC3339
1130			err = unpopulate(val, &aux)
1131			s.LastUpdated = (*time.Time)(&aux)
1132			delete(rawMsg, key)
1133		case "max":
1134			err = unpopulate(val, &s.Max)
1135			delete(rawMsg, key)
1136		case "requestTime":
1137			err = unpopulate(val, &s.RequestTime)
1138			delete(rawMsg, key)
1139		case "resultType":
1140			err = unpopulate(val, &s.ResultType)
1141			delete(rawMsg, key)
1142		case "schema":
1143			err = unpopulate(val, &s.Schema)
1144			delete(rawMsg, key)
1145		case "requestId":
1146			err = unpopulate(val, &s.SearchID)
1147			delete(rawMsg, key)
1148		case "sort":
1149			err = unpopulate(val, &s.Sort)
1150			delete(rawMsg, key)
1151		case "startTime":
1152			var aux timeRFC3339
1153			err = unpopulate(val, &aux)
1154			s.StartTime = (*time.Time)(&aux)
1155			delete(rawMsg, key)
1156		case "status":
1157			err = unpopulate(val, &s.Status)
1158			delete(rawMsg, key)
1159		case "sum":
1160			err = unpopulate(val, &s.Sum)
1161			delete(rawMsg, key)
1162		case "top":
1163			err = unpopulate(val, &s.Top)
1164			delete(rawMsg, key)
1165		case "total":
1166			err = unpopulate(val, &s.Total)
1167			delete(rawMsg, key)
1168		}
1169		if err != nil {
1170			return err
1171		}
1172	}
1173	return nil
1174}
1175
1176// SearchMetadataSchema - Schema metadata for search.
1177type SearchMetadataSchema struct {
1178	// The name of the metadata schema.
1179	Name *string `json:"name,omitempty"`
1180
1181	// The version of the metadata schema.
1182	Version *int32 `json:"version,omitempty"`
1183}
1184
1185// SearchSchemaValue - Value object for schema results.
1186type SearchSchemaValue struct {
1187	// REQUIRED; The boolean that indicates whether or not the field is a facet.
1188	Facet *bool `json:"facet,omitempty"`
1189
1190	// REQUIRED; The boolean that indicates the field is searchable as free text.
1191	Indexed *bool `json:"indexed,omitempty"`
1192
1193	// REQUIRED; The boolean that indicates whether or not the field is stored.
1194	Stored *bool `json:"stored,omitempty"`
1195
1196	// The display name of the schema.
1197	DisplayName *string `json:"displayName,omitempty"`
1198
1199	// The name of the schema.
1200	Name *string `json:"name,omitempty"`
1201
1202	// The array of workflows containing the field.
1203	OwnerType []*string `json:"ownerType,omitempty"`
1204
1205	// The type.
1206	Type *string `json:"type,omitempty"`
1207}
1208
1209// MarshalJSON implements the json.Marshaller interface for type SearchSchemaValue.
1210func (s SearchSchemaValue) MarshalJSON() ([]byte, error) {
1211	objectMap := make(map[string]interface{})
1212	populate(objectMap, "displayName", s.DisplayName)
1213	populate(objectMap, "facet", s.Facet)
1214	populate(objectMap, "indexed", s.Indexed)
1215	populate(objectMap, "name", s.Name)
1216	populate(objectMap, "ownerType", s.OwnerType)
1217	populate(objectMap, "stored", s.Stored)
1218	populate(objectMap, "type", s.Type)
1219	return json.Marshal(objectMap)
1220}
1221
1222// SearchSort - The sort parameters for search.
1223type SearchSort struct {
1224	// The name of the field the search query is sorted on.
1225	Name *string `json:"name,omitempty"`
1226
1227	// The sort order of the search.
1228	Order *SearchSortEnum `json:"order,omitempty"`
1229}
1230
1231// SharedKeys - The shared keys for a workspace.
1232type SharedKeys struct {
1233	// The primary shared key of a workspace.
1234	PrimarySharedKey *string `json:"primarySharedKey,omitempty"`
1235
1236	// The secondary shared key of a workspace.
1237	SecondarySharedKey *string `json:"secondarySharedKey,omitempty"`
1238}
1239
1240// SharedKeysGetSharedKeysOptions contains the optional parameters for the SharedKeys.GetSharedKeys method.
1241type SharedKeysGetSharedKeysOptions struct {
1242	// placeholder for future optional parameters
1243}
1244
1245// SharedKeysRegenerateOptions contains the optional parameters for the SharedKeys.Regenerate method.
1246type SharedKeysRegenerateOptions struct {
1247	// placeholder for future optional parameters
1248}
1249
1250// StorageAccount - Describes a storage account connection.
1251type StorageAccount struct {
1252	// REQUIRED; The Azure Resource Manager ID of the storage account resource.
1253	ID *string `json:"id,omitempty"`
1254
1255	// REQUIRED; The storage account key.
1256	Key *string `json:"key,omitempty"`
1257}
1258
1259// StorageInsight - The top level storage insight resource container.
1260type StorageInsight struct {
1261	ProxyResource
1262	// The ETag of the storage insight.
1263	ETag *string `json:"eTag,omitempty"`
1264
1265	// Storage insight properties.
1266	Properties *StorageInsightProperties `json:"properties,omitempty"`
1267
1268	// Resource tags.
1269	Tags map[string]*string `json:"tags,omitempty"`
1270}
1271
1272// MarshalJSON implements the json.Marshaller interface for type StorageInsight.
1273func (s StorageInsight) MarshalJSON() ([]byte, error) {
1274	objectMap := s.ProxyResource.marshalInternal()
1275	populate(objectMap, "eTag", s.ETag)
1276	populate(objectMap, "properties", s.Properties)
1277	populate(objectMap, "tags", s.Tags)
1278	return json.Marshal(objectMap)
1279}
1280
1281// StorageInsightConfigsCreateOrUpdateOptions contains the optional parameters for the StorageInsightConfigs.CreateOrUpdate method.
1282type StorageInsightConfigsCreateOrUpdateOptions struct {
1283	// placeholder for future optional parameters
1284}
1285
1286// StorageInsightConfigsDeleteOptions contains the optional parameters for the StorageInsightConfigs.Delete method.
1287type StorageInsightConfigsDeleteOptions struct {
1288	// placeholder for future optional parameters
1289}
1290
1291// StorageInsightConfigsGetOptions contains the optional parameters for the StorageInsightConfigs.Get method.
1292type StorageInsightConfigsGetOptions struct {
1293	// placeholder for future optional parameters
1294}
1295
1296// StorageInsightConfigsListByWorkspaceOptions contains the optional parameters for the StorageInsightConfigs.ListByWorkspace method.
1297type StorageInsightConfigsListByWorkspaceOptions struct {
1298	// placeholder for future optional parameters
1299}
1300
1301// StorageInsightListResult - The list storage insights operation response.
1302type StorageInsightListResult struct {
1303	// The link (url) to the next page of results.
1304	OdataNextLink *string `json:"@odata.nextLink,omitempty"`
1305
1306	// A list of storage insight items.
1307	Value []*StorageInsight `json:"value,omitempty"`
1308}
1309
1310// MarshalJSON implements the json.Marshaller interface for type StorageInsightListResult.
1311func (s StorageInsightListResult) MarshalJSON() ([]byte, error) {
1312	objectMap := make(map[string]interface{})
1313	populate(objectMap, "@odata.nextLink", s.OdataNextLink)
1314	populate(objectMap, "value", s.Value)
1315	return json.Marshal(objectMap)
1316}
1317
1318// StorageInsightProperties - Storage insight properties.
1319type StorageInsightProperties struct {
1320	// REQUIRED; The storage account connection details
1321	StorageAccount *StorageAccount `json:"storageAccount,omitempty"`
1322
1323	// The names of the blob containers that the workspace should read
1324	Containers []*string `json:"containers,omitempty"`
1325
1326	// The names of the Azure tables that the workspace should read
1327	Tables []*string `json:"tables,omitempty"`
1328
1329	// READ-ONLY; The status of the storage insight
1330	Status *StorageInsightStatus `json:"status,omitempty" azure:"ro"`
1331}
1332
1333// MarshalJSON implements the json.Marshaller interface for type StorageInsightProperties.
1334func (s StorageInsightProperties) MarshalJSON() ([]byte, error) {
1335	objectMap := make(map[string]interface{})
1336	populate(objectMap, "containers", s.Containers)
1337	populate(objectMap, "status", s.Status)
1338	populate(objectMap, "storageAccount", s.StorageAccount)
1339	populate(objectMap, "tables", s.Tables)
1340	return json.Marshal(objectMap)
1341}
1342
1343// StorageInsightStatus - The status of the storage insight.
1344type StorageInsightStatus struct {
1345	// REQUIRED; The state of the storage insight connection to the workspace
1346	State *StorageInsightState `json:"state,omitempty"`
1347
1348	// Description of the state of the storage insight.
1349	Description *string `json:"description,omitempty"`
1350}
1351
1352// Table - Workspace data table definition.
1353type Table struct {
1354	ProxyResource
1355	// Table properties.
1356	Properties *TableProperties `json:"properties,omitempty"`
1357}
1358
1359// MarshalJSON implements the json.Marshaller interface for type Table.
1360func (t Table) MarshalJSON() ([]byte, error) {
1361	objectMap := t.ProxyResource.marshalInternal()
1362	populate(objectMap, "properties", t.Properties)
1363	return json.Marshal(objectMap)
1364}
1365
1366// TableProperties - Table properties.
1367type TableProperties struct {
1368	// The data table data retention in days, between 30 and 730. Setting this property to null will default to the workspace retention.
1369	RetentionInDays *int32 `json:"retentionInDays,omitempty"`
1370}
1371
1372// TablesGetOptions contains the optional parameters for the Tables.Get method.
1373type TablesGetOptions struct {
1374	// placeholder for future optional parameters
1375}
1376
1377// TablesListByWorkspaceOptions contains the optional parameters for the Tables.ListByWorkspace method.
1378type TablesListByWorkspaceOptions struct {
1379	// placeholder for future optional parameters
1380}
1381
1382// TablesListResult - The list tables operation response.
1383type TablesListResult struct {
1384	// A list of data tables.
1385	Value []*Table `json:"value,omitempty"`
1386}
1387
1388// MarshalJSON implements the json.Marshaller interface for type TablesListResult.
1389func (t TablesListResult) MarshalJSON() ([]byte, error) {
1390	objectMap := make(map[string]interface{})
1391	populate(objectMap, "value", t.Value)
1392	return json.Marshal(objectMap)
1393}
1394
1395// TablesUpdateOptions contains the optional parameters for the Tables.Update method.
1396type TablesUpdateOptions struct {
1397	// placeholder for future optional parameters
1398}
1399
1400// Tag - A tag of a saved search.
1401type Tag struct {
1402	// REQUIRED; The tag name.
1403	Name *string `json:"name,omitempty"`
1404
1405	// REQUIRED; The tag value.
1406	Value *string `json:"value,omitempty"`
1407}
1408
1409// TrackedResource - The resource model definition for an Azure Resource Manager tracked top level resource which has 'tags' and a 'location'
1410type TrackedResource struct {
1411	Resource
1412	// REQUIRED; The geo-location where the resource lives
1413	Location *string `json:"location,omitempty"`
1414
1415	// Resource tags.
1416	Tags map[string]*string `json:"tags,omitempty"`
1417}
1418
1419// MarshalJSON implements the json.Marshaller interface for type TrackedResource.
1420func (t TrackedResource) MarshalJSON() ([]byte, error) {
1421	objectMap := t.marshalInternal()
1422	return json.Marshal(objectMap)
1423}
1424
1425func (t TrackedResource) marshalInternal() map[string]interface{} {
1426	objectMap := t.Resource.marshalInternal()
1427	populate(objectMap, "location", t.Location)
1428	populate(objectMap, "tags", t.Tags)
1429	return objectMap
1430}
1431
1432// UsageMetric - A metric describing the usage of a resource.
1433type UsageMetric struct {
1434	// The current value of the metric.
1435	CurrentValue *float64 `json:"currentValue,omitempty"`
1436
1437	// The quota limit for the metric.
1438	Limit *float64 `json:"limit,omitempty"`
1439
1440	// The name of the metric.
1441	Name *MetricName `json:"name,omitempty"`
1442
1443	// The time that the metric's value will reset.
1444	NextResetTime *time.Time `json:"nextResetTime,omitempty"`
1445
1446	// The quota period that determines the length of time between value resets.
1447	QuotaPeriod *string `json:"quotaPeriod,omitempty"`
1448
1449	// The units used for the metric.
1450	Unit *string `json:"unit,omitempty"`
1451}
1452
1453// MarshalJSON implements the json.Marshaller interface for type UsageMetric.
1454func (u UsageMetric) MarshalJSON() ([]byte, error) {
1455	objectMap := make(map[string]interface{})
1456	populate(objectMap, "currentValue", u.CurrentValue)
1457	populate(objectMap, "limit", u.Limit)
1458	populate(objectMap, "name", u.Name)
1459	populate(objectMap, "nextResetTime", (*timeRFC3339)(u.NextResetTime))
1460	populate(objectMap, "quotaPeriod", u.QuotaPeriod)
1461	populate(objectMap, "unit", u.Unit)
1462	return json.Marshal(objectMap)
1463}
1464
1465// UnmarshalJSON implements the json.Unmarshaller interface for type UsageMetric.
1466func (u *UsageMetric) UnmarshalJSON(data []byte) error {
1467	var rawMsg map[string]json.RawMessage
1468	if err := json.Unmarshal(data, &rawMsg); err != nil {
1469		return err
1470	}
1471	for key, val := range rawMsg {
1472		var err error
1473		switch key {
1474		case "currentValue":
1475			err = unpopulate(val, &u.CurrentValue)
1476			delete(rawMsg, key)
1477		case "limit":
1478			err = unpopulate(val, &u.Limit)
1479			delete(rawMsg, key)
1480		case "name":
1481			err = unpopulate(val, &u.Name)
1482			delete(rawMsg, key)
1483		case "nextResetTime":
1484			var aux timeRFC3339
1485			err = unpopulate(val, &aux)
1486			u.NextResetTime = (*time.Time)(&aux)
1487			delete(rawMsg, key)
1488		case "quotaPeriod":
1489			err = unpopulate(val, &u.QuotaPeriod)
1490			delete(rawMsg, key)
1491		case "unit":
1492			err = unpopulate(val, &u.Unit)
1493			delete(rawMsg, key)
1494		}
1495		if err != nil {
1496			return err
1497		}
1498	}
1499	return nil
1500}
1501
1502// UsagesListOptions contains the optional parameters for the Usages.List method.
1503type UsagesListOptions struct {
1504	// placeholder for future optional parameters
1505}
1506
1507// UserIdentityProperties - User assigned identity properties.
1508type UserIdentityProperties struct {
1509	// READ-ONLY; The client id of user assigned identity.
1510	ClientID *string `json:"clientId,omitempty" azure:"ro"`
1511
1512	// READ-ONLY; The principal id of user assigned identity.
1513	PrincipalID *string `json:"principalId,omitempty" azure:"ro"`
1514}
1515
1516// Workspace - The top level Workspace resource container.
1517type Workspace struct {
1518	TrackedResource
1519	// The ETag of the workspace.
1520	ETag *string `json:"eTag,omitempty"`
1521
1522	// Workspace properties.
1523	Properties *WorkspaceProperties `json:"properties,omitempty"`
1524}
1525
1526// MarshalJSON implements the json.Marshaller interface for type Workspace.
1527func (w Workspace) MarshalJSON() ([]byte, error) {
1528	objectMap := w.TrackedResource.marshalInternal()
1529	populate(objectMap, "eTag", w.ETag)
1530	populate(objectMap, "properties", w.Properties)
1531	return json.Marshal(objectMap)
1532}
1533
1534// WorkspaceCapping - The daily volume cap for ingestion.
1535type WorkspaceCapping struct {
1536	// The workspace daily quota for ingestion.
1537	DailyQuotaGb *float64 `json:"dailyQuotaGb,omitempty"`
1538
1539	// READ-ONLY; The status of data ingestion for this workspace.
1540	DataIngestionStatus *DataIngestionStatus `json:"dataIngestionStatus,omitempty" azure:"ro"`
1541
1542	// READ-ONLY; The time when the quota will be rest.
1543	QuotaNextResetTime *string `json:"quotaNextResetTime,omitempty" azure:"ro"`
1544}
1545
1546// WorkspaceFeatures - Workspace features.
1547type WorkspaceFeatures struct {
1548	// OPTIONAL; Contains additional key/value pairs not defined in the schema.
1549	AdditionalProperties map[string]interface{}
1550
1551	// Dedicated LA cluster resourceId that is linked to the workspaces.
1552	ClusterResourceID *string `json:"clusterResourceId,omitempty"`
1553
1554	// Disable Non-AAD based Auth.
1555	DisableLocalAuth *bool `json:"disableLocalAuth,omitempty"`
1556
1557	// Flag that indicate if data should be exported.
1558	EnableDataExport *bool `json:"enableDataExport,omitempty"`
1559
1560	// Flag that indicate which permission to use - resource or workspace or both.
1561	EnableLogAccessUsingOnlyResourcePermissions *bool `json:"enableLogAccessUsingOnlyResourcePermissions,omitempty"`
1562
1563	// Flag that describes if we want to remove the data after 30 days.
1564	ImmediatePurgeDataOn30Days *bool `json:"immediatePurgeDataOn30Days,omitempty"`
1565}
1566
1567// MarshalJSON implements the json.Marshaller interface for type WorkspaceFeatures.
1568func (w WorkspaceFeatures) MarshalJSON() ([]byte, error) {
1569	objectMap := make(map[string]interface{})
1570	populate(objectMap, "clusterResourceId", w.ClusterResourceID)
1571	populate(objectMap, "disableLocalAuth", w.DisableLocalAuth)
1572	populate(objectMap, "enableDataExport", w.EnableDataExport)
1573	populate(objectMap, "enableLogAccessUsingOnlyResourcePermissions", w.EnableLogAccessUsingOnlyResourcePermissions)
1574	populate(objectMap, "immediatePurgeDataOn30Days", w.ImmediatePurgeDataOn30Days)
1575	if w.AdditionalProperties != nil {
1576		for key, val := range w.AdditionalProperties {
1577			objectMap[key] = val
1578		}
1579	}
1580	return json.Marshal(objectMap)
1581}
1582
1583// UnmarshalJSON implements the json.Unmarshaller interface for type WorkspaceFeatures.
1584func (w *WorkspaceFeatures) UnmarshalJSON(data []byte) error {
1585	var rawMsg map[string]json.RawMessage
1586	if err := json.Unmarshal(data, &rawMsg); err != nil {
1587		return err
1588	}
1589	for key, val := range rawMsg {
1590		var err error
1591		switch key {
1592		case "clusterResourceId":
1593			err = unpopulate(val, &w.ClusterResourceID)
1594			delete(rawMsg, key)
1595		case "disableLocalAuth":
1596			err = unpopulate(val, &w.DisableLocalAuth)
1597			delete(rawMsg, key)
1598		case "enableDataExport":
1599			err = unpopulate(val, &w.EnableDataExport)
1600			delete(rawMsg, key)
1601		case "enableLogAccessUsingOnlyResourcePermissions":
1602			err = unpopulate(val, &w.EnableLogAccessUsingOnlyResourcePermissions)
1603			delete(rawMsg, key)
1604		case "immediatePurgeDataOn30Days":
1605			err = unpopulate(val, &w.ImmediatePurgeDataOn30Days)
1606			delete(rawMsg, key)
1607		default:
1608			if w.AdditionalProperties == nil {
1609				w.AdditionalProperties = map[string]interface{}{}
1610			}
1611			if val != nil {
1612				var aux interface{}
1613				err = json.Unmarshal(val, &aux)
1614				w.AdditionalProperties[key] = aux
1615			}
1616			delete(rawMsg, key)
1617		}
1618		if err != nil {
1619			return err
1620		}
1621	}
1622	return nil
1623}
1624
1625// WorkspaceListManagementGroupsResult - The list workspace management groups operation response.
1626type WorkspaceListManagementGroupsResult struct {
1627	// Gets or sets a list of management groups attached to the workspace.
1628	Value []*ManagementGroup `json:"value,omitempty"`
1629}
1630
1631// MarshalJSON implements the json.Marshaller interface for type WorkspaceListManagementGroupsResult.
1632func (w WorkspaceListManagementGroupsResult) MarshalJSON() ([]byte, error) {
1633	objectMap := make(map[string]interface{})
1634	populate(objectMap, "value", w.Value)
1635	return json.Marshal(objectMap)
1636}
1637
1638// WorkspaceListResult - The list workspaces operation response.
1639type WorkspaceListResult struct {
1640	// A list of workspaces.
1641	Value []*Workspace `json:"value,omitempty"`
1642}
1643
1644// MarshalJSON implements the json.Marshaller interface for type WorkspaceListResult.
1645func (w WorkspaceListResult) MarshalJSON() ([]byte, error) {
1646	objectMap := make(map[string]interface{})
1647	populate(objectMap, "value", w.Value)
1648	return json.Marshal(objectMap)
1649}
1650
1651// WorkspaceListUsagesResult - The list workspace usages operation response.
1652type WorkspaceListUsagesResult struct {
1653	// Gets or sets a list of usage metrics for a workspace.
1654	Value []*UsageMetric `json:"value,omitempty"`
1655}
1656
1657// MarshalJSON implements the json.Marshaller interface for type WorkspaceListUsagesResult.
1658func (w WorkspaceListUsagesResult) MarshalJSON() ([]byte, error) {
1659	objectMap := make(map[string]interface{})
1660	populate(objectMap, "value", w.Value)
1661	return json.Marshal(objectMap)
1662}
1663
1664// WorkspacePatch - The top level Workspace resource container.
1665type WorkspacePatch struct {
1666	AzureEntityResource
1667	// Workspace properties.
1668	Properties *WorkspaceProperties `json:"properties,omitempty"`
1669
1670	// Resource tags. Optional.
1671	Tags map[string]*string `json:"tags,omitempty"`
1672}
1673
1674// MarshalJSON implements the json.Marshaller interface for type WorkspacePatch.
1675func (w WorkspacePatch) MarshalJSON() ([]byte, error) {
1676	objectMap := w.AzureEntityResource.marshalInternal()
1677	populate(objectMap, "properties", w.Properties)
1678	populate(objectMap, "tags", w.Tags)
1679	return json.Marshal(objectMap)
1680}
1681
1682// WorkspaceProperties - Workspace properties.
1683type WorkspaceProperties struct {
1684	// Workspace features.
1685	Features *WorkspaceFeatures `json:"features,omitempty"`
1686
1687	// Indicates whether customer managed storage is mandatory for query management.
1688	ForceCmkForQuery *bool `json:"forceCmkForQuery,omitempty"`
1689
1690	// The provisioning state of the workspace.
1691	ProvisioningState *WorkspaceEntityStatus `json:"provisioningState,omitempty"`
1692
1693	// The network access type for accessing Log Analytics ingestion.
1694	PublicNetworkAccessForIngestion *PublicNetworkAccessType `json:"publicNetworkAccessForIngestion,omitempty"`
1695
1696	// The network access type for accessing Log Analytics query.
1697	PublicNetworkAccessForQuery *PublicNetworkAccessType `json:"publicNetworkAccessForQuery,omitempty"`
1698
1699	// The workspace data retention in days. Allowed values are per pricing plan. See pricing tiers documentation for details.
1700	RetentionInDays *int32 `json:"retentionInDays,omitempty"`
1701
1702	// The SKU of the workspace.
1703	SKU *WorkspaceSKU `json:"sku,omitempty"`
1704
1705	// The daily volume cap for ingestion.
1706	WorkspaceCapping *WorkspaceCapping `json:"workspaceCapping,omitempty"`
1707
1708	// READ-ONLY; Workspace creation date.
1709	CreatedDate *string `json:"createdDate,omitempty" azure:"ro"`
1710
1711	// READ-ONLY; This is a read-only property. Represents the ID associated with the workspace.
1712	CustomerID *string `json:"customerId,omitempty" azure:"ro"`
1713
1714	// READ-ONLY; Workspace modification date.
1715	ModifiedDate *string `json:"modifiedDate,omitempty" azure:"ro"`
1716
1717	// READ-ONLY; List of linked private link scope resources.
1718	PrivateLinkScopedResources []*PrivateLinkScopedResource `json:"privateLinkScopedResources,omitempty" azure:"ro"`
1719}
1720
1721// MarshalJSON implements the json.Marshaller interface for type WorkspaceProperties.
1722func (w WorkspaceProperties) MarshalJSON() ([]byte, error) {
1723	objectMap := make(map[string]interface{})
1724	populate(objectMap, "createdDate", w.CreatedDate)
1725	populate(objectMap, "customerId", w.CustomerID)
1726	populate(objectMap, "features", w.Features)
1727	populate(objectMap, "forceCmkForQuery", w.ForceCmkForQuery)
1728	populate(objectMap, "modifiedDate", w.ModifiedDate)
1729	populate(objectMap, "privateLinkScopedResources", w.PrivateLinkScopedResources)
1730	populate(objectMap, "provisioningState", w.ProvisioningState)
1731	populate(objectMap, "publicNetworkAccessForIngestion", w.PublicNetworkAccessForIngestion)
1732	populate(objectMap, "publicNetworkAccessForQuery", w.PublicNetworkAccessForQuery)
1733	populate(objectMap, "retentionInDays", w.RetentionInDays)
1734	populate(objectMap, "sku", w.SKU)
1735	populate(objectMap, "workspaceCapping", w.WorkspaceCapping)
1736	return json.Marshal(objectMap)
1737}
1738
1739// WorkspacePurgeBody - Describes the body of a purge request for an App Insights Workspace
1740type WorkspacePurgeBody struct {
1741	// REQUIRED; The set of columns and filters (queries) to run over them to purge the resulting data.
1742	Filters []*WorkspacePurgeBodyFilters `json:"filters,omitempty"`
1743
1744	// REQUIRED; Table from which to purge data.
1745	Table *string `json:"table,omitempty"`
1746}
1747
1748// MarshalJSON implements the json.Marshaller interface for type WorkspacePurgeBody.
1749func (w WorkspacePurgeBody) MarshalJSON() ([]byte, error) {
1750	objectMap := make(map[string]interface{})
1751	populate(objectMap, "filters", w.Filters)
1752	populate(objectMap, "table", w.Table)
1753	return json.Marshal(objectMap)
1754}
1755
1756// WorkspacePurgeBodyFilters - User-defined filters to return data which will be purged from the table.
1757type WorkspacePurgeBodyFilters struct {
1758	// The column of the table over which the given query should run
1759	Column *string `json:"column,omitempty"`
1760
1761	// When filtering over custom dimensions, this key will be used as the name of the custom dimension.
1762	Key *string `json:"key,omitempty"`
1763
1764	// A query operator to evaluate over the provided column and value(s). Supported operators are ==, =~, in, in~, >, >=, <, <=, between, and have the same
1765	// behavior as they would in a KQL query.
1766	Operator *string `json:"operator,omitempty"`
1767
1768	// the value for the operator to function over. This can be a number (e.g., > 100), a string (timestamp >= '2017-09-01') or array of values.
1769	Value interface{} `json:"value,omitempty"`
1770}
1771
1772// WorkspacePurgeGetPurgeStatusOptions contains the optional parameters for the WorkspacePurge.GetPurgeStatus method.
1773type WorkspacePurgeGetPurgeStatusOptions struct {
1774	// placeholder for future optional parameters
1775}
1776
1777// WorkspacePurgePurgeOptions contains the optional parameters for the WorkspacePurge.Purge method.
1778type WorkspacePurgePurgeOptions struct {
1779	// placeholder for future optional parameters
1780}
1781
1782// WorkspacePurgeResponse - Response containing operationId for a specific purge action.
1783type WorkspacePurgeResponse struct {
1784	// REQUIRED; Id to use when querying for status for a particular purge operation.
1785	OperationID *string `json:"operationId,omitempty"`
1786}
1787
1788// WorkspacePurgeStatusResponse - Response containing status for a specific purge operation.
1789type WorkspacePurgeStatusResponse struct {
1790	// REQUIRED; Status of the operation represented by the requested Id.
1791	Status *PurgeState `json:"status,omitempty"`
1792}
1793
1794// WorkspaceSKU - The SKU (tier) of a workspace.
1795type WorkspaceSKU struct {
1796	// REQUIRED; The name of the SKU.
1797	Name *WorkspaceSKUNameEnum `json:"name,omitempty"`
1798
1799	// The capacity reservation level for this workspace, when CapacityReservation sku is selected.
1800	CapacityReservationLevel *int32 `json:"capacityReservationLevel,omitempty"`
1801
1802	// READ-ONLY; The last time when the sku was updated.
1803	LastSKUUpdate *string `json:"lastSkuUpdate,omitempty" azure:"ro"`
1804}
1805
1806// WorkspacesBeginCreateOrUpdateOptions contains the optional parameters for the Workspaces.BeginCreateOrUpdate method.
1807type WorkspacesBeginCreateOrUpdateOptions struct {
1808	// placeholder for future optional parameters
1809}
1810
1811// WorkspacesBeginDeleteOptions contains the optional parameters for the Workspaces.BeginDelete method.
1812type WorkspacesBeginDeleteOptions struct {
1813	// Deletes the workspace without the recovery option. A workspace that was deleted with this flag cannot be recovered.
1814	Force *bool
1815}
1816
1817// WorkspacesGetOptions contains the optional parameters for the Workspaces.Get method.
1818type WorkspacesGetOptions struct {
1819	// placeholder for future optional parameters
1820}
1821
1822// WorkspacesListByResourceGroupOptions contains the optional parameters for the Workspaces.ListByResourceGroup method.
1823type WorkspacesListByResourceGroupOptions struct {
1824	// placeholder for future optional parameters
1825}
1826
1827// WorkspacesListOptions contains the optional parameters for the Workspaces.List method.
1828type WorkspacesListOptions struct {
1829	// placeholder for future optional parameters
1830}
1831
1832// WorkspacesUpdateOptions contains the optional parameters for the Workspaces.Update method.
1833type WorkspacesUpdateOptions struct {
1834	// placeholder for future optional parameters
1835}
1836
1837func populate(m map[string]interface{}, k string, v interface{}) {
1838	if v == nil {
1839		return
1840	} else if azcore.IsNullValue(v) {
1841		m[k] = nil
1842	} else if !reflect.ValueOf(v).IsNil() {
1843		m[k] = v
1844	}
1845}
1846
1847func unpopulate(data json.RawMessage, v interface{}) error {
1848	if data == nil {
1849		return nil
1850	}
1851	return json.Unmarshal(data, v)
1852}
1853