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

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

	"github.com/pkg/errors"
)

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

	AuthorizationUpdateRequestStatusInactive AuthorizationUpdateRequestStatus = "inactive"
) // Defines values for AxisBase.
const (
	AxisBase1 AxisBase = "2"

	AxisBaseEmpty AxisBase = ""

	AxisBaseN0 AxisBase = "10"
) // Defines values for AxisScale.
const (
	AxisScaleLinear AxisScale = "linear"

	AxisScaleLog AxisScale = "log"
) // Defines values for BandViewPropertiesHoverDimension.
const (
	BandViewPropertiesHoverDimensionAuto BandViewPropertiesHoverDimension = "auto"

	BandViewPropertiesHoverDimensionTrue BandViewPropertiesHoverDimension = "true"

	BandViewPropertiesHoverDimensionX BandViewPropertiesHoverDimension = "x"

	BandViewPropertiesHoverDimensionXy BandViewPropertiesHoverDimension = "xy"
) // 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"

	ErrorCodeTooManyRequests ErrorCode = "too many requests"

	ErrorCodeUnauthorized ErrorCode = "unauthorized"

	ErrorCodeUnavailable ErrorCode = "unavailable"

	ErrorCodeUnprocessableEntity ErrorCode = "unprocessable entity"
) // 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 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 InfluxQLQueryType.
const (
	InfluxQLQueryTypeInfluxql InfluxQLQueryType = "influxql"
) // Defines values for LegendOrientation.
const (
	LegendOrientationBottom LegendOrientation = "bottom"

	LegendOrientationLeft LegendOrientation = "left"

	LegendOrientationRight LegendOrientation = "right"

	LegendOrientationTop LegendOrientation = "top"
) // Defines values for LegendType.
const (
	LegendTypeStatic LegendType = "static"
) // Defines values for LesserThresholdType.
const (
	LesserThresholdTypeLesser LesserThresholdType = "lesser"
) // Defines values for LinePlusSingleStatPropertiesHoverDimension.
const (
	LinePlusSingleStatPropertiesHoverDimensionAuto LinePlusSingleStatPropertiesHoverDimension = "auto"

	LinePlusSingleStatPropertiesHoverDimensionTrue LinePlusSingleStatPropertiesHoverDimension = "true"

	LinePlusSingleStatPropertiesHoverDimensionX LinePlusSingleStatPropertiesHoverDimension = "x"

	LinePlusSingleStatPropertiesHoverDimensionXy LinePlusSingleStatPropertiesHoverDimension = "xy"
) // 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 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 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 (
	ResourceTypeAuthorizations ResourceType = "authorizations"

	ResourceTypeBuckets ResourceType = "buckets"

	ResourceTypeChecks ResourceType = "checks"

	ResourceTypeDashboards ResourceType = "dashboards"

	ResourceTypeDbrp ResourceType = "dbrp"

	ResourceTypeDocuments ResourceType = "documents"

	ResourceTypeLabels ResourceType = "labels"

	ResourceTypeNotificationEndpoints ResourceType = "notificationEndpoints"

	ResourceTypeNotificationRules ResourceType = "notificationRules"

	ResourceTypeOrgs ResourceType = "orgs"

	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 ScraperTargetRequestType.
const (
	ScraperTargetRequestTypePrometheus ScraperTargetRequestType = "prometheus"
) // 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 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"

	XYViewPropertiesHoverDimensionTrue XYViewPropertiesHoverDimension = "true"

	XYViewPropertiesHoverDimensionX XYViewPropertiesHoverDimension = "x"

	XYViewPropertiesHoverDimensionXy XYViewPropertiesHoverDimension = "xy"
) // 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"
)

// ASTResponse defines model for ASTResponse.
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"`
}

// ArrayExpression defines model for ArrayExpression.
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
	// 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"`
}

// 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"`
}

// AuthorizationUpdateRequestStatus defines model for AuthorizationUpdateRequest.Status.
type AuthorizationUpdateRequestStatus string

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

// Axes defines model for Axes.
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"`
}

// Axis defines model for Axis.
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"`
}

// AxisBase defines model for Axis.Base.
type AxisBase string

// AxisScale defines model for AxisScale.
type AxisScale string

// BadStatement defines model for BadStatement.
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"`
	Geom           XYGeom                            `json:"geom"`
	HoverDimension *BandViewPropertiesHoverDimension `json:"hoverDimension,omitempty"`

	// Legend define encoding of data into a view's legend
	Legend                     Legend                  `json:"legend"`
	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"`
	TimeFormat        *string                `json:"timeFormat,omitempty"`
	Type              BandViewPropertiesType `json:"type"`
	UpperColumn       *string                `json:"upperColumn,omitempty"`
	XColumn           *string                `json:"xColumn,omitempty"`
	YColumn           *string                `json:"yColumn,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

// BinaryExpression defines model for BinaryExpression.
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"`
}

// Block defines model for Block.
type Block struct {

	// Block body
	Body *[]Statement `json:"body,omitempty"`

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

// BooleanLiteral defines model for BooleanLiteral.
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"`
	Type           *BucketType    `json:"type,omitempty"`
	UpdatedAt      *time.Time     `json:"updatedAt,omitempty"`
}

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

// 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"`
}

// BuiltinStatement defines model for BuiltinStatement.
type BuiltinStatement struct {

	// A valid Flux identifier
	Id *Identifier `json:"id,omitempty"`

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

// CallExpression defines model for CallExpression.
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
	// 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
}

// 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"`
	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

// CheckStatusLevel defines model for CheckStatusLevel.
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"`
	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"`
}

// ConditionalExpression defines model for ConditionalExpression.
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
	// 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,omitempty"`

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

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

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

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

// DBRPUpdate defines model for DBRPUpdate.
type DBRPUpdate struct {

	// InfluxDB v1 database
	Database *string `json:"database,omitempty"`
	Default  *bool   `json:"default,omitempty"`
	Links    *Links  `json:"links,omitempty"`

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

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

// Dashboard defines model for Dashboard.
type Dashboard struct {
	// Embedded struct due to allOf(#/components/schemas/CreateDashboardRequest)
	CreateDashboardRequest
	// 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"`
}

// DashboardColor defines model for DashboardColor.
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"`
}

// DashboardColorType defines model for DashboardColor.Type.
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
	// 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"`
}

// DateTimeLiteral defines model for DateTimeLiteral.
type DateTimeLiteral struct {

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

// DeadmanCheck defines model for DeadmanCheck.
type DeadmanCheck struct {
	// Embedded struct due to allOf(#/components/schemas/CheckBase)
	CheckBase
	// 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

// DecimalPlaces defines model for DecimalPlaces.
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"`
}

// DeletePredicateRequest defines model for DeletePredicateRequest.
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 defines model for Dialect.
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

// DialectDateTimeFormat defines model for Dialect.DateTimeFormat.
type DialectDateTimeFormat string

// Document defines model for Document.
type Document struct {
	Content map[string]interface{} `json:"content"`
	Id      string                 `json:"id"`
	Labels  *Labels                `json:"labels,omitempty"`
	Links   *struct {

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

// DocumentCreate defines model for DocumentCreate.
type DocumentCreate struct {
	Content map[string]interface{} `json:"content"`

	// An array of label IDs to be added as labels to the document.
	Labels *[]string    `json:"labels,omitempty"`
	Meta   DocumentMeta `json:"meta"`

	// The organization Name. Specify either `orgID` or `org`.
	Org *string `json:"org,omitempty"`

	// The organization Name. Specify either `orgID` or `org`.
	OrgID *string `json:"orgID,omitempty"`
}

// DocumentListEntry defines model for DocumentListEntry.
type DocumentListEntry struct {
	Id     string  `json:"id"`
	Labels *Labels `json:"labels,omitempty"`
	Links  *struct {

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

// DocumentMeta defines model for DocumentMeta.
type DocumentMeta struct {
	CreatedAt   *time.Time `json:"createdAt,omitempty"`
	Description *string    `json:"description,omitempty"`
	Name        string     `json:"name"`
	TemplateID  *string    `json:"templateID,omitempty"`
	Type        *string    `json:"type,omitempty"`
	UpdatedAt   *time.Time `json:"updatedAt,omitempty"`
	Version     string     `json:"version"`
}

// DocumentUpdate defines model for DocumentUpdate.
type DocumentUpdate struct {
	Content *map[string]interface{} `json:"content,omitempty"`
	Meta    *DocumentMeta           `json:"meta,omitempty"`
}

// Documents defines model for Documents.
type Documents struct {
	Documents *[]DocumentListEntry `json:"documents,omitempty"`
}

// Duration defines model for Duration.
type Duration struct {
	Magnitude *int `json:"magnitude,omitempty"`

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

// DurationLiteral defines model for DurationLiteral.
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"`

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

// ErrorCode defines model for Error.Code.
type ErrorCode string

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

// ExpressionStatement defines model for ExpressionStatement.
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"`
}

// FieldType defines model for Field.Type.
type FieldType string

// File defines model for 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:"-"`
}

// FloatLiteral defines model for FloatLiteral.
type FloatLiteral struct {

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

// FluxResponse defines model for FluxResponse.
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"`
}

// FunctionExpression defines model for FunctionExpression.
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"`

	// Legend define encoding of data into a view's legend
	Legend  Legend                   `json:"legend"`
	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

// GreaterThreshold defines model for GreaterThreshold.
type GreaterThreshold struct {
	// Embedded struct due to allOf(#/components/schemas/ThresholdBase)
	ThresholdBase
	// 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
	// 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

// HTTPNotificationEndpoint_Headers defines model for HTTPNotificationEndpoint.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
	// Embedded struct due to allOf(#/components/schemas/HTTPNotificationRuleBase)
	HTTPNotificationRuleBase
}

// 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"`
	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"`
	YAxisLabel        string                    `json:"yAxisLabel"`
	YColumn           string                    `json:"yColumn"`
	YDomain           []float32                 `json:"yDomain"`
	YPrefix           string                    `json:"yPrefix"`
	YSuffix           string                    `json:"ySuffix"`
}

// 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"`
	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

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

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

// ImportDeclaration defines model for ImportDeclaration.
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"`
}

// IndexExpression defines model for IndexExpression.
type IndexExpression struct {
	Array *Expression `json:"array,omitempty"`
	Index *Expression `json:"index,omitempty"`

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

// InfluxQLQuery defines model for InfluxQLQuery.
type InfluxQLQuery struct {

	// Bucket is to be used instead of the database and retention policy specified in the InfluxQL query.
	Bucket *string `json:"bucket,omitempty"`

	// InfluxQL query execute.
	Query string `json:"query"`

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

// InfluxQLQueryType defines model for InfluxQLQuery.Type.
type InfluxQLQueryType string

// IntegerLiteral defines model for IntegerLiteral.
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"`
}

// Label_Properties defines model for Label.Properties.
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"`
}

// LabelCreateRequest_Properties defines model for LabelCreateRequest.Properties.
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"`
}

// LabelUpdate_Properties defines model for LabelUpdate.Properties.
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"`
}

// LanguageRequest defines model for LanguageRequest.
type LanguageRequest struct {

	// Flux query script to be analyzed
	Query string `json:"query"`
}

// Legend defines model for Legend.
type Legend struct {

	// orientation is the location of the legend with respect to the view graph
	Orientation *LegendOrientation `json:"orientation,omitempty"`

	// The style of the legend.
	Type *LegendType `json:"type,omitempty"`
}

// LegendOrientation defines model for Legend.Orientation.
type LegendOrientation string

// LegendType defines model for Legend.Type.
type LegendType string

// LesserThreshold defines model for LesserThreshold.
type LesserThreshold struct {
	// Embedded struct due to allOf(#/components/schemas/ThresholdBase)
	ThresholdBase
	// 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"`
	HoverDimension *LinePlusSingleStatPropertiesHoverDimension `json:"hoverDimension,omitempty"`

	// Legend define encoding of data into a view's legend
	Legend                     Legend                               `json:"legend"`
	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"`
	Suffix            string                           `json:"suffix"`
	TimeFormat        *string                          `json:"timeFormat,omitempty"`
	Type              LinePlusSingleStatPropertiesType `json:"type"`
	XColumn           *string                          `json:"xColumn,omitempty"`
	YColumn           *string                          `json:"yColumn,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"`
}

// LineProtocolErrorCode defines model for LineProtocolError.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"`
}

// LineProtocolLengthErrorCode defines model for LineProtocolLengthError.Code.
type LineProtocolLengthErrorCode string

// Link defines model for Link.
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"`

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

// LogicalExpression defines model for LogicalExpression.
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

// MemberAssignment defines model for MemberAssignment.
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"`
}

// MemberExpression defines model for MemberExpression.
type MemberExpression struct {
	Object   *Expression  `json:"object,omitempty"`
	Property *PropertyKey `json:"property,omitempty"`

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

// 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"`
	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"`
	YAxisLabel        string                   `json:"yAxisLabel"`
	YDomain           []float32                `json:"yDomain"`
	YPrefix           string                   `json:"yPrefix"`
	YSeriesColumns    []string                 `json:"ySeriesColumns"`
	YSuffix           string                   `json:"ySuffix"`
}

// 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{}

// NodeType defines model for NodeType.
type NodeType string

// NotificationEndpoint defines model for NotificationEndpoint.
type NotificationEndpoint struct {
	// Embedded struct due to allOf(#/components/schemas/NotificationEndpointDiscrimator)
	NotificationEndpointDiscrimator
}

// 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"`
}

// NotificationEndpointBaseStatus defines model for NotificationEndpointBase.Status.
type NotificationEndpointBaseStatus string

// NotificationEndpointDiscrimator defines model for NotificationEndpointDiscrimator.
type NotificationEndpointDiscrimator 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
}

// 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"`
	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"`
	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"`
}

// ObjectExpression defines model for ObjectExpression.
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"`
	RetentionPeriodHrs *int    `json:"retentionPeriodHrs,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   *User          `json:"user,omitempty"`
}

// OptionStatement defines model for OptionStatement.
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"`
}

// OrganizationStatus defines model for Organization.Status.
type OrganizationStatus string

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

// Package defines model for Package.
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"`
}

// PackageClause defines model for PackageClause.
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
	// 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
	// Embedded struct due to allOf(#/components/schemas/PagerDutyNotificationRuleBase)
	PagerDutyNotificationRuleBase
}

// 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

// ParenExpression defines model for ParenExpression.
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"`
}

// 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

// PipeExpression defines model for PipeExpression.
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"`
}

// PipeLiteral defines model for PipeLiteral.
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"`
}

// PostCheck defines model for PostCheck.
type PostCheck struct {
	// Embedded struct due to allOf(#/components/schemas/CheckDiscriminator)
	CheckDiscriminator
}

// PostNotificationEndpoint defines model for PostNotificationEndpoint.
type PostNotificationEndpoint struct {
	// Embedded struct due to allOf(#/components/schemas/NotificationEndpointDiscrimator)
	NotificationEndpointDiscrimator
}

// PostNotificationRule defines model for PostNotificationRule.
type PostNotificationRule struct {
	// Embedded struct due to allOf(#/components/schemas/NotificationRuleDiscriminator)
	NotificationRuleDiscriminator
}

// Property defines model for Property.
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 defines model for Query.
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"`

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

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

// QueryType defines model for Query.Type.
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
	// 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

// RegexpLiteral defines model for RegexpLiteral.
type RegexpLiteral struct {

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

// RenamableField defines model for RenamableField.
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"`

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

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

	// 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"`
	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/User)
	User
	// 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/User)
	User
	// 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"`
}

// RetentionRule defines model for RetentionRule.
type RetentionRule struct {

	// Duration in seconds for how long data will be kept in the database.
	EverySeconds int               `json:"everySeconds"`
	Type         RetentionRuleType `json:"type"`
}

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

// RetentionRules defines model for RetentionRules.
type RetentionRules []RetentionRule

// ReturnStatement defines model for ReturnStatement.
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"`
}

// RuleStatusLevel defines model for RuleStatusLevel.
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 *[]struct {
		Message *string `json:"message,omitempty"`
		RunID   *string `json:"runID,omitempty"`
		Time    *string `json:"time,omitempty"`
	} `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
	// Embedded struct due to allOf(#/components/schemas/SMTPNotificationRuleBase)
	SMTPNotificationRuleBase
}

// 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"`
	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"`
	YAxisLabel        string                    `json:"yAxisLabel"`
	YColumn           string                    `json:"yColumn"`
	YDomain           []float32                 `json:"yDomain"`
	YPrefix           string                    `json:"yPrefix"`
	YSuffix           string                    `json:"ySuffix"`
}

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

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

// ScraperTargetRequest defines model for ScraperTargetRequest.
type ScraperTargetRequest struct {

	// 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"`
}

// ScraperTargetRequestType defines model for ScraperTargetRequest.Type.
type ScraperTargetRequestType string

// ScraperTargetResponse defines model for ScraperTargetResponse.
type ScraperTargetResponse struct {
	// Embedded struct due to allOf(#/components/schemas/ScraperTargetRequest)
	ScraperTargetRequest
	// 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 organization name.
	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
	// 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:"-"`
}

// 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"`

	// Legend define encoding of data into a view's legend
	Legend                     Legend                        `json:"legend"`
	LegendOpacity              *float32                      `json:"legendOpacity,omitempty"`
	LegendOrientationThreshold *int                          `json:"legendOrientationThreshold,omitempty"`
	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"`
	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
	// 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
	// Embedded struct due to allOf(#/components/schemas/SlackNotificationRuleBase)
	SlackNotificationRuleBase
}

// 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{}

// 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"`
}

// StringLiteral defines model for StringLiteral.
type StringLiteral struct {

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

// 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

// TableViewPropertiesTableOptionsWrapping defines model for TableViewProperties.TableOptions.Wrapping.
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"`
	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
	// 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
	// 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
	// Embedded struct due to allOf(#/components/schemas/TelegramNotificationRuleBase)
	TelegramNotificationRuleBase
}

// 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"`
}

// TelegramNotificationRuleBaseParseMode defines model for TelegramNotificationRuleBase.ParseMode.
type TelegramNotificationRuleBaseParseMode string

// TelegramNotificationRuleBaseType defines model for TelegramNotificationRuleBase.Type.
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"`
}

// TemplateExport defines model for TemplateExport.
type TemplateExport 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"`
		Name *string      `json:"name,omitempty"`
	} `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              *NotificationEndpointDiscrimator `json:"new,omitempty"`
			Old              *NotificationEndpointDiscrimator `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
			// 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/NotificationEndpointDiscrimator)
			NotificationEndpointDiscrimator
			// 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
			// 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"`
}

// TestStatement defines model for TestStatement.
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
	// 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

// UnaryExpression defines model for UnaryExpression.
type UnaryExpression struct {
	Argument *Expression `json:"argument,omitempty"`
	Operator *string     `json:"operator,omitempty"`

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

// UnsignedIntegerLiteral defines model for UnsignedIntegerLiteral.
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"`
	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 *UserStatus `json:"status,omitempty"`
}

// UserStatus defines model for User.Status.
type UserStatus string

// Users defines model for Users.
type Users struct {
	Links *struct {
		Self *string `json:"self,omitempty"`
	} `json:"links,omitempty"`
	Users *[]User `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"`
}

// VariableAssignment defines model for VariableAssignment.
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"`
	Geom           XYGeom                          `json:"geom"`
	HoverDimension *XYViewPropertiesHoverDimension `json:"hoverDimension,omitempty"`

	// Legend define encoding of data into a view's legend
	Legend                     Legend                   `json:"legend"`
	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"`
	TimeFormat        *string              `json:"timeFormat,omitempty"`
	Type              XYViewPropertiesType `json:"type"`
	XColumn           *string              `json:"xColumn,omitempty"`
	YColumn           *string              `json:"yColumn,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

// 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 Authorization

// 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"`
}

// 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 organization name.
	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"`

	// 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 Bucket

// 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"`

	// The owner ID.
	Owner *string `json:"owner,omitempty"`

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

	// List of dashboard IDs to return. If both `id` and `owner` are specified, only `id` is used.
	Id *[]string `json:"id,omitempty"`

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

	// The organization name.
	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"`

	// 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 DBRP

// 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"`

	// 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"`

	// 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"`

	// 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"`
}

// GetDocumentsTemplatesParams defines parameters for GetDocumentsTemplates.
type GetDocumentsTemplatesParams struct {

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

	// Specifies the organization ID of the template.
	OrgID *string `json:"orgID,omitempty"`

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

// PostDocumentsTemplatesJSONBody defines parameters for PostDocumentsTemplates.
type PostDocumentsTemplatesJSONBody DocumentCreate

// PostDocumentsTemplatesParams defines parameters for PostDocumentsTemplates.
type PostDocumentsTemplatesParams struct {

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

// DeleteDocumentsTemplatesIDParams defines parameters for DeleteDocumentsTemplatesID.
type DeleteDocumentsTemplatesIDParams struct {

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

// GetDocumentsTemplatesIDParams defines parameters for GetDocumentsTemplatesID.
type GetDocumentsTemplatesIDParams struct {

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

// PutDocumentsTemplatesIDJSONBody defines parameters for PutDocumentsTemplatesID.
type PutDocumentsTemplatesIDJSONBody DocumentUpdate

// PutDocumentsTemplatesIDParams defines parameters for PutDocumentsTemplatesID.
type PutDocumentsTemplatesIDParams struct {

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

// GetDocumentsTemplatesIDLabelsParams defines parameters for GetDocumentsTemplatesIDLabels.
type GetDocumentsTemplatesIDLabelsParams struct {

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

// PostDocumentsTemplatesIDLabelsJSONBody defines parameters for PostDocumentsTemplatesIDLabels.
type PostDocumentsTemplatesIDLabelsJSONBody LabelMapping

// PostDocumentsTemplatesIDLabelsParams defines parameters for PostDocumentsTemplatesIDLabels.
type PostDocumentsTemplatesIDLabelsParams struct {

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

// DeleteDocumentsTemplatesIDLabelsIDParams defines parameters for DeleteDocumentsTemplatesIDLabelsID.
type DeleteDocumentsTemplatesIDLabelsIDParams struct {

	// 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"`
}

// 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 Organization

// 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 Organization

// 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"`
}

// PostQueryJSONBody defines parameters for PostQuery.
type PostQueryJSONBody interface{}

// PostQueryParams defines parameters for PostQuery.
type PostQueryParams struct {

	// Specifies the name of the organization executing the query. Takes either the ID or Name interchangeably. 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"`

	// The Accept-Encoding request HTTP header advertises which content encoding, usually a compression algorithm, the client is able to 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"`
}

// 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"`
}

// PostSetupUserJSONBody defines parameters for PostSetupUser.
type PostSetupUserJSONBody OnboardingRequest

// PostSetupUserParams defines parameters for PostSetupUser.
type PostSetupUserParams 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 organization name.
	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 organization name.
	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 organization id of the user
	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"`

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

// GetTasksParamsStatus defines parameters for GetTasks.
type GetTasksParamsStatus 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 TemplateExport

// GetUsersParams defines parameters for GetUsers.
type GetUsersParams struct {

	// 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 organization name.
	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 {

	// Specifies the destination organization for writes. Takes either the ID or Name interchangeably. If both `orgID` and `org` are specified, `org` takes precedence.
	Org string `json:"org"`

	// 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"`

	// When present, its value indicates to the database that compression is applied to the line-protocol body.
	ContentEncoding *PostWriteParamsContentEncoding `json:"Content-Encoding,omitempty"`

	// Content-Type is used to indicate the format of the data sent to the server.
	ContentType *PostWriteParamsContentType `json:"Content-Type,omitempty"`

	// Content-Length is an entity header is indicating the size of the entity-body, in bytes, sent to the database. If the length is greater than the database max body configuration option, a 413 response is sent.
	ContentLength *int `json:"Content-Length,omitempty"`

	// Specifies the return content 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

// PostAuthorizationsRequestBody defines body for PostAuthorizations for application/json ContentType.
type PostAuthorizationsJSONRequestBody PostAuthorizationsJSONBody

// PatchAuthorizationsIDRequestBody defines body for PatchAuthorizationsID for application/json ContentType.
type PatchAuthorizationsIDJSONRequestBody PatchAuthorizationsIDJSONBody

// PostBucketsRequestBody defines body for PostBuckets for application/json ContentType.
type PostBucketsJSONRequestBody PostBucketsJSONBody

// PatchBucketsIDRequestBody defines body for PatchBucketsID for application/json ContentType.
type PatchBucketsIDJSONRequestBody PatchBucketsIDJSONBody

// PostBucketsIDLabelsRequestBody defines body for PostBucketsIDLabels for application/json ContentType.
type PostBucketsIDLabelsJSONRequestBody PostBucketsIDLabelsJSONBody

// PostBucketsIDMembersRequestBody defines body for PostBucketsIDMembers for application/json ContentType.
type PostBucketsIDMembersJSONRequestBody PostBucketsIDMembersJSONBody

// PostBucketsIDOwnersRequestBody defines body for PostBucketsIDOwners for application/json ContentType.
type PostBucketsIDOwnersJSONRequestBody PostBucketsIDOwnersJSONBody

// CreateCheckRequestBody defines body for CreateCheck for application/json ContentType.
type CreateCheckJSONRequestBody CreateCheckJSONBody

// PatchChecksIDRequestBody defines body for PatchChecksID for application/json ContentType.
type PatchChecksIDJSONRequestBody PatchChecksIDJSONBody

// PutChecksIDRequestBody defines body for PutChecksID for application/json ContentType.
type PutChecksIDJSONRequestBody PutChecksIDJSONBody

// PostChecksIDLabelsRequestBody defines body for PostChecksIDLabels for application/json ContentType.
type PostChecksIDLabelsJSONRequestBody PostChecksIDLabelsJSONBody

// PostDashboardsRequestBody defines body for PostDashboards for application/json ContentType.
type PostDashboardsJSONRequestBody PostDashboardsJSONBody

// PatchDashboardsIDRequestBody defines body for PatchDashboardsID for application/json ContentType.
type PatchDashboardsIDJSONRequestBody PatchDashboardsIDJSONBody

// PostDashboardsIDCellsRequestBody defines body for PostDashboardsIDCells for application/json ContentType.
type PostDashboardsIDCellsJSONRequestBody PostDashboardsIDCellsJSONBody

// PutDashboardsIDCellsRequestBody defines body for PutDashboardsIDCells for application/json ContentType.
type PutDashboardsIDCellsJSONRequestBody PutDashboardsIDCellsJSONBody

// PatchDashboardsIDCellsIDRequestBody defines body for PatchDashboardsIDCellsID for application/json ContentType.
type PatchDashboardsIDCellsIDJSONRequestBody PatchDashboardsIDCellsIDJSONBody

// PatchDashboardsIDCellsIDViewRequestBody defines body for PatchDashboardsIDCellsIDView for application/json ContentType.
type PatchDashboardsIDCellsIDViewJSONRequestBody PatchDashboardsIDCellsIDViewJSONBody

// PostDashboardsIDLabelsRequestBody defines body for PostDashboardsIDLabels for application/json ContentType.
type PostDashboardsIDLabelsJSONRequestBody PostDashboardsIDLabelsJSONBody

// PostDashboardsIDMembersRequestBody defines body for PostDashboardsIDMembers for application/json ContentType.
type PostDashboardsIDMembersJSONRequestBody PostDashboardsIDMembersJSONBody

// PostDashboardsIDOwnersRequestBody defines body for PostDashboardsIDOwners for application/json ContentType.
type PostDashboardsIDOwnersJSONRequestBody PostDashboardsIDOwnersJSONBody

// PostDBRPRequestBody defines body for PostDBRP for application/json ContentType.
type PostDBRPJSONRequestBody PostDBRPJSONBody

// PatchDBRPIDRequestBody defines body for PatchDBRPID for application/json ContentType.
type PatchDBRPIDJSONRequestBody PatchDBRPIDJSONBody

// PostDeleteRequestBody defines body for PostDelete for application/json ContentType.
type PostDeleteJSONRequestBody PostDeleteJSONBody

// PostDocumentsTemplatesRequestBody defines body for PostDocumentsTemplates for application/json ContentType.
type PostDocumentsTemplatesJSONRequestBody PostDocumentsTemplatesJSONBody

// PutDocumentsTemplatesIDRequestBody defines body for PutDocumentsTemplatesID for application/json ContentType.
type PutDocumentsTemplatesIDJSONRequestBody PutDocumentsTemplatesIDJSONBody

// PostDocumentsTemplatesIDLabelsRequestBody defines body for PostDocumentsTemplatesIDLabels for application/json ContentType.
type PostDocumentsTemplatesIDLabelsJSONRequestBody PostDocumentsTemplatesIDLabelsJSONBody

// PostLabelsRequestBody defines body for PostLabels for application/json ContentType.
type PostLabelsJSONRequestBody PostLabelsJSONBody

// PatchLabelsIDRequestBody defines body for PatchLabelsID for application/json ContentType.
type PatchLabelsIDJSONRequestBody PatchLabelsIDJSONBody

// PutMePasswordRequestBody defines body for PutMePassword for application/json ContentType.
type PutMePasswordJSONRequestBody PutMePasswordJSONBody

// CreateNotificationEndpointRequestBody defines body for CreateNotificationEndpoint for application/json ContentType.
type CreateNotificationEndpointJSONRequestBody CreateNotificationEndpointJSONBody

// PatchNotificationEndpointsIDRequestBody defines body for PatchNotificationEndpointsID for application/json ContentType.
type PatchNotificationEndpointsIDJSONRequestBody PatchNotificationEndpointsIDJSONBody

// PutNotificationEndpointsIDRequestBody defines body for PutNotificationEndpointsID for application/json ContentType.
type PutNotificationEndpointsIDJSONRequestBody PutNotificationEndpointsIDJSONBody

// PostNotificationEndpointIDLabelsRequestBody defines body for PostNotificationEndpointIDLabels for application/json ContentType.
type PostNotificationEndpointIDLabelsJSONRequestBody PostNotificationEndpointIDLabelsJSONBody

// CreateNotificationRuleRequestBody defines body for CreateNotificationRule for application/json ContentType.
type CreateNotificationRuleJSONRequestBody CreateNotificationRuleJSONBody

// PatchNotificationRulesIDRequestBody defines body for PatchNotificationRulesID for application/json ContentType.
type PatchNotificationRulesIDJSONRequestBody PatchNotificationRulesIDJSONBody

// PutNotificationRulesIDRequestBody defines body for PutNotificationRulesID for application/json ContentType.
type PutNotificationRulesIDJSONRequestBody PutNotificationRulesIDJSONBody

// PostNotificationRuleIDLabelsRequestBody defines body for PostNotificationRuleIDLabels for application/json ContentType.
type PostNotificationRuleIDLabelsJSONRequestBody PostNotificationRuleIDLabelsJSONBody

// PostOrgsRequestBody defines body for PostOrgs for application/json ContentType.
type PostOrgsJSONRequestBody PostOrgsJSONBody

// PatchOrgsIDRequestBody defines body for PatchOrgsID for application/json ContentType.
type PatchOrgsIDJSONRequestBody PatchOrgsIDJSONBody

// PostOrgsIDMembersRequestBody defines body for PostOrgsIDMembers for application/json ContentType.
type PostOrgsIDMembersJSONRequestBody PostOrgsIDMembersJSONBody

// PostOrgsIDOwnersRequestBody defines body for PostOrgsIDOwners for application/json ContentType.
type PostOrgsIDOwnersJSONRequestBody PostOrgsIDOwnersJSONBody

// PatchOrgsIDSecretsRequestBody defines body for PatchOrgsIDSecrets for application/json ContentType.
type PatchOrgsIDSecretsJSONRequestBody PatchOrgsIDSecretsJSONBody

// PostOrgsIDSecretsRequestBody defines body for PostOrgsIDSecrets for application/json ContentType.
type PostOrgsIDSecretsJSONRequestBody PostOrgsIDSecretsJSONBody

// PostQueryRequestBody defines body for PostQuery for application/json ContentType.
type PostQueryJSONRequestBody PostQueryJSONBody

// PostQueryAnalyzeRequestBody defines body for PostQueryAnalyze for application/json ContentType.
type PostQueryAnalyzeJSONRequestBody PostQueryAnalyzeJSONBody

// PostQueryAstRequestBody defines body for PostQueryAst for application/json ContentType.
type PostQueryAstJSONRequestBody PostQueryAstJSONBody

// PostScrapersRequestBody defines body for PostScrapers for application/json ContentType.
type PostScrapersJSONRequestBody PostScrapersJSONBody

// PatchScrapersIDRequestBody defines body for PatchScrapersID for application/json ContentType.
type PatchScrapersIDJSONRequestBody PatchScrapersIDJSONBody

// PostScrapersIDLabelsRequestBody defines body for PostScrapersIDLabels for application/json ContentType.
type PostScrapersIDLabelsJSONRequestBody PostScrapersIDLabelsJSONBody

// PostScrapersIDMembersRequestBody defines body for PostScrapersIDMembers for application/json ContentType.
type PostScrapersIDMembersJSONRequestBody PostScrapersIDMembersJSONBody

// PostScrapersIDOwnersRequestBody defines body for PostScrapersIDOwners for application/json ContentType.
type PostScrapersIDOwnersJSONRequestBody PostScrapersIDOwnersJSONBody

// PostSetupRequestBody defines body for PostSetup for application/json ContentType.
type PostSetupJSONRequestBody PostSetupJSONBody

// PostSetupUserRequestBody defines body for PostSetupUser for application/json ContentType.
type PostSetupUserJSONRequestBody PostSetupUserJSONBody

// PostSourcesRequestBody defines body for PostSources for application/json ContentType.
type PostSourcesJSONRequestBody PostSourcesJSONBody

// PatchSourcesIDRequestBody defines body for PatchSourcesID for application/json ContentType.
type PatchSourcesIDJSONRequestBody PatchSourcesIDJSONBody

// CreateStackRequestBody defines body for CreateStack for application/json ContentType.
type CreateStackJSONRequestBody CreateStackJSONBody

// UpdateStackRequestBody defines body for UpdateStack for application/json ContentType.
type UpdateStackJSONRequestBody UpdateStackJSONBody

// PostTasksRequestBody defines body for PostTasks for application/json ContentType.
type PostTasksJSONRequestBody PostTasksJSONBody

// PatchTasksIDRequestBody defines body for PatchTasksID for application/json ContentType.
type PatchTasksIDJSONRequestBody PatchTasksIDJSONBody

// PostTasksIDLabelsRequestBody defines body for PostTasksIDLabels for application/json ContentType.
type PostTasksIDLabelsJSONRequestBody PostTasksIDLabelsJSONBody

// PostTasksIDMembersRequestBody defines body for PostTasksIDMembers for application/json ContentType.
type PostTasksIDMembersJSONRequestBody PostTasksIDMembersJSONBody

// PostTasksIDOwnersRequestBody defines body for PostTasksIDOwners for application/json ContentType.
type PostTasksIDOwnersJSONRequestBody PostTasksIDOwnersJSONBody

// PostTasksIDRunsRequestBody defines body for PostTasksIDRuns for application/json ContentType.
type PostTasksIDRunsJSONRequestBody PostTasksIDRunsJSONBody

// PostTelegrafsRequestBody defines body for PostTelegrafs for application/json ContentType.
type PostTelegrafsJSONRequestBody PostTelegrafsJSONBody

// PutTelegrafsIDRequestBody defines body for PutTelegrafsID for application/json ContentType.
type PutTelegrafsIDJSONRequestBody PutTelegrafsIDJSONBody

// PostTelegrafsIDLabelsRequestBody defines body for PostTelegrafsIDLabels for application/json ContentType.
type PostTelegrafsIDLabelsJSONRequestBody PostTelegrafsIDLabelsJSONBody

// PostTelegrafsIDMembersRequestBody defines body for PostTelegrafsIDMembers for application/json ContentType.
type PostTelegrafsIDMembersJSONRequestBody PostTelegrafsIDMembersJSONBody

// PostTelegrafsIDOwnersRequestBody defines body for PostTelegrafsIDOwners for application/json ContentType.
type PostTelegrafsIDOwnersJSONRequestBody PostTelegrafsIDOwnersJSONBody

// ApplyTemplateRequestBody defines body for ApplyTemplate for application/json ContentType.
type ApplyTemplateJSONRequestBody ApplyTemplateJSONBody

// ExportTemplateRequestBody defines body for ExportTemplate for application/json ContentType.
type ExportTemplateJSONRequestBody ExportTemplateJSONBody

// PostUsersRequestBody defines body for PostUsers for application/json ContentType.
type PostUsersJSONRequestBody PostUsersJSONBody

// PatchUsersIDRequestBody defines body for PatchUsersID for application/json ContentType.
type PatchUsersIDJSONRequestBody PatchUsersIDJSONBody

// PostUsersIDPasswordRequestBody defines body for PostUsersIDPassword for application/json ContentType.
type PostUsersIDPasswordJSONRequestBody PostUsersIDPasswordJSONBody

// PostVariablesRequestBody defines body for PostVariables for application/json ContentType.
type PostVariablesJSONRequestBody PostVariablesJSONBody

// PatchVariablesIDRequestBody defines body for PatchVariablesID for application/json ContentType.
type PatchVariablesIDJSONRequestBody PatchVariablesIDJSONBody

// PutVariablesIDRequestBody defines body for PutVariablesID for application/json ContentType.
type PutVariablesIDJSONRequestBody PutVariablesIDJSONBody

// PostVariablesIDLabelsRequestBody 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 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)
}
