// Code generated by tutone: DO NOT EDIT
package agent

// AgentReleasesFilter - Agent Release Filter
type AgentReleasesFilter string

var AgentReleasesFilterTypes = struct {
	// Android agent
	ANDROID AgentReleasesFilter
	// Browser agent
	BROWSER AgentReleasesFilter
	// .NET agent
	DOTNET AgentReleasesFilter
	// Elixir agent
	ELIXIR AgentReleasesFilter
	// Go agent
	GO AgentReleasesFilter
	// Infrastructure agent
	INFRASTRUCTURE AgentReleasesFilter
	// iOS agent
	IOS AgentReleasesFilter
	// Java agent
	JAVA AgentReleasesFilter
	// Node.js agent
	NODEJS AgentReleasesFilter
	// PHP agent
	PHP AgentReleasesFilter
	// Python agent
	PYTHON AgentReleasesFilter
	// Ruby agent
	RUBY AgentReleasesFilter
	// C SDK
	SDK AgentReleasesFilter
}{
	// Android agent
	ANDROID: "ANDROID",
	// Browser agent
	BROWSER: "BROWSER",
	// .NET agent
	DOTNET: "DOTNET",
	// Elixir agent
	ELIXIR: "ELIXIR",
	// Go agent
	GO: "GO",
	// Infrastructure agent
	INFRASTRUCTURE: "INFRASTRUCTURE",
	// iOS agent
	IOS: "IOS",
	// Java agent
	JAVA: "JAVA",
	// Node.js agent
	NODEJS: "NODEJS",
	// PHP agent
	PHP: "PHP",
	// Python agent
	PYTHON: "PYTHON",
	// Ruby agent
	RUBY: "RUBY",
	// C SDK
	SDK: "SDK",
}

// AgentReleasesAgentRelease - Information about an Agent release
type AgentReleasesAgentRelease struct {
	// Patch for a bug
	Bugs []string `json:"bugs,omitempty"`
	// The date of the release
	Date Date `json:"date,omitempty"`
	// Link to agent distribution
	DownloadLink string `json:"downloadLink,omitempty"`
	// The date the release will reach the end of its life. See [New Relic's EOL Policy](https://docs.newrelic.com/docs/licenses/end-of-life/notification-changes-new-relic-saas-features-distributed-software/) for details
	EolDate Date `json:"eolDate,omitempty"`
	// New feature or instrumentation
	Features []string `json:"features,omitempty"`
	// Fix for a security vulnerability
	Security []string `json:"security,omitempty"`
	// The release note's location on the docs website. The full URL would be prefixed with [https://docs.newrelic.com](https://docs.newrelic.com/)
	Slug string `json:"slug,omitempty"`
	// The version of the release
	Version string `json:"version,omitempty"`
}

// DocumentationFields -
type DocumentationFields struct {
	// View a list of all releases for the provided Agent
	AgentReleases []AgentReleasesAgentRelease `json:"agentReleases,omitempty"`
	// The current release of the provided Agent
	CurrentAgentRelease AgentReleasesAgentRelease `json:"currentAgentRelease,omitempty"`
}

type currentAgentReleaseResponse struct {
	DocumentationFields DocumentationFields `json:"docs"`
}

// Date - The `Date` scalar represents a date. The `Date` appears as an ISO8601 formatted string.
type Date string
