api

package
v0.0.0-...-95ad2a0 Latest Latest
Warning

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

Go to latest
Published: May 10, 2017 License: LGPL-3.0 Imports: 13 Imported by: 4

Documentation

Index

Constants

View Source
const (
	//NatReservatioNType IP reservation
	// that you want to associate with this interface
	NatReservationType string = "network/v1/ipreservation:"
	// To associate a temporary IP address with the
	// instance for use during the lifetime of
	// the instance, specify ippool:/oracle/public/ippool.
	NatPoolType string = "ippool:"
)
View Source
const (
	PublicNATPool string = "ippool:/oracle/public/ippool"
)

Variables

This section is empty.

Functions

func IsBadRequest

func IsBadRequest(err error) bool

IsBadRequest returns true if the error indicates an http bad request 400

func IsForbidden

func IsForbidden(err error) bool

IsForbidden returns true if the error is ErrForbidden type

func IsGatewayTimeout

func IsGatewayTimeout(err error) bool

IsGatewayTimeout returns true if the underlying error is ErrGatewayTimeout

func IsInternalApi

func IsInternalApi(err error) bool

IsInternalApi returns true if the error indicated an http internal service error 500

func IsLengthRequired

func IsLengthRequired(err error) bool

IsLengthRequired returns true if the error is ErrLengthRequired type

func IsMethodNotAllowed

func IsMethodNotAllowed(err error) bool

IsMethodNotAllowed returns true if the error is ErrMethodNotAllowed type

func IsNotAcceptable

func IsNotAcceptable(err error) bool

IsNotAcceptable returns true if the error is ErrNotAcceptable type

func IsNotAuth

func IsNotAuth(err error) bool

IsNotAuth returns true if the error indicates that the client is not authenticate

func IsNotAuthorized

func IsNotAuthorized(err error) bool

IsNotAuthorized returns true if the error indicates an http unauthorized 401

func IsNotFound

func IsNotFound(err error) bool

IsNotFound returns true if the error indicates an http not found 404

func IsNotImplemented

func IsNotImplemented(err error) bool

IsNotImplemented returns true if the underlying error is ErrNotImplemented

func IsNotSupported

func IsNotSupported(err error) bool

IsNotSupported returns true if the underlying error is ErrNotSupported

func IsPaymentRequired

func IsPaymentRequired(err error) bool

IsPaymentRequired returns true if the error is ErrPaymentRequired type

func IsPreconditionRequired

func IsPreconditionRequired(err error) bool

IsPreconditionRequired returns true if the underlying error is ErrPreconditionRequired type

func IsRequestEntityTooLarge

func IsRequestEntityTooLarge(err error) bool

IsRequestEntityTooLarge returns true if the underlying error is a type of ErrRequestEntityTooLarge

func IsRequestNotSatisfiable

func IsRequestNotSatisfiable(err error) bool

IsRequestNotSatisfiable returns true if the underlying error is ErrRequestNotSatisfiable

func IsServiceUnavailable

func IsServiceUnavailable(err error) bool

IsServiceUnavailable returns true if the underlying error is ErrServiceUnavailable

func IsStatusConflict

func IsStatusConflict(err error) bool

IsStatusConflict returns true if the error indicates an http conflict error 401

func IsUnsupportedMediaType

func IsUnsupportedMediaType(err error) bool

IsUnsupportedMediaType returns true if the underlying error is ErrUnsupportedMediaType

func IsUriTooLong

func IsUriTooLong(err error) bool

IsUriTooLong returns true if the underlying error is ErrURITooLong type

Types

type AttributesOrchestration

type AttributesOrchestration struct {
	Userdata              map[string]string `json:"userdata,omitempty"`
	Nimbula_orchestration string            `json:"nimbula_orchestration,omitempty"`
}

type BackupConfigurationParams

type BackupConfigurationParams struct {

	// Description of this Backup Configuration
	Description string `json:"description,omitempty"`

	// BackupRetentionCount represents how many backups to retain
	// Minimum Value: 1
	BackupRetentionCount uint32 `json:"backupRetentionCount"`

	// Enabled when true, backups will automatically
	// be generated based on the interval.
	Enabled bool `json:"enabled"`

	// Name is the name of the backup configuration
	Name string `json:"name"`

	// VolumeUri the complete URI of the storage volume
	// that you want to backup.
	VolumeUri string `json:"volumeUri"`

	// Interval represents the interval in the backup configuration.
	// There are two kinds of Intervals. Each Interval has its own JSON format.
	// Your Interval field should look like one of the following:
	//
	// "interval":{
	//    "Hourly":{
	//     "hourlyInterval":2
	//	  }
	//  }
	//
	//
	// {
	//   "DailyWeekly": {
	//	   "daysOfWeek":["MONDAY"],
	//	   "timeOfDay":"03:15",
	// 	   "userTimeZone":"America/Los_Angeles"
	//    }
	// }
	// Days of the week is any day of the week
	// fully capitalized (MONDAY, TUESDAY, etc).
	// The user time zone is any IANA user timezone.
	// For example user time zones see List of IANA time zones.
	//
	Interval common.Interval `json:"interval"`
}

BackupConfigurationParams type used to feed up the CreateBackupConfiguration function with params.

type BackupParams

type BackupParams struct {

	// BackupConfigurationName multi-part name of the backup configuration.
	BackupConfigurationName string `json:"backupConfigurationName"`

	// Description of the Backup
	Description string `json:"description,omitempty"`

	// Name of the backup
	Name string `json:"name"`
}

BackupParams used as params to CreateBackup function

type Client

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

Client holds the client credentials of the clients oracle cloud. The client needs identify name, user name and password in order to comunicate with the oracle cloud provider

func NewClient

func NewClient(cfg Config) (*Client, error)

NewClient returns a new client based on the cfg provided

func (*Client) AccountDetails

func (c *Client) AccountDetails(name string) (resp response.Account, err error)

AccountDetails retrieves details of the specified account. example of default name account that oracle provider has: default, cloud_storage.

func (*Client) AclDetails

func (c *Client) AclDetails(name string) (resp response.Acl, err error)

AclDetails retrieves information about the specified ACL.

func (*Client) AllAccountNames

func (c *Client) AllAccountNames() (resp response.DirectoryNames, err error)

AllAccountNames retrieves names of all the accounts in the specified container.

func (*Client) AllAccounts

func (c *Client) AllAccounts(filter []Filter) (resp response.AllAccounts, err error)

AllAccounts retrives details of the accounts that are in the specified identity domain. You can use this HTTP request to get details of the account that you must specify while creating a machine image.

func (*Client) AllAcls

func (c *Client) AllAcls(filter []Filter) (resp response.AllAcls, err error)

AllAcls retrieves details of all the ACLs that are available in the specified container.

func (*Client) AllBackupConfigurations

func (c *Client) AllBackupConfigurations(filter []Filter) (resp []response.BackupConfiguration, err error)

AllBackupConfigurations retrieves details for all backup configuration objects the current user has permission to access

func (*Client) AllBackups

func (c *Client) AllBackups(
	filter []Filter,
) (resp response.AllBackups, err error)

AllBackups retrieves details of the backups that are available and match the specified query criteria

func (*Client) AllDefaultSecIpLists

func (c *Client) AllDefaultSecIpLists(filter []Filter) (resp response.AllSecIpLists, err error)

AllDefaultSecIpLists retrieves details of the security IP lists that are defined by default in the oracle compute cloud.

func (*Client) AllImageLists

func (c *Client) AllImageLists(filter []Filter) (resp response.AllImageLists, err error)

AllImageLists retrieves details of all the available image lists in the specified container.

func (*Client) AllInstanceNames

func (c *Client) AllInstanceNames() (resp response.DirectoryNames, err error)

AllInstanceNames retrieves the names of objects and subcontainers that you can access in the specified container.

func (*Client) AllInstances

func (c *Client) AllInstances(filter []Filter) (resp response.AllInstances, err error)

AllInstances retrieves details of the instances that are in the specified container and match the specified query criteria. If you don't specify any query criteria, then details of all the instances in the container are displayed. You can filter by tags.

func (*Client) AllIpAddressAssociations

func (c *Client) AllIpAddressAssociations(filter []Filter) (resp response.AllIpAddressAssociations, err error)

AllIpAddressAssociation Retrieves details of the specified IP address association.

func (*Client) AllIpAddressPrefixSets

func (c *Client) AllIpAddressPrefixSets(
	filter []Filter,
) (resp response.AllIpAddressPrefixSets, err error)

AllIpAddressPrefixSets retrieves details of all the IP address prefix sets that are available in the specified container

func (*Client) AllIpAddressReservations

func (c *Client) AllIpAddressReservations(
	filter []Filter,
) (resp response.AllIpAddressReservations, err error)

AllIpAddressReservations retrieves details of the IP address reservations that are available in the specified container.

func (*Client) AllIpAssociations

func (c *Client) AllIpAssociations(filter []Filter) (resp response.AllIpAssociations, err error)

AllIpAssociation retrieves the names of objects and subcontainers that you can access in the specified container. You can filter by parentpool, reservation and vcable

func (*Client) AllIpNetworkExchanges

func (c *Client) AllIpNetworkExchanges(
	filter []Filter,
) (resp response.AllIpNetworkExchanges, err error)

AllIpNetworkExchanges retrieves details of all the IP network exchanges that are available in the specified container.

func (*Client) AllIpNetworks

func (c *Client) AllIpNetworks(filter []Filter) (resp response.AllIpNetworks, err error)

AllIpNetworks retrieves details of all the IP networks that are available in the specified container.

func (*Client) AllIpReservations

func (c *Client) AllIpReservations(filter []Filter) (resp response.AllIpReservations, err error)

AllIpReservations Retrieves details of the IP reservations that are available You can filter by tags, used and permanent.

func (*Client) AllOrchestrationNames

func (c *Client) AllOrchestrationNames() (resp response.DirectoryNames, err error)

func (*Client) AllOrchestrations

func (c *Client) AllOrchestrations(filter []Filter) (resp response.AllOrchestrations, err error)

AllOrchestrations retrives all orchestration You can filter by status

func (*Client) AllRebootInstanceRequests

func (c *Client) AllRebootInstanceRequests(filter []Filter) (resp response.AllRebootInstanceRequests, err error)

AllRebootInstanceRequests retrieves details of the reboot instance requests that are available in the specified container

func (*Client) AllRoutes

func (c *Client) AllRoutes(
	filter []Filter,
) (resp response.AllRoutes, err error)

AllRoutes retrieves details of all the routes that are available in the specified container.

func (*Client) AllSSHKeyNames

func (c *Client) AllSSHKeyNames() (resp response.AllSSHNames, err error)

AllSSHKeyNames returns a list of all ssh keys by names of the user

func (*Client) AllSSHKeys

func (c *Client) AllSSHKeys(filter []Filter) (resp response.AllSSH, err error)

AllSShKeys returns list of all keys with all the details You can filter by name

func (*Client) AllSecApplications

func (c *Client) AllSecApplications(filter []Filter) (resp response.AllSecApplications, err error)

AllSecApplications retrieves details of the security applications that are in the specified container

func (*Client) AllSecAssociationNames

func (c *Client) AllSecAssociationNames() (resp response.DirectoryNames, err error)

func (*Client) AllSecAssociations

func (c *Client) AllSecAssociations(filter []Filter) (resp response.AllSecAssociations, err error)

AllSecAssociations retrives all security associations in the oracle cloud account

func (*Client) AllSecIpLists

func (c *Client) AllSecIpLists(filter []Filter) (resp response.AllSecIpLists, err error)

AllSecIpLists retrieves details of the security IP lists that are in the account You can filter by name

func (*Client) AllSecLists

func (c *Client) AllSecLists(filter []Filter) (resp response.AllSecLists, err error)

AllSecLists retrieves details of the security lists that are in the specified container and match the specified query criteria. You can filter by name

func (*Client) AllSecRules

func (c *Client) AllSecRules(filter []Filter) (resp response.AllSecRules, err error)

AllSecRules retrives all security rulues from the oracle cloud account

func (*Client) AllSecurityProtocols

func (c *Client) AllSecurityProtocols(filter []Filter) (resp response.AllSecurityProtocols, err error)

AllSecurityProtocols retrieve details of all security protocols in the specified container.

func (*Client) AllSecurityRules

func (c *Client) AllSecurityRules(filter []Filter) (resp response.AllSecurityRules, err error)

AllSecurityRules retrieves details of all the security rules in the specified container.

func (*Client) AllShapes

func (c *Client) AllShapes(filter []Filter) (resp response.AllShapes, err error)

AllShapes retrieves the CPU and memory details of all the available shapes.

func (*Client) AllStorageAttachments

func (c *Client) AllStorageAttachments(
	filter []Filter,
) (resp response.AllStorageAttachments, err error)

func (*Client) AllStorageProperties

func (c *Client) AllStorageProperties(
	filter []Filter,
) (resp response.AllStorageProperties, err error)

AllStorageProperties retrieves details of the storage properties that are available in the specified container

func (*Client) AllStoragePropertyNames

func (c *Client) AllStoragePropertyNames() (resp response.DirectoryNames, err error)

AllStoragePropertyNames retrieves the names of objects and subcontainers that you can access in the specified container.

func (*Client) AllStorageSnapshotNames

func (c *Client) AllStorageSnapshotNames() (resp response.DirectoryNames, err error)

AllStorageSnapshotNames retrieves the names of objects and subcontainers that you can access in the specified container

func (*Client) AllStorageSnapshots

func (c *Client) AllStorageSnapshots(
	filter []Filter,
) (resp response.AllStorageSnapshots, err error)

AllStorageSnapshots retrieves details of the storage volume snapshots that are available in the specified container and match the specified query criteria

func (*Client) AllStorageVolumes

func (c *Client) AllStorageVolumes(
	filter []Filter,
) (resp response.AllStorageVolumes, err error)

AllStorageVolumes retrieves details of the storage volumes that are available in the specified container and match the specified query criteria

func (*Client) AllVirtualNics

func (c *Client) AllVirtualNics(filter []Filter) (resp response.AllVirtualNics, err error)

AllVirtualNics returns all virtual nic that are in the oracle account

func (*Client) AllVnicSets

func (c *Client) AllVnicSets(filter []Filter) (resp response.AllVnicSets, err error)

AllVnicSets retrives details of all virtual nic set in the oracle cloud account

func (*Client) AllVpnEndpoints

func (c *Client) AllVpnEndpoints(
	filter []Filter,
) (resp response.AllVpnEndpoints, err error)

func (*Client) Authenticate

func (c *Client) Authenticate() (err error)

Authenticate this request returns an authentication token in the Set-Cookie response header. The token expires after 30 minutes. A valid (that is, unexpired) authentication token must be included in every request to the service, in the Cookie: request header. The client making the API call must examine the cookie expiry time and discard it if the cookie has expired. Requests sent with expired cookies will result in an Unauthorized error in the response.

func (*Client) BackupConfigurationDetails

func (c *Client) BackupConfigurationDetails(
	name string,
) (resp response.BackupConfiguration, err error)

BackupConfigurationDetails retrieves details of the specified backup configuration. You can use this request to verify whether the CreateBackupConfiguration and UpdateBackupConfiguration requests were completed successfully.

func (*Client) BackupDetails

func (c *Client) BackupDetails(
	name string,
) (resp response.Backup, err error)

BackupDetails retrives the backup specified by the provided multi-part object name.

func (Client) ComposeName

func (c Client) ComposeName(name string) string

func (*Client) CreateAcl

func (c *Client) CreateAcl(
	name string,
	description string,
	enabledFlag bool,
	tags []string,
) (resp response.Acl, err error)

CreateAcl creates an access control list (ACL) to control the traffic between virtual NICs. An ACL consists of one or more security rules that is applied to a virtual NIC set. Each security rule may refer to a virtual NIC set in either the source or destination.See Workflow for After creating an ACL, you can associate it to one or more virtual NIC sets.

func (*Client) CreateBackup

func (c *Client) CreateBackup(
	p BackupParams,
) (resp response.Backup, err error)

CreateBackup schedules a backup immediately using the specified backup configuration. The storage volume that you have specified in the backup configuration is backed up immediately, irrespective of the status of enabled in the specified backup configuration.

func (*Client) CreateBackupConfiguration

func (c *Client) CreateBackupConfiguration(
	p BackupConfigurationParams,
) (resp response.BackupConfiguration, err error)

CreateBackupConfiguration creates a new backup configuration. Requires authorization to create backup configurations as well as appropriate authorization to create snapshots from the target volume.

func (*Client) CreateImageList

func (c *Client) CreateImageList(
	def int,
	description string,
	name string,
) (resp response.ImageList, err error)

CreateImageList Adds an image list to Oracle Compute Cloud Service.

func (*Client) CreateImageListEntry

func (c *Client) CreateImageListEntry(
	name string,
	attributes map[string]interface{},
	version int,
	machineImages []string,
) (resp response.ImageListEntryAdd, err error)

CreateImageListEntry adds an image list entry to Oracle Compute Cloud Each machine image in an image list is identified by an image list entry.

func (*Client) CreateInstance

func (c *Client) CreateInstance(params InstanceParams) (resp response.LaunchPlan, err error)

func (*Client) CreateIpAddressAssociation

func (c *Client) CreateIpAddressAssociation(
	description string,
	ipAddressReservation string,
	vnic string,
	name string,
	tags []string,
) (resp response.IpAddressAssociation, err error)

CreateIpAddressAssociation creates an IP address association to associate an IP address reservation, a public IP address, with a vNIC of an instance either while creating the instance or when an instance is already running.

func (*Client) CreateIpAddressPrefixSet

func (c *Client) CreateIpAddressPrefixSet(
	p IpAddressPrefixSetParams,
) (resp response.IpAddressPrefixSet, err error)

CreateIpAddressPrefixSet creates a new ip address prefix set in the oracle cloud account

func (*Client) CreateIpAddressReservation

func (c *Client) CreateIpAddressReservation(
	p IpAddressReservationParams,
) (resp response.IpAddressReservation, err error)

CreateIpAddressReservation creates a reserves a NAT IPv4 address, which you can associate with one or more virtual NICs for routing traffic outside an IP network or an IP network exchange using NAT. If you want an interface on your instances to be accessible from the public Internet, or if you want your instances to be able to communicate with other Oracle services on other IP networks, create an IP address reservation to reserve a public IP address, and then associate that reserved IP address with a vNIC on your instance. You can reserve a public IP address from one of two IP pools: /oracle/public/public-ippool: When you attach an IP address from this pool to an instance, you enable access between the public Internet and the instance.

/oracle/public/cloud-ippool: When you attach an IP address from this pool to an instance, the instance can communicate privately (that is, without traffic going over the public Internet) with other Oracle Cloud services, such as the REST endpoint of an Oracle Storage Cloud Service account in the same region.

A public IP address or a cloud IP address can be associated with only one vNIC at a time. However, a single vNIC can have a maximum of two NAT IP addresses, one from each IP pool.

func (*Client) CreateIpAssociation

func (c *Client) CreateIpAssociation(
	parentpool common.IPPool,
	vcable common.VcableID,
) (resp response.IpAssociation, err error)

Creates an association between an IP address and the vcable ID of an instance.

func (*Client) CreateIpNetwork

func (c *Client) CreateIpNetwork(
	description string,
	ipAddressPrefix string,
	ipNetworkExchange string,
	name string,
	publicNaptEnabledFlag bool,
	tags []string,
) (resp response.IpNetwork, err error)

CreateIpNetwork creates an IP network. An IP network allows you to define an IP subnet in your account. With an IP network you can isolate instances by creating separate IP networks and adding instances to specific networks. Traffic can flow between instances within the same IP network, but by default each network is isolated from other networks and from the public Internet.

func (*Client) CreateIpNetworkExchange

func (c *Client) CreateIpNetworkExchange(
	description string,
	name string,
	tags []string,
) (resp response.IpNetworkExchange, err error)

CreateIpNetworkExchange create an IP network exchange to enable access between IP networks that have non-overlapping addresses, so that instances on these networks can exchange packets with each other without NAT. After creating an IP network exchange, you can add IP networks to the same IP network exchange to enable access between instances on these IP networks. Use PUT /network/v1/ipnetwork/{name} request to add an IP network to an IP network exchange. An IP network exchange can include multiple IP networks, but an IP network can be added to only one IP network exchange.

func (*Client) CreateIpReservation

func (c *Client) CreateIpReservation(
	name string,
	parentpool common.IPPool,
	permanent bool,
	tags []string,
) (resp response.IpReservation, err error)

CreateIpReservation creates an IP reservation. After creating an IP reservation, you can associate it with an instance by using the CrateIpAddressAssociation method

func (*Client) CreateOrchestration

func (c *Client) CreateOrchestration(p OrchestrationParams) (resp response.Orchestration, err error)

CreateOrchestration Adds an orchestration to Oracle Compute Cloud Service.

func (*Client) CreateRebootInstanceRequest

func (c *Client) CreateRebootInstanceRequest(
	hard bool,
	instanceName string,
) (resp response.RebootInstanceRequest, err error)

CreateRebootInstanceRequest is used when we want to launch a restart on a instnace If your instance hangs after it starts running, you can use this request to reboot your instance. After creating this request, use GET /rebootinstancerequest/{name} to retrieve the status of the request. When the status of the rebootinstancerequest changes to complete, you know that the instance has been rebooted.

func (*Client) CreateRoute

func (c *Client) CreateRoute(
	p RouteParams,
) (resp response.Route, err error)

CreateRoute creates a route, which specifies the IP address of the destination as well as a vNICset which provides the next hop for routing packets.

func (*Client) CreateSHHKey

func (c *Client) CreateSHHKey(
	name string,
	key string,
	enabled bool,
) (resp response.SSH, err error)

CreateSSHKey adds into the oracle cloud account an ssh key

func (*Client) CreateSecApplication

func (c *Client) CreateSecApplication(p SecApplicationParams) (resp response.SecApplication, err error)

CreateSecApplication creates a security application. After creating security applications

func (*Client) CreateSecAssociation

func (c *Client) CreateSecAssociation(
	name string,
	seclist string,
	vcable common.VcableID,
) (resp response.SecAssociation, err error)

CreateSecAssociation adds an instance to a security list.

func (*Client) CreateSecIpList

func (c *Client) CreateSecIpList(
	description string,
	name string,
	secipentries []string,
) (resp response.SecIpList, err error)

CreateSecIpList a security IP list. Note that, after creating a security IP list, you can add additional IP addresses to the list by using the CreateIpSecList again with just the additional IP addresses description is a description of the security IP list. name is the name of the SecIpList you wish to create secipentries a comma-separated list of the subnets (in CIDR format) or IPv4 addresses for which you want to create this security IP list. For example, to create a security IP list containing the IP addresses 203.0.113.1 and 203.0.113.2, enter one of the following: 203.0.113.0/30 203.0.113.1, 203.0.113.2

func (*Client) CreateSecList

func (c *Client) CreateSecList(
	description string,
	name string,
	outbound_cidr_policy common.SecRuleAction,
	policy common.SecRuleAction,
) (resp response.SecList, err error)

CreatesSecList a security list. After creating security lists, you can add instances to them by using the HTTP request, CreateSecAssociation (Create a Security Association).

func (*Client) CreateSecRule

func (c *Client) CreateSecRule(p SecRuleParams) (resp response.SecRule, err error)

CreateSecRule creates a new security rule. A security rule defines network access over a specified protocol between instances in two security lists, or from a set of external hosts (an IP list) to instances in a security list.

func (*Client) CreateSecurityProtocol

func (c *Client) CreateSecurityProtocol(
	p SecurityProtocolParams,
) (resp response.SecurityProtocol, err error)

CreateSecurityProtocol creates a security protocol. A security protocol allows you to specify a transport protocol and the source and destination ports to be used with the specified protocol. When you create a security rule, the protocols and ports of the specified security protocols are used to determine the type of traffic that is permitted by that security rule. If you don't specify protocols and ports in a security protocol, traffic is permitted over all protocols and ports.

func (*Client) CreateSecurityRule

func (c *Client) CreateSecurityRule(
	p SecurityRuleParams,
) (resp response.SecurityRule, err error)

CreateSecurityRule adds a security rule. A security rule permits traffic from a specified source or to a specified destination. You must specify the direction of a security rule - either ingress or egress. In addition, you can specify the source or destination of permitted traffic, and the security protocol and port used to send or receive packets. Each of the parameters that you specify in a security rule provides a criterion that the type of traffic permitted by that rule must match.

Only packets that match all of the specified criteria are permitted. If you don't specify match criteria in the security rule, all traffic in the specified direction is permitted.

When you create a security rule with a specified direction, say ingress, you should also create a corresponding security rule for the opposite direction - in this case, egress. This is generally required to ensure that when traffic is permitted in one direction, responses or acknowledgement packets in the opposite direction are also permitted.

When you create a security rule, you specify the ACL that it belongs to. ACLs apply to vNICsets. You can apply multiple ACLs to a vNICset and you can apply each ACL to multiple vNICsets. When an ACL is applied to a vNICset, every security rule that belongs to the ACL applies to every vNIC that is specified in the vNICset.

A security rule allows you to specify the following parameters: * The flow direction - ingress or egress * (Optional) A source vNICset or a list of source IP address prefix sets, or both * (Optional) A destination vNICset or a list of destination IP address prefix sets, or both * (Optional) A list of security protocols * (Optional) The name of the ACL that contains this rule * (Optional) An option to disable the security rule

func (*Client) CreateStorageAttachment

func (c *Client) CreateStorageAttachment(
	p StorageAttachmentParams,
) (resp response.StorageAttachment, err error)

CreateStorageAttachment creates an attachment of a storage volume to an instance a storage attachment is an association between Note that, after attaching the volume, you must create a file system and mount the file system on the instance.<Paste>

func (*Client) CreateStorageSnapshot

func (c *Client) CreateStorageSnapshot(
	p StorageSnapshotParams,
) (resp response.StorageSnapshot, err error)

CreateStorageSnapshot creates a storage volume snapshot. Creating a storage volume snapshot enables you to capture the current state of the storage volume. You can retain snapshots as a backup, or use them to create new, identical storage volumes. when it is attached to an instance or after detaching it. You can create a snapshot of a storage volume either If the storage volume is attached to an instance, then only data that has already been written to the storage volume will be captured in the snapshot. Data that is cached by the application or the operating system will be excluded from the snapshot. To create a snapshot of a bootable storage volume that is currently being used by an instance, you should delete the instance before you create the snapshot, to ensure the consistency of data. You can create the instance again later on, after the snapshot is created.

func (*Client) CreateStorageVolume

func (c *Client) CreateStorageVolume(
	p StorageVolumeParams,
) (resp response.StorageVolume, err error)

CreateStorageVolume creates a storage volume After creating storage volumes you can attach them to instances

func (*Client) CreateVnicSet

func (c *Client) CreateVnicSet(
	p VnicSetParams,
) (resp response.VnicSet, err error)

CreateVnicSet creates a new virtual nic set

func (*Client) CreateVpnEndpoint

func (c *Client) CreateVpnEndpoint(
	p VpnEndpointParams,
) (resp response.VpnEndpoint, err error)

CreateVpnEndpoint creates a VPN tunnel between your data center and your Oracle Compute Cloud Service site. You can create up to 20 VPN tunnels to your Oracle Compute Cloud Service site

func (*Client) DefaultSecApplications

func (c *Client) DefaultSecApplications(filter []Filter) (resp response.AllSecApplications, err error)

DefaultSecApplications retrieves details of the default security applications that are defined in the cloud. The Oracle cloud defines a number of pre defined rules that can be used

func (*Client) DeleteAcl

func (c *Client) DeleteAcl(name string) (err error)

DeleteAcl deletes specific acl that has the name

If you no longer need to use an ACL, you can delete it. Remember, however, that security rules reference ACLs and ACLs are applied to vNICsets.

If you delete an ACL that is referenced in one or more security rjkkkjules, those security rules can no longer be used.

If you delete an ACL that is applied to a vNICset, the security rules in that ACL no longer apply to that vNICset. Before deleting an ACL, ensure that other ACLs are in place to provide access to relevant vNICsets.

If you delete all the ACLs applied to a vNICset, some vNICs in that vNICset might become unreachable.

If you want to disable an ACL and not delete it, use the UpdateAcl method

func (*Client) DeleteBackup

func (c *Client) DeleteBackup(
	name string,
) (err error)

DeleteBackup delete a backup and it's associated snapshot. In progress backups may not be deleted

func (*Client) DeleteBackupConfiguration

func (c *Client) DeleteBackupConfiguration(name string) (err error)

DeleteBackupConfiguration deletes a backup configuration. In order to delete the configuration all backups and restores related to the configuration must already be deleted. If disabling a backup configuration is desired, consider setting enabled to false.

func (*Client) DeleteImageList

func (c *Client) DeleteImageList(name string) (err error)

DeleteImageList deletes an image list You can't delete system-provided image lists that are available in the /oracle/public container.

func (*Client) DeleteImageListEntry

func (c *Client) DeleteImageListEntry(
	name string,
	version int,
) (err error)

DeleteImageListEntry deletes an Image List Entry

func (*Client) DeleteInstance

func (c *Client) DeleteInstance(name string) (err error)

DeleteInstance shuts down an instance and removes it permanently from the system. Example of name f653a677-b566-4f92-8e93-71d47b364119

func (*Client) DeleteIpAddressAssociation

func (c *Client) DeleteIpAddressAssociation(name string) (err error)

DeleteIpAddressAssociation deletes the specified IP address association. Ensure that the IP address association is not being used before deleting it.

func (*Client) DeleteIpAddressPrefixSet

func (c *Client) DeleteIpAddressPrefixSet(name string) (err error)

DeleteIpAddressPrefixSet deletes an IP address prefix set.

func (*Client) DeleteIpAddressReservation

func (c *Client) DeleteIpAddressReservation(
	name string,
) (err error)

DeleteIpAddressReservation deletes the specified IP address reservation. Ensure that the IP reservation that you want to delete isn't associated with a vNIC.

func (*Client) DeleteIpAssociation

func (c *Client) DeleteIpAssociation(name string) (err error)

Deletes the specified IP association with the name

func (*Client) DeleteIpNetwork

func (c *Client) DeleteIpNetwork(name string) (err error)

DeleteIpNetwork deletes an IP network with a given name

func (*Client) DeleteIpNetworkExchange

func (c *Client) DeleteIpNetworkExchange(
	name string,
) (err error)

DeleteIpNetworkExchange deletes a network exchange given a name

func (*Client) DeleteIpReservation

func (c *Client) DeleteIpReservation(name string) (err error)

DeleteIpReservation deletes the ip reservation of a instance. When you no longer need an IP reservation, you can delete it. Ensure that no instance is using the IP reservation that you want to delete.

func (*Client) DeleteOrchestration

func (c *Client) DeleteOrchestration(name string) (err error)

DeleteOrchestration deletes an orchestration from the system. The orchestration must be stopped to be deleted. All the objects created by the orchestration are deleted when you stop the orchestration. No response is returned for the delete action.

func (*Client) DeleteRebootInstanceRequest

func (c *Client) DeleteRebootInstanceRequest(instanceName string) (err error)

DeleteRebootInstanceRequest deletes a reboot instance request. No response is returned for the delete action.

func (*Client) DeleteRoute

func (c *Client) DeleteRoute(
	name string,
) (err error)

DeleteRoute deletes a route that has the name given in the oracle cloud account

func (*Client) DeleteSSHKey

func (c *Client) DeleteSSHKey(name string) (err error)

DeleteSSHKey deteles a ssh key with a specific name

func (*Client) DeleteSecApplication

func (c *Client) DeleteSecApplication(name string) (err error)

DeleteSecApplication deletes a security application. No response is returned.

func (*Client) DeleteSecAssociation

func (c *Client) DeleteSecAssociation(
	name string,
) (err error)

DeleteSecAssociaton deletes the specified security association. After you delete a security association, it takes a few minutes for the change to take effect.

func (*Client) DeleteSecIpList

func (c *Client) DeleteSecIpList(name string) (err error)

DeleteSecIpList deletes the specified security IP list. No response is returned. You can't delete system-provided security application that are available in the /oracle/public container.

func (*Client) DeleteSecList

func (c *Client) DeleteSecList(name string) (err error)

DeleteSecList the specified security list. No response is returned.<Paste>

func (*Client) DeleteSecRule

func (c *Client) DeleteSecRule(name string) (err error)

DeleteSecRule deletes a security role inside the oracle cloud account. If the security rule is not found this will return nil

func (*Client) DeleteSecurityProtocol

func (c *Client) DeleteSecurityProtocol(name string) (err error)

DeleteSecurityProtocol deletes a security protocol. Ensure that the security protocol is not being used before deleting it.

func (*Client) DeleteSecurityRule

func (c *Client) DeleteSecurityRule(
	name string,
) (err error)

DeteleSecurityRule deletes the specified security rule. Before deleting a security rule, ensure that it is not being used.

func (*Client) DeleteStorageAttachment

func (c *Client) DeleteStorageAttachment(
	name string,
) (err error)

DeleteStorageAttachment deletes the specified storage attachment. No response is returned.

func (*Client) DeleteStorageSnapshot

func (c *Client) DeleteStorageSnapshot(
	name string,
) (err error)

DeleteStorageSnapshot deletes the specified storage volume snapshot

func (*Client) DeleteStorageVolume

func (c *Client) DeleteStorageVolume(
	name string,
) (err error)

DeleteStorageVolume deletes the specified storage volume

func (*Client) DeleteVnicSet

func (c *Client) DeleteVnicSet(name string) (err error)

DeleteVnicSet deletes a virtual nic set

func (*Client) DeleteVpnEndpoint

func (c *Client) DeleteVpnEndpoint(name string) (err error)

func (*Client) DirectoryAccount

func (c *Client) DirectoryAccount() (resp response.DirectoryNames, err error)

DirectoryAccount retrieves the names of containers that contain objects that you can access. You can use this information to construct the multipart name of an object

func (*Client) DirectoryOrchestration

func (c *Client) DirectoryOrchestration() (resp response.DirectoryNames, err error)

DirectoryOrchestration retrieves the names of containers that contain objects that you can access

func (Client) Identify

func (c Client) Identify() string

Idenitify return the identity name of the oracle cloud account

func (*Client) ImageListDetails

func (c *Client) ImageListDetails(
	name string,
) (resp response.ImageList, err error)

ImageListDetails retrieves details of the specified image list. You can also use this request to retrieve details of all the available image list entries in the specified image list.

func (*Client) ImageListEntryDetails

func (c *Client) ImageListEntryDetails(
	name string,
	version int,
) (resp response.ImageListEntry, err error)

ImageListEntryDetails retrieves details of the specified image list entry.

func (*Client) ImageListNames

func (c *Client) ImageListNames() (resp response.DirectoryNames, err error)

ImageListNames retrieves the names of objects and subcontainers that you can access in the specified container.

func (*Client) InstanceConsoleDetails

func (c *Client) InstanceConsoleDetails(
	name string,
) (resp response.InstanceConsole, err error)

InstanceConsoleDetails retrieves the messages that appear when an instance boots. Use these messages to diagnose unresponsive instances and failures in the boot up process.

func (*Client) InstanceDetails

func (c *Client) InstanceDetails(name string) (resp response.Instance, err error)

InstanceDetails retrieves details of the specified instance. Name is the form of dev-name/uuid

func (*Client) IpAddressAssociationDetails

func (c *Client) IpAddressAssociationDetails(name string) (resp response.IpAddressAssociation, err error)

IpAddressAssociation retrives details of the specified IP address association.

func (*Client) IpAddressPrefixSetDetails

func (c *Client) IpAddressPrefixSetDetails(
	name string,
) (resp response.IpAddressPrefixSet, err error)

IpAddressPrefixSetDetails retrives details of a ip address prefix given a name

func (*Client) IpAddressReservationDetails

func (c *Client) IpAddressReservationDetails(
	name string,
) (resp response.IpAddressReservation, err error)

IpAddressReservationDetails retrieves details of the specified IP address reservation.

func (*Client) IpAssociationDetails

func (c *Client) IpAssociationDetails(name string) (resp response.IpAssociation, err error)

IpAssociationDetails retrieves details of the IP associations that are available in the specified container

func (*Client) IpNetworkDetails

func (c *Client) IpNetworkDetails(name string) (resp response.IpNetwork, err error)

IpNetworkDetails retrives details of a an IP network that is available in the oracle account

func (*Client) IpNetworkExchangeDetails

func (c *Client) IpNetworkExchangeDetails(
	name string,
) (resp response.IpNetworkExchange, err error)

IpNetworkExchangeDetails retrieves details of a specific IP network exchange.

func (*Client) IpReservationDetails

func (c *Client) IpReservationDetails(name string) (resp response.IpReservation, err error)

IpReservationDetails retrieves details of an IP reservation. You can use this request to verify whether the CreateIpReservation or PutIpReservatio were completed successfully.

func (*Client) OrchestrationDetails

func (c *Client) OrchestrationDetails(name string) (resp response.Orchestration, err error)

OrchestrationDetails retrieves details of the orchestrations that are available in the specified container

func (Client) Password

func (c Client) Password() string

Password returns the password of the oracle cloud account

func (*Client) RebootInstanceRequestDetails

func (c *Client) RebootInstanceRequestDetails(
	instanceName string,
) (resp response.RebootInstanceRequest, err error)

RebootInstanceRequestDetails retrieves details of the specified reboot instance request. You can use this request when you want to find out the status of a reboot instance request.

func (*Client) RefreshCookie

func (c *Client) RefreshCookie() (err error)

RefreshCookie re authenticates the client into the oracle api

func (*Client) RefreshToken

func (c *Client) RefreshToken() (err error)

RefreshToken refreshes the authentication token that expires usually around 30 minutes. This request extends the expiry of a valid authentication token by 30 minutes from the time you run the command. It extends the expiry of the current authentication token, but not beyond the session expiry time, which is 3 hours.

func (*Client) RouteDetails

func (c *Client) RouteDetails(
	name string,
) (resp response.Route, err error)

RouteDetails retrives a route details that has a given name from the oracle cloud account

func (*Client) SSHKeyDetails

func (c *Client) SSHKeyDetails(name string) (resp response.SSH, err error)

SSHKeyDetails returns all details of a specific key

func (*Client) SecApplicationDetails

func (c *Client) SecApplicationDetails(name string) (resp response.SecApplication, err error)

SecApplicationDetails retrieve details of a security application

func (*Client) SecAssociationDetails

func (c *Client) SecAssociationDetails(
	name string,
) (resp response.SecAssociation, err error)

SecAssociationDetails retrieves details about the specified security association

func (*Client) SecIpListDetails

func (c *Client) SecIpListDetails(name string) (resp response.SecIpList, err error)

SecIpListDetails retrieves information about the specified security IP list. You can use this request to verify whether CreateSecIpList or UpdateSecIpList operations were completed successfully.

func (*Client) SecListDetails

func (c *Client) SecListDetails(name string) (resp response.SecList, err error)

SecListDetails retrieves information about the specified security list.

func (*Client) SecRuleDetails

func (c *Client) SecRuleDetails(name string) (resp response.SecRule, err error)

SecRuleDetails retrives details on a specific security rule

func (*Client) SecRuleNames

func (c *Client) SecRuleNames() (resp response.DirectoryNames, err error)

SecRuleNames retrives all secure rule names in the oracle cloud account

func (*Client) SecurityProtocolDetails

func (c *Client) SecurityProtocolDetails(
	name string,
) (resp response.SecurityProtocol, err error)

SecurityProtocol retrieves details of the specified security protocol.

func (*Client) SecurityRuleDetails

func (c *Client) SecurityRuleDetails(
	name string,
) (resp response.SecurityRule, err error)

SecurityRuleDetais retrieves details of the specified security rule.

func (*Client) ShapeDetails

func (c *Client) ShapeDetails(name string) (resp response.Shape, err error)

ShapeDetails retrieves the CPU and memory details of the specified shape.

func (*Client) StorageAttachmentDetails

func (c *Client) StorageAttachmentDetails(
	name string,
) (resp response.StorageAttachment, err error)

retrieves details of the specified storage attachment

func (*Client) StoragePropertyDetails

func (c *Client) StoragePropertyDetails(
	name string,
) (resp response.StorageProperty, err error)

StoragePropertyDetails retrieves details of the specified storage property

func (*Client) StorageSnapshotDetails

func (c *Client) StorageSnapshotDetails(
	name string,
) (resp response.StorageSnapshot, err error)

StorageSnapshotDetails retrieves details about the specified storage volume snapshot

func (*Client) StorageVolumeDetails

func (c *Client) StorageVolumeDetails(
	name string,
) (resp response.StorageVolume, err error)

retrieves details about the specified storage volume

func (*Client) UpdateAcl

func (c *Client) UpdateAcl(
	currentName string,
	newName string,
	description string,
	enableFlag bool,
	tags []string,
) (resp response.Acl, err error)

UpdateAcl can update the description and tag fields for an ACL. You can also disable an ACL by setting the value of the enabledFlag to false. When you disable an ACL, it also disables the flow of traffic allowed by the security rules in scope of the ACL.

func (*Client) UpdateBackupConfiguration

func (c *Client) UpdateBackupConfiguration(
	p BackupConfigurationParams,
	currentName string,
) (resp response.BackupConfiguration, err error)

UpdateBackupConfiguration Modify an existing backup configuration. All fields, including unmodifiable fields, must be provided for this operation. The following fields are unmodifiable: volumeName, runAsUser, name.

func (*Client) UpdateImageList

func (c *Client) UpdateImageList(
	currentName string,
	newName string,
	description string,
	def int,
) (resp response.ImageList, err error)

UpdateImageList updates the description of an image list. You can also update the default image list entry to be used while launching instances using the specified image list.

func (*Client) UpdateIpAddressAssociation

func (c *Client) UpdateIpAddressAssociation(
	currentName,
	ipAddressReservation,
	vnic,
	newName string,
) (resp response.IpAddressAssociation, err error)

UpdateIpAddressAssociation updates the specified IP address association. You can update values for the following parameters of an IP address association: description, ipAddressReservation, vnic, and tags. If you associate an IP reservation with a vNIC while creating or updating the IP address association, then you can remove the association between the IP address reservation and vNIC by updating the IP address association. However, if you associate an IP reservation with an instance while creating the instance, then to remove the IP reservation, update the instance orchestration. Otherwise, whenever your instance orchestration is stopped and restarted, the IP reservation will again be associated with the vNIC.

func (*Client) UpdateIpAddressPrefixSet

func (c *Client) UpdateIpAddressPrefixSet(
	p IpAddressPrefixSetParams,
	currentName string,
) (resp response.IpAddressPrefixSet, err error)

UpdateIpAddressPrefixSet changes, updates the ip address prefix set in the oracle cloud account

func (*Client) UpdateIpAddressReservation

func (c *Client) UpdateIpAddressReservation(
	p IpAddressReservationParams,
	currentName string,
) (resp response.IpAddressReservation, err error)

UpdateIpAddressReservation updates the specified IP address reservation. Updates the description and tags of the specified IP address reservation.

func (*Client) UpdateIpNetwork

func (c *Client) UpdateIpNetwork(
	currentName string,
	newName string,
	description string,
	ipNetworkExchange string,
	ipAddressPrefix string,
	publicNaptEnabledFlag bool,
	tags []string,
) (resp response.IpNetwork, err error)

UpdateIpNetwork can update an IP network and change the specified IP address prefix for the network after you've created the network and attached instances to it. However, when you change an IP address prefix, it could cause the IP addresses currently assigned to existing instances to fall outside the specified IP network. If this happens, all traffic to and from those vNICs will be dropped. If the IP address of an instance is dynamically allocated, stopping the instance orchestration and restarting it will reassign a valid IP address from the IP network to the instance. However, if the IP address of an instance is static - that is, if the IP address is specified in the instance orchestration while creating the instance - then the IP address can't be updated by stopping the instance orchestration and restarting it. You would have to manually update the orchestration to assign a valid IP address to the vNIC attached to that IP network. It is therefore recommended that if you update an IP network, you only expand the network by specifying the same IP address prefix but with a shorter prefix length. For example, you can expand 192.168.1.0/24 to 192.168.1.0/20. Don't, however, change the IP address. This ensures that all IP addresses that have been currently allocated to instances remain valid in the updated IP network.

func (*Client) UpdateIpReservation

func (c *Client) UpdateIpReservation(
	currentName string,
	newName string,
	parentpool common.IPPool,
	permanent bool,
	tags []string,
) (resp response.IpReservation, err error)

UpdateIpreservation changes the permanent field of an IP reservation from false to true or vice versa. You can use this command when, for example, you want to delete an instance but retain its autoallocated public IP address as a permanent IP reservation for use later with another instance. In such a case, before deleting the instance, change the permanent field of the IP reservation from false to true. Note that if you change the permanent field of an IP reservation tofalse, and if the reservation is not associated with an instance, then the reservation will be deleted. You can also update the tags that are used to identify the IP reservation.

func (*Client) UpdateOrchestration

func (c *Client) UpdateOrchestration(p OrchestrationParams, currentName string) (resp response.Orchestration, err error)

UpdateOrchestration updates an orchestration.

func (*Client) UpdateRoute

func (c *Client) UpdateRoute(
	p RouteParams,
	currentName string,
) (resp response.Route, err error)

UpdateRoute you can update the following parameter values for a route: IP address of the destination, vNICset that provides the next hop for routing packets, and the route's administrative distance

func (*Client) UpdateSSHKey

func (c *Client) UpdateSSHKey(
	currentName string,
	newName string,
	key string,
	enabled bool,
) (resp response.SSH, err error)

UpdateSSHKey change the content and details of a specific ssh key If the key is invalid it will retrun 400 status code. Make sure the key is a valid ssh public key

func (*Client) UpdateSecIpList

func (c *Client) UpdateSecIpList(
	description string,
	currentName string,
	newName string,
	secipentries []string,
) (resp response.SecIpList, err error)

UpdateSecIpList updates IP addresses and description of the specified security IP list. Note that this command replaces the values in the secipentries and description fields with the new values that you specify. To add one or more IP addresses to the existing list, run the add seciplist command and specify just the additional IP addresses.

func (*Client) UpdateSecList

func (c *Client) UpdateSecList(
	description string,
	currentName string,
	newName string,
	outbound_cidr_policy common.SecRuleAction,
	policy common.SecRuleAction,
) (resp response.SecList, err error)

Updates inbound policy, outbound policy, and description for the specified security list. newName could be "" if you don't want to change the name but it's required at leas to have a currentName outbound_cidr_policy is the policy for outbound traffic from the security list. You can specify one of the following values: deny: Packets are dropped. No response is sent. reject: Packets are dropped, but a response is sent. permit(default): Packets are allowed.

func (*Client) UpdateSecRule

func (c *Client) UpdateSecRule(
	p SecRuleParams,
	currentName string,
) (resp response.SecRule, err error)

UpdateSecRule modifies the security rule with the currentName

func (*Client) UpdateSecurityProtocol

func (c *Client) UpdateSecurityProtocol(
	p SecurityProtocolParams,
) (resp response.SecurityProtocol, err error)

UpdateSecurityProtocol update an existing security protocol. You can update values of the description, ipProtocol, srcPortSet, dstPortSet, and tags parameters of a security protocol.

func (*Client) UpdateSecurityRule

func (c *Client) UpdateSecurityRule(
	p SecurityRuleParams,
) (resp response.SecurityRule, err error)

UpdateSecurityRule you can update values of all the parameters of a security rule except the name. You can also disable a security rule, by setting the value of the enabledFlag parameter as false.

func (*Client) UpdateStorageVolume

func (c *Client) UpdateStorageVolume(
	p StorageVolumeParams,
	currentName string,
) (resp response.StorageVolume, err error)

UpdateStorageVolume pdates a storage volume Although you have to pass values for several parameters, you can only increase the size of the storage volume and modify the values for the tags and description parameters. You can update an existing storage volume to increase the capacity dynamically, even when the volume is attached to an instance. You must specify all the required fields, although these fields won't be updated.

func (*Client) UpdateVnicSet

func (c *Client) UpdateVnicSet(
	p VnicSetParams,
	currentName string,
) (resp response.VnicSet, err error)

UpdateVnicSet changes option, specification, attributes in a vNicSet

func (Client) Username

func (c Client) Username() string

Username returns the username of the oracle cloud account

func (*Client) VirtualNicDetails

func (c *Client) VirtualNicDetails(name string) (resp response.VirtualNic, err error)

VirtualNicDetails retrives a virtual nic with that has a given name

func (*Client) VnicSetDetails

func (c *Client) VnicSetDetails(name string) (resp response.VnicSet, err error)

VnicSetDetails retrives details of a virtual nic set

func (*Client) VpnEndpointDetails

func (c *Client) VpnEndpointDetails(
	name string,
) (resp response.VpnEndpoint, err error)

type Config

type Config struct {
	// Identify will hold the oracle cloud client identify endpoint name
	Identify string

	// Username will hold the username oracle cloud client account
	Username string

	// Password will be the password of the orcale cloud client account
	Password string

	// Endpoint will hold the base url endpoint of the oracle cloud api
	Endpoint string
}

Config represents the significant details that a client needs in order to interact with the oracle cloud api.

type ErrBadRequest

type ErrBadRequest struct {
	// contains filtered or unexported fields
}

ErrBadRequest error type that implements the error and ErrorDumper interfaces

func (*ErrBadRequest) DumpApiError

func (e *ErrBadRequest) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrBadRequest) Error

func (e ErrBadRequest) Error() string

Error returns the internal error in a string format

type ErrForbidden

type ErrForbidden struct {
	// contains filtered or unexported fields
}

ErrForbidden error that says the server understood the request, but is refusing to fulfill it. Authorization will not help and the request SHOULD NOT be repeated

func (*ErrForbidden) DumpApiError

func (e *ErrForbidden) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrForbidden) Error

func (e ErrForbidden) Error() string

Error returns type that implements the error interface

type ErrGatewayTimeout

type ErrGatewayTimeout struct {
	// contains filtered or unexported fields
}

ErrGatewayTimeout the server, while acting as a gateway or proxy, did not recive a timely response from the upstream server it needed to access in order to complete the request

func (*ErrGatewayTimeout) DumpApiError

func (e *ErrGatewayTimeout) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrGatewayTimeout) Error

func (e ErrGatewayTimeout) Error() string

Error returns the internal error in a string format

type ErrGone

type ErrGone struct {
	// contains filtered or unexported fields
}

ErrGone indicates that the request could not be completed due to a conflict with the current state of the target resource"

func (ErrGone) DumpApiError

func (e ErrGone) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrGone) Error

func (e ErrGone) Error() string

Error returns the internal error in a string format

type ErrInternalApi

type ErrInternalApi struct {
	// contains filtered or unexported fields
}

ErrInternalApi error type that implements the error and ErrorDumper interfaces

func (*ErrInternalApi) DumpApiError

func (e *ErrInternalApi) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrInternalApi) Error

func (e ErrInternalApi) Error() string

Error returns the internal error in a string format

type ErrLengthRequired

type ErrLengthRequired struct {
	// contains filtered or unexported fields
}

ErrLengthRequired indicates that the server refuses to accept the request without a defined Content-Length

func (*ErrLengthRequired) DumpApiError

func (e *ErrLengthRequired) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrLengthRequired) Error

func (e ErrLengthRequired) Error() string

Error returns the internal error in a string format

type ErrMethodNotAllowed

type ErrMethodNotAllowed struct {
	// contains filtered or unexported fields
}

ErrMethodNotAllowed indicates that the method received in the request-line is known by the origin server but not supported by the target resource

func (*ErrMethodNotAllowed) DumpApiError

func (e *ErrMethodNotAllowed) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrMethodNotAllowed) Error

func (e ErrMethodNotAllowed) Error() string

Error returns the internal error in a string format

type ErrNotAcceptable

type ErrNotAcceptable struct {
	// contains filtered or unexported fields
}

ErrNotAcceptable indicates that the target resource does not have a current representation that would be acceptable to the user agent

func (ErrNotAcceptable) DumpApiError

func (e ErrNotAcceptable) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrNotAcceptable) Error

func (e ErrNotAcceptable) Error() string

Error returns the internal error in a string format

type ErrNotAuth

type ErrNotAuth struct {
	// contains filtered or unexported fields
}

ErrNotAuth error type that implements the error interface

func (ErrNotAuth) Error

func (e ErrNotAuth) Error() string

Error returns the internal error in a string format

type ErrNotAuthorized

type ErrNotAuthorized struct {
	// contains filtered or unexported fields
}

errNotAuthorized error type that implements the error and ErrorDumper interfaces

func (*ErrNotAuthorized) DumpApiError

func (e *ErrNotAuthorized) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrNotAuthorized) Error

func (e ErrNotAuthorized) Error() string

Error returns the internal error in a string format

type ErrNotFound

type ErrNotFound struct {
	// contains filtered or unexported fields
}

ErrNotFound error type that implements the error and ErrorDumper interfaces

func (*ErrNotFound) DumpApiError

func (e *ErrNotFound) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrNotFound) Error

func (e ErrNotFound) Error() string

Error returns the internal error in a string format

type ErrNotImplemented

type ErrNotImplemented struct {
	// contains filtered or unexported fields
}

ErrNotImplemented indicates that the server does not support the functionality required to fulfill the request

func (*ErrNotImplemented) DumpApiError

func (e *ErrNotImplemented) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrNotImplemented) Error

func (e ErrNotImplemented) Error() string

Error returns the internal error in a string format

type ErrNotSupported

type ErrNotSupported struct {
	// contains filtered or unexported fields
}

ErrNotSupported the server does not support, or refuses to support, the major version of HTTP that was used in the request message

func (*ErrNotSupported) DumpApiError

func (e *ErrNotSupported) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrNotSupported) Error

func (e ErrNotSupported) Error() string

Error returns the internal error in a string format

type ErrPaymentRequired

type ErrPaymentRequired struct {
	// contains filtered or unexported fields
}

ErrPaymentRequired error that says the status code is reserved for future use

func (*ErrPaymentRequired) DumpApiError

func (e *ErrPaymentRequired) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrPaymentRequired) Error

func (e ErrPaymentRequired) Error() string

Error returns type that implements the error interface

type ErrPreconditionRequired

type ErrPreconditionRequired struct {
	// contains filtered or unexported fields
}

ErrPreconditionRequired indicates that one or more conditions given in the request header fields evaluated to false when tested on the server

func (*ErrPreconditionRequired) DumpApiError

func (e *ErrPreconditionRequired) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrPreconditionRequired) Error

func (e ErrPreconditionRequired) Error() string

Error returns the internal error in a string format

type ErrRequestEntityTooLarge

type ErrRequestEntityTooLarge struct {
	// contains filtered or unexported fields
}

ErrRequestEntityTooLarge indicates that the server is refusing to process a request because the request payload is larger than the server is willing or able to process

func (*ErrRequestEntityTooLarge) DumpApiError

func (e *ErrRequestEntityTooLarge) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrRequestEntityTooLarge) Error

func (e ErrRequestEntityTooLarge) Error() string

Error returns the internal error in a string format

type ErrRequestNotSatisfiable

type ErrRequestNotSatisfiable struct {
	// contains filtered or unexported fields
}

ErrRequestNotSatisfiable indicates none of the ranges in the request's Range header field overlap the current extent of the selected resource

func (*ErrRequestNotSatisfiable) DumpApiError

func (e *ErrRequestNotSatisfiable) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrRequestNotSatisfiable) Error

func (e ErrRequestNotSatisfiable) Error() string

Error returns the internal error in a string format

type ErrRequestTimeout

type ErrRequestTimeout struct {
	// contains filtered or unexported fields
}

ErrRequestTimeout indicates that the server did not receive a complete request message within the time that it was prepared to wait

func (*ErrRequestTimeout) DumpApiError

func (e *ErrRequestTimeout) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrRequestTimeout) Error

func (e ErrRequestTimeout) Error() string

Error returns the internal error in a string format

type ErrServiceUnavailable

type ErrServiceUnavailable struct {
	// contains filtered or unexported fields
}

ErrServiceUnavailable indicates that the server is currenlty unable to handle the request due to a temporary overload or scheduled maintenance, which will likely be alleviated after some delay

func (*ErrServiceUnavailable) DumpApiError

func (e *ErrServiceUnavailable) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrServiceUnavailable) Error

func (e ErrServiceUnavailable) Error() string

Error returns the internal error in a string format

type ErrStatusConflict

type ErrStatusConflict struct {
	// contains filtered or unexported fields
}

ErrStatusConflict error type that implements the error and ErrorDumper interfaces

func (*ErrStatusConflict) DumpApiError

func (e *ErrStatusConflict) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrStatusConflict) Error

func (e ErrStatusConflict) Error() string

Error returns the internal error in a string format

type ErrStatusGone

type ErrStatusGone struct {
	// contains filtered or unexported fields
}

ErrStatusGone that the request could not be completed due to a conflict with the current state of the target resource

func (ErrStatusGone) DumpApiError

func (e ErrStatusGone) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrStatusGone) Error

func (e ErrStatusGone) Error() string

Error returns the internal error in a string format

type ErrURITooLong

type ErrURITooLong struct {
	// contains filtered or unexported fields
}

ErrURITooLong indicates that the server is refusing to service the request because the request-target is longer than the server is willing to interpret

func (*ErrURITooLong) DumpApiError

func (e *ErrURITooLong) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrURITooLong) Error

func (e ErrURITooLong) Error() string

Error returns the internal error in a string format

type ErrUnsupportedMediaType

type ErrUnsupportedMediaType struct {
	// contains filtered or unexported fields
}

ErrUnsupportedMediaType indicates that the origin server is refusing to service the request because the payload is in a format not supported by this method on the target resource

func (*ErrUnsupportedMediaType) DumpApiError

func (e *ErrUnsupportedMediaType) DumpApiError(r io.Reader) error

DumpApiError returns the error in a error format from a given reader source

func (ErrUnsupportedMediaType) Error

func (e ErrUnsupportedMediaType) Error() string

Error returns the internal error in a string format

type ErrorDumper

type ErrorDumper interface {
	DumpApiError(r io.Reader) error
}

ErrorDumper interface that represents the ability to dump the error in a go error format from a given reader

type Filter

type Filter struct {
	// Arg is the key of the Key-Value pair
	Arg string
	// Value is the value of the Key-Value pair
	Value string
}

Filter type that holds A Arg-Value, this should be present as argument in all functions that start with the prefix All

type IPNetwork

type IPNetwork struct {

	// Ipnetwork is the name of the IP network
	// that you want to add the instance to
	Ipnetwork string `json:"ipnetwork,omitempty"`

	// IP If you want to associate a static private
	// IP address with the instance, specify an available
	// IP address from the IP address range
	// of the specified ipnetwork
	IP string `json:"ip,omitempty"`

	//  The MAC address of the interface, in hexadecimal format
	Address string `json:"address,omitempty"`

	// The three-part name of an IP
	// reservation that you want to
	// associate with this interface
	Nat []Nat `json:"nat,omitempty"`

	// Vnic is the name of the virtual nic you want to associate the
	// instance with
	Vnic string `json:"vnic,omitempty"`

	// Vnicsets a list of vNics that you want to add to  the instance
	Vnicsets []string `json:"vnicsets,omitempty"`

	// DNS a record names for the instance
	Dns []string `json:"dns,omitempty"`

	// Name_servers are the name servers that are sent
	// through DHCP as option 6.  You can specify a
	// maximum of eight name server IP addresses per interface
	Name_servers []string `json:"name_servers,omitempty"`

	// Search_domains are the search domains that should be
	// sent through DHCP as option 119.
	// You can enter a maximum of eight search
	// domain zones per interface
	Search_domains []string `json:"search_domains,omitempty"`
}

IpNetwork type subparameters for a Network Interface on an IP Network

func (IPNetwork) Validate

func (i IPNetwork) Validate() (err error)

Validate validates if the ipnetwork implementation is valid

type Info

type Info struct {
	Errors map[string]string `json:"errors,omitempty"`
}

type InstanceParams

type InstanceParams struct {
	Relationships []string    `json:"relationships,omitempty"`
	Instances     []Instances `json:"instances"`
}

InstanceParams used to feed the CreateInstance function

type Instances

type Instances struct {
	// Shape represents every instance in oracle cloud has a predefined shape
	// in order to create a virtual instance
	// here it can be specify the computing power shape
	Shape string `json:"shape"`

	// Imagelist is the virtual image that will be used
	// in order to init the instance
	Imagelist string `json:"imagelist,omitempty"`

	// Name is the name of the instance
	Name string `json:"name,omitempty"`

	// Label is used when defining relationships in an orchestration.
	Label string `json:"label,omitempty"`

	// SSHKeys that will be installed on the Instance
	SSHKeys []string `json:"sshkeys,omitempty"`

	// Hostname is assigned to the instance
	// on an Oracle Linux instance, this host name
	// is displayed in response to the hostname command.
	// Only relative DNS is supported.
	// The domain name is suffixed to the host name that you specify.
	// The host name must not end with a period. If you don’t specify a host name,
	// then a name is generated automatically.
	// The DNS name of an instance depends on its host name, as follows:
	// If no DNS name is specified in the networking attribute, then
	// the DNS name is set to the host name, and a
	// reverse DNS record (PTR) is created for the host name.
	//
	// If the DNS name specified in the networking attribute matches the host
	// name, then that record also creates a reverse DNS record for the host name.
	//
	// If the dns attribute under networking is set to an empty list ([]),
	// then no DNS records are created even if a host name is specified.
	// The instance still receives its host name through DHCP, and can perform
	// a reverse lookup of its host name. However, no other
	// instance can perform this reverse lookup.
	// Note:
	// If an instance has network interfaces defined only for
	// IP networks and doesn’t have any interface on the shared network,
	// then when hostname is specified, no DNS entries are set.
	// In this case, DNS entries are set by the dns
	// subparameter of the networking attribute.
	Hostname string `json:"hostname,omitempty"`

	// Tags by assigning a human-friendly tag to an instance
	// you can identify the instance easily when you perform
	// an instance listing.
	// These tags aren’t available from within the instance.
	Tags []string `json:"tags,omitempty"`

	// Networking is the defined network for the instance.
	// ethn: The interface that you’re defining. Oracle-provided
	// images with release version 16.3.6 and later support eight vNICs.
	// You can also create private images that support multiple vNICs.
	// If the image you’ve specified supports eight vNICs,
	// then you can specify up to eight network interfaces, from eth0 to eth7.
	// Note:
	// For each interface, you can specify parameters for either the shared network,
	// or for an IP network. You can’t specify parameters for both networks for
	// the same ethn interface.
	// To add this instance to the shared network, you can specify any
	// or all of the following subparameters:
	// seclists: The security lists that you want to add the instance to.
	// nat: Indicates whether a temporary or permanent public IP address
	// should be assigned to the instance.
	// dns: DNS name for this instance. This name is relative to the internal DNS domain.
	// model: The type of network interface card (NIC). The only allowed value is e1000.
	// name_servers: (Optional) The name servers that are sent through DHCP as option 6.
	// You can specify a maximum of eight name server IP addresses per interface.
	// search_domains: (Optional) The search domains that should be sent through
	// DHCP as option 119.  You can enter a maximum of eight search domain zones per interface
	// Networking Attributes for Instances
	//
	// there are several subparameters that you can specify
	// under the ethn parameter in the networking section of instance attributes.
	// the list of subparameters varies depending on whether
	// you’re defining a network interface on a shared network or an IP network.
	Networking map[string]Networker `json:"networking,omitempty"`

	Attributes map[string]interface{} `json:"attributes,omitempty"`

	// Boot_order is the index number of the bootable storage
	// volume that should be used to boot the instance.
	// The only valid value is 1
	// If you set this attribute, you must also specify
	// a bootable storage volume with index number 1 in
	// the volume sub-parameter of storage_attachments
	// When you specify boot_order, you don’t need to specify
	// the imagelist attribute, because the instance is booted using the
	// image on the specified bootable storage volume.
	// If you specify both boot_order and imagelist, the imagelist attribute is ignored
	// Note:
	// You must not use this attribute when you’ve specified a high I/O shape.
	// This is because when a high I/O shape is used, the instance boots
	// from a nonpersistent NVM Express SSD disk and not
	// from a persistent block storage disk
	Boot_order []int `json:"boot_order,omitempty"`

	// Storage_attachments holds the stroge volume and index for creating the instance
	Storage_attachments []StorageAttachment `json:"storage_attachments,omitempty"`

	// Reverse_dns boolean flag that represents:
	// If set to true (default), then reverse DNS records are created.
	// If set to false, no reverse DNS records are created.
	Reverse_dns bool `json:"reverse_dns,omiempty"`
}

InstancesParams params for the CreateInstance method

type InstancesOrchestration

type InstancesOrchestration struct {
	Hostname string `json:"hostname,omitempty"`

	// Networking information of the instance
	Networking common.Networking `json:"networking,omitempty"`

	// Name of the instance
	Name string `json:"name,omitempty"`

	// Boot_order is the number in what order the instance is booting
	Boot_order []int `json:"boot_order,omitempty"`

	Ip string `json:"ip,omitempty"`

	Start_time string `json:"start_time,omitempty"`

	// Storage_attachments list of storages that the instnaces has
	Storage_attachments []StorageOrhcestration `json:"storage_attachments,omitmepty"`

	// Uri of the instnace
	Uri *string `json:"uri,omitempty"`

	// Label is the label of the instance
	Label string `json:"label,omitempty"`

	// Shape is the shape of the instnace
	Shape string `json:"shape,omitempty"`

	State common.InstanceState `json:"state,omitempty"`

	// Attributes list of orchestration attributes
	Attributes AttributesOrchestration `json:"attributes,omitmepty"`

	// Imagelist is the image from what was created
	Imagelist string `json:"imagelist,omitempty"`

	// SSHKeys of the instance
	SSHkeys []string `json:"sshkeys,omitmepty"`

	// Tags are a list of tags, aliases for the instance
	Tags []string `json:"tags,omitmepty"`
}

InstancesOrchestration holds information for an instances inside the orchestration object

type IpAddressPrefixSetParams

type IpAddressPrefixSetParams struct {

	// Description is a description of the ip address prefix set
	Description string `json:"description,omitmepty"`

	// IpAddressPrefixes is a list of CIDR IPv4 prefixes assigned in the virtual network.
	IpAddressPrefixes []string `json:"ipAddressPrefixes"`

	// Name is the name of the ip address prefix set
	Name string `json:"name"`

	// Tags is strings that you can use to tag the IP address prefix set.
	Tags []string `json:"tags,omitempty"`
}

IpAddressPrefixSetParams params to feed the CreateIpAddressPrefixSet An IP address prefix set lists IPv4 addresses in the CIDR address prefix format. After creating an IP address prefix set, you can specify it as a source or destination for permitted traffic while creating a security rule.

type IpAddressReservationParams

type IpAddressReservationParams struct {

	// Description is the description of the ip address reservation
	Description string `json:"description,omitmepty"`

	// IpAddressPool is the IP address pool from which you want
	// to reserve an IP address. Enter one of the following:
	// * /oracle/public/public-ippool: When you attach an IP address
	// from this pool to an instance, you enable
	// access between the public Internet and the instance.
	// * /oracle/public/cloud-ippool: When you attach
	// an IP address from this pool to an instance, the instance
	// can communicate privately (that is, without traffic going over
	// the public Internet) with other Oracle Cloud services, such as the
	// TODO(sgiulitti) more research on this type
	IpAddressPool common.IPPool `json:"ipAddressPool,omitempty"`

	// Name is the name of the ip address reservation
	Name string `json:"name"`

	// Tags is the strings that you can use to tag the IP address reservation.
	Tags []string `json:"tags,omitempty"`
}

IpAddressReservationParams

type Nat

type Nat string

Nat is the type that will be used to specify the ip reservation that you want to associate with this interface.

func NewNat

func NewNat(name string, nattype string) Nat

NewNat returns a new nat complinat with the oracle iaas networking api

func (Nat) Validate

func (n Nat) Validate() (err error)

Validate will check if the nat is valid or not

type Networker

type Networker interface {
	// Validate will validate the implementation
	Validate() (err error)
}

Networker type used for providing different implementations in the NewNetowrking creation method

type Object

type Object struct {
	// Info is the aditional information about the orchestration object
	Info Info `json:"info,omitempty"`

	//
	// Intances is generally populated when we are dealing with an
	// instance orchestration
	//
	// Instances instances that are attached to this orchestration
	Instances []InstancesOrchestration `json:"instances,omitempty"`

	// Status is the status of the orchestration
	Status string `json:"status,omitempty"`

	// Name is the name of the object
	Name string `json:"name,omitempty"`

	// Status_timestamp is the status when the object was created
	Status_timestamp string `json:"status_timestamp,omitmepty"`

	// Uri is the endpoint uri that the object is located
	Uri *string `json:"uri,omitempty"`

	//
	//
	// Below these fields are populated when we are dealing with an
	// storage orchestration
	//
	//
	// Managed flag true if the storage is managed
	Managed bool `json:"managed,omitempty"`

	// Snapshot_account is the account name that the snapshot was created from
	Snapshot_account *string `json:"snapshot_account,omitempty"`

	// Machineimage_name is the name of the machine image
	// that the storage was/will bot from
	Machineimage_name string `json:"machineimage_name,omitempty"`

	// Snapshot_id is the snapshot id
	Snapshot_id *string `json:"snapshot_id,omitempty"`

	// Imagelist is the image list that the storage was created from
	Imagelist string `json:"imagelist,omitempty"`

	// Writecache flag true if the write cache is enabled on the storage
	Writecache bool `json:"writecache,omitempty"`

	// Size is the storage size in the cloud
	Size uint64 `json:"size,string"`

	// Platform is the platform storage could be linux,windows, etc.
	Platform string `json:"platform"`

	// Readonly flag true if the storage is read only and does not permit
	// write operation on
	Readonly bool `json:"readonly"`

	// Storage_pool is the storage endpoint pool that the storage
	// belongs to
	Storage_pool string `json:"storage_pool,omitempty"`

	// Shared flag true if the storage is shared across multiple instances
	Shared bool `json:"shared,omitempty"`

	// Description is the description of the object
	Description string `json:"description,omitempty"`

	// Tags are the tags, aliases of the object
	Tags []string `json:"tags,omitempty"`

	// Quota this field is not used
	Quota *string `json:"quota,omitempty"`

	// Properties of the storage obejct
	Properties []string `json:"properties,omitempty"`

	// Account is the account name of the object that has been created from
	Account string `json:"account"`

	// Bootable flag represents that the instance can boot from the storage
	Bootable bool `json:"bootable,omitempty"`

	// Hypervisor is the hypervisor name used in the object orchestration
	Hypervisor *string `json:"hypervisor,omitempty"`

	// Imagelist_entry is the index entry of the image that is used
	// in the storage obejct
	Imagelist_entry int `json:"imagelist_entry,omitempty"`

	// Snapshot is the snapshot name of the storage
	Snapshot *string `json:"snapshot,omitempty"`
}

Object types used for storing object dictionaries or object names for the orchestration

type Oplan

type Oplan struct {

	// Status is the most recent status.
	Status string `json:"status"`

	// Info dictionary for the oplan.
	Info Info `json:"info,omitempty"`

	// Obj_type type of the object.
	Obj_type string `json:"obj_type"`

	// Ha_policy indicates that description is not available
	Ha_policy string `json:"ha_policy,omitempty"`

	// Label is the description of this object plan.
	Label string `json:"label"`

	// Objects list of object dictionaries
	// or object names.
	Objects []Object `json:"objects"`

	// Status_timestamp Timestamp of the most-recent status change.
	Status_timestamp string `json:"status_timestamp,omitempty"`
}

Oplans orchestration plans holds important details about the orchestration

type OrchestrationParams

type OrchestrationParams struct {

	// Relationships holds a slice of relationships that holds every
	// relationship between the objects
	Relationships []Relationship `json:"relationships,omitempty"`

	// Status shows the current status of the orchestration.
	Status string `json:"status"`

	// Account shows the default account for your identity domain.
	Account string `json:"account"`

	// Description is the description of this orchestration plan
	Description string `json:"description,omitempty"`

	// Schedule for an orchestration consists
	// of the start and stop dates and times.
	Schedule Schedule `json:"schedule"`

	// Uri is the Uniform Resource Identifier
	Uri string `json:"uri,omitempty"`

	// List of oplans. An object plan, or oplan,
	// is a top-level orchestration attribute.
	Oplans []Oplan `json:"oplans"`

	// Info the nested parameter errors shows which object
	// in the orchestration has encountered an error.
	// Empty if there are no errors.
	Info Info `json:"info,omitempty"`

	// User is the user of the orchestration
	User string `json:"user"`

	// Status_timestamp this information is generally displayed
	// at the end of the orchestration JSON.
	// It indicates the time that the current view of the
	// orchestration was generated. This information shows only when
	// the orchestration is running.
	Status_timestamp string `json:"status_timestamp"`

	// Name is the name of the orchestration
	Name string `json:"name"`
}

OrchestrationParams orchestraiton params used as params in CreateOrchestration and UpdateOrchestration

type Relationship

type Relationship struct {

	// ToOplan to witch orchestration plan should
	// be the orchestration in a relationship
	ToOplan string `json:"to_oplan,omitempty"`

	// Oplan orchestration plan
	Oplan string `json:"oplan,omitempty"`

	// The type of relationship that this orchestration
	// has with the other one in the ToOplan field
	Type string `json:"type,omitempty"`
}

Relationship type that will describe the relationship between objects

type RouteParams

type RouteParams struct {

	// Specify common.AdminDistanceZero or common.AdminDistranceOne,
	// or common.AdminDistranceTwo,
	// as the route's administrative distance.
	// If you do not specify a value, the
	// default value is common.AdminDistanceZero,
	// The same prefix can be used in multiple routes.
	// In this case, packets are routed over all the matching routes with
	// the lowest administrative distance. In the case multiple routes with
	// the same lowest administrative distance match,
	// routing occurs over all these routes using ECMP.
	AdminDistance common.AdminDistance `json:"adminDistance,omitempty"`

	// Description is the description of the route
	Description string `json:"description,omitempty,omitempty"`

	// IpAddressPrefix is the IPv4 address prefix, in CIDR format,
	// of the external network (external to the vNIC set)
	// from which you want to route traffic.
	IpAddressPrefix string `json:"ipAddressPrefix"`

	// Name is the name of the route
	Name string `json:"name"`

	// NextHopVnicSet is the name of the virtual NIC set to route matching
	// packets to. Routed flows are load-balanced among all
	// the virtual NICs in the virtual NIC set.
	NextHopVnicSet string `json:"nextHopVnicSet"`

	// Tags associated with the object.
	Tags []string `json:"tags,omitempty"`
}

RouteParams params that will be passed to the CreateRoute func

type Schedule

type Schedule struct {

	// Start_time when the orchestration will start
	// Date and time, in ISO 8601 format, when you want to start the orchestration
	// If you do not specify a value, the orchestration starts immediately
	Start_time *string `json:"start_time,omitempty"`

	// Stop_time when the orchestration will stop
	// Date and time, in ISO 8601 format, when you want
	// to stop the orchestration
	Stop_time *string `json:"stop_time,omitempty"`
}

Schedule for an orchestration consists of the start and stop dates and times

type SecApplicationParams

type SecApplicationParams struct {

	// Description is a description of the security application.
	Description string `json:"description,omitempty"`

	// Dport is the TCP or UDP destination port number.
	// You can also specify a port range, such as 5900-5999 for TCP.
	// If you specify tcp or udp as the protocol, then the dport
	// parameter is required; otherwise, it is optional.
	// This parameter isn't relevant to the icmp protocol.
	// Note: This request fails if the range-end is lower than the range-start.
	// For example, if you specify the port range as 5000-4000.
	Dport string `json:"dport,omitempty"`

	// Icmpcode is the ICMP code.
	// This parameter is relevant only if you specify
	// icmp as the protocol. You can specify one of the following values:
	//
	// common.IcmpCodeNetwork
	// common.IcmpCodeHost
	// common.IcmpCodeProtocol
	// common.IcmpPort
	// common.IcmpCodeDf
	// common.IcmpCodeAdmin
	//
	// If you specify icmp as the protocol and don't
	// specify icmptype or icmpcode, then all ICMP packets are matched.
	Icmpcode common.IcmpCode `json:"icmpcode,omitempty"`

	// Icmptype
	// The ICMP type. This parameter is relevant only if you specify icmp
	// as the protocol. You can specify one of the following values:
	//
	// common.IcmpTypeEcho
	// common.IcmpTypeReply
	// common.IcmpTypeTTL
	// common.IcmpTraceroute
	// common.IcmpUnreachable
	// If you specify icmp as the protocol and
	// don't specify icmptype or icmpcode, then all ICMP packets are matched.
	Icmptype common.IcmpType `json:"icmptype,omitempty"`

	// Name is the name of the secure application
	Name string `json:"name"`

	// Protocol is the protocol to use.
	// The value that you specify can be either a text representation of
	// a protocol or any unsigned 8-bit assigned protocol number
	// in the range 0-254. See Assigned Internet Protocol Numbers.
	// For example, you can specify either tcp or the number 6.
	// The following text representations are allowed:
	// tcp, udp, icmp, igmp, ipip, rdp, esp, ah, gre, icmpv6, ospf, pim, sctp, mplsip, all.
	// To specify all protocols, set this to all.
	Protocol common.Protocol `json:"protocol"`
}

type SecRuleParams

type SecRuleParams struct {

	// Action is the security rule
	Action common.SecRuleAction `json:"action"`

	// Application is the application securiy name
	Application string `json:"application"`

	// Description is the description of the security rule
	Description string `json:"description,omitempty"`

	// Disabled flag indicates whether the security rule
	// is enabled (set to false) or disabled (true).
	// The default setting is false
	Disabled bool `json:"disabled"`

	// Name is the name of the security rule
	Name string `json:"name"`

	// Dst_list is the name
	// of the destination security list or security IP list.
	// You must use the prefix seclist: or seciplist
	// : to identify the list type.
	// Note: You can specify a security IP list as
	// the destination in a secrule, provided src_list is
	// a security list that has DENY as its outbound policy.
	// You cannot specify any of the security IP lists
	// in the /oracle/public container as a destination in a secrule.
	Dst_list string `json:"dst_list"`

	// Scr_list is the name of the source security
	// list or security IP list. You must use the prefix seclist:
	// or seciplist: to identify the list type
	Src_list string `json:"src_list"`
}

SecRuleParams type used as params in CreateSecRule func

type SecurityProtocolParams

type SecurityProtocolParams struct {

	// Description is a description of the security protocol
	Description string `json:"description,omitempty"`

	// DstPortSet enter a list of port numbers or port range strings.
	// Traffic is enabled by a security rule when a packet's destination
	// port matches the ports specified here.
	// For TCP, SCTP, and UDP, each port is a destination transport port,
	// between 0 and 65535, inclusive. For ICMP,
	// each port is an ICMP type, between 0 and 255, inclusive.
	// If no destination ports are specified, all destination ports or
	// ICMP types are allowed.
	DstPortSet []string `json:"dstPortSet"`

	// IpProtocol the protocol used in the data portion of the IP datagram.
	// Specify one of the permitted values or enter a number in the range 0–254
	// to represent the protocol that you want to specify. See Assigned Internet
	// Protocol Numbers. Permitted values are: tcp, udp, icmp, igmp, ipip,
	// rdp, esp, ah, gre, icmpv6, ospf, pim, sctp, mplsip, all.
	// Traffic is enabled by a security rule when the protocol in the packet
	// matches the protocol specified here. If no protocol is specified,
	// all protocols are allowed.
	IpProtocol common.Protocol `json:"ipProtocol"`

	// Name is the name of the security protocol
	Name string `json:"name"`

	// SrcPortSet is a list of port numbers or port range strings.
	// Traffic is enabled by a security rule when a packet's source port
	// matches the ports specified here.
	// For TCP, SCTP, and UDP, each port is a source transport port,
	// between 0 and 65535, inclusive. For ICMP, each port is an ICMP type,
	// between 0 and 255, inclusive.
	// If no source ports are specified, all source ports or ICMP
	// types are allowed.
	SrcPortSet []string `json:"srcPortSet"`

	// Tags is strings that you can use to tag the security protocol.
	Tags []string
}

type SecurityRuleParams

type SecurityRuleParams struct {
	// Acl is the name of the acl that contains this rule
	Acl string `json:"acl,omitempty"`

	// Description is the description of the object
	Description string `json:"description,omitempty"`

	// DstIpAddressPrefixSets list of IP address prefix set names
	// to match the packet's destination IP address.
	DstIpAddressPrefixSets []string `json:"dstIpAddressPrefixSets,omitmepty"`

	// DstVnicSet the name of virtual NIC set containing the
	// packet's destination virtual NIC.
	DstVnicSet string `json:"dstVnicSet,omitempty"`

	// EnabledFlag false indicated that the security rule is disabled
	EnabledFlag bool `json:"enabledFlag"`

	// FlowDirection is the direction of the flow;
	// Can be "egress" or "ingress".
	FlowDirection common.FlowDirection `json:"flowDirection"`

	// Name is the name of the security rule
	Name string `json:"name"`

	// SecProtocols is the list of security protocol object
	// names to match the packet's protocol and port.
	SecProtocols []string `json:"secProtocols"`

	// SrcIpAddressPrefixSets list of multipart names of
	// IP address prefix set to match the packet's source IP address.
	SrcIpAddressPrefixSets []string `json:"srcIpAddressPrefixSets,omitempty"`

	// SrcVnicSet is the name of virtual NIC set containing
	// the packet's source virtual NIC.
	SrcVnicSet string `json:"srcVnicSet,omitempty"`

	// Tags associated with the object.
	Tags []string `json:"tags,omitempty"`
}

type SharedNetwork

type SharedNetwork struct {

	// seclits are the security lists that
	// you want to add the instance to.
	Seclists []string `json:"seclists,omitempty"`

	// Nat indicates whether a temporary or
	// permanent public IP address should
	// be assigned to the instance
	// To associate a temporary IP address with the
	// instance for use during the lifetime of the
	// instance, specify ippool:/oracle/public/ippool.
	// To associate a persistent IP address,
	// specify ipreservation:ipreservation_name,
	// where ipreservation_name is the three-part name
	// of an existing IP reservation in the
	// /Compute-identity_domain/user/object_name format.
	// if nat is not specified, then no public IP
	// address is associated with your instance
	// when it is created. If required,
	// you can associate an IP address with
	// the instance after the instance has been created
	Nat []Nat `json:"nat,omitempty"`

	// Dns name for this instance.
	// This name is relative to the internal DNS domain
	Dns []string `json:"dns,omitempty"`

	// Model is the type of network
	// interface card (NIC). The only allowed value is e1000
	Model string `json:"model,omitempty"`

	// Name_servers are the name servers that are sent
	// through DHCP as option 6.  You can specify a
	// maximum of eight name server IP addresses per interface
	Name_servers []string `json:"name_servers,omitempty"`

	// Search_domains are the search domains that should be
	// sent through DHCP as option 119.
	// You can enter a maximum of eight search
	// domain zones per interface
	Search_domains []string `json:"search_domains,omitempty"`
}

SharedNetwork type subparameters for a network instance shared network

func (SharedNetwork) Validate

func (s SharedNetwork) Validate() (err error)

Validate will check if the shared network that is created is valid

type StorageAttachment

type StorageAttachment struct {
	// Volume is the three-part name (/Compute-identity_domain/user/object_name)
	// of the storage volume that you want to attach to the instance.
	// Note that volumes attached to an instance at launch time can't be detached.
	Volume string `json:"volume"`
	// Index is the index number for the volume.
	// The allowed range is 1 to 10. If you want to use a storage volume as the boot disk for an
	// instance, you must specify the index number for that volume as 1.
	// The index determines the device name by which the volume is exposed to the instance.
	// Index 0 is allocated to a nonpersistent boot disk, /dev/xvda.
	// An attachment with index 1 is exposed to the instance as /dev/xvdb, an attachment
	// with index 2 is exposed as /dev/xvdc, and so on.
	Index int `json:"index"`
}

StorageAttachment represents a storage to which the instance wants to attach

type StorageAttachmentParams

type StorageAttachmentParams struct {
	// Index number for the volume.
	// The allowed range is 1-10.
	// The index determines the device name by which the
	// volume is exposed to the instance. Index 0 is allocated
	// to the temporary boot disk, /dev/xvda An attachment with
	// index 1 is exposed to the instance as /dev/xvdb,
	// an attachment with index 2 is exposed as /dev/xvdc, and so on.
	Index common.Index `json:"index"`

	// Instance_name multipart name of the instance
	// to which you want to attach the volume
	Instance_name string `json:"instance_name"`

	// Storage_volume_name is the name of the storage volume
	Storage_volume_name string `json:"storage_volume_name"`
}

StorageAttachmentParams

type StorageOrhcestration

type StorageOrhcestration struct {
	Volume string `json:"volume,omitempty"`
	Index  int    `json:"index,omitempty"`
}

type StorageSnapshotParams

type StorageSnapshotParams struct {

	// Description is the description of the storage
	// snapshot
	Description string `json:"description,omitempty"`

	// Name is the name of the snapshot
	Name string `json:"name"`

	// Parent_volume_bootable field indicating
	// whether the parent storage volume is bootable
	Parent_volume_bootable string `json:"parent_volume_bootable"`

	// Property that describes:
	// If you don't specify a value, a remote snapshot is created.
	// Remote snapshots aren't stored in the
	// same location as the original storage volume. Instead,
	// they are reduced and stored in the associated Oracle
	// Storage Cloud Service instance. Remote snapshots are useful
	// if your domain spans multiple sites.
	// With remote snapshots, you can create a snapshot in one
	// site, then switch to another site and create a copy of the
	// storage volume on that site. However, creating a
	// remote snapshot and restoring a storage volume from a remote
	// snapshot can take quite a long time depending on the size
	// of the storage volume, as data is written to and from
	// the Oracle Storage Cloud Service instance.
	// Specify /oracle/private/storage/snapshot/collocated to
	// create a collocated snapshot. Colocated snapshots
	// are stored in the same physical location as the
	// original storage volume and each snapshot uses the
	// same amount of storage as the original volume.
	// Colocated snapshots and volumes from colocated snapshots can
	// be created very quickly. Colocated snapshots are useful
	// for quickly cloning storage volumes within a site.
	// However, you can't restore volumes across sites using colocated snapshots
	Property string `json:"property"`

	// Tags are strings that describe the
	// storage snapshot and help you identify it
	Tags []string `json:"tags,omitempty"`

	// Volume is the volume name you wish to create
	// the snapshot
	Volume string `json:"volume"`
}

StorageSnapshotParams

type StorageVolumeParams

type StorageVolumeParams struct {

	// Bootable is a a boolean field that indicates whether
	// the storage volume can be used as the boot
	// disk for an instance.
	// If you set the value to true, then you must
	// specify values for the following parameters imagelist
	// The machine image that you want to extract
	// on to the storage volume that you're creating.
	// imagelist_entry field (optional)
	// for the version of the image list entry
	// that you want to extract. The default value is 1.
	Bootable bool `json:"bootable"`

	// Description is the description of the
	// storage volume
	Description string `json:"description"`

	// Imagelist is the name of machineimage
	// to extract onto this volume when created.<Paste>
	Imagelist string `json:"imagelist"`

	// Imagelist_entry is a pecific imagelist entry version to extract.
	Imagelist_entry int `json:"imagelist_entry"`

	// Name is the name of the storage volume
	Name string `json:"name"`

	// Properties contains the storage-pool properties
	// For storage volumes that require low latency and high IOPS,
	// such as for storing database files, specify common.LatencyPool
	// For all other storage volumes, specify common.DefaultPool
	Properties []common.StoragePool `json:"properties"`

	// Size is the the size of this storage volume.
	// Use one of the following abbreviations for the unit of measurement:
	// B or b for bytes
	// K or k for kilobytes
	// M or m for megabytes
	// G or g for gigabytes
	// T or t for terabytes
	// For example, to create a volume of size 10 gigabytes,
	// you can specify 10G, or 10240M, or 10485760K, and so on.
	// The allowed range is from 1 GB to 2 TB, in increments of 1 GB.
	// If you are creating a bootable storage volume, ensure
	// that the size of the storage volume is greater
	// than the size of the machine image that you want
	// to extract on to the storage volume.
	// If you are creating this storage volume from a storage snapshot,
	// ensure that the size of the storage volume that you create
	// is greater than the size of the storage snapshot.
	Size common.StorageSize `json:"size"`

	// Snapshot multipart name of the storage volume snapshot if
	// this storage volume is a clone.
	Snapshot string `json:"snapshot"`

	// Snapshot_account of the parent snapshot
	// from which the storage volume is restored
	Snapshot_account string `json:"snapshot_account"`

	// Snapshot_id is the dd of the parent snapshot
	// from which the storage volume is restored or cloned
	Snapshot_id string `json:"snapshot_id"`

	// Tags are strings that you can use to tag the storage volume.
	Tags []string `json:"tags,omitempty"`
}

StorageVolumeParams used for StorageVolume functions type for providing parameters

type VEthernet

type VEthernet struct {
	Dns      []string `json:"dns,omitempty"`
	Nat      string   `json:"nat,omitempty"`
	SecLists []string `json:"seclists,omitempty"`
	Model    string   `json:"model,omitempty"`
}

type VNic

type VNic struct {
	Dns       []string `json:"dns,omitempty"`
	Nat       string   `json:"nat,omitempty"`
	SecLists  []string `json:"seclists,omitempty"`
	Model     string   `json:"model,omitempty"`
	IPNetwork string   `json:"ipnetwork,omitempty"`
}

type VnicSetParams

type VnicSetParams struct {

	// AppliedAcls is a list of ACLs applied to the VNICs in the set.
	AppliedAcls []string `json:"appliedAcls,omitempty"`

	// Description of the object
	Description string `json:"description,omitempty"`

	// Name is the name of the vnic set
	Name string `json:"name"`

	// Tags associated with the object.
	Tags []string `json:"tags"`

	// List of VNICs associated with this VNIC set
	Vnics []string `json:"vnics"`
}

VnicSetParams used as params in CreateVnicSet

type VpnEndpointParams

type VpnEndpointParams struct {
	// Customer_vpn_gateway specify the IP address of the
	// VPN gateway in your data center through which
	// you want to connect to the Oracle Cloud VPN gateway.
	// Your gateway device must support route-based VPN
	// and IKE (Internet Key Exchange) configuration
	// using pre-shared keys.
	Customer_vpn_gateway string `json:"customer_vpn_gateway"`

	// Enabled flag, enables the VPN endpoint.
	// To start a VPN connection, set to true.
	// A connection is established immediately, if possible.
	// If you do not specify this option, the VPN
	// endpoint is disabled and the
	// connection is not established
	Enabled bool `json:"enabled"`

	// Name is the name of the vpn endpoint resource
	Name string `json:"name"`

	// Psk is the pre-shared VPN key. Enter the pre-shared key.
	// This must be the same key that you provided
	// when you requested the service. This secret key
	// is shared between your network gateway and the
	// Oracle Cloud network for authentication.
	// Specify the full path and name of the text file
	// that contains the pre-shared key. Ensure
	// that the permission level of the text file is
	// set to 400. The pre-shared VPN key must not
	// exceed 256 characters.
	Psk string `json:"psk"`

	// Reachable_routes is a list of routes (CIDR prefixes)
	// that are reachable through this VPN tunnel.
	// You can specify a maximum of 20 IP subnet addresses.
	// Specify IPv4 addresses in dot-decimal
	// notation with or without mask.
	Reachable_routes []string `json:"reachable_routes"`
}

Jump to

Keyboard shortcuts

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