restic/vendor/github.com/Azure/azure-sdk-for-go/arm/insights/models.go
2017-08-06 21:47:04 +02:00

511 lines
21 KiB
Go
Executable file

package insights
// Copyright (c) Microsoft and contributors. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Code generated by Microsoft (R) AutoRest Code Generator 1.0.1.0
// Changes may cause incorrect behavior and will be lost if the code is
// regenerated.
import (
"github.com/Azure/go-autorest/autorest"
"github.com/Azure/go-autorest/autorest/date"
"github.com/Azure/go-autorest/autorest/to"
"net/http"
)
// ComparisonOperationType enumerates the values for comparison operation type.
type ComparisonOperationType string
const (
// Equals specifies the equals state for comparison operation type.
Equals ComparisonOperationType = "Equals"
// GreaterThan specifies the greater than state for comparison operation
// type.
GreaterThan ComparisonOperationType = "GreaterThan"
// GreaterThanOrEqual specifies the greater than or equal state for
// comparison operation type.
GreaterThanOrEqual ComparisonOperationType = "GreaterThanOrEqual"
// LessThan specifies the less than state for comparison operation type.
LessThan ComparisonOperationType = "LessThan"
// LessThanOrEqual specifies the less than or equal state for comparison
// operation type.
LessThanOrEqual ComparisonOperationType = "LessThanOrEqual"
// NotEquals specifies the not equals state for comparison operation type.
NotEquals ComparisonOperationType = "NotEquals"
)
// ConditionOperator enumerates the values for condition operator.
type ConditionOperator string
const (
// ConditionOperatorGreaterThan specifies the condition operator greater
// than state for condition operator.
ConditionOperatorGreaterThan ConditionOperator = "GreaterThan"
// ConditionOperatorGreaterThanOrEqual specifies the condition operator
// greater than or equal state for condition operator.
ConditionOperatorGreaterThanOrEqual ConditionOperator = "GreaterThanOrEqual"
// ConditionOperatorLessThan specifies the condition operator less than
// state for condition operator.
ConditionOperatorLessThan ConditionOperator = "LessThan"
// ConditionOperatorLessThanOrEqual specifies the condition operator less
// than or equal state for condition operator.
ConditionOperatorLessThanOrEqual ConditionOperator = "LessThanOrEqual"
)
// MetricStatisticType enumerates the values for metric statistic type.
type MetricStatisticType string
const (
// Average specifies the average state for metric statistic type.
Average MetricStatisticType = "Average"
// Max specifies the max state for metric statistic type.
Max MetricStatisticType = "Max"
// Min specifies the min state for metric statistic type.
Min MetricStatisticType = "Min"
// Sum specifies the sum state for metric statistic type.
Sum MetricStatisticType = "Sum"
)
// RecurrenceFrequency enumerates the values for recurrence frequency.
type RecurrenceFrequency string
const (
// Day specifies the day state for recurrence frequency.
Day RecurrenceFrequency = "Day"
// Hour specifies the hour state for recurrence frequency.
Hour RecurrenceFrequency = "Hour"
// Minute specifies the minute state for recurrence frequency.
Minute RecurrenceFrequency = "Minute"
// Month specifies the month state for recurrence frequency.
Month RecurrenceFrequency = "Month"
// None specifies the none state for recurrence frequency.
None RecurrenceFrequency = "None"
// Second specifies the second state for recurrence frequency.
Second RecurrenceFrequency = "Second"
// Week specifies the week state for recurrence frequency.
Week RecurrenceFrequency = "Week"
// Year specifies the year state for recurrence frequency.
Year RecurrenceFrequency = "Year"
)
// ScaleDirection enumerates the values for scale direction.
type ScaleDirection string
const (
// ScaleDirectionDecrease specifies the scale direction decrease state for
// scale direction.
ScaleDirectionDecrease ScaleDirection = "Decrease"
// ScaleDirectionIncrease specifies the scale direction increase state for
// scale direction.
ScaleDirectionIncrease ScaleDirection = "Increase"
// ScaleDirectionNone specifies the scale direction none state for scale
// direction.
ScaleDirectionNone ScaleDirection = "None"
)
// ScaleType enumerates the values for scale type.
type ScaleType string
const (
// ChangeCount specifies the change count state for scale type.
ChangeCount ScaleType = "ChangeCount"
// ExactCount specifies the exact count state for scale type.
ExactCount ScaleType = "ExactCount"
// PercentChangeCount specifies the percent change count state for scale
// type.
PercentChangeCount ScaleType = "PercentChangeCount"
)
// TimeAggregationOperator enumerates the values for time aggregation operator.
type TimeAggregationOperator string
const (
// TimeAggregationOperatorAverage specifies the time aggregation operator
// average state for time aggregation operator.
TimeAggregationOperatorAverage TimeAggregationOperator = "Average"
// TimeAggregationOperatorLast specifies the time aggregation operator last
// state for time aggregation operator.
TimeAggregationOperatorLast TimeAggregationOperator = "Last"
// TimeAggregationOperatorMaximum specifies the time aggregation operator
// maximum state for time aggregation operator.
TimeAggregationOperatorMaximum TimeAggregationOperator = "Maximum"
// TimeAggregationOperatorMinimum specifies the time aggregation operator
// minimum state for time aggregation operator.
TimeAggregationOperatorMinimum TimeAggregationOperator = "Minimum"
// TimeAggregationOperatorTotal specifies the time aggregation operator
// total state for time aggregation operator.
TimeAggregationOperatorTotal TimeAggregationOperator = "Total"
)
// TimeAggregationType enumerates the values for time aggregation type.
type TimeAggregationType string
const (
// TimeAggregationTypeAverage specifies the time aggregation type average
// state for time aggregation type.
TimeAggregationTypeAverage TimeAggregationType = "Average"
// TimeAggregationTypeCount specifies the time aggregation type count state
// for time aggregation type.
TimeAggregationTypeCount TimeAggregationType = "Count"
// TimeAggregationTypeMaximum specifies the time aggregation type maximum
// state for time aggregation type.
TimeAggregationTypeMaximum TimeAggregationType = "Maximum"
// TimeAggregationTypeMinimum specifies the time aggregation type minimum
// state for time aggregation type.
TimeAggregationTypeMinimum TimeAggregationType = "Minimum"
// TimeAggregationTypeTotal specifies the time aggregation type total state
// for time aggregation type.
TimeAggregationTypeTotal TimeAggregationType = "Total"
)
// AlertRule is an alert rule.
type AlertRule struct {
Name *string `json:"name,omitempty"`
Description *string `json:"description,omitempty"`
IsEnabled *bool `json:"isEnabled,omitempty"`
Condition *RuleCondition `json:"condition,omitempty"`
Actions *[]RuleAction `json:"actions,omitempty"`
LastUpdatedTime *date.Time `json:"lastUpdatedTime,omitempty"`
}
// AlertRuleResource is the alert rule resource.
type AlertRuleResource struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Tags *map[string]*string `json:"tags,omitempty"`
*AlertRule `json:"properties,omitempty"`
}
// AlertRuleResourceCollection is represents a collection of alert rule
// resources.
type AlertRuleResourceCollection struct {
autorest.Response `json:"-"`
Value *[]AlertRuleResource `json:"value,omitempty"`
}
// AutoscaleNotification is autoscale notification.
type AutoscaleNotification struct {
Operation *string `json:"operation,omitempty"`
Email *EmailNotification `json:"email,omitempty"`
Webhooks *[]WebhookNotification `json:"webhooks,omitempty"`
}
// AutoscaleProfile is autoscale profile.
type AutoscaleProfile struct {
Name *string `json:"name,omitempty"`
Capacity *ScaleCapacity `json:"capacity,omitempty"`
Rules *[]ScaleRule `json:"rules,omitempty"`
FixedDate *TimeWindow `json:"fixedDate,omitempty"`
Recurrence *Recurrence `json:"recurrence,omitempty"`
}
// AutoscaleSetting is a setting that contains all of the configuration for the
// automatic scaling of a resource.
type AutoscaleSetting struct {
Profiles *[]AutoscaleProfile `json:"profiles,omitempty"`
Notifications *[]AutoscaleNotification `json:"notifications,omitempty"`
Enabled *bool `json:"enabled,omitempty"`
Name *string `json:"name,omitempty"`
TargetResourceURI *string `json:"targetResourceUri,omitempty"`
}
// AutoscaleSettingResource is the autoscale setting resource.
type AutoscaleSettingResource struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Tags *map[string]*string `json:"tags,omitempty"`
*AutoscaleSetting `json:"properties,omitempty"`
}
// AutoscaleSettingResourceCollection is represents a collection of autoscale
// setting resources.
type AutoscaleSettingResourceCollection struct {
autorest.Response `json:"-"`
Value *[]AutoscaleSettingResource `json:"value,omitempty"`
NextLink *string `json:"nextLink,omitempty"`
}
// AutoscaleSettingResourceCollectionPreparer prepares a request to retrieve the next set of results. It returns
// nil if no more results exist.
func (client AutoscaleSettingResourceCollection) AutoscaleSettingResourceCollectionPreparer() (*http.Request, error) {
if client.NextLink == nil || len(to.String(client.NextLink)) <= 0 {
return nil, nil
}
return autorest.Prepare(&http.Request{},
autorest.AsJSON(),
autorest.AsGet(),
autorest.WithBaseURL(to.String(client.NextLink)))
}
// EmailNotification is email notification of an autoscale event.
type EmailNotification struct {
SendToSubscriptionAdministrator *bool `json:"sendToSubscriptionAdministrator,omitempty"`
SendToSubscriptionCoAdministrators *bool `json:"sendToSubscriptionCoAdministrators,omitempty"`
CustomEmails *[]string `json:"customEmails,omitempty"`
}
// Incident is an alert incident indicates the activation status of an alert
// rule.
type Incident struct {
autorest.Response `json:"-"`
Name *string `json:"name,omitempty"`
RuleName *string `json:"ruleName,omitempty"`
IsActive *bool `json:"isActive,omitempty"`
ActivatedTime *date.Time `json:"activatedTime,omitempty"`
ResolvedTime *date.Time `json:"resolvedTime,omitempty"`
}
// IncidentListResult is the List incidents operation response.
type IncidentListResult struct {
autorest.Response `json:"-"`
Value *[]Incident `json:"value,omitempty"`
}
// LocationThresholdRuleCondition is a rule condition based on a certain number
// of locations failing.
type LocationThresholdRuleCondition struct {
DataSource *RuleDataSource `json:"dataSource,omitempty"`
WindowSize *string `json:"windowSize,omitempty"`
FailedLocationCount *int32 `json:"failedLocationCount,omitempty"`
}
// LogProfileCollection is represents a collection of log profiles.
type LogProfileCollection struct {
autorest.Response `json:"-"`
Value *[]LogProfileResource `json:"value,omitempty"`
}
// LogProfileProperties is the log profile properties.
type LogProfileProperties struct {
StorageAccountID *string `json:"storageAccountId,omitempty"`
ServiceBusRuleID *string `json:"serviceBusRuleId,omitempty"`
Locations *[]string `json:"locations,omitempty"`
Categories *[]string `json:"categories,omitempty"`
RetentionPolicy *RetentionPolicy `json:"retentionPolicy,omitempty"`
}
// LogProfileResource is the log profile resource.
type LogProfileResource struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Tags *map[string]*string `json:"tags,omitempty"`
*LogProfileProperties `json:"properties,omitempty"`
}
// LogSettings is part of MultiTenantDiagnosticSettings. Specifies the settings
// for a particular log.
type LogSettings struct {
Category *string `json:"category,omitempty"`
Enabled *bool `json:"enabled,omitempty"`
RetentionPolicy *RetentionPolicy `json:"retentionPolicy,omitempty"`
}
// ManagementEventAggregationCondition is how the data that is collected should
// be combined over time.
type ManagementEventAggregationCondition struct {
Operator ConditionOperator `json:"operator,omitempty"`
Threshold *float64 `json:"threshold,omitempty"`
WindowSize *string `json:"windowSize,omitempty"`
}
// ManagementEventRuleCondition is a management event rule condition.
type ManagementEventRuleCondition struct {
DataSource *RuleDataSource `json:"dataSource,omitempty"`
Aggregation *ManagementEventAggregationCondition `json:"aggregation,omitempty"`
}
// MetricSettings is part of MultiTenantDiagnosticSettings. Specifies the
// settings for a particular metric.
type MetricSettings struct {
TimeGrain *string `json:"timeGrain,omitempty"`
Enabled *bool `json:"enabled,omitempty"`
RetentionPolicy *RetentionPolicy `json:"retentionPolicy,omitempty"`
}
// MetricTrigger is the trigger that results in a scaling action.
type MetricTrigger struct {
MetricName *string `json:"metricName,omitempty"`
MetricResourceURI *string `json:"metricResourceUri,omitempty"`
TimeGrain *string `json:"timeGrain,omitempty"`
Statistic MetricStatisticType `json:"statistic,omitempty"`
TimeWindow *string `json:"timeWindow,omitempty"`
TimeAggregation TimeAggregationType `json:"timeAggregation,omitempty"`
Operator ComparisonOperationType `json:"operator,omitempty"`
Threshold *float64 `json:"threshold,omitempty"`
}
// Recurrence is the repeating times at which this profile begins. This element
// is not used if the FixedDate element is used.
type Recurrence struct {
Frequency RecurrenceFrequency `json:"frequency,omitempty"`
Schedule *RecurrentSchedule `json:"schedule,omitempty"`
}
// RecurrentSchedule is the scheduling constraints for when the profile begins.
type RecurrentSchedule struct {
TimeZone *string `json:"timeZone,omitempty"`
Days *[]string `json:"days,omitempty"`
Hours *[]int32 `json:"hours,omitempty"`
Minutes *[]int32 `json:"minutes,omitempty"`
}
// Resource is an azure resource object
type Resource struct {
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Tags *map[string]*string `json:"tags,omitempty"`
}
// RetentionPolicy is specifies the retention policy for the log.
type RetentionPolicy struct {
Enabled *bool `json:"enabled,omitempty"`
Days *int32 `json:"days,omitempty"`
}
// RuleAction is the action that is performed when the alert rule becomes
// active, and when an alert condition is resolved.
type RuleAction struct {
}
// RuleCondition is the condition that results in the alert rule being
// activated.
type RuleCondition struct {
}
// RuleDataSource is the resource from which the rule collects its data.
type RuleDataSource struct {
}
// RuleEmailAction is specifies the action to send email when the rule
// condition is evaluated. The discriminator is always RuleEmailAction in this
// case.
type RuleEmailAction struct {
SendToServiceOwners *bool `json:"sendToServiceOwners,omitempty"`
CustomEmails *[]string `json:"customEmails,omitempty"`
}
// RuleManagementEventClaimsDataSource is the claims for a rule management
// event data source.
type RuleManagementEventClaimsDataSource struct {
EmailAddress *string `json:"emailAddress,omitempty"`
}
// RuleManagementEventDataSource is a rule management event data source. The
// discriminator fields is always RuleManagementEventDataSource in this case.
type RuleManagementEventDataSource struct {
EventName *string `json:"eventName,omitempty"`
EventSource *string `json:"eventSource,omitempty"`
Level *string `json:"level,omitempty"`
OperationName *string `json:"operationName,omitempty"`
ResourceGroupName *string `json:"resourceGroupName,omitempty"`
ResourceProviderName *string `json:"resourceProviderName,omitempty"`
ResourceURI *string `json:"resourceUri,omitempty"`
Status *string `json:"status,omitempty"`
SubStatus *string `json:"subStatus,omitempty"`
Claims *RuleManagementEventClaimsDataSource `json:"claims,omitempty"`
}
// RuleMetricDataSource is a rule metric data source. The discriminator value
// is always RuleMetricDataSource in this case.
type RuleMetricDataSource struct {
ResourceURI *string `json:"resourceUri,omitempty"`
MetricName *string `json:"metricName,omitempty"`
}
// RuleWebhookAction is specifies the action to post to service when the rule
// condition is evaluated. The discriminator is always RuleWebhookAction in
// this case.
type RuleWebhookAction struct {
ServiceURI *string `json:"serviceUri,omitempty"`
Properties *map[string]*string `json:"properties,omitempty"`
}
// ScaleAction is the parameters for the scaling action.
type ScaleAction struct {
Direction ScaleDirection `json:"direction,omitempty"`
Type ScaleType `json:"type,omitempty"`
Value *string `json:"value,omitempty"`
Cooldown *string `json:"cooldown,omitempty"`
}
// ScaleCapacity is the number of instances that can be used during this
// profile.
type ScaleCapacity struct {
Minimum *string `json:"minimum,omitempty"`
Maximum *string `json:"maximum,omitempty"`
Default *string `json:"default,omitempty"`
}
// ScaleRule is a rule that provide the triggers and parameters for the scaling
// action.
type ScaleRule struct {
MetricTrigger *MetricTrigger `json:"metricTrigger,omitempty"`
ScaleAction *ScaleAction `json:"scaleAction,omitempty"`
}
// ServiceDiagnosticSettings is the diagnostic settings for service.
type ServiceDiagnosticSettings struct {
StorageAccountID *string `json:"storageAccountId,omitempty"`
ServiceBusRuleID *string `json:"serviceBusRuleId,omitempty"`
Metrics *[]MetricSettings `json:"metrics,omitempty"`
Logs *[]LogSettings `json:"logs,omitempty"`
WorkspaceID *string `json:"workspaceId,omitempty"`
}
// ServiceDiagnosticSettingsResource is description of a service diagnostic
// setting
type ServiceDiagnosticSettingsResource struct {
autorest.Response `json:"-"`
ID *string `json:"id,omitempty"`
Name *string `json:"name,omitempty"`
Type *string `json:"type,omitempty"`
Location *string `json:"location,omitempty"`
Tags *map[string]*string `json:"tags,omitempty"`
*ServiceDiagnosticSettings `json:"properties,omitempty"`
}
// ThresholdRuleCondition is a rule condition based on a metric crossing a
// threshold.
type ThresholdRuleCondition struct {
DataSource *RuleDataSource `json:"dataSource,omitempty"`
Operator ConditionOperator `json:"operator,omitempty"`
Threshold *float64 `json:"threshold,omitempty"`
WindowSize *string `json:"windowSize,omitempty"`
TimeAggregation TimeAggregationOperator `json:"timeAggregation,omitempty"`
}
// TimeWindow is a specific date-time for the profile.
type TimeWindow struct {
TimeZone *string `json:"timeZone,omitempty"`
Start *date.Time `json:"start,omitempty"`
End *date.Time `json:"end,omitempty"`
}
// WebhookNotification is webhook notification of an autoscale event.
type WebhookNotification struct {
ServiceURI *string `json:"serviceUri,omitempty"`
Properties *map[string]*string `json:"properties,omitempty"`
}