v0.21.1 - 2020-04-15
- alerts: return a NotFound error when policies are not found in NerdGraph
- workloads: remove deprecated fields
v0.21.0 - 2020-04-06
- build: goreleaser now supports libraries, remove hack in config, skip build
- typegen: handle scalar types
- alerts: Update go:generate for types signature
- newrelic: Continue to fail, do not log invalid region
- region: Better error types/more tests
- region: Split parsing / fetching of region data so Parse can be reused
- typegen: Filter internal context off of generated descriptions if present
- typegen: Break out some structs
- typegen: Move all schema generation stuff into typegen
v0.20.1 - 2020-04-01
- alerts: use pointers for the result struct
- nerdstorage: check scope ID for zero values during nerdstorage operations
v0.20.0 - 2020-03-31
- alerts: include missing types to generate
- nrql_conditions: fix spelling errors, fix types
- region: Better URL building
- typegen: ensure we also generate non-input fields
- typegen: ensure handling of slice/LIST types
- typegen: default to resolving nested types
- README: Update example in README, closes #225
- nerdstorage: add examples
- alerts: implement NerdGraph policy search
- internal: add additional error context to graphQLError
- nerdstorage: add a nerdstorage package and resource
- region: Add a region package
- typegen: handle types of Kind OBJECT
- alerts: fix alerts tests
- alerts: Move FQDN/URL creation into package, out of http client for REST
- apm: Update apm tests
- apm: Move FQDN/URL creation into package, out of http client for REST
- config: Migrate Region to pkg/region
- config: Add new func for config
- config: Remove unused config fields
- dashboards: Update dashboard tests
- dashboards: Move FQDN/URL creation into package, out of http client for REST
- entities: Update entities tests
- http: introduce a request-scoped API for NerdGraph queries
- http: Remove assumption that we are talking to a REST endpoint
- http: Move HTTP client to use new region format
- nerdgraph: Update nerdgraph tests
- plugins: Update plugin tests
- plugins: Move FQDN/URL creation into package, out of http client for REST
- region: Change access to config.Region to ensure it exists
- synthetics: Update synthetics tests
- synthetics: Move FQDN/URL creation into package, out of http client for REST
- typegen: Convert to using go generate to run typegen,
make generate
to test - workloads: Update workloads tests
v0.19.0 - 2020-03-25
- alerts: policy update response test
- workloads: remove nullable struct fields unless necessary
- alerts: add search method for NRQL conditions
- alerts: add get method for query NRQL conditions
- alerts: add update methods for baseline and static NRQL conditions
- alerts: add create methods for baseline and static NRQL conditions
- nerdgraph: begin generating structs from schema
- alerts: consolidate Nrql condition structs for better reusability
v0.18.0 - 2020-03-20
- workloads: fix some bugs in the workloads implementation
- workloads: export the workloads API via the newrelic package
- alerts: implement muting rules
v0.17.1 - 2020-03-18
- alerts: add custom unmarshaling for ConditionTerm
- workloads: use epoch time for EntitySearchQuery.CreatedAt
v0.17.0 - 2020-03-17
- workloads: map non-nullable fields to structs correctly
- alerts: add package-level documentation and examples
- apm: add package-level documentation and examples
- client: add synopses for all packages
- config: add package-level documentation
- dashboards: add package-level documentation and examples
- entities: add package-level documentation and examples
- errors: update package-level documentation
- infrastructure: add package-level documentation
- nerdgraph: add package-level documentation and examples
- newrelic: add package-level documentation and examples
- newrelic: use single-letter vars for receivers
- plugins: add package-level documentation and examples
- synthetics: add package-level documentation and examples
- alerts: implement graphql policy methods
- workloads: add update operation, rework integration test scenario
- workloads: add delete and duplicate mutations
- workloads: add a workload create operation
- workloads: add a workloads resource, list and get methods
- alerts: Fix lint issue
- alerts: add types for fields with known values
- apm: Move Application REST implementation, use interface
- dashboards: add types for fields with known values
- http: Move NewRequest, have it follow New* func format
- http: Move graphql code out to file
- http: Make all fields private, add some setters/getters, more tests
- http: Consolidate GraphQL client, rename to http.Client
- http: Move GraphQL into http.NewRelicClient as Query()
v0.16.0 - 2020-03-11
- build: Force pull tags after each checkout
- update community support information
- entities: Add some more details from BrowserApplicationEntity
- entities: Return more data on ApmApplicationEntity, and be consistent in what we return between fetch and search
- entities: Change Entity.Type type... Add more to the ENUMs
v0.15.0 - 2020-03-09
- apm: remove unused field
- build: Remove working dir config for CircleCI
- http: allow overriding of service name
- alert_conditions: remove transient PolicyID from struct for consistency with API response
- alerts: use consistent types for incident timestamp fields
- build: Make the build system consistent with other projects
- nrql_conditions: remove transient PolicyID from struct for consistency with API response
- plugins_conditions: remove transient PolicyID from struct for consistency with API response
v0.14.0 - 2020-03-05
- newrelic: add types for fields with well known values
v0.13.0 - 2020-03-03
- entities: include applicationId for ApmApplicationEntity results
- entities: Make ApplicationID optional in results, omit if not returned by the API
- http: create a new errorValue for every request
- apm: refactor deployments resource to use new auth strategy
- http: refactor client to a request-scoped config context
v0.12.0 - 2020-02-28
- docs: Fix the release badge
- nerdgraph: implement ability to make raw graphql query
- alerts: Move structs into implementing files
- apm: Move structs into implementing files
- config: BREAKING CHANGE: Change environment vars and rename APIKey to AdminApiKey
- dashboards: Move structs into implementing files
- entities: Move structs into implementing files
- synthetics: Move structs into implementing files
v0.11.0 - 2020-02-27
- http: allow personal API keys to be used for alerts and APM resources
- http: refactor authentication out of http client
v0.10.1 - 2020-02-20
- entities: tags filter needs to use type TagValue in graphql query
- newrelic: Add option to set ServiceName in Config
v0.10.0 - 2020-02-19
- ci: add release make target
- ci: the beginnings of some release automation
- synthetics: add secure credentials resource
- synthetics: implement label monitor support
v0.9.0 - 2020-02-05
- allow string representations of JSON for alert channel webhook and payload
- http: Clear client responses between pages
- alerts: Implement multi-location synthetics conditions
- http: add trace logging with additional request info
v0.8.0 - 2020-01-29
- alerts: ensure multiple channels can be added via /alerts_policy_channel.json endpoint (#114)
- apm: Add support application metric names and data
v0.7.1 - 2020-01-24
- alerts: handle more complex JSON structures in headers and/or payload
- logging: use global methods for the default logger rather than a logrus instance
- entities: rename SearchEntities params struct per convention
- newrelic: remove reference to pointer for http transport config
v0.7.0 - 2020-01-23
- newrelic: add ConfigOptions for logging
- newrelic: add the ability to configure base URLs per API
- newrelic: incorporate code review feedback
v0.6.0 - 2020-01-22
- alerts: add GetSyntheticsCondition method (#105)
v0.5.1 - 2020-01-21
- alerts: custom unmarshal of channel configuration Headers and Payload fields (#102)
v0.5.0 - 2020-01-16
- newrelic: update API key configuration documentation
- newrelic: validate that at least one API key is provided
v0.4.0 - 2020-01-15
- retry HTTP requests on 429 status codes
- entities: add entities search and entity tagging
- update test helpers to use new mock server, consistent patterns in tests
v0.3.0 - 2020-01-13
- make use of ErrorNotFound type for Get methods that are based on List methods
- add policy ID to alert condition
- update example
- build: Update README for commit message format
- changelog: Add auto-generation of CHANGELOG from git comments via
make changelog
- add top-level logging package for convenience
- add option for JSON logging and fail gracefully when log level cannot be parsed
- introduce logging
- update monitor scripts with return design pattern, update tests
- update alerts incidents to follow return design pattern, parallelize and use assert lib in alert incidents tests
- update ListDashboards to return array of pointers, update Dashboard test to use assert
- update ListApplications to return array of pointers, update tests to use assert
- update alert channels to return array of pointers, update tests to use assert
- update synthetics conditions to return array of pointers
- use require lib for dashboards integration tests
- refactor to package-based types files
- remove config pointer references
- remove unnecessary else
- create a logger instance per package
- move logging config code into logging package
- use centralized test helpers and remove old ones
- rescope vars for integration tests to avoid variable name conflicts
- remove redundant 'alert' from file names
- remove redundant 'Alert' from naming convention
- update monitors to use return design pattern where applicable, update tests
- incorporate code review feedback
- consistent use of pointers for &reqBody structs
- alerts: Spike example of changes to the mock setup
- alerts: Update mock server format, continue to have pkg helper
- config: Change Region to a string, then parse with region package
- newrelic: Extract config setting to opts ... format
- region: Move region out of config into package, add Parse(string)
v0.2.0 - 2020-01-08
- update readme example
- rename variables to fix redeclared error
- update unit tests to use new method sigs
- fix monitor ID type and GetMonitor URL
- http client needs to handle other 'success' response status codes such as 201
- add godoc as a dep, and a warning about GOPATH and godoc
- fix paging bug for v2 API
- lint: formatting fixes for linter
- add alerts package docs
- temporarily checking in broken import paths in generated markdown docs
- add inline documentation
- add badges to README
- fill in missing inline documentation
- document some methods
- add DeletePluginCondition
- add CreatePluginCondition
- add UpdatePluginCondition
- add GetPluginCondition
- add ListPluginsConditions
- encode monitor script text
- add ability to use 'detailed' query param in ListPlugins method
- add GetPlugin
- add ListPlugins
- publicly expose error types
- finish components endpoints
- add Components
- add internal utils package, move IntArrayToString() util to new home
- add integration tests for key transactions
- add query param filters for ListKeyTransactions
- add GetKeyTransaction
- add ListKeyTransactions
- add DeleteLabel
- add CreateLabel
- add ListLabels, add GetLabel
- add DeleteDeployment
- add CreateDeployment
- add ListDeployments
- centralize apm test helpers
- add DeleteNrqlAlertCondition
- add UpdateNrqlAlertCondition
- add CreateNrqlAlertCondition
- add GetNrqlAlertCondition
- add ListNrqlAlertConditions
- add UpdateAlertPolicy
- add DeleteAlertCondition
- add CreateAlertCondition
- add GetAlertCondition
- add ListAlertConditions
- get infra condition integration tests passing
- add InfrastructureConditions
- add MonitorScripts
- add MonitorScript
- add DeleteAlertPolicyChannel, update unit tests, add integration test (might need to remove this)
- add alert policy channels
- add synthetics alert conditions
- add synthetics alert conditions
- add GetAlertChannel method
- add CreateAlertChannel, ListAlertChannels, DeleteAlertChannel
- add DeleteMonitor
- add UpdateMonitor
- add CreateMonitor
- add dashboards
- add DeleteAlertPolicy method
- add UpdateAlertPolicy method
- add CreateAlertPolicy method
- add GetAlertPolicy method
- add ListAlertPolicies method
- alerts package
- create remaining CRUD methods for application resource
- add new dependency-free client implementation
- add version.go per auto-versioning docs
- add ListAlertConditions for infrastructure
- add infra namespace
- add catchall newrelic package
- add New Relic environment enum
- maximize page size for ListMonitors
- add ListMonitors method for Synthetics monitors
- add application filtering for ListApplications
- get TestListApplications passing
- updates per code review
- use proper noun Plugins in naming convention
- update key txns to use new query string parsing mechanism
- simplify integration test scenarios for components
- move components to the plugins package
- move query string parsing to an external package
- represent query params as a struct rather than a map
- return slices of pointers instead of slices of structs
- simplify parameter handling logic
- optimize IntArrayToString() per review, add test cases
- add integration tests, update unit tests, links should be a pointer for omission
- Makefile cleanup
- optimize pushing to array of pointers
- refactor synthetics conditions to established patterns
- refactor alerts package to established patterns
- refactor synthetics package to established patterns
- update local var names for consistency
- update Epoch to EpochTime
- remove redundant 'Alert' from naming convention
- remove pointer from AlertChannelConfiguration
- utilize testify assert library, other minor refactors
- refactor unit tests to use testify assertions
- add concrete types for field with known possible values
- use Epoch type for date types instead of int64
- consolidate request body structs into one alertPolicyRequestBody
- no pointers for param fields
- integrate new http client
- simplify HTTP method signatures
- add the remaining HTTP methods
- rename the new client types
- remove the old resty-based client
- put new client in place for all resources
- make ListApplications use the new client
- move version into its own internal package for now
- incorporate linter suggestions
- clean up the configuration API for NewRelicClient
- restructuring project files
- extract cross cutting concern for apm resources
- extract paging implementation
- rename packages for clarity, promote Config to the public package