Documentation
¶
Index ¶
- Variables
- type AutoScalingConfig
- type BIConnectorConfig
- type Client
- type Cluster
- type HTTPClient
- func (c *HTTPClient) CreateCluster(cluster Cluster) (*Cluster, error)
- func (c *HTTPClient) CreateUser(user User) (*User, error)
- func (c *HTTPClient) DeleteCluster(name string) error
- func (c *HTTPClient) DeleteUser(name string) error
- func (c *HTTPClient) GetCluster(name string) (*Cluster, error)
- func (c *HTTPClient) GetDashboardURL(clusterName string) string
- func (c *HTTPClient) GetProvider(name string) (*Provider, error)
- func (c *HTTPClient) GetUser(name string) (*User, error)
- func (c *HTTPClient) UpdateCluster(cluster Cluster) (*Cluster, error)
- type InstanceSize
- type Provider
- type ProviderSettings
- type RegionsConfig
- type ReplicationSpec
- type Role
- type User
Constants ¶
This section is empty.
Variables ¶
var ( ErrPlanIDNotFound = errors.New("plan-id not in the catalog") ErrClusterNotFound = errors.New("Cluster not found") ErrClusterAlreadyExists = errors.New("Cluster already exists") ErrUserNotFound = errors.New("User not found") ErrUserAlreadyExists = errors.New("User already exists") )
Different errors the api may return.
var ( ClusterStateIdle = "IDLE" ClusterStateCreating = "CREATING" ClusterStateUpdating = "UPDATING" ClusterStateDeleting = "DELETING" ClusterStateDeleted = "DELETED" ClusterStateRepairing = "REPAIRING" )
All states a cluster can be in.
var ( ClusterTypeReplicaSet = "REPLICASET" ClusterTypeSharded = "SHARDED" )
The different types of clusters available in Atlas.
Functions ¶
This section is empty.
Types ¶
type AutoScalingConfig ¶
type AutoScalingConfig struct {
DiskGBEnabled bool `json:"diskGBEnabled,omitempty"`
}
AutoScalingConfig represents the autoscaling settings for a cluster.
type BIConnectorConfig ¶
type BIConnectorConfig struct { Enabled bool `json:"enabled,omitempty"` ReadPreference string `json:"readPreference,omitempty"` }
BIConnectorConfig represents the BI connector settings for a cluster.
type Client ¶
type Client interface { CreateCluster(cluster Cluster) (*Cluster, error) UpdateCluster(cluster Cluster) (*Cluster, error) DeleteCluster(name string) error GetCluster(name string) (*Cluster, error) GetDashboardURL(clusterName string) string CreateUser(user User) (*User, error) GetUser(name string) (*User, error) DeleteUser(name string) error GetProvider(name string) (*Provider, error) }
Client is an interface for interacting with the Atlas API.
type Cluster ¶
type Cluster struct { Name string `json:"name"` AutoScaling AutoScalingConfig `json:"autoScaling,omitempty"` BackupEnabled bool `json:"backupEnabled,omitempty"` BIConnector BIConnectorConfig `json:"biConnector,omitempty"` ClusterType string `json:"clusterType,omitempty"` DiskSizeGB float64 `json:"diskSizeGB,omitempty"` EncryptionAtRestProvider string `json:"encryptionAtRestProvider,omitempty"` MongoDBMajorVersion string `json:"mongoDBMajorVersion,omitempty"` NumShards uint `json:"numShards,omitempty"` ProviderBackupEnabled bool `json:"providerBackupEnabled,omitempty"` ReplicationSpecs []ReplicationSpec `json:"replicationSpecs,omitempty"` ProviderSettings *ProviderSettings `json:"providerSettings"` // Read-only attributes StateName string `json:"stateName,omitempty"` SrvAddress string `json:"srvAddress,omitempty"` }
Cluster represents a single cluster in Atlas.
type HTTPClient ¶
type HTTPClient struct { BaseURL string GroupID string PublicKey string PrivateKey string HTTP *http.Client }
HTTPClient is the main implementation of the Client interface which communicates with the Atlas API.
func NewClient ¶
func NewClient(baseURL string, groupID string, publicKey string, privateKey string) *HTTPClient
NewClient will create a new HTTPClient with the specified connection details.
func (*HTTPClient) CreateCluster ¶
func (c *HTTPClient) CreateCluster(cluster Cluster) (*Cluster, error)
CreateCluster will create a new cluster asynchronously. POST /clusters
func (*HTTPClient) CreateUser ¶
func (c *HTTPClient) CreateUser(user User) (*User, error)
CreateUser will create a new database user with read/write access to all databases. Endpoint: POST /databaseUsers
func (*HTTPClient) DeleteCluster ¶
func (c *HTTPClient) DeleteCluster(name string) error
DeleteCluster will terminate a cluster asynchronously. DELETE /clusters/{CLUSTER-NAME}
func (*HTTPClient) DeleteUser ¶
func (c *HTTPClient) DeleteUser(name string) error
DeleteUser will delete an existing database user. Endpoint: DELETE /databaseUsers/{USERNAME}
func (*HTTPClient) GetCluster ¶
func (c *HTTPClient) GetCluster(name string) (*Cluster, error)
GetCluster will find a cluster by name. GET /clusters/{CLUSTER-NAME}
func (*HTTPClient) GetDashboardURL ¶
func (c *HTTPClient) GetDashboardURL(clusterName string) string
GetDashboardURL prepares the url where the specific cluster can be found in the Dashboard UI
func (*HTTPClient) GetProvider ¶
func (c *HTTPClient) GetProvider(name string) (*Provider, error)
GetProvider will find a provider by name using the private API. GET /cloudProviders/{NAME}/options
func (*HTTPClient) GetUser ¶
func (c *HTTPClient) GetUser(name string) (*User, error)
GetUser will find a database user by its username. GET /databaseUsers/admin/{USERNAME}
func (*HTTPClient) UpdateCluster ¶
func (c *HTTPClient) UpdateCluster(cluster Cluster) (*Cluster, error)
UpdateCluster will update a cluster asynchronously. PATCH /clusters/{CLUSTER-NAME}
type InstanceSize ¶
type InstanceSize struct {
Name string `json:"name"`
}
InstanceSize represents an available cluster size.
type Provider ¶
type Provider struct { Name string `json:"@provider"` InstanceSizes map[string]InstanceSize }
Provider represents a single cloud provider to which a cluster can be deployed.
type ProviderSettings ¶
type ProviderSettings struct { ProviderName string `json:"providerName"` InstanceSizeName string `json:"instanceSizeName"` RegionName string `json:"regionName,omitempty"` BackingProviderName string `json:"backingProviderName,omitempty"` DiskIOPS uint `json:"diskIOPS,omitempty"` DiskTypeName string `json:"diskTypeName,omitempty"` EncryptEBSVolume bool `json:"encryptEBSVolume,omitempty"` VolumeType string `json:"volumeType,omitempty"` }
ProviderSettings represents the provider setting for a cluster.
type RegionsConfig ¶
type RegionsConfig struct { ElectableNodes int `json:"electableNodes"` ReadOnlyNodes int `json:"readOnlyNodes"` AnalyticsNodes int `json:"analyticsNodes,omitempty"` Priority int `json:"priority,omitempty"` }
RegionsConfig represents a region's config in a replication spec.
type ReplicationSpec ¶
type ReplicationSpec struct { // Unique identifier for a zone's replication document. Required for existing // zones and optional if adding new zones to a Global Cluster. ID string `json:"id,omitempty"` NumShards uint `json:"numShards,omitempty"` RegionsConfig map[string]RegionsConfig `json:"regionsConfig,omitempty"` ZoneName string `json:"zoneName,omitempty"` }
ReplicationSpec represents the replication settings for a single region.