cfclient

package module
v0.0.0-...-4fb9f96 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 10, 2017 License: MIT Imports: 15 Imported by: 1

README

go-cfclient

Overview

Build Status GoDoc

cfclient is a package to assist you in writing apps that need information out of Cloud Foundry. It provides functions and structures to retrieve

Usage
go get github.com/cloudfoundry-community/go-cfclient

Some example code:

package main

import (
	"github.com/cloudfoundry-community/go-cfclient"
)

func main() {
  c := &cfclient.Config{
    ApiAddress:   "https://api.10.244.0.34.xip.io",
    Username:     "admin",
    Password:     "admin",
  }
  client, _ := cfclient.NewClient(c)
  apps, _ := client.ListApps()
  fmt.Println(apps)
}
Developing & Contributing

You can use Godep to restore the dependency Tested with go1.5.3

godep go build

Pull requests welcome.

Documentation

Index

Constants

View Source
const (
	//AppCrash app.crash event const
	AppCrash = "app.crash"
	//AppStart audit.app.start event const
	AppStart = "audit.app.start"
	//AppStop audit.app.stop event const
	AppStop = "audit.app.stop"
	//AppUpdate audit.app.update event const
	AppUpdate = "audit.app.update"
	//AppCreate audit.app.create event const
	AppCreate = "audit.app.create"
	//AppDelete audit.app.delete-request event const
	AppDelete = "audit.app.delete-request"
	//AppSSHAuth audit.app.ssh-authorized event const
	AppSSHAuth = "audit.app.ssh-authorized"
	//AppSSHUnauth audit.app.ssh-unauthorized event const
	AppSSHUnauth = "audit.app.ssh-unauthorized"
	//AppRestage audit.app.restage event const
	AppRestage = "audit.app.restage"
	//AppMapRoute audit.app.map-route event const
	AppMapRoute = "audit.app.map-route"
	//AppUnmapRoute audit.app.unmap-route event const
	AppUnmapRoute = "audit.app.unmap-route"
	//FilterTimestamp const for query filter timestamp
	FilterTimestamp = "timestamp"
	//FilterActee const for query filter actee
	FilterActee = "actee"
)

Variables

View Source
var ValidOperators = []string{":", ">=", "<=", "<", ">", "IN"}

ValidOperators const for all valid operators in a query

Functions

This section is empty.

Types

type App

type App struct {
	Guid                     string                 `json:"guid"`
	CreatedAt                string                 `json:"created_at"`
	UpdatedAt                string                 `json:"updated_at"`
	Name                     string                 `json:"name"`
	Memory                   int                    `json:"memory"`
	Instances                int                    `json:"instances"`
	DiskQuota                int                    `json:"disk_quota"`
	SpaceGuid                string                 `json:"space_guid"`
	StackGuid                string                 `json:"stack_guid"`
	State                    string                 `json:"state"`
	PackageState             string                 `json:"package_state"`
	Command                  string                 `json:"command"`
	Buildpack                string                 `json:"buildpack"`
	DetectedBuildpack        string                 `json:"detected_buildpack"`
	DetectedBuildpackGuid    string                 `json:"detected_buildpack_guid"`
	HealthCheckHttpEndpoint  string                 `json:"health_check_http_endpoint"`
	HealthCheckType          string                 `json:"health_check_type"`
	HealthCheckTimeout       int                    `json:"health_check_timeout"`
	Diego                    bool                   `json:"diego"`
	EnableSSH                bool                   `json:"enable_ssh"`
	DetectedStartCommand     string                 `json:"detected_start_command"`
	DockerImage              string                 `json:"docker_image"`
	DockerCredentials        map[string]interface{} `json:"docker_credentials_json"`
	Environment              map[string]interface{} `json:"environment_json"`
	StagingFailedReason      string                 `json:"staging_failed_reason"`
	StagingFailedDescription string                 `json:"staging_failed_description"`
	Ports                    []int                  `json:"ports"`
	SpaceURL                 string                 `json:"space_url"`
	SpaceData                SpaceResource          `json:"space"`
	PackageUpdatedAt         string                 `json:"package_updated_at"`
	// contains filtered or unexported fields
}

func (*App) Space

func (a *App) Space() (Space, error)

type AppEnv

type AppEnv struct {
	// These can have arbitrary JSON so need to map to interface{}
	Environment    map[string]interface{} `json:"environment_json"`
	StagingEnv     map[string]interface{} `json:"staging_env_json"`
	RunningEnv     map[string]interface{} `json:"running_env_json"`
	SystemEnv      map[string]interface{} `json:"system_env_json"`
	ApplicationEnv map[string]interface{} `json:"application_env_json"`
}

type AppEventEntity

type AppEventEntity struct {
	//EventTypes are app.crash, audit.app.start, audit.app.stop, audit.app.update, audit.app.create, audit.app.delete-request
	EventType string `json:"type"`
	//The GUID of the actor.
	Actor string `json:"actor"`
	//The actor type, user or app
	ActorType string `json:"actor_type"`
	//The name of the actor.
	ActorName string `json:"actor_name"`
	//The GUID of the actee.
	Actee string `json:"actee"`
	//The actee type, space, app or v3-app
	ActeeType string `json:"actee_type"`
	//The name of the actee.
	ActeeName string `json:"actee_name"`
	//Timestamp format "2016-02-26T13:29:44Z". The event creation time.
	Timestamp time.Time `json:"timestamp"`
	MetaData  struct {
		Request struct {
			Name              string  `json:"name,omitempty"`
			Instances         float64 `json:"instances,omitempty"`
			State             string  `json:"state,omitempty"`
			Memory            float64 `json:"memory,omitempty"`
			EnvironmentVars   string  `json:"environment_json,omitempty"`
			DockerCredentials string  `json:"docker_credentials_json,omitempty"`
			//audit.app.create event fields
			Console            bool    `json:"console,omitempty"`
			Buildpack          string  `json:"buildpack,omitempty"`
			Space              string  `json:"space_guid,omitempty"`
			HealthcheckType    string  `json:"health_check_type,omitempty"`
			HealthcheckTimeout float64 `json:"health_check_timeout,omitempty"`
			Production         bool    `json:"production,omitempty"`
			//app.crash event fields
			Index           float64 `json:"index,omitempty"`
			ExitStatus      string  `json:"exit_status,omitempty"`
			ExitDescription string  `json:"exit_description,omitempty"`
			ExitReason      string  `json:"reason,omitempty"`
		} `json:"request"`
	} `json:"metadata"`
}

The AppEventEntity the actual app event body

type AppEventQuery

type AppEventQuery struct {
	Filter   string
	Operator string
	Value    string
}

AppEventQuery a struct for defining queries like 'q=filter>value' or 'q=filter IN a,b,c'

type AppEventResource

type AppEventResource struct {
	Meta   Meta           `json:"metadata"`
	Entity AppEventEntity `json:"entity"`
}

AppEventResource the event resources

type AppEventResponse

type AppEventResponse struct {
	Results   int                `json:"total_results"`
	Pages     int                `json:"total_pages"`
	PrevURL   string             `json:"prev_url"`
	NextURL   string             `json:"next_url"`
	Resources []AppEventResource `json:"resources"`
}

AppEventResponse the entire response

type AppInstance

type AppInstance struct {
	State string    `json:"state"`
	Since sinceTime `json:"since"`
}

type AppResource

type AppResource struct {
	Meta   Meta `json:"metadata"`
	Entity App  `json:"entity"`
}

type AppResponse

type AppResponse struct {
	Count     int           `json:"total_results"`
	Pages     int           `json:"total_pages"`
	NextUrl   string        `json:"next_url"`
	Resources []AppResource `json:"resources"`
}

type AppStats

type AppStats struct {
	State string `json:"state"`
	Stats struct {
		Name      string   `json:"name"`
		Uris      []string `json:"uris"`
		Host      string   `json:"host"`
		Port      int      `json:"port"`
		Uptime    int      `json:"uptime"`
		MemQuota  int      `json:"mem_quota"`
		DiskQuota int      `json:"disk_quota"`
		FdsQuota  int      `json:"fds_quota"`
		Usage     struct {
			Time statTime `json:"time"`
			CPU  float64  `json:"cpu"`
			Mem  int      `json:"mem"`
			Disk int      `json:"disk"`
		} `json:"usage"`
	} `json:"stats"`
}

type AppSummary

type AppSummary struct {
	Guid             string `json:"guid"`
	Name             string `json:"name"`
	ServiceCount     int    `json:"service_count"`
	RunningInstances int    `json:"running_instances"`
	Memory           int    `json:"memory"`
	Instances        int    `json:"instances"`
	DiskQuota        int    `json:"disk_quota"`
	State            string `json:"state"`
	Diego            bool   `json:"diego"`
}

type Buildpack

type Buildpack struct {
	Guid     string `json:"guid"`
	Name     string `json:"name"`
	Enabled  bool   `json:"enabled"`
	Locked   bool   `json:"locked"`
	Filename string `json:"filename"`
	// contains filtered or unexported fields
}

type BuildpackResource

type BuildpackResource struct {
	Meta   Meta      `json:"metadata"`
	Entity Buildpack `json:"entity"`
}

type BuildpackResponse

type BuildpackResponse struct {
	Count     int                 `json:"total_results"`
	Pages     int                 `json:"total_pages"`
	NextUrl   string              `json:"next_url"`
	Resources []BuildpackResource `json:"resources"`
}

type Client

type Client struct {
	Endpoint Endpoint
	// contains filtered or unexported fields
}

Client used to communicate with Cloud Foundry

func NewClient

func NewClient(config *Config) (client *Client, err error)

NewClient returns a new client

func (*Client) AppByGuid

func (c *Client) AppByGuid(guid string) (App, error)

func (*Client) AssociateOrgAuditor

func (c *Client) AssociateOrgAuditor(orgGUID, userGUID string) (Org, error)

func (*Client) AssociateOrgAuditorByUsername

func (c *Client) AssociateOrgAuditorByUsername(orgGUID, name string) (Org, error)

func (*Client) AssociateOrgManager

func (c *Client) AssociateOrgManager(orgGUID, userGUID string) (Org, error)

func (*Client) AssociateOrgManagerByUsername

func (c *Client) AssociateOrgManagerByUsername(orgGUID, name string) (Org, error)

func (*Client) AssociateOrgUser

func (c *Client) AssociateOrgUser(orgGUID, userGUID string) (Org, error)

func (*Client) AssociateOrgUserByUsername

func (c *Client) AssociateOrgUserByUsername(orgGUID, name string) (Org, error)

func (*Client) AssociateSpaceAuditorByUsername

func (c *Client) AssociateSpaceAuditorByUsername(spaceGUID, name string) (Space, error)

func (*Client) AssociateSpaceDeveloperByUsername

func (c *Client) AssociateSpaceDeveloperByUsername(spaceGUID, name string) (Space, error)

func (*Client) BindRunningSecGroup

func (c *Client) BindRunningSecGroup(secGUID string) error

BindRunningSecGroup contacts the CF endpoint to associate a security group secGUID: identifies the security group to add a space to

func (*Client) BindSecGroup

func (c *Client) BindSecGroup(secGUID, spaceGUID string) error

BindSecGroup contacts the CF endpoint to associate a space with a security group secGUID: identifies the security group to add a space to spaceGUID: identifies the space to associate

func (*Client) BindStagingSecGroup

func (c *Client) BindStagingSecGroup(secGUID string) error

BindStagingSecGroup contacts the CF endpoint to associate a space with a security group secGUID: identifies the security group to add a space to

func (*Client) CreateDomain

func (c *Client) CreateDomain(name, orgGuid string) (*Domain, error)

func (*Client) CreateIsolationSegment

func (c *Client) CreateIsolationSegment(name string) (*IsolationSegment, error)

func (*Client) CreateOrg

func (c *Client) CreateOrg(req OrgRequest) (Org, error)

func (*Client) CreateSecGroup

func (c *Client) CreateSecGroup(name string, rules []SecGroupRule, spaceGuids []string) (*SecGroup, error)

CreateSecGroup contacts the CF endpoint for creating a new security group. name: the name to give to the created security group rules: A slice of rule objects that describe the rules that this security group enforces.

This can technically be nil or an empty slice - we won't judge you

spaceGuids: The security group will be associated with the spaces specified by the contents of this slice.

If nil, the security group will not be associated with any spaces initially.

func (*Client) CreateSpace

func (c *Client) CreateSpace(req SpaceRequest) (Space, error)

func (*Client) CreateTask

func (c *Client) CreateTask(tr TaskRequest) (task Task, err error)

CreateTask creates a new task in CF system and returns its structure.

func (*Client) CreateUser

func (c *Client) CreateUser(req UserRequest) (User, error)

func (*Client) DeleteDomain

func (c *Client) DeleteDomain(guid string) error

func (*Client) DeleteIsolationSegmentByGUID

func (c *Client) DeleteIsolationSegmentByGUID(guid string) error

func (*Client) DeleteOrg

func (c *Client) DeleteOrg(guid string) error

func (*Client) DeleteSecGroup

func (c *Client) DeleteSecGroup(guid string) error

DeleteSecGroup contacts the CF endpoint to delete an existing security group. guid: Indentifies the security group to be deleted.

func (*Client) DeleteUser

func (c *Client) DeleteUser(userGuid string) error

func (*Client) DoRequest

func (c *Client) DoRequest(r *request) (*http.Response, error)

DoRequest runs a request with our client

func (*Client) GetAppEnv

func (c *Client) GetAppEnv(guid string) (AppEnv, error)

func (*Client) GetAppInstances

func (c *Client) GetAppInstances(guid string) (map[string]AppInstance, error)

func (*Client) GetAppRoutes

func (c *Client) GetAppRoutes(guid string) ([]Route, error)

func (*Client) GetAppStats

func (c *Client) GetAppStats(guid string) (map[string]AppStats, error)

func (*Client) GetDomainByName

func (c *Client) GetDomainByName(name string) (Domain, error)

func (*Client) GetIsolationSegmentByGUID

func (c *Client) GetIsolationSegmentByGUID(guid string) (*IsolationSegment, error)

func (*Client) GetOrgByGuid

func (c *Client) GetOrgByGuid(guid string) (Org, error)

func (*Client) GetOrgByName

func (c *Client) GetOrgByName(name string) (Org, error)

func (*Client) GetOrgQuotaByName

func (c *Client) GetOrgQuotaByName(name string) (OrgQuota, error)

func (*Client) GetSecGroup

func (c *Client) GetSecGroup(guid string) (*SecGroup, error)

GetSecGroup contacts the CF endpoint for fetching the info for a particular security group. guid: Identifies the security group to fetch information from

func (*Client) GetSecGroupByName

func (c *Client) GetSecGroupByName(name string) (secGroup SecGroup, err error)

func (*Client) GetSharedDomainByName

func (c *Client) GetSharedDomainByName(name string) (SharedDomain, error)

func (*Client) GetSpaceByName

func (c *Client) GetSpaceByName(spaceName string, orgGuid string) (Space, error)

func (*Client) GetSpaceQuotaByName

func (c *Client) GetSpaceQuotaByName(name string) (SpaceQuota, error)

func (*Client) GetToken

func (c *Client) GetToken() (string, error)

func (*Client) KillAppInstance

func (c *Client) KillAppInstance(guid string, index string) error

func (*Client) ListAppEvents

func (c *Client) ListAppEvents(eventType string) ([]AppEventEntity, error)

ListAppEvents returns all app events based on eventType

func (*Client) ListAppEventsByQuery

func (c *Client) ListAppEventsByQuery(eventType string, queries []AppEventQuery) ([]AppEventEntity, error)

ListAppEventsByQuery returns all app events based on eventType and queries

func (*Client) ListApps

func (c *Client) ListApps() ([]App, error)

func (*Client) ListAppsByQuery

func (c *Client) ListAppsByQuery(query url.Values) ([]App, error)

func (*Client) ListBuildpacks

func (c *Client) ListBuildpacks() ([]Buildpack, error)

func (*Client) ListDomains

func (c *Client) ListDomains() ([]Domain, error)

func (*Client) ListDomainsByQuery

func (c *Client) ListDomainsByQuery(query url.Values) ([]Domain, error)

func (*Client) ListIsolationSegments

func (c *Client) ListIsolationSegments() ([]IsolationSegment, error)

func (*Client) ListOrgQuotas

func (c *Client) ListOrgQuotas() ([]OrgQuota, error)

func (*Client) ListOrgQuotasByQuery

func (c *Client) ListOrgQuotasByQuery(query url.Values) ([]OrgQuota, error)

func (*Client) ListOrgs

func (c *Client) ListOrgs() ([]Org, error)

func (*Client) ListOrgsByQuery

func (c *Client) ListOrgsByQuery(query url.Values) ([]Org, error)

func (*Client) ListRoutes

func (c *Client) ListRoutes() ([]Route, error)

func (*Client) ListRoutesByQuery

func (c *Client) ListRoutesByQuery(query url.Values) ([]Route, error)

func (*Client) ListSecGroups

func (c *Client) ListSecGroups() (secGroups []SecGroup, err error)

func (*Client) ListServiceBindings

func (c *Client) ListServiceBindings() ([]ServiceBinding, error)

func (*Client) ListServiceBindingsByQuery

func (c *Client) ListServiceBindingsByQuery(query url.Values) ([]ServiceBinding, error)

func (*Client) ListServiceInstances

func (c *Client) ListServiceInstances() ([]ServiceInstance, error)

func (*Client) ListServiceInstancesByQuery

func (c *Client) ListServiceInstancesByQuery(query url.Values) ([]ServiceInstance, error)

func (*Client) ListServicePlans

func (c *Client) ListServicePlans() ([]ServicePlan, error)

func (*Client) ListServicePlansByQuery

func (c *Client) ListServicePlansByQuery(query url.Values) ([]ServicePlan, error)

func (*Client) ListServices

func (c *Client) ListServices() ([]Service, error)

func (*Client) ListServicesByQuery

func (c *Client) ListServicesByQuery(query url.Values) ([]Service, error)

func (*Client) ListSharedDomains

func (c *Client) ListSharedDomains() ([]SharedDomain, error)

func (*Client) ListSharedDomainsByQuery

func (c *Client) ListSharedDomainsByQuery(query url.Values) ([]SharedDomain, error)

func (*Client) ListSpaceQuotas

func (c *Client) ListSpaceQuotas() ([]SpaceQuota, error)

func (*Client) ListSpaceQuotasByQuery

func (c *Client) ListSpaceQuotasByQuery(query url.Values) ([]SpaceQuota, error)

func (*Client) ListSpaces

func (c *Client) ListSpaces() ([]Space, error)

func (*Client) ListSpacesByQuery

func (c *Client) ListSpacesByQuery(query url.Values) ([]Space, error)

func (*Client) ListStacks

func (c *Client) ListStacks() ([]Stack, error)

func (*Client) ListStacksByQuery

func (c *Client) ListStacksByQuery(query url.Values) ([]Stack, error)

func (*Client) ListTasks

func (c *Client) ListTasks() ([]Task, error)

ListTasks returns all tasks the user has access to. See http://v3-apidocs.cloudfoundry.org/version/3.12.0/index.html#list-tasks

func (*Client) ListTasksByQuery

func (c *Client) ListTasksByQuery(query url.Values) ([]Task, error)

ListTasksByQuery returns all tasks the user has access to, with query parameters. See http://v3-apidocs.cloudfoundry.org/version/3.12.0/index.html#list-tasks

func (*Client) ListUserAuditedSpaces

func (c *Client) ListUserAuditedSpaces(userGuid string) ([]Space, error)

func (*Client) ListUserManagedSpaces

func (c *Client) ListUserManagedSpaces(userGuid string) ([]Space, error)

func (*Client) ListUserProvidedServiceInstances

func (c *Client) ListUserProvidedServiceInstances() ([]UserProvidedServiceInstance, error)

func (*Client) ListUserProvidedServiceInstancesByQuery

func (c *Client) ListUserProvidedServiceInstancesByQuery(query url.Values) ([]UserProvidedServiceInstance, error)

func (*Client) ListUserSpaces

func (c *Client) ListUserSpaces(userGuid string) ([]Space, error)

func (*Client) ListUsers

func (c *Client) ListUsers() (Users, error)

func (*Client) ListUsersByQuery

func (c *Client) ListUsersByQuery(query url.Values) (Users, error)

func (*Client) NewRequest

func (c *Client) NewRequest(method, path string) *request

NewRequest is used to create a new request

func (*Client) NewRequestWithBody

func (c *Client) NewRequestWithBody(method, path string, body io.Reader) *request

NewRequestWithBody is used to create a new request with arbigtrary body io.Reader.

func (*Client) OrgSpaces

func (c *Client) OrgSpaces(guid string) ([]Space, error)

func (*Client) RemoveOrgAuditor

func (c *Client) RemoveOrgAuditor(orgGUID, userGUID string) error

func (*Client) RemoveOrgAuditorByUsername

func (c *Client) RemoveOrgAuditorByUsername(orgGUID, name string) error

func (*Client) RemoveOrgManager

func (c *Client) RemoveOrgManager(orgGUID, userGUID string) error

func (*Client) RemoveOrgManagerByUsername

func (c *Client) RemoveOrgManagerByUsername(orgGUID, name string) error

func (*Client) RemoveOrgUser

func (c *Client) RemoveOrgUser(orgGUID, userGUID string) error

func (*Client) RemoveOrgUserByUsername

func (c *Client) RemoveOrgUserByUsername(orgGUID, name string) error

func (*Client) RemoveSpaceAuditorByUsername

func (c *Client) RemoveSpaceAuditorByUsername(spaceGUID, name string) error

func (*Client) RemoveSpaceDeveloperByUsername

func (c *Client) RemoveSpaceDeveloperByUsername(spaceGUID, name string) error

func (*Client) ServiceInstanceByGuid

func (c *Client) ServiceInstanceByGuid(guid string) (ServiceInstance, error)

func (*Client) TaskByGuid

func (c *Client) TaskByGuid(guid string) (task Task, err error)

TaskByGuid returns a task structure by requesting it with the tasks GUID.

func (*Client) TasksByApp

func (c *Client) TasksByApp(guid string) ([]Task, error)

TasksByApp returns task structures which aligned to an app identified by the given guid. See: http://v3-apidocs.cloudfoundry.org/version/3.12.0/index.html#list-tasks-for-an-app

func (*Client) TasksByAppByQuery

func (c *Client) TasksByAppByQuery(guid string, query url.Values) ([]Task, error)

TasksByAppByQuery returns task structures which aligned to an app identified by the given guid and filtered by the given query parameters. See: http://v3-apidocs.cloudfoundry.org/version/3.12.0/index.html#list-tasks-for-an-app

func (*Client) TerminateTask

func (c *Client) TerminateTask(guid string) error

TerminateTask cancels a task identified by its GUID.

func (*Client) UnbindSecGroup

func (c *Client) UnbindSecGroup(secGUID, spaceGUID string) error

UnbindSecGroup contacts the CF endpoint to dissociate a space from a security group secGUID: identifies the security group to remove a space from spaceGUID: identifies the space to dissociate from the security group

func (*Client) UpdateSecGroup

func (c *Client) UpdateSecGroup(guid, name string, rules []SecGroupRule, spaceGuids []string) (*SecGroup, error)

UpdateSecGroup contacts the CF endpoint to update an existing security group. guid: identifies the security group that you would like to update. name: the new name to give to the security group rules: A slice of rule objects that describe the rules that this security group enforces.

If this is left nil, the rules will not be changed.

spaceGuids: The security group will be associated with the spaces specified by the contents of this slice.

If nil, the space associations will not be changed.

func (*Client) UserProvidedServiceInstanceByGuid

func (c *Client) UserProvidedServiceInstanceByGuid(guid string) (UserProvidedServiceInstance, error)

type CloudFoundryError

type CloudFoundryError struct {
	Code   int    `json:"code"`
	Title  string `json:"title"`
	Detail string `json:"detail"`
}

func (CloudFoundryError) Error

func (cfErr CloudFoundryError) Error() string

type CloudFoundryErrors

type CloudFoundryErrors struct {
	Errors []CloudFoundryError `json:"errors"`
}

func (CloudFoundryErrors) Error

func (cfErrs CloudFoundryErrors) Error() string

type Config

type Config struct {
	ApiAddress        string `json:"api_url"`
	Username          string `json:"user"`
	Password          string `json:"password"`
	ClientID          string `json:"client_id"`
	ClientSecret      string `json:"client_secret"`
	SkipSslValidation bool   `json:"skip_ssl_validation"`
	HttpClient        *http.Client
	Token             string `json:"auth_token"`
	TokenSource       oauth2.TokenSource
	UserAgent         string `json:"user_agent"`
}

Config is used to configure the creation of a client

func DefaultConfig

func DefaultConfig() *Config

DefaultConfig configuration for client Keep LoginAdress for backward compatibility Need to be remove in close future

type Domain

type Domain struct {
	Guid                   string `json:"guid"`
	Name                   string `json:"name"`
	OwningOrganizationGuid string `json:"owning_organization_guid"`
	OwningOrganizationUrl  string `json:"owning_organization_url"`
	SharedOrganizationsUrl string `json:"shared_organizations_url"`
	// contains filtered or unexported fields
}

type DomainResource

type DomainResource struct {
	Meta   Meta   `json:"metadata"`
	Entity Domain `json:"entity"`
}

type DomainsResponse

type DomainsResponse struct {
	Count     int              `json:"total_results"`
	Pages     int              `json:"total_pages"`
	NextUrl   string           `json:"next_url"`
	Resources []DomainResource `json:"resources"`
}

type Endpoint

type Endpoint struct {
	DopplerEndpoint string `json:"doppler_logging_endpoint"`
	LoggingEndpoint string `json:"logging_endpoint"`
	AuthEndpoint    string `json:"authorization_endpoint"`
	TokenEndpoint   string `json:"token_endpoint"`
}

func DefaultEndpoint

func DefaultEndpoint() *Endpoint

type IsolationSegementResponse

type IsolationSegementResponse struct {
	GUID      string    `json:"guid"`
	Name      string    `json:"name"`
	CreatedAt time.Time `json:"created_at"`
	UpdatedAt time.Time `json:"updated_at"`
	Links     struct {
		Self struct {
			Href string `json:"href"`
		} `json:"self"`
		Spaces struct {
			Href string `json:"href"`
		} `json:"spaces"`
		Organizations struct {
			Href string `json:"href"`
		} `json:"organizations"`
	} `json:"links"`
}

type IsolationSegment

type IsolationSegment struct {
	GUID      string    `json:"guid"`
	Name      string    `json:"name"`
	CreatedAt time.Time `json:"created_at"`
	UpdatedAt time.Time `json:"updated_at"`
	// contains filtered or unexported fields
}

func (*IsolationSegment) AddOrg

func (i *IsolationSegment) AddOrg(orgGuid string) error

func (*IsolationSegment) AddSpace

func (i *IsolationSegment) AddSpace(spaceGuid string) error

func (*IsolationSegment) Delete

func (i *IsolationSegment) Delete() error

func (*IsolationSegment) RemoveOrg

func (i *IsolationSegment) RemoveOrg(orgGuid string) error

func (*IsolationSegment) RemoveSpace

func (i *IsolationSegment) RemoveSpace(spaceGuid string) error

type LastOperation

type LastOperation struct {
	Type        string `json:"type"`
	State       string `json:"state"`
	Description string `json:"description"`
	UpdatedAt   string `json:"updated_at"`
	CreatedAt   string `json:"created_at"`
}

type ListIsolationSegmentsResponse

type ListIsolationSegmentsResponse struct {
	Pagination Pagination                  `json:"pagination"`
	Resources  []IsolationSegementResponse `json:"resources"`
}

type Meta

type Meta struct {
	Guid      string `json:"guid"`
	Url       string `json:"url"`
	CreatedAt string `json:"created_at"`
	UpdatedAt string `json:"updated_at"`
}

type Org

type Org struct {
	Guid                string `json:"guid"`
	Name                string `json:"name"`
	QuotaDefinitionGuid string `json:"quota_definition_guid"`
	// contains filtered or unexported fields
}

func (*Org) AssociateAuditor

func (o *Org) AssociateAuditor(userGUID string) (Org, error)

func (*Org) AssociateAuditorByUsername

func (o *Org) AssociateAuditorByUsername(name string) (Org, error)

func (*Org) AssociateManager

func (o *Org) AssociateManager(userGUID string) (Org, error)

func (*Org) AssociateManagerByUsername

func (o *Org) AssociateManagerByUsername(name string) (Org, error)

func (*Org) AssociateUser

func (o *Org) AssociateUser(userGUID string) (Org, error)

func (*Org) AssociateUserByUsername

func (o *Org) AssociateUserByUsername(name string) (Org, error)

func (*Org) Quota

func (o *Org) Quota() (*OrgQuota, error)

func (*Org) RemoveAuditor

func (o *Org) RemoveAuditor(userGUID string) error

func (*Org) RemoveAuditorByUsername

func (o *Org) RemoveAuditorByUsername(name string) error

func (*Org) RemoveManager

func (o *Org) RemoveManager(userGUID string) error

func (*Org) RemoveManagerByUsername

func (o *Org) RemoveManagerByUsername(name string) error

func (*Org) RemoveUser

func (o *Org) RemoveUser(userGUID string) error

func (*Org) RemoveUserByUsername

func (o *Org) RemoveUserByUsername(name string) error

func (*Org) Summary

func (o *Org) Summary() (OrgSummary, error)

type OrgQuota

type OrgQuota struct {
	Guid                    string `json:"guid"`
	Name                    string `json:"name"`
	NonBasicServicesAllowed bool   `json:"non_basic_services_allowed"`
	TotalServices           int    `json:"total_services"`
	TotalRoutes             int    `json:"total_routes"`
	TotalPrivateDomains     int    `json:"total_private_domains"`
	MemoryLimit             int    `json:"memory_limit"`
	TrialDBAllowed          bool   `json:"trial_db_allowed"`
	InstanceMemoryLimit     int    `json:"instance_memory_limit"`
	AppInstanceLimit        int    `json:"app_instance_limit"`
	AppTaskLimit            int    `json:"app_task_limit"`
	TotalServiceKeys        int    `json:"total_service_keys"`
	TotalReservedRoutePorts int    `json:"total_reserved_route_ports"`
	// contains filtered or unexported fields
}

type OrgQuotasResource

type OrgQuotasResource struct {
	Meta   Meta     `json:"metadata"`
	Entity OrgQuota `json:"entity"`
}

type OrgQuotasResponse

type OrgQuotasResponse struct {
	Count     int                 `json:"total_results"`
	Pages     int                 `json:"total_pages"`
	NextUrl   string              `json:"next_url"`
	Resources []OrgQuotasResource `json:"resources"`
}

type OrgRequest

type OrgRequest struct {
	Name                string `json:"name"`
	Status              string `json:"status,omitempty"`
	QuotaDefinitionGuid string `json:"quota_definition_guid,omitempty"`
}

type OrgResource

type OrgResource struct {
	Meta   Meta `json:"metadata"`
	Entity Org  `json:"entity"`
}

type OrgResponse

type OrgResponse struct {
	Count     int           `json:"total_results"`
	Pages     int           `json:"total_pages"`
	NextUrl   string        `json:"next_url"`
	Resources []OrgResource `json:"resources"`
}

type OrgSummary

type OrgSummary struct {
	Guid   string             `json:"guid"`
	Name   string             `json:"name"`
	Status string             `json:"status"`
	Spaces []OrgSummarySpaces `json:"spaces"`
}

type OrgSummarySpaces

type OrgSummarySpaces struct {
	Guid         string `json:"guid"`
	Name         string `json:"name"`
	ServiceCount int    `json:"service_count"`
	AppCount     int    `json:"app_count"`
	MemDevTotal  int    `json:"mem_dev_total"`
	MemProdTotal int    `json:"mem_prod_total"`
}

type Pagination

type Pagination struct {
	TotalResults int `json:"total_results"`
	TotalPages   int `json:"total_pages"`
	First        struct {
		Href string `json:"href"`
	} `json:"first"`
	Last struct {
		Href string `json:"href"`
	} `json:"last"`
	Next     string `json:"next"`
	Previous string `json:"previous"`
}

type Route

type Route struct {
	Guid                string `json:"guid"`
	Host                string `json:"host"`
	Path                string `json:"path"`
	DomainGuid          string `json:"domain_guid"`
	SpaceGuid           string `json:"space_guid"`
	ServiceInstanceGuid string `json:"service_instance_guid"`
	Port                int    `json:"port"`
	// contains filtered or unexported fields
}

type RoutesResource

type RoutesResource struct {
	Meta   Meta  `json:"metadata"`
	Entity Route `json:"entity"`
}

type RoutesResponse

type RoutesResponse struct {
	Count     int              `json:"total_results"`
	Pages     int              `json:"total_pages"`
	NextUrl   string           `json:"next_url"`
	Resources []RoutesResource `json:"resources"`
}

type SecGroup

type SecGroup struct {
	Guid       string          `json:"guid"`
	Name       string          `json:"name"`
	Rules      []SecGroupRule  `json:"rules"`
	Running    bool            `json:"running_default"`
	Staging    bool            `json:"staging_default"`
	SpacesURL  string          `json:"spaces_url"`
	SpacesData []SpaceResource `json:"spaces"`
	// contains filtered or unexported fields
}

func (*SecGroup) ListSpaceResources

func (secGroup *SecGroup) ListSpaceResources() ([]SpaceResource, error)

type SecGroupCreateResponse

type SecGroupCreateResponse struct {
	Code        int    `json:"code"`
	ErrorCode   string `json:"error_code"`
	Description string `json:"description"`
}

type SecGroupResource

type SecGroupResource struct {
	Meta   Meta     `json:"metadata"`
	Entity SecGroup `json:"entity"`
}

type SecGroupResponse

type SecGroupResponse struct {
	Count     int                `json:"total_results"`
	Pages     int                `json:"total_pages"`
	NextUrl   string             `json:"next_url"`
	Resources []SecGroupResource `json:"resources"`
}

type SecGroupRule

type SecGroupRule struct {
	Protocol    string `json:"protocol"`
	Ports       string `json:"ports,omitempty"`       //e.g. "4000-5000,9142"
	Destination string `json:"destination"`           //CIDR Format
	Description string `json:"description,omitempty"` //Optional description
	Code        int    `json:"code,omitempty"`        // ICMP code
	Type        int    `json:"type,omitempty"`        //ICMP type. Only valid if Protocol=="icmp"
	Log         bool   `json:"log,omitempty"`         //If true, log this rule
}

type Service

type Service struct {
	Guid  string `json:"guid"`
	Label string `json:"label"`
	// contains filtered or unexported fields
}

type ServiceBinding

type ServiceBinding struct {
	Guid                string      `json:"guid"`
	AppGuid             string      `json:"app_guid"`
	ServiceInstanceGuid string      `json:"service_instance_guid"`
	Credentials         interface{} `json:"credentials"`
	BindingOptions      interface{} `json:"binding_options"`
	GatewayData         interface{} `json:"gateway_data"`
	GatewayName         string      `json:"gateway_name"`
	SyslogDrainUrl      string      `json:"syslog_drain_url"`
	VolumeMounts        interface{} `json:"volume_mounts"`
	AppUrl              string      `json:"app_url"`
	ServiceInstanceUrl  string      `json:"service_instance_url"`
	// contains filtered or unexported fields
}

type ServiceBindingResource

type ServiceBindingResource struct {
	Meta   Meta           `json:"metadata"`
	Entity ServiceBinding `json:"entity"`
}

type ServiceBindingsResponse

type ServiceBindingsResponse struct {
	Count     int                      `json:"total_results"`
	Pages     int                      `json:"total_pages"`
	Resources []ServiceBindingResource `json:"resources"`
}

type ServiceInstance

type ServiceInstance struct {
	Name               string                 `json:"name"`
	Credentials        map[string]interface{} `json:"credentials"`
	ServicePlanGuid    string                 `json:"service_plan_guid"`
	SpaceGuid          string                 `json:"space_guid"`
	DashboardUrl       string                 `json:"dashboard_url"`
	Type               string                 `json:"type"`
	LastOperation      LastOperation          `json:"last_operation"`
	Tags               []string               `json:"tags"`
	ServiceGuid        string                 `json:"service_guid"`
	SpaceUrl           string                 `json:"space_url"`
	ServicePlanUrl     string                 `json:"service_plan_url"`
	ServiceBindingsUrl string                 `json:"service_bindings_url"`
	ServiceKeysUrl     string                 `json:"service_keys_url"`
	RoutesUrl          string                 `json:"routes_url"`
	ServiceUrl         string                 `json:"service_url"`
	Guid               string                 `json:"guid"`
	// contains filtered or unexported fields
}

type ServiceInstanceResource

type ServiceInstanceResource struct {
	Meta   Meta            `json:"metadata"`
	Entity ServiceInstance `json:"entity"`
}

type ServiceInstancesResponse

type ServiceInstancesResponse struct {
	Count     int                       `json:"total_results"`
	Pages     int                       `json:"total_pages"`
	NextUrl   string                    `json:"next_url"`
	Resources []ServiceInstanceResource `json:"resources"`
}

type ServicePlan

type ServicePlan struct {
	Name                string      `json:"name"`
	Guid                string      `json:"guid"`
	Free                bool        `json:"free"`
	Description         string      `json:"description"`
	ServiceGuid         string      `json:"service_guid"`
	Extra               interface{} `json:"extra"`
	UniqueId            string      `json:"unique_id"`
	Public              bool        `json:"public"`
	Active              bool        `json:"active"`
	Bindable            bool        `json:"bindable"`
	ServiceUrl          string      `json:"service_url"`
	ServiceInstancesUrl string      `json:"service_instances_url"`
	// contains filtered or unexported fields
}

type ServicePlanResource

type ServicePlanResource struct {
	Meta   Meta        `json:"metadata"`
	Entity ServicePlan `json:"entity"`
}

type ServicePlansResponse

type ServicePlansResponse struct {
	Count     int                   `json:"total_results"`
	Pages     int                   `json:"total_pages"`
	Resources []ServicePlanResource `json:"resources"`
}

type ServiceSummary

type ServiceSummary struct {
	Guid          string `json:"guid"`
	Name          string `json:"name"`
	BoundAppCount int    `json:"bound_app_count"`
}

type ServicesResource

type ServicesResource struct {
	Meta   Meta    `json:"metadata"`
	Entity Service `json:"entity"`
}

type ServicesResponse

type ServicesResponse struct {
	Count     int                `json:"total_results"`
	Pages     int                `json:"total_pages"`
	Resources []ServicesResource `json:"resources"`
}

type SharedDomain

type SharedDomain struct {
	Guid            string `json:"guid"`
	Name            string `json:"name"`
	RouterGroupGuid string `json:"router_group_guid"`
	RouterGroupType string `json:"router_group_type"`
	// contains filtered or unexported fields
}

type SharedDomainResource

type SharedDomainResource struct {
	Meta   Meta         `json:"metadata"`
	Entity SharedDomain `json:"entity"`
}

type SharedDomainsResponse

type SharedDomainsResponse struct {
	Count     int                    `json:"total_results"`
	Pages     int                    `json:"total_pages"`
	NextUrl   string                 `json:"next_url"`
	Resources []SharedDomainResource `json:"resources"`
}

type Space

type Space struct {
	Guid                string      `json:"guid"`
	Name                string      `json:"name"`
	OrganizationGuid    string      `json:"organization_guid"`
	OrgURL              string      `json:"organization_url"`
	OrgData             OrgResource `json:"organization"`
	QuotaDefinitionGuid string      `json:"space_quota_definition_guid"`
	// contains filtered or unexported fields
}

func (*Space) AssociateAuditorByUsername

func (s *Space) AssociateAuditorByUsername(name string) (Space, error)

func (*Space) AssociateDeveloperByUsername

func (s *Space) AssociateDeveloperByUsername(name string) (Space, error)

func (*Space) Org

func (s *Space) Org() (Org, error)

func (*Space) Quota

func (s *Space) Quota() (*SpaceQuota, error)

func (*Space) RemoveAuditorByUsername

func (s *Space) RemoveAuditorByUsername(name string) error

func (*Space) RemoveDeveloperByUsername

func (s *Space) RemoveDeveloperByUsername(name string) error

func (*Space) Roles

func (s *Space) Roles() ([]SpaceRole, error)

func (*Space) Summary

func (s *Space) Summary() (SpaceSummary, error)

type SpaceQuota

type SpaceQuota struct {
	Guid                    string `json:"guid"`
	Name                    string `json:"name"`
	OrganizationGuid        string `json:"organization_guid"`
	NonBasicServicesAllowed bool   `json:"non_basic_services_allowed"`
	TotalServices           int    `json:"total_services"`
	TotalRoutes             int    `json:"total_routes"`
	MemoryLimit             int    `json:"memory_limit"`
	InstanceMemoryLimit     int    `json:"instance_memory_limit"`
	AppInstanceLimit        int    `json:"app_instance_limit"`
	AppTaskLimit            int    `json:"app_task_limit"`
	TotalServiceKeys        int    `json:"total_service_keys"`
	TotalReservedRoutePorts int    `json:"total_reserved_route_ports"`
	// contains filtered or unexported fields
}

type SpaceQuotasResource

type SpaceQuotasResource struct {
	Meta   Meta       `json:"metadata"`
	Entity SpaceQuota `json:"entity"`
}

type SpaceQuotasResponse

type SpaceQuotasResponse struct {
	Count     int                   `json:"total_results"`
	Pages     int                   `json:"total_pages"`
	NextUrl   string                `json:"next_url"`
	Resources []SpaceQuotasResource `json:"resources"`
}

type SpaceRequest

type SpaceRequest struct {
	Name               string   `json:"name"`
	OrganizationGuid   string   `json:"organization_guid"`
	DeveloperGuid      []string `json:"developer_guids"`
	ManagerGuid        []string `json:"manager_guids"`
	AuditorGuid        []string `json:"auditor_guids"`
	DomainGuid         []string `json:"domain_guids"`
	SecurityGroupGuids []string `json:"security_group_guids"`
	SpaceQuotaDefGuid  []string `json:"space_quota_definition_guid"`
	AllowSSH           []string `json:"allow_ssh"`
}

type SpaceResource

type SpaceResource struct {
	Meta   Meta  `json:"metadata"`
	Entity Space `json:"entity"`
}

type SpaceResponse

type SpaceResponse struct {
	Count     int             `json:"total_results"`
	Pages     int             `json:"total_pages"`
	NextUrl   string          `json:"next_url"`
	Resources []SpaceResource `json:"resources"`
}

type SpaceRole

type SpaceRole struct {
	Guid                           string   `json:"guid"`
	Admin                          bool     `json:"admin"`
	Active                         bool     `json:"active"`
	DefaultSpaceGuid               string   `json:"default_space_guid"`
	Username                       string   `json:"username"`
	SpaceRoles                     []string `json:"space_roles"`
	SpacesUrl                      string   `json:"spaces_url"`
	OrganizationsUrl               string   `json:"organizations_url"`
	ManagedOrganizationsUrl        string   `json:"managed_organizations_url"`
	BillingManagedOrganizationsUrl string   `json:"billing_managed_organizations_url"`
	AuditedOrganizationsUrl        string   `json:"audited_organizations_url"`
	ManagedSpacesUrl               string   `json:"managed_spaces_url"`
	AuditedSpacesUrl               string   `json:"audited_spaces_url"`
	// contains filtered or unexported fields
}

type SpaceRoleResource

type SpaceRoleResource struct {
	Meta   Meta      `json:"metadata"`
	Entity SpaceRole `json:"entity"`
}

type SpaceRoleResponse

type SpaceRoleResponse struct {
	Count     int                 `json:"total_results"`
	Pages     int                 `json:"total_pages"`
	NextUrl   string              `json:"next_url"`
	Resources []SpaceRoleResource `json:"resources"`
}

type SpaceSummary

type SpaceSummary struct {
	Guid     string           `json:"guid"`
	Name     string           `json:"name"`
	Apps     []AppSummary     `json:"apps"`
	Services []ServiceSummary `json:"services"`
}

type Stack

type Stack struct {
	Guid        string `json:"guid"`
	Name        string `json:"name"`
	Description string `json:"description"`
	// contains filtered or unexported fields
}

type StacksResource

type StacksResource struct {
	Meta   Meta  `json:"metadata"`
	Entity Stack `json:"entity"`
}

type StacksResponse

type StacksResponse struct {
	Count     int              `json:"total_results"`
	Pages     int              `json:"total_pages"`
	NextUrl   string           `json:"next_url"`
	Resources []StacksResource `json:"resources"`
}

type Task

type Task struct {
	GUID       string `json:"guid"`
	SequenceID int    `json:"sequence_id"`
	Name       string `json:"name"`
	Command    string `json:"command"`
	State      string `json:"state"`
	MemoryInMb int    `json:"memory_in_mb"`
	DiskInMb   int    `json:"disk_in_mb"`
	Result     struct {
		FailureReason string `json:"failure_reason"`
	} `json:"result"`
	CreatedAt   time.Time `json:"created_at"`
	UpdatedAt   time.Time `json:"updated_at"`
	DropletGUID string    `json:"droplet_guid"`
	Links       struct {
		Self struct {
			Href string `json:"href"`
		} `json:"self"`
		App struct {
			Href string `json:"href"`
		} `json:"app"`
		Droplet struct {
			Href string `json:"href"`
		} `json:"droplet"`
	} `json:"links"`
}

Task is a description of a task element.

type TaskListResponse

type TaskListResponse struct {
	Pagination struct {
		TotalResults int `json:"total_results"`
		TotalPages   int `json:"total_pages"`
		First        struct {
			Href string `json:"href"`
		} `json:"first"`
		Last struct {
			Href string `json:"href"`
		} `json:"last"`
		Next     interface{} `json:"next"`
		Previous interface{} `json:"previous"`
	} `json:"pagination"`
	Tasks []Task `json:"resources"`
}

TaskListResponse is the JSON response from the API.

type TaskRequest

type TaskRequest struct {
	Command          string `json:"command"`
	Name             string `json:"name"`
	MemoryInMegabyte int    `json:"memory_in_mb"`
	DiskInMegabyte   int    `json:"disk_in_mb"`
	DropletGUID      string `json:"droplet_guid"`
}

TaskRequest is a v3 JSON object as described in: http://v3-apidocs.cloudfoundry.org/version/3.0.0/index.html#create-a-task

type User

type User struct {
	Guid                  string `json:"guid"`
	Admin                 bool   `json:"admin"`
	Active                bool   `json:"active"`
	DefaultSpaceGUID      string `json:"default_space_guid"`
	Username              string `json:"username"`
	SpacesURL             string `json:"spaces_url"`
	OrgsURL               string `json:"organizations_url"`
	ManagedOrgsURL        string `json:"managed_organizations_url"`
	BillingManagedOrgsURL string `json:"billing_managed_organizations_url"`
	AuditedOrgsURL        string `json:"audited_organizations_url"`
	ManagedSpacesURL      string `json:"managed_spaces_url"`
	AuditedSpacesURL      string `json:"audited_spaces_url"`
	// contains filtered or unexported fields
}

type UserProvidedServiceInstance

type UserProvidedServiceInstance struct {
	Name               string                 `json:"name"`
	Credentials        map[string]interface{} `json:"credentials"`
	SpaceGuid          string                 `json:"space_guid"`
	Type               string                 `json:"type"`
	Tags               []string               `json:"tags"`
	SpaceUrl           string                 `json:"space_url"`
	ServiceBindingsUrl string                 `json:"service_bindings_url"`
	RoutesUrl          string                 `json:"routes_url"`
	RouteServiceUrl    string                 `json:"route_service_url"`
	SyslogDrainUrl     string                 `json:"syslog_drain_url"`
	Guid               string                 `json:"guid"`
	// contains filtered or unexported fields
}

type UserProvidedServiceInstanceResource

type UserProvidedServiceInstanceResource struct {
	Meta   Meta                        `json:"metadata"`
	Entity UserProvidedServiceInstance `json:"entity"`
}

type UserProvidedServiceInstancesResponse

type UserProvidedServiceInstancesResponse struct {
	Count     int                                   `json:"total_results"`
	Pages     int                                   `json:"total_pages"`
	NextUrl   string                                `json:"next_url"`
	Resources []UserProvidedServiceInstanceResource `json:"resources"`
}

type UserRequest

type UserRequest struct {
	Guid             string `json:"guid"`
	DefaultSpaceGuid string `json:"default_space_guid,omitempty"`
}

type UserResource

type UserResource struct {
	Meta   Meta `json:"metadata"`
	Entity User `json:"entity"`
}

type UserResponse

type UserResponse struct {
	Count     int            `json:"total_results"`
	Pages     int            `json:"total_pages"`
	NextUrl   string         `json:"next_url"`
	Resources []UserResource `json:"resources"`
}

type Users

type Users []User

func (Users) GetUserByUsername

func (u Users) GetUserByUsername(username string) User

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL