// Package domain provides primitives to interact with the openapi HTTP API.
//
// Code generated by github.com/deepmap/oapi-codegen version (devel) DO NOT EDIT.
package domain

import (
	"encoding/json"
	"fmt"
	"time"

	"github.com/pkg/errors"
)

const (
	BasicAuthenticationScopes       = "BasicAuthentication.Scopes"
	QuerystringAuthenticationScopes = "QuerystringAuthentication.Scopes"
	TokenAuthenticationScopes       = "TokenAuthentication.Scopes"
)

// Defines values for AuthorizationUpdateRequestStatus.
const (
	AuthorizationUpdateRequestStatusActive AuthorizationUpdateRequestStatus = "active"

	AuthorizationUpdateRequestStatusInactive AuthorizationUpdateRequestStatus = "inactive"
)

// Defines values for AxisBase.
const (
	AxisBase10 AxisBase = "10"

	AxisBase2 AxisBase = "2"

	AxisBaseEmpty AxisBase = ""
)

// Defines values for AxisScale.
const (
	AxisScaleLinear AxisScale = "linear"

	AxisScaleLog AxisScale = "log"
)

// Defines values for BandViewPropertiesHoverDimension.
const (
	BandViewPropertiesHoverDimensionAuto BandViewPropertiesHoverDimension = "auto"

	BandViewPropertiesHoverDimensionX BandViewPropertiesHoverDimension = "x"

	BandViewPropertiesHoverDimensionXy BandViewPropertiesHoverDimension = "xy"

	BandViewPropertiesHoverDimensionY BandViewPropertiesHoverDimension = "y"
)

// Defines values for BandViewPropertiesShape.
const (
	BandViewPropertiesShapeChronografV2 BandViewPropertiesShape = "chronograf-v2"
)

// Defines values for BandViewPropertiesType.
const (
	BandViewPropertiesTypeBand BandViewPropertiesType = "band"
)

// Defines values for BucketType.
const (
	BucketTypeSystem BucketType = "system"

	BucketTypeUser BucketType = "user"
)

// Defines values for BuilderAggregateFunctionType.
const (
	BuilderAggregateFunctionTypeFilter BuilderAggregateFunctionType = "filter"

	BuilderAggregateFunctionTypeGroup BuilderAggregateFunctionType = "group"
)

// Defines values for CheckBaseLastRunStatus.
const (
	CheckBaseLastRunStatusCanceled CheckBaseLastRunStatus = "canceled"

	CheckBaseLastRunStatusFailed CheckBaseLastRunStatus = "failed"

	CheckBaseLastRunStatusSuccess CheckBaseLastRunStatus = "success"
)

// Defines values for CheckPatchStatus.
const (
	CheckPatchStatusActive CheckPatchStatus = "active"

	CheckPatchStatusInactive CheckPatchStatus = "inactive"
)

// Defines values for CheckStatusLevel.
const (
	CheckStatusLevelCRIT CheckStatusLevel = "CRIT"

	CheckStatusLevelINFO CheckStatusLevel = "INFO"

	CheckStatusLevelOK CheckStatusLevel = "OK"

	CheckStatusLevelUNKNOWN CheckStatusLevel = "UNKNOWN"

	CheckStatusLevelWARN CheckStatusLevel = "WARN"
)

// Defines values for CheckViewPropertiesShape.
const (
	CheckViewPropertiesShapeChronografV2 CheckViewPropertiesShape = "chronograf-v2"
)

// Defines values for CheckViewPropertiesType.
const (
	CheckViewPropertiesTypeCheck CheckViewPropertiesType = "check"
)

// Defines values for ConstantVariablePropertiesType.
const (
	ConstantVariablePropertiesTypeConstant ConstantVariablePropertiesType = "constant"
)

// Defines values for CustomCheckType.
const (
	CustomCheckTypeCustom CustomCheckType = "custom"
)

// Defines values for DashboardColorType.
const (
	DashboardColorTypeBackground DashboardColorType = "background"

	DashboardColorTypeMax DashboardColorType = "max"

	DashboardColorTypeMin DashboardColorType = "min"

	DashboardColorTypeScale DashboardColorType = "scale"

	DashboardColorTypeText DashboardColorType = "text"

	DashboardColorTypeThreshold DashboardColorType = "threshold"
)

// Defines values for DeadmanCheckType.
const (
	DeadmanCheckTypeDeadman DeadmanCheckType = "deadman"
)

// Defines values for DialectAnnotations.
const (
	DialectAnnotationsDatatype DialectAnnotations = "datatype"

	DialectAnnotationsDefault DialectAnnotations = "default"

	DialectAnnotationsGroup DialectAnnotations = "group"
)

// Defines values for DialectDateTimeFormat.
const (
	DialectDateTimeFormatRFC3339 DialectDateTimeFormat = "RFC3339"

	DialectDateTimeFormatRFC3339Nano DialectDateTimeFormat = "RFC3339Nano"
)

// Defines values for ErrorCode.
const (
	ErrorCodeConflict ErrorCode = "conflict"

	ErrorCodeEmptyValue ErrorCode = "empty value"

	ErrorCodeForbidden ErrorCode = "forbidden"

	ErrorCodeInternalError ErrorCode = "internal error"

	ErrorCodeInvalid ErrorCode = "invalid"

	ErrorCodeMethodNotAllowed ErrorCode = "method not allowed"

	ErrorCodeNotFound ErrorCode = "not found"

	ErrorCodeRequestTooLarge ErrorCode = "request too large"

	ErrorCodeTooManyRequests ErrorCode = "too many requests"

	ErrorCodeUnauthorized ErrorCode = "unauthorized"

	ErrorCodeUnavailable ErrorCode = "unavailable"

	ErrorCodeUnprocessableEntity ErrorCode = "unprocessable entity"

	ErrorCodeUnsupportedMediaType ErrorCode = "unsupported media type"
)

// Defines values for FieldType.
const (
	FieldTypeField FieldType = "field"

	FieldTypeFunc FieldType = "func"

	FieldTypeInteger FieldType = "integer"

	FieldTypeNumber FieldType = "number"

	FieldTypeRegex FieldType = "regex"

	FieldTypeWildcard FieldType = "wildcard"
)

// Defines values for GaugeViewPropertiesShape.
const (
	GaugeViewPropertiesShapeChronografV2 GaugeViewPropertiesShape = "chronograf-v2"
)

// Defines values for GaugeViewPropertiesType.
const (
	GaugeViewPropertiesTypeGauge GaugeViewPropertiesType = "gauge"
)

// Defines values for GeoViewLayerPropertiesType.
const (
	GeoViewLayerPropertiesTypeCircleMap GeoViewLayerPropertiesType = "circleMap"

	GeoViewLayerPropertiesTypeHeatmap GeoViewLayerPropertiesType = "heatmap"

	GeoViewLayerPropertiesTypePointMap GeoViewLayerPropertiesType = "pointMap"

	GeoViewLayerPropertiesTypeTrackMap GeoViewLayerPropertiesType = "trackMap"
)

// Defines values for GeoViewPropertiesShape.
const (
	GeoViewPropertiesShapeChronografV2 GeoViewPropertiesShape = "chronograf-v2"
)

// Defines values for GeoViewPropertiesType.
const (
	GeoViewPropertiesTypeGeo GeoViewPropertiesType = "geo"
)

// Defines values for GreaterThresholdType.
const (
	GreaterThresholdTypeGreater GreaterThresholdType = "greater"
)

// Defines values for HTTPNotificationEndpointAuthMethod.
const (
	HTTPNotificationEndpointAuthMethodBasic HTTPNotificationEndpointAuthMethod = "basic"

	HTTPNotificationEndpointAuthMethodBearer HTTPNotificationEndpointAuthMethod = "bearer"

	HTTPNotificationEndpointAuthMethodNone HTTPNotificationEndpointAuthMethod = "none"
)

// Defines values for HTTPNotificationEndpointMethod.
const (
	HTTPNotificationEndpointMethodGET HTTPNotificationEndpointMethod = "GET"

	HTTPNotificationEndpointMethodPOST HTTPNotificationEndpointMethod = "POST"

	HTTPNotificationEndpointMethodPUT HTTPNotificationEndpointMethod = "PUT"
)

// Defines values for HTTPNotificationRuleBaseType.
const (
	HTTPNotificationRuleBaseTypeHttp HTTPNotificationRuleBaseType = "http"
)

// Defines values for HealthCheckStatus.
const (
	HealthCheckStatusFail HealthCheckStatus = "fail"

	HealthCheckStatusPass HealthCheckStatus = "pass"
)

// Defines values for HeatmapViewPropertiesShape.
const (
	HeatmapViewPropertiesShapeChronografV2 HeatmapViewPropertiesShape = "chronograf-v2"
)

// Defines values for HeatmapViewPropertiesType.
const (
	HeatmapViewPropertiesTypeHeatmap HeatmapViewPropertiesType = "heatmap"
)

// Defines values for HistogramViewPropertiesPosition.
const (
	HistogramViewPropertiesPositionOverlaid HistogramViewPropertiesPosition = "overlaid"

	HistogramViewPropertiesPositionStacked HistogramViewPropertiesPosition = "stacked"
)

// Defines values for HistogramViewPropertiesShape.
const (
	HistogramViewPropertiesShapeChronografV2 HistogramViewPropertiesShape = "chronograf-v2"
)

// Defines values for HistogramViewPropertiesType.
const (
	HistogramViewPropertiesTypeHistogram HistogramViewPropertiesType = "histogram"
)

// Defines values for LesserThresholdType.
const (
	LesserThresholdTypeLesser LesserThresholdType = "lesser"
)

// Defines values for LinePlusSingleStatPropertiesHoverDimension.
const (
	LinePlusSingleStatPropertiesHoverDimensionAuto LinePlusSingleStatPropertiesHoverDimension = "auto"

	LinePlusSingleStatPropertiesHoverDimensionX LinePlusSingleStatPropertiesHoverDimension = "x"

	LinePlusSingleStatPropertiesHoverDimensionXy LinePlusSingleStatPropertiesHoverDimension = "xy"

	LinePlusSingleStatPropertiesHoverDimensionY LinePlusSingleStatPropertiesHoverDimension = "y"
)

// Defines values for LinePlusSingleStatPropertiesPosition.
const (
	LinePlusSingleStatPropertiesPositionOverlaid LinePlusSingleStatPropertiesPosition = "overlaid"

	LinePlusSingleStatPropertiesPositionStacked LinePlusSingleStatPropertiesPosition = "stacked"
)

// Defines values for LinePlusSingleStatPropertiesShape.
const (
	LinePlusSingleStatPropertiesShapeChronografV2 LinePlusSingleStatPropertiesShape = "chronograf-v2"
)

// Defines values for LinePlusSingleStatPropertiesType.
const (
	LinePlusSingleStatPropertiesTypeLinePlusSingleStat LinePlusSingleStatPropertiesType = "line-plus-single-stat"
)

// Defines values for LineProtocolErrorCode.
const (
	LineProtocolErrorCodeConflict LineProtocolErrorCode = "conflict"

	LineProtocolErrorCodeEmptyValue LineProtocolErrorCode = "empty value"

	LineProtocolErrorCodeInternalError LineProtocolErrorCode = "internal error"

	LineProtocolErrorCodeInvalid LineProtocolErrorCode = "invalid"

	LineProtocolErrorCodeNotFound LineProtocolErrorCode = "not found"

	LineProtocolErrorCodeUnavailable LineProtocolErrorCode = "unavailable"
)

// Defines values for LineProtocolLengthErrorCode.
const (
	LineProtocolLengthErrorCodeInvalid LineProtocolLengthErrorCode = "invalid"
)

// Defines values for MapVariablePropertiesType.
const (
	MapVariablePropertiesTypeMap MapVariablePropertiesType = "map"
)

// Defines values for MarkdownViewPropertiesShape.
const (
	MarkdownViewPropertiesShapeChronografV2 MarkdownViewPropertiesShape = "chronograf-v2"
)

// Defines values for MarkdownViewPropertiesType.
const (
	MarkdownViewPropertiesTypeMarkdown MarkdownViewPropertiesType = "markdown"
)

// Defines values for MosaicViewPropertiesHoverDimension.
const (
	MosaicViewPropertiesHoverDimensionAuto MosaicViewPropertiesHoverDimension = "auto"

	MosaicViewPropertiesHoverDimensionX MosaicViewPropertiesHoverDimension = "x"

	MosaicViewPropertiesHoverDimensionXy MosaicViewPropertiesHoverDimension = "xy"

	MosaicViewPropertiesHoverDimensionY MosaicViewPropertiesHoverDimension = "y"
)

// Defines values for MosaicViewPropertiesShape.
const (
	MosaicViewPropertiesShapeChronografV2 MosaicViewPropertiesShape = "chronograf-v2"
)

// Defines values for MosaicViewPropertiesType.
const (
	MosaicViewPropertiesTypeMosaic MosaicViewPropertiesType = "mosaic"
)

// Defines values for NotificationEndpointBaseStatus.
const (
	NotificationEndpointBaseStatusActive NotificationEndpointBaseStatus = "active"

	NotificationEndpointBaseStatusInactive NotificationEndpointBaseStatus = "inactive"
)

// Defines values for NotificationEndpointType.
const (
	NotificationEndpointTypeHttp NotificationEndpointType = "http"

	NotificationEndpointTypePagerduty NotificationEndpointType = "pagerduty"

	NotificationEndpointTypeSlack NotificationEndpointType = "slack"

	NotificationEndpointTypeTelegram NotificationEndpointType = "telegram"
)

// Defines values for NotificationEndpointUpdateStatus.
const (
	NotificationEndpointUpdateStatusActive NotificationEndpointUpdateStatus = "active"

	NotificationEndpointUpdateStatusInactive NotificationEndpointUpdateStatus = "inactive"
)

// Defines values for NotificationRuleBaseLastRunStatus.
const (
	NotificationRuleBaseLastRunStatusCanceled NotificationRuleBaseLastRunStatus = "canceled"

	NotificationRuleBaseLastRunStatusFailed NotificationRuleBaseLastRunStatus = "failed"

	NotificationRuleBaseLastRunStatusSuccess NotificationRuleBaseLastRunStatus = "success"
)

// Defines values for NotificationRuleUpdateStatus.
const (
	NotificationRuleUpdateStatusActive NotificationRuleUpdateStatus = "active"

	NotificationRuleUpdateStatusInactive NotificationRuleUpdateStatus = "inactive"
)

// Defines values for OrganizationStatus.
const (
	OrganizationStatusActive OrganizationStatus = "active"

	OrganizationStatusInactive OrganizationStatus = "inactive"
)

// Defines values for PagerDutyNotificationRuleBaseType.
const (
	PagerDutyNotificationRuleBaseTypePagerduty PagerDutyNotificationRuleBaseType = "pagerduty"
)

// Defines values for PatchRetentionRuleType.
const (
	PatchRetentionRuleTypeExpire PatchRetentionRuleType = "expire"
)

// Defines values for PermissionAction.
const (
	PermissionActionRead PermissionAction = "read"

	PermissionActionWrite PermissionAction = "write"
)

// Defines values for QueryType.
const (
	QueryTypeFlux QueryType = "flux"
)

// Defines values for QueryEditMode.
const (
	QueryEditModeAdvanced QueryEditMode = "advanced"

	QueryEditModeBuilder QueryEditMode = "builder"
)

// Defines values for QueryVariablePropertiesType.
const (
	QueryVariablePropertiesTypeQuery QueryVariablePropertiesType = "query"
)

// Defines values for RangeThresholdType.
const (
	RangeThresholdTypeRange RangeThresholdType = "range"
)

// Defines values for ReadyStatus.
const (
	ReadyStatusReady ReadyStatus = "ready"
)

// Defines values for ResourceType.
const (
	ResourceTypeAnnotations ResourceType = "annotations"

	ResourceTypeAuthorizations ResourceType = "authorizations"

	ResourceTypeBuckets ResourceType = "buckets"

	ResourceTypeChecks ResourceType = "checks"

	ResourceTypeDashboards ResourceType = "dashboards"

	ResourceTypeDbrp ResourceType = "dbrp"

	ResourceTypeDocuments ResourceType = "documents"

	ResourceTypeLabels ResourceType = "labels"

	ResourceTypeNotebooks ResourceType = "notebooks"

	ResourceTypeNotificationEndpoints ResourceType = "notificationEndpoints"

	ResourceTypeNotificationRules ResourceType = "notificationRules"

	ResourceTypeOrgs ResourceType = "orgs"

	ResourceTypeRemotes ResourceType = "remotes"

	ResourceTypeReplications ResourceType = "replications"

	ResourceTypeScrapers ResourceType = "scrapers"

	ResourceTypeSecrets ResourceType = "secrets"

	ResourceTypeSources ResourceType = "sources"

	ResourceTypeTasks ResourceType = "tasks"

	ResourceTypeTelegrafs ResourceType = "telegrafs"

	ResourceTypeUsers ResourceType = "users"

	ResourceTypeVariables ResourceType = "variables"

	ResourceTypeViews ResourceType = "views"
)

// Defines values for ResourceMemberRole.
const (
	ResourceMemberRoleMember ResourceMemberRole = "member"
)

// Defines values for ResourceOwnerRole.
const (
	ResourceOwnerRoleOwner ResourceOwnerRole = "owner"
)

// Defines values for RetentionRuleType.
const (
	RetentionRuleTypeExpire RetentionRuleType = "expire"
)

// Defines values for RuleStatusLevel.
const (
	RuleStatusLevelANY RuleStatusLevel = "ANY"

	RuleStatusLevelCRIT RuleStatusLevel = "CRIT"

	RuleStatusLevelINFO RuleStatusLevel = "INFO"

	RuleStatusLevelOK RuleStatusLevel = "OK"

	RuleStatusLevelUNKNOWN RuleStatusLevel = "UNKNOWN"

	RuleStatusLevelWARN RuleStatusLevel = "WARN"
)

// Defines values for RunStatus.
const (
	RunStatusCanceled RunStatus = "canceled"

	RunStatusFailed RunStatus = "failed"

	RunStatusScheduled RunStatus = "scheduled"

	RunStatusStarted RunStatus = "started"

	RunStatusSuccess RunStatus = "success"
)

// Defines values for SMTPNotificationRuleBaseType.
const (
	SMTPNotificationRuleBaseTypeSmtp SMTPNotificationRuleBaseType = "smtp"
)

// Defines values for ScatterViewPropertiesShape.
const (
	ScatterViewPropertiesShapeChronografV2 ScatterViewPropertiesShape = "chronograf-v2"
)

// Defines values for ScatterViewPropertiesType.
const (
	ScatterViewPropertiesTypeScatter ScatterViewPropertiesType = "scatter"
)

// Defines values for SchemaType.
const (
	SchemaTypeExplicit SchemaType = "explicit"

	SchemaTypeImplicit SchemaType = "implicit"
)

// Defines values for ScraperTargetRequestType.
const (
	ScraperTargetRequestTypePrometheus ScraperTargetRequestType = "prometheus"
)

// Defines values for SimpleTableViewPropertiesShape.
const (
	SimpleTableViewPropertiesShapeChronografV2 SimpleTableViewPropertiesShape = "chronograf-v2"
)

// Defines values for SimpleTableViewPropertiesType.
const (
	SimpleTableViewPropertiesTypeSimpleTable SimpleTableViewPropertiesType = "simple-table"
)

// Defines values for SingleStatViewPropertiesShape.
const (
	SingleStatViewPropertiesShapeChronografV2 SingleStatViewPropertiesShape = "chronograf-v2"
)

// Defines values for SingleStatViewPropertiesType.
const (
	SingleStatViewPropertiesTypeSingleStat SingleStatViewPropertiesType = "single-stat"
)

// Defines values for SlackNotificationRuleBaseType.
const (
	SlackNotificationRuleBaseTypeSlack SlackNotificationRuleBaseType = "slack"
)

// Defines values for SourceLanguages.
const (
	SourceLanguagesFlux SourceLanguages = "flux"

	SourceLanguagesInfluxql SourceLanguages = "influxql"
)

// Defines values for SourceType.
const (
	SourceTypeSelf SourceType = "self"

	SourceTypeV1 SourceType = "v1"

	SourceTypeV2 SourceType = "v2"
)

// Defines values for TableViewPropertiesShape.
const (
	TableViewPropertiesShapeChronografV2 TableViewPropertiesShape = "chronograf-v2"
)

// Defines values for TableViewPropertiesTableOptionsWrapping.
const (
	TableViewPropertiesTableOptionsWrappingSingleLine TableViewPropertiesTableOptionsWrapping = "single-line"

	TableViewPropertiesTableOptionsWrappingTruncate TableViewPropertiesTableOptionsWrapping = "truncate"

	TableViewPropertiesTableOptionsWrappingWrap TableViewPropertiesTableOptionsWrapping = "wrap"
)

// Defines values for TableViewPropertiesType.
const (
	TableViewPropertiesTypeTable TableViewPropertiesType = "table"
)

// Defines values for TagRuleOperator.
const (
	TagRuleOperatorEqual TagRuleOperator = "equal"

	TagRuleOperatorEqualregex TagRuleOperator = "equalregex"

	TagRuleOperatorNotequal TagRuleOperator = "notequal"

	TagRuleOperatorNotequalregex TagRuleOperator = "notequalregex"
)

// Defines values for TaskLastRunStatus.
const (
	TaskLastRunStatusCanceled TaskLastRunStatus = "canceled"

	TaskLastRunStatusFailed TaskLastRunStatus = "failed"

	TaskLastRunStatusSuccess TaskLastRunStatus = "success"
)

// Defines values for TaskStatusType.
const (
	TaskStatusTypeActive TaskStatusType = "active"

	TaskStatusTypeInactive TaskStatusType = "inactive"
)

// Defines values for TelegramNotificationRuleBaseParseMode.
const (
	TelegramNotificationRuleBaseParseModeHTML TelegramNotificationRuleBaseParseMode = "HTML"

	TelegramNotificationRuleBaseParseModeMarkdown TelegramNotificationRuleBaseParseMode = "Markdown"

	TelegramNotificationRuleBaseParseModeMarkdownV2 TelegramNotificationRuleBaseParseMode = "MarkdownV2"
)

// Defines values for TelegramNotificationRuleBaseType.
const (
	TelegramNotificationRuleBaseTypeTelegram TelegramNotificationRuleBaseType = "telegram"
)

// Defines values for TemplateKind.
const (
	TemplateKindBucket TemplateKind = "Bucket"

	TemplateKindCheck TemplateKind = "Check"

	TemplateKindCheckDeadman TemplateKind = "CheckDeadman"

	TemplateKindCheckThreshold TemplateKind = "CheckThreshold"

	TemplateKindDashboard TemplateKind = "Dashboard"

	TemplateKindLabel TemplateKind = "Label"

	TemplateKindNotificationEndpoint TemplateKind = "NotificationEndpoint"

	TemplateKindNotificationEndpointHTTP TemplateKind = "NotificationEndpointHTTP"

	TemplateKindNotificationEndpointPagerDuty TemplateKind = "NotificationEndpointPagerDuty"

	TemplateKindNotificationEndpointSlack TemplateKind = "NotificationEndpointSlack"

	TemplateKindNotificationRule TemplateKind = "NotificationRule"

	TemplateKindTask TemplateKind = "Task"

	TemplateKindTelegraf TemplateKind = "Telegraf"

	TemplateKindVariable TemplateKind = "Variable"
)

// Defines values for ThresholdCheckType.
const (
	ThresholdCheckTypeThreshold ThresholdCheckType = "threshold"
)

// Defines values for UserStatus.
const (
	UserStatusActive UserStatus = "active"

	UserStatusInactive UserStatus = "inactive"
)

// Defines values for UserResponseStatus.
const (
	UserResponseStatusActive UserResponseStatus = "active"

	UserResponseStatusInactive UserResponseStatus = "inactive"
)

// Defines values for WritePrecision.
const (
	WritePrecisionMs WritePrecision = "ms"

	WritePrecisionNs WritePrecision = "ns"

	WritePrecisionS WritePrecision = "s"

	WritePrecisionUs WritePrecision = "us"
)

// Defines values for XYGeom.
const (
	XYGeomBar XYGeom = "bar"

	XYGeomLine XYGeom = "line"

	XYGeomMonotoneX XYGeom = "monotoneX"

	XYGeomStacked XYGeom = "stacked"

	XYGeomStep XYGeom = "step"
)

// Defines values for XYViewPropertiesHoverDimension.
const (
	XYViewPropertiesHoverDimensionAuto XYViewPropertiesHoverDimension = "auto"

	XYViewPropertiesHoverDimensionX XYViewPropertiesHoverDimension = "x"

	XYViewPropertiesHoverDimensionXy XYViewPropertiesHoverDimension = "xy"

	XYViewPropertiesHoverDimensionY XYViewPropertiesHoverDimension = "y"
)

// Defines values for XYViewPropertiesPosition.
const (
	XYViewPropertiesPositionOverlaid XYViewPropertiesPosition = "overlaid"

	XYViewPropertiesPositionStacked XYViewPropertiesPosition = "stacked"
)

// Defines values for XYViewPropertiesShape.
const (
	XYViewPropertiesShapeChronografV2 XYViewPropertiesShape = "chronograf-v2"
)

// Defines values for XYViewPropertiesType.
const (
	XYViewPropertiesTypeXy XYViewPropertiesType = "xy"
)

// Contains the AST for the supplied Flux query
type ASTResponse struct {
	// Represents a complete package source tree.
	Ast *Package `json:"ast,omitempty"`
}

// AddResourceMemberRequestBody defines model for AddResourceMemberRequestBody.
type AddResourceMemberRequestBody struct {
	Id   string  `json:"id"`
	Name *string `json:"name,omitempty"`
}

// AnalyzeQueryResponse defines model for AnalyzeQueryResponse.
type AnalyzeQueryResponse struct {
	Errors *[]struct {
		Character *int    `json:"character,omitempty"`
		Column    *int    `json:"column,omitempty"`
		Line      *int    `json:"line,omitempty"`
		Message   *string `json:"message,omitempty"`
	} `json:"errors,omitempty"`
}

// Used to create and directly specify the elements of an array object
type ArrayExpression struct {
	// Elements of the array
	Elements *[]Expression `json:"elements,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// Authorization defines model for Authorization.
type Authorization struct {
	// Embedded struct due to allOf(#/components/schemas/AuthorizationUpdateRequest)
	AuthorizationUpdateRequest `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	CreatedAt *time.Time `json:"createdAt,omitempty"`
	Id        *string    `json:"id,omitempty"`
	Links     *struct {
		// URI of resource.
		Self *Link `json:"self,omitempty"`

		// URI of resource.
		User *Link `json:"user,omitempty"`
	} `json:"links,omitempty"`

	// Name of the org token is scoped to.
	Org *string `json:"org,omitempty"`

	// ID of org that authorization is scoped to.
	OrgID *string `json:"orgID,omitempty"`

	// List of permissions for an auth.  An auth must have at least one Permission.
	Permissions *[]Permission `json:"permissions,omitempty"`

	// Passed via the Authorization Header and Token Authentication type.
	Token     *string    `json:"token,omitempty"`
	UpdatedAt *time.Time `json:"updatedAt,omitempty"`

	// Name of user that created and owns the token.
	User *string `json:"user,omitempty"`

	// ID of user that created and owns the token.
	UserID *string `json:"userID,omitempty"`
}

// AuthorizationPostRequest defines model for AuthorizationPostRequest.
type AuthorizationPostRequest struct {
	// Embedded struct due to allOf(#/components/schemas/AuthorizationUpdateRequest)
	AuthorizationUpdateRequest `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	// ID of org that authorization is scoped to.
	OrgID *string `json:"orgID,omitempty"`

	// List of permissions for an auth.  An auth must have at least one Permission.
	Permissions *[]Permission `json:"permissions,omitempty"`

	// ID of user that authorization is scoped to.
	UserID *string `json:"userID,omitempty"`
}

// AuthorizationUpdateRequest defines model for AuthorizationUpdateRequest.
type AuthorizationUpdateRequest struct {
	// A description of the token.
	Description *string `json:"description,omitempty"`

	// If inactive the token is inactive and requests using the token will be rejected.
	Status *AuthorizationUpdateRequestStatus `json:"status,omitempty"`
}

// If inactive the token is inactive and requests using the token will be rejected.
type AuthorizationUpdateRequestStatus string

// Authorizations defines model for Authorizations.
type Authorizations struct {
	Authorizations *[]Authorization `json:"authorizations,omitempty"`
	Links          *Links           `json:"links,omitempty"`
}

// The viewport for a View's visualizations
type Axes struct {
	// The description of a particular axis for a visualization.
	X Axis `json:"x"`

	// The description of a particular axis for a visualization.
	Y Axis `json:"y"`
}

// The description of a particular axis for a visualization.
type Axis struct {
	// Base represents the radix for formatting axis values.
	Base *AxisBase `json:"base,omitempty"`

	// The extents of an axis in the form [lower, upper]. Clients determine whether bounds are to be inclusive or exclusive of their limits
	Bounds *[]string `json:"bounds,omitempty"`

	// Label is a description of this Axis
	Label *string `json:"label,omitempty"`

	// Prefix represents a label prefix for formatting axis values.
	Prefix *string `json:"prefix,omitempty"`

	// Scale is the axis formatting scale. Supported: "log", "linear"
	Scale *AxisScale `json:"scale,omitempty"`

	// Suffix represents a label suffix for formatting axis values.
	Suffix *string `json:"suffix,omitempty"`
}

// Base represents the radix for formatting axis values.
type AxisBase string

// Scale is the axis formatting scale. Supported: "log", "linear"
type AxisScale string

// A placeholder for statements for which no correct statement nodes can be created
type BadStatement struct {
	// Raw source text
	Text *string `json:"text,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// BandViewProperties defines model for BandViewProperties.
type BandViewProperties struct {
	// The viewport for a View's visualizations
	Axes Axes `json:"axes"`

	// Colors define color encoding of data into a visualization
	Colors                     []DashboardColor                  `json:"colors"`
	GenerateXAxisTicks         *[]string                         `json:"generateXAxisTicks,omitempty"`
	GenerateYAxisTicks         *[]string                         `json:"generateYAxisTicks,omitempty"`
	Geom                       XYGeom                            `json:"geom"`
	HoverDimension             *BandViewPropertiesHoverDimension `json:"hoverDimension,omitempty"`
	LegendColorizeRows         *bool                             `json:"legendColorizeRows,omitempty"`
	LegendHide                 *bool                             `json:"legendHide,omitempty"`
	LegendOpacity              *float32                          `json:"legendOpacity,omitempty"`
	LegendOrientationThreshold *int                              `json:"legendOrientationThreshold,omitempty"`
	LowerColumn                *string                           `json:"lowerColumn,omitempty"`
	MainColumn                 *string                           `json:"mainColumn,omitempty"`
	Note                       string                            `json:"note"`
	Queries                    []DashboardQuery                  `json:"queries"`
	Shape                      BandViewPropertiesShape           `json:"shape"`

	// If true, will display note when empty
	ShowNoteWhenEmpty bool `json:"showNoteWhenEmpty"`

	// StaticLegend represents the options specific to the static legend
	StaticLegend *StaticLegend          `json:"staticLegend,omitempty"`
	TimeFormat   *string                `json:"timeFormat,omitempty"`
	Type         BandViewPropertiesType `json:"type"`
	UpperColumn  *string                `json:"upperColumn,omitempty"`
	XColumn      *string                `json:"xColumn,omitempty"`
	XTickStart   *float32               `json:"xTickStart,omitempty"`
	XTickStep    *float32               `json:"xTickStep,omitempty"`
	XTotalTicks  *int                   `json:"xTotalTicks,omitempty"`
	YColumn      *string                `json:"yColumn,omitempty"`
	YTickStart   *float32               `json:"yTickStart,omitempty"`
	YTickStep    *float32               `json:"yTickStep,omitempty"`
	YTotalTicks  *int                   `json:"yTotalTicks,omitempty"`
}

// BandViewPropertiesHoverDimension defines model for BandViewProperties.HoverDimension.
type BandViewPropertiesHoverDimension string

// BandViewPropertiesShape defines model for BandViewProperties.Shape.
type BandViewPropertiesShape string

// BandViewPropertiesType defines model for BandViewProperties.Type.
type BandViewPropertiesType string

// uses binary operators to act on two operands in an expression
type BinaryExpression struct {
	Left     *Expression `json:"left,omitempty"`
	Operator *string     `json:"operator,omitempty"`
	Right    *Expression `json:"right,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// A set of statements
type Block struct {
	// Block body
	Body *[]Statement `json:"body,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// Represents boolean values
type BooleanLiteral struct {
	// Type of AST node
	Type  *NodeType `json:"type,omitempty"`
	Value *bool     `json:"value,omitempty"`
}

// Bucket defines model for Bucket.
type Bucket struct {
	CreatedAt   *time.Time `json:"createdAt,omitempty"`
	Description *string    `json:"description,omitempty"`
	Id          *string    `json:"id,omitempty"`
	Labels      *Labels    `json:"labels,omitempty"`
	Links       *struct {
		// URI of resource.
		Labels *Link `json:"labels,omitempty"`

		// URI of resource.
		Members *Link `json:"members,omitempty"`

		// URI of resource.
		Org *Link `json:"org,omitempty"`

		// URI of resource.
		Owners *Link `json:"owners,omitempty"`

		// URI of resource.
		Self *Link `json:"self,omitempty"`

		// URI of resource.
		Write *Link `json:"write,omitempty"`
	} `json:"links,omitempty"`
	Name  string  `json:"name"`
	OrgID *string `json:"orgID,omitempty"`

	// Rules to expire or retain data.  No rules means data never expires.
	RetentionRules RetentionRules `json:"retentionRules"`
	Rp             *string        `json:"rp,omitempty"`
	SchemaType     *SchemaType    `json:"schemaType,omitempty"`
	Type           *BucketType    `json:"type,omitempty"`
	UpdatedAt      *time.Time     `json:"updatedAt,omitempty"`
}

// BucketType defines model for Bucket.Type.
type BucketType string

// BucketMetadataManifest defines model for BucketMetadataManifest.
type BucketMetadataManifest struct {
	BucketID               string                   `json:"bucketID"`
	BucketName             string                   `json:"bucketName"`
	DefaultRetentionPolicy string                   `json:"defaultRetentionPolicy"`
	Description            *string                  `json:"description,omitempty"`
	OrganizationID         string                   `json:"organizationID"`
	OrganizationName       string                   `json:"organizationName"`
	RetentionPolicies      RetentionPolicyManifests `json:"retentionPolicies"`
}

// BucketMetadataManifests defines model for BucketMetadataManifests.
type BucketMetadataManifests []BucketMetadataManifest

// BucketShardMapping defines model for BucketShardMapping.
type BucketShardMapping struct {
	NewId int64 `json:"newId"`
	OldId int64 `json:"oldId"`
}

// BucketShardMappings defines model for BucketShardMappings.
type BucketShardMappings []BucketShardMapping

// Buckets defines model for Buckets.
type Buckets struct {
	Buckets *[]Bucket `json:"buckets,omitempty"`
	Links   *Links    `json:"links,omitempty"`
}

// BuilderAggregateFunctionType defines model for BuilderAggregateFunctionType.
type BuilderAggregateFunctionType string

// BuilderConfig defines model for BuilderConfig.
type BuilderConfig struct {
	AggregateWindow *struct {
		FillValues *bool   `json:"fillValues,omitempty"`
		Period     *string `json:"period,omitempty"`
	} `json:"aggregateWindow,omitempty"`
	Buckets   *[]string               `json:"buckets,omitempty"`
	Functions *[]BuilderFunctionsType `json:"functions,omitempty"`
	Tags      *[]BuilderTagsType      `json:"tags,omitempty"`
}

// BuilderFunctionsType defines model for BuilderFunctionsType.
type BuilderFunctionsType struct {
	Name *string `json:"name,omitempty"`
}

// BuilderTagsType defines model for BuilderTagsType.
type BuilderTagsType struct {
	AggregateFunctionType *BuilderAggregateFunctionType `json:"aggregateFunctionType,omitempty"`
	Key                   *string                       `json:"key,omitempty"`
	Values                *[]string                     `json:"values,omitempty"`
}

// Declares a builtin identifier and its type
type BuiltinStatement struct {
	// A valid Flux identifier
	Id *Identifier `json:"id,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// Represents a function call
type CallExpression struct {
	// Function arguments
	Arguments *[]Expression `json:"arguments,omitempty"`
	Callee    *Expression   `json:"callee,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// Cell defines model for Cell.
type Cell struct {
	H     *int32  `json:"h,omitempty"`
	Id    *string `json:"id,omitempty"`
	Links *struct {
		Self *string `json:"self,omitempty"`
		View *string `json:"view,omitempty"`
	} `json:"links,omitempty"`

	// The reference to a view from the views API.
	ViewID *string `json:"viewID,omitempty"`
	W      *int32  `json:"w,omitempty"`
	X      *int32  `json:"x,omitempty"`
	Y      *int32  `json:"y,omitempty"`
}

// CellUpdate defines model for CellUpdate.
type CellUpdate struct {
	H *int32 `json:"h,omitempty"`
	W *int32 `json:"w,omitempty"`
	X *int32 `json:"x,omitempty"`
	Y *int32 `json:"y,omitempty"`
}

// CellWithViewProperties defines model for CellWithViewProperties.
type CellWithViewProperties struct {
	// Embedded struct due to allOf(#/components/schemas/Cell)
	Cell `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	Name       *string         `json:"name,omitempty"`
	Properties *ViewProperties `json:"properties,omitempty"`
}

// Cells defines model for Cells.
type Cells []Cell

// CellsWithViewProperties defines model for CellsWithViewProperties.
type CellsWithViewProperties []CellWithViewProperties

// Check defines model for Check.
type Check struct {
	// Embedded struct due to allOf(#/components/schemas/CheckDiscriminator)
	CheckDiscriminator `yaml:",inline"`
}

// CheckBase defines model for CheckBase.
type CheckBase struct {
	CreatedAt *time.Time `json:"createdAt,omitempty"`

	// An optional description of the check.
	Description   *string                 `json:"description,omitempty"`
	Id            *string                 `json:"id,omitempty"`
	Labels        *Labels                 `json:"labels,omitempty"`
	LastRunError  *string                 `json:"lastRunError,omitempty"`
	LastRunStatus *CheckBaseLastRunStatus `json:"lastRunStatus,omitempty"`

	// Timestamp of latest scheduled, completed run, RFC3339.
	LatestCompleted *time.Time `json:"latestCompleted,omitempty"`
	Links           *struct {
		// URI of resource.
		Labels *Link `json:"labels,omitempty"`

		// URI of resource.
		Members *Link `json:"members,omitempty"`

		// URI of resource.
		Owners *Link `json:"owners,omitempty"`

		// URI of resource.
		Query *Link `json:"query,omitempty"`

		// URI of resource.
		Self *Link `json:"self,omitempty"`
	} `json:"links,omitempty"`
	Name string `json:"name"`

	// The ID of the organization that owns this check.
	OrgID string `json:"orgID"`

	// The ID of creator used to create this check.
	OwnerID *string         `json:"ownerID,omitempty"`
	Query   DashboardQuery  `json:"query"`
	Status  *TaskStatusType `json:"status,omitempty"`

	// The ID of the task associated with this check.
	TaskID    *string    `json:"taskID,omitempty"`
	UpdatedAt *time.Time `json:"updatedAt,omitempty"`
}

// CheckBaseLastRunStatus defines model for CheckBase.LastRunStatus.
type CheckBaseLastRunStatus string

// CheckDiscriminator defines model for CheckDiscriminator.
type CheckDiscriminator interface{}

// CheckPatch defines model for CheckPatch.
type CheckPatch struct {
	Description *string           `json:"description,omitempty"`
	Name        *string           `json:"name,omitempty"`
	Status      *CheckPatchStatus `json:"status,omitempty"`
}

// CheckPatchStatus defines model for CheckPatch.Status.
type CheckPatchStatus string

// The state to record if check matches a criteria.
type CheckStatusLevel string

// CheckViewProperties defines model for CheckViewProperties.
type CheckViewProperties struct {
	Check   *Check `json:"check,omitempty"`
	CheckID string `json:"checkID"`

	// Colors define color encoding of data into a visualization
	Colors                     []DashboardColor         `json:"colors"`
	LegendColorizeRows         *bool                    `json:"legendColorizeRows,omitempty"`
	LegendHide                 *bool                    `json:"legendHide,omitempty"`
	LegendOpacity              *float32                 `json:"legendOpacity,omitempty"`
	LegendOrientationThreshold *int                     `json:"legendOrientationThreshold,omitempty"`
	Queries                    []DashboardQuery         `json:"queries"`
	Shape                      CheckViewPropertiesShape `json:"shape"`
	Type                       CheckViewPropertiesType  `json:"type"`
}

// CheckViewPropertiesShape defines model for CheckViewProperties.Shape.
type CheckViewPropertiesShape string

// CheckViewPropertiesType defines model for CheckViewProperties.Type.
type CheckViewPropertiesType string

// Checks defines model for Checks.
type Checks struct {
	Checks *[]Check `json:"checks,omitempty"`
	Links  *Links   `json:"links,omitempty"`
}

// Selects one of two expressions, `Alternate` or `Consequent`, depending on a third boolean expression, `Test`
type ConditionalExpression struct {
	Alternate  *Expression `json:"alternate,omitempty"`
	Consequent *Expression `json:"consequent,omitempty"`
	Test       *Expression `json:"test,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// ConstantVariableProperties defines model for ConstantVariableProperties.
type ConstantVariableProperties struct {
	Type   *ConstantVariablePropertiesType `json:"type,omitempty"`
	Values *[]string                       `json:"values,omitempty"`
}

// ConstantVariablePropertiesType defines model for ConstantVariableProperties.Type.
type ConstantVariablePropertiesType string

// CreateCell defines model for CreateCell.
type CreateCell struct {
	H    *int32  `json:"h,omitempty"`
	Name *string `json:"name,omitempty"`

	// Makes a copy of the provided view.
	UsingView *string `json:"usingView,omitempty"`
	W         *int32  `json:"w,omitempty"`
	X         *int32  `json:"x,omitempty"`
	Y         *int32  `json:"y,omitempty"`
}

// CreateDashboardRequest defines model for CreateDashboardRequest.
type CreateDashboardRequest struct {
	// The user-facing description of the dashboard.
	Description *string `json:"description,omitempty"`

	// The user-facing name of the dashboard.
	Name string `json:"name"`

	// The ID of the organization that owns the dashboard.
	OrgID string `json:"orgID"`
}

// CustomCheck defines model for CustomCheck.
type CustomCheck struct {
	// Embedded struct due to allOf(#/components/schemas/CheckBase)
	CheckBase `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	Type CustomCheckType `json:"type"`
}

// CustomCheckType defines model for CustomCheck.Type.
type CustomCheckType string

// DBRP defines model for DBRP.
type DBRP struct {
	// the bucket ID used as target for the translation.
	BucketID string `json:"bucketID"`

	// InfluxDB v1 database
	Database string `json:"database"`

	// Specify if this mapping represents the default retention policy for the database specificed.
	Default bool `json:"default"`

	// the mapping identifier
	Id    string `json:"id"`
	Links *Links `json:"links,omitempty"`

	// the organization ID that owns this mapping.
	OrgID string `json:"orgID"`

	// InfluxDB v1 retention policy
	RetentionPolicy string `json:"retention_policy"`
}

// DBRPCreate defines model for DBRPCreate.
type DBRPCreate struct {
	// the bucket ID used as target for the translation.
	BucketID string `json:"bucketID"`

	// InfluxDB v1 database
	Database string `json:"database"`

	// Specify if this mapping represents the default retention policy for the database specificed.
	Default *bool `json:"default,omitempty"`

	// the organization that owns this mapping.
	Org *string `json:"org,omitempty"`

	// the organization ID that owns this mapping.
	OrgID *string `json:"orgID,omitempty"`

	// InfluxDB v1 retention policy
	RetentionPolicy string `json:"retention_policy"`
}

// DBRPGet defines model for DBRPGet.
type DBRPGet struct {
	Content *DBRP `json:"content,omitempty"`
}

// DBRPUpdate defines model for DBRPUpdate.
type DBRPUpdate struct {
	Default *bool `json:"default,omitempty"`

	// InfluxDB v1 retention policy
	RetentionPolicy *string `json:"retention_policy,omitempty"`
}

// DBRPs defines model for DBRPs.
type DBRPs struct {
	Content *[]DBRP `json:"content,omitempty"`
}

// Dashboard defines model for Dashboard.
type Dashboard struct {
	// Embedded struct due to allOf(#/components/schemas/CreateDashboardRequest)
	CreateDashboardRequest `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	Cells  *Cells  `json:"cells,omitempty"`
	Id     *string `json:"id,omitempty"`
	Labels *Labels `json:"labels,omitempty"`
	Links  *struct {
		// URI of resource.
		Cells *Link `json:"cells,omitempty"`

		// URI of resource.
		Labels *Link `json:"labels,omitempty"`

		// URI of resource.
		Members *Link `json:"members,omitempty"`

		// URI of resource.
		Org *Link `json:"org,omitempty"`

		// URI of resource.
		Owners *Link `json:"owners,omitempty"`

		// URI of resource.
		Self *Link `json:"self,omitempty"`
	} `json:"links,omitempty"`
	Meta *struct {
		CreatedAt *time.Time `json:"createdAt,omitempty"`
		UpdatedAt *time.Time `json:"updatedAt,omitempty"`
	} `json:"meta,omitempty"`
}

// Defines an encoding of data value into color space.
type DashboardColor struct {
	// The hex number of the color
	Hex string `json:"hex"`

	// The unique ID of the view color.
	Id string `json:"id"`

	// The user-facing name of the hex color.
	Name string `json:"name"`

	// Type is how the color is used.
	Type DashboardColorType `json:"type"`

	// The data value mapped to this color.
	Value float32 `json:"value"`
}

// Type is how the color is used.
type DashboardColorType string

// DashboardQuery defines model for DashboardQuery.
type DashboardQuery struct {
	BuilderConfig *BuilderConfig `json:"builderConfig,omitempty"`
	EditMode      *QueryEditMode `json:"editMode,omitempty"`
	Name          *string        `json:"name,omitempty"`

	// The text of the Flux query.
	Text *string `json:"text,omitempty"`
}

// DashboardWithViewProperties defines model for DashboardWithViewProperties.
type DashboardWithViewProperties struct {
	// Embedded struct due to allOf(#/components/schemas/CreateDashboardRequest)
	CreateDashboardRequest `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	Cells  *CellsWithViewProperties `json:"cells,omitempty"`
	Id     *string                  `json:"id,omitempty"`
	Labels *Labels                  `json:"labels,omitempty"`
	Links  *struct {
		// URI of resource.
		Cells *Link `json:"cells,omitempty"`

		// URI of resource.
		Labels *Link `json:"labels,omitempty"`

		// URI of resource.
		Members *Link `json:"members,omitempty"`

		// URI of resource.
		Org *Link `json:"org,omitempty"`

		// URI of resource.
		Owners *Link `json:"owners,omitempty"`

		// URI of resource.
		Self *Link `json:"self,omitempty"`
	} `json:"links,omitempty"`
	Meta *struct {
		CreatedAt *time.Time `json:"createdAt,omitempty"`
		UpdatedAt *time.Time `json:"updatedAt,omitempty"`
	} `json:"meta,omitempty"`
}

// Dashboards defines model for Dashboards.
type Dashboards struct {
	Dashboards *[]Dashboard `json:"dashboards,omitempty"`
	Links      *Links       `json:"links,omitempty"`
}

// Represents an instant in time with nanosecond precision using the syntax of golang's RFC3339 Nanosecond variant
type DateTimeLiteral struct {
	// Type of AST node
	Type  *NodeType  `json:"type,omitempty"`
	Value *time.Time `json:"value,omitempty"`
}

// DeadmanCheck defines model for DeadmanCheck.
type DeadmanCheck struct {
	// Embedded struct due to allOf(#/components/schemas/CheckBase)
	CheckBase `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	// Check repetition interval.
	Every *string `json:"every,omitempty"`

	// The state to record if check matches a criteria.
	Level *CheckStatusLevel `json:"level,omitempty"`

	// Duration to delay after the schedule, before executing check.
	Offset *string `json:"offset,omitempty"`

	// If only zero values reported since time, trigger an alert
	ReportZero *bool `json:"reportZero,omitempty"`

	// String duration for time that a series is considered stale and should not trigger deadman.
	StaleTime *string `json:"staleTime,omitempty"`

	// The template used to generate and write a status message.
	StatusMessageTemplate *string `json:"statusMessageTemplate,omitempty"`

	// List of tags to write to each status.
	Tags *[]struct {
		Key   *string `json:"key,omitempty"`
		Value *string `json:"value,omitempty"`
	} `json:"tags,omitempty"`

	// String duration before deadman triggers.
	TimeSince *string          `json:"timeSince,omitempty"`
	Type      DeadmanCheckType `json:"type"`
}

// DeadmanCheckType defines model for DeadmanCheck.Type.
type DeadmanCheckType string

// Indicates whether decimal places should be enforced, and how many digits it should show.
type DecimalPlaces struct {
	// The number of digits after decimal to display
	Digits *int32 `json:"digits,omitempty"`

	// Indicates whether decimal point setting should be enforced
	IsEnforced *bool `json:"isEnforced,omitempty"`
}

// The delete predicate request.
type DeletePredicateRequest struct {
	// InfluxQL-like delete statement
	Predicate *string `json:"predicate,omitempty"`

	// RFC3339Nano
	Start time.Time `json:"start"`

	// RFC3339Nano
	Stop time.Time `json:"stop"`
}

// Dialect are options to change the default CSV output format; https://www.w3.org/TR/2015/REC-tabular-metadata-20151217/#dialect-descriptions
type Dialect struct {
	// https://www.w3.org/TR/2015/REC-tabular-data-model-20151217/#columns
	Annotations *[]DialectAnnotations `json:"annotations,omitempty"`

	// Character prefixed to comment strings
	CommentPrefix *string `json:"commentPrefix,omitempty"`

	// Format of timestamps
	DateTimeFormat *DialectDateTimeFormat `json:"dateTimeFormat,omitempty"`

	// Separator between cells; the default is ,
	Delimiter *string `json:"delimiter,omitempty"`

	// If true, the results will contain a header row
	Header *bool `json:"header,omitempty"`
}

// DialectAnnotations defines model for Dialect.Annotations.
type DialectAnnotations string

// Format of timestamps
type DialectDateTimeFormat string

// Used to create and directly specify the elements of a dictionary
type DictExpression struct {
	// Elements of the dictionary
	Elements *[]DictItem `json:"elements,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// A key/value pair in a dictionary
type DictItem struct {
	Key *Expression `json:"key,omitempty"`

	// Type of AST node
	Type *NodeType   `json:"type,omitempty"`
	Val  *Expression `json:"val,omitempty"`
}

// A pair consisting of length of time and the unit of time measured. It is the atomic unit from which all duration literals are composed.
type Duration struct {
	Magnitude *int `json:"magnitude,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
	Unit *string   `json:"unit,omitempty"`
}

// Represents the elapsed time between two instants as an int64 nanosecond count with syntax of golang's time.Duration
type DurationLiteral struct {
	// Type of AST node
	Type *NodeType `json:"type,omitempty"`

	// Duration values
	Values *[]Duration `json:"values,omitempty"`
}

// Error defines model for Error.
type Error struct {
	// code is the machine-readable error code.
	Code ErrorCode `json:"code"`

	// err is a stack of errors that occurred during processing of the request. Useful for debugging.
	Err *string `json:"err,omitempty"`

	// message is a human-readable message.
	Message string `json:"message"`

	// op describes the logical code operation during error. Useful for debugging.
	Op *string `json:"op,omitempty"`
}

// code is the machine-readable error code.
type ErrorCode string

// Expression defines model for Expression.
type Expression interface{}

// May consist of an expression that does not return a value and is executed solely for its side-effects
type ExpressionStatement struct {
	Expression *Expression `json:"expression,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// Field defines model for Field.
type Field struct {
	// Alias overrides the field name in the returned response.  Applies only if type is `func`
	Alias *string `json:"alias,omitempty"`

	// Args are the arguments to the function
	Args *[]Field `json:"args,omitempty"`

	// `type` describes the field type. `func` is a function. `field` is a field reference.
	Type *FieldType `json:"type,omitempty"`

	// value is the value of the field.  Meaning of the value is implied by the `type` key
	Value *string `json:"value,omitempty"`
}

// `type` describes the field type. `func` is a function. `field` is a field reference.
type FieldType string

// Represents a source from a single file
type File struct {
	// List of Flux statements
	Body *[]Statement `json:"body,omitempty"`

	// A list of package imports
	Imports *[]ImportDeclaration `json:"imports,omitempty"`

	// The name of the file.
	Name *string `json:"name,omitempty"`

	// Defines a package identifier
	Package *PackageClause `json:"package,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// Flags defines model for Flags.
type Flags struct {
	AdditionalProperties map[string]interface{} `json:"-"`
}

// Represents floating point numbers according to the double representations defined by the IEEE-754-1985
type FloatLiteral struct {
	// Type of AST node
	Type  *NodeType `json:"type,omitempty"`
	Value *float32  `json:"value,omitempty"`
}

// Rendered flux that backs the check or notification.
type FluxResponse struct {
	Flux *string `json:"flux,omitempty"`
}

// FluxSuggestion defines model for FluxSuggestion.
type FluxSuggestion struct {
	Name   *string                `json:"name,omitempty"`
	Params *FluxSuggestion_Params `json:"params,omitempty"`
}

// FluxSuggestion_Params defines model for FluxSuggestion.Params.
type FluxSuggestion_Params struct {
	AdditionalProperties map[string]string `json:"-"`
}

// FluxSuggestions defines model for FluxSuggestions.
type FluxSuggestions struct {
	Funcs *[]FluxSuggestion `json:"funcs,omitempty"`
}

// Function expression
type FunctionExpression struct {
	Body *Node `json:"body,omitempty"`

	// Function parameters
	Params *[]Property `json:"params,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// GaugeViewProperties defines model for GaugeViewProperties.
type GaugeViewProperties struct {
	// Colors define color encoding of data into a visualization
	Colors []DashboardColor `json:"colors"`

	// Indicates whether decimal places should be enforced, and how many digits it should show.
	DecimalPlaces DecimalPlaces            `json:"decimalPlaces"`
	Note          string                   `json:"note"`
	Prefix        string                   `json:"prefix"`
	Queries       []DashboardQuery         `json:"queries"`
	Shape         GaugeViewPropertiesShape `json:"shape"`

	// If true, will display note when empty
	ShowNoteWhenEmpty bool                    `json:"showNoteWhenEmpty"`
	Suffix            string                  `json:"suffix"`
	TickPrefix        string                  `json:"tickPrefix"`
	TickSuffix        string                  `json:"tickSuffix"`
	Type              GaugeViewPropertiesType `json:"type"`
}

// GaugeViewPropertiesShape defines model for GaugeViewProperties.Shape.
type GaugeViewPropertiesShape string

// GaugeViewPropertiesType defines model for GaugeViewProperties.Type.
type GaugeViewPropertiesType string

// GeoCircleViewLayer defines model for GeoCircleViewLayer.
type GeoCircleViewLayer struct {
	// Embedded struct due to allOf(#/components/schemas/GeoViewLayerProperties)
	GeoViewLayerProperties `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	// The description of a particular axis for a visualization.
	ColorDimension Axis `json:"colorDimension"`

	// Circle color field
	ColorField string `json:"colorField"`

	// Colors define color encoding of data into a visualization
	Colors []DashboardColor `json:"colors"`

	// Interpolate circle color based on displayed value
	InterpolateColors *bool `json:"interpolateColors,omitempty"`

	// Maximum radius size in pixels
	Radius *int `json:"radius,omitempty"`

	// The description of a particular axis for a visualization.
	RadiusDimension Axis `json:"radiusDimension"`

	// Radius field
	RadiusField string `json:"radiusField"`
}

// GeoHeatMapViewLayer defines model for GeoHeatMapViewLayer.
type GeoHeatMapViewLayer struct {
	// Embedded struct due to allOf(#/components/schemas/GeoViewLayerProperties)
	GeoViewLayerProperties `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	// Blur for heatmap points
	Blur int `json:"blur"`

	// Colors define color encoding of data into a visualization
	Colors []DashboardColor `json:"colors"`

	// The description of a particular axis for a visualization.
	IntensityDimension Axis `json:"intensityDimension"`

	// Intensity field
	IntensityField string `json:"intensityField"`

	// Radius size in pixels
	Radius int `json:"radius"`
}

// GeoPointMapViewLayer defines model for GeoPointMapViewLayer.
type GeoPointMapViewLayer struct {
	// Embedded struct due to allOf(#/components/schemas/GeoViewLayerProperties)
	GeoViewLayerProperties `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	// The description of a particular axis for a visualization.
	ColorDimension Axis `json:"colorDimension"`

	// Marker color field
	ColorField string `json:"colorField"`

	// Colors define color encoding of data into a visualization
	Colors []DashboardColor `json:"colors"`

	// Cluster close markers together
	IsClustered *bool `json:"isClustered,omitempty"`

	// An array for which columns to display in tooltip
	TooltipColumns *[]string `json:"tooltipColumns,omitempty"`
}

// GeoTrackMapViewLayer defines model for GeoTrackMapViewLayer.
type GeoTrackMapViewLayer struct {
	// Embedded struct due to allOf(#/components/schemas/GeoViewLayerProperties)
	GeoViewLayerProperties `yaml:",inline"`
	// Embedded fields due to inline allOf schema
}

// GeoViewLayer defines model for GeoViewLayer.
type GeoViewLayer interface{}

// GeoViewLayerProperties defines model for GeoViewLayerProperties.
type GeoViewLayerProperties struct {
	Type GeoViewLayerPropertiesType `json:"type"`
}

// GeoViewLayerPropertiesType defines model for GeoViewLayerProperties.Type.
type GeoViewLayerPropertiesType string

// GeoViewProperties defines model for GeoViewProperties.
type GeoViewProperties struct {
	// If true, map zoom and pan controls are enabled on the dashboard view
	AllowPanAndZoom bool `json:"allowPanAndZoom"`

	// Coordinates of the center of the map
	Center struct {
		// Latitude of the center of the map
		Lat float64 `json:"lat"`

		// Longitude of the center of the map
		Lon float64 `json:"lon"`
	} `json:"center"`

	// Colors define color encoding of data into a visualization
	Colors *[]DashboardColor `json:"colors,omitempty"`

	// If true, search results get automatically regroupped so that lon,lat and value are treated as columns
	DetectCoordinateFields bool `json:"detectCoordinateFields"`

	// Object type to define lat/lon columns
	LatLonColumns *LatLonColumns `json:"latLonColumns,omitempty"`

	// List of individual layers shown in the map
	Layers []GeoViewLayer `json:"layers"`

	// Define map type - regular, satellite etc.
	MapStyle *string          `json:"mapStyle,omitempty"`
	Note     string           `json:"note"`
	Queries  []DashboardQuery `json:"queries"`

	// String to define the column
	S2Column *string                `json:"s2Column,omitempty"`
	Shape    GeoViewPropertiesShape `json:"shape"`

	// If true, will display note when empty
	ShowNoteWhenEmpty bool                  `json:"showNoteWhenEmpty"`
	Type              GeoViewPropertiesType `json:"type"`

	// If true, S2 column is used to calculate lat/lon
	UseS2CellID *bool `json:"useS2CellID,omitempty"`

	// Zoom level used for initial display of the map
	Zoom float64 `json:"zoom"`
}

// GeoViewPropertiesShape defines model for GeoViewProperties.Shape.
type GeoViewPropertiesShape string

// GeoViewPropertiesType defines model for GeoViewProperties.Type.
type GeoViewPropertiesType string

// GreaterThreshold defines model for GreaterThreshold.
type GreaterThreshold struct {
	// Embedded struct due to allOf(#/components/schemas/ThresholdBase)
	ThresholdBase `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	Type  GreaterThresholdType `json:"type"`
	Value float32              `json:"value"`
}

// GreaterThresholdType defines model for GreaterThreshold.Type.
type GreaterThresholdType string

// HTTPNotificationEndpoint defines model for HTTPNotificationEndpoint.
type HTTPNotificationEndpoint struct {
	// Embedded struct due to allOf(#/components/schemas/NotificationEndpointBase)
	NotificationEndpointBase `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	AuthMethod      HTTPNotificationEndpointAuthMethod `json:"authMethod"`
	ContentTemplate *string                            `json:"contentTemplate,omitempty"`

	// Customized headers.
	Headers  *HTTPNotificationEndpoint_Headers `json:"headers,omitempty"`
	Method   HTTPNotificationEndpointMethod    `json:"method"`
	Password *string                           `json:"password,omitempty"`
	Token    *string                           `json:"token,omitempty"`
	Url      string                            `json:"url"`
	Username *string                           `json:"username,omitempty"`
}

// HTTPNotificationEndpointAuthMethod defines model for HTTPNotificationEndpoint.AuthMethod.
type HTTPNotificationEndpointAuthMethod string

// Customized headers.
type HTTPNotificationEndpoint_Headers struct {
	AdditionalProperties map[string]string `json:"-"`
}

// HTTPNotificationEndpointMethod defines model for HTTPNotificationEndpoint.Method.
type HTTPNotificationEndpointMethod string

// HTTPNotificationRule defines model for HTTPNotificationRule.
type HTTPNotificationRule struct {
	// Embedded struct due to allOf(#/components/schemas/NotificationRuleBase)
	NotificationRuleBase `yaml:",inline"`
	// Embedded struct due to allOf(#/components/schemas/HTTPNotificationRuleBase)
	HTTPNotificationRuleBase `yaml:",inline"`
}

// HTTPNotificationRuleBase defines model for HTTPNotificationRuleBase.
type HTTPNotificationRuleBase struct {
	Type HTTPNotificationRuleBaseType `json:"type"`
	Url  *string                      `json:"url,omitempty"`
}

// HTTPNotificationRuleBaseType defines model for HTTPNotificationRuleBase.Type.
type HTTPNotificationRuleBaseType string

// HealthCheck defines model for HealthCheck.
type HealthCheck struct {
	Checks  *[]HealthCheck    `json:"checks,omitempty"`
	Commit  *string           `json:"commit,omitempty"`
	Message *string           `json:"message,omitempty"`
	Name    string            `json:"name"`
	Status  HealthCheckStatus `json:"status"`
	Version *string           `json:"version,omitempty"`
}

// HealthCheckStatus defines model for HealthCheck.Status.
type HealthCheckStatus string

// HeatmapViewProperties defines model for HeatmapViewProperties.
type HeatmapViewProperties struct {
	BinSize float32 `json:"binSize"`

	// Colors define color encoding of data into a visualization
	Colors                     []string                   `json:"colors"`
	GenerateXAxisTicks         *[]string                  `json:"generateXAxisTicks,omitempty"`
	GenerateYAxisTicks         *[]string                  `json:"generateYAxisTicks,omitempty"`
	LegendColorizeRows         *bool                      `json:"legendColorizeRows,omitempty"`
	LegendHide                 *bool                      `json:"legendHide,omitempty"`
	LegendOpacity              *float32                   `json:"legendOpacity,omitempty"`
	LegendOrientationThreshold *int                       `json:"legendOrientationThreshold,omitempty"`
	Note                       string                     `json:"note"`
	Queries                    []DashboardQuery           `json:"queries"`
	Shape                      HeatmapViewPropertiesShape `json:"shape"`

	// If true, will display note when empty
	ShowNoteWhenEmpty bool                      `json:"showNoteWhenEmpty"`
	TimeFormat        *string                   `json:"timeFormat,omitempty"`
	Type              HeatmapViewPropertiesType `json:"type"`
	XAxisLabel        string                    `json:"xAxisLabel"`
	XColumn           string                    `json:"xColumn"`
	XDomain           []float32                 `json:"xDomain"`
	XPrefix           string                    `json:"xPrefix"`
	XSuffix           string                    `json:"xSuffix"`
	XTickStart        *float32                  `json:"xTickStart,omitempty"`
	XTickStep         *float32                  `json:"xTickStep,omitempty"`
	XTotalTicks       *int                      `json:"xTotalTicks,omitempty"`
	YAxisLabel        string                    `json:"yAxisLabel"`
	YColumn           string                    `json:"yColumn"`
	YDomain           []float32                 `json:"yDomain"`
	YPrefix           string                    `json:"yPrefix"`
	YSuffix           string                    `json:"ySuffix"`
	YTickStart        *float32                  `json:"yTickStart,omitempty"`
	YTickStep         *float32                  `json:"yTickStep,omitempty"`
	YTotalTicks       *int                      `json:"yTotalTicks,omitempty"`
}

// HeatmapViewPropertiesShape defines model for HeatmapViewProperties.Shape.
type HeatmapViewPropertiesShape string

// HeatmapViewPropertiesType defines model for HeatmapViewProperties.Type.
type HeatmapViewPropertiesType string

// HistogramViewProperties defines model for HistogramViewProperties.
type HistogramViewProperties struct {
	BinCount int `json:"binCount"`

	// Colors define color encoding of data into a visualization
	Colors                     []DashboardColor                `json:"colors"`
	FillColumns                []string                        `json:"fillColumns"`
	LegendColorizeRows         *bool                           `json:"legendColorizeRows,omitempty"`
	LegendHide                 *bool                           `json:"legendHide,omitempty"`
	LegendOpacity              *float32                        `json:"legendOpacity,omitempty"`
	LegendOrientationThreshold *int                            `json:"legendOrientationThreshold,omitempty"`
	Note                       string                          `json:"note"`
	Position                   HistogramViewPropertiesPosition `json:"position"`
	Queries                    []DashboardQuery                `json:"queries"`
	Shape                      HistogramViewPropertiesShape    `json:"shape"`

	// If true, will display note when empty
	ShowNoteWhenEmpty bool                        `json:"showNoteWhenEmpty"`
	Type              HistogramViewPropertiesType `json:"type"`
	XAxisLabel        string                      `json:"xAxisLabel"`
	XColumn           string                      `json:"xColumn"`
	XDomain           []float32                   `json:"xDomain"`
}

// HistogramViewPropertiesPosition defines model for HistogramViewProperties.Position.
type HistogramViewPropertiesPosition string

// HistogramViewPropertiesShape defines model for HistogramViewProperties.Shape.
type HistogramViewPropertiesShape string

// HistogramViewPropertiesType defines model for HistogramViewProperties.Type.
type HistogramViewPropertiesType string

// A valid Flux identifier
type Identifier struct {
	Name *string `json:"name,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// Declares a package import
type ImportDeclaration struct {
	// A valid Flux identifier
	As *Identifier `json:"as,omitempty"`

	// Expressions begin and end with double quote marks
	Path *StringLiteral `json:"path,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// Represents indexing into an array
type IndexExpression struct {
	Array *Expression `json:"array,omitempty"`
	Index *Expression `json:"index,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// Represents integer numbers
type IntegerLiteral struct {
	// Type of AST node
	Type  *NodeType `json:"type,omitempty"`
	Value *string   `json:"value,omitempty"`
}

// IsOnboarding defines model for IsOnboarding.
type IsOnboarding struct {
	// True means that the influxdb instance has NOT had initial setup; false means that the database has been setup.
	Allowed *bool `json:"allowed,omitempty"`
}

// Label defines model for Label.
type Label struct {
	Id    *string `json:"id,omitempty"`
	Name  *string `json:"name,omitempty"`
	OrgID *string `json:"orgID,omitempty"`

	// Key/Value pairs associated with this label. Keys can be removed by sending an update with an empty value.
	Properties *Label_Properties `json:"properties,omitempty"`
}

// Key/Value pairs associated with this label. Keys can be removed by sending an update with an empty value.
type Label_Properties struct {
	AdditionalProperties map[string]string `json:"-"`
}

// LabelCreateRequest defines model for LabelCreateRequest.
type LabelCreateRequest struct {
	Name  string `json:"name"`
	OrgID string `json:"orgID"`

	// Key/Value pairs associated with this label. Keys can be removed by sending an update with an empty value.
	Properties *LabelCreateRequest_Properties `json:"properties,omitempty"`
}

// Key/Value pairs associated with this label. Keys can be removed by sending an update with an empty value.
type LabelCreateRequest_Properties struct {
	AdditionalProperties map[string]string `json:"-"`
}

// LabelMapping defines model for LabelMapping.
type LabelMapping struct {
	LabelID *string `json:"labelID,omitempty"`
}

// LabelResponse defines model for LabelResponse.
type LabelResponse struct {
	Label *Label `json:"label,omitempty"`
	Links *Links `json:"links,omitempty"`
}

// LabelUpdate defines model for LabelUpdate.
type LabelUpdate struct {
	Name *string `json:"name,omitempty"`

	// Key/Value pairs associated with this label. Keys can be removed by sending an update with an empty value.
	Properties *LabelUpdate_Properties `json:"properties,omitempty"`
}

// Key/Value pairs associated with this label. Keys can be removed by sending an update with an empty value.
type LabelUpdate_Properties struct {
	AdditionalProperties map[string]string `json:"-"`
}

// Labels defines model for Labels.
type Labels []Label

// LabelsResponse defines model for LabelsResponse.
type LabelsResponse struct {
	Labels *Labels `json:"labels,omitempty"`
	Links  *Links  `json:"links,omitempty"`
}

// Flux query to be analyzed.
type LanguageRequest struct {
	// Flux query script to be analyzed
	Query string `json:"query"`
}

// Object type for key and column definitions
type LatLonColumn struct {
	// Column to look up Lat/Lon
	Column string `json:"column"`

	// Key to determine whether the column is tag/field
	Key string `json:"key"`
}

// Object type to define lat/lon columns
type LatLonColumns struct {
	// Object type for key and column definitions
	Lat LatLonColumn `json:"lat"`

	// Object type for key and column definitions
	Lon LatLonColumn `json:"lon"`
}

// LegacyAuthorizationPostRequest defines model for LegacyAuthorizationPostRequest.
type LegacyAuthorizationPostRequest struct {
	// Embedded struct due to allOf(#/components/schemas/AuthorizationUpdateRequest)
	AuthorizationUpdateRequest `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	// ID of org that authorization is scoped to.
	OrgID *string `json:"orgID,omitempty"`

	// List of permissions for an auth.  An auth must have at least one Permission.
	Permissions *[]Permission `json:"permissions,omitempty"`

	// Token (name) of the authorization
	Token *string `json:"token,omitempty"`

	// ID of user that authorization is scoped to.
	UserID *string `json:"userID,omitempty"`
}

// LesserThreshold defines model for LesserThreshold.
type LesserThreshold struct {
	// Embedded struct due to allOf(#/components/schemas/ThresholdBase)
	ThresholdBase `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	Type  LesserThresholdType `json:"type"`
	Value float32             `json:"value"`
}

// LesserThresholdType defines model for LesserThreshold.Type.
type LesserThresholdType string

// LinePlusSingleStatProperties defines model for LinePlusSingleStatProperties.
type LinePlusSingleStatProperties struct {
	// The viewport for a View's visualizations
	Axes Axes `json:"axes"`

	// Colors define color encoding of data into a visualization
	Colors []DashboardColor `json:"colors"`

	// Indicates whether decimal places should be enforced, and how many digits it should show.
	DecimalPlaces              DecimalPlaces                               `json:"decimalPlaces"`
	GenerateXAxisTicks         *[]string                                   `json:"generateXAxisTicks,omitempty"`
	GenerateYAxisTicks         *[]string                                   `json:"generateYAxisTicks,omitempty"`
	HoverDimension             *LinePlusSingleStatPropertiesHoverDimension `json:"hoverDimension,omitempty"`
	LegendColorizeRows         *bool                                       `json:"legendColorizeRows,omitempty"`
	LegendHide                 *bool                                       `json:"legendHide,omitempty"`
	LegendOpacity              *float32                                    `json:"legendOpacity,omitempty"`
	LegendOrientationThreshold *int                                        `json:"legendOrientationThreshold,omitempty"`
	Note                       string                                      `json:"note"`
	Position                   LinePlusSingleStatPropertiesPosition        `json:"position"`
	Prefix                     string                                      `json:"prefix"`
	Queries                    []DashboardQuery                            `json:"queries"`
	ShadeBelow                 *bool                                       `json:"shadeBelow,omitempty"`
	Shape                      LinePlusSingleStatPropertiesShape           `json:"shape"`

	// If true, will display note when empty
	ShowNoteWhenEmpty bool `json:"showNoteWhenEmpty"`

	// StaticLegend represents the options specific to the static legend
	StaticLegend *StaticLegend                    `json:"staticLegend,omitempty"`
	Suffix       string                           `json:"suffix"`
	TimeFormat   *string                          `json:"timeFormat,omitempty"`
	Type         LinePlusSingleStatPropertiesType `json:"type"`
	XColumn      *string                          `json:"xColumn,omitempty"`
	XTickStart   *float32                         `json:"xTickStart,omitempty"`
	XTickStep    *float32                         `json:"xTickStep,omitempty"`
	XTotalTicks  *int                             `json:"xTotalTicks,omitempty"`
	YColumn      *string                          `json:"yColumn,omitempty"`
	YTickStart   *float32                         `json:"yTickStart,omitempty"`
	YTickStep    *float32                         `json:"yTickStep,omitempty"`
	YTotalTicks  *int                             `json:"yTotalTicks,omitempty"`
}

// LinePlusSingleStatPropertiesHoverDimension defines model for LinePlusSingleStatProperties.HoverDimension.
type LinePlusSingleStatPropertiesHoverDimension string

// LinePlusSingleStatPropertiesPosition defines model for LinePlusSingleStatProperties.Position.
type LinePlusSingleStatPropertiesPosition string

// LinePlusSingleStatPropertiesShape defines model for LinePlusSingleStatProperties.Shape.
type LinePlusSingleStatPropertiesShape string

// LinePlusSingleStatPropertiesType defines model for LinePlusSingleStatProperties.Type.
type LinePlusSingleStatPropertiesType string

// LineProtocolError defines model for LineProtocolError.
type LineProtocolError struct {
	// Code is the machine-readable error code.
	Code LineProtocolErrorCode `json:"code"`

	// Err is a stack of errors that occurred during processing of the request. Useful for debugging.
	Err string `json:"err"`

	// First line within sent body containing malformed data
	Line *int32 `json:"line,omitempty"`

	// Message is a human-readable message.
	Message string `json:"message"`

	// Op describes the logical code operation during error. Useful for debugging.
	Op string `json:"op"`
}

// Code is the machine-readable error code.
type LineProtocolErrorCode string

// LineProtocolLengthError defines model for LineProtocolLengthError.
type LineProtocolLengthError struct {
	// Code is the machine-readable error code.
	Code LineProtocolLengthErrorCode `json:"code"`

	// Max length in bytes for a body of line-protocol.
	MaxLength int32 `json:"maxLength"`

	// Message is a human-readable message.
	Message string `json:"message"`
}

// Code is the machine-readable error code.
type LineProtocolLengthErrorCode string

// URI of resource.
type Link string

// Links defines model for Links.
type Links struct {
	// URI of resource.
	Next *Link `json:"next,omitempty"`

	// URI of resource.
	Prev *Link `json:"prev,omitempty"`

	// URI of resource.
	Self Link `json:"self"`
}

// LogEvent defines model for LogEvent.
type LogEvent struct {
	// A description of the event that occurred.
	Message *string `json:"message,omitempty"`

	// the ID of the task that logged
	RunID *string `json:"runID,omitempty"`

	// Time event occurred, RFC3339Nano.
	Time *time.Time `json:"time,omitempty"`
}

// Represents the rule conditions that collectively evaluate to either true or false
type LogicalExpression struct {
	Left     *Expression `json:"left,omitempty"`
	Operator *string     `json:"operator,omitempty"`
	Right    *Expression `json:"right,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// Logs defines model for Logs.
type Logs struct {
	Events *[]LogEvent `json:"events,omitempty"`
}

// MapVariableProperties defines model for MapVariableProperties.
type MapVariableProperties struct {
	Type   *MapVariablePropertiesType    `json:"type,omitempty"`
	Values *MapVariableProperties_Values `json:"values,omitempty"`
}

// MapVariablePropertiesType defines model for MapVariableProperties.Type.
type MapVariablePropertiesType string

// MapVariableProperties_Values defines model for MapVariableProperties.Values.
type MapVariableProperties_Values struct {
	AdditionalProperties map[string]string `json:"-"`
}

// MarkdownViewProperties defines model for MarkdownViewProperties.
type MarkdownViewProperties struct {
	Note  string                      `json:"note"`
	Shape MarkdownViewPropertiesShape `json:"shape"`
	Type  MarkdownViewPropertiesType  `json:"type"`
}

// MarkdownViewPropertiesShape defines model for MarkdownViewProperties.Shape.
type MarkdownViewPropertiesShape string

// MarkdownViewPropertiesType defines model for MarkdownViewProperties.Type.
type MarkdownViewPropertiesType string

// Object property assignment
type MemberAssignment struct {
	Init *Expression `json:"init,omitempty"`

	// Represents accessing a property of an object
	Member *MemberExpression `json:"member,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// Represents accessing a property of an object
type MemberExpression struct {
	Object   *Expression  `json:"object,omitempty"`
	Property *PropertyKey `json:"property,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// MetadataBackup defines model for MetadataBackup.
type MetadataBackup struct {
	Buckets BucketMetadataManifests `json:"buckets"`
	Kv      string                  `json:"kv"`
	Sql     string                  `json:"sql"`
}

// MosaicViewProperties defines model for MosaicViewProperties.
type MosaicViewProperties struct {
	// Colors define color encoding of data into a visualization
	Colors                     []string                            `json:"colors"`
	FillColumns                []string                            `json:"fillColumns"`
	GenerateXAxisTicks         *[]string                           `json:"generateXAxisTicks,omitempty"`
	HoverDimension             *MosaicViewPropertiesHoverDimension `json:"hoverDimension,omitempty"`
	LegendColorizeRows         *bool                               `json:"legendColorizeRows,omitempty"`
	LegendHide                 *bool                               `json:"legendHide,omitempty"`
	LegendOpacity              *float32                            `json:"legendOpacity,omitempty"`
	LegendOrientationThreshold *int                                `json:"legendOrientationThreshold,omitempty"`
	Note                       string                              `json:"note"`
	Queries                    []DashboardQuery                    `json:"queries"`
	Shape                      MosaicViewPropertiesShape           `json:"shape"`

	// If true, will display note when empty
	ShowNoteWhenEmpty     bool                     `json:"showNoteWhenEmpty"`
	TimeFormat            *string                  `json:"timeFormat,omitempty"`
	Type                  MosaicViewPropertiesType `json:"type"`
	XAxisLabel            string                   `json:"xAxisLabel"`
	XColumn               string                   `json:"xColumn"`
	XDomain               []float32                `json:"xDomain"`
	XPrefix               string                   `json:"xPrefix"`
	XSuffix               string                   `json:"xSuffix"`
	XTickStart            *float32                 `json:"xTickStart,omitempty"`
	XTickStep             *float32                 `json:"xTickStep,omitempty"`
	XTotalTicks           *int                     `json:"xTotalTicks,omitempty"`
	YAxisLabel            string                   `json:"yAxisLabel"`
	YDomain               []float32                `json:"yDomain"`
	YLabelColumnSeparator *string                  `json:"yLabelColumnSeparator,omitempty"`
	YLabelColumns         *[]string                `json:"yLabelColumns,omitempty"`
	YPrefix               string                   `json:"yPrefix"`
	YSeriesColumns        []string                 `json:"ySeriesColumns"`
	YSuffix               string                   `json:"ySuffix"`
}

// MosaicViewPropertiesHoverDimension defines model for MosaicViewProperties.HoverDimension.
type MosaicViewPropertiesHoverDimension string

// MosaicViewPropertiesShape defines model for MosaicViewProperties.Shape.
type MosaicViewPropertiesShape string

// MosaicViewPropertiesType defines model for MosaicViewProperties.Type.
type MosaicViewPropertiesType string

// Node defines model for Node.
type Node interface{}

// Type of AST node
type NodeType string

// NotificationEndpoint defines model for NotificationEndpoint.
type NotificationEndpoint struct {
	// Embedded struct due to allOf(#/components/schemas/NotificationEndpointDiscriminator)
	NotificationEndpointDiscriminator `yaml:",inline"`
}

// NotificationEndpointBase defines model for NotificationEndpointBase.
type NotificationEndpointBase struct {
	CreatedAt *time.Time `json:"createdAt,omitempty"`

	// An optional description of the notification endpoint.
	Description *string `json:"description,omitempty"`
	Id          *string `json:"id,omitempty"`
	Labels      *Labels `json:"labels,omitempty"`
	Links       *struct {
		// URI of resource.
		Labels *Link `json:"labels,omitempty"`

		// URI of resource.
		Members *Link `json:"members,omitempty"`

		// URI of resource.
		Owners *Link `json:"owners,omitempty"`

		// URI of resource.
		Self *Link `json:"self,omitempty"`
	} `json:"links,omitempty"`
	Name  string  `json:"name"`
	OrgID *string `json:"orgID,omitempty"`

	// The status of the endpoint.
	Status    *NotificationEndpointBaseStatus `json:"status,omitempty"`
	Type      NotificationEndpointType        `json:"type"`
	UpdatedAt *time.Time                      `json:"updatedAt,omitempty"`
	UserID    *string                         `json:"userID,omitempty"`
}

// The status of the endpoint.
type NotificationEndpointBaseStatus string

// NotificationEndpointDiscriminator defines model for NotificationEndpointDiscriminator.
type NotificationEndpointDiscriminator interface{}

// NotificationEndpointType defines model for NotificationEndpointType.
type NotificationEndpointType string

// NotificationEndpointUpdate defines model for NotificationEndpointUpdate.
type NotificationEndpointUpdate struct {
	Description *string                           `json:"description,omitempty"`
	Name        *string                           `json:"name,omitempty"`
	Status      *NotificationEndpointUpdateStatus `json:"status,omitempty"`
}

// NotificationEndpointUpdateStatus defines model for NotificationEndpointUpdate.Status.
type NotificationEndpointUpdateStatus string

// NotificationEndpoints defines model for NotificationEndpoints.
type NotificationEndpoints struct {
	Links                 *Links                  `json:"links,omitempty"`
	NotificationEndpoints *[]NotificationEndpoint `json:"notificationEndpoints,omitempty"`
}

// NotificationRule defines model for NotificationRule.
type NotificationRule struct {
	// Embedded struct due to allOf(#/components/schemas/NotificationRuleDiscriminator)
	NotificationRuleDiscriminator `yaml:",inline"`
}

// NotificationRuleBase defines model for NotificationRuleBase.
type NotificationRuleBase struct {
	CreatedAt *time.Time `json:"createdAt,omitempty"`

	// An optional description of the notification rule.
	Description *string `json:"description,omitempty"`
	EndpointID  string  `json:"endpointID"`

	// The notification repetition interval.
	Every         *string                            `json:"every,omitempty"`
	Id            *string                            `json:"id,omitempty"`
	Labels        *Labels                            `json:"labels,omitempty"`
	LastRunError  *string                            `json:"lastRunError,omitempty"`
	LastRunStatus *NotificationRuleBaseLastRunStatus `json:"lastRunStatus,omitempty"`

	// Timestamp of latest scheduled, completed run, RFC3339.
	LatestCompleted *time.Time `json:"latestCompleted,omitempty"`

	// Don't notify me more than <limit> times every <limitEvery> seconds. If set, limitEvery cannot be empty.
	Limit *int `json:"limit,omitempty"`

	// Don't notify me more than <limit> times every <limitEvery> seconds. If set, limit cannot be empty.
	LimitEvery *int `json:"limitEvery,omitempty"`
	Links      *struct {
		// URI of resource.
		Labels *Link `json:"labels,omitempty"`

		// URI of resource.
		Members *Link `json:"members,omitempty"`

		// URI of resource.
		Owners *Link `json:"owners,omitempty"`

		// URI of resource.
		Query *Link `json:"query,omitempty"`

		// URI of resource.
		Self *Link `json:"self,omitempty"`
	} `json:"links,omitempty"`

	// Human-readable name describing the notification rule.
	Name string `json:"name"`

	// Duration to delay after the schedule, before executing check.
	Offset *string `json:"offset,omitempty"`

	// The ID of the organization that owns this notification rule.
	OrgID string `json:"orgID"`

	// The ID of creator used to create this notification rule.
	OwnerID     *string        `json:"ownerID,omitempty"`
	RunbookLink *string        `json:"runbookLink,omitempty"`
	SleepUntil  *string        `json:"sleepUntil,omitempty"`
	Status      TaskStatusType `json:"status"`

	// List of status rules the notification rule attempts to match.
	StatusRules []StatusRule `json:"statusRules"`

	// List of tag rules the notification rule attempts to match.
	TagRules *[]TagRule `json:"tagRules,omitempty"`

	// The ID of the task associated with this notification rule.
	TaskID    *string    `json:"taskID,omitempty"`
	UpdatedAt *time.Time `json:"updatedAt,omitempty"`
}

// NotificationRuleBaseLastRunStatus defines model for NotificationRuleBase.LastRunStatus.
type NotificationRuleBaseLastRunStatus string

// NotificationRuleDiscriminator defines model for NotificationRuleDiscriminator.
type NotificationRuleDiscriminator interface{}

// NotificationRuleUpdate defines model for NotificationRuleUpdate.
type NotificationRuleUpdate struct {
	Description *string                       `json:"description,omitempty"`
	Name        *string                       `json:"name,omitempty"`
	Status      *NotificationRuleUpdateStatus `json:"status,omitempty"`
}

// NotificationRuleUpdateStatus defines model for NotificationRuleUpdate.Status.
type NotificationRuleUpdateStatus string

// NotificationRules defines model for NotificationRules.
type NotificationRules struct {
	Links             *Links              `json:"links,omitempty"`
	NotificationRules *[]NotificationRule `json:"notificationRules,omitempty"`
}

// Allows the declaration of an anonymous object within a declaration
type ObjectExpression struct {
	// Object properties
	Properties *[]Property `json:"properties,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// OnboardingRequest defines model for OnboardingRequest.
type OnboardingRequest struct {
	Bucket   string  `json:"bucket"`
	Org      string  `json:"org"`
	Password *string `json:"password,omitempty"`

	// Retention period *in nanoseconds* for the new bucket. This key's name has been misleading since OSS 2.0 GA, please transition to use `retentionPeriodSeconds`
	RetentionPeriodHrs     *int   `json:"retentionPeriodHrs,omitempty"`
	RetentionPeriodSeconds *int64 `json:"retentionPeriodSeconds,omitempty"`

	// Authentication token to set on the initial user. If not specified, the server will generate a token.
	Token    *string `json:"token,omitempty"`
	Username string  `json:"username"`
}

// OnboardingResponse defines model for OnboardingResponse.
type OnboardingResponse struct {
	Auth   *Authorization `json:"auth,omitempty"`
	Bucket *Bucket        `json:"bucket,omitempty"`
	Org    *Organization  `json:"org,omitempty"`
	User   *UserResponse  `json:"user,omitempty"`
}

// A single variable declaration
type OptionStatement struct {
	Assignment *interface{} `json:"assignment,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// Organization defines model for Organization.
type Organization struct {
	CreatedAt   *time.Time `json:"createdAt,omitempty"`
	Description *string    `json:"description,omitempty"`
	Id          *string    `json:"id,omitempty"`
	Links       *struct {
		// URI of resource.
		Buckets *Link `json:"buckets,omitempty"`

		// URI of resource.
		Dashboards *Link `json:"dashboards,omitempty"`

		// URI of resource.
		Labels *Link `json:"labels,omitempty"`

		// URI of resource.
		Members *Link `json:"members,omitempty"`

		// URI of resource.
		Owners *Link `json:"owners,omitempty"`

		// URI of resource.
		Secrets *Link `json:"secrets,omitempty"`

		// URI of resource.
		Self *Link `json:"self,omitempty"`

		// URI of resource.
		Tasks *Link `json:"tasks,omitempty"`
	} `json:"links,omitempty"`
	Name string `json:"name"`

	// If inactive the organization is inactive.
	Status    *OrganizationStatus `json:"status,omitempty"`
	UpdatedAt *time.Time          `json:"updatedAt,omitempty"`
}

// If inactive the organization is inactive.
type OrganizationStatus string

// Organizations defines model for Organizations.
type Organizations struct {
	Links *Links          `json:"links,omitempty"`
	Orgs  *[]Organization `json:"orgs,omitempty"`
}

// Represents a complete package source tree.
type Package struct {
	// Package files
	Files *[]File `json:"files,omitempty"`

	// Package name
	Package *string `json:"package,omitempty"`

	// Package import path
	Path *string `json:"path,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// Defines a package identifier
type PackageClause struct {
	// A valid Flux identifier
	Name *Identifier `json:"name,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// PagerDutyNotificationEndpoint defines model for PagerDutyNotificationEndpoint.
type PagerDutyNotificationEndpoint struct {
	// Embedded struct due to allOf(#/components/schemas/NotificationEndpointBase)
	NotificationEndpointBase `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	ClientURL  *string `json:"clientURL,omitempty"`
	RoutingKey string  `json:"routingKey"`
}

// PagerDutyNotificationRule defines model for PagerDutyNotificationRule.
type PagerDutyNotificationRule struct {
	// Embedded struct due to allOf(#/components/schemas/NotificationRuleBase)
	NotificationRuleBase `yaml:",inline"`
	// Embedded struct due to allOf(#/components/schemas/PagerDutyNotificationRuleBase)
	PagerDutyNotificationRuleBase `yaml:",inline"`
}

// PagerDutyNotificationRuleBase defines model for PagerDutyNotificationRuleBase.
type PagerDutyNotificationRuleBase struct {
	MessageTemplate string                            `json:"messageTemplate"`
	Type            PagerDutyNotificationRuleBaseType `json:"type"`
}

// PagerDutyNotificationRuleBaseType defines model for PagerDutyNotificationRuleBase.Type.
type PagerDutyNotificationRuleBaseType string

// Represents an expression wrapped in parenthesis
type ParenExpression struct {
	Expression *Expression `json:"expression,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// PasswordResetBody defines model for PasswordResetBody.
type PasswordResetBody struct {
	Password string `json:"password"`
}

// Updates to an existing bucket resource.
type PatchBucketRequest struct {
	Description *string `json:"description,omitempty"`
	Name        *string `json:"name,omitempty"`

	// Updates to rules to expire or retain data. No rules means no updates.
	RetentionRules *PatchRetentionRules `json:"retentionRules,omitempty"`
}

// PatchOrganizationRequest defines model for PatchOrganizationRequest.
type PatchOrganizationRequest struct {
	// New description to set on the organization
	Description *string `json:"description,omitempty"`

	// New name to set on the organization
	Name *string `json:"name,omitempty"`
}

// Updates to a rule to expire or retain data.
type PatchRetentionRule struct {
	// Duration in seconds for how long data will be kept in the database. 0 means infinite.
	EverySeconds *int64 `json:"everySeconds,omitempty"`

	// Shard duration measured in seconds.
	ShardGroupDurationSeconds *int64                 `json:"shardGroupDurationSeconds,omitempty"`
	Type                      PatchRetentionRuleType `json:"type"`
}

// PatchRetentionRuleType defines model for PatchRetentionRule.Type.
type PatchRetentionRuleType string

// Updates to rules to expire or retain data. No rules means no updates.
type PatchRetentionRules []PatchRetentionRule

// Permission defines model for Permission.
type Permission struct {
	Action   PermissionAction `json:"action"`
	Resource Resource         `json:"resource"`
}

// PermissionAction defines model for Permission.Action.
type PermissionAction string

// Call expression with pipe argument
type PipeExpression struct {
	Argument *Expression `json:"argument,omitempty"`

	// Represents a function call
	Call *CallExpression `json:"call,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// Represents a specialized literal value, indicating the left hand value of a pipe expression
type PipeLiteral struct {
	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// PostBucketRequest defines model for PostBucketRequest.
type PostBucketRequest struct {
	Description *string `json:"description,omitempty"`
	Name        string  `json:"name"`
	OrgID       string  `json:"orgID"`

	// Rules to expire or retain data.  No rules means data never expires.
	RetentionRules RetentionRules `json:"retentionRules"`
	Rp             *string        `json:"rp,omitempty"`
	SchemaType     *SchemaType    `json:"schemaType,omitempty"`
}

// PostCheck defines model for PostCheck.
type PostCheck struct {
	// Embedded struct due to allOf(#/components/schemas/CheckDiscriminator)
	CheckDiscriminator `yaml:",inline"`
}

// PostNotificationEndpoint defines model for PostNotificationEndpoint.
type PostNotificationEndpoint struct {
	// Embedded struct due to allOf(#/components/schemas/NotificationEndpointDiscriminator)
	NotificationEndpointDiscriminator `yaml:",inline"`
}

// PostNotificationRule defines model for PostNotificationRule.
type PostNotificationRule struct {
	// Embedded struct due to allOf(#/components/schemas/NotificationRuleDiscriminator)
	NotificationRuleDiscriminator `yaml:",inline"`
}

// PostOrganizationRequest defines model for PostOrganizationRequest.
type PostOrganizationRequest struct {
	Description *string `json:"description,omitempty"`
	Name        string  `json:"name"`
}

// The value associated with a key
type Property struct {
	Key *PropertyKey `json:"key,omitempty"`

	// Type of AST node
	Type  *NodeType   `json:"type,omitempty"`
	Value *Expression `json:"value,omitempty"`
}

// PropertyKey defines model for PropertyKey.
type PropertyKey interface{}

// Query influx using the Flux language
type Query struct {
	// Dialect are options to change the default CSV output format; https://www.w3.org/TR/2015/REC-tabular-metadata-20151217/#dialect-descriptions
	Dialect *Dialect `json:"dialect,omitempty"`

	// Represents a source from a single file
	Extern *File `json:"extern,omitempty"`

	// Specifies the time that should be reported as "now" in the query. Default is the server's now time.
	Now *time.Time `json:"now,omitempty"`

	// Enumeration of key/value pairs that respresent parameters to be injected into query (can only specify either this field or extern and not both)
	Params *Query_Params `json:"params,omitempty"`

	// Query script to execute.
	Query string `json:"query"`

	// The type of query. Must be "flux".
	Type *QueryType `json:"type,omitempty"`
}

// Enumeration of key/value pairs that respresent parameters to be injected into query (can only specify either this field or extern and not both)
type Query_Params struct {
	AdditionalProperties map[string]interface{} `json:"-"`
}

// The type of query. Must be "flux".
type QueryType string

// QueryEditMode defines model for QueryEditMode.
type QueryEditMode string

// QueryVariableProperties defines model for QueryVariableProperties.
type QueryVariableProperties struct {
	Type   *QueryVariablePropertiesType `json:"type,omitempty"`
	Values *struct {
		Language *string `json:"language,omitempty"`
		Query    *string `json:"query,omitempty"`
	} `json:"values,omitempty"`
}

// QueryVariablePropertiesType defines model for QueryVariableProperties.Type.
type QueryVariablePropertiesType string

// RangeThreshold defines model for RangeThreshold.
type RangeThreshold struct {
	// Embedded struct due to allOf(#/components/schemas/ThresholdBase)
	ThresholdBase `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	Max    float32            `json:"max"`
	Min    float32            `json:"min"`
	Type   RangeThresholdType `json:"type"`
	Within bool               `json:"within"`
}

// RangeThresholdType defines model for RangeThreshold.Type.
type RangeThresholdType string

// Ready defines model for Ready.
type Ready struct {
	Started *time.Time   `json:"started,omitempty"`
	Status  *ReadyStatus `json:"status,omitempty"`
	Up      *string      `json:"up,omitempty"`
}

// ReadyStatus defines model for Ready.Status.
type ReadyStatus string

// Expressions begin and end with `/` and are regular expressions with syntax accepted by RE2
type RegexpLiteral struct {
	// Type of AST node
	Type  *NodeType `json:"type,omitempty"`
	Value *string   `json:"value,omitempty"`
}

// Describes a field that can be renamed and made visible or invisible.
type RenamableField struct {
	// The name that a field is renamed to by the user.
	DisplayName *string `json:"displayName,omitempty"`

	// The calculated name of a field.
	InternalName *string `json:"internalName,omitempty"`

	// Indicates whether this field should be visible on the table.
	Visible *bool `json:"visible,omitempty"`
}

// Resource defines model for Resource.
type Resource struct {
	// If ID is set that is a permission for a specific resource. if it is not set it is a permission for all resources of that resource type.
	Id *string `json:"id,omitempty"`

	// Optional name of the resource if the resource has a name field.
	Name *string `json:"name,omitempty"`

	// Optional name of the organization of the organization with orgID.
	Org *string `json:"org,omitempty"`

	// If orgID is set that is a permission for all resources owned my that org. if it is not set it is a permission for all resources of that resource type.
	OrgID *string      `json:"orgID,omitempty"`
	Type  ResourceType `json:"type"`
}

// ResourceType defines model for Resource.Type.
type ResourceType string

// ResourceMember defines model for ResourceMember.
type ResourceMember struct {
	// Embedded struct due to allOf(#/components/schemas/UserResponse)
	UserResponse `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	Role *ResourceMemberRole `json:"role,omitempty"`
}

// ResourceMemberRole defines model for ResourceMember.Role.
type ResourceMemberRole string

// ResourceMembers defines model for ResourceMembers.
type ResourceMembers struct {
	Links *struct {
		Self *string `json:"self,omitempty"`
	} `json:"links,omitempty"`
	Users *[]ResourceMember `json:"users,omitempty"`
}

// ResourceOwner defines model for ResourceOwner.
type ResourceOwner struct {
	// Embedded struct due to allOf(#/components/schemas/UserResponse)
	UserResponse `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	Role *ResourceOwnerRole `json:"role,omitempty"`
}

// ResourceOwnerRole defines model for ResourceOwner.Role.
type ResourceOwnerRole string

// ResourceOwners defines model for ResourceOwners.
type ResourceOwners struct {
	Links *struct {
		Self *string `json:"self,omitempty"`
	} `json:"links,omitempty"`
	Users *[]ResourceOwner `json:"users,omitempty"`
}

// RestoredBucketMappings defines model for RestoredBucketMappings.
type RestoredBucketMappings struct {
	// New ID of the restored bucket
	Id            string              `json:"id"`
	Name          string              `json:"name"`
	ShardMappings BucketShardMappings `json:"shardMappings"`
}

// RetentionPolicyManifest defines model for RetentionPolicyManifest.
type RetentionPolicyManifest struct {
	Duration           int64                 `json:"duration"`
	Name               string                `json:"name"`
	ReplicaN           int                   `json:"replicaN"`
	ShardGroupDuration int64                 `json:"shardGroupDuration"`
	ShardGroups        ShardGroupManifests   `json:"shardGroups"`
	Subscriptions      SubscriptionManifests `json:"subscriptions"`
}

// RetentionPolicyManifests defines model for RetentionPolicyManifests.
type RetentionPolicyManifests []RetentionPolicyManifest

// RetentionRule defines model for RetentionRule.
type RetentionRule struct {
	// Duration in seconds for how long data will be kept in the database. 0 means infinite.
	EverySeconds int64 `json:"everySeconds"`

	// Shard duration measured in seconds.
	ShardGroupDurationSeconds *int64            `json:"shardGroupDurationSeconds,omitempty"`
	Type                      RetentionRuleType `json:"type"`
}

// RetentionRuleType defines model for RetentionRule.Type.
type RetentionRuleType string

// Rules to expire or retain data.  No rules means data never expires.
type RetentionRules []RetentionRule

// Defines an expression to return
type ReturnStatement struct {
	Argument *Expression `json:"argument,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// Routes defines model for Routes.
type Routes struct {
	Authorizations *string `json:"authorizations,omitempty"`
	Buckets        *string `json:"buckets,omitempty"`
	Dashboards     *string `json:"dashboards,omitempty"`
	External       *struct {
		StatusFeed *string `json:"statusFeed,omitempty"`
	} `json:"external,omitempty"`
	Flags *string `json:"flags,omitempty"`
	Me    *string `json:"me,omitempty"`
	Orgs  *string `json:"orgs,omitempty"`
	Query *struct {
		Analyze     *string `json:"analyze,omitempty"`
		Ast         *string `json:"ast,omitempty"`
		Self        *string `json:"self,omitempty"`
		Suggestions *string `json:"suggestions,omitempty"`
	} `json:"query,omitempty"`
	Setup   *string `json:"setup,omitempty"`
	Signin  *string `json:"signin,omitempty"`
	Signout *string `json:"signout,omitempty"`
	Sources *string `json:"sources,omitempty"`
	System  *struct {
		Debug   *string `json:"debug,omitempty"`
		Health  *string `json:"health,omitempty"`
		Metrics *string `json:"metrics,omitempty"`
	} `json:"system,omitempty"`
	Tasks     *string `json:"tasks,omitempty"`
	Telegrafs *string `json:"telegrafs,omitempty"`
	Users     *string `json:"users,omitempty"`
	Variables *string `json:"variables,omitempty"`
	Write     *string `json:"write,omitempty"`
}

// The state to record if check matches a criteria.
type RuleStatusLevel string

// Run defines model for Run.
type Run struct {
	// Time run finished executing, RFC3339Nano.
	FinishedAt *time.Time `json:"finishedAt,omitempty"`
	Id         *string    `json:"id,omitempty"`
	Links      *struct {
		Retry *string `json:"retry,omitempty"`
		Self  *string `json:"self,omitempty"`
		Task  *string `json:"task,omitempty"`
	} `json:"links,omitempty"`

	// An array of logs associated with the run.
	Log *[]LogEvent `json:"log,omitempty"`

	// Time run was manually requested, RFC3339Nano.
	RequestedAt *time.Time `json:"requestedAt,omitempty"`

	// Time used for run's "now" option, RFC3339.
	ScheduledFor *time.Time `json:"scheduledFor,omitempty"`

	// Time run started executing, RFC3339Nano.
	StartedAt *time.Time `json:"startedAt,omitempty"`
	Status    *RunStatus `json:"status,omitempty"`
	TaskID    *string    `json:"taskID,omitempty"`
}

// RunStatus defines model for Run.Status.
type RunStatus string

// RunManually defines model for RunManually.
type RunManually struct {
	// Time used for run's "now" option, RFC3339.  Default is the server's now time.
	ScheduledFor *time.Time `json:"scheduledFor"`
}

// Runs defines model for Runs.
type Runs struct {
	Links *Links `json:"links,omitempty"`
	Runs  *[]Run `json:"runs,omitempty"`
}

// SMTPNotificationRule defines model for SMTPNotificationRule.
type SMTPNotificationRule struct {
	// Embedded struct due to allOf(#/components/schemas/NotificationRuleBase)
	NotificationRuleBase `yaml:",inline"`
	// Embedded struct due to allOf(#/components/schemas/SMTPNotificationRuleBase)
	SMTPNotificationRuleBase `yaml:",inline"`
}

// SMTPNotificationRuleBase defines model for SMTPNotificationRuleBase.
type SMTPNotificationRuleBase struct {
	BodyTemplate    *string                      `json:"bodyTemplate,omitempty"`
	SubjectTemplate string                       `json:"subjectTemplate"`
	To              string                       `json:"to"`
	Type            SMTPNotificationRuleBaseType `json:"type"`
}

// SMTPNotificationRuleBaseType defines model for SMTPNotificationRuleBase.Type.
type SMTPNotificationRuleBaseType string

// ScatterViewProperties defines model for ScatterViewProperties.
type ScatterViewProperties struct {
	// Colors define color encoding of data into a visualization
	Colors                     []string                   `json:"colors"`
	FillColumns                []string                   `json:"fillColumns"`
	GenerateXAxisTicks         *[]string                  `json:"generateXAxisTicks,omitempty"`
	GenerateYAxisTicks         *[]string                  `json:"generateYAxisTicks,omitempty"`
	LegendColorizeRows         *bool                      `json:"legendColorizeRows,omitempty"`
	LegendHide                 *bool                      `json:"legendHide,omitempty"`
	LegendOpacity              *float32                   `json:"legendOpacity,omitempty"`
	LegendOrientationThreshold *int                       `json:"legendOrientationThreshold,omitempty"`
	Note                       string                     `json:"note"`
	Queries                    []DashboardQuery           `json:"queries"`
	Shape                      ScatterViewPropertiesShape `json:"shape"`

	// If true, will display note when empty
	ShowNoteWhenEmpty bool                      `json:"showNoteWhenEmpty"`
	SymbolColumns     []string                  `json:"symbolColumns"`
	TimeFormat        *string                   `json:"timeFormat,omitempty"`
	Type              ScatterViewPropertiesType `json:"type"`
	XAxisLabel        string                    `json:"xAxisLabel"`
	XColumn           string                    `json:"xColumn"`
	XDomain           []float32                 `json:"xDomain"`
	XPrefix           string                    `json:"xPrefix"`
	XSuffix           string                    `json:"xSuffix"`
	XTickStart        *float32                  `json:"xTickStart,omitempty"`
	XTickStep         *float32                  `json:"xTickStep,omitempty"`
	XTotalTicks       *int                      `json:"xTotalTicks,omitempty"`
	YAxisLabel        string                    `json:"yAxisLabel"`
	YColumn           string                    `json:"yColumn"`
	YDomain           []float32                 `json:"yDomain"`
	YPrefix           string                    `json:"yPrefix"`
	YSuffix           string                    `json:"ySuffix"`
	YTickStart        *float32                  `json:"yTickStart,omitempty"`
	YTickStep         *float32                  `json:"yTickStep,omitempty"`
	YTotalTicks       *int                      `json:"yTotalTicks,omitempty"`
}

// ScatterViewPropertiesShape defines model for ScatterViewProperties.Shape.
type ScatterViewPropertiesShape string

// ScatterViewPropertiesType defines model for ScatterViewProperties.Type.
type ScatterViewPropertiesType string

// SchemaType defines model for SchemaType.
type SchemaType string

// ScraperTargetRequest defines model for ScraperTargetRequest.
type ScraperTargetRequest struct {
	// Skip TLS verification on endpoint.
	AllowInsecure *bool `json:"allowInsecure,omitempty"`

	// The ID of the bucket to write to.
	BucketID *string `json:"bucketID,omitempty"`

	// The name of the scraper target.
	Name *string `json:"name,omitempty"`

	// The organization ID.
	OrgID *string `json:"orgID,omitempty"`

	// The type of the metrics to be parsed.
	Type *ScraperTargetRequestType `json:"type,omitempty"`

	// The URL of the metrics endpoint.
	Url *string `json:"url,omitempty"`
}

// The type of the metrics to be parsed.
type ScraperTargetRequestType string

// ScraperTargetResponse defines model for ScraperTargetResponse.
type ScraperTargetResponse struct {
	// Embedded struct due to allOf(#/components/schemas/ScraperTargetRequest)
	ScraperTargetRequest `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	// The bucket name.
	Bucket *string `json:"bucket,omitempty"`
	Id     *string `json:"id,omitempty"`
	Links  *struct {
		// URI of resource.
		Bucket *Link `json:"bucket,omitempty"`

		// URI of resource.
		Members *Link `json:"members,omitempty"`

		// URI of resource.
		Organization *Link `json:"organization,omitempty"`

		// URI of resource.
		Owners *Link `json:"owners,omitempty"`

		// URI of resource.
		Self *Link `json:"self,omitempty"`
	} `json:"links,omitempty"`

	// The name of the organization.
	Org *string `json:"org,omitempty"`
}

// ScraperTargetResponses defines model for ScraperTargetResponses.
type ScraperTargetResponses struct {
	Configurations *[]ScraperTargetResponse `json:"configurations,omitempty"`
}

// SecretKeys defines model for SecretKeys.
type SecretKeys struct {
	Secrets *[]string `json:"secrets,omitempty"`
}

// SecretKeysResponse defines model for SecretKeysResponse.
type SecretKeysResponse struct {
	// Embedded struct due to allOf(#/components/schemas/SecretKeys)
	SecretKeys `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	Links *struct {
		Org  *string `json:"org,omitempty"`
		Self *string `json:"self,omitempty"`
	} `json:"links,omitempty"`
}

// Secrets defines model for Secrets.
type Secrets struct {
	AdditionalProperties map[string]string `json:"-"`
}

// ShardGroupManifest defines model for ShardGroupManifest.
type ShardGroupManifest struct {
	DeletedAt   *time.Time     `json:"deletedAt,omitempty"`
	EndTime     time.Time      `json:"endTime"`
	Id          int64          `json:"id"`
	Shards      ShardManifests `json:"shards"`
	StartTime   time.Time      `json:"startTime"`
	TruncatedAt *time.Time     `json:"truncatedAt,omitempty"`
}

// ShardGroupManifests defines model for ShardGroupManifests.
type ShardGroupManifests []ShardGroupManifest

// ShardManifest defines model for ShardManifest.
type ShardManifest struct {
	Id          int64       `json:"id"`
	ShardOwners ShardOwners `json:"shardOwners"`
}

// ShardManifests defines model for ShardManifests.
type ShardManifests []ShardManifest

// ShardOwner defines model for ShardOwner.
type ShardOwner struct {
	// ID of the node that owns a shard.
	NodeID int64 `json:"nodeID"`
}

// ShardOwners defines model for ShardOwners.
type ShardOwners []ShardOwner

// SimpleTableViewProperties defines model for SimpleTableViewProperties.
type SimpleTableViewProperties struct {
	Note    string                         `json:"note"`
	Queries []DashboardQuery               `json:"queries"`
	Shape   SimpleTableViewPropertiesShape `json:"shape"`
	ShowAll bool                           `json:"showAll"`

	// If true, will display note when empty
	ShowNoteWhenEmpty bool                          `json:"showNoteWhenEmpty"`
	Type              SimpleTableViewPropertiesType `json:"type"`
}

// SimpleTableViewPropertiesShape defines model for SimpleTableViewProperties.Shape.
type SimpleTableViewPropertiesShape string

// SimpleTableViewPropertiesType defines model for SimpleTableViewProperties.Type.
type SimpleTableViewPropertiesType string

// SingleStatViewProperties defines model for SingleStatViewProperties.
type SingleStatViewProperties struct {
	// Colors define color encoding of data into a visualization
	Colors []DashboardColor `json:"colors"`

	// Indicates whether decimal places should be enforced, and how many digits it should show.
	DecimalPlaces DecimalPlaces                 `json:"decimalPlaces"`
	Note          string                        `json:"note"`
	Prefix        string                        `json:"prefix"`
	Queries       []DashboardQuery              `json:"queries"`
	Shape         SingleStatViewPropertiesShape `json:"shape"`

	// If true, will display note when empty
	ShowNoteWhenEmpty bool `json:"showNoteWhenEmpty"`

	// StaticLegend represents the options specific to the static legend
	StaticLegend *StaticLegend                `json:"staticLegend,omitempty"`
	Suffix       string                       `json:"suffix"`
	TickPrefix   string                       `json:"tickPrefix"`
	TickSuffix   string                       `json:"tickSuffix"`
	Type         SingleStatViewPropertiesType `json:"type"`
}

// SingleStatViewPropertiesShape defines model for SingleStatViewProperties.Shape.
type SingleStatViewPropertiesShape string

// SingleStatViewPropertiesType defines model for SingleStatViewProperties.Type.
type SingleStatViewPropertiesType string

// SlackNotificationEndpoint defines model for SlackNotificationEndpoint.
type SlackNotificationEndpoint struct {
	// Embedded struct due to allOf(#/components/schemas/NotificationEndpointBase)
	NotificationEndpointBase `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	// Specifies the API token string. Specify either `URL` or `Token`.
	Token *string `json:"token,omitempty"`

	// Specifies the URL of the Slack endpoint. Specify either `URL` or `Token`.
	Url *string `json:"url,omitempty"`
}

// SlackNotificationRule defines model for SlackNotificationRule.
type SlackNotificationRule struct {
	// Embedded struct due to allOf(#/components/schemas/NotificationRuleBase)
	NotificationRuleBase `yaml:",inline"`
	// Embedded struct due to allOf(#/components/schemas/SlackNotificationRuleBase)
	SlackNotificationRuleBase `yaml:",inline"`
}

// SlackNotificationRuleBase defines model for SlackNotificationRuleBase.
type SlackNotificationRuleBase struct {
	Channel         *string                       `json:"channel,omitempty"`
	MessageTemplate string                        `json:"messageTemplate"`
	Type            SlackNotificationRuleBaseType `json:"type"`
}

// SlackNotificationRuleBaseType defines model for SlackNotificationRuleBase.Type.
type SlackNotificationRuleBaseType string

// Source defines model for Source.
type Source struct {
	Default            *bool              `json:"default,omitempty"`
	DefaultRP          *string            `json:"defaultRP,omitempty"`
	Id                 *string            `json:"id,omitempty"`
	InsecureSkipVerify *bool              `json:"insecureSkipVerify,omitempty"`
	Languages          *[]SourceLanguages `json:"languages,omitempty"`
	Links              *struct {
		Buckets *string `json:"buckets,omitempty"`
		Health  *string `json:"health,omitempty"`
		Query   *string `json:"query,omitempty"`
		Self    *string `json:"self,omitempty"`
	} `json:"links,omitempty"`
	MetaUrl      *string     `json:"metaUrl,omitempty"`
	Name         *string     `json:"name,omitempty"`
	OrgID        *string     `json:"orgID,omitempty"`
	Password     *string     `json:"password,omitempty"`
	SharedSecret *string     `json:"sharedSecret,omitempty"`
	Telegraf     *string     `json:"telegraf,omitempty"`
	Token        *string     `json:"token,omitempty"`
	Type         *SourceType `json:"type,omitempty"`
	Url          *string     `json:"url,omitempty"`
	Username     *string     `json:"username,omitempty"`
}

// SourceLanguages defines model for Source.Languages.
type SourceLanguages string

// SourceType defines model for Source.Type.
type SourceType string

// Sources defines model for Sources.
type Sources struct {
	Links *struct {
		Self *string `json:"self,omitempty"`
	} `json:"links,omitempty"`
	Sources *[]Source `json:"sources,omitempty"`
}

// Stack defines model for Stack.
type Stack struct {
	CreatedAt *time.Time `json:"createdAt,omitempty"`
	Events    *[]struct {
		Description *string `json:"description,omitempty"`
		EventType   *string `json:"eventType,omitempty"`
		Name        *string `json:"name,omitempty"`
		Resources   *[]struct {
			ApiVersion   *string `json:"apiVersion,omitempty"`
			Associations *[]struct {
				Kind     *TemplateKind `json:"kind,omitempty"`
				MetaName *string       `json:"metaName,omitempty"`
			} `json:"associations,omitempty"`
			Kind  *TemplateKind `json:"kind,omitempty"`
			Links *struct {
				Self *string `json:"self,omitempty"`
			} `json:"links,omitempty"`
			ResourceID       *string `json:"resourceID,omitempty"`
			TemplateMetaName *string `json:"templateMetaName,omitempty"`
		} `json:"resources,omitempty"`
		Sources   *[]string  `json:"sources,omitempty"`
		UpdatedAt *time.Time `json:"updatedAt,omitempty"`
		Urls      *[]string  `json:"urls,omitempty"`
	} `json:"events,omitempty"`
	Id    *string `json:"id,omitempty"`
	OrgID *string `json:"orgID,omitempty"`
}

// Statement defines model for Statement.
type Statement interface{}

// StaticLegend represents the options specific to the static legend
type StaticLegend struct {
	ColorizeRows         *bool    `json:"colorizeRows,omitempty"`
	HeightRatio          *float32 `json:"heightRatio,omitempty"`
	Opacity              *float32 `json:"opacity,omitempty"`
	OrientationThreshold *int     `json:"orientationThreshold,omitempty"`
	Show                 *bool    `json:"show,omitempty"`
	ValueAxis            *string  `json:"valueAxis,omitempty"`
	WidthRatio           *float32 `json:"widthRatio,omitempty"`
}

// StatusRule defines model for StatusRule.
type StatusRule struct {
	Count *int `json:"count,omitempty"`

	// The state to record if check matches a criteria.
	CurrentLevel *RuleStatusLevel `json:"currentLevel,omitempty"`
	Period       *string          `json:"period,omitempty"`

	// The state to record if check matches a criteria.
	PreviousLevel *RuleStatusLevel `json:"previousLevel,omitempty"`
}

// Expressions begin and end with double quote marks
type StringLiteral struct {
	// Type of AST node
	Type  *NodeType `json:"type,omitempty"`
	Value *string   `json:"value,omitempty"`
}

// SubscriptionManifest defines model for SubscriptionManifest.
type SubscriptionManifest struct {
	Destinations []string `json:"destinations"`
	Mode         string   `json:"mode"`
	Name         string   `json:"name"`
}

// SubscriptionManifests defines model for SubscriptionManifests.
type SubscriptionManifests []SubscriptionManifest

// TableViewProperties defines model for TableViewProperties.
type TableViewProperties struct {
	// Colors define color encoding of data into a visualization
	Colors []DashboardColor `json:"colors"`

	// Indicates whether decimal places should be enforced, and how many digits it should show.
	DecimalPlaces DecimalPlaces `json:"decimalPlaces"`

	// fieldOptions represent the fields retrieved by the query with customization options
	FieldOptions []RenamableField         `json:"fieldOptions"`
	Note         string                   `json:"note"`
	Queries      []DashboardQuery         `json:"queries"`
	Shape        TableViewPropertiesShape `json:"shape"`

	// If true, will display note when empty
	ShowNoteWhenEmpty bool `json:"showNoteWhenEmpty"`
	TableOptions      struct {
		// fixFirstColumn indicates whether the first column of the table should be locked
		FixFirstColumn *bool `json:"fixFirstColumn,omitempty"`

		// Describes a field that can be renamed and made visible or invisible.
		SortBy *RenamableField `json:"sortBy,omitempty"`

		// verticalTimeAxis describes the orientation of the table by indicating whether the time axis will be displayed vertically
		VerticalTimeAxis *bool `json:"verticalTimeAxis,omitempty"`

		// Wrapping describes the text wrapping style to be used in table views
		Wrapping *TableViewPropertiesTableOptionsWrapping `json:"wrapping,omitempty"`
	} `json:"tableOptions"`

	// timeFormat describes the display format for time values according to moment.js date formatting
	TimeFormat string                  `json:"timeFormat"`
	Type       TableViewPropertiesType `json:"type"`
}

// TableViewPropertiesShape defines model for TableViewProperties.Shape.
type TableViewPropertiesShape string

// Wrapping describes the text wrapping style to be used in table views
type TableViewPropertiesTableOptionsWrapping string

// TableViewPropertiesType defines model for TableViewProperties.Type.
type TableViewPropertiesType string

// TagRule defines model for TagRule.
type TagRule struct {
	Key      *string          `json:"key,omitempty"`
	Operator *TagRuleOperator `json:"operator,omitempty"`
	Value    *string          `json:"value,omitempty"`
}

// TagRuleOperator defines model for TagRule.Operator.
type TagRuleOperator string

// Task defines model for Task.
type Task struct {
	// The ID of the authorization used when this task communicates with the query engine.
	AuthorizationID *string    `json:"authorizationID,omitempty"`
	CreatedAt       *time.Time `json:"createdAt,omitempty"`

	// A task repetition schedule in the form '* * * * * *'; parsed from Flux.
	Cron *string `json:"cron,omitempty"`

	// An optional description of the task.
	Description *string `json:"description,omitempty"`

	// A simple task repetition schedule; parsed from Flux.
	Every *string `json:"every,omitempty"`

	// The Flux script to run for this task.
	Flux          string             `json:"flux"`
	Id            string             `json:"id"`
	Labels        *Labels            `json:"labels,omitempty"`
	LastRunError  *string            `json:"lastRunError,omitempty"`
	LastRunStatus *TaskLastRunStatus `json:"lastRunStatus,omitempty"`

	// Timestamp of latest scheduled, completed run, RFC3339.
	LatestCompleted *time.Time `json:"latestCompleted,omitempty"`
	Links           *struct {
		// URI of resource.
		Labels *Link `json:"labels,omitempty"`

		// URI of resource.
		Logs *Link `json:"logs,omitempty"`

		// URI of resource.
		Members *Link `json:"members,omitempty"`

		// URI of resource.
		Owners *Link `json:"owners,omitempty"`

		// URI of resource.
		Runs *Link `json:"runs,omitempty"`

		// URI of resource.
		Self *Link `json:"self,omitempty"`
	} `json:"links,omitempty"`

	// The name of the task.
	Name string `json:"name"`

	// Duration to delay after the schedule, before executing the task; parsed from flux, if set to zero it will remove this option and use 0 as the default.
	Offset *string `json:"offset,omitempty"`

	// The name of the organization that owns this Task.
	Org *string `json:"org,omitempty"`

	// The ID of the organization that owns this Task.
	OrgID string `json:"orgID"`

	// The ID of the user who owns this Task.
	OwnerID *string         `json:"ownerID,omitempty"`
	Status  *TaskStatusType `json:"status,omitempty"`

	// The type of task, this can be used for filtering tasks on list actions.
	Type      *string    `json:"type,omitempty"`
	UpdatedAt *time.Time `json:"updatedAt,omitempty"`
}

// TaskLastRunStatus defines model for Task.LastRunStatus.
type TaskLastRunStatus string

// TaskCreateRequest defines model for TaskCreateRequest.
type TaskCreateRequest struct {
	// An optional description of the task.
	Description *string `json:"description,omitempty"`

	// The Flux script to run for this task.
	Flux string `json:"flux"`

	// The name of the organization that owns this Task.
	Org *string `json:"org,omitempty"`

	// The ID of the organization that owns this Task.
	OrgID  *string         `json:"orgID,omitempty"`
	Status *TaskStatusType `json:"status,omitempty"`
}

// TaskStatusType defines model for TaskStatusType.
type TaskStatusType string

// TaskUpdateRequest defines model for TaskUpdateRequest.
type TaskUpdateRequest struct {
	// Override the 'cron' option in the flux script.
	Cron *string `json:"cron,omitempty"`

	// An optional description of the task.
	Description *string `json:"description,omitempty"`

	// Override the 'every' option in the flux script.
	Every *string `json:"every,omitempty"`

	// The Flux script to run for this task.
	Flux *string `json:"flux,omitempty"`

	// Override the 'name' option in the flux script.
	Name *string `json:"name,omitempty"`

	// Override the 'offset' option in the flux script.
	Offset *string         `json:"offset,omitempty"`
	Status *TaskStatusType `json:"status,omitempty"`
}

// Tasks defines model for Tasks.
type Tasks struct {
	Links *Links  `json:"links,omitempty"`
	Tasks *[]Task `json:"tasks,omitempty"`
}

// Telegraf defines model for Telegraf.
type Telegraf struct {
	// Embedded struct due to allOf(#/components/schemas/TelegrafRequest)
	TelegrafRequest `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	Id     *string `json:"id,omitempty"`
	Labels *Labels `json:"labels,omitempty"`
	Links  *struct {
		// URI of resource.
		Labels *Link `json:"labels,omitempty"`

		// URI of resource.
		Members *Link `json:"members,omitempty"`

		// URI of resource.
		Owners *Link `json:"owners,omitempty"`

		// URI of resource.
		Self *Link `json:"self,omitempty"`
	} `json:"links,omitempty"`
}

// TelegrafPlugin defines model for TelegrafPlugin.
type TelegrafPlugin struct {
	Config      *string `json:"config,omitempty"`
	Description *string `json:"description,omitempty"`
	Name        *string `json:"name,omitempty"`
	Type        *string `json:"type,omitempty"`
}

// TelegrafPlugins defines model for TelegrafPlugins.
type TelegrafPlugins struct {
	Os      *string           `json:"os,omitempty"`
	Plugins *[]TelegrafPlugin `json:"plugins,omitempty"`
	Version *string           `json:"version,omitempty"`
}

// TelegrafRequest defines model for TelegrafRequest.
type TelegrafRequest struct {
	Config      *string `json:"config,omitempty"`
	Description *string `json:"description,omitempty"`
	Metadata    *struct {
		Buckets *[]string `json:"buckets,omitempty"`
	} `json:"metadata,omitempty"`
	Name  *string `json:"name,omitempty"`
	OrgID *string `json:"orgID,omitempty"`
}

// Telegrafs defines model for Telegrafs.
type Telegrafs struct {
	Configurations *[]Telegraf `json:"configurations,omitempty"`
}

// TelegramNotificationEndpoint defines model for TelegramNotificationEndpoint.
type TelegramNotificationEndpoint struct {
	// Embedded struct due to allOf(#/components/schemas/NotificationEndpointBase)
	NotificationEndpointBase `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	// ID of the telegram channel, a chat_id in https://core.telegram.org/bots/api#sendmessage .
	Channel string `json:"channel"`

	// Specifies the Telegram bot token. See https://core.telegram.org/bots#creating-a-new-bot .
	Token string `json:"token"`
}

// TelegramNotificationRule defines model for TelegramNotificationRule.
type TelegramNotificationRule struct {
	// Embedded struct due to allOf(#/components/schemas/NotificationRuleBase)
	NotificationRuleBase `yaml:",inline"`
	// Embedded struct due to allOf(#/components/schemas/TelegramNotificationRuleBase)
	TelegramNotificationRuleBase `yaml:",inline"`
}

// TelegramNotificationRuleBase defines model for TelegramNotificationRuleBase.
type TelegramNotificationRuleBase struct {
	// Disables preview of web links in the sent messages when "true". Defaults to "false" .
	DisableWebPagePreview *bool `json:"disableWebPagePreview,omitempty"`

	// The message template as a flux interpolated string.
	MessageTemplate string `json:"messageTemplate"`

	// Parse mode of the message text per https://core.telegram.org/bots/api#formatting-options . Defaults to "MarkdownV2" .
	ParseMode *TelegramNotificationRuleBaseParseMode `json:"parseMode,omitempty"`

	// The discriminator between other types of notification rules is "telegram".
	Type TelegramNotificationRuleBaseType `json:"type"`
}

// Parse mode of the message text per https://core.telegram.org/bots/api#formatting-options . Defaults to "MarkdownV2" .
type TelegramNotificationRuleBaseParseMode string

// The discriminator between other types of notification rules is "telegram".
type TelegramNotificationRuleBaseType string

// Template defines model for Template.
type Template []struct {
	ApiVersion *string       `json:"apiVersion,omitempty"`
	Kind       *TemplateKind `json:"kind,omitempty"`
	Meta       *struct {
		Name *string `json:"name,omitempty"`
	} `json:"meta,omitempty"`
	Spec *map[string]interface{} `json:"spec,omitempty"`
}

// TemplateApply defines model for TemplateApply.
type TemplateApply struct {
	Actions *[]interface{}         `json:"actions,omitempty"`
	DryRun  *bool                  `json:"dryRun,omitempty"`
	EnvRefs *TemplateApply_EnvRefs `json:"envRefs,omitempty"`
	OrgID   *string                `json:"orgID,omitempty"`
	Remotes *[]struct {
		ContentType *string `json:"contentType,omitempty"`
		Url         string  `json:"url"`
	} `json:"remotes,omitempty"`
	Secrets  *TemplateApply_Secrets `json:"secrets,omitempty"`
	StackID  *string                `json:"stackID,omitempty"`
	Template *struct {
		ContentType *string   `json:"contentType,omitempty"`
		Contents    *Template `json:"contents,omitempty"`
		Sources     *[]string `json:"sources,omitempty"`
	} `json:"template,omitempty"`
	Templates *[]struct {
		ContentType *string   `json:"contentType,omitempty"`
		Contents    *Template `json:"contents,omitempty"`
		Sources     *[]string `json:"sources,omitempty"`
	} `json:"templates,omitempty"`
}

// TemplateApply_EnvRefs defines model for TemplateApply.EnvRefs.
type TemplateApply_EnvRefs struct {
	AdditionalProperties map[string]interface{} `json:"-"`
}

// TemplateApply_Secrets defines model for TemplateApply.Secrets.
type TemplateApply_Secrets struct {
	AdditionalProperties map[string]string `json:"-"`
}

// TemplateChart defines model for TemplateChart.
type TemplateChart struct {
	Height     *int            `json:"height,omitempty"`
	Properties *ViewProperties `json:"properties,omitempty"`
	Width      *int            `json:"width,omitempty"`
	XPos       *int            `json:"xPos,omitempty"`
	YPos       *int            `json:"yPos,omitempty"`
}

// TemplateEnvReferences defines model for TemplateEnvReferences.
type TemplateEnvReferences []struct {
	// Default value that will be provided for the reference when no value is provided
	DefaultValue *interface{} `json:"defaultValue"`

	// Key identified as environment reference and is the key identified in the template
	EnvRefKey string `json:"envRefKey"`

	// Field the environment reference corresponds too
	ResourceField string `json:"resourceField"`

	// Value provided to fulfill reference
	Value *interface{} `json:"value"`
}

// TemplateExportByID defines model for TemplateExportByID.
type TemplateExportByID struct {
	OrgIDs *[]struct {
		OrgID           *string `json:"orgID,omitempty"`
		ResourceFilters *struct {
			ByLabel        *[]string       `json:"byLabel,omitempty"`
			ByResourceKind *[]TemplateKind `json:"byResourceKind,omitempty"`
		} `json:"resourceFilters,omitempty"`
	} `json:"orgIDs,omitempty"`
	Resources *[]struct {
		Id   string       `json:"id"`
		Kind TemplateKind `json:"kind"`

		// if defined with id, name is used for resource exported by id. if defined independently, resources strictly matching name are exported
		Name *string `json:"name,omitempty"`
	} `json:"resources,omitempty"`
	StackID *string `json:"stackID,omitempty"`
}

// TemplateExportByName defines model for TemplateExportByName.
type TemplateExportByName struct {
	OrgIDs *[]struct {
		OrgID           *string `json:"orgID,omitempty"`
		ResourceFilters *struct {
			ByLabel        *[]string       `json:"byLabel,omitempty"`
			ByResourceKind *[]TemplateKind `json:"byResourceKind,omitempty"`
		} `json:"resourceFilters,omitempty"`
	} `json:"orgIDs,omitempty"`
	Resources *[]struct {
		Kind TemplateKind `json:"kind"`
		Name string       `json:"name"`
	} `json:"resources,omitempty"`
	StackID *string `json:"stackID,omitempty"`
}

// TemplateKind defines model for TemplateKind.
type TemplateKind string

// TemplateSummary defines model for TemplateSummary.
type TemplateSummary struct {
	Diff *struct {
		Buckets *[]struct {
			Id   *string       `json:"id,omitempty"`
			Kind *TemplateKind `json:"kind,omitempty"`
			New  *struct {
				Description *string `json:"description,omitempty"`
				Name        *string `json:"name,omitempty"`

				// Rules to expire or retain data.  No rules means data never expires.
				RetentionRules *RetentionRules `json:"retentionRules,omitempty"`
			} `json:"new,omitempty"`
			Old *struct {
				Description *string `json:"description,omitempty"`
				Name        *string `json:"name,omitempty"`

				// Rules to expire or retain data.  No rules means data never expires.
				RetentionRules *RetentionRules `json:"retentionRules,omitempty"`
			} `json:"old,omitempty"`
			StateStatus      *string `json:"stateStatus,omitempty"`
			TemplateMetaName *string `json:"templateMetaName,omitempty"`
		} `json:"buckets,omitempty"`
		Checks *[]struct {
			Id               *string             `json:"id,omitempty"`
			Kind             *TemplateKind       `json:"kind,omitempty"`
			New              *CheckDiscriminator `json:"new,omitempty"`
			Old              *CheckDiscriminator `json:"old,omitempty"`
			StateStatus      *string             `json:"stateStatus,omitempty"`
			TemplateMetaName *string             `json:"templateMetaName,omitempty"`
		} `json:"checks,omitempty"`
		Dashboards *[]struct {
			Id   *string       `json:"id,omitempty"`
			Kind *TemplateKind `json:"kind,omitempty"`
			New  *struct {
				Charts      *[]TemplateChart `json:"charts,omitempty"`
				Description *string          `json:"description,omitempty"`
				Name        *string          `json:"name,omitempty"`
			} `json:"new,omitempty"`
			Old *struct {
				Charts      *[]TemplateChart `json:"charts,omitempty"`
				Description *string          `json:"description,omitempty"`
				Name        *string          `json:"name,omitempty"`
			} `json:"old,omitempty"`
			StateStatus      *string `json:"stateStatus,omitempty"`
			TemplateMetaName *string `json:"templateMetaName,omitempty"`
		} `json:"dashboards,omitempty"`
		LabelMappings *[]struct {
			LabelID                  *string `json:"labelID,omitempty"`
			LabelName                *string `json:"labelName,omitempty"`
			LabelTemplateMetaName    *string `json:"labelTemplateMetaName,omitempty"`
			ResourceID               *string `json:"resourceID,omitempty"`
			ResourceName             *string `json:"resourceName,omitempty"`
			ResourceTemplateMetaName *string `json:"resourceTemplateMetaName,omitempty"`
			ResourceType             *string `json:"resourceType,omitempty"`
			Status                   *string `json:"status,omitempty"`
		} `json:"labelMappings,omitempty"`
		Labels *[]struct {
			Id   *string       `json:"id,omitempty"`
			Kind *TemplateKind `json:"kind,omitempty"`
			New  *struct {
				Color       *string `json:"color,omitempty"`
				Description *string `json:"description,omitempty"`
				Name        *string `json:"name,omitempty"`
			} `json:"new,omitempty"`
			Old *struct {
				Color       *string `json:"color,omitempty"`
				Description *string `json:"description,omitempty"`
				Name        *string `json:"name,omitempty"`
			} `json:"old,omitempty"`
			StateStatus      *string `json:"stateStatus,omitempty"`
			TemplateMetaName *string `json:"templateMetaName,omitempty"`
		} `json:"labels,omitempty"`
		NotificationEndpoints *[]struct {
			Id               *string                            `json:"id,omitempty"`
			Kind             *TemplateKind                      `json:"kind,omitempty"`
			New              *NotificationEndpointDiscriminator `json:"new,omitempty"`
			Old              *NotificationEndpointDiscriminator `json:"old,omitempty"`
			StateStatus      *string                            `json:"stateStatus,omitempty"`
			TemplateMetaName *string                            `json:"templateMetaName,omitempty"`
		} `json:"notificationEndpoints,omitempty"`
		NotificationRules *[]struct {
			Id   *string       `json:"id,omitempty"`
			Kind *TemplateKind `json:"kind,omitempty"`
			New  *struct {
				Description     *string `json:"description,omitempty"`
				EndpointID      *string `json:"endpointID,omitempty"`
				EndpointName    *string `json:"endpointName,omitempty"`
				EndpointType    *string `json:"endpointType,omitempty"`
				Every           *string `json:"every,omitempty"`
				MessageTemplate *string `json:"messageTemplate,omitempty"`
				Name            *string `json:"name,omitempty"`
				Offset          *string `json:"offset,omitempty"`
				Status          *string `json:"status,omitempty"`
				StatusRules     *[]struct {
					CurrentLevel  *string `json:"currentLevel,omitempty"`
					PreviousLevel *string `json:"previousLevel,omitempty"`
				} `json:"statusRules,omitempty"`
				TagRules *[]struct {
					Key      *string `json:"key,omitempty"`
					Operator *string `json:"operator,omitempty"`
					Value    *string `json:"value,omitempty"`
				} `json:"tagRules,omitempty"`
			} `json:"new,omitempty"`
			Old *struct {
				Description     *string `json:"description,omitempty"`
				EndpointID      *string `json:"endpointID,omitempty"`
				EndpointName    *string `json:"endpointName,omitempty"`
				EndpointType    *string `json:"endpointType,omitempty"`
				Every           *string `json:"every,omitempty"`
				MessageTemplate *string `json:"messageTemplate,omitempty"`
				Name            *string `json:"name,omitempty"`
				Offset          *string `json:"offset,omitempty"`
				Status          *string `json:"status,omitempty"`
				StatusRules     *[]struct {
					CurrentLevel  *string `json:"currentLevel,omitempty"`
					PreviousLevel *string `json:"previousLevel,omitempty"`
				} `json:"statusRules,omitempty"`
				TagRules *[]struct {
					Key      *string `json:"key,omitempty"`
					Operator *string `json:"operator,omitempty"`
					Value    *string `json:"value,omitempty"`
				} `json:"tagRules,omitempty"`
			} `json:"old,omitempty"`
			StateStatus      *string `json:"stateStatus,omitempty"`
			TemplateMetaName *string `json:"templateMetaName,omitempty"`
		} `json:"notificationRules,omitempty"`
		Tasks *[]struct {
			Id   *string       `json:"id,omitempty"`
			Kind *TemplateKind `json:"kind,omitempty"`
			New  *struct {
				Cron        *string `json:"cron,omitempty"`
				Description *string `json:"description,omitempty"`
				Every       *string `json:"every,omitempty"`
				Name        *string `json:"name,omitempty"`
				Offset      *string `json:"offset,omitempty"`
				Query       *string `json:"query,omitempty"`
				Status      *string `json:"status,omitempty"`
			} `json:"new,omitempty"`
			Old *struct {
				Cron        *string `json:"cron,omitempty"`
				Description *string `json:"description,omitempty"`
				Every       *string `json:"every,omitempty"`
				Name        *string `json:"name,omitempty"`
				Offset      *string `json:"offset,omitempty"`
				Query       *string `json:"query,omitempty"`
				Status      *string `json:"status,omitempty"`
			} `json:"old,omitempty"`
			StateStatus      *string `json:"stateStatus,omitempty"`
			TemplateMetaName *string `json:"templateMetaName,omitempty"`
		} `json:"tasks,omitempty"`
		TelegrafConfigs *[]struct {
			Id               *string          `json:"id,omitempty"`
			Kind             *TemplateKind    `json:"kind,omitempty"`
			New              *TelegrafRequest `json:"new,omitempty"`
			Old              *TelegrafRequest `json:"old,omitempty"`
			StateStatus      *string          `json:"stateStatus,omitempty"`
			TemplateMetaName *string          `json:"templateMetaName,omitempty"`
		} `json:"telegrafConfigs,omitempty"`
		Variables *[]struct {
			Id   *string       `json:"id,omitempty"`
			Kind *TemplateKind `json:"kind,omitempty"`
			New  *struct {
				Args        *VariableProperties `json:"args,omitempty"`
				Description *string             `json:"description,omitempty"`
				Name        *string             `json:"name,omitempty"`
			} `json:"new,omitempty"`
			Old *struct {
				Args        *VariableProperties `json:"args,omitempty"`
				Description *string             `json:"description,omitempty"`
				Name        *string             `json:"name,omitempty"`
			} `json:"old,omitempty"`
			StateStatus      *string `json:"stateStatus,omitempty"`
			TemplateMetaName *string `json:"templateMetaName,omitempty"`
		} `json:"variables,omitempty"`
	} `json:"diff,omitempty"`
	Errors *[]struct {
		Fields  *[]string     `json:"fields,omitempty"`
		Indexes *[]int        `json:"indexes,omitempty"`
		Kind    *TemplateKind `json:"kind,omitempty"`
		Reason  *string       `json:"reason,omitempty"`
	} `json:"errors,omitempty"`
	Sources *[]string `json:"sources,omitempty"`
	StackID *string   `json:"stackID,omitempty"`
	Summary *struct {
		Buckets *[]struct {
			Description       *string                 `json:"description,omitempty"`
			EnvReferences     *TemplateEnvReferences  `json:"envReferences,omitempty"`
			Id                *string                 `json:"id,omitempty"`
			Kind              *TemplateKind           `json:"kind,omitempty"`
			LabelAssociations *[]TemplateSummaryLabel `json:"labelAssociations,omitempty"`
			Name              *string                 `json:"name,omitempty"`
			OrgID             *string                 `json:"orgID,omitempty"`
			RetentionPeriod   *int                    `json:"retentionPeriod,omitempty"`
			TemplateMetaName  *string                 `json:"templateMetaName,omitempty"`
		} `json:"buckets,omitempty"`
		Checks *[]struct {
			// Embedded struct due to allOf(#/components/schemas/CheckDiscriminator)
			CheckDiscriminator `yaml:",inline"`
			// Embedded fields due to inline allOf schema
			EnvReferences     *TemplateEnvReferences  `json:"envReferences,omitempty"`
			Kind              *TemplateKind           `json:"kind,omitempty"`
			LabelAssociations *[]TemplateSummaryLabel `json:"labelAssociations,omitempty"`
			TemplateMetaName  *string                 `json:"templateMetaName,omitempty"`
		} `json:"checks,omitempty"`
		Dashboards *[]struct {
			Charts            *[]TemplateChart        `json:"charts,omitempty"`
			Description       *string                 `json:"description,omitempty"`
			EnvReferences     *TemplateEnvReferences  `json:"envReferences,omitempty"`
			Id                *string                 `json:"id,omitempty"`
			Kind              *TemplateKind           `json:"kind,omitempty"`
			LabelAssociations *[]TemplateSummaryLabel `json:"labelAssociations,omitempty"`
			Name              *string                 `json:"name,omitempty"`
			OrgID             *string                 `json:"orgID,omitempty"`
			TemplateMetaName  *string                 `json:"templateMetaName,omitempty"`
		} `json:"dashboards,omitempty"`
		LabelMappings *[]struct {
			LabelID                  *string `json:"labelID,omitempty"`
			LabelName                *string `json:"labelName,omitempty"`
			LabelTemplateMetaName    *string `json:"labelTemplateMetaName,omitempty"`
			ResourceID               *string `json:"resourceID,omitempty"`
			ResourceName             *string `json:"resourceName,omitempty"`
			ResourceTemplateMetaName *string `json:"resourceTemplateMetaName,omitempty"`
			ResourceType             *string `json:"resourceType,omitempty"`
			Status                   *string `json:"status,omitempty"`
		} `json:"labelMappings,omitempty"`
		Labels                *[]TemplateSummaryLabel `json:"labels,omitempty"`
		MissingEnvRefs        *[]string               `json:"missingEnvRefs,omitempty"`
		MissingSecrets        *[]string               `json:"missingSecrets,omitempty"`
		NotificationEndpoints *[]struct {
			// Embedded struct due to allOf(#/components/schemas/NotificationEndpointDiscriminator)
			NotificationEndpointDiscriminator `yaml:",inline"`
			// Embedded fields due to inline allOf schema
			EnvReferences     *TemplateEnvReferences  `json:"envReferences,omitempty"`
			Kind              *TemplateKind           `json:"kind,omitempty"`
			LabelAssociations *[]TemplateSummaryLabel `json:"labelAssociations,omitempty"`
			TemplateMetaName  *string                 `json:"templateMetaName,omitempty"`
		} `json:"notificationEndpoints,omitempty"`
		NotificationRules *[]struct {
			Description              *string                 `json:"description,omitempty"`
			EndpointID               *string                 `json:"endpointID,omitempty"`
			EndpointTemplateMetaName *string                 `json:"endpointTemplateMetaName,omitempty"`
			EndpointType             *string                 `json:"endpointType,omitempty"`
			EnvReferences            *TemplateEnvReferences  `json:"envReferences,omitempty"`
			Every                    *string                 `json:"every,omitempty"`
			Kind                     *TemplateKind           `json:"kind,omitempty"`
			LabelAssociations        *[]TemplateSummaryLabel `json:"labelAssociations,omitempty"`
			MessageTemplate          *string                 `json:"messageTemplate,omitempty"`
			Name                     *string                 `json:"name,omitempty"`
			Offset                   *string                 `json:"offset,omitempty"`
			Status                   *string                 `json:"status,omitempty"`
			StatusRules              *[]struct {
				CurrentLevel  *string `json:"currentLevel,omitempty"`
				PreviousLevel *string `json:"previousLevel,omitempty"`
			} `json:"statusRules,omitempty"`
			TagRules *[]struct {
				Key      *string `json:"key,omitempty"`
				Operator *string `json:"operator,omitempty"`
				Value    *string `json:"value,omitempty"`
			} `json:"tagRules,omitempty"`
			TemplateMetaName *string `json:"templateMetaName,omitempty"`
		} `json:"notificationRules,omitempty"`
		Tasks *[]struct {
			Cron             *string                `json:"cron,omitempty"`
			Description      *string                `json:"description,omitempty"`
			EnvReferences    *TemplateEnvReferences `json:"envReferences,omitempty"`
			Every            *string                `json:"every,omitempty"`
			Id               *string                `json:"id,omitempty"`
			Kind             *TemplateKind          `json:"kind,omitempty"`
			Name             *string                `json:"name,omitempty"`
			Offset           *string                `json:"offset,omitempty"`
			Query            *string                `json:"query,omitempty"`
			Status           *string                `json:"status,omitempty"`
			TemplateMetaName *string                `json:"templateMetaName,omitempty"`
		} `json:"tasks,omitempty"`
		TelegrafConfigs *[]struct {
			// Embedded struct due to allOf(#/components/schemas/TelegrafRequest)
			TelegrafRequest `yaml:",inline"`
			// Embedded fields due to inline allOf schema
			EnvReferences     *TemplateEnvReferences  `json:"envReferences,omitempty"`
			Kind              *TemplateKind           `json:"kind,omitempty"`
			LabelAssociations *[]TemplateSummaryLabel `json:"labelAssociations,omitempty"`
			TemplateMetaName  *string                 `json:"templateMetaName,omitempty"`
		} `json:"telegrafConfigs,omitempty"`
		Variables *[]struct {
			Arguments         *VariableProperties     `json:"arguments,omitempty"`
			Description       *string                 `json:"description,omitempty"`
			EnvReferences     *TemplateEnvReferences  `json:"envReferences,omitempty"`
			Id                *string                 `json:"id,omitempty"`
			Kind              *TemplateKind           `json:"kind,omitempty"`
			LabelAssociations *[]TemplateSummaryLabel `json:"labelAssociations,omitempty"`
			Name              *string                 `json:"name,omitempty"`
			OrgID             *string                 `json:"orgID,omitempty"`
			TemplateMetaName  *string                 `json:"templateMetaName,omitempty"`
		} `json:"variables,omitempty"`
	} `json:"summary,omitempty"`
}

// TemplateSummaryLabel defines model for TemplateSummaryLabel.
type TemplateSummaryLabel struct {
	EnvReferences *TemplateEnvReferences `json:"envReferences,omitempty"`
	Id            *string                `json:"id,omitempty"`
	Kind          *TemplateKind          `json:"kind,omitempty"`
	Name          *string                `json:"name,omitempty"`
	OrgID         *string                `json:"orgID,omitempty"`
	Properties    *struct {
		Color       *string `json:"color,omitempty"`
		Description *string `json:"description,omitempty"`
	} `json:"properties,omitempty"`
	TemplateMetaName *string `json:"templateMetaName,omitempty"`
}

// Declares a Flux test case
type TestStatement struct {
	// Represents the declaration of a variable
	Assignment *VariableAssignment `json:"assignment,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// Threshold defines model for Threshold.
type Threshold interface{}

// ThresholdBase defines model for ThresholdBase.
type ThresholdBase struct {
	// If true, only alert if all values meet threshold.
	AllValues *bool `json:"allValues,omitempty"`

	// The state to record if check matches a criteria.
	Level *CheckStatusLevel `json:"level,omitempty"`
}

// ThresholdCheck defines model for ThresholdCheck.
type ThresholdCheck struct {
	// Embedded struct due to allOf(#/components/schemas/CheckBase)
	CheckBase `yaml:",inline"`
	// Embedded fields due to inline allOf schema
	// Check repetition interval.
	Every *string `json:"every,omitempty"`

	// Duration to delay after the schedule, before executing check.
	Offset *string `json:"offset,omitempty"`

	// The template used to generate and write a status message.
	StatusMessageTemplate *string `json:"statusMessageTemplate,omitempty"`

	// List of tags to write to each status.
	Tags *[]struct {
		Key   *string `json:"key,omitempty"`
		Value *string `json:"value,omitempty"`
	} `json:"tags,omitempty"`
	Thresholds *[]Threshold       `json:"thresholds,omitempty"`
	Type       ThresholdCheckType `json:"type"`
}

// ThresholdCheckType defines model for ThresholdCheck.Type.
type ThresholdCheckType string

// Uses operators to act on a single operand in an expression
type UnaryExpression struct {
	Argument *Expression `json:"argument,omitempty"`
	Operator *string     `json:"operator,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// Represents integer numbers
type UnsignedIntegerLiteral struct {
	// Type of AST node
	Type  *NodeType `json:"type,omitempty"`
	Value *string   `json:"value,omitempty"`
}

// User defines model for User.
type User struct {
	Id      *string `json:"id,omitempty"`
	Name    string  `json:"name"`
	OauthID *string `json:"oauthID,omitempty"`

	// If inactive the user is inactive.
	Status *UserStatus `json:"status,omitempty"`
}

// If inactive the user is inactive.
type UserStatus string

// UserResponse defines model for UserResponse.
type UserResponse struct {
	Id    *string `json:"id,omitempty"`
	Links *struct {
		Self *string `json:"self,omitempty"`
	} `json:"links,omitempty"`
	Name    string  `json:"name"`
	OauthID *string `json:"oauthID,omitempty"`

	// If inactive the user is inactive.
	Status *UserResponseStatus `json:"status,omitempty"`
}

// If inactive the user is inactive.
type UserResponseStatus string

// Users defines model for Users.
type Users struct {
	Links *struct {
		Self *string `json:"self,omitempty"`
	} `json:"links,omitempty"`
	Users *[]UserResponse `json:"users,omitempty"`
}

// Variable defines model for Variable.
type Variable struct {
	Arguments   VariableProperties `json:"arguments"`
	CreatedAt   *time.Time         `json:"createdAt,omitempty"`
	Description *string            `json:"description,omitempty"`
	Id          *string            `json:"id,omitempty"`
	Labels      *Labels            `json:"labels,omitempty"`
	Links       *struct {
		Labels *string `json:"labels,omitempty"`
		Org    *string `json:"org,omitempty"`
		Self   *string `json:"self,omitempty"`
	} `json:"links,omitempty"`
	Name      string     `json:"name"`
	OrgID     string     `json:"orgID"`
	Selected  *[]string  `json:"selected,omitempty"`
	UpdatedAt *time.Time `json:"updatedAt,omitempty"`
}

// Represents the declaration of a variable
type VariableAssignment struct {
	// A valid Flux identifier
	Id   *Identifier `json:"id,omitempty"`
	Init *Expression `json:"init,omitempty"`

	// Type of AST node
	Type *NodeType `json:"type,omitempty"`
}

// VariableProperties defines model for VariableProperties.
type VariableProperties interface{}

// Variables defines model for Variables.
type Variables struct {
	Variables *[]Variable `json:"variables,omitempty"`
}

// View defines model for View.
type View struct {
	Id    *string `json:"id,omitempty"`
	Links *struct {
		Self *string `json:"self,omitempty"`
	} `json:"links,omitempty"`
	Name       string         `json:"name"`
	Properties ViewProperties `json:"properties"`
}

// ViewProperties defines model for ViewProperties.
type ViewProperties interface{}

// WritePrecision defines model for WritePrecision.
type WritePrecision string

// XYGeom defines model for XYGeom.
type XYGeom string

// XYViewProperties defines model for XYViewProperties.
type XYViewProperties struct {
	// The viewport for a View's visualizations
	Axes Axes `json:"axes"`

	// Colors define color encoding of data into a visualization
	Colors                     []DashboardColor                `json:"colors"`
	GenerateXAxisTicks         *[]string                       `json:"generateXAxisTicks,omitempty"`
	GenerateYAxisTicks         *[]string                       `json:"generateYAxisTicks,omitempty"`
	Geom                       XYGeom                          `json:"geom"`
	HoverDimension             *XYViewPropertiesHoverDimension `json:"hoverDimension,omitempty"`
	LegendColorizeRows         *bool                           `json:"legendColorizeRows,omitempty"`
	LegendHide                 *bool                           `json:"legendHide,omitempty"`
	LegendOpacity              *float32                        `json:"legendOpacity,omitempty"`
	LegendOrientationThreshold *int                            `json:"legendOrientationThreshold,omitempty"`
	Note                       string                          `json:"note"`
	Position                   XYViewPropertiesPosition        `json:"position"`
	Queries                    []DashboardQuery                `json:"queries"`
	ShadeBelow                 *bool                           `json:"shadeBelow,omitempty"`
	Shape                      XYViewPropertiesShape           `json:"shape"`

	// If true, will display note when empty
	ShowNoteWhenEmpty bool `json:"showNoteWhenEmpty"`

	// StaticLegend represents the options specific to the static legend
	StaticLegend *StaticLegend        `json:"staticLegend,omitempty"`
	TimeFormat   *string              `json:"timeFormat,omitempty"`
	Type         XYViewPropertiesType `json:"type"`
	XColumn      *string              `json:"xColumn,omitempty"`
	XTickStart   *float32             `json:"xTickStart,omitempty"`
	XTickStep    *float32             `json:"xTickStep,omitempty"`
	XTotalTicks  *int                 `json:"xTotalTicks,omitempty"`
	YColumn      *string              `json:"yColumn,omitempty"`
	YTickStart   *float32             `json:"yTickStart,omitempty"`
	YTickStep    *float32             `json:"yTickStep,omitempty"`
	YTotalTicks  *int                 `json:"yTotalTicks,omitempty"`
}

// XYViewPropertiesHoverDimension defines model for XYViewProperties.HoverDimension.
type XYViewPropertiesHoverDimension string

// XYViewPropertiesPosition defines model for XYViewProperties.Position.
type XYViewPropertiesPosition string

// XYViewPropertiesShape defines model for XYViewProperties.Shape.
type XYViewPropertiesShape string

// XYViewPropertiesType defines model for XYViewProperties.Type.
type XYViewPropertiesType string

// After defines model for After.
type After string

// Descending defines model for Descending.
type Descending bool

// Limit defines model for Limit.
type Limit int

// Offset defines model for Offset.
type Offset int

// TraceSpan defines model for TraceSpan.
type TraceSpan string

// ServerError defines model for ServerError.
type ServerError Error

// GetRoutesParams defines parameters for GetRoutes.
type GetRoutesParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetAuthorizationsParams defines parameters for GetAuthorizations.
type GetAuthorizationsParams struct {
	// Only show authorizations that belong to a user ID.
	UserID *string `json:"userID,omitempty"`

	// Only show authorizations that belong to a user name.
	User *string `json:"user,omitempty"`

	// Only show authorizations that belong to an organization ID.
	OrgID *string `json:"orgID,omitempty"`

	// Only show authorizations that belong to a organization name.
	Org *string `json:"org,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostAuthorizationsJSONBody defines parameters for PostAuthorizations.
type PostAuthorizationsJSONBody AuthorizationPostRequest

// PostAuthorizationsParams defines parameters for PostAuthorizations.
type PostAuthorizationsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteAuthorizationsIDParams defines parameters for DeleteAuthorizationsID.
type DeleteAuthorizationsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetAuthorizationsIDParams defines parameters for GetAuthorizationsID.
type GetAuthorizationsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PatchAuthorizationsIDJSONBody defines parameters for PatchAuthorizationsID.
type PatchAuthorizationsIDJSONBody AuthorizationUpdateRequest

// PatchAuthorizationsIDParams defines parameters for PatchAuthorizationsID.
type PatchAuthorizationsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetBackupKVParams defines parameters for GetBackupKV.
type GetBackupKVParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetBackupMetadataParams defines parameters for GetBackupMetadata.
type GetBackupMetadataParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`

	// Indicates the content encoding (usually a compression algorithm) that the client can understand.
	AcceptEncoding *GetBackupMetadataParamsAcceptEncoding `json:"Accept-Encoding,omitempty"`
}

// GetBackupMetadataParamsAcceptEncoding defines parameters for GetBackupMetadata.
type GetBackupMetadataParamsAcceptEncoding string

// GetBackupShardIdParams defines parameters for GetBackupShardId.
type GetBackupShardIdParams struct {
	// Earliest time to include in the snapshot. RFC3339 format.
	Since *time.Time `json:"since,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`

	// Indicates the content encoding (usually a compression algorithm) that the client can understand.
	AcceptEncoding *GetBackupShardIdParamsAcceptEncoding `json:"Accept-Encoding,omitempty"`
}

// GetBackupShardIdParamsAcceptEncoding defines parameters for GetBackupShardId.
type GetBackupShardIdParamsAcceptEncoding string

// GetBucketsParams defines parameters for GetBuckets.
type GetBucketsParams struct {
	Offset *Offset `json:"offset,omitempty"`
	Limit  *Limit  `json:"limit,omitempty"`

	// The last resource ID from which to seek from (but not including). This is to be used instead of `offset`.
	After *After `json:"after,omitempty"`

	// The name of the organization.
	Org *string `json:"org,omitempty"`

	// The organization ID.
	OrgID *string `json:"orgID,omitempty"`

	// Only returns buckets with a specific name.
	Name *string `json:"name,omitempty"`

	// Only returns buckets with a specific ID.
	Id *string `json:"id,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostBucketsJSONBody defines parameters for PostBuckets.
type PostBucketsJSONBody PostBucketRequest

// PostBucketsParams defines parameters for PostBuckets.
type PostBucketsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteBucketsIDParams defines parameters for DeleteBucketsID.
type DeleteBucketsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetBucketsIDParams defines parameters for GetBucketsID.
type GetBucketsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PatchBucketsIDJSONBody defines parameters for PatchBucketsID.
type PatchBucketsIDJSONBody PatchBucketRequest

// PatchBucketsIDParams defines parameters for PatchBucketsID.
type PatchBucketsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetBucketsIDLabelsParams defines parameters for GetBucketsIDLabels.
type GetBucketsIDLabelsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostBucketsIDLabelsJSONBody defines parameters for PostBucketsIDLabels.
type PostBucketsIDLabelsJSONBody LabelMapping

// PostBucketsIDLabelsParams defines parameters for PostBucketsIDLabels.
type PostBucketsIDLabelsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteBucketsIDLabelsIDParams defines parameters for DeleteBucketsIDLabelsID.
type DeleteBucketsIDLabelsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetBucketsIDMembersParams defines parameters for GetBucketsIDMembers.
type GetBucketsIDMembersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostBucketsIDMembersJSONBody defines parameters for PostBucketsIDMembers.
type PostBucketsIDMembersJSONBody AddResourceMemberRequestBody

// PostBucketsIDMembersParams defines parameters for PostBucketsIDMembers.
type PostBucketsIDMembersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteBucketsIDMembersIDParams defines parameters for DeleteBucketsIDMembersID.
type DeleteBucketsIDMembersIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetBucketsIDOwnersParams defines parameters for GetBucketsIDOwners.
type GetBucketsIDOwnersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostBucketsIDOwnersJSONBody defines parameters for PostBucketsIDOwners.
type PostBucketsIDOwnersJSONBody AddResourceMemberRequestBody

// PostBucketsIDOwnersParams defines parameters for PostBucketsIDOwners.
type PostBucketsIDOwnersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteBucketsIDOwnersIDParams defines parameters for DeleteBucketsIDOwnersID.
type DeleteBucketsIDOwnersIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetChecksParams defines parameters for GetChecks.
type GetChecksParams struct {
	Offset *Offset `json:"offset,omitempty"`
	Limit  *Limit  `json:"limit,omitempty"`

	// Only show checks that belong to a specific organization ID.
	OrgID string `json:"orgID"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// CreateCheckJSONBody defines parameters for CreateCheck.
type CreateCheckJSONBody PostCheck

// DeleteChecksIDParams defines parameters for DeleteChecksID.
type DeleteChecksIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetChecksIDParams defines parameters for GetChecksID.
type GetChecksIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PatchChecksIDJSONBody defines parameters for PatchChecksID.
type PatchChecksIDJSONBody CheckPatch

// PatchChecksIDParams defines parameters for PatchChecksID.
type PatchChecksIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PutChecksIDJSONBody defines parameters for PutChecksID.
type PutChecksIDJSONBody Check

// PutChecksIDParams defines parameters for PutChecksID.
type PutChecksIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetChecksIDLabelsParams defines parameters for GetChecksIDLabels.
type GetChecksIDLabelsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostChecksIDLabelsJSONBody defines parameters for PostChecksIDLabels.
type PostChecksIDLabelsJSONBody LabelMapping

// PostChecksIDLabelsParams defines parameters for PostChecksIDLabels.
type PostChecksIDLabelsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteChecksIDLabelsIDParams defines parameters for DeleteChecksIDLabelsID.
type DeleteChecksIDLabelsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetChecksIDQueryParams defines parameters for GetChecksIDQuery.
type GetChecksIDQueryParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetDashboardsParams defines parameters for GetDashboards.
type GetDashboardsParams struct {
	Offset     *Offset     `json:"offset,omitempty"`
	Limit      *Limit      `json:"limit,omitempty"`
	Descending *Descending `json:"descending,omitempty"`

	// A user identifier. Returns only dashboards where this user has the `owner` role.
	Owner *string `json:"owner,omitempty"`

	// The column to sort by.
	SortBy *GetDashboardsParamsSortBy `json:"sortBy,omitempty"`

	// A list of dashboard identifiers. Returns only the listed dashboards. If both `id` and `owner` are specified, only `id` is used.
	Id *[]string `json:"id,omitempty"`

	// The identifier of the organization.
	OrgID *string `json:"orgID,omitempty"`

	// The name of the organization.
	Org *string `json:"org,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetDashboardsParamsSortBy defines parameters for GetDashboards.
type GetDashboardsParamsSortBy string

// PostDashboardsJSONBody defines parameters for PostDashboards.
type PostDashboardsJSONBody CreateDashboardRequest

// PostDashboardsParams defines parameters for PostDashboards.
type PostDashboardsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteDashboardsIDParams defines parameters for DeleteDashboardsID.
type DeleteDashboardsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetDashboardsIDParams defines parameters for GetDashboardsID.
type GetDashboardsIDParams struct {
	// Includes the cell view properties in the response if set to `properties`
	Include *GetDashboardsIDParamsInclude `json:"include,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetDashboardsIDParamsInclude defines parameters for GetDashboardsID.
type GetDashboardsIDParamsInclude string

// PatchDashboardsIDJSONBody defines parameters for PatchDashboardsID.
type PatchDashboardsIDJSONBody struct {
	Cells *CellWithViewProperties `json:"cells,omitempty"`

	// optional, when provided will replace the description
	Description *string `json:"description,omitempty"`

	// optional, when provided will replace the name
	Name *string `json:"name,omitempty"`
}

// PatchDashboardsIDParams defines parameters for PatchDashboardsID.
type PatchDashboardsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostDashboardsIDCellsJSONBody defines parameters for PostDashboardsIDCells.
type PostDashboardsIDCellsJSONBody CreateCell

// PostDashboardsIDCellsParams defines parameters for PostDashboardsIDCells.
type PostDashboardsIDCellsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PutDashboardsIDCellsJSONBody defines parameters for PutDashboardsIDCells.
type PutDashboardsIDCellsJSONBody Cells

// PutDashboardsIDCellsParams defines parameters for PutDashboardsIDCells.
type PutDashboardsIDCellsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteDashboardsIDCellsIDParams defines parameters for DeleteDashboardsIDCellsID.
type DeleteDashboardsIDCellsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PatchDashboardsIDCellsIDJSONBody defines parameters for PatchDashboardsIDCellsID.
type PatchDashboardsIDCellsIDJSONBody CellUpdate

// PatchDashboardsIDCellsIDParams defines parameters for PatchDashboardsIDCellsID.
type PatchDashboardsIDCellsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetDashboardsIDCellsIDViewParams defines parameters for GetDashboardsIDCellsIDView.
type GetDashboardsIDCellsIDViewParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PatchDashboardsIDCellsIDViewJSONBody defines parameters for PatchDashboardsIDCellsIDView.
type PatchDashboardsIDCellsIDViewJSONBody View

// PatchDashboardsIDCellsIDViewParams defines parameters for PatchDashboardsIDCellsIDView.
type PatchDashboardsIDCellsIDViewParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetDashboardsIDLabelsParams defines parameters for GetDashboardsIDLabels.
type GetDashboardsIDLabelsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostDashboardsIDLabelsJSONBody defines parameters for PostDashboardsIDLabels.
type PostDashboardsIDLabelsJSONBody LabelMapping

// PostDashboardsIDLabelsParams defines parameters for PostDashboardsIDLabels.
type PostDashboardsIDLabelsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteDashboardsIDLabelsIDParams defines parameters for DeleteDashboardsIDLabelsID.
type DeleteDashboardsIDLabelsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetDashboardsIDMembersParams defines parameters for GetDashboardsIDMembers.
type GetDashboardsIDMembersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostDashboardsIDMembersJSONBody defines parameters for PostDashboardsIDMembers.
type PostDashboardsIDMembersJSONBody AddResourceMemberRequestBody

// PostDashboardsIDMembersParams defines parameters for PostDashboardsIDMembers.
type PostDashboardsIDMembersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteDashboardsIDMembersIDParams defines parameters for DeleteDashboardsIDMembersID.
type DeleteDashboardsIDMembersIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetDashboardsIDOwnersParams defines parameters for GetDashboardsIDOwners.
type GetDashboardsIDOwnersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostDashboardsIDOwnersJSONBody defines parameters for PostDashboardsIDOwners.
type PostDashboardsIDOwnersJSONBody AddResourceMemberRequestBody

// PostDashboardsIDOwnersParams defines parameters for PostDashboardsIDOwners.
type PostDashboardsIDOwnersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteDashboardsIDOwnersIDParams defines parameters for DeleteDashboardsIDOwnersID.
type DeleteDashboardsIDOwnersIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetDBRPsParams defines parameters for GetDBRPs.
type GetDBRPsParams struct {
	// Specifies the organization ID to filter on
	OrgID *string `json:"orgID,omitempty"`

	// Specifies the organization name to filter on
	Org *string `json:"org,omitempty"`

	// Specifies the mapping ID to filter on
	Id *string `json:"id,omitempty"`

	// Specifies the bucket ID to filter on
	BucketID *string `json:"bucketID,omitempty"`

	// Specifies filtering on default
	Default *bool `json:"default,omitempty"`

	// Specifies the database to filter on
	Db *string `json:"db,omitempty"`

	// Specifies the retention policy to filter on
	Rp *string `json:"rp,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostDBRPJSONBody defines parameters for PostDBRP.
type PostDBRPJSONBody DBRPCreate

// PostDBRPParams defines parameters for PostDBRP.
type PostDBRPParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteDBRPIDParams defines parameters for DeleteDBRPID.
type DeleteDBRPIDParams struct {
	// Specifies the organization ID of the mapping
	OrgID *string `json:"orgID,omitempty"`

	// Specifies the organization name of the mapping
	Org *string `json:"org,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetDBRPsIDParams defines parameters for GetDBRPsID.
type GetDBRPsIDParams struct {
	// Specifies the organization ID of the mapping
	OrgID *string `json:"orgID,omitempty"`

	// Specifies the organization name of the mapping
	Org *string `json:"org,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PatchDBRPIDJSONBody defines parameters for PatchDBRPID.
type PatchDBRPIDJSONBody DBRPUpdate

// PatchDBRPIDParams defines parameters for PatchDBRPID.
type PatchDBRPIDParams struct {
	// Specifies the organization ID of the mapping
	OrgID *string `json:"orgID,omitempty"`

	// Specifies the organization name of the mapping
	Org *string `json:"org,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostDeleteJSONBody defines parameters for PostDelete.
type PostDeleteJSONBody DeletePredicateRequest

// PostDeleteParams defines parameters for PostDelete.
type PostDeleteParams struct {
	// Specifies the organization to delete data from.
	Org *string `json:"org,omitempty"`

	// Specifies the bucket to delete data from.
	Bucket *string `json:"bucket,omitempty"`

	// Specifies the organization ID of the resource.
	OrgID *string `json:"orgID,omitempty"`

	// Specifies the bucket ID to delete data from.
	BucketID *string `json:"bucketID,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetFlagsParams defines parameters for GetFlags.
type GetFlagsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetHealthParams defines parameters for GetHealth.
type GetHealthParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetLabelsParams defines parameters for GetLabels.
type GetLabelsParams struct {
	// The organization ID.
	OrgID *string `json:"orgID,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostLabelsJSONBody defines parameters for PostLabels.
type PostLabelsJSONBody LabelCreateRequest

// DeleteLabelsIDParams defines parameters for DeleteLabelsID.
type DeleteLabelsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetLabelsIDParams defines parameters for GetLabelsID.
type GetLabelsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PatchLabelsIDJSONBody defines parameters for PatchLabelsID.
type PatchLabelsIDJSONBody LabelUpdate

// PatchLabelsIDParams defines parameters for PatchLabelsID.
type PatchLabelsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetLegacyAuthorizationsParams defines parameters for GetLegacyAuthorizations.
type GetLegacyAuthorizationsParams struct {
	// Only show legacy authorizations that belong to a user ID.
	UserID *string `json:"userID,omitempty"`

	// Only show legacy authorizations that belong to a user name.
	User *string `json:"user,omitempty"`

	// Only show legacy authorizations that belong to an organization ID.
	OrgID *string `json:"orgID,omitempty"`

	// Only show legacy authorizations that belong to a organization name.
	Org *string `json:"org,omitempty"`

	// Only show legacy authorizations with a specified token (auth name).
	Token *string `json:"token,omitempty"`

	// Only show legacy authorizations with a specified auth ID.
	AuthID *string `json:"authID,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostLegacyAuthorizationsJSONBody defines parameters for PostLegacyAuthorizations.
type PostLegacyAuthorizationsJSONBody LegacyAuthorizationPostRequest

// PostLegacyAuthorizationsParams defines parameters for PostLegacyAuthorizations.
type PostLegacyAuthorizationsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteLegacyAuthorizationsIDParams defines parameters for DeleteLegacyAuthorizationsID.
type DeleteLegacyAuthorizationsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetLegacyAuthorizationsIDParams defines parameters for GetLegacyAuthorizationsID.
type GetLegacyAuthorizationsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PatchLegacyAuthorizationsIDJSONBody defines parameters for PatchLegacyAuthorizationsID.
type PatchLegacyAuthorizationsIDJSONBody AuthorizationUpdateRequest

// PatchLegacyAuthorizationsIDParams defines parameters for PatchLegacyAuthorizationsID.
type PatchLegacyAuthorizationsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostLegacyAuthorizationsIDPasswordJSONBody defines parameters for PostLegacyAuthorizationsIDPassword.
type PostLegacyAuthorizationsIDPasswordJSONBody PasswordResetBody

// PostLegacyAuthorizationsIDPasswordParams defines parameters for PostLegacyAuthorizationsIDPassword.
type PostLegacyAuthorizationsIDPasswordParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetMeParams defines parameters for GetMe.
type GetMeParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PutMePasswordJSONBody defines parameters for PutMePassword.
type PutMePasswordJSONBody PasswordResetBody

// PutMePasswordParams defines parameters for PutMePassword.
type PutMePasswordParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetNotificationEndpointsParams defines parameters for GetNotificationEndpoints.
type GetNotificationEndpointsParams struct {
	Offset *Offset `json:"offset,omitempty"`
	Limit  *Limit  `json:"limit,omitempty"`

	// Only show notification endpoints that belong to specific organization ID.
	OrgID string `json:"orgID"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// CreateNotificationEndpointJSONBody defines parameters for CreateNotificationEndpoint.
type CreateNotificationEndpointJSONBody PostNotificationEndpoint

// DeleteNotificationEndpointsIDParams defines parameters for DeleteNotificationEndpointsID.
type DeleteNotificationEndpointsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetNotificationEndpointsIDParams defines parameters for GetNotificationEndpointsID.
type GetNotificationEndpointsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PatchNotificationEndpointsIDJSONBody defines parameters for PatchNotificationEndpointsID.
type PatchNotificationEndpointsIDJSONBody NotificationEndpointUpdate

// PatchNotificationEndpointsIDParams defines parameters for PatchNotificationEndpointsID.
type PatchNotificationEndpointsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PutNotificationEndpointsIDJSONBody defines parameters for PutNotificationEndpointsID.
type PutNotificationEndpointsIDJSONBody NotificationEndpoint

// PutNotificationEndpointsIDParams defines parameters for PutNotificationEndpointsID.
type PutNotificationEndpointsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetNotificationEndpointsIDLabelsParams defines parameters for GetNotificationEndpointsIDLabels.
type GetNotificationEndpointsIDLabelsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostNotificationEndpointIDLabelsJSONBody defines parameters for PostNotificationEndpointIDLabels.
type PostNotificationEndpointIDLabelsJSONBody LabelMapping

// PostNotificationEndpointIDLabelsParams defines parameters for PostNotificationEndpointIDLabels.
type PostNotificationEndpointIDLabelsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteNotificationEndpointsIDLabelsIDParams defines parameters for DeleteNotificationEndpointsIDLabelsID.
type DeleteNotificationEndpointsIDLabelsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetNotificationRulesParams defines parameters for GetNotificationRules.
type GetNotificationRulesParams struct {
	Offset *Offset `json:"offset,omitempty"`
	Limit  *Limit  `json:"limit,omitempty"`

	// Only show notification rules that belong to a specific organization ID.
	OrgID string `json:"orgID"`

	// Only show notifications that belong to the specific check ID.
	CheckID *string `json:"checkID,omitempty"`

	// Only return notification rules that "would match" statuses which contain the tag key value pairs provided.
	Tag *string `json:"tag,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// CreateNotificationRuleJSONBody defines parameters for CreateNotificationRule.
type CreateNotificationRuleJSONBody PostNotificationRule

// DeleteNotificationRulesIDParams defines parameters for DeleteNotificationRulesID.
type DeleteNotificationRulesIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetNotificationRulesIDParams defines parameters for GetNotificationRulesID.
type GetNotificationRulesIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PatchNotificationRulesIDJSONBody defines parameters for PatchNotificationRulesID.
type PatchNotificationRulesIDJSONBody NotificationRuleUpdate

// PatchNotificationRulesIDParams defines parameters for PatchNotificationRulesID.
type PatchNotificationRulesIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PutNotificationRulesIDJSONBody defines parameters for PutNotificationRulesID.
type PutNotificationRulesIDJSONBody NotificationRule

// PutNotificationRulesIDParams defines parameters for PutNotificationRulesID.
type PutNotificationRulesIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetNotificationRulesIDLabelsParams defines parameters for GetNotificationRulesIDLabels.
type GetNotificationRulesIDLabelsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostNotificationRuleIDLabelsJSONBody defines parameters for PostNotificationRuleIDLabels.
type PostNotificationRuleIDLabelsJSONBody LabelMapping

// PostNotificationRuleIDLabelsParams defines parameters for PostNotificationRuleIDLabels.
type PostNotificationRuleIDLabelsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteNotificationRulesIDLabelsIDParams defines parameters for DeleteNotificationRulesIDLabelsID.
type DeleteNotificationRulesIDLabelsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetNotificationRulesIDQueryParams defines parameters for GetNotificationRulesIDQuery.
type GetNotificationRulesIDQueryParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetOrgsParams defines parameters for GetOrgs.
type GetOrgsParams struct {
	Offset     *Offset     `json:"offset,omitempty"`
	Limit      *Limit      `json:"limit,omitempty"`
	Descending *Descending `json:"descending,omitempty"`

	// Filter organizations to a specific organization name.
	Org *string `json:"org,omitempty"`

	// Filter organizations to a specific organization ID.
	OrgID *string `json:"orgID,omitempty"`

	// Filter organizations to a specific user ID.
	UserID *string `json:"userID,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostOrgsJSONBody defines parameters for PostOrgs.
type PostOrgsJSONBody PostOrganizationRequest

// PostOrgsParams defines parameters for PostOrgs.
type PostOrgsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteOrgsIDParams defines parameters for DeleteOrgsID.
type DeleteOrgsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetOrgsIDParams defines parameters for GetOrgsID.
type GetOrgsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PatchOrgsIDJSONBody defines parameters for PatchOrgsID.
type PatchOrgsIDJSONBody PatchOrganizationRequest

// PatchOrgsIDParams defines parameters for PatchOrgsID.
type PatchOrgsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetOrgsIDMembersParams defines parameters for GetOrgsIDMembers.
type GetOrgsIDMembersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostOrgsIDMembersJSONBody defines parameters for PostOrgsIDMembers.
type PostOrgsIDMembersJSONBody AddResourceMemberRequestBody

// PostOrgsIDMembersParams defines parameters for PostOrgsIDMembers.
type PostOrgsIDMembersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteOrgsIDMembersIDParams defines parameters for DeleteOrgsIDMembersID.
type DeleteOrgsIDMembersIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetOrgsIDOwnersParams defines parameters for GetOrgsIDOwners.
type GetOrgsIDOwnersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostOrgsIDOwnersJSONBody defines parameters for PostOrgsIDOwners.
type PostOrgsIDOwnersJSONBody AddResourceMemberRequestBody

// PostOrgsIDOwnersParams defines parameters for PostOrgsIDOwners.
type PostOrgsIDOwnersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteOrgsIDOwnersIDParams defines parameters for DeleteOrgsIDOwnersID.
type DeleteOrgsIDOwnersIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetOrgsIDSecretsParams defines parameters for GetOrgsIDSecrets.
type GetOrgsIDSecretsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PatchOrgsIDSecretsJSONBody defines parameters for PatchOrgsIDSecrets.
type PatchOrgsIDSecretsJSONBody Secrets

// PatchOrgsIDSecretsParams defines parameters for PatchOrgsIDSecrets.
type PatchOrgsIDSecretsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostOrgsIDSecretsJSONBody defines parameters for PostOrgsIDSecrets.
type PostOrgsIDSecretsJSONBody SecretKeys

// PostOrgsIDSecretsParams defines parameters for PostOrgsIDSecrets.
type PostOrgsIDSecretsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteOrgsIDSecretsIDParams defines parameters for DeleteOrgsIDSecretsID.
type DeleteOrgsIDSecretsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostQueryJSONBody defines parameters for PostQuery.
type PostQueryJSONBody Query

// PostQueryParams defines parameters for PostQuery.
type PostQueryParams struct {
	// Specifies the name of the organization executing the query. Takes either the ID or Name. If both `orgID` and `org` are specified, `org` takes precedence.
	Org *string `json:"org,omitempty"`

	// Specifies the ID of the organization executing the query. If both `orgID` and `org` are specified, `org` takes precedence.
	OrgID *string `json:"orgID,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`

	// Indicates the content encoding (usually a compression algorithm) that the client can understand.
	AcceptEncoding *PostQueryParamsAcceptEncoding `json:"Accept-Encoding,omitempty"`
	ContentType    *PostQueryParamsContentType    `json:"Content-Type,omitempty"`
}

// PostQueryParamsAcceptEncoding defines parameters for PostQuery.
type PostQueryParamsAcceptEncoding string

// PostQueryParamsContentType defines parameters for PostQuery.
type PostQueryParamsContentType string

// PostQueryAnalyzeJSONBody defines parameters for PostQueryAnalyze.
type PostQueryAnalyzeJSONBody Query

// PostQueryAnalyzeParams defines parameters for PostQueryAnalyze.
type PostQueryAnalyzeParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan                         `json:"Zap-Trace-Span,omitempty"`
	ContentType  *PostQueryAnalyzeParamsContentType `json:"Content-Type,omitempty"`
}

// PostQueryAnalyzeParamsContentType defines parameters for PostQueryAnalyze.
type PostQueryAnalyzeParamsContentType string

// PostQueryAstJSONBody defines parameters for PostQueryAst.
type PostQueryAstJSONBody LanguageRequest

// PostQueryAstParams defines parameters for PostQueryAst.
type PostQueryAstParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan                     `json:"Zap-Trace-Span,omitempty"`
	ContentType  *PostQueryAstParamsContentType `json:"Content-Type,omitempty"`
}

// PostQueryAstParamsContentType defines parameters for PostQueryAst.
type PostQueryAstParamsContentType string

// GetQuerySuggestionsParams defines parameters for GetQuerySuggestions.
type GetQuerySuggestionsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetQuerySuggestionsNameParams defines parameters for GetQuerySuggestionsName.
type GetQuerySuggestionsNameParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetReadyParams defines parameters for GetReady.
type GetReadyParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetResourcesParams defines parameters for GetResources.
type GetResourcesParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostRestoreBucketIDParams defines parameters for PostRestoreBucketID.
type PostRestoreBucketIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan                            `json:"Zap-Trace-Span,omitempty"`
	ContentType  *PostRestoreBucketIDParamsContentType `json:"Content-Type,omitempty"`
}

// PostRestoreBucketIDParamsContentType defines parameters for PostRestoreBucketID.
type PostRestoreBucketIDParamsContentType string

// PostRestoreBucketMetadataJSONBody defines parameters for PostRestoreBucketMetadata.
type PostRestoreBucketMetadataJSONBody BucketMetadataManifest

// PostRestoreBucketMetadataParams defines parameters for PostRestoreBucketMetadata.
type PostRestoreBucketMetadataParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostRestoreKVParams defines parameters for PostRestoreKV.
type PostRestoreKVParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`

	// The value tells InfluxDB what compression is applied to the line protocol in the request payload.
	// To make an API request with a GZIP payload, send `Content-Encoding: gzip` as a request header.
	ContentEncoding *PostRestoreKVParamsContentEncoding `json:"Content-Encoding,omitempty"`
	ContentType     *PostRestoreKVParamsContentType     `json:"Content-Type,omitempty"`
}

// PostRestoreKVParamsContentEncoding defines parameters for PostRestoreKV.
type PostRestoreKVParamsContentEncoding string

// PostRestoreKVParamsContentType defines parameters for PostRestoreKV.
type PostRestoreKVParamsContentType string

// PostRestoreShardIdParams defines parameters for PostRestoreShardId.
type PostRestoreShardIdParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`

	// The value tells InfluxDB what compression is applied to the line protocol in the request payload.
	// To make an API request with a GZIP payload, send `Content-Encoding: gzip` as a request header.
	ContentEncoding *PostRestoreShardIdParamsContentEncoding `json:"Content-Encoding,omitempty"`
	ContentType     *PostRestoreShardIdParamsContentType     `json:"Content-Type,omitempty"`
}

// PostRestoreShardIdParamsContentEncoding defines parameters for PostRestoreShardId.
type PostRestoreShardIdParamsContentEncoding string

// PostRestoreShardIdParamsContentType defines parameters for PostRestoreShardId.
type PostRestoreShardIdParamsContentType string

// PostRestoreSQLParams defines parameters for PostRestoreSQL.
type PostRestoreSQLParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`

	// The value tells InfluxDB what compression is applied to the line protocol in the request payload.
	// To make an API request with a GZIP payload, send `Content-Encoding: gzip` as a request header.
	ContentEncoding *PostRestoreSQLParamsContentEncoding `json:"Content-Encoding,omitempty"`
	ContentType     *PostRestoreSQLParamsContentType     `json:"Content-Type,omitempty"`
}

// PostRestoreSQLParamsContentEncoding defines parameters for PostRestoreSQL.
type PostRestoreSQLParamsContentEncoding string

// PostRestoreSQLParamsContentType defines parameters for PostRestoreSQL.
type PostRestoreSQLParamsContentType string

// GetScrapersParams defines parameters for GetScrapers.
type GetScrapersParams struct {
	// Specifies the name of the scraper target.
	Name *string `json:"name,omitempty"`

	// List of scraper target IDs to return. If both `id` and `owner` are specified, only `id` is used.
	Id *[]string `json:"id,omitempty"`

	// Specifies the organization ID of the scraper target.
	OrgID *string `json:"orgID,omitempty"`

	// Specifies the organization name of the scraper target.
	Org *string `json:"org,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostScrapersJSONBody defines parameters for PostScrapers.
type PostScrapersJSONBody ScraperTargetRequest

// PostScrapersParams defines parameters for PostScrapers.
type PostScrapersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteScrapersIDParams defines parameters for DeleteScrapersID.
type DeleteScrapersIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetScrapersIDParams defines parameters for GetScrapersID.
type GetScrapersIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PatchScrapersIDJSONBody defines parameters for PatchScrapersID.
type PatchScrapersIDJSONBody ScraperTargetRequest

// PatchScrapersIDParams defines parameters for PatchScrapersID.
type PatchScrapersIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetScrapersIDLabelsParams defines parameters for GetScrapersIDLabels.
type GetScrapersIDLabelsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostScrapersIDLabelsJSONBody defines parameters for PostScrapersIDLabels.
type PostScrapersIDLabelsJSONBody LabelMapping

// PostScrapersIDLabelsParams defines parameters for PostScrapersIDLabels.
type PostScrapersIDLabelsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteScrapersIDLabelsIDParams defines parameters for DeleteScrapersIDLabelsID.
type DeleteScrapersIDLabelsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetScrapersIDMembersParams defines parameters for GetScrapersIDMembers.
type GetScrapersIDMembersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostScrapersIDMembersJSONBody defines parameters for PostScrapersIDMembers.
type PostScrapersIDMembersJSONBody AddResourceMemberRequestBody

// PostScrapersIDMembersParams defines parameters for PostScrapersIDMembers.
type PostScrapersIDMembersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteScrapersIDMembersIDParams defines parameters for DeleteScrapersIDMembersID.
type DeleteScrapersIDMembersIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetScrapersIDOwnersParams defines parameters for GetScrapersIDOwners.
type GetScrapersIDOwnersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostScrapersIDOwnersJSONBody defines parameters for PostScrapersIDOwners.
type PostScrapersIDOwnersJSONBody AddResourceMemberRequestBody

// PostScrapersIDOwnersParams defines parameters for PostScrapersIDOwners.
type PostScrapersIDOwnersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteScrapersIDOwnersIDParams defines parameters for DeleteScrapersIDOwnersID.
type DeleteScrapersIDOwnersIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetSetupParams defines parameters for GetSetup.
type GetSetupParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostSetupJSONBody defines parameters for PostSetup.
type PostSetupJSONBody OnboardingRequest

// PostSetupParams defines parameters for PostSetup.
type PostSetupParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostSigninParams defines parameters for PostSignin.
type PostSigninParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostSignoutParams defines parameters for PostSignout.
type PostSignoutParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetSourcesParams defines parameters for GetSources.
type GetSourcesParams struct {
	// The name of the organization.
	Org *string `json:"org,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostSourcesJSONBody defines parameters for PostSources.
type PostSourcesJSONBody Source

// PostSourcesParams defines parameters for PostSources.
type PostSourcesParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteSourcesIDParams defines parameters for DeleteSourcesID.
type DeleteSourcesIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetSourcesIDParams defines parameters for GetSourcesID.
type GetSourcesIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PatchSourcesIDJSONBody defines parameters for PatchSourcesID.
type PatchSourcesIDJSONBody Source

// PatchSourcesIDParams defines parameters for PatchSourcesID.
type PatchSourcesIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetSourcesIDBucketsParams defines parameters for GetSourcesIDBuckets.
type GetSourcesIDBucketsParams struct {
	// The name of the organization.
	Org *string `json:"org,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetSourcesIDHealthParams defines parameters for GetSourcesIDHealth.
type GetSourcesIDHealthParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// ListStacksParams defines parameters for ListStacks.
type ListStacksParams struct {
	// The organization ID of the stacks
	OrgID string `json:"orgID"`

	// A collection of names to filter the list by.
	Name *string `json:"name,omitempty"`

	// A collection of stackIDs to filter the list by.
	StackID *string `json:"stackID,omitempty"`
}

// CreateStackJSONBody defines parameters for CreateStack.
type CreateStackJSONBody struct {
	Description *string   `json:"description,omitempty"`
	Name        *string   `json:"name,omitempty"`
	OrgID       *string   `json:"orgID,omitempty"`
	Urls        *[]string `json:"urls,omitempty"`
}

// DeleteStackParams defines parameters for DeleteStack.
type DeleteStackParams struct {
	// The identifier of the organization.
	OrgID string `json:"orgID"`
}

// UpdateStackJSONBody defines parameters for UpdateStack.
type UpdateStackJSONBody struct {
	AdditionalResources *[]struct {
		Kind             string  `json:"kind"`
		ResourceID       string  `json:"resourceID"`
		TemplateMetaName *string `json:"templateMetaName,omitempty"`
	} `json:"additionalResources,omitempty"`
	Description  *string   `json:"description"`
	Name         *string   `json:"name"`
	TemplateURLs *[]string `json:"templateURLs"`
}

// GetTasksParams defines parameters for GetTasks.
type GetTasksParams struct {
	// Returns task with a specific name.
	Name *string `json:"name,omitempty"`

	// Return tasks after a specified ID.
	After *string `json:"after,omitempty"`

	// Filter tasks to a specific user ID.
	User *string `json:"user,omitempty"`

	// Filter tasks to a specific organization name.
	Org *string `json:"org,omitempty"`

	// Filter tasks to a specific organization ID.
	OrgID *string `json:"orgID,omitempty"`

	// Filter tasks by a status--"inactive" or "active".
	Status *GetTasksParamsStatus `json:"status,omitempty"`

	// The number of tasks to return
	Limit *int `json:"limit,omitempty"`

	// Type of task, unset by default.
	Type *GetTasksParamsType `json:"type,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetTasksParamsStatus defines parameters for GetTasks.
type GetTasksParamsStatus string

// GetTasksParamsType defines parameters for GetTasks.
type GetTasksParamsType string

// PostTasksJSONBody defines parameters for PostTasks.
type PostTasksJSONBody TaskCreateRequest

// PostTasksParams defines parameters for PostTasks.
type PostTasksParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteTasksIDParams defines parameters for DeleteTasksID.
type DeleteTasksIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetTasksIDParams defines parameters for GetTasksID.
type GetTasksIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PatchTasksIDJSONBody defines parameters for PatchTasksID.
type PatchTasksIDJSONBody TaskUpdateRequest

// PatchTasksIDParams defines parameters for PatchTasksID.
type PatchTasksIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetTasksIDLabelsParams defines parameters for GetTasksIDLabels.
type GetTasksIDLabelsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostTasksIDLabelsJSONBody defines parameters for PostTasksIDLabels.
type PostTasksIDLabelsJSONBody LabelMapping

// PostTasksIDLabelsParams defines parameters for PostTasksIDLabels.
type PostTasksIDLabelsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteTasksIDLabelsIDParams defines parameters for DeleteTasksIDLabelsID.
type DeleteTasksIDLabelsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetTasksIDLogsParams defines parameters for GetTasksIDLogs.
type GetTasksIDLogsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetTasksIDMembersParams defines parameters for GetTasksIDMembers.
type GetTasksIDMembersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostTasksIDMembersJSONBody defines parameters for PostTasksIDMembers.
type PostTasksIDMembersJSONBody AddResourceMemberRequestBody

// PostTasksIDMembersParams defines parameters for PostTasksIDMembers.
type PostTasksIDMembersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteTasksIDMembersIDParams defines parameters for DeleteTasksIDMembersID.
type DeleteTasksIDMembersIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetTasksIDOwnersParams defines parameters for GetTasksIDOwners.
type GetTasksIDOwnersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostTasksIDOwnersJSONBody defines parameters for PostTasksIDOwners.
type PostTasksIDOwnersJSONBody AddResourceMemberRequestBody

// PostTasksIDOwnersParams defines parameters for PostTasksIDOwners.
type PostTasksIDOwnersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteTasksIDOwnersIDParams defines parameters for DeleteTasksIDOwnersID.
type DeleteTasksIDOwnersIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetTasksIDRunsParams defines parameters for GetTasksIDRuns.
type GetTasksIDRunsParams struct {
	// Returns runs after a specific ID.
	After *string `json:"after,omitempty"`

	// The number of runs to return
	Limit *int `json:"limit,omitempty"`

	// Filter runs to those scheduled after this time, RFC3339
	AfterTime *time.Time `json:"afterTime,omitempty"`

	// Filter runs to those scheduled before this time, RFC3339
	BeforeTime *time.Time `json:"beforeTime,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostTasksIDRunsJSONBody defines parameters for PostTasksIDRuns.
type PostTasksIDRunsJSONBody RunManually

// PostTasksIDRunsParams defines parameters for PostTasksIDRuns.
type PostTasksIDRunsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteTasksIDRunsIDParams defines parameters for DeleteTasksIDRunsID.
type DeleteTasksIDRunsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetTasksIDRunsIDParams defines parameters for GetTasksIDRunsID.
type GetTasksIDRunsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetTasksIDRunsIDLogsParams defines parameters for GetTasksIDRunsIDLogs.
type GetTasksIDRunsIDLogsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostTasksIDRunsIDRetryParams defines parameters for PostTasksIDRunsIDRetry.
type PostTasksIDRunsIDRetryParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetTelegrafPluginsParams defines parameters for GetTelegrafPlugins.
type GetTelegrafPluginsParams struct {
	// The type of plugin desired.
	Type *string `json:"type,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetTelegrafsParams defines parameters for GetTelegrafs.
type GetTelegrafsParams struct {
	// The organization ID the Telegraf config belongs to.
	OrgID *string `json:"orgID,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostTelegrafsJSONBody defines parameters for PostTelegrafs.
type PostTelegrafsJSONBody TelegrafRequest

// PostTelegrafsParams defines parameters for PostTelegrafs.
type PostTelegrafsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteTelegrafsIDParams defines parameters for DeleteTelegrafsID.
type DeleteTelegrafsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetTelegrafsIDParams defines parameters for GetTelegrafsID.
type GetTelegrafsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan                  `json:"Zap-Trace-Span,omitempty"`
	Accept       *GetTelegrafsIDParamsAccept `json:"Accept,omitempty"`
}

// GetTelegrafsIDParamsAccept defines parameters for GetTelegrafsID.
type GetTelegrafsIDParamsAccept string

// PutTelegrafsIDJSONBody defines parameters for PutTelegrafsID.
type PutTelegrafsIDJSONBody TelegrafRequest

// PutTelegrafsIDParams defines parameters for PutTelegrafsID.
type PutTelegrafsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetTelegrafsIDLabelsParams defines parameters for GetTelegrafsIDLabels.
type GetTelegrafsIDLabelsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostTelegrafsIDLabelsJSONBody defines parameters for PostTelegrafsIDLabels.
type PostTelegrafsIDLabelsJSONBody LabelMapping

// PostTelegrafsIDLabelsParams defines parameters for PostTelegrafsIDLabels.
type PostTelegrafsIDLabelsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteTelegrafsIDLabelsIDParams defines parameters for DeleteTelegrafsIDLabelsID.
type DeleteTelegrafsIDLabelsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetTelegrafsIDMembersParams defines parameters for GetTelegrafsIDMembers.
type GetTelegrafsIDMembersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostTelegrafsIDMembersJSONBody defines parameters for PostTelegrafsIDMembers.
type PostTelegrafsIDMembersJSONBody AddResourceMemberRequestBody

// PostTelegrafsIDMembersParams defines parameters for PostTelegrafsIDMembers.
type PostTelegrafsIDMembersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteTelegrafsIDMembersIDParams defines parameters for DeleteTelegrafsIDMembersID.
type DeleteTelegrafsIDMembersIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetTelegrafsIDOwnersParams defines parameters for GetTelegrafsIDOwners.
type GetTelegrafsIDOwnersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostTelegrafsIDOwnersJSONBody defines parameters for PostTelegrafsIDOwners.
type PostTelegrafsIDOwnersJSONBody AddResourceMemberRequestBody

// PostTelegrafsIDOwnersParams defines parameters for PostTelegrafsIDOwners.
type PostTelegrafsIDOwnersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteTelegrafsIDOwnersIDParams defines parameters for DeleteTelegrafsIDOwnersID.
type DeleteTelegrafsIDOwnersIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// ApplyTemplateJSONBody defines parameters for ApplyTemplate.
type ApplyTemplateJSONBody TemplateApply

// ExportTemplateJSONBody defines parameters for ExportTemplate.
type ExportTemplateJSONBody interface{}

// GetUsersParams defines parameters for GetUsers.
type GetUsersParams struct {
	Offset *Offset `json:"offset,omitempty"`
	Limit  *Limit  `json:"limit,omitempty"`

	// The last resource ID from which to seek from (but not including). This is to be used instead of `offset`.
	After *After  `json:"after,omitempty"`
	Name  *string `json:"name,omitempty"`
	Id    *string `json:"id,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostUsersJSONBody defines parameters for PostUsers.
type PostUsersJSONBody User

// PostUsersParams defines parameters for PostUsers.
type PostUsersParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteUsersIDParams defines parameters for DeleteUsersID.
type DeleteUsersIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetUsersIDParams defines parameters for GetUsersID.
type GetUsersIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PatchUsersIDJSONBody defines parameters for PatchUsersID.
type PatchUsersIDJSONBody User

// PatchUsersIDParams defines parameters for PatchUsersID.
type PatchUsersIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostUsersIDPasswordJSONBody defines parameters for PostUsersIDPassword.
type PostUsersIDPasswordJSONBody PasswordResetBody

// PostUsersIDPasswordParams defines parameters for PostUsersIDPassword.
type PostUsersIDPasswordParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetVariablesParams defines parameters for GetVariables.
type GetVariablesParams struct {
	// The name of the organization.
	Org *string `json:"org,omitempty"`

	// The organization ID.
	OrgID *string `json:"orgID,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostVariablesJSONBody defines parameters for PostVariables.
type PostVariablesJSONBody Variable

// PostVariablesParams defines parameters for PostVariables.
type PostVariablesParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteVariablesIDParams defines parameters for DeleteVariablesID.
type DeleteVariablesIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetVariablesIDParams defines parameters for GetVariablesID.
type GetVariablesIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PatchVariablesIDJSONBody defines parameters for PatchVariablesID.
type PatchVariablesIDJSONBody Variable

// PatchVariablesIDParams defines parameters for PatchVariablesID.
type PatchVariablesIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PutVariablesIDJSONBody defines parameters for PutVariablesID.
type PutVariablesIDJSONBody Variable

// PutVariablesIDParams defines parameters for PutVariablesID.
type PutVariablesIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// GetVariablesIDLabelsParams defines parameters for GetVariablesIDLabels.
type GetVariablesIDLabelsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostVariablesIDLabelsJSONBody defines parameters for PostVariablesIDLabels.
type PostVariablesIDLabelsJSONBody LabelMapping

// PostVariablesIDLabelsParams defines parameters for PostVariablesIDLabels.
type PostVariablesIDLabelsParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// DeleteVariablesIDLabelsIDParams defines parameters for DeleteVariablesIDLabelsID.
type DeleteVariablesIDLabelsIDParams struct {
	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`
}

// PostWriteParams defines parameters for PostWrite.
type PostWriteParams struct {
	// The parameter value specifies the destination organization for writes. The database writes all points in the batch to this organization. If you provide both `orgID` and `org` parameters, `org` takes precedence.
	Org string `json:"org"`

	// The parameter value specifies the ID of the destination organization for writes. If both `orgID` and `org` are specified, `org` takes precedence.
	OrgID *string `json:"orgID,omitempty"`

	// The destination bucket for writes.
	Bucket string `json:"bucket"`

	// The precision for the unix timestamps within the body line-protocol.
	Precision *WritePrecision `json:"precision,omitempty"`

	// OpenTracing span context
	ZapTraceSpan *TraceSpan `json:"Zap-Trace-Span,omitempty"`

	// The value tells InfluxDB what compression is applied to the line protocol in the request payload.
	// To make an API request with a GZIP payload, send `Content-Encoding: gzip` as a request header.
	ContentEncoding *PostWriteParamsContentEncoding `json:"Content-Encoding,omitempty"`

	// The header value indicates the format of the data in the request body.
	ContentType *PostWriteParamsContentType `json:"Content-Type,omitempty"`

	// The header value indicates the size of the entity-body, in bytes, sent to the database. If the length is greater than the database's `max body` configuration option, the server responds with status code `413`.
	ContentLength *int `json:"Content-Length,omitempty"`

	// The header value specifies the response format.
	Accept *PostWriteParamsAccept `json:"Accept,omitempty"`
}

// PostWriteParamsContentEncoding defines parameters for PostWrite.
type PostWriteParamsContentEncoding string

// PostWriteParamsContentType defines parameters for PostWrite.
type PostWriteParamsContentType string

// PostWriteParamsAccept defines parameters for PostWrite.
type PostWriteParamsAccept string

// PostAuthorizationsJSONRequestBody defines body for PostAuthorizations for application/json ContentType.
type PostAuthorizationsJSONRequestBody PostAuthorizationsJSONBody

// PatchAuthorizationsIDJSONRequestBody defines body for PatchAuthorizationsID for application/json ContentType.
type PatchAuthorizationsIDJSONRequestBody PatchAuthorizationsIDJSONBody

// PostBucketsJSONRequestBody defines body for PostBuckets for application/json ContentType.
type PostBucketsJSONRequestBody PostBucketsJSONBody

// PatchBucketsIDJSONRequestBody defines body for PatchBucketsID for application/json ContentType.
type PatchBucketsIDJSONRequestBody PatchBucketsIDJSONBody

// PostBucketsIDLabelsJSONRequestBody defines body for PostBucketsIDLabels for application/json ContentType.
type PostBucketsIDLabelsJSONRequestBody PostBucketsIDLabelsJSONBody

// PostBucketsIDMembersJSONRequestBody defines body for PostBucketsIDMembers for application/json ContentType.
type PostBucketsIDMembersJSONRequestBody PostBucketsIDMembersJSONBody

// PostBucketsIDOwnersJSONRequestBody defines body for PostBucketsIDOwners for application/json ContentType.
type PostBucketsIDOwnersJSONRequestBody PostBucketsIDOwnersJSONBody

// CreateCheckJSONRequestBody defines body for CreateCheck for application/json ContentType.
type CreateCheckJSONRequestBody CreateCheckJSONBody

// PatchChecksIDJSONRequestBody defines body for PatchChecksID for application/json ContentType.
type PatchChecksIDJSONRequestBody PatchChecksIDJSONBody

// PutChecksIDJSONRequestBody defines body for PutChecksID for application/json ContentType.
type PutChecksIDJSONRequestBody PutChecksIDJSONBody

// PostChecksIDLabelsJSONRequestBody defines body for PostChecksIDLabels for application/json ContentType.
type PostChecksIDLabelsJSONRequestBody PostChecksIDLabelsJSONBody

// PostDashboardsJSONRequestBody defines body for PostDashboards for application/json ContentType.
type PostDashboardsJSONRequestBody PostDashboardsJSONBody

// PatchDashboardsIDJSONRequestBody defines body for PatchDashboardsID for application/json ContentType.
type PatchDashboardsIDJSONRequestBody PatchDashboardsIDJSONBody

// PostDashboardsIDCellsJSONRequestBody defines body for PostDashboardsIDCells for application/json ContentType.
type PostDashboardsIDCellsJSONRequestBody PostDashboardsIDCellsJSONBody

// PutDashboardsIDCellsJSONRequestBody defines body for PutDashboardsIDCells for application/json ContentType.
type PutDashboardsIDCellsJSONRequestBody PutDashboardsIDCellsJSONBody

// PatchDashboardsIDCellsIDJSONRequestBody defines body for PatchDashboardsIDCellsID for application/json ContentType.
type PatchDashboardsIDCellsIDJSONRequestBody PatchDashboardsIDCellsIDJSONBody

// PatchDashboardsIDCellsIDViewJSONRequestBody defines body for PatchDashboardsIDCellsIDView for application/json ContentType.
type PatchDashboardsIDCellsIDViewJSONRequestBody PatchDashboardsIDCellsIDViewJSONBody

// PostDashboardsIDLabelsJSONRequestBody defines body for PostDashboardsIDLabels for application/json ContentType.
type PostDashboardsIDLabelsJSONRequestBody PostDashboardsIDLabelsJSONBody

// PostDashboardsIDMembersJSONRequestBody defines body for PostDashboardsIDMembers for application/json ContentType.
type PostDashboardsIDMembersJSONRequestBody PostDashboardsIDMembersJSONBody

// PostDashboardsIDOwnersJSONRequestBody defines body for PostDashboardsIDOwners for application/json ContentType.
type PostDashboardsIDOwnersJSONRequestBody PostDashboardsIDOwnersJSONBody

// PostDBRPJSONRequestBody defines body for PostDBRP for application/json ContentType.
type PostDBRPJSONRequestBody PostDBRPJSONBody

// PatchDBRPIDJSONRequestBody defines body for PatchDBRPID for application/json ContentType.
type PatchDBRPIDJSONRequestBody PatchDBRPIDJSONBody

// PostDeleteJSONRequestBody defines body for PostDelete for application/json ContentType.
type PostDeleteJSONRequestBody PostDeleteJSONBody

// PostLabelsJSONRequestBody defines body for PostLabels for application/json ContentType.
type PostLabelsJSONRequestBody PostLabelsJSONBody

// PatchLabelsIDJSONRequestBody defines body for PatchLabelsID for application/json ContentType.
type PatchLabelsIDJSONRequestBody PatchLabelsIDJSONBody

// PostLegacyAuthorizationsJSONRequestBody defines body for PostLegacyAuthorizations for application/json ContentType.
type PostLegacyAuthorizationsJSONRequestBody PostLegacyAuthorizationsJSONBody

// PatchLegacyAuthorizationsIDJSONRequestBody defines body for PatchLegacyAuthorizationsID for application/json ContentType.
type PatchLegacyAuthorizationsIDJSONRequestBody PatchLegacyAuthorizationsIDJSONBody

// PostLegacyAuthorizationsIDPasswordJSONRequestBody defines body for PostLegacyAuthorizationsIDPassword for application/json ContentType.
type PostLegacyAuthorizationsIDPasswordJSONRequestBody PostLegacyAuthorizationsIDPasswordJSONBody

// PutMePasswordJSONRequestBody defines body for PutMePassword for application/json ContentType.
type PutMePasswordJSONRequestBody PutMePasswordJSONBody

// CreateNotificationEndpointJSONRequestBody defines body for CreateNotificationEndpoint for application/json ContentType.
type CreateNotificationEndpointJSONRequestBody CreateNotificationEndpointJSONBody

// PatchNotificationEndpointsIDJSONRequestBody defines body for PatchNotificationEndpointsID for application/json ContentType.
type PatchNotificationEndpointsIDJSONRequestBody PatchNotificationEndpointsIDJSONBody

// PutNotificationEndpointsIDJSONRequestBody defines body for PutNotificationEndpointsID for application/json ContentType.
type PutNotificationEndpointsIDJSONRequestBody PutNotificationEndpointsIDJSONBody

// PostNotificationEndpointIDLabelsJSONRequestBody defines body for PostNotificationEndpointIDLabels for application/json ContentType.
type PostNotificationEndpointIDLabelsJSONRequestBody PostNotificationEndpointIDLabelsJSONBody

// CreateNotificationRuleJSONRequestBody defines body for CreateNotificationRule for application/json ContentType.
type CreateNotificationRuleJSONRequestBody CreateNotificationRuleJSONBody

// PatchNotificationRulesIDJSONRequestBody defines body for PatchNotificationRulesID for application/json ContentType.
type PatchNotificationRulesIDJSONRequestBody PatchNotificationRulesIDJSONBody

// PutNotificationRulesIDJSONRequestBody defines body for PutNotificationRulesID for application/json ContentType.
type PutNotificationRulesIDJSONRequestBody PutNotificationRulesIDJSONBody

// PostNotificationRuleIDLabelsJSONRequestBody defines body for PostNotificationRuleIDLabels for application/json ContentType.
type PostNotificationRuleIDLabelsJSONRequestBody PostNotificationRuleIDLabelsJSONBody

// PostOrgsJSONRequestBody defines body for PostOrgs for application/json ContentType.
type PostOrgsJSONRequestBody PostOrgsJSONBody

// PatchOrgsIDJSONRequestBody defines body for PatchOrgsID for application/json ContentType.
type PatchOrgsIDJSONRequestBody PatchOrgsIDJSONBody

// PostOrgsIDMembersJSONRequestBody defines body for PostOrgsIDMembers for application/json ContentType.
type PostOrgsIDMembersJSONRequestBody PostOrgsIDMembersJSONBody

// PostOrgsIDOwnersJSONRequestBody defines body for PostOrgsIDOwners for application/json ContentType.
type PostOrgsIDOwnersJSONRequestBody PostOrgsIDOwnersJSONBody

// PatchOrgsIDSecretsJSONRequestBody defines body for PatchOrgsIDSecrets for application/json ContentType.
type PatchOrgsIDSecretsJSONRequestBody PatchOrgsIDSecretsJSONBody

// PostOrgsIDSecretsJSONRequestBody defines body for PostOrgsIDSecrets for application/json ContentType.
type PostOrgsIDSecretsJSONRequestBody PostOrgsIDSecretsJSONBody

// PostQueryJSONRequestBody defines body for PostQuery for application/json ContentType.
type PostQueryJSONRequestBody PostQueryJSONBody

// PostQueryAnalyzeJSONRequestBody defines body for PostQueryAnalyze for application/json ContentType.
type PostQueryAnalyzeJSONRequestBody PostQueryAnalyzeJSONBody

// PostQueryAstJSONRequestBody defines body for PostQueryAst for application/json ContentType.
type PostQueryAstJSONRequestBody PostQueryAstJSONBody

// PostRestoreBucketMetadataJSONRequestBody defines body for PostRestoreBucketMetadata for application/json ContentType.
type PostRestoreBucketMetadataJSONRequestBody PostRestoreBucketMetadataJSONBody

// PostScrapersJSONRequestBody defines body for PostScrapers for application/json ContentType.
type PostScrapersJSONRequestBody PostScrapersJSONBody

// PatchScrapersIDJSONRequestBody defines body for PatchScrapersID for application/json ContentType.
type PatchScrapersIDJSONRequestBody PatchScrapersIDJSONBody

// PostScrapersIDLabelsJSONRequestBody defines body for PostScrapersIDLabels for application/json ContentType.
type PostScrapersIDLabelsJSONRequestBody PostScrapersIDLabelsJSONBody

// PostScrapersIDMembersJSONRequestBody defines body for PostScrapersIDMembers for application/json ContentType.
type PostScrapersIDMembersJSONRequestBody PostScrapersIDMembersJSONBody

// PostScrapersIDOwnersJSONRequestBody defines body for PostScrapersIDOwners for application/json ContentType.
type PostScrapersIDOwnersJSONRequestBody PostScrapersIDOwnersJSONBody

// PostSetupJSONRequestBody defines body for PostSetup for application/json ContentType.
type PostSetupJSONRequestBody PostSetupJSONBody

// PostSourcesJSONRequestBody defines body for PostSources for application/json ContentType.
type PostSourcesJSONRequestBody PostSourcesJSONBody

// PatchSourcesIDJSONRequestBody defines body for PatchSourcesID for application/json ContentType.
type PatchSourcesIDJSONRequestBody PatchSourcesIDJSONBody

// CreateStackJSONRequestBody defines body for CreateStack for application/json ContentType.
type CreateStackJSONRequestBody CreateStackJSONBody

// UpdateStackJSONRequestBody defines body for UpdateStack for application/json ContentType.
type UpdateStackJSONRequestBody UpdateStackJSONBody

// PostTasksJSONRequestBody defines body for PostTasks for application/json ContentType.
type PostTasksJSONRequestBody PostTasksJSONBody

// PatchTasksIDJSONRequestBody defines body for PatchTasksID for application/json ContentType.
type PatchTasksIDJSONRequestBody PatchTasksIDJSONBody

// PostTasksIDLabelsJSONRequestBody defines body for PostTasksIDLabels for application/json ContentType.
type PostTasksIDLabelsJSONRequestBody PostTasksIDLabelsJSONBody

// PostTasksIDMembersJSONRequestBody defines body for PostTasksIDMembers for application/json ContentType.
type PostTasksIDMembersJSONRequestBody PostTasksIDMembersJSONBody

// PostTasksIDOwnersJSONRequestBody defines body for PostTasksIDOwners for application/json ContentType.
type PostTasksIDOwnersJSONRequestBody PostTasksIDOwnersJSONBody

// PostTasksIDRunsJSONRequestBody defines body for PostTasksIDRuns for application/json ContentType.
type PostTasksIDRunsJSONRequestBody PostTasksIDRunsJSONBody

// PostTelegrafsJSONRequestBody defines body for PostTelegrafs for application/json ContentType.
type PostTelegrafsJSONRequestBody PostTelegrafsJSONBody

// PutTelegrafsIDJSONRequestBody defines body for PutTelegrafsID for application/json ContentType.
type PutTelegrafsIDJSONRequestBody PutTelegrafsIDJSONBody

// PostTelegrafsIDLabelsJSONRequestBody defines body for PostTelegrafsIDLabels for application/json ContentType.
type PostTelegrafsIDLabelsJSONRequestBody PostTelegrafsIDLabelsJSONBody

// PostTelegrafsIDMembersJSONRequestBody defines body for PostTelegrafsIDMembers for application/json ContentType.
type PostTelegrafsIDMembersJSONRequestBody PostTelegrafsIDMembersJSONBody

// PostTelegrafsIDOwnersJSONRequestBody defines body for PostTelegrafsIDOwners for application/json ContentType.
type PostTelegrafsIDOwnersJSONRequestBody PostTelegrafsIDOwnersJSONBody

// ApplyTemplateJSONRequestBody defines body for ApplyTemplate for application/json ContentType.
type ApplyTemplateJSONRequestBody ApplyTemplateJSONBody

// ExportTemplateJSONRequestBody defines body for ExportTemplate for application/json ContentType.
type ExportTemplateJSONRequestBody ExportTemplateJSONBody

// PostUsersJSONRequestBody defines body for PostUsers for application/json ContentType.
type PostUsersJSONRequestBody PostUsersJSONBody

// PatchUsersIDJSONRequestBody defines body for PatchUsersID for application/json ContentType.
type PatchUsersIDJSONRequestBody PatchUsersIDJSONBody

// PostUsersIDPasswordJSONRequestBody defines body for PostUsersIDPassword for application/json ContentType.
type PostUsersIDPasswordJSONRequestBody PostUsersIDPasswordJSONBody

// PostVariablesJSONRequestBody defines body for PostVariables for application/json ContentType.
type PostVariablesJSONRequestBody PostVariablesJSONBody

// PatchVariablesIDJSONRequestBody defines body for PatchVariablesID for application/json ContentType.
type PatchVariablesIDJSONRequestBody PatchVariablesIDJSONBody

// PutVariablesIDJSONRequestBody defines body for PutVariablesID for application/json ContentType.
type PutVariablesIDJSONRequestBody PutVariablesIDJSONBody

// PostVariablesIDLabelsJSONRequestBody defines body for PostVariablesIDLabels for application/json ContentType.
type PostVariablesIDLabelsJSONRequestBody PostVariablesIDLabelsJSONBody

// Getter for additional properties for Flags. Returns the specified
// element and whether it was found
func (a Flags) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for Flags
func (a *Flags) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for Flags to handle AdditionalProperties
func (a *Flags) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return errors.Wrap(err, fmt.Sprintf("error unmarshaling field %s", fieldName))
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for Flags to handle AdditionalProperties
func (a Flags) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, errors.Wrap(err, fmt.Sprintf("error marshaling '%s'", fieldName))
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for FluxSuggestion_Params. Returns the specified
// element and whether it was found
func (a FluxSuggestion_Params) Get(fieldName string) (value string, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for FluxSuggestion_Params
func (a *FluxSuggestion_Params) Set(fieldName string, value string) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]string)
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for FluxSuggestion_Params to handle AdditionalProperties
func (a *FluxSuggestion_Params) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]string)
		for fieldName, fieldBuf := range object {
			var fieldVal string
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return errors.Wrap(err, fmt.Sprintf("error unmarshaling field %s", fieldName))
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for FluxSuggestion_Params to handle AdditionalProperties
func (a FluxSuggestion_Params) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, errors.Wrap(err, fmt.Sprintf("error marshaling '%s'", fieldName))
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for HTTPNotificationEndpoint_Headers. Returns the specified
// element and whether it was found
func (a HTTPNotificationEndpoint_Headers) Get(fieldName string) (value string, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for HTTPNotificationEndpoint_Headers
func (a *HTTPNotificationEndpoint_Headers) Set(fieldName string, value string) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]string)
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for HTTPNotificationEndpoint_Headers to handle AdditionalProperties
func (a *HTTPNotificationEndpoint_Headers) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]string)
		for fieldName, fieldBuf := range object {
			var fieldVal string
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return errors.Wrap(err, fmt.Sprintf("error unmarshaling field %s", fieldName))
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for HTTPNotificationEndpoint_Headers to handle AdditionalProperties
func (a HTTPNotificationEndpoint_Headers) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, errors.Wrap(err, fmt.Sprintf("error marshaling '%s'", fieldName))
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for Label_Properties. Returns the specified
// element and whether it was found
func (a Label_Properties) Get(fieldName string) (value string, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for Label_Properties
func (a *Label_Properties) Set(fieldName string, value string) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]string)
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for Label_Properties to handle AdditionalProperties
func (a *Label_Properties) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]string)
		for fieldName, fieldBuf := range object {
			var fieldVal string
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return errors.Wrap(err, fmt.Sprintf("error unmarshaling field %s", fieldName))
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for Label_Properties to handle AdditionalProperties
func (a Label_Properties) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, errors.Wrap(err, fmt.Sprintf("error marshaling '%s'", fieldName))
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for LabelCreateRequest_Properties. Returns the specified
// element and whether it was found
func (a LabelCreateRequest_Properties) Get(fieldName string) (value string, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for LabelCreateRequest_Properties
func (a *LabelCreateRequest_Properties) Set(fieldName string, value string) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]string)
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for LabelCreateRequest_Properties to handle AdditionalProperties
func (a *LabelCreateRequest_Properties) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]string)
		for fieldName, fieldBuf := range object {
			var fieldVal string
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return errors.Wrap(err, fmt.Sprintf("error unmarshaling field %s", fieldName))
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for LabelCreateRequest_Properties to handle AdditionalProperties
func (a LabelCreateRequest_Properties) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, errors.Wrap(err, fmt.Sprintf("error marshaling '%s'", fieldName))
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for LabelUpdate_Properties. Returns the specified
// element and whether it was found
func (a LabelUpdate_Properties) Get(fieldName string) (value string, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for LabelUpdate_Properties
func (a *LabelUpdate_Properties) Set(fieldName string, value string) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]string)
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for LabelUpdate_Properties to handle AdditionalProperties
func (a *LabelUpdate_Properties) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]string)
		for fieldName, fieldBuf := range object {
			var fieldVal string
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return errors.Wrap(err, fmt.Sprintf("error unmarshaling field %s", fieldName))
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for LabelUpdate_Properties to handle AdditionalProperties
func (a LabelUpdate_Properties) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, errors.Wrap(err, fmt.Sprintf("error marshaling '%s'", fieldName))
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for MapVariableProperties_Values. Returns the specified
// element and whether it was found
func (a MapVariableProperties_Values) Get(fieldName string) (value string, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for MapVariableProperties_Values
func (a *MapVariableProperties_Values) Set(fieldName string, value string) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]string)
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for MapVariableProperties_Values to handle AdditionalProperties
func (a *MapVariableProperties_Values) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]string)
		for fieldName, fieldBuf := range object {
			var fieldVal string
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return errors.Wrap(err, fmt.Sprintf("error unmarshaling field %s", fieldName))
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for MapVariableProperties_Values to handle AdditionalProperties
func (a MapVariableProperties_Values) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, errors.Wrap(err, fmt.Sprintf("error marshaling '%s'", fieldName))
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for Query_Params. Returns the specified
// element and whether it was found
func (a Query_Params) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for Query_Params
func (a *Query_Params) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for Query_Params to handle AdditionalProperties
func (a *Query_Params) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return errors.Wrap(err, fmt.Sprintf("error unmarshaling field %s", fieldName))
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for Query_Params to handle AdditionalProperties
func (a Query_Params) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, errors.Wrap(err, fmt.Sprintf("error marshaling '%s'", fieldName))
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for Secrets. Returns the specified
// element and whether it was found
func (a Secrets) Get(fieldName string) (value string, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for Secrets
func (a *Secrets) Set(fieldName string, value string) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]string)
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for Secrets to handle AdditionalProperties
func (a *Secrets) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]string)
		for fieldName, fieldBuf := range object {
			var fieldVal string
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return errors.Wrap(err, fmt.Sprintf("error unmarshaling field %s", fieldName))
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for Secrets to handle AdditionalProperties
func (a Secrets) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, errors.Wrap(err, fmt.Sprintf("error marshaling '%s'", fieldName))
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for TemplateApply_EnvRefs. Returns the specified
// element and whether it was found
func (a TemplateApply_EnvRefs) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for TemplateApply_EnvRefs
func (a *TemplateApply_EnvRefs) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for TemplateApply_EnvRefs to handle AdditionalProperties
func (a *TemplateApply_EnvRefs) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return errors.Wrap(err, fmt.Sprintf("error unmarshaling field %s", fieldName))
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for TemplateApply_EnvRefs to handle AdditionalProperties
func (a TemplateApply_EnvRefs) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, errors.Wrap(err, fmt.Sprintf("error marshaling '%s'", fieldName))
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for TemplateApply_Secrets. Returns the specified
// element and whether it was found
func (a TemplateApply_Secrets) Get(fieldName string) (value string, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for TemplateApply_Secrets
func (a *TemplateApply_Secrets) Set(fieldName string, value string) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]string)
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for TemplateApply_Secrets to handle AdditionalProperties
func (a *TemplateApply_Secrets) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]string)
		for fieldName, fieldBuf := range object {
			var fieldVal string
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return errors.Wrap(err, fmt.Sprintf("error unmarshaling field %s", fieldName))
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for TemplateApply_Secrets to handle AdditionalProperties
func (a TemplateApply_Secrets) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, errors.Wrap(err, fmt.Sprintf("error marshaling '%s'", fieldName))
		}
	}
	return json.Marshal(object)
}
