1package operationalinsights
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//
6// Code generated by Microsoft (R) AutoRest Code Generator.
7// Changes may cause incorrect behavior and will be lost if the code is regenerated.
8
9import (
10	"context"
11	"encoding/json"
12	"github.com/Azure/go-autorest/autorest"
13	"github.com/Azure/go-autorest/autorest/date"
14	"github.com/Azure/go-autorest/autorest/to"
15	"github.com/Azure/go-autorest/tracing"
16	"net/http"
17)
18
19// The package's fully qualified name.
20const fqdn = "github.com/Azure/azure-sdk-for-go/services/operationalinsights/mgmt/2015-03-20/operationalinsights"
21
22// AvailableServiceTier service Tier details.
23type AvailableServiceTier struct {
24	// ServiceTier - READ-ONLY; The name of the Service Tier. Possible values include: 'Free', 'Standard', 'Premium', 'PerNode', 'PerGB2018', 'Standalone', 'CapacityReservation'
25	ServiceTier SkuNameEnum `json:"ServiceTier,omitempty"`
26	// Enabled - READ-ONLY; True if the Service Tier is enabled for the workspace.
27	Enabled *bool `json:"Enabled,omitempty"`
28	// MinimumRetention - READ-ONLY; The minimum retention for the Service Tier, in days.
29	MinimumRetention *int64 `json:"MinimumRetention,omitempty"`
30	// MaximumRetention - READ-ONLY; The maximum retention for the Service Tier, in days.
31	MaximumRetention *int64 `json:"MaximumRetention,omitempty"`
32	// DefaultRetention - READ-ONLY; The default retention for the Service Tier, in days.
33	DefaultRetention *int64 `json:"DefaultRetention,omitempty"`
34	// CapacityReservationLevel - READ-ONLY; The capacity reservation level in GB per day. Returned for the Capacity Reservation Service Tier.
35	CapacityReservationLevel *int64 `json:"CapacityReservationLevel,omitempty"`
36	// LastSkuUpdate - READ-ONLY; Time when the sku was last updated for the workspace. Returned for the Capacity Reservation Service Tier.
37	LastSkuUpdate *date.Time `json:"LastSkuUpdate,omitempty"`
38}
39
40// MarshalJSON is the custom marshaler for AvailableServiceTier.
41func (astVar AvailableServiceTier) MarshalJSON() ([]byte, error) {
42	objectMap := make(map[string]interface{})
43	return json.Marshal(objectMap)
44}
45
46// CoreSummary the core summary of a search.
47type CoreSummary struct {
48	// Status - The status of a core summary.
49	Status *string `json:"status,omitempty"`
50	// NumberOfDocuments - The number of documents of a core summary.
51	NumberOfDocuments *int64 `json:"numberOfDocuments,omitempty"`
52}
53
54// LinkTarget metadata for a workspace that isn't linked to an Azure subscription.
55type LinkTarget struct {
56	// CustomerID - The GUID that uniquely identifies the workspace.
57	CustomerID *string `json:"customerId,omitempty"`
58	// DisplayName - The display name of the workspace.
59	DisplayName *string `json:"accountName,omitempty"`
60	// WorkspaceName - The DNS valid workspace name.
61	WorkspaceName *string `json:"workspaceName,omitempty"`
62	// Location - The location of the workspace.
63	Location *string `json:"location,omitempty"`
64}
65
66// ListAvailableServiceTier ...
67type ListAvailableServiceTier struct {
68	autorest.Response `json:"-"`
69	Value             *[]AvailableServiceTier `json:"value,omitempty"`
70}
71
72// ListLinkTarget ...
73type ListLinkTarget struct {
74	autorest.Response `json:"-"`
75	Value             *[]LinkTarget `json:"value,omitempty"`
76}
77
78// Operation supported operation of OperationalInsights resource provider.
79type Operation struct {
80	// Name - Operation name: {provider}/{resource}/{operation}
81	Name *string `json:"name,omitempty"`
82	// Display - Display metadata associated with the operation.
83	Display *OperationDisplay `json:"display,omitempty"`
84}
85
86// OperationDisplay display metadata associated with the operation.
87type OperationDisplay struct {
88	// Provider - Service provider: OperationalInsights.
89	Provider *string `json:"provider,omitempty"`
90	// Resource - Resource on which the operation is performed etc.
91	Resource *string `json:"resource,omitempty"`
92	// Operation - Type of operation: get, read, delete, etc.
93	Operation *string `json:"operation,omitempty"`
94}
95
96// OperationListResult result of the request to list OperationalInsights operations.
97type OperationListResult struct {
98	autorest.Response `json:"-"`
99	// Value - List of operations supported by the OperationalInsights resource provider.
100	Value *[]Operation `json:"value,omitempty"`
101}
102
103// ProxyResource common properties of proxy resource.
104type ProxyResource struct {
105	// ID - READ-ONLY; Resource ID.
106	ID *string `json:"id,omitempty"`
107	// Name - READ-ONLY; Resource name.
108	Name *string `json:"name,omitempty"`
109	// Type - READ-ONLY; Resource type.
110	Type *string `json:"type,omitempty"`
111	// Tags - Resource tags
112	Tags map[string]*string `json:"tags"`
113}
114
115// MarshalJSON is the custom marshaler for ProxyResource.
116func (pr ProxyResource) MarshalJSON() ([]byte, error) {
117	objectMap := make(map[string]interface{})
118	if pr.Tags != nil {
119		objectMap["tags"] = pr.Tags
120	}
121	return json.Marshal(objectMap)
122}
123
124// Resource the resource definition.
125type Resource struct {
126	// ID - READ-ONLY; Resource Id
127	ID *string `json:"id,omitempty"`
128	// Name - READ-ONLY; Resource name
129	Name *string `json:"name,omitempty"`
130	// Type - READ-ONLY; Resource type
131	Type *string `json:"type,omitempty"`
132	// Location - Resource location
133	Location *string `json:"location,omitempty"`
134	// Tags - Resource tags
135	Tags map[string]*string `json:"tags"`
136}
137
138// MarshalJSON is the custom marshaler for Resource.
139func (r Resource) MarshalJSON() ([]byte, error) {
140	objectMap := make(map[string]interface{})
141	if r.Location != nil {
142		objectMap["location"] = r.Location
143	}
144	if r.Tags != nil {
145		objectMap["tags"] = r.Tags
146	}
147	return json.Marshal(objectMap)
148}
149
150// SavedSearch value object for saved search results.
151type SavedSearch struct {
152	autorest.Response `json:"-"`
153	// ID - READ-ONLY; The id of the saved search.
154	ID *string `json:"id,omitempty"`
155	// Name - READ-ONLY; The name of the saved search.
156	Name *string `json:"name,omitempty"`
157	// Type - READ-ONLY; The type of the saved search.
158	Type *string `json:"type,omitempty"`
159	// ETag - The ETag of the saved search.
160	ETag *string `json:"eTag,omitempty"`
161	// SavedSearchProperties - The properties of the saved search.
162	*SavedSearchProperties `json:"properties,omitempty"`
163}
164
165// MarshalJSON is the custom marshaler for SavedSearch.
166func (ss SavedSearch) MarshalJSON() ([]byte, error) {
167	objectMap := make(map[string]interface{})
168	if ss.ETag != nil {
169		objectMap["eTag"] = ss.ETag
170	}
171	if ss.SavedSearchProperties != nil {
172		objectMap["properties"] = ss.SavedSearchProperties
173	}
174	return json.Marshal(objectMap)
175}
176
177// UnmarshalJSON is the custom unmarshaler for SavedSearch struct.
178func (ss *SavedSearch) UnmarshalJSON(body []byte) error {
179	var m map[string]*json.RawMessage
180	err := json.Unmarshal(body, &m)
181	if err != nil {
182		return err
183	}
184	for k, v := range m {
185		switch k {
186		case "id":
187			if v != nil {
188				var ID string
189				err = json.Unmarshal(*v, &ID)
190				if err != nil {
191					return err
192				}
193				ss.ID = &ID
194			}
195		case "name":
196			if v != nil {
197				var name string
198				err = json.Unmarshal(*v, &name)
199				if err != nil {
200					return err
201				}
202				ss.Name = &name
203			}
204		case "type":
205			if v != nil {
206				var typeVar string
207				err = json.Unmarshal(*v, &typeVar)
208				if err != nil {
209					return err
210				}
211				ss.Type = &typeVar
212			}
213		case "eTag":
214			if v != nil {
215				var eTag string
216				err = json.Unmarshal(*v, &eTag)
217				if err != nil {
218					return err
219				}
220				ss.ETag = &eTag
221			}
222		case "properties":
223			if v != nil {
224				var savedSearchProperties SavedSearchProperties
225				err = json.Unmarshal(*v, &savedSearchProperties)
226				if err != nil {
227					return err
228				}
229				ss.SavedSearchProperties = &savedSearchProperties
230			}
231		}
232	}
233
234	return nil
235}
236
237// SavedSearchesListResult the saved search list operation response.
238type SavedSearchesListResult struct {
239	autorest.Response `json:"-"`
240	// Metadata - Unused legacy property, kept here for backward compatibility.
241	Metadata *SearchMetadata `json:"__metadata,omitempty"`
242	// Value - The array of result values.
243	Value *[]SavedSearch `json:"value,omitempty"`
244}
245
246// SavedSearchProperties value object for saved search results.
247type SavedSearchProperties struct {
248	// Category - The category of the saved search. This helps the user to find a saved search faster.
249	Category *string `json:"category,omitempty"`
250	// DisplayName - Saved search display name.
251	DisplayName *string `json:"displayName,omitempty"`
252	// Query - The query expression for the saved search. Please see https://docs.microsoft.com/en-us/azure/log-analytics/log-analytics-search-reference for reference.
253	Query *string `json:"query,omitempty"`
254	// Version - The version number of the query language. The current version is 2 and is the default.
255	Version *int64 `json:"version,omitempty"`
256	// Tags - The tags attached to the saved search.
257	Tags *[]Tag `json:"tags,omitempty"`
258}
259
260// SearchGetSchemaResponse the get schema operation response.
261type SearchGetSchemaResponse struct {
262	autorest.Response `json:"-"`
263	// Metadata - The metadata from search results.
264	Metadata *SearchMetadata `json:"metadata,omitempty"`
265	// Value - The array of result values.
266	Value *[]SearchSchemaValue `json:"value,omitempty"`
267}
268
269// SearchMetadata metadata for search results.
270type SearchMetadata struct {
271	// SearchID - The request id of the search.
272	SearchID *string `json:"requestId,omitempty"`
273	// ResultType - The search result type.
274	ResultType *string `json:"resultType,omitempty"`
275	// Total - The total number of search results.
276	Total *int64 `json:"total,omitempty"`
277	// Top - The number of top search results.
278	Top *int64 `json:"top,omitempty"`
279	// ID - The id of the search results request.
280	ID *string `json:"id,omitempty"`
281	// CoreSummaries - The core summaries.
282	CoreSummaries *[]CoreSummary `json:"coreSummaries,omitempty"`
283	// Status - The status of the search results.
284	Status *string `json:"status,omitempty"`
285	// StartTime - The start time for the search.
286	StartTime *date.Time `json:"startTime,omitempty"`
287	// LastUpdated - The time of last update.
288	LastUpdated *date.Time `json:"lastUpdated,omitempty"`
289	// ETag - The ETag of the search results.
290	ETag *string `json:"eTag,omitempty"`
291	// Sort - How the results are sorted.
292	Sort *[]SearchSort `json:"sort,omitempty"`
293	// RequestTime - The request time.
294	RequestTime *int64 `json:"requestTime,omitempty"`
295	// AggregatedValueField - The aggregated value field.
296	AggregatedValueField *string `json:"aggregatedValueField,omitempty"`
297	// AggregatedGroupingFields - The aggregated grouping fields.
298	AggregatedGroupingFields *string `json:"aggregatedGroupingFields,omitempty"`
299	// Sum - The sum of all aggregates returned in the result set.
300	Sum *int64 `json:"sum,omitempty"`
301	// Max - The max of all aggregates returned in the result set.
302	Max *int64 `json:"max,omitempty"`
303	// Schema - The schema.
304	Schema *SearchMetadataSchema `json:"schema,omitempty"`
305}
306
307// SearchMetadataSchema schema metadata for search.
308type SearchMetadataSchema struct {
309	// Name - The name of the metadata schema.
310	Name *string `json:"name,omitempty"`
311	// Version - The version of the metadata schema.
312	Version *int32 `json:"version,omitempty"`
313}
314
315// SearchSchemaValue value object for schema results.
316type SearchSchemaValue struct {
317	// Name - The name of the schema.
318	Name *string `json:"name,omitempty"`
319	// DisplayName - The display name of the schema.
320	DisplayName *string `json:"displayName,omitempty"`
321	// Type - The type.
322	Type *string `json:"type,omitempty"`
323	// Indexed - The boolean that indicates the field is searchable as free text.
324	Indexed *bool `json:"indexed,omitempty"`
325	// Stored - The boolean that indicates whether or not the field is stored.
326	Stored *bool `json:"stored,omitempty"`
327	// Facet - The boolean that indicates whether or not the field is a facet.
328	Facet *bool `json:"facet,omitempty"`
329	// OwnerType - The array of workflows containing the field.
330	OwnerType *[]string `json:"ownerType,omitempty"`
331}
332
333// SearchSort the sort parameters for search.
334type SearchSort struct {
335	// Name - The name of the field the search query is sorted on.
336	Name *string `json:"name,omitempty"`
337	// Order - The sort order of the search. Possible values include: 'Asc', 'Desc'
338	Order SearchSortEnum `json:"order,omitempty"`
339}
340
341// SharedKeys the shared keys for a workspace.
342type SharedKeys struct {
343	autorest.Response `json:"-"`
344	// PrimarySharedKey - The primary shared key of a workspace.
345	PrimarySharedKey *string `json:"primarySharedKey,omitempty"`
346	// SecondarySharedKey - The secondary shared key of a workspace.
347	SecondarySharedKey *string `json:"secondarySharedKey,omitempty"`
348}
349
350// StorageAccount describes a storage account connection.
351type StorageAccount struct {
352	// ID - The Azure Resource Manager ID of the storage account resource.
353	ID *string `json:"id,omitempty"`
354	// Key - The storage account key.
355	Key *string `json:"key,omitempty"`
356}
357
358// StorageInsight the top level storage insight resource container.
359type StorageInsight struct {
360	autorest.Response `json:"-"`
361	// StorageInsightProperties - Storage insight properties.
362	*StorageInsightProperties `json:"properties,omitempty"`
363	// ETag - The ETag of the storage insight.
364	ETag *string `json:"eTag,omitempty"`
365	// ID - READ-ONLY; Resource ID.
366	ID *string `json:"id,omitempty"`
367	// Name - READ-ONLY; Resource name.
368	Name *string `json:"name,omitempty"`
369	// Type - READ-ONLY; Resource type.
370	Type *string `json:"type,omitempty"`
371	// Tags - Resource tags
372	Tags map[string]*string `json:"tags"`
373}
374
375// MarshalJSON is the custom marshaler for StorageInsight.
376func (si StorageInsight) MarshalJSON() ([]byte, error) {
377	objectMap := make(map[string]interface{})
378	if si.StorageInsightProperties != nil {
379		objectMap["properties"] = si.StorageInsightProperties
380	}
381	if si.ETag != nil {
382		objectMap["eTag"] = si.ETag
383	}
384	if si.Tags != nil {
385		objectMap["tags"] = si.Tags
386	}
387	return json.Marshal(objectMap)
388}
389
390// UnmarshalJSON is the custom unmarshaler for StorageInsight struct.
391func (si *StorageInsight) UnmarshalJSON(body []byte) error {
392	var m map[string]*json.RawMessage
393	err := json.Unmarshal(body, &m)
394	if err != nil {
395		return err
396	}
397	for k, v := range m {
398		switch k {
399		case "properties":
400			if v != nil {
401				var storageInsightProperties StorageInsightProperties
402				err = json.Unmarshal(*v, &storageInsightProperties)
403				if err != nil {
404					return err
405				}
406				si.StorageInsightProperties = &storageInsightProperties
407			}
408		case "eTag":
409			if v != nil {
410				var eTag string
411				err = json.Unmarshal(*v, &eTag)
412				if err != nil {
413					return err
414				}
415				si.ETag = &eTag
416			}
417		case "id":
418			if v != nil {
419				var ID string
420				err = json.Unmarshal(*v, &ID)
421				if err != nil {
422					return err
423				}
424				si.ID = &ID
425			}
426		case "name":
427			if v != nil {
428				var name string
429				err = json.Unmarshal(*v, &name)
430				if err != nil {
431					return err
432				}
433				si.Name = &name
434			}
435		case "type":
436			if v != nil {
437				var typeVar string
438				err = json.Unmarshal(*v, &typeVar)
439				if err != nil {
440					return err
441				}
442				si.Type = &typeVar
443			}
444		case "tags":
445			if v != nil {
446				var tags map[string]*string
447				err = json.Unmarshal(*v, &tags)
448				if err != nil {
449					return err
450				}
451				si.Tags = tags
452			}
453		}
454	}
455
456	return nil
457}
458
459// StorageInsightListResult the list storage insights operation response.
460type StorageInsightListResult struct {
461	autorest.Response `json:"-"`
462	// Value - A list of storage insight items.
463	Value *[]StorageInsight `json:"value,omitempty"`
464	// OdataNextLink - The link (url) to the next page of results.
465	OdataNextLink *string `json:"@odata.nextLink,omitempty"`
466}
467
468// StorageInsightListResultIterator provides access to a complete listing of StorageInsight values.
469type StorageInsightListResultIterator struct {
470	i    int
471	page StorageInsightListResultPage
472}
473
474// NextWithContext advances to the next value.  If there was an error making
475// the request the iterator does not advance and the error is returned.
476func (iter *StorageInsightListResultIterator) NextWithContext(ctx context.Context) (err error) {
477	if tracing.IsEnabled() {
478		ctx = tracing.StartSpan(ctx, fqdn+"/StorageInsightListResultIterator.NextWithContext")
479		defer func() {
480			sc := -1
481			if iter.Response().Response.Response != nil {
482				sc = iter.Response().Response.Response.StatusCode
483			}
484			tracing.EndSpan(ctx, sc, err)
485		}()
486	}
487	iter.i++
488	if iter.i < len(iter.page.Values()) {
489		return nil
490	}
491	err = iter.page.NextWithContext(ctx)
492	if err != nil {
493		iter.i--
494		return err
495	}
496	iter.i = 0
497	return nil
498}
499
500// Next advances to the next value.  If there was an error making
501// the request the iterator does not advance and the error is returned.
502// Deprecated: Use NextWithContext() instead.
503func (iter *StorageInsightListResultIterator) Next() error {
504	return iter.NextWithContext(context.Background())
505}
506
507// NotDone returns true if the enumeration should be started or is not yet complete.
508func (iter StorageInsightListResultIterator) NotDone() bool {
509	return iter.page.NotDone() && iter.i < len(iter.page.Values())
510}
511
512// Response returns the raw server response from the last page request.
513func (iter StorageInsightListResultIterator) Response() StorageInsightListResult {
514	return iter.page.Response()
515}
516
517// Value returns the current value or a zero-initialized value if the
518// iterator has advanced beyond the end of the collection.
519func (iter StorageInsightListResultIterator) Value() StorageInsight {
520	if !iter.page.NotDone() {
521		return StorageInsight{}
522	}
523	return iter.page.Values()[iter.i]
524}
525
526// Creates a new instance of the StorageInsightListResultIterator type.
527func NewStorageInsightListResultIterator(page StorageInsightListResultPage) StorageInsightListResultIterator {
528	return StorageInsightListResultIterator{page: page}
529}
530
531// IsEmpty returns true if the ListResult contains no values.
532func (silr StorageInsightListResult) IsEmpty() bool {
533	return silr.Value == nil || len(*silr.Value) == 0
534}
535
536// hasNextLink returns true if the NextLink is not empty.
537func (silr StorageInsightListResult) hasNextLink() bool {
538	return silr.OdataNextLink != nil && len(*silr.OdataNextLink) != 0
539}
540
541// storageInsightListResultPreparer prepares a request to retrieve the next set of results.
542// It returns nil if no more results exist.
543func (silr StorageInsightListResult) storageInsightListResultPreparer(ctx context.Context) (*http.Request, error) {
544	if !silr.hasNextLink() {
545		return nil, nil
546	}
547	return autorest.Prepare((&http.Request{}).WithContext(ctx),
548		autorest.AsJSON(),
549		autorest.AsGet(),
550		autorest.WithBaseURL(to.String(silr.OdataNextLink)))
551}
552
553// StorageInsightListResultPage contains a page of StorageInsight values.
554type StorageInsightListResultPage struct {
555	fn   func(context.Context, StorageInsightListResult) (StorageInsightListResult, error)
556	silr StorageInsightListResult
557}
558
559// NextWithContext advances to the next page of values.  If there was an error making
560// the request the page does not advance and the error is returned.
561func (page *StorageInsightListResultPage) NextWithContext(ctx context.Context) (err error) {
562	if tracing.IsEnabled() {
563		ctx = tracing.StartSpan(ctx, fqdn+"/StorageInsightListResultPage.NextWithContext")
564		defer func() {
565			sc := -1
566			if page.Response().Response.Response != nil {
567				sc = page.Response().Response.Response.StatusCode
568			}
569			tracing.EndSpan(ctx, sc, err)
570		}()
571	}
572	for {
573		next, err := page.fn(ctx, page.silr)
574		if err != nil {
575			return err
576		}
577		page.silr = next
578		if !next.hasNextLink() || !next.IsEmpty() {
579			break
580		}
581	}
582	return nil
583}
584
585// Next advances to the next page of values.  If there was an error making
586// the request the page does not advance and the error is returned.
587// Deprecated: Use NextWithContext() instead.
588func (page *StorageInsightListResultPage) Next() error {
589	return page.NextWithContext(context.Background())
590}
591
592// NotDone returns true if the page enumeration should be started or is not yet complete.
593func (page StorageInsightListResultPage) NotDone() bool {
594	return !page.silr.IsEmpty()
595}
596
597// Response returns the raw server response from the last page request.
598func (page StorageInsightListResultPage) Response() StorageInsightListResult {
599	return page.silr
600}
601
602// Values returns the slice of values for the current page or nil if there are no values.
603func (page StorageInsightListResultPage) Values() []StorageInsight {
604	if page.silr.IsEmpty() {
605		return nil
606	}
607	return *page.silr.Value
608}
609
610// Creates a new instance of the StorageInsightListResultPage type.
611func NewStorageInsightListResultPage(cur StorageInsightListResult, getNextPage func(context.Context, StorageInsightListResult) (StorageInsightListResult, error)) StorageInsightListResultPage {
612	return StorageInsightListResultPage{
613		fn:   getNextPage,
614		silr: cur,
615	}
616}
617
618// StorageInsightProperties storage insight properties.
619type StorageInsightProperties struct {
620	// Containers - The names of the blob containers that the workspace should read
621	Containers *[]string `json:"containers,omitempty"`
622	// Tables - The names of the Azure tables that the workspace should read
623	Tables *[]string `json:"tables,omitempty"`
624	// StorageAccount - The storage account connection details
625	StorageAccount *StorageAccount `json:"storageAccount,omitempty"`
626	// Status - READ-ONLY; The status of the storage insight
627	Status *StorageInsightStatus `json:"status,omitempty"`
628}
629
630// MarshalJSON is the custom marshaler for StorageInsightProperties.
631func (sip StorageInsightProperties) MarshalJSON() ([]byte, error) {
632	objectMap := make(map[string]interface{})
633	if sip.Containers != nil {
634		objectMap["containers"] = sip.Containers
635	}
636	if sip.Tables != nil {
637		objectMap["tables"] = sip.Tables
638	}
639	if sip.StorageAccount != nil {
640		objectMap["storageAccount"] = sip.StorageAccount
641	}
642	return json.Marshal(objectMap)
643}
644
645// StorageInsightStatus the status of the storage insight.
646type StorageInsightStatus struct {
647	// State - The state of the storage insight connection to the workspace. Possible values include: 'OK', 'ERROR'
648	State StorageInsightState `json:"state,omitempty"`
649	// Description - Description of the state of the storage insight.
650	Description *string `json:"description,omitempty"`
651}
652
653// Tag a tag of a saved search.
654type Tag struct {
655	// Name - The tag name.
656	Name *string `json:"name,omitempty"`
657	// Value - The tag value.
658	Value *string `json:"value,omitempty"`
659}
660
661// WorkspacePurgeBody describes the body of a purge request for an App Insights Workspace
662type WorkspacePurgeBody struct {
663	// Table - Table from which to purge data.
664	Table *string `json:"table,omitempty"`
665	// Filters - The set of columns and filters (queries) to run over them to purge the resulting data.
666	Filters *[]WorkspacePurgeBodyFilters `json:"filters,omitempty"`
667}
668
669// WorkspacePurgeBodyFilters user-defined filters to return data which will be purged from the table.
670type WorkspacePurgeBodyFilters struct {
671	// Column - The column of the table over which the given query should run
672	Column *string `json:"column,omitempty"`
673	// Operator - A query operator to evaluate over the provided column and value(s). Supported operators are ==, =~, in, in~, >, >=, <, <=, between, and have the same behavior as they would in a KQL query.
674	Operator *string `json:"operator,omitempty"`
675	// Value - 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.
676	Value interface{} `json:"value,omitempty"`
677	// Key - When filtering over custom dimensions, this key will be used as the name of the custom dimension.
678	Key *string `json:"key,omitempty"`
679}
680
681// WorkspacePurgeResponse response containing operationId for a specific purge action.
682type WorkspacePurgeResponse struct {
683	autorest.Response `json:"-"`
684	// OperationID - Id to use when querying for status for a particular purge operation.
685	OperationID *string `json:"operationId,omitempty"`
686}
687
688// WorkspacePurgeStatusResponse response containing status for a specific purge operation.
689type WorkspacePurgeStatusResponse struct {
690	autorest.Response `json:"-"`
691	// Status - Status of the operation represented by the requested Id. Possible values include: 'Pending', 'Completed'
692	Status PurgeState `json:"status,omitempty"`
693}
694