# Packages

No description provided by the author

# README

Go API client for BloxOne Anycast API

Anycast capability enables HA (High Availability) configuration of BloxOne applications that run on equipment located on customer's premises (on-prem hosts). Anycast supports DNS, as well as DNS-forwarding services.

Anycast-enabled application setups use multiple on-premises installations for one particular application type. Multiple application instances are configured to use the same endpoint address. Anycast capability is collocated with such application instance, monitoring the local application instance and advertising to the upstream router (a customer equipment) a per-instance, local route to the common application endpoint address, as long as the local application instance is available. Depending on the type of the upstream router, the customer may configure local route advertisement via either BGP (Boarder Gateway Protocol) or OSPF (Open Shortest Path First) routing protocols. Both protocols may be enabled as well. Multiple routes to the common application service address provide redundancy without the need to reconfigure application clients.

Should an application instance become unavailable, the local route advertisements stop, resulting in withdrawal of the route (in the upstream router) to the application instance that has gone out of service and ensuring that subsequent application requests thus get routed to the remaining available application instances.

Overview

This API client was generated by the OpenAPI Generator project. By using the OpenAPI-spec from a remote server, you can easily generate an API client.

  • API version: v1
  • Generator version: 7.5.0
  • Build package: com.infoblox.codegen.BloxoneGoClientCodegen

Installation

Install the package using go get:

go get github.com/infobloxopen/bloxone-go-client/anycast

Import the package into your code:

import "github.com/infobloxopen/bloxone-go-client/anycast"

To use a proxy, set the environment variable HTTP_PROXY:

os.Setenv("HTTP_PROXY", "http://proxy_name:proxy_port")

To create a new API client, you can use the NewAPIClient function as shown below

client := anycast.NewAPIClient()

Configuration

The NewAPIClient function accepts a variadic list of option.ClientOption functions that can be used to configure the client. It requires the option package to be imported. You can import the package using:

import "github.com/infobloxopen/bloxone-go-client/option"

Client Name

The client name is used to identify the client in the logs. By default, the client name is set to bloxone-go-client. You can change this using the option.WithClientName option. For example:

client := anycast.NewAPIClient(option.WithClientName("my-client"))

Server URL

The default URL for the Cloud Services Portal is https://csp.infoblox.com. If you need to change this, you can use option.WithCSPUrl to set the URL. For example:

client := anycast.NewAPIClient(option.WithCSPUrl("https://csp.eu.infoblox.com"))

You can also set the URL using the environment variable BLOXONE_CSP_URL

Authorization

An API key is required to access BloxOne Anycast API. You can obtain an API key by following the instructions in the guide for Configuring User API Keys.

To use an API key with BloxOne Anycast API, you can use the option.WithAPIKey option. For example:

client := anycast.NewAPIClient(option.WithAPIKey("YOUR_API_KEY"))

You can also set the API key using the environment variable BLOXONE_API_KEY

Note: The API key is a secret and should be handled securely. Hardcoding the API key in your code is not recommended.

Default Tags

You can set default tags for all API requests using the option.WithDefaultTags option. For example:

client := anycast.NewAPIClient(option.WithDefaultTags(map[string]string{"tag1": "value1", "tag2": "value2"}))

This will add the tags tag1=value1 and tag2=value2 to all API requests that support tags in the request body.

Documentation for API Endpoints

All URIs are relative to http://csp.infoblox.com/api/anycast/v1

ClassMethodHTTP requestDescription
OnPremAnycastManagerAPICreateAnycastConfigPost /accm/ac_configsCreate Anycast Configuration
OnPremAnycastManagerAPICreateAnycastVersionPost /accm/ac_version/{id}Create Anycast Version
OnPremAnycastManagerAPIDeleteAnycastConfigDelete /accm/ac_configs/{id}Delete Anycast Configuration
OnPremAnycastManagerAPIDeleteAnycastVersionDelete /accm/ac_version/{id}Delete anycast version
OnPremAnycastManagerAPIDeleteOnpremHostDelete /accm/op_hosts/{id}Delete On-Prem Host
OnPremAnycastManagerAPIGetAnycastConfigGet /accm/ac_configs/{id}Retrieve Anycast Configuration
OnPremAnycastManagerAPIGetAnycastConfigListGet /accm/ac_configsRetrieve Multiple Anycast Configurations
OnPremAnycastManagerAPIGetAnycastVersionGet /accm/ac_version/{id}Retrieve Anycast Version
OnPremAnycastManagerAPIGetOnpremConfigGet /accm/oph_configs/{ophid}/{version}Retrieve Generated, Per-Host Anycast Configuration
OnPremAnycastManagerAPIGetOnpremConfig2Get /onprem_config/{ophid}/{version}Retrieve Generated, Per-Host Anycast Configuration
OnPremAnycastManagerAPIGetOnpremHostGet /accm/op_hosts/{id}Retrieve On-Prem Host
OnPremAnycastManagerAPIGetStatusGet /accm/oph_config_statuses/{ophid}/latestRetrieve Configuration Status
OnPremAnycastManagerAPIGetStatus2Get /onprem_config_statuses/{ophid}/latestRetrieve Configuration Status
OnPremAnycastManagerAPIListAnycastConfigsWithRuntimeStatusGet /accm/ac_runtime_statusesRead list of Anycast Configurations
OnPremAnycastManagerAPIReadAnycastConfigWithRuntimeStatusGet /accm/ac_runtime_statuses/{id}Read Anycast Configuration
OnPremAnycastManagerAPIUpdateAnycastConfigPut /accm/ac_configs/{id}Create or Update Anycast Configuration
OnPremAnycastManagerAPIUpdateOnpremHostPut /accm/op_hosts/{id}Create or Update On-Prem Host

Documentation For Models

Documentation for Utility Methods

Due to the fact that model structure members are all pointers, this package contains a number of utility functions to easily obtain pointers to values of basic types. Each of these functions takes a value of the given basic type and returns a pointer to it:

  • PtrBool
  • PtrInt
  • PtrInt32
  • PtrInt64
  • PtrFloat
  • PtrFloat32
  • PtrFloat64
  • PtrString
  • PtrTime