compute

package
v0.17.0 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2020 License: MPL-2.0 Imports: 18 Imported by: 26

Documentation

Index

Constants

View Source
const (
	// PublicIPAddressPool - public-ippool
	PublicIPAddressPool = "public-ippool"
	// PrivateIPAddressPool - cloud-ippool
	PrivateIPAddressPool = "cloud-ippool"
)
View Source
const ReservationIPPrefix = "network/v1/ipreservation"

ReservationIPPrefix - network/v1/ipreservation

View Source
const ReservationPrefix = "ipreservation"

ReservationPrefix - ipreservation

View Source
const (

	// SnapshotPropertyCollocated - Collocated Snapshot Property
	SnapshotPropertyCollocated = "/oracle/private/storage/snapshot/collocated"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ACLInfo

type ACLInfo struct {
	// Description of the ACL
	Description string `json:"description"`
	// Indicates whether the ACL is enabled
	Enabled bool `json:"enabledFlag"`
	// Fully Qualified Domain Name
	FQDN string `json:"name"`
	// The name of the ACL
	Name string
	// Tags associated with the ACL
	Tags []string `json:"tags"`
	// Uniform Resource Identifier for the ACL
	URI string `json:"uri"`
}

ACLInfo describes an existing ACL.

type ACLsClient

type ACLsClient struct {
	ResourceClient
}

ACLsClient is a client for the ACLs functions of the Compute API.

func (*ACLsClient) CreateACL

func (c *ACLsClient) CreateACL(createInput *CreateACLInput) (*ACLInfo, error)

CreateACL creates a new ACL.

func (*ACLsClient) DeleteACL

func (c *ACLsClient) DeleteACL(deleteInput *DeleteACLInput) error

DeleteACL deletes the ACL with the given name.

func (*ACLsClient) GetACL

func (c *ACLsClient) GetACL(getInput *GetACLInput) (*ACLInfo, error)

GetACL retrieves the ACL with the given name.

func (*ACLsClient) UpdateACL

func (c *ACLsClient) UpdateACL(updateInput *UpdateACLInput) (*ACLInfo, error)

UpdateACL modifies the properties of the ACL with the given name.

type AuthenticationReq

type AuthenticationReq struct {
	User     string `json:"user"`
	Password string `json:"password"`
}

AuthenticationReq represents the body of an authentication request.

type Client

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

Client represents an authenticated compute client, with compute credentials and an api client.

func NewComputeClient

func NewComputeClient(c *opc.Config) (*Client, error)

NewComputeClient returns a compute client to interact with the Oracle Compute Infrastructure - Classic APIs

func (*Client) ACLs

func (c *Client) ACLs() *ACLsClient

ACLs obtains a ACLsClient which can be used to access to the ACLs functions of the Compute API

func (*Client) IPAddressAssociations

func (c *Client) IPAddressAssociations() *IPAddressAssociationsClient

IPAddressAssociations returns an IPAddressAssociationsClient that can be used to access the necessary CRUD functions for IP Address Associations.

func (*Client) IPAddressPrefixSets

func (c *Client) IPAddressPrefixSets() *IPAddressPrefixSetsClient

IPAddressPrefixSets returns an IPAddressPrefixSetsClient that can be used to access the necessary CRUD functions for IP Address Prefix Sets.

func (*Client) IPAddressReservations

func (c *Client) IPAddressReservations() *IPAddressReservationsClient

IPAddressReservations returns an IPAddressReservationsClient to manage IP address reservation resources

func (*Client) IPAssociations

func (c *Client) IPAssociations() *IPAssociationsClient

IPAssociations obtains a IPAssociationsClient which can be used to access to the IP Association functions of the Compute API

func (*Client) IPNetworkExchanges

func (c *Client) IPNetworkExchanges() *IPNetworkExchangesClient

IPNetworkExchanges returns an IPNetworkExchangesClient that can be used to access the necessary CRUD functions for IP Network Exchanges.

func (*Client) IPNetworks

func (c *Client) IPNetworks() *IPNetworksClient

IPNetworks returns an IPNetworksClient that can be used to access the necessary CRUD functions for IP Networks.

func (*Client) IPReservations

func (c *Client) IPReservations() *IPReservationsClient

IPReservations obtains an IPReservationsClient which can be used to access to the IP Reservations functions of the Compute API

func (*Client) ImageList

func (c *Client) ImageList() *ImageListClient

ImageList obtains an ImageListClient which can be used to access to the Image List functions of the Compute API

func (*Client) ImageListEntries

func (c *Client) ImageListEntries() *ImageListEntriesClient

ImageListEntries returns an ImageListEntriesClient that can be used to access the necessary CRUD functions for Image List Entry's.

func (*Client) Instances

func (c *Client) Instances() *InstancesClient

Instances obtains an InstancesClient which can be used to access to the Instance functions of the Compute API

func (*Client) MachineImages added in v0.9.3

func (c *Client) MachineImages() *MachineImagesClient

MachineImages obtains an MachineImagesClient which can be used to access to the MachineImage functions of the Compute API

func (*Client) Orchestrations added in v0.9.3

func (c *Client) Orchestrations() *OrchestrationsClient

Orchestrations obtains an OrchestrationsClient which can be used to access to the Orchestration functions of the Compute API

func (*Client) Routes

func (c *Client) Routes() *RoutesClient

Routes returns a route client

func (*Client) SSHKeys

func (c *Client) SSHKeys() *SSHKeysClient

SSHKeys obtains an SSHKeysClient which can be used to access to the SSH key functions of the Compute API

func (*Client) SecRules

func (c *Client) SecRules() *SecRulesClient

SecRules obtains a SecRulesClient which can be used to access to the Sec Rules functions of the Compute API

func (*Client) SecurityApplications

func (c *Client) SecurityApplications() *SecurityApplicationsClient

SecurityApplications obtains a SecurityApplicationsClient which can be used to access to the Security Application functions of the Compute API

func (*Client) SecurityAssociations

func (c *Client) SecurityAssociations() *SecurityAssociationsClient

SecurityAssociations obtains a SecurityAssociationsClient which can be used to access to the Security Association functions of the Compute API

func (*Client) SecurityIPLists

func (c *Client) SecurityIPLists() *SecurityIPListsClient

SecurityIPLists obtains a SecurityIPListsClient which can be used to access to the Security IP List functions of the Compute API

func (*Client) SecurityLists

func (c *Client) SecurityLists() *SecurityListsClient

SecurityLists obtains a SecurityListsClient which can be used to access to the Security List functions of the Compute API

func (*Client) SecurityProtocols

func (c *Client) SecurityProtocols() *SecurityProtocolsClient

SecurityProtocols returns an SecurityProtocolsClient that can be used to access the necessary CRUD functions for Security Protocols.

func (*Client) SecurityRules

func (c *Client) SecurityRules() *SecurityRuleClient

SecurityRules returns an SecurityRulesClient that can be used to access the necessary CRUD functions for Security Rules.

func (*Client) Snapshots added in v0.9.3

func (c *Client) Snapshots() *SnapshotsClient

Snapshots obtains an SnapshotsClient which can be used to access to the Snapshot functions of the Compute API

func (*Client) StorageAttachments

func (c *Client) StorageAttachments() *StorageAttachmentsClient

StorageAttachments obtains a StorageAttachmentsClient which can be used to access to the Storage Attachment functions of the Compute API

func (*Client) StorageVolumeSnapshots

func (c *Client) StorageVolumeSnapshots() *StorageVolumeSnapshotClient

StorageVolumeSnapshots returns a storage volume snapshot client

func (*Client) StorageVolumes

func (c *Client) StorageVolumes() *StorageVolumeClient

StorageVolumes obtains a StorageVolumeClient which can be used to access to the Storage Volume functions of the Compute API

func (*Client) VPNEndpointV2s added in v0.14.0

func (c *Client) VPNEndpointV2s() *VPNEndpointV2sClient

VPNEndpointV2s returns an VPNEndpointV2sClient that can be used to access the necessary CRUD functions for VPN Endpoint V2s.

func (*Client) VirtNICSets

func (c *Client) VirtNICSets() *VirtNICSetsClient

VirtNICSets returns a virtual nic sets client

func (*Client) VirtNICs

func (c *Client) VirtNICs() *VirtNICsClient

VirtNICs returns a virtual nics client

type CreateACLInput

type CreateACLInput struct {
	// Description of the ACL
	// Optional
	Description string `json:"description"`

	// Enables or disables the ACL. Set to true by default.
	//Set this to false to disable the ACL.
	// Optional
	Enabled bool `json:"enabledFlag"`

	// The name of the ACL to create. Object names can only contain alphanumeric,
	// underscore, dash, and period characters. Names are case-sensitive.
	// Required
	Name string `json:"name"`

	// Strings that you can use to tag the ACL.
	// Optional
	Tags []string `json:"tags"`
}

CreateACLInput defines a ACL to be created.

type CreateIPAddressAssociationInput

type CreateIPAddressAssociationInput struct {
	// The name of the IP Address Association to create. Object names can only contain alphanumeric,
	// underscore, dash, and period characters. Names are case-sensitive.
	// Required
	Name string `json:"name"`

	// The name of the NAT IP address reservation.
	// Optional
	IPAddressReservation string `json:"ipAddressReservation,omitempty"`

	// Name of the virtual NIC associated with this NAT IP reservation.
	// Optional
	Vnic string `json:"vnic,omitempty"`

	// Description of the IPAddressAssociation
	// Optional
	Description string `json:"description"`

	// String slice of tags to apply to the IP Address Association object
	// Optional
	Tags []string `json:"tags"`
}

CreateIPAddressAssociationInput details the attributes needed to create an ip address association

type CreateIPAddressPrefixSetInput

type CreateIPAddressPrefixSetInput struct {
	// The name of the IP Address Prefix Set to create. Object names can only contain alphanumeric,
	// underscore, dash, and period characters. Names are case-sensitive.
	// Required
	Name string `json:"name"`

	// Description of the IPAddressPrefixSet
	// Optional
	Description string `json:"description"`

	// List of CIDR IPv4 prefixes assigned in the virtual network.
	// Optional
	IPAddressPrefixes []string `json:"ipAddressPrefixes"`

	// String slice of tags to apply to the IP Address Prefix Set object
	// Optional
	Tags []string `json:"tags"`
}

CreateIPAddressPrefixSetInput details the parameters to create an ip address prefix set

type CreateIPAddressReservationInput

type CreateIPAddressReservationInput struct {
	// Description of the IP Address Reservation
	// Optional
	Description string `json:"description"`

	// IP Address pool from which to reserve an IP Address.
	// Can be one of the following:
	//
	// 'public-ippool' - When you attach an IP Address from this pool to an instance, you enable
	//                   access between the public Internet and the instance
	// 'cloud-ippool' - When you attach an IP Address from this pool to an instance, the instance
	//                  can communicate privately with other Oracle Cloud Services
	// Optional
	IPAddressPool string `json:"ipAddressPool"`

	// The name of the reservation to create
	// Required
	Name string `json:"name"`

	// Tags to associate with the IP Reservation
	// Optional
	Tags []string `json:"tags"`
}

CreateIPAddressReservationInput defines input parameters to create an ip address reservation

type CreateIPAssociationInput

type CreateIPAssociationInput struct {
	// The type of IP Address to associate with this instance
	// for a Dynamic IP address specify `ippool:/oracle/public/ippool`.
	// for a Static IP address specify the three part name of the existing IP reservation
	// Required
	ParentPool string `json:"parentpool"`

	// The three-part name of the vcable ID of the instance that you want to associate with an IP address. The three-part name is in the format: /Compute-identity_domain/user/object.
	// Required
	VCable string `json:"vcable"`
}

CreateIPAssociationInput details the attributes neccessary to create an ip association

type CreateIPNetworkExchangeInput

type CreateIPNetworkExchangeInput struct {
	// The name of the IP Network Exchange to create. Object names can only contain alphanumeric,
	// underscore, dash, and period characters. Names are case-sensitive.
	// Required
	Name string `json:"name"`

	// Description of the IPNetworkExchange
	// Optional
	Description string `json:"description"`

	// String slice of tags to apply to the IP Network Exchange object
	// Optional
	Tags []string `json:"tags"`
}

CreateIPNetworkExchangeInput details the attributes needed to create an ip network exchange

type CreateIPNetworkInput

type CreateIPNetworkInput struct {
	// The name of the IP Network to create. Object names can only contain alphanumeric,
	// underscore, dash, and period characters. Names are case-sensitive.
	// Required
	Name string `json:"name"`

	// Specify the size of the IP Subnet. It is a range of IPv4 addresses assigned in the virtual
	// network, in CIDR address prefix format.
	//	While specifying the IP address prefix take care of the following points:
	//
	//* These IP addresses aren't part of the common pool of Oracle-provided IP addresses used by the shared network.
	//
	//* There's no conflict with the range of IP addresses used in another IP network, the IP addresses used your on-premises network, or with the range of private IP addresses used in the shared network. If IP networks with overlapping IP subnets are linked to an IP exchange, packets going to and from those IP networks are dropped.
	//
	//* The upper limit of the CIDR block size for an IP network is /16.
	//
	//Note: The first IP address of any IP network is reserved for the default gateway, the DHCP server, and the DNS server of that IP network.
	// Required
	IPAddressPrefix string `json:"ipAddressPrefix"`

	//Specify the IP network exchange to which the IP network belongs.
	//You can add an IP network to only one IP network exchange, but an IP network exchange
	//can include multiple IP networks. An IP network exchange enables access between IP networks
	//that have non-overlapping addresses, so that instances on these networks can exchange packets
	//with each other without NAT.
	// Optional
	IPNetworkExchange string `json:"ipNetworkExchange,omitempty"`

	// Description of the IPNetwork
	// Optional
	Description string `json:"description"`

	// Enable public internet access using NAPT for VNICs without any public IP reservation
	// Optional
	PublicNaptEnabled bool `json:"publicNaptEnabledFlag"`

	// String slice of tags to apply to the IP Network object
	// Optional
	Tags []string `json:"tags"`
}

CreateIPNetworkInput details the attributes needed to create an ip network

type CreateIPReservationInput

type CreateIPReservationInput struct {
	// The name of the object
	// If you don't specify a name for this object, then the name is generated automatically.
	// Object names can contain only alphanumeric characters, hyphens, underscores, and periods.
	// Object names are case-sensitive.
	// Optional
	Name string `json:"name"`
	// Pool of public IP addresses. This must be set to `ippool`
	// Required
	ParentPool IPReservationPool `json:"parentpool"`
	// Is the IP Reservation Persistent (i.e. static) or not (i.e. Dynamic)?
	// Required
	Permanent bool `json:"permanent"`
	// A comma-separated list of strings which helps you to identify IP reservations.
	// Optional
	Tags []string `json:"tags"`
}

CreateIPReservationInput defines an IP reservation to be created.

type CreateImageListEntryInput

type CreateImageListEntryInput struct {
	// The name of the Image List
	Name string
	// User-defined parameters, in JSON format, that can be passed to an instance of this machine
	// image when it is launched. This field can be used, for example, to specify the location of
	// a database server and login details. Instance metadata, including user-defined data is
	//available at http://192.0.0.192/ within an instance. See Retrieving User-Defined Instance
	//Attributes in Using Oracle Compute Cloud Service (IaaS).
	// Optional
	Attributes map[string]interface{} `json:"attributes"`
	// A list of machine images.
	// Required
	MachineImages []string `json:"machineimages"`
	// The unique version of the entry in the image list.
	// Required
	Version int `json:"version"`
}

CreateImageListEntryInput specifies the parameters needed to creat an image list entry

type CreateImageListInput

type CreateImageListInput struct {
	// The image list entry to be used, by default, when launching instances using this image list.
	// If you don't specify this value, it is set to 1.
	// Optional
	Default int `json:"default"`

	// A description of this image list.
	// Required
	Description string `json:"description"`

	// The name of the Image List
	// Object names can contain only alphanumeric characters, hyphens, underscores, and periods. Object names are case-sensitive.
	// Required
	Name string `json:"name"`
}

CreateImageListInput defines an Image List to be created.

type CreateInstanceInput

type CreateInstanceInput struct {
	// A dictionary of user-defined attributes to be made available to the instance.
	// Optional
	Attributes map[string]interface{} `json:"attributes"`
	// Boot order list
	// Optional
	BootOrder []int `json:"boot_order,omitempty"`
	// The desired state of the opc instance. Can only be `running` or `shutdown`
	// Omits if empty.
	// Optional
	DesiredState InstanceDesiredState `json:"desired_state,omitempty"`
	// ImageListEntry number. Default will be used if not specified
	// Optional
	Entry int `json:"entry,omitempty"`
	// The host name 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.
	// Optional
	Hostname string `json:"hostname"`
	// Name of imagelist to be launched.
	// Optional
	ImageList string `json:"imagelist"`
	// A label assigned by the user, specifically for defining inter-instance relationships.
	// Optional
	Label string `json:"label"`
	// Name of this instance, generated by the server.
	// Optional
	Name string `json:"name"`
	// Networking information.
	// Optional
	Networking map[string]NetworkingInfo `json:"networking"`
	// If set to true (default), then reverse DNS records are created.
	// If set to false, no reverse DNS records are created.
	// Optional
	ReverseDNS bool `json:"reverse_dns,omitempty"`
	// Type of instance, as defined on site configuration.
	// Required
	Shape string `json:"shape"`
	// A list of the Storage Attachments you want to associate with the instance.
	// Optional
	Storage []StorageAttachmentInput `json:"storage_attachments,omitempty"`
	// A list of the SSH public keys that you want to associate with the instance.
	// Optional
	SSHKeys []string `json:"sshkeys"`
	// A list of tags to be supplied to the instance
	// Optional
	Tags []string `json:"tags"`
	// Time to wait for an instance to be ready
	Timeout time.Duration `json:"-"`
}

CreateInstanceInput specifies the parameters needed to create an instance

type CreateMachineImageInput added in v0.6.6

type CreateMachineImageInput struct {
	// account of the associated Object Storage Classic instance
	Account string `json:"account"`

	// Dictionary of attributes to be made available to the instance
	Attributes map[string]interface{} `json:"attributes,omitempty"`

	// Describing the image
	Description string `json:"description,omitempty"`

	// name of the machine image file uploaded to Object Storage Classic
	File string `json:"file,omitempty"`

	// name of the machine image
	Name string `json:"name"`

	// Indicates that the image file is available in Object Storage Classic
	NoUpload bool `json:"no_upload"`

	// Size values of the image file
	Sizes map[string]interface{} `json:"sizes"`
}

CreateMachineImageInput defines an Image List to be created.

type CreateOrchestrationInput added in v0.6.0

type CreateOrchestrationInput struct {
	// The default Oracle Compute Cloud Service account, such as /Compute-acme/default.
	// Optional
	Account string `json:"account,omitempty"`
	// Description of this orchestration
	// Optional
	Description string `json:"description,omitempty"`
	// Specify the desired state of this orchestration: active, inactive, or suspend.
	// You can manage the state of the orchestration objects by changing the desired state of the orchestration.
	// * active: Creates all the orchestration objects defined in the orchestration.
	// * inactive: Adds the orchestration to Oracle Compute Cloud Service, but does not create any of the orchestration
	// objects defined in the orchestration.
	// Required
	DesiredState OrchestrationDesiredState `json:"desired_state"`
	// The three-part name of the Orchestration (/Compute-identity_domain/user/object).
	// Object names can contain only alphanumeric characters, hyphens, underscores, and periods. Object names are case-sensitive.
	// Required
	Name string `json:"name"`
	// The list of objects in the orchestration. An object is the primary building block of an orchestration.
	// An orchestration can contain up to 100 objects.
	// Required
	Objects []Object `json:"objects"`
	// Strings that describe the orchestration and help you identify it.
	Tags []string `json:"tags,omitempty"`
	// Version of this orchestration. It is automatically generated by the server.
	Version int `json:"version,omitempty"`
	// Time to wait between polls to check status
	PollInterval time.Duration `json:"-"`
	// Time to wait for an orchestration to be ready
	Timeout time.Duration `json:"-"`
}

CreateOrchestrationInput defines an Orchestration to be created.

type CreateRouteInput

type CreateRouteInput struct {
	// Specify 0,1, or 2 as the route's administrative distance.
	// If you do not specify a value, the default value is 0.
	// 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.
	// Optional
	AdminDistance int `json:"adminDistance"`
	// Description of the route
	// Optional
	Description string `json:"description"`
	// The IPv4 address prefix in CIDR format, of the external network (external to the vNIC set)
	// from which you want to route traffic
	// Required
	IPAddressPrefix string `json:"ipAddressPrefix"`
	// Name of the route.
	// Names can only contain alphanumeric, underscore, dash, and period characters. Case-sensitive
	// Required
	Name string `json:"name"`
	// 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
	// Required
	NextHopVnicSet string `json:"nextHopVnicSet"`
	// Slice of tags to be associated with the route
	// Optional
	Tags []string `json:"tags,omitempty"`
}

CreateRouteInput details the attributes needed to create a route

type CreateSSHKeyInput

type CreateSSHKeyInput struct {
	// The three-part name of the SSH Key (/Compute-identity_domain/user/object).
	// Object names can contain only alphanumeric characters, hyphens, underscores, and periods. Object names are case-sensitive.
	// Required
	Name string `json:"name"`
	// The SSH public key value.
	// Required
	Key string `json:"key"`
	// Indicates whether the key must be enabled (default) or disabled. Note that disabled keys cannot be associated with instances.
	// To explicitly enable the key, specify true. To disable the key, specify false.
	// Optional
	Enabled bool `json:"enabled"`
}

CreateSSHKeyInput defines an SSH key to be created.

type CreateSecRuleInput

type CreateSecRuleInput struct {
	// Set this parameter to PERMIT.
	// Required
	Action string `json:"action"`

	// The name of the security application for user-defined or predefined security applications.
	// Required
	Application string `json:"application"`

	// Description of the IP Network
	// Optional
	Description string `json:"description"`

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

	// The name of the destination security list or security IP list.
	//
	// You must use the prefix seclist: or seciplist: to identify the list type.
	//
	// 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.
	// Required
	DestinationList string `json:"dst_list"`

	// The name of the Sec Rule to create. Object names can only contain alphanumeric,
	// underscore, dash, and period characters. Names are case-sensitive.
	// Required
	Name string `json:"name"`

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

CreateSecRuleInput defines a sec rule to be created.

type CreateSecurityApplicationInput

type CreateSecurityApplicationInput struct {
	// A description of the security application.
	// Optional
	Description string `json:"description"`
	// The TCP or UDP destination port number.
	// You can also specify a port range, such as 5900-5999 for TCP.
	// This parameter isn't relevant to the icmp protocol.
	// Required if the Protocol is TCP or UDP
	DPort string `json:"dport"`
	// The ICMP code. This parameter is relevant only if you specify ICMP as the protocol.
	// If you specify icmp as the protocol and don't specify icmptype or icmpcode, then all ICMP packets are matched.
	// Optional
	ICMPCode SecurityApplicationICMPCode `json:"icmpcode,omitempty"`
	// This parameter is relevant only if you specify ICMP as the protocol.
	// If you specify icmp as the protocol and don't specify icmptype or icmpcode, then all ICMP packets are matched.
	// Optional
	ICMPType SecurityApplicationICMPType `json:"icmptype,omitempty"`
	// The three-part name of the Security Application (/Compute-identity_domain/user/object).
	// Object names can contain only alphanumeric characters, hyphens, underscores, and periods. Object names are case-sensitive.
	// Required
	Name string `json:"name"`
	// The protocol to use.
	// Required
	Protocol SecurityApplicationProtocol `json:"protocol"`
}

CreateSecurityApplicationInput describes the Security Application to create

type CreateSecurityAssociationInput

type CreateSecurityAssociationInput struct {
	// The three-part name of the Security Association (/Compute-identity_domain/user/object).
	// If you don't specify a name for this object, then the name is generated automatically.
	// Object names can contain only alphanumeric characters, hyphens, underscores, and periods. Object names are case-sensitive.
	// Optional
	Name string `json:"name"`
	// The name of the Security list that you want to associate with the instance.
	// Required
	SecList string `json:"seclist"`
	// The name of the vCable of the instance that you want to associate with the security list.
	// Required
	VCable string `json:"vcable"`
}

CreateSecurityAssociationInput defines a security association to be created.

type CreateSecurityIPListInput

type CreateSecurityIPListInput struct {
	// A description of the security IP list.
	// Optional
	Description string `json:"description"`
	// The three-part name of the object (/Compute-identity_domain/user/object).
	// Object names can contain only alphanumeric characters, hyphens, underscores, and periods. Object names are case-sensitive.
	// Required
	Name string `json:"name"`
	// A comma-separated list of the subnets (in CIDR format) or IPv4 addresses for which you want to create this security IP list.
	// Required
	SecIPEntries []string `json:"secipentries"`
}

CreateSecurityIPListInput defines a security IP list to be created.

type CreateSecurityListInput

type CreateSecurityListInput struct {
	// A description of the security list.
	// Optional
	Description string `json:"description"`
	// The three-part name of the Security List (/Compute-identity_domain/user/object).
	// Object names can contain only alphanumeric characters, hyphens, underscores, and periods. Object names are case-sensitive.
	// Required
	Name string `json:"name"`
	// The policy for outbound traffic from the security list.
	// Optional (defaults to `permit`)
	OutboundCIDRPolicy SecurityListPolicy `json:"outbound_cidr_policy"`
	// The policy for inbound traffic to the security list.
	// Optional (defaults to `deny`)
	Policy SecurityListPolicy `json:"policy"`
}

CreateSecurityListInput defines a security list to be created.

type CreateSecurityProtocolInput

type CreateSecurityProtocolInput struct {
	// The name of the Security Protocol to create. Object names can only contain alphanumeric,
	// underscore, dash, and period characters. Names are case-sensitive.
	// Required
	Name string `json:"name"`

	// Description of the SecurityProtocol
	// Optional
	Description string `json:"description"`

	// 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.
	// Optional
	DstPortSet []string `json:"dstPortSet"`

	// 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.
	// Optional
	IPProtocol string `json:"ipProtocol"`

	// Enter 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.
	// Optional
	SrcPortSet []string `json:"srcPortSet"`

	// String slice of tags to apply to the Security Protocol object
	// Optional
	Tags []string `json:"tags"`
}

CreateSecurityProtocolInput details the attributes of the security protocol to create

type CreateSecurityRuleInput

type CreateSecurityRuleInput struct {
	//Select the name of the access control list (ACL) that you want to add this
	// security rule to. Security rules are applied to vNIC sets by using ACLs.
	// Optional
	ACL string `json:"acl,omitempty"`

	// Description of the Security Rule
	// Optional
	Description string `json:"description"`

	// A list of IP address prefix sets to which you want to permit traffic.
	// Only packets to IP addresses in the specified IP address prefix sets are permitted.
	// When no destination IP address prefix sets are specified, traffic to any
	// IP address is permitted.
	// Optional
	DstIPAddressPrefixSets []string `json:"dstIpAddressPrefixSets"`

	// The vNICset to which you want to permit traffic. Only packets to vNICs in the
	// specified vNICset are permitted. When no destination vNICset is specified, traffic
	// to any vNIC is permitted.
	// Optional
	DstVnicSet string `json:"dstVnicSet,omitempty"`

	// Allows the security rule to be enabled or disabled. This parameter is set to
	// true by default. Specify false to disable the security rule.
	// Optional
	Enabled bool `json:"enabledFlag"`

	// Specify the direction of flow of traffic, which is relative to the instances,
	// for this security rule. Allowed values are ingress or egress.
	// An ingress packet is a packet received by a virtual NIC, for example from
	// another virtual NIC or from the public Internet.
	// An egress packet is a packet sent by a virtual NIC, for example to another
	// virtual NIC or to the public Internet.
	// Required
	FlowDirection string `json:"flowDirection"`

	// The name of the Security Rule
	// Object names can contain only alphanumeric characters, hyphens, underscores, and periods.
	// Object names are case-sensitive. When you specify the object name, ensure that an object
	// of the same type and with the same name doesn't already exist.
	// If such an object already exists, another object of the same type and with the same name won't
	// be created and the existing object won't be updated.
	// Required
	Name string `json:"name"`

	// A list of security protocols for which you want to permit traffic. Only packets that
	// match the specified protocols and ports are permitted. When no security protocols are
	// specified, traffic using any protocol over any port is permitted.
	// Optional
	SecProtocols []string `json:"secProtocols"`

	// A list of IP address prefix sets from which you want to permit traffic. Only packets
	// from IP addresses in the specified IP address prefix sets are permitted. When no source
	// IP address prefix sets are specified, traffic from any IP address is permitted.
	// Optional
	SrcIPAddressPrefixSets []string `json:"srcIpAddressPrefixSets"`

	// The vNICset from which you want to permit traffic. Only packets from vNICs in the
	// specified vNICset are permitted. When no source vNICset is specified, traffic from any
	// vNIC is permitted.
	// Optional
	SrcVnicSet string `json:"srcVnicSet,omitempty"`

	// Strings that you can use to tag the security rule.
	// Optional
	Tags []string `json:"tags"`
}

CreateSecurityRuleInput defines the attributes needed to create a security rule

type CreateSnapshotInput added in v0.1.2

type CreateSnapshotInput struct {
	// The name of the account that contains the credentials and access details of
	// Oracle Storage Cloud Service. The machine image file is uploaded to the Oracle
	// Storage Cloud Service account that you specify.
	// Optional
	Account string `json:"account,omitempty"`
	// Use this option when you want to preserve the custom changes you have made
	// to an instance before deleting the instance. The only permitted value is shutdown.
	// Snapshot of the instance is not taken immediately. It creates a machine image which
	// preserves the changes you have made to the instance, and then the instance is deleted.
	// Note: This option has no effect if you shutdown the instance from inside it. Any pending
	// snapshot request on that instance goes into error state. You must delete the instance
	// (DELETE /instance/{name}).
	// Optional
	Delay SnapshotDelay `json:"delay,omitempty"`
	// Name of the instance that you want to clone.
	// Required
	Instance string `json:"instance"`
	// Specify the name of the machine image created by the snapshot request.
	// Object names can contain only alphanumeric characters, hyphens, underscores, and periods.
	// Object names are case-sensitive.
	// If you don't specify a name for this object, then the name is generated automatically.
	// Optional
	MachineImage string `json:"machineimage,omitempty"`
	// Time to wait between polling snapshot status
	PollInterval time.Duration `json:"-"`
	// Time to wait for snapshot to be completed
	Timeout time.Duration `json:"-"`
}

CreateSnapshotInput defines an Snapshot to be created.

type CreateStorageAttachmentInput

type CreateStorageAttachmentInput struct {
	// Index number for the volume. The allowed range is 1-10
	// 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.
	// Required.
	Index int `json:"index"`

	// Multipart name of the instance to which you want to attach the volume.
	// Required.
	InstanceName string `json:"instance_name"`

	// Multipart name of the volume that you want to attach.
	// Required.
	StorageVolumeName string `json:"storage_volume_name"`

	// Time to wait between polls to check volume attachment status
	PollInterval time.Duration `json:"-"`

	// Time to wait for storage volume attachment
	Timeout time.Duration `json:"-"`
}

CreateStorageAttachmentInput defines the attributes to create a storage attachment

type CreateStorageVolumeInput

type CreateStorageVolumeInput struct {
	// true indicates that the storage volume can also be used as a boot disk for an instance.
	// If you set the value to true, then you must specify values for the `ImageList` and `ImageListEntry` fields.
	Bootable bool `json:"bootable,omitempty"`

	// The description of the storage volume.
	Description string `json:"description,omitempty"`

	// Name of machine image to extract onto this volume when created. This information is provided only for bootable storage volumes.
	ImageList string `json:"imagelist,omitempty"`

	// Specific imagelist entry version to extract.
	ImageListEntry int `json:"imagelist_entry,omitempty"`

	// The three-part name of the object (/Compute-identity_domain/user/object).
	Name string `json:"name"`

	// The storage-pool property: /oracle/public/storage/latency or /oracle/public/storage/default.
	Properties []string `json:"properties,omitempty"`

	// The size of this storage volume in GB.
	Size string `json:"size"`

	// Name of the parent snapshot from which the storage volume is restored or cloned.
	Snapshot string `json:"snapshot,omitempty"`

	// Account of the parent snapshot from which the storage volume is restored.
	SnapshotAccount string `json:"snapshot_account,omitempty"`

	// Id of the parent snapshot from which the storage volume is restored or cloned.
	SnapshotID string `json:"snapshot_id,omitempty"`

	// Comma-separated strings that tag the storage volume.
	Tags []string `json:"tags,omitempty"`

	// Timeout to wait polling storage volume status.
	PollInterval time.Duration `json:"-"`

	// Timeout to wait for storage volume creation.
	Timeout time.Duration `json:"-"`
}

CreateStorageVolumeInput represents the body of an API request to create a new Storage Volume.

type CreateStorageVolumeSnapshotInput

type CreateStorageVolumeSnapshotInput struct {
	// Description of the snapshot
	// Optional
	Description string `json:"description,omitempty"`

	// Name of the snapshot
	// Optional, will be generated if not specified
	Name string `json:"name,omitempty"`

	// Whether or not the parent volume is bootable
	// Optional
	ParentVolumeBootable string `json:"parent_volume_bootable,omitempty"`

	// Whether collocated or remote
	// Optional, will be remote if unspecified
	Property string `json:"property,omitempty"`

	// Array of tags for the snapshot
	// Optional
	Tags []string `json:"tags,omitempty"`

	// Name of the volume to create the snapshot from
	// Required
	Volume string `json:"volume"`

	// Timeout to wait between polling snapshot status. Will use default if unspecified
	PollInterval time.Duration `json:"-"`

	// Timeout to wait for snapshot to be completed. Will use default if unspecified
	Timeout time.Duration `json:"-"`
}

CreateStorageVolumeSnapshotInput represents the body of an API request to create a new storage volume snapshot

type CreateVPNEndpointV2Input added in v0.14.0

type CreateVPNEndpointV2Input struct {
	// 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.
	// Required
	CustomerVPNGateway string `json:"customer_vpn_gateway"`
	// Description of the VPN Endpoint
	Description string `json:"description,omitempty"`
	// Enable/Disable the tunnel
	// Optional
	Enabled bool `json:"enabled,omitempty"`
	// The Internet Key Exchange (IKE) ID. If you don't specify a value, the default value is
	// the public IP address of the cloud gateway. You can specify either an alternative IP address,
	// or any text string that you want to use as the IKE ID. If you specify a text string, you must
	// prefix the string with @. For example, if you want to specify the text IKEID-for-VPN1, specify
	// @IKEID-for-VPN1 as the value in request body. If you specify an IP address, don't prefix it with @.
	// The IKE ID is case sensitive and can contain a maximum of 255 ASCII alphanumeric characters
	// including special characters, period (.), hyphen (-), and underscore (_). The IKE ID can't contain
	// embedded space characters.
	// Note: If you specify the IKE ID, ensure that you specify the Peer ID type as Domain Name on the
	// third-party device in your data center. Other Peer ID types, such as email address, firewall
	// identifier or key identifier, aren't supported.
	// Optional
	IKEIdentifier string `json:"ikeIdentifier,omitempty"`
	// Specify the name of the IP network
	// which you want to create the cloud gateway. When you send a request to create a VPN connection,
	// a cloud gateway is created and this is assigned an available IP address from the IP network that
	// you specify. So, the cloud gateway is directly connected to the IP network that you specify.
	// You can only specify a single IP network. All other IP networks with are connected to the
	// specified IP network through an IP network exchange are discovered and added automatically to
	// the VPN connection.
	// Required
	IPNetwork string `json:"ipNetwork"`
	// The name of the VPN Endpoint V2 to create. Object names can only contain alphanumeric,
	// underscore, dash, and period characters. Names are case-sensitive.
	// Required
	Name string `json:"name"`
	// This is enabled (set to true) by default. If your third-party device supports Perfect Forward
	// Secrecy (PFS), set this parameter to true to require PFS.
	// Optional. Default true
	PFSFlag bool `json:"pfsFlag,omitmepty"`
	// Settings for Phase 1 of protocol (IKE).
	// Optional
	Phase1Settings *Phase1Settings `json:"phase1Settings,omitempty"`
	// Settings for Phase 2 of protocol (IPSEC).
	// Optional
	Phase2Settings *Phase2Settings `json:"phase2Settings,omitempty"`
	// Pre-shared VPN key. 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.
	// Required
	PSK string `json:"psk"`
	// Specify 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.
	// Required
	ReachableRoutes []string `json:"reachable_routes"`
	// An array of tags
	Tags []string `json:"tags"`
	// Comma-separated list of vNIC sets. Traffic is allowed to and from these vNIC sets to the
	// cloud gateway's vNIC set.
	// Required
	VNICSets []string `json:"vnicSets"`
	// Time to wait between polls to check status
	PollInterval time.Duration `json:"-"`
	// Time to wait for an vpn endoint v2 to be ready
	Timeout time.Duration `json:"-"`
}

CreateVPNEndpointV2Input define the attributes related to creating a vpn endpoint v2

type CreateVirtualNICSetInput

type CreateVirtualNICSetInput struct {
	// List of ACLs applied to the VNICs in the set.
	// Optional
	AppliedACLs []string `json:"appliedAcls"`
	// Description of the object.
	// Optional
	Description string `json:"description"`
	// The three-part name (/Compute-identity_domain/user/object) of the virtual NIC set.
	// Object names can contain only alphanumeric, underscore (_), dash (-), and period (.) characters. Object names are case-sensitive.
	// Required
	Name string `json:"name"`
	// Tags associated with this VNIC set.
	// Optional
	Tags []string `json:"tags"`
	// List of VNICs associated with this VNIC set.
	// Optional
	VirtualNICs []string `json:"vnics"`
}

CreateVirtualNICSetInput specifies the details of the virutal nic set to create

type DeleteACLInput

type DeleteACLInput struct {
	// The name of the ACL to delete.
	// Required
	Name string `json:"name"`
}

DeleteACLInput describes the ACL to delete

type DeleteIPAddressAssociationInput

type DeleteIPAddressAssociationInput struct {
	// The name of the IP Address Association to query for. Case-sensitive
	// Required
	Name string `json:"name"`
}

DeleteIPAddressAssociationInput details the parameters neccessary to delete an ip address association

type DeleteIPAddressPrefixSetInput

type DeleteIPAddressPrefixSetInput struct {
	// The name of the IP Address Prefix Set to query for. Case-sensitive
	// Required
	Name string `json:"name"`
}

DeleteIPAddressPrefixSetInput details the parameters to delete an ip address prefix set

type DeleteIPAddressReservationInput

type DeleteIPAddressReservationInput struct {
	// The name of the reservation to delete
	Name string `json:"name"`
}

DeleteIPAddressReservationInput details the parameters to delete an IP Address Reservation

type DeleteIPAssociationInput

type DeleteIPAssociationInput struct {
	// The three-part name of the IP Association
	// Required.
	Name string `json:"name"`
}

DeleteIPAssociationInput details the attributes neccessary to delete an ip association

type DeleteIPNetworkExchangeInput

type DeleteIPNetworkExchangeInput struct {
	// The name of the IP Network Exchange to query for. Case-sensitive
	// Required
	Name string `json:"name"`
}

DeleteIPNetworkExchangeInput details the attributes neccessary to delete an ip network exchange

type DeleteIPNetworkInput

type DeleteIPNetworkInput struct {
	// The name of the IP Network to query for. Case-sensitive
	// Required
	Name string `json:"name"`
}

DeleteIPNetworkInput specifies the attributes needed to delete an ip network

type DeleteIPReservationInput

type DeleteIPReservationInput struct {
	// The name of the IP Reservation
	// Required
	Name string
}

DeleteIPReservationInput defines an IP Reservation to delete

type DeleteImageListEntryInput

type DeleteImageListEntryInput struct {
	// The name of the Image List
	Name string
	// Version number of these machineImages in the imagelist.
	Version int
}

DeleteImageListEntryInput details the parameters needed to delete an image list entry

type DeleteImageListInput

type DeleteImageListInput struct {
	// The name of the Image List
	Name string `json:"name"`
}

DeleteImageListInput describes the image list to delete

type DeleteInstanceInput

type DeleteInstanceInput struct {
	// The Unqualified Name of this Instance
	Name string
	// The Unqualified ID of this Instance
	ID string
	// Time to wait between polls to check status
	PollInterval time.Duration
	// Time to wait for instance to be deleted
	Timeout time.Duration
}

DeleteInstanceInput specifies the parameters needed to delete an instance

func (*DeleteInstanceInput) String

func (d *DeleteInstanceInput) String() string

type DeleteMachineImageInput added in v0.1.2

type DeleteMachineImageInput struct {
	// The name of the MachineImage
	Name string `json:"name"`
}

DeleteMachineImageInput describes the MachineImage to delete

type DeleteOrchestrationInput added in v0.6.0

type DeleteOrchestrationInput struct {
	// The three-part name of the Orchestration (/Compute-identity_domain/user/object).
	// Required
	Name string `json:"name"`
	// Poll Interval for delete request
	PollInterval time.Duration `json:"-"`
	// Timeout for delete request
	Timeout time.Duration `json:"-"`
}

DeleteOrchestrationInput describes the Orchestration to delete

type DeleteRouteInput

type DeleteRouteInput struct {
	// Name of the Route to delete. Case-sensitive
	// Required
	Name string `json:"name"`
}

DeleteRouteInput details the route to delete

type DeleteSSHKeyInput

type DeleteSSHKeyInput struct {
	// The three-part name of the SSH Key (/Compute-identity_domain/user/object).
	Name string `json:"name"`
}

DeleteSSHKeyInput describes the ssh key to delete

type DeleteSecRuleInput

type DeleteSecRuleInput struct {
	// The name of the Sec Rule to delete.
	// Required
	Name string `json:"name"`
}

DeleteSecRuleInput describes the sec rule to delete

type DeleteSecurityApplicationInput

type DeleteSecurityApplicationInput struct {
	// The three-part name of the Security Application (/Compute-identity_domain/user/object).
	// Required
	Name string `json:"name"`
}

DeleteSecurityApplicationInput describes the Security Application to delete

type DeleteSecurityAssociationInput

type DeleteSecurityAssociationInput struct {
	// The three-part name of the Security Association (/Compute-identity_domain/user/object).
	// Required
	Name string `json:"name"`
}

DeleteSecurityAssociationInput describes the security association to delete

type DeleteSecurityIPListInput

type DeleteSecurityIPListInput struct {
	// The three-part name of the object (/Compute-identity_domain/user/object).
	// Required
	Name string `json:"name"`
}

DeleteSecurityIPListInput describes the security ip list to delete.

type DeleteSecurityListInput

type DeleteSecurityListInput struct {
	// The three-part name of the Security List (/Compute-identity_domain/user/object).
	// Required
	Name string `json:"name"`
}

DeleteSecurityListInput describes the security list to destroy

type DeleteSecurityProtocolInput

type DeleteSecurityProtocolInput struct {
	// The name of the Security Protocol to query for. Case-sensitive
	// Required
	Name string `json:"name"`
}

DeleteSecurityProtocolInput details the security protocal to delete

type DeleteSecurityRuleInput

type DeleteSecurityRuleInput struct {
	// The name of the Security Rule to query for. Case-sensitive
	// Required
	Name string `json:"name"`
}

DeleteSecurityRuleInput specifies which security rule to delete

type DeleteSnapshotInput added in v0.1.2

type DeleteSnapshotInput struct {
	// The name of the Snapshot
	// Required
	Snapshot string
	// The name of the machine image
	// Required
	MachineImage string
	// Time to wait between polls to check snapshot status
	PollInterval time.Duration
	// Time to wait for snapshot to be deleted
	Timeout time.Duration
}

DeleteSnapshotInput describes the snapshot to delete

type DeleteStorageAttachmentInput

type DeleteStorageAttachmentInput struct {
	// The three-part name of the Storage Attachment (/Compute-identity_domain/user/object).
	// Required
	Name string `json:"name"`

	// Time to wait between polls to check volume attachment status
	PollInterval time.Duration `json:"-"`

	// Time to wait for storage volume snapshot
	Timeout time.Duration `json:"-"`
}

DeleteStorageAttachmentInput represents the body of an API request to delete a Storage Attachment.

type DeleteStorageVolumeInput

type DeleteStorageVolumeInput struct {
	// The three-part name of the object (/Compute-identity_domain/user/object).
	Name string `json:"name"`

	// Timeout to wait betweeon polling storage volume status
	PollInterval time.Duration `json:"-"`

	// Timeout to wait for storage volume deletion
	Timeout time.Duration `json:"-"`
}

DeleteStorageVolumeInput represents the body of an API request to delete a Storage Volume.

type DeleteStorageVolumeSnapshotInput

type DeleteStorageVolumeSnapshotInput struct {
	// Name of the snapshot to delete
	Name string `json:"name"`

	// Timeout to wait between polling snapshot status, will use default if unspecified
	PollInterval time.Duration `json:"-"`

	// Timeout to wait for deletion, will use default if unspecified
	Timeout time.Duration `json:"-"`
}

DeleteStorageVolumeSnapshotInput represents the body of an API request to delete a storage volume snapshot

type DeleteVPNEndpointV2Input added in v0.14.0

type DeleteVPNEndpointV2Input struct {
	// The name of the VPN Endpoint V2 to query for. Case-sensitive
	// Required
	Name string `json:"name"`
	// Poll Interval for delete request
	PollInterval time.Duration `json:"-"`
	// Timeout for delete request
	Timeout time.Duration `json:"-"`
}

DeleteVPNEndpointV2Input defines the attributes required for deleting a vpn endpoint v2

type DeleteVirtualNICSetInput

type DeleteVirtualNICSetInput struct {
	// The name of the virtual NIC set.
	// Required
	Name string `json:"name"`
}

DeleteVirtualNICSetInput specifies the virtual nic set to delete

type GetACLInput

type GetACLInput struct {
	// The name of the ACL to query for
	// Required
	Name string `json:"name"`
}

GetACLInput describes the ACL to get

type GetIPAddressAssociationInput

type GetIPAddressAssociationInput struct {
	// The name of the IP Address Association to query for. Case-sensitive
	// Required
	Name string `json:"name"`
}

GetIPAddressAssociationInput details the parameters needed to retrieve an ip address association

type GetIPAddressPrefixSetInput

type GetIPAddressPrefixSetInput struct {
	// The name of the IP Address Prefix Set to query for. Case-sensitive
	// Required
	Name string `json:"name"`
}

GetIPAddressPrefixSetInput details the parameters to retrieve an ip address prefix set

type GetIPAddressReservationInput

type GetIPAddressReservationInput struct {
	// Name of the IP Reservation
	// Required
	Name string `json:"name"`
}

GetIPAddressReservationInput details the parameters to retrieve information on an ip address reservation

type GetIPAssociationInput

type GetIPAssociationInput struct {
	// The three-part name of the IP Association
	// Required.
	Name string `json:"name"`
}

GetIPAssociationInput details the attributes neccessary to retrieve an ip association

type GetIPNetworkExchangeInput

type GetIPNetworkExchangeInput struct {
	// The name of the IP Network Exchange to query for. Case-sensitive
	// Required
	Name string `json:"name"`
}

GetIPNetworkExchangeInput details the attributes needed to retrieve an ip network exchange

type GetIPNetworkInput

type GetIPNetworkInput struct {
	// The name of the IP Network to query for. Case-sensitive
	// Required
	Name string `json:"name"`
}

GetIPNetworkInput details the attributes needed to retrieve an ip network

type GetIPReservationInput

type GetIPReservationInput struct {
	// The name of the IP Reservation
	// Required
	Name string
}

GetIPReservationInput defines an IP Reservation to get

type GetImageListEntryInput

type GetImageListEntryInput struct {
	// The name of the Image List
	Name string
	// Version number of these machineImages in the imagelist.
	Version int
}

GetImageListEntryInput details the parameters needed to retrive an image list entry

type GetImageListInput

type GetImageListInput struct {
	// The name of the Image List
	Name string `json:"name"`
}

GetImageListInput describes the image list to get

type GetInstanceIDInput added in v0.9.3

type GetInstanceIDInput struct {
	// Name of the instance you want to get
	Name string
}

GetInstanceIDInput specifies the parameters needed to retrieve an instance

type GetInstanceInput

type GetInstanceInput struct {
	// The Unqualified Name of this Instance
	// Required
	Name string
	// The Unqualified ID of this Instance
	// Required
	ID string
}

GetInstanceInput specifies the parameters needed to retrieve an instance

func (*GetInstanceInput) String

func (g *GetInstanceInput) String() string

type GetMachineImageInput added in v0.6.6

type GetMachineImageInput struct {
	// account of the associated Object Storage Classic instance
	Account string `json:"account"`
	// The name of the Machine Image
	Name string `json:"name"`
}

GetMachineImageInput describes the MachineImage to get

type GetOrchestrationInput added in v0.6.0

type GetOrchestrationInput struct {
	// The three-part name of the Orchestration (/Compute-identity_domain/user/object).
	Name string `json:"name"`
}

GetOrchestrationInput describes the Orchestration to get

type GetRouteInput

type GetRouteInput struct {
	// Name of the Route to query for. Case-sensitive
	// Required
	Name string `json:"name"`
}

GetRouteInput details the attributes needed to retrive a route

type GetSSHKeyInput

type GetSSHKeyInput struct {
	// The three-part name of the SSH Key (/Compute-identity_domain/user/object).
	Name string `json:"name"`
}

GetSSHKeyInput describes the ssh key to get

type GetSecRuleInput

type GetSecRuleInput struct {
	// The name of the Sec Rule to query for
	// Required
	Name string `json:"name"`
}

GetSecRuleInput describes the Sec Rule to get

type GetSecurityApplicationInput

type GetSecurityApplicationInput struct {
	// The three-part name of the Security Application (/Compute-identity_domain/user/object).
	// Required
	Name string `json:"name"`
}

GetSecurityApplicationInput describes the Security Application to obtain

type GetSecurityAssociationInput

type GetSecurityAssociationInput struct {
	// The three-part name of the Security Association (/Compute-identity_domain/user/object).
	// Required
	Name string `json:"name"`
}

GetSecurityAssociationInput describes the security association to get

type GetSecurityIPListInput

type GetSecurityIPListInput struct {
	// The three-part name of the object (/Compute-identity_domain/user/object).
	// Required
	Name string `json:"name"`
}

GetSecurityIPListInput describes the Security IP List to obtain

type GetSecurityListInput

type GetSecurityListInput struct {
	// The three-part name of the Security List (/Compute-identity_domain/user/object).
	// Required
	Name string `json:"name"`
}

GetSecurityListInput describes the security list you want to get

type GetSecurityProtocolInput

type GetSecurityProtocolInput struct {
	// The name of the Security Protocol to query for. Case-sensitive
	// Required
	Name string `json:"name"`
}

GetSecurityProtocolInput details the security protocol input to retrive

type GetSecurityRuleInput

type GetSecurityRuleInput struct {
	// The name of the Security Rule to query for. Case-sensitive
	// Required
	Name string `json:"name"`
}

GetSecurityRuleInput defines which security rule to obtain

type GetSnapshotInput added in v0.1.2

type GetSnapshotInput struct {
	// The name of the Snapshot
	// Required
	Name string `json:"name"`
}

GetSnapshotInput describes the snapshot to get

type GetStorageAttachmentInput

type GetStorageAttachmentInput struct {
	// The three-part name of the Storage Attachment (/Compute-identity_domain/user/object).
	// Required
	Name string `json:"name"`
}

GetStorageAttachmentInput represents the body of an API request to obtain a Storage Attachment.

type GetStorageVolumeInput

type GetStorageVolumeInput struct {
	// The three-part name of the object (/Compute-identity_domain/user/object).
	Name string `json:"name"`
}

GetStorageVolumeInput represents the body of an API request to obtain a Storage Volume.

type GetStorageVolumeSnapshotInput

type GetStorageVolumeSnapshotInput struct {
	// Name of the snapshot
	Name string `json:"name"`
}

GetStorageVolumeSnapshotInput represents the body of an API request to get information on a storage volume snapshot

type GetVPNEndpointV2Input added in v0.14.0

type GetVPNEndpointV2Input struct {
	// The name of the VPN Endpoint V2 to query for. Case-sensitive
	// Required
	Name string `json:"name"`
}

GetVPNEndpointV2Input specifies the information needed to retrive a VPNEndpointV2

type GetVirtualNICInput

type GetVirtualNICInput struct {
	// The three-part name (/Compute-identity_domain/user/object) of the Virtual NIC.
	// Required
	Name string `json:"name"`
}

GetVirtualNICInput Can only GET a virtual NIC, not update, create, or delete

type GetVirtualNICSetInput

type GetVirtualNICSetInput struct {
	// The three-part name (/Compute-identity_domain/user/object) of the virtual NIC set.
	// Required
	Name string `json:"name"`
}

GetVirtualNICSetInput specifies which virutal nic to obtain

type Health added in v0.6.5

type Health struct {
	// The status of the object
	Status OrchestrationStatus `json:"status,omitempty"`
	// What caused the status of the object
	Cause string `json:"cause,omitempty"`
	// The specific details for what happened to the object
	Detail string `json:"detail,omitempty"`
	// Any errors associated with creation of the object
	Error string `json:"error,omitempty"`
}

Health defines the health of an object

type IPAddressAssociationInfo

type IPAddressAssociationInfo struct {
	// Fully Qualified Domain Name
	FQDN string `json:"name"`
	// The name of the NAT IP address reservation.
	IPAddressReservation string `json:"ipAddressReservation"`
	// Name of the virtual NIC associated with this NAT IP reservation.
	Vnic string `json:"vnic"`
	// The name of the IP Address Association
	Name string
	// Description of the IP Address Association
	Description string `json:"description"`
	// Slice of tags associated with the IP Address Association
	Tags []string `json:"tags"`
	// Uniform Resource Identifier for the IP Address Association
	URI string `json:"uri"`
}

IPAddressAssociationInfo contains the exported fields necessary to hold all the information about an IP Address Association

type IPAddressAssociationsClient

type IPAddressAssociationsClient struct {
	ResourceClient
}

IPAddressAssociationsClient details the parameters for an ip address association client

func (*IPAddressAssociationsClient) CreateIPAddressAssociation

CreateIPAddressAssociation creates a new IP Address Association from an IPAddressAssociationsClient and an input struct. Returns a populated Info struct for the IP Address Association, and any errors

func (*IPAddressAssociationsClient) DeleteIPAddressAssociation

func (c *IPAddressAssociationsClient) DeleteIPAddressAssociation(input *DeleteIPAddressAssociationInput) error

DeleteIPAddressAssociation deletes the specified ip address association

func (*IPAddressAssociationsClient) GetIPAddressAssociation

GetIPAddressAssociation returns a populated IPAddressAssociationInfo struct from an input struct

type IPAddressPrefixSetInfo

type IPAddressPrefixSetInfo struct {
	// Fully Qualified Domain Name
	FQDN string `json:"name"`
	// The name of the IP Address Prefix Set
	Name string
	// Description of the IP Address Prefix Set
	Description string `json:"description"`
	// List of CIDR IPv4 prefixes assigned in the virtual network.
	IPAddressPrefixes []string `json:"ipAddressPrefixes"`
	// Slice of tags associated with the IP Address Prefix Set
	Tags []string `json:"tags"`
	// Uniform Resource Identifier for the IP Address Prefix Set
	URI string `json:"uri"`
}

IPAddressPrefixSetInfo contains the exported fields necessary to hold all the information about an IP Address Prefix Set

type IPAddressPrefixSetsClient

type IPAddressPrefixSetsClient struct {
	ResourceClient
}

IPAddressPrefixSetsClient details the parameters for an ipaddress prefix set client

func (*IPAddressPrefixSetsClient) CreateIPAddressPrefixSet

CreateIPAddressPrefixSet creates a new IP Address Prefix Set from an IPAddressPrefixSetsClient and an input struct. Returns a populated Info struct for the IP Address Prefix Set, and any errors

func (*IPAddressPrefixSetsClient) DeleteIPAddressPrefixSet

func (c *IPAddressPrefixSetsClient) DeleteIPAddressPrefixSet(input *DeleteIPAddressPrefixSetInput) error

DeleteIPAddressPrefixSet deletes the specified ip address prefix set

func (*IPAddressPrefixSetsClient) GetIPAddressPrefixSet

GetIPAddressPrefixSet returns a populated IPAddressPrefixSetInfo struct from an input struct

func (*IPAddressPrefixSetsClient) UpdateIPAddressPrefixSet

func (c *IPAddressPrefixSetsClient) UpdateIPAddressPrefixSet(updateInput *UpdateIPAddressPrefixSetInput) (*IPAddressPrefixSetInfo, error)

UpdateIPAddressPrefixSet update the ip address prefix set

type IPAddressReservation

type IPAddressReservation struct {
	// Description of the IP Address Reservation
	Description string `json:"description"`

	// Fully Qualified Domain Name
	FQDN string `json:"name"`

	// Reserved NAT IPv4 address from the IP Address Pool
	IPAddress string `json:"ipAddress"`

	// Name of the IP Address pool to reserve the NAT IP from
	IPAddressPool string `json:"ipAddressPool"`

	// Name of the reservation
	Name string

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

	// Uniform Resource Identified for the reservation
	URI string `json:"uri"`
}

IPAddressReservation describes an IP Address reservation

type IPAddressReservationsClient

type IPAddressReservationsClient struct {
	*ResourceClient
}

IPAddressReservationsClient is a client to manage ip address reservation resources

func (*IPAddressReservationsClient) CreateIPAddressReservation

CreateIPAddressReservation creates an IP Address reservation, and returns the info struct and any errors

func (*IPAddressReservationsClient) DeleteIPAddressReservation

func (c *IPAddressReservationsClient) DeleteIPAddressReservation(input *DeleteIPAddressReservationInput) error

DeleteIPAddressReservation deletes the specified ip address reservation

func (*IPAddressReservationsClient) GetIPAddressReservation

GetIPAddressReservation returns an IP Address Reservation and any errors

func (*IPAddressReservationsClient) UpdateIPAddressReservation

UpdateIPAddressReservation updates the specified ip address reservation

type IPAssociationInfo

type IPAssociationInfo struct {

	// Fully Qualified Domain Name
	FQDN string `json:"name"`

	// The three-part name of the object (/Compute-identity_domain/user/object).
	Name string

	// The three-part name of the IP reservation object in the format (/Compute-identity_domain/user/object).
	// An IP reservation is a public IP address which is attached to an Oracle Compute Cloud Service instance that requires access to or from the Internet.
	Reservation string `json:"reservation"`

	// The type of IP Address to associate with this instance
	// for a Dynamic IP address specify `ippool:/oracle/public/ippool`.
	// for a Static IP address specify the three part name of the existing IP reservation
	ParentPool string `json:"parentpool"`

	// Uniform Resource Identifier for the IP Association
	URI string `json:"uri"`

	// The three-part name of a vcable ID of an instance that is associated with the IP reservation.
	VCable string `json:"vcable"`
}

IPAssociationInfo describes an existing IP association.

type IPAssociationsClient

type IPAssociationsClient struct {
	*ResourceClient
}

IPAssociationsClient is a client for the IP Association functions of the Compute API.

func (*IPAssociationsClient) CreateIPAssociation

func (c *IPAssociationsClient) CreateIPAssociation(input *CreateIPAssociationInput) (*IPAssociationInfo, error)

CreateIPAssociation creates a new IP association with the supplied vcable and parentpool.

func (*IPAssociationsClient) DeleteIPAssociation

func (c *IPAssociationsClient) DeleteIPAssociation(input *DeleteIPAssociationInput) error

DeleteIPAssociation deletes the IP association with the given name.

func (*IPAssociationsClient) GetIPAssociation

func (c *IPAssociationsClient) GetIPAssociation(input *GetIPAssociationInput) (*IPAssociationInfo, error)

GetIPAssociation retrieves the IP association with the given name.

type IPNetworkExchangeInfo

type IPNetworkExchangeInfo struct {
	// Fully Qualified Domain Name
	FQDN string `json:"name"`
	// The name of the IP Network Exchange
	Name string
	// Description of the IP Network Exchange
	Description string `json:"description"`
	// Slice of tags associated with the IP Network Exchange
	Tags []string `json:"tags"`
	// Uniform Resource Identifier for the IP Network Exchange
	URI string `json:"uri"`
}

IPNetworkExchangeInfo contains the exported fields necessary to hold all the information about an IP Network Exchange

type IPNetworkExchangesClient

type IPNetworkExchangesClient struct {
	ResourceClient
}

IPNetworkExchangesClient details the ip network exchange client

func (*IPNetworkExchangesClient) CreateIPNetworkExchange

CreateIPNetworkExchange creates a new IP Network Exchange from an IPNetworkExchangesClient and an input struct. Returns a populated Info struct for the IP Network Exchange, and any errors

func (*IPNetworkExchangesClient) DeleteIPNetworkExchange

func (c *IPNetworkExchangesClient) DeleteIPNetworkExchange(input *DeleteIPNetworkExchangeInput) error

DeleteIPNetworkExchange deletes the specified ip network exchange

func (*IPNetworkExchangesClient) GetIPNetworkExchange

GetIPNetworkExchange returns a populated IPNetworkExchangeInfo struct from an input struct

type IPNetworkInfo

type IPNetworkInfo struct {
	// Fully Qualified Domain Name
	FQDN string `json:"name"`
	// The name of the IP Network
	Name string
	// The CIDR IPv4 prefix associated with the IP Network
	IPAddressPrefix string `json:"ipAddressPrefix"`
	// Name of the IP Network Exchange associated with the IP Network
	IPNetworkExchange string `json:"ipNetworkExchange,omitempty"`
	// Description of the IP Network
	Description string `json:"description"`
	// Whether public internet access was enabled using NAPT for VNICs without any public IP reservation
	PublicNaptEnabled bool `json:"publicNaptEnabledFlag"`
	// Slice of tags associated with the IP Network
	Tags []string `json:"tags"`
	// Uniform Resource Identifier for the IP Network
	URI string `json:"uri"`
}

IPNetworkInfo contains the exported fields necessary to hold all the information about an IP Network

type IPNetworksClient

type IPNetworksClient struct {
	ResourceClient
}

IPNetworksClient specifies the ip networks client

func (*IPNetworksClient) CreateIPNetwork

func (c *IPNetworksClient) CreateIPNetwork(input *CreateIPNetworkInput) (*IPNetworkInfo, error)

CreateIPNetwork creates a new IP Network from an IPNetworksClient and an input struct. Returns a populated Info struct for the IP Network, and any errors

func (*IPNetworksClient) DeleteIPNetwork

func (c *IPNetworksClient) DeleteIPNetwork(input *DeleteIPNetworkInput) error

DeleteIPNetwork deletes the specified ip network

func (*IPNetworksClient) GetIPNetwork

func (c *IPNetworksClient) GetIPNetwork(input *GetIPNetworkInput) (*IPNetworkInfo, error)

GetIPNetwork returns a populated IPNetworkInfo struct from an input struct

func (*IPNetworksClient) UpdateIPNetwork

func (c *IPNetworksClient) UpdateIPNetwork(input *UpdateIPNetworkInput) (*IPNetworkInfo, error)

UpdateIPNetwork updates the specified ip network

type IPReservation

type IPReservation struct {
	// Shows the default account for your identity domain.
	Account string `json:"account"`
	// Fully Qualified Domain Name
	FQDN string `json:"name"`
	// Public IP address.
	IP string `json:"ip"`
	// The three-part name of the IP Reservation (/Compute-identity_domain/user/object).
	Name string
	// Pool of public IP addresses
	ParentPool IPReservationPool `json:"parentpool"`
	// A comma-separated list of strings which helps you to identify IP reservation.
	Tags []string `json:"tags"`
	// Uniform Resource Identifier
	URI string `json:"uri"`
	// Is the IP Reservation Persistent (i.e. static) or not (i.e. Dynamic)?
	Permanent bool `json:"permanent"`
	// Is the IP reservation associated with an instance?
	Used bool `json:"used"`
}

IPReservation describes an existing IP reservation.

type IPReservationPool

type IPReservationPool string

IPReservationPool details the constants for the ip reservation pool attribute

const (
	// PublicReservationPool - /oracle/public/ippool
	PublicReservationPool IPReservationPool = "/oracle/public/ippool"
)

type IPReservationsClient

type IPReservationsClient struct {
	*ResourceClient
}

IPReservationsClient is a client for the IP Reservations functions of the Compute API.

func (*IPReservationsClient) CreateIPReservation

func (c *IPReservationsClient) CreateIPReservation(input *CreateIPReservationInput) (*IPReservation, error)

CreateIPReservation creates a new IP reservation with the given parentpool, tags and permanent flag.

func (*IPReservationsClient) DeleteIPReservation

func (c *IPReservationsClient) DeleteIPReservation(input *DeleteIPReservationInput) error

DeleteIPReservation deletes the IP reservation with the given name.

func (*IPReservationsClient) GetIPReservation

func (c *IPReservationsClient) GetIPReservation(input *GetIPReservationInput) (*IPReservation, error)

GetIPReservation retrieves the IP reservation with the given name.

func (*IPReservationsClient) UpdateIPReservation

func (c *IPReservationsClient) UpdateIPReservation(input *UpdateIPReservationInput) (*IPReservation, error)

UpdateIPReservation updates the IP reservation.

type ImageList

type ImageList struct {
	// The image list entry to be used, by default, when launching instances using this image list
	Default int `json:"default"`

	// A description of this image list.
	Description string `json:"description"`

	// Each machine image in an image list is identified by an image list entry.
	Entries []ImageListEntry `json:"entries"`

	// Fully Qualified Domain Name
	FQDN string `json:"name"`

	// The name of the Image List
	Name string

	// Uniform Resource Identifier
	URI string `json:"uri"`
}

ImageList describes an existing Image List.

type ImageListClient

type ImageListClient struct {
	ResourceClient
}

ImageListClient is a client for the Image List functions of the Compute API.

func (*ImageListClient) CreateImageList

func (c *ImageListClient) CreateImageList(createInput *CreateImageListInput) (*ImageList, error)

CreateImageList creates a new Image List with the given name, key and enabled flag.

func (*ImageListClient) DeleteImageList

func (c *ImageListClient) DeleteImageList(deleteInput *DeleteImageListInput) error

DeleteImageList deletes the Image List with the given name.

func (*ImageListClient) GetImageList

func (c *ImageListClient) GetImageList(getInput *GetImageListInput) (*ImageList, error)

GetImageList retrieves the Image List with the given name.

func (*ImageListClient) UpdateImageList

func (c *ImageListClient) UpdateImageList(updateInput *UpdateImageListInput) (*ImageList, error)

UpdateImageList updates the key and enabled flag of the Image List with the given name.

type ImageListEntriesClient

type ImageListEntriesClient struct {
	ResourceClient
}

ImageListEntriesClient specifies the parameters for an image list entries client

func (*ImageListEntriesClient) CreateImageListEntry

func (c *ImageListEntriesClient) CreateImageListEntry(input *CreateImageListEntryInput) (*ImageListEntryInfo, error)

CreateImageListEntry creates a new Image List Entry from an ImageListEntriesClient and an input struct. Returns a populated Info struct for the Image List Entry, and any errors

func (*ImageListEntriesClient) DeleteImageListEntry

func (c *ImageListEntriesClient) DeleteImageListEntry(input *DeleteImageListEntryInput) error

DeleteImageListEntry deletes the specified image list entry

func (*ImageListEntriesClient) GetImageListEntry

func (c *ImageListEntriesClient) GetImageListEntry(input *GetImageListEntryInput) (*ImageListEntryInfo, error)

GetImageListEntry returns a populated ImageListEntryInfo struct from an input struct

type ImageListEntry

type ImageListEntry struct {
	// User-defined parameters, in JSON format, that can be passed to an instance of this machine image when it is launched.
	Attributes map[string]interface{} `json:"attributes"`

	// Name of the Image List.
	ImageList string `json:"imagelist"`

	// A list of machine images.
	MachineImages []string `json:"machineimages"`

	// Uniform Resource Identifier.
	URI string `json:"uri"`

	// Version number of these Machine Images in the Image List.
	Version int `json:"version"`
}

ImageListEntry details the attributes from an image list entry

type ImageListEntryInfo

type ImageListEntryInfo struct {
	// User-defined parameters, in JSON format, that can be passed to an instance of this machine
	// image when it is launched. This field can be used, for example, to specify the location of
	// a database server and login details. Instance metadata, including user-defined data is available
	// at http://192.0.0.192/ within an instance. See Retrieving User-Defined Instance Attributes in Using
	// Oracle Compute Cloud Service (IaaS).
	Attributes map[string]interface{} `json:"attributes"`
	// Name of the imagelist.
	Name string `json:"imagelist"`
	// A list of machine images.
	MachineImages []string `json:"machineimages"`
	// Uniform Resource Identifier for the Image List Entry
	URI string `json:"uri"`
	// Version number of these machineImages in the imagelist.
	Version int `json:"version"`
}

ImageListEntryInfo contains the exported fields necessary to hold all the information about an Image List Entry

type InstanceDesiredState

type InstanceDesiredState string

InstanceDesiredState specifies the constants that for a desired instance state

const (
	// InstanceDesiredRunning - running
	InstanceDesiredRunning InstanceDesiredState = "running"
	// InstanceDesiredShutdown - shutdown
	InstanceDesiredShutdown InstanceDesiredState = "shutdown"
)

type InstanceInfo

type InstanceInfo struct {
	// The ID for the instance. Set by the SDK based on the request - not the API.
	ID string

	// The availability domain for the instance
	AvailabilityDomain string `json:"availability_domain"`

	// The default domain to use for the hostname and DNS lookups
	Domain string `json:"domain"`

	// The desired state of an instance
	DesiredState InstanceDesiredState `json:"desired_state"`

	// The reason for the instance going to error state, if available.
	ErrorReason string `json:"error_reason"`

	// SSH Server Fingerprint presented by the instance
	Fingerprint string `json:"fingerprint"`

	// Fully Qualified Domain Name
	FQDN string `json:"name"`

	// The hostname for the instance
	Hostname string `json:"hostname"`

	// The format of the image
	ImageFormat string `json:"image_format"`

	// Name of imagelist to be launched.
	ImageList string `json:"imagelist"`

	// IP address of the instance.
	IPAddress string `json:"ip"`

	// A label assigned by the user, specifically for defining inter-instance relationships.
	Label string `json:"label"`

	// Name of this instance, generated by the server.
	Name string

	// A list of strings specifying arbitrary tags on nodes to be matched on placement.
	PlacementRequirements []string `json:"placement_requirements"`

	// The OS platform for the instance.
	Platform string `json:"platform"`

	// The priority at which this instance will be run
	Priority string `json:"priority"`

	// Reference to the QuotaReservation, to be destroyed with the instance
	QuotaReservation string `json:"quota_reservation"`

	// Array of relationship specifications to be satisfied on this instance's placement
	Relationships []string `json:"relationships"`

	// Resolvers to use instead of the default resolvers
	Resolvers []string `json:"resolvers"`

	// Type of instance, as defined on site configuration.
	Shape string `json:"shape"`

	// Site to run on
	Site string `json:"site"`

	// ID's of SSH keys that will be exposed to the instance.
	SSHKeys []string `json:"sshkeys"`

	// The start time of the instance
	StartTime string `json:"start_time"`

	// State of the instance.
	State InstanceState `json:"state"`

	// The Storage Attachment information.
	Storage []StorageAttachment `json:"storage_attachments"`

	// Array of tags associated with the instance.
	Tags []string `json:"tags"`

	// vCable for this instance.
	VCableID string `json:"vcable_id"`

	// IP Address and port of the VNC console for the instance
	VNC string `json:"vnc"`

	// Add PTR records for the hostname
	ReverseDNS bool `json:"reverse_dns"`

	// Specify if the devices created for the instance are virtio devices. If not specified, the default
	// will come from the cluster configuration file
	Virtio bool `json:"virtio,omitempty"`

	// Optional ImageListEntry number. Default will be used if not specified
	Entry int `json:"entry"`

	// Boot order list.
	BootOrder []int `json:"boot_order"`

	// A dictionary of attributes to be made available to the instance.
	// A value with the key "userdata" will be made available in an EC2-compatible manner.
	Attributes map[string]interface{} `json:"attributes"`

	// Mapping of to network specifiers for virtual NICs to be attached to this instance.
	Networking map[string]NetworkingInfo `json:"networking"`
}

InstanceInfo represents the Compute API's view of the state of an instance.

type InstanceState

type InstanceState string

InstanceState specifies the constants that an instance state can be in

const (
	// InstanceRunning - running
	InstanceRunning InstanceState = "running"
	// InstanceInitializing - initializing
	InstanceInitializing InstanceState = "initializing"
	// InstancePreparing - preparing
	InstancePreparing InstanceState = "preparing"
	// InstanceStarting - starting
	InstanceStarting InstanceState = "starting"
	// InstanceStopping - stopping
	InstanceStopping InstanceState = "stopping"
	// InstanceShutdown - shutdown
	InstanceShutdown InstanceState = "shutdown"
	// InstanceQueued - queued
	InstanceQueued InstanceState = "queued"
	// InstanceError - error
	InstanceError InstanceState = "error"
)

type InstancesClient

type InstancesClient struct {
	ResourceClient
}

InstancesClient is a client for the Instance functions of the Compute API.

func (*InstancesClient) CreateInstance

func (c *InstancesClient) CreateInstance(input *CreateInstanceInput) (*InstanceInfo, error)

CreateInstance creates and submits a LaunchPlan to launch a new instance.

func (*InstancesClient) DeleteInstance

func (c *InstancesClient) DeleteInstance(input *DeleteInstanceInput) error

DeleteInstance deletes an instance.

func (*InstancesClient) GetInstance

func (c *InstancesClient) GetInstance(input *GetInstanceInput) (*InstanceInfo, error)

GetInstance retrieves information about an instance.

func (*InstancesClient) GetInstanceFromName added in v0.6.0

func (c *InstancesClient) GetInstanceFromName(input *GetInstanceIDInput) (*InstanceInfo, error)

GetInstanceFromName loops through all the instances and finds the instance for the given name This is needed for orchestration since it doesn't return the id for the instance it creates.

func (*InstancesClient) UpdateInstance

func (c *InstancesClient) UpdateInstance(input *UpdateInstanceInput) (*InstanceInfo, error)

UpdateInstance updates an instance with the specified attributes

func (*InstancesClient) WaitForInstanceDeleted

func (c *InstancesClient) WaitForInstanceDeleted(input fmt.Stringer, pollInterval, timeout time.Duration) error

WaitForInstanceDeleted waits for an instance to be fully deleted.

func (*InstancesClient) WaitForInstanceRunning

func (c *InstancesClient) WaitForInstanceRunning(input *GetInstanceInput, pollInterval, timeout time.Duration) (*InstanceInfo, error)

WaitForInstanceRunning waits for an instance to be completely initialized and available.

func (*InstancesClient) WaitForInstanceShutdown

func (c *InstancesClient) WaitForInstanceShutdown(input *GetInstanceInput, pollInterval, timeout time.Duration) (*InstanceInfo, error)

WaitForInstanceShutdown waits for an instance to be shutdown

type InstancesInfo added in v0.6.0

type InstancesInfo struct {
	Instances []InstanceInfo `json:"result"`
}

InstancesInfo specifies a list of instances

type LaunchPlanInput

type LaunchPlanInput struct {
	// Describes an array of instances which should be launched
	Instances []CreateInstanceInput `json:"instances"`
	// Time to wait between polls to check status
	PollInterval time.Duration `json:"-"`
	// Time to wait for instance boot
	Timeout time.Duration `json:"-"`
}

LaunchPlanInput defines a launch plan, used to launch instances with the supplied InstanceSpec(s)

type LaunchPlanResponse

type LaunchPlanResponse struct {
	// An array of instances which have been launched
	Instances []InstanceInfo `json:"instances"`
}

LaunchPlanResponse details the response recieved when submitting a launchplan

type MachineImage added in v0.6.6

type MachineImage struct {
	// account of the associated Object Storage Classic instance
	Account string `json:"account"`

	// Dictionary of attributes to be made available to the instance
	Attributes map[string]interface{} `json:"attributes"`

	// Last time when this image was audited
	Audited string `json:"audited"`

	// Describing the image
	Description string `json:"description"`

	// Description of the state of the machine image if there is an error
	ErrorReason string `json:"error_reason"`

	// Fully Qualified Domain Name
	FQDN string `json:"name"`

	//  dictionary of hypervisor-specific attributes
	Hypervisor map[string]interface{} `json:"hypervisor"`

	// The format of the image
	ImageFormat string `json:"image_format"`

	// name of the machine image file uploaded to Object Storage Classic
	File string `json:"file"`

	// name of the machine image
	Name string

	// Indicates that the image file is available in Object Storage Classic
	NoUpload bool `json:"no_upload"`

	// The OS platform of the image
	Platform string `json:"platform"`

	// Size values of the image file
	Sizes map[string]interface{} `json:"sizes"`

	// The state of the uploaded machine image
	State string `json:"state"`

	// Uniform Resource Identifier
	URI string `json:"uri"`
}

MachineImage describes an existing Machine Image.

type MachineImagesClient added in v0.1.2

type MachineImagesClient struct {
	ResourceClient
}

MachineImagesClient is a client for the MachineImage functions of the Compute API.

func (*MachineImagesClient) CreateMachineImage added in v0.6.6

func (c *MachineImagesClient) CreateMachineImage(createInput *CreateMachineImageInput) (*MachineImage, error)

CreateMachineImage creates a new Machine Image with the given parameters.

func (*MachineImagesClient) DeleteMachineImage added in v0.1.2

func (c *MachineImagesClient) DeleteMachineImage(deleteInput *DeleteMachineImageInput) error

DeleteMachineImage deletes the MachineImage with the given name.

func (*MachineImagesClient) GetMachineImage added in v0.6.6

func (c *MachineImagesClient) GetMachineImage(getInput *GetMachineImageInput) (*MachineImage, error)

GetMachineImage retrieves the MachineImage with the given name.

type NICModel

type NICModel string

NICModel specifies the constants that a nic model can be in

const (
	// NICDefaultModel - e1000
	NICDefaultModel NICModel = "e1000"
)

type NetworkingInfo

type NetworkingInfo struct {
	// The DNS name for the Shared network (Required)
	// DNS A Record for an IP Network (Optional)
	DNS []string `json:"dns,omitempty"`
	// IP Network only.
	// If you want to associate a static private IP Address,
	// specify that here within the range of the supplied IPNetwork attribute.
	// Optional
	IPAddress string `json:"ip,omitempty"`
	// IP Network only.
	// The name of the IP Network you want to add the instance to.
	// Required
	IPNetwork string `json:"ipnetwork,omitempty"`
	// IP Network only.
	// Set interface as default gateway for all traffic
	// Optional
	IsDefaultGateway bool `json:"is_default_gateway,omitempty"`
	// IP Network only.
	// The hexadecimal MAC Address of the interface
	// Optional
	MACAddress string `json:"address,omitempty"`
	// Shared Network only.
	// The type of NIC used. Must be set to 'e1000'
	// Required
	Model NICModel `json:"model,omitempty"`
	// IP Network and Shared Network
	// The name servers that are sent through DHCP as option 6.
	// You can specify a maximum of eight name server IP addresses per interface.
	// Optional
	NameServers []string `json:"name_servers,omitempty"`
	// The names of an IP Reservation to associate in an IP Network (Optional)
	// Indicates whether a temporary or permanent public IP Address should be assigned
	// in a Shared Network (Required)
	Nat []string `json:"nat,omitempty"`
	// IP Network and Shared Network
	// The search domains that should be sent through DHCP as option 119.
	// You can enter a maximum of eight search domain zones per interface.
	// Optional
	SearchDomains []string `json:"search_domains,omitempty"`
	// Shared Network only.
	// The security lists that you want to add the instance to
	// Required
	SecLists []string `json:"seclists,omitempty"`
	// IP Network Only
	// The name of the vNIC
	// Optional
	Vnic string `json:"vnic,omitempty"`
	// IP Network only.
	// The names of the vNICSets you want to add the interface to.
	// Optional
	VnicSets []string `json:"vnicsets,omitempty"`
}

NetworkingInfo struct of Networking info from a populated instance, or to be used as input to create an instance

type Object added in v0.6.0

type Object struct {
	// The default Oracle Compute Cloud Service account, such as /Compute-acme/default.
	// Optional
	Account string `json:"account,omitempty"`
	// Description of this orchestration
	// Optional
	Description string `json:"description,omitempty"`
	// The desired state of the object
	// Optional
	DesiredState OrchestrationDesiredState `json:"desired_state,omitempty"`
	// Dictionary containing the current state of the object
	Health Health `json:"health,omitempty"`
	// A text string describing the object. Labels can't include spaces. In an orchestration, the label for
	// each object must be unique. Maximum length is 256 characters.
	// Required
	Label string `json:"label"`
	// The four-part name of the object (/Compute-identity_domain/user/orchestration/object). If you don't specify a name
	// for this object, the name is generated automatically. Object names can contain only alphanumeric characters, hyphens,
	// underscores, and periods. Object names are case-sensitive. When you specify the object name, ensure that an object of
	// the same type and with the same name doesn't already exist. If such a object already exists, then another
	// object of the same type and with the same name won't be created and the existing object won't be updated.
	// Optional
	Name string `json:"name,omitempty"`
	// The three-part name (/Compute-identity_domain/user/object) of the orchestration to which the object belongs.
	// Required
	Orchestration string `json:"orchestration"`
	// Specifies whether the object should persist when the orchestration is suspended. Specify one of the following:
	// * true: The object persists when the orchestration is suspended.
	// * false: The object is deleted when the orchestration is suspended.
	// By default, persistent is set to false. It is recommended that you specify true for storage
	// volumes and other critical objects. Persistence applies only when you're suspending an orchestration.
	// When you terminate an orchestration, all the objects defined in it are deleted.
	// Optional
	Persistent bool `json:"persistent,omitempty"`
	// The relationship between the objects that are created by this orchestration. The
	// only supported relationship is depends, indicating that the specified target objects must be created first.
	// Note that when recovering from a failure, the orchestration doesn't consider object relationships.
	// Orchestrations v2 use object references to recover interdependent objects to a healthy state. SeeObject
	// References and Relationships in Using Oracle Compute Cloud Service (IaaS).
	Relationships []Relationship `json:"relationships,omitempty"`
	// The template attribute defines the properties or characteristics of the Oracle Compute Cloud Service object
	// that you want to create, as specified by the type attribute.
	// The fields in the template section vary depending on the specified type. See Orchestration v2 Attributes
	// Specific to Each Object Type in Using Oracle Compute Cloud Service (IaaS) to determine the parameters that are
	// specific to each object type that you want to create.
	// For example, if you want to create a storage volume, the type would be StorageVolume, and the template would include
	// size and bootable. If you want to create an instance, the type would be Instance, and the template would include
	// instance-specific attributes, such as imagelist and shape.
	// Required
	Template interface{} `json:"template"`
	// Specify one of the following object types that you want to create.
	// The only allowed type is Instance
	// Required
	Type OrchestrationType `json:"type"`
	// Version of this object, generated by the server
	// Optional
	Version int `json:"version,omitempty"`
}

Object defines an object inside an orchestration

type Orchestration added in v0.6.0

type Orchestration struct {
	// The default Oracle Compute Cloud Service account, such as /Compute-acme/default.
	Account string `json:"account"`
	// Description of this orchestration
	Description string `json:"description"`
	// The desired_state specified in the orchestration JSON file. A unique identifier for this orchestration.
	DesiredState OrchestrationDesiredState `json:"desired_state"`
	// Unique identifier of this orchestration
	ID string `json:"id"`
	// Fully Qualified Domain Name
	FQDN string `json:"name"`
	// The three-part name of the Orchestration
	Name string
	// List of orchestration objects
	Objects []Object `json:"objects"`
	// Current status of this orchestration
	Status OrchestrationStatus `json:"status"`
	// Strings that describe the orchestration and help you identify it.
	Tags []string `json:"tags"`
	// Time the orchestration was last audited
	TimeAudited string `json:"time_audited"`
	// The time when the orchestration was added to Oracle Compute Cloud Service.
	TimeCreated string `json:"time_created"`
	// The time when the orchestration was last updated in Oracle Compute Cloud Service.
	TimeUpdated string `json:"time_updated"`
	// Unique Resource Identifier
	URI string `json:"uri"`
	// Name of the user who added this orchestration or made the most recent update to this orchestration.
	User string `json:"user"`
	// Version of this orchestration. It is automatically generated by the server.
	Version int `json:"version"`
}

Orchestration describes an existing Orchestration.

type OrchestrationDesiredState added in v0.6.0

type OrchestrationDesiredState string

OrchestrationDesiredState defines the different desired states a orchestration can be in

const (
	// OrchestrationDesiredStateActive - Creates all the orchestration objects defined in the orchestration.
	OrchestrationDesiredStateActive OrchestrationDesiredState = "active"
	// OrchestrationDesiredStateInactive - Adds the orchestration to Oracle Compute Cloud Service, but does not create any of the orchestration
	OrchestrationDesiredStateInactive OrchestrationDesiredState = "inactive"
	// OrchestrationDesiredStateSuspend - Suspends all orchestration objects defined in the orchestration
	OrchestrationDesiredStateSuspend OrchestrationDesiredState = "suspend"
)

type OrchestrationRelationshipType added in v0.6.8

type OrchestrationRelationshipType string

OrchestrationRelationshipType defines the orchestration relationship type for an orchestration

const (
	// OrchestrationRelationshipTypeDepends - the orchestration relationship depends on a resource
	OrchestrationRelationshipTypeDepends OrchestrationRelationshipType = "depends"
)

type OrchestrationStatus added in v0.6.0

type OrchestrationStatus string

OrchestrationStatus defines the different status a orchestration can be in

const (
	// OrchestrationStatusActive - active
	OrchestrationStatusActive OrchestrationStatus = "active"
	// OrchestrationStatusInactive - inactive
	OrchestrationStatusInactive OrchestrationStatus = "inactive"
	// OrchestrationStatusSuspend - suspend
	OrchestrationStatusSuspend OrchestrationStatus = "suspend"
	// OrchestrationStatusActivating - activating
	OrchestrationStatusActivating OrchestrationStatus = "activating"
	// OrchestrationStatusDeleting - deleting
	OrchestrationStatusDeleting OrchestrationStatus = "deleting"
	// OrchestrationStatusError - terminal_error
	OrchestrationStatusError OrchestrationStatus = "terminal_error"
	// OrchestrationStatusStopping - stopping
	OrchestrationStatusStopping OrchestrationStatus = "stopping"
	// OrchestrationStatusSuspending - suspending
	OrchestrationStatusSuspending OrchestrationStatus = "suspending"
	// OrchestrationStatusStarting - starting
	OrchestrationStatusStarting OrchestrationStatus = "starting"
	// OrchestrationStatusDeactivating - deactivating
	OrchestrationStatusDeactivating OrchestrationStatus = "deactivating"
	// OrchestrationStatusSuspended - suspended
	OrchestrationStatusSuspended OrchestrationStatus = "suspended"
)

type OrchestrationType added in v0.6.0

type OrchestrationType string

OrchestrationType defines the type of orchestrations that can be managed

const (
	// OrchestrationTypeInstance - Instance
	OrchestrationTypeInstance OrchestrationType = "Instance"
)

type OrchestrationsClient added in v0.6.0

type OrchestrationsClient struct {
	ResourceClient
}

OrchestrationsClient is a client for the Orchestration functions of the Compute API.

func (*OrchestrationsClient) CreateOrchestration added in v0.6.0

func (c *OrchestrationsClient) CreateOrchestration(input *CreateOrchestrationInput) (*Orchestration, error)

CreateOrchestration creates a new Orchestration with the given name, key and enabled flag.

func (*OrchestrationsClient) DeleteOrchestration added in v0.6.0

func (c *OrchestrationsClient) DeleteOrchestration(input *DeleteOrchestrationInput) error

DeleteOrchestration deletes the Orchestration with the given name.

func (*OrchestrationsClient) GetOrchestration added in v0.6.0

func (c *OrchestrationsClient) GetOrchestration(input *GetOrchestrationInput) (*Orchestration, error)

GetOrchestration retrieves the Orchestration with the given name.

func (*OrchestrationsClient) UpdateOrchestration added in v0.6.0

func (c *OrchestrationsClient) UpdateOrchestration(input *UpdateOrchestrationInput) (*Orchestration, error)

UpdateOrchestration updates the orchestration.

func (*OrchestrationsClient) WaitForOrchestrationDeleted added in v0.6.0

func (c *OrchestrationsClient) WaitForOrchestrationDeleted(input *DeleteOrchestrationInput, pollInterval, timeout time.Duration) error

WaitForOrchestrationDeleted waits for an orchestration to be fully deleted.

func (*OrchestrationsClient) WaitForOrchestrationState added in v0.6.0

func (c *OrchestrationsClient) WaitForOrchestrationState(input *GetOrchestrationInput, pollInterval, timeout time.Duration) (*Orchestration, error)

WaitForOrchestrationState waits for an orchestration to be in the specified state

type Phase1Settings added in v0.14.0

type Phase1Settings struct {
	// Encryption options for IKE. Permissible values are aes128, aes192, aes256.
	Encryption string `json:"encryption,omitempty"`
	// Authentication options for IKE. Permissible values are sha1, sha2_256, and md5.
	Hash string `json:"hash,omitempty"`
	// Diffie-Hellman group for both IKE and ESP. It is applicable for ESP only if PFS is enabled.
	// Permissible values are group5, group14, group22, group23, and group24.
	DHGroup string `json:"dhGroup,omitempty"`
	// IKE Lifetime
	Lifetime int `json:"lifetime,omitempty"`
}

Phase1Settings define the attributes related to Phase 1 Protocol (IKE)

type Phase2Settings added in v0.14.0

type Phase2Settings struct {
	// Encryption options for IKE. Permissible values are aes128, aes192, aes256.
	Encryption string `json:"encryption,omitempty"`
	// Authentication options for IKE. Permissible values are sha1, sha2_256, and md5.
	Hash string `json:"hash,omitempty"`
	// IPSEC Lifetime
	Lifetime int `json:"lifetime,omitempty"`
}

Phase2Settings define the attributes related to Phase 2 Protocol (IPSEC)

type Relationship added in v0.6.8

type Relationship struct {
	// The type of Relationship
	// The only type is depends
	// Required
	Type OrchestrationRelationshipType `json:"type"`
	// What objects the relationship depends on
	// Required
	Targets []string `json:"targets"`
}

Relationship defines the relationship between objects

type ResourceClient

type ResourceClient struct {
	*Client
	ResourceDescription string
	ContainerPath       string
	ResourceRootPath    string
}

ResourceClient is an AuthenticatedClient with some additional information about the resources to be addressed.

type RouteInfo

type RouteInfo struct {
	// Admin distance associated with this route
	AdminDistance int `json:"adminDistance"`
	// Description of the route
	Description string `json:"description"`
	// Fully Qualified Domain Name
	FQDN string `json:"name"`
	// CIDR IPv4 Prefix associated with this route
	IPAddressPrefix string `json:"ipAddressPrefix"`
	// Name of the route
	Name string
	// Name of the VNIC set associated with the route
	NextHopVnicSet string `json:"nextHopVnicSet"`
	// Slice of Tags associated with the route
	Tags []string `json:"tags,omitempty"`
	// Uniform resource identifier associated with the route
	URI string `json:"uri"`
}

RouteInfo details the attributes for a route

type RoutesClient

type RoutesClient struct {
	ResourceClient
}

RoutesClient specifies the attributes of a route client

func (*RoutesClient) CreateRoute

func (c *RoutesClient) CreateRoute(input *CreateRouteInput) (*RouteInfo, error)

CreateRoute creates the requested route

func (*RoutesClient) DeleteRoute

func (c *RoutesClient) DeleteRoute(input *DeleteRouteInput) error

DeleteRoute deletes the specified route

func (*RoutesClient) GetRoute

func (c *RoutesClient) GetRoute(input *GetRouteInput) (*RouteInfo, error)

GetRoute retrieves the specified route

func (*RoutesClient) UpdateRoute

func (c *RoutesClient) UpdateRoute(input *UpdateRouteInput) (*RouteInfo, error)

UpdateRoute updates the specified route

type SSHKey

type SSHKey struct {
	// Indicates whether the key is enabled (true) or disabled.
	Enabled bool `json:"enabled"`
	// Fully Qualified Domain Name
	FQDN string `json:"name"`
	// The SSH public key value.
	Key string `json:"key"`
	// The three-part name of the SSH Key (/Compute-identity_domain/user/object).
	Name string
	// Unique Resource Identifier
	URI string `json:"uri"`
}

SSHKey describes an existing SSH key.

type SSHKeysClient

type SSHKeysClient struct {
	ResourceClient
}

SSHKeysClient is a client for the SSH key functions of the Compute API.

func (*SSHKeysClient) CreateSSHKey

func (c *SSHKeysClient) CreateSSHKey(createInput *CreateSSHKeyInput) (*SSHKey, error)

CreateSSHKey creates a new SSH key with the given name, key and enabled flag.

func (*SSHKeysClient) DeleteSSHKey

func (c *SSHKeysClient) DeleteSSHKey(deleteInput *DeleteSSHKeyInput) error

DeleteSSHKey deletes the SSH key with the given name.

func (*SSHKeysClient) GetSSHKey

func (c *SSHKeysClient) GetSSHKey(getInput *GetSSHKeyInput) (*SSHKey, error)

GetSSHKey retrieves the SSH key with the given name.

func (*SSHKeysClient) UpdateSSHKey

func (c *SSHKeysClient) UpdateSSHKey(updateInput *UpdateSSHKeyInput) (*SSHKey, error)

UpdateSSHKey updates the key and enabled flag of the SSH key with the given name.

type SecRuleInfo

type SecRuleInfo struct {
	// Set this parameter to PERMIT.
	Action string `json:"action"`
	// The name of the security application
	Application string `json:"application"`
	// A description of the sec rule
	Description string `json:"description"`
	// Indicates whether the security rule is enabled
	Disabled bool `json:"disabled"`
	// The name of the destination security list or security IP list.
	DestinationList string `json:"dst_list"`
	// Fully Qualified Domain Name
	FQDN string `json:"name"`
	// The name of the sec rule
	Name string
	// The name of the source security list or security IP list.
	SourceList string `json:"src_list"`
	// Uniform Resource Identifier for the sec rule
	URI string `json:"uri"`
}

SecRuleInfo describes an existing sec rule.

type SecRulesClient

type SecRulesClient struct {
	ResourceClient
}

SecRulesClient is a client for the Sec Rules functions of the Compute API.

func (*SecRulesClient) CreateSecRule

func (c *SecRulesClient) CreateSecRule(createInput *CreateSecRuleInput) (*SecRuleInfo, error)

CreateSecRule creates a new sec rule.

func (*SecRulesClient) DeleteSecRule

func (c *SecRulesClient) DeleteSecRule(deleteInput *DeleteSecRuleInput) error

DeleteSecRule deletes the sec rule with the given name.

func (*SecRulesClient) GetSecRule

func (c *SecRulesClient) GetSecRule(getInput *GetSecRuleInput) (*SecRuleInfo, error)

GetSecRule retrieves the sec rule with the given name.

func (*SecRulesClient) UpdateSecRule

func (c *SecRulesClient) UpdateSecRule(updateInput *UpdateSecRuleInput) (*SecRuleInfo, error)

UpdateSecRule modifies the properties of the sec rule with the given name.

type SecurityApplicationICMPCode

type SecurityApplicationICMPCode string

SecurityApplicationICMPCode defines the constants an icmp code can be

const (
	// Admin - admin
	Admin SecurityApplicationICMPCode = "admin"
	// Df - df
	Df SecurityApplicationICMPCode = "df"
	// Host - host
	Host SecurityApplicationICMPCode = "host"
	// Network - network
	Network SecurityApplicationICMPCode = "network"
	// Port - port
	Port SecurityApplicationICMPCode = "port"
	// Protocol - protocol
	Protocol SecurityApplicationICMPCode = "protocol"
)

type SecurityApplicationICMPType

type SecurityApplicationICMPType string

SecurityApplicationICMPType defines the constants an icmp type can be

const (
	// Echo - echo
	Echo SecurityApplicationICMPType = "echo"
	// Reply - reply
	Reply SecurityApplicationICMPType = "reply"
	// TTL - ttl
	TTL SecurityApplicationICMPType = "ttl"
	// TraceRoute - traceroute
	TraceRoute SecurityApplicationICMPType = "traceroute"
	// Unreachable - unreachable
	Unreachable SecurityApplicationICMPType = "unreachable"
)

type SecurityApplicationInfo

type SecurityApplicationInfo struct {
	// A description of the security application.
	Description string `json:"description"`
	// The TCP or UDP destination port number. This can be a port range, such as 5900-5999 for TCP.
	DPort string `json:"dport"`
	// Fully Qualified Domain Name
	FQDN string `json:"name"`
	// The ICMP code.
	ICMPCode SecurityApplicationICMPCode `json:"icmpcode"`
	// The ICMP type.
	ICMPType SecurityApplicationICMPType `json:"icmptype"`
	// The three-part name of the Security Application (/Compute-identity_domain/user/object).
	Name string
	// The protocol to use.
	Protocol SecurityApplicationProtocol `json:"protocol"`
	// The Uniform Resource Identifier
	URI string `json:"uri"`
}

SecurityApplicationInfo describes an existing security application.

type SecurityApplicationProtocol

type SecurityApplicationProtocol string

SecurityApplicationProtocol defines the constants for a security application protocol

const (
	// All - all
	All SecurityApplicationProtocol = "all"
	// AH - ah
	AH SecurityApplicationProtocol = "ah"
	// ESP - esp
	ESP SecurityApplicationProtocol = "esp"
	// ICMP - icmp
	ICMP SecurityApplicationProtocol = "icmp"
	// ICMPV6 - icmpv6
	ICMPV6 SecurityApplicationProtocol = "icmpv6"
	// IGMP - igmp
	IGMP SecurityApplicationProtocol = "igmp"
	// IPIP - ipip
	IPIP SecurityApplicationProtocol = "ipip"
	// GRE - gre
	GRE SecurityApplicationProtocol = "gre"
	// MPLSIP - mplsip
	MPLSIP SecurityApplicationProtocol = "mplsip"
	// OSPF - ospf
	OSPF SecurityApplicationProtocol = "ospf"
	// PIM - pim
	PIM SecurityApplicationProtocol = "pim"
	// RDP - rdp
	RDP SecurityApplicationProtocol = "rdp"
	// SCTP - sctp
	SCTP SecurityApplicationProtocol = "sctp"
	// TCP - tcp
	TCP SecurityApplicationProtocol = "tcp"
	// UDP - udp
	UDP SecurityApplicationProtocol = "udp"
)

type SecurityApplicationsClient

type SecurityApplicationsClient struct {
	ResourceClient
}

SecurityApplicationsClient is a client for the Security Application functions of the Compute API.

func (*SecurityApplicationsClient) CreateSecurityApplication

CreateSecurityApplication creates a new security application.

func (*SecurityApplicationsClient) DeleteSecurityApplication

func (c *SecurityApplicationsClient) DeleteSecurityApplication(input *DeleteSecurityApplicationInput) error

DeleteSecurityApplication deletes the security application with the given name.

func (*SecurityApplicationsClient) GetSecurityApplication

GetSecurityApplication retrieves the security application with the given name.

type SecurityAssociationInfo

type SecurityAssociationInfo struct {
	// Fully Qualified Domain Name
	FQDN string `json:"name"`
	// The three-part name of the Security Association
	Name string
	// The name of the Security List that you want to associate with the instance.
	SecList string `json:"seclist"`
	// vCable of the instance that you want to associate with the security list.
	VCable string `json:"vcable"`
	// Uniform Resource Identifier
	URI string `json:"uri"`
}

SecurityAssociationInfo describes an existing security association.

type SecurityAssociationsClient

type SecurityAssociationsClient struct {
	ResourceClient
}

SecurityAssociationsClient is a client for the Security Association functions of the Compute API.

func (*SecurityAssociationsClient) CreateSecurityAssociation

func (c *SecurityAssociationsClient) CreateSecurityAssociation(createInput *CreateSecurityAssociationInput) (*SecurityAssociationInfo, error)

CreateSecurityAssociation creates a security association between the given VCable and security list.

func (*SecurityAssociationsClient) DeleteSecurityAssociation

func (c *SecurityAssociationsClient) DeleteSecurityAssociation(deleteInput *DeleteSecurityAssociationInput) error

DeleteSecurityAssociation deletes the security association with the given name.

func (*SecurityAssociationsClient) GetSecurityAssociation

GetSecurityAssociation retrieves the security association with the given name.

type SecurityIPListInfo

type SecurityIPListInfo struct {
	// A description of the security IP list.
	Description string `json:"description"`
	// Fully Qualified Domain Name
	FQDN string `json:"name"`
	// The name of the object
	Name string
	// A comma-separated list of the subnets (in CIDR format) or IPv4 addresses for which you want to create this security IP list.
	SecIPEntries []string `json:"secipentries"`
	// Uniform Resource Identifier
	URI string `json:"uri"`
}

SecurityIPListInfo describes an existing security IP list.

type SecurityIPListsClient

type SecurityIPListsClient struct {
	ResourceClient
}

SecurityIPListsClient is a client for the Security IP List functions of the Compute API.

func (*SecurityIPListsClient) CreateSecurityIPList

func (c *SecurityIPListsClient) CreateSecurityIPList(createInput *CreateSecurityIPListInput) (*SecurityIPListInfo, error)

CreateSecurityIPList creates a security IP list with the given name and entries.

func (*SecurityIPListsClient) DeleteSecurityIPList

func (c *SecurityIPListsClient) DeleteSecurityIPList(deleteInput *DeleteSecurityIPListInput) error

DeleteSecurityIPList deletes the security IP list with the given name.

func (*SecurityIPListsClient) GetSecurityIPList

func (c *SecurityIPListsClient) GetSecurityIPList(getInput *GetSecurityIPListInput) (*SecurityIPListInfo, error)

GetSecurityIPList gets the security IP list with the given name.

func (*SecurityIPListsClient) UpdateSecurityIPList

func (c *SecurityIPListsClient) UpdateSecurityIPList(updateInput *UpdateSecurityIPListInput) (*SecurityIPListInfo, error)

UpdateSecurityIPList modifies the entries in the security IP list with the given name.

type SecurityListInfo

type SecurityListInfo struct {
	// Shows the default account for your identity domain.
	Account string `json:"account"`
	// A description of the security list.
	Description string `json:"description"`
	// Fully Qualified Domain Name
	FQDN string `json:"name"`
	// The name of the security list
	Name string
	// The policy for outbound traffic from the security list.
	OutboundCIDRPolicy SecurityListPolicy `json:"outbound_cidr_policy"`
	// The policy for inbound traffic to the security list
	Policy SecurityListPolicy `json:"policy"`
	// Uniform Resource Identifier
	URI string `json:"uri"`
}

SecurityListInfo describes an existing security list.

type SecurityListPolicy

type SecurityListPolicy string

SecurityListPolicy defines the constants a security list policy can be

const (
	// SecurityListPolicyDeny - deny
	SecurityListPolicyDeny SecurityListPolicy = "deny"
	// SecurityListPolicyReject - reject
	SecurityListPolicyReject SecurityListPolicy = "reject"
	// SecurityListPolicyPermit - permit
	SecurityListPolicyPermit SecurityListPolicy = "permit"
)

type SecurityListsClient

type SecurityListsClient struct {
	ResourceClient
}

SecurityListsClient is a client for the Security List functions of the Compute API.

func (*SecurityListsClient) CreateSecurityList

func (c *SecurityListsClient) CreateSecurityList(createInput *CreateSecurityListInput) (*SecurityListInfo, error)

CreateSecurityList creates a new security list with the given name, policy and outbound CIDR policy.

func (*SecurityListsClient) DeleteSecurityList

func (c *SecurityListsClient) DeleteSecurityList(deleteInput *DeleteSecurityListInput) error

DeleteSecurityList deletes the security list with the given name.

func (*SecurityListsClient) GetSecurityList

func (c *SecurityListsClient) GetSecurityList(getInput *GetSecurityListInput) (*SecurityListInfo, error)

GetSecurityList retrieves the security list with the given name.

func (*SecurityListsClient) UpdateSecurityList

func (c *SecurityListsClient) UpdateSecurityList(updateInput *UpdateSecurityListInput) (*SecurityListInfo, error)

UpdateSecurityList updates the policy and outbound CIDR pol

type SecurityProtocolInfo

type SecurityProtocolInfo struct {
	// List of port numbers or port range strings to match the packet's destination port.
	DstPortSet []string `json:"dstPortSet"`
	// Protocol used in the data portion of the IP datagram.
	IPProtocol string `json:"ipProtocol"`
	// List of port numbers or port range strings to match the packet's source port.
	SrcPortSet []string `json:"srcPortSet"`
	// Fully Qualified Domain Name
	FQDN string `json:"name"`
	// The name of the Security Protocol
	Name string
	// Description of the Security Protocol
	Description string `json:"description"`
	// Slice of tags associated with the Security Protocol
	Tags []string `json:"tags"`
	// Uniform Resource Identifier for the Security Protocol
	URI string `json:"uri"`
}

SecurityProtocolInfo contains the exported fields necessary to hold all the information about an Security Protocol

type SecurityProtocolsClient

type SecurityProtocolsClient struct {
	ResourceClient
}

SecurityProtocolsClient details the security protocols client

func (*SecurityProtocolsClient) CreateSecurityProtocol

func (c *SecurityProtocolsClient) CreateSecurityProtocol(input *CreateSecurityProtocolInput) (*SecurityProtocolInfo, error)

CreateSecurityProtocol creates a new Security Protocol from an SecurityProtocolsClient and an input struct. Returns a populated Info struct for the Security Protocol, and any errors

func (*SecurityProtocolsClient) DeleteSecurityProtocol

func (c *SecurityProtocolsClient) DeleteSecurityProtocol(input *DeleteSecurityProtocolInput) error

DeleteSecurityProtocol deletes the specified security protocol

func (*SecurityProtocolsClient) GetSecurityProtocol

GetSecurityProtocol returns a populated SecurityProtocolInfo struct from an input struct

func (*SecurityProtocolsClient) UpdateSecurityProtocol

func (c *SecurityProtocolsClient) UpdateSecurityProtocol(updateInput *UpdateSecurityProtocolInput) (*SecurityProtocolInfo, error)

UpdateSecurityProtocol update the security protocol

type SecurityRuleClient

type SecurityRuleClient struct {
	ResourceClient
}

SecurityRuleClient defines the security rule client

func (*SecurityRuleClient) CreateSecurityRule

func (c *SecurityRuleClient) CreateSecurityRule(input *CreateSecurityRuleInput) (*SecurityRuleInfo, error)

CreateSecurityRule creates a new Security Rule from an SecurityRuleClient and an input struct. Returns a populated Info struct for the Security Rule, and any errors

func (*SecurityRuleClient) DeleteSecurityRule

func (c *SecurityRuleClient) DeleteSecurityRule(input *DeleteSecurityRuleInput) error

DeleteSecurityRule deletes the specifies security rule

func (*SecurityRuleClient) GetSecurityRule

func (c *SecurityRuleClient) GetSecurityRule(input *GetSecurityRuleInput) (*SecurityRuleInfo, error)

GetSecurityRule returns a populated SecurityRuleInfo struct from an input struct

func (*SecurityRuleClient) UpdateSecurityRule

func (c *SecurityRuleClient) UpdateSecurityRule(updateInput *UpdateSecurityRuleInput) (*SecurityRuleInfo, error)

UpdateSecurityRule modifies the properties of the sec rule with the given name.

type SecurityRuleInfo

type SecurityRuleInfo struct {
	// Name of the ACL that contains this rule.
	ACL string `json:"acl"`
	// Description of the Security Rule
	Description string `json:"description"`
	// List of IP address prefix set names to match the packet's destination IP address.
	DstIPAddressPrefixSets []string `json:"dstIpAddressPrefixSets"`
	// Name of virtual NIC set containing the packet's destination virtual NIC.
	DstVnicSet string `json:"dstVnicSet"`
	// Allows the security rule to be disabled.
	Enabled bool `json:"enabledFlag"`
	// Direction of the flow; Can be "egress" or "ingress".
	FlowDirection string `json:"FlowDirection"`
	// Fully Qualified Domain Name
	FQDN string `json:"name"`
	// The name of the Security Rule
	Name string
	// List of security protocol names to match the packet's protocol and port.
	SecProtocols []string `json:"secProtocols"`
	// List of multipart names of IP address prefix set to match the packet's source IP address.
	SrcIPAddressPrefixSets []string `json:"srcIpAddressPrefixSets"`
	// Name of virtual NIC set containing the packet's source virtual NIC.
	SrcVnicSet string `json:"srcVnicSet"`
	// Slice of tags associated with the Security Rule
	Tags []string `json:"tags"`
	// Uniform Resource Identifier for the Security Rule
	URI string `json:"uri"`
}

SecurityRuleInfo contains the exported fields necessary to hold all the information about a Security Rule

type Snapshot added in v0.1.2

type Snapshot struct {
	// Shows the default account for your identity domain.
	Account string `json:"account"`
	// Timestamp when this request was created.
	CreationTime string `json:"creation_time"`
	// Snapshot of the instance is not taken immediately.
	Delay SnapshotDelay `json:"delay"`
	// A description of the reason this request entered "error" state.
	ErrorReason string `json:"error_reason"`
	// Fully Qualified Domain Name
	FQDN string `json:"name"`
	// Name of the instance
	Instance string `json:"instance"`
	// Name of the machine image generated from the instance snapshot request.
	MachineImage string `json:"machineimage"`
	// Name of the instance snapshot request.
	Name string
	// Not used
	Quota string `json:"quota"`
	// The state of the request.
	State SnapshotState `json:"state"`
	// Uniform Resource Identifier
	URI string `json:"uri"`
}

Snapshot describes an existing Snapshot.

type SnapshotDelay added in v0.1.2

type SnapshotDelay string

SnapshotDelay defines the constant values snapshot delay can be

const (
	// SnapshotDelayShutdown - shutdown
	SnapshotDelayShutdown SnapshotDelay = "shutdown"
)

type SnapshotState added in v0.1.2

type SnapshotState string

SnapshotState defines the constant states a snapshot can be in

const (
	// SnapshotActive - active
	SnapshotActive SnapshotState = "active"
	// SnapshotComplete - complete
	SnapshotComplete SnapshotState = "complete"
	// SnapshotQueued - queued
	SnapshotQueued SnapshotState = "queued"
	// SnapshotError - error
	SnapshotError SnapshotState = "error"
)

type SnapshotsClient added in v0.1.2

type SnapshotsClient struct {
	ResourceClient
}

SnapshotsClient is a client for the Snapshot functions of the Compute API.

func (*SnapshotsClient) CreateSnapshot added in v0.1.2

func (c *SnapshotsClient) CreateSnapshot(input *CreateSnapshotInput) (*Snapshot, error)

CreateSnapshot creates a new Snapshot

func (*SnapshotsClient) DeleteSnapshot added in v0.1.2

func (c *SnapshotsClient) DeleteSnapshot(machineImagesClient *MachineImagesClient, input *DeleteSnapshotInput) error

DeleteSnapshot deletes the Snapshot with the given name. A machine image gets created with the associated snapshot and needs to be deleted as well.

func (*SnapshotsClient) DeleteSnapshotResourceOnly added in v0.6.9

func (c *SnapshotsClient) DeleteSnapshotResourceOnly(input *DeleteSnapshotInput) error

DeleteSnapshotResourceOnly deletes the Snapshot with the given name. The machine image that gets created with the associated snapshot is not deleted by this method.

func (*SnapshotsClient) GetSnapshot added in v0.1.2

func (c *SnapshotsClient) GetSnapshot(getInput *GetSnapshotInput) (*Snapshot, error)

GetSnapshot retrieves the Snapshot with the given name.

func (*SnapshotsClient) WaitForSnapshotComplete added in v0.1.2

func (c *SnapshotsClient) WaitForSnapshotComplete(input *GetSnapshotInput, pollInterval, timeout time.Duration) (*Snapshot, error)

WaitForSnapshotComplete waits for an snapshot to be completely initialized and available.

type StorageAttachment

type StorageAttachment struct {
	// The index number for the volume.
	Index int `json:"index"`

	// The three-part name (/Compute-identity_domain/user/object) of the storage attachment.
	Name string `json:"name"`

	// The three-part name (/Compute-identity_domain/user/object) of the storage volume attached to the instance.
	StorageVolumeName string `json:"storage_volume_name"`
}

StorageAttachment specifies the parameters for a storage attachment

type StorageAttachmentInfo

type StorageAttachmentInfo struct {
	// Fully Qualified Domain Name
	FQDN string `json:"name"`

	// Name of this attachment, generated by the server.
	Name string

	// Index number for the volume. The allowed range is 1-10
	// 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"`

	// Multipart name of the instance attached to the storage volume.
	InstanceName string `json:"instance_name"`

	// Multipart name of the volume attached to the instance.
	StorageVolumeName string `json:"storage_volume_name"`

	// The State of the Storage Attachment
	State StorageAttachmentState `json:"state"`
}

StorageAttachmentInfo describes an existing storage attachment.

type StorageAttachmentInput

type StorageAttachmentInput struct {
	// 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 int `json:"index"`
	// The three-part name (/Compute-identity_domain/user/object) 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"`
}

StorageAttachmentInput specifies the attributes needed to attach a storage attachment

type StorageAttachmentState

type StorageAttachmentState string

StorageAttachmentState defines all the storage attachment states

const (
	// Attaching - attaching
	Attaching StorageAttachmentState = "attaching"
	// Attached - attached
	Attached StorageAttachmentState = "attached"
	// Detaching - detaching
	Detaching StorageAttachmentState = "detaching"
	// Unavailable - unavailable
	Unavailable StorageAttachmentState = "unavailable"
	// Unknown - unkown
	Unknown StorageAttachmentState = "unknown"
)

type StorageAttachmentsClient

type StorageAttachmentsClient struct {
	ResourceClient
}

StorageAttachmentsClient is a client for the Storage Attachment functions of the Compute API.

func (*StorageAttachmentsClient) CreateStorageAttachment

CreateStorageAttachment creates a storage attachment attaching the given volume to the given instance at the given index.

func (*StorageAttachmentsClient) DeleteStorageAttachment

func (c *StorageAttachmentsClient) DeleteStorageAttachment(input *DeleteStorageAttachmentInput) error

DeleteStorageAttachment deletes the storage attachment with the given name.

func (*StorageAttachmentsClient) GetStorageAttachment

GetStorageAttachment retrieves the storage attachment with the given name.

type StorageVolumeClient

type StorageVolumeClient struct {
	ResourceClient
}

StorageVolumeClient is a client for the Storage Volume functions of the Compute API.

func (*StorageVolumeClient) CreateStorageVolume

func (c *StorageVolumeClient) CreateStorageVolume(input *CreateStorageVolumeInput) (*StorageVolumeInfo, error)

CreateStorageVolume uses the given CreateStorageVolumeInput to create a new Storage Volume.

func (*StorageVolumeClient) DeleteStorageVolume

func (c *StorageVolumeClient) DeleteStorageVolume(input *DeleteStorageVolumeInput) error

DeleteStorageVolume deletes the specified storage volume.

func (*StorageVolumeClient) GetStorageVolume

func (c *StorageVolumeClient) GetStorageVolume(input *GetStorageVolumeInput) (*StorageVolumeInfo, error)

GetStorageVolume gets Storage Volume information for the specified storage volume.

func (*StorageVolumeClient) UpdateStorageVolume

func (c *StorageVolumeClient) UpdateStorageVolume(input *UpdateStorageVolumeInput) (*StorageVolumeInfo, error)

UpdateStorageVolume updates the specified storage volume, optionally modifying size, description and tags.

type StorageVolumeInfo

type StorageVolumeInfo struct {
	// Shows the default account for your identity domain.
	Account string `json:"account,omitempty"`

	// The description of the storage volume.
	Description string `json:"description,omitempty"`

	// Fully Qualified Domain Name
	FQDN string `json:"name"`

	// The hypervisor that this volume is compatible with.
	Hypervisor string `json:"hypervisor,omitempty"`

	// Name of machine image to extract onto this volume when created. This information is provided only for bootable storage volumes.
	ImageList string `json:"imagelist,omitempty"`

	// Three-part name of the machine image. This information is available if the volume is a bootable storage volume.
	MachineImage string `json:"machineimage_name,omitempty"`

	// The three-part name of the object (/Compute-identity_domain/user/object).
	Name string

	// The OS platform this volume is compatible with.
	Platform string `json:"platform,omitempty"`

	// The storage-pool property: /oracle/public/storage/latency or /oracle/public/storage/default.
	Properties []string `json:"properties,omitempty"`

	// The size of this storage volume in GB.
	Size string `json:"size"`

	// Name of the parent snapshot from which the storage volume is restored or cloned.
	Snapshot string `json:"snapshot,omitempty"`

	// Account of the parent snapshot from which the storage volume is restored.
	SnapshotAccount string `json:"snapshot_account,omitempty"`

	// Id of the parent snapshot from which the storage volume is restored or cloned.
	SnapshotID string `json:"snapshot_id,omitempty"`

	// TODO: this should become a Constant, if/when we have the values
	// The current state of the storage volume.
	Status string `json:"status,omitempty"`

	// Details about the latest state of the storage volume.
	StatusDetail string `json:"status_detail,omitempty"`

	// It indicates the time that the current view of the storage volume was generated.
	StatusTimestamp string `json:"status_timestamp,omitempty"`

	// The storage pool from which this volume is allocated.
	StoragePool string `json:"storage_pool,omitempty"`

	// Comma-separated strings that tag the storage volume.
	Tags []string `json:"tags,omitempty"`

	// Uniform Resource Identifier
	URI string `json:"uri,omitempty"`

	// true indicates that the storage volume can also be used as a boot disk for an instance.
	// If you set the value to true, then you must specify values for the `ImageList` and `ImageListEntry` fields.
	Bootable bool `json:"bootable,omitempty"`

	// All volumes are managed volumes. Default value is true.
	Managed bool `json:"managed,omitempty"`

	// Boolean field indicating whether this volume can be attached as readonly. If set to False the volume will be attached as read-write.
	ReadOnly bool `json:"readonly,omitempty"`

	// Specific imagelist entry version to extract.
	ImageListEntry int `json:"imagelist_entry,omitempty"`
}

StorageVolumeInfo represents information retrieved from the service about a Storage Volume.

type StorageVolumeKind

type StorageVolumeKind string

StorageVolumeKind defines the kinds of storage volumes that can be managed

const (
	// StorageVolumeKindDefault - "/oracle/public/storage/default"
	StorageVolumeKindDefault StorageVolumeKind = "/oracle/public/storage/default"
	// StorageVolumeKindLatency - "/oracle/public/storage/latency"
	StorageVolumeKindLatency StorageVolumeKind = "/oracle/public/storage/latency"
	// StorageVolumeKindSSD - "/oracle/public/storage/ssd/gpl"
	StorageVolumeKindSSD StorageVolumeKind = "/oracle/public/storage/ssd/gpl"
)

type StorageVolumeSnapshotClient

type StorageVolumeSnapshotClient struct {
	ResourceClient
}

StorageVolumeSnapshotClient is a client for the Storage Volume Snapshot functions of the Compute API.

func (*StorageVolumeSnapshotClient) CreateStorageVolumeSnapshot

CreateStorageVolumeSnapshot creates a snapshot based on the supplied information struct

func (*StorageVolumeSnapshotClient) DeleteStorageVolumeSnapshot

func (c *StorageVolumeSnapshotClient) DeleteStorageVolumeSnapshot(input *DeleteStorageVolumeSnapshotInput) error

DeleteStorageVolumeSnapshot makes an API request to delete a storage volume snapshot

func (*StorageVolumeSnapshotClient) GetStorageVolumeSnapshot

GetStorageVolumeSnapshot makes an API request to populate information on a storage volume snapshot

type StorageVolumeSnapshotInfo

type StorageVolumeSnapshotInfo struct {
	// Account to use for snapshots
	Account string `json:"account"`

	// Description of the snapshot
	Description string `json:"description"`

	// Fully Qualified Domain Name
	FQDN string `json:"name"`

	// The name of the machine image that's used in the boot volume from which this snapshot is taken
	MachineImageName string `json:"machineimage_name"`

	// Name of the snapshot
	Name string

	// String indicating whether the parent volume is bootable or not
	ParentVolumeBootable string `json:"parent_volume_bootable"`

	// Platform the snapshot is compatible with
	Platform string `json:"platform"`

	// String determining whether the snapshot is remote or collocated
	Property string `json:"property"`

	// The size of the snapshot in GB
	Size string `json:"size"`

	// The ID of the snapshot. Generated by the server
	SnapshotID string `json:"snapshot_id"`

	// The timestamp of the storage snapshot
	SnapshotTimestamp string `json:"snapshot_timestamp"`

	// Timestamp for when the operation started
	StartTimestamp string `json:"start_timestamp"`

	// Status of the snapshot
	Status string `json:"status"`

	// Status Detail of the storage snapshot
	StatusDetail string `json:"status_detail"`

	// Indicates the time that the current view of the storage volume snapshot was generated.
	StatusTimestamp string `json:"status_timestamp"`

	// Array of tags for the snapshot
	Tags []string `json:"tags,omitempty"`

	// Uniform Resource Identifier
	URI string `json:"uri"`

	// Name of the parent storage volume for the snapshot
	Volume string `json:"volume"`
}

StorageVolumeSnapshotInfo represents the information retrieved from the service about a storage volume snapshot

type UpdateACLInput

type UpdateACLInput struct {
	// Description of the ACL
	// Optional
	Description string `json:"description"`

	// Enables or disables the ACL. Set to true by default.
	//Set this to false to disable the ACL.
	// Optional
	Enabled bool `json:"enabledFlag"`

	// The name of the ACL to create. Object names can only contain alphanumeric,
	// underscore, dash, and period characters. Names are case-sensitive.
	// Required
	Name string `json:"name"`

	// Strings that you can use to tag the ACL.
	// Optional
	Tags []string `json:"tags"`
}

UpdateACLInput describes a secruity rule to update

type UpdateIPAddressPrefixSetInput

type UpdateIPAddressPrefixSetInput struct {
	// The name of the IP Address Prefix Set to create. Object names can only contain alphanumeric,
	// underscore, dash, and period characters. Names are case-sensitive.
	// Required
	Name string `json:"name"`

	// Description of the IPAddressPrefixSet
	// Optional
	Description string `json:"description"`

	// List of CIDR IPv4 prefixes assigned in the virtual network.
	IPAddressPrefixes []string `json:"ipAddressPrefixes"`

	// String slice of tags to apply to the IP Address Prefix Set object
	// Optional
	Tags []string `json:"tags"`
}

UpdateIPAddressPrefixSetInput defines what to update in a ip address prefix set

type UpdateIPAddressReservationInput

type UpdateIPAddressReservationInput struct {
	// Description of the IP Address Reservation
	// Optional
	Description string `json:"description"`

	// IP Address pool from which to reserve an IP Address.
	// Can be one of the following:
	//
	// 'public-ippool' - When you attach an IP Address from this pool to an instance, you enable
	//                   access between the public Internet and the instance
	// 'cloud-ippool' - When you attach an IP Address from this pool to an instance, the instance
	//                  can communicate privately with other Oracle Cloud Services
	// Optional
	IPAddressPool string `json:"ipAddressPool"`

	// The name of the reservation to create
	// Required
	Name string `json:"name"`

	// Tags to associate with the IP Reservation
	// Optional
	Tags []string `json:"tags"`
}

UpdateIPAddressReservationInput details the parameters to update an IP Address reservation

type UpdateIPNetworkInput

type UpdateIPNetworkInput struct {
	// The name of the IP Network to update. Object names can only contain alphanumeric,
	// underscore, dash, and period characters. Names are case-sensitive.
	// Required
	Name string `json:"name"`

	// Specify the size of the IP Subnet. It is a range of IPv4 addresses assigned in the virtual
	// network, in CIDR address prefix format.
	//	While specifying the IP address prefix take care of the following points:
	//
	//* These IP addresses aren't part of the common pool of Oracle-provided IP addresses used by the shared network.
	//
	//* There's no conflict with the range of IP addresses used in another IP network, the IP addresses used your on-premises network, or with the range of private IP addresses used in the shared network. If IP networks with overlapping IP subnets are linked to an IP exchange, packets going to and from those IP networks are dropped.
	//
	//* The upper limit of the CIDR block size for an IP network is /16.
	//
	//Note: The first IP address of any IP network is reserved for the default gateway, the DHCP server, and the DNS server of that IP network.
	// Required
	IPAddressPrefix string `json:"ipAddressPrefix"`

	//Specify the IP network exchange to which the IP network belongs.
	//You can add an IP network to only one IP network exchange, but an IP network exchange
	//can include multiple IP networks. An IP network exchange enables access between IP networks
	//that have non-overlapping addresses, so that instances on these networks can exchange packets
	//with each other without NAT.
	// Optional
	IPNetworkExchange string `json:"ipNetworkExchange,omitempty"`

	// Description of the IPNetwork
	// Optional
	Description string `json:"description"`

	// Enable public internet access using NAPT for VNICs without any public IP reservation
	// Optional
	PublicNaptEnabled bool `json:"publicNaptEnabledFlag"`

	// String slice of tags to apply to the IP Network object
	// Optional
	Tags []string `json:"tags"`
}

UpdateIPNetworkInput details the attributes needed to update an ip network

type UpdateIPReservationInput

type UpdateIPReservationInput struct {
	// The name of the object
	// If you don't specify a name for this object, then the name is generated automatically.
	// Object names can contain only alphanumeric characters, hyphens, underscores, and periods.
	// Object names are case-sensitive.
	// Required
	Name string `json:"name"`
	// Pool of public IP addresses.
	// Required
	ParentPool IPReservationPool `json:"parentpool"`
	// Is the IP Reservation Persistent (i.e. static) or not (i.e. Dynamic)?
	// Required
	Permanent bool `json:"permanent"`
	// A comma-separated list of strings which helps you to identify IP reservations.
	// Optional
	Tags []string `json:"tags"`
}

UpdateIPReservationInput defines an IP Reservation to be updated

type UpdateImageListInput

type UpdateImageListInput struct {
	// The image list entry to be used, by default, when launching instances using this image list.
	// If you don't specify this value, it is set to 1.
	// Optional
	Default int `json:"default"`

	// A description of this image list.
	// Required
	Description string `json:"description"`

	// The name of the Image List
	// Object names can contain only alphanumeric characters, hyphens, underscores, and periods. Object names are case-sensitive.
	// Required
	Name string `json:"name"`
}

UpdateImageListInput defines an Image List to be updated

type UpdateInstanceInput

type UpdateInstanceInput struct {
	// Name of this instance, generated by the server.
	// Required
	Name string `json:"name"`
	// The desired state of the opc instance. Can only be `running` or `shutdown`
	// Omits if empty.
	// Optional
	DesiredState InstanceDesiredState `json:"desired_state,omitempty"`
	// The ID of the instance
	// Required
	ID string `json:"-"`
	// A list of tags to be supplied to the instance
	// Optional
	Tags []string `json:"tags,omitempty"`
	// Time to wait between polls for instance state
	PollInterval time.Duration `json:"-"`
	// Time to wait for instance to be ready, or shutdown depending on desired state
	Timeout time.Duration `json:"-"`
}

UpdateInstanceInput specifies the parameters needed to update an instance

func (*UpdateInstanceInput) String

func (g *UpdateInstanceInput) String() string

type UpdateOrchestrationInput added in v0.6.0

type UpdateOrchestrationInput struct {
	// The default Oracle Compute Cloud Service account, such as /Compute-acme/default.
	// Optional
	Account string `json:"account,omitempty"`
	// Description of this orchestration
	// Optional
	Description string `json:"description,omitempty"`
	// Specify the desired state of this orchestration: active, inactive, or suspend.
	// You can manage the state of the orchestration objects by changing the desired state of the orchestration.
	// * active: Creates all the orchestration objects defined in the orchestration.
	// * inactive: Adds the orchestration to Oracle Compute Cloud Service, but does not create any of the orchestration
	// objects defined in the orchestration.
	// Required
	DesiredState OrchestrationDesiredState `json:"desired_state"`
	// The three-part name of the Orchestration (/Compute-identity_domain/user/object).
	// Object names can contain only alphanumeric characters, hyphens, underscores, and periods. Object names are case-sensitive.
	// Required
	Name string `json:"name"`
	// The list of objects in the orchestration. An object is the primary building block of an orchestration.
	// An orchestration can contain up to 100 objects.
	// Required
	Objects []Object `json:"objects"`
	// Strings that describe the orchestration and help you identify it.
	Tags []string `json:"tags,omitempty"`
	// Version of this orchestration. It is automatically generated by the server.
	Version int `json:"version,omitempty"`
	// Time to wait between polls to check status
	PollInterval time.Duration `json:"-"`
	// Time to wait for an orchestration to be ready
	Timeout time.Duration `json:"-"`
}

UpdateOrchestrationInput defines an Orchestration to be updated

type UpdateRouteInput

type UpdateRouteInput struct {
	// Specify 0,1, or 2 as the route's administrative distance.
	// If you do not specify a value, the default value is 0.
	// 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.
	// Optional
	AdminDistance int `json:"adminDistance"`
	// Description of the route
	// Optional
	Description string `json:"description"`
	// The IPv4 address prefix in CIDR format, of the external network (external to the vNIC set)
	// from which you want to route traffic
	// Required
	IPAddressPrefix string `json:"ipAddressPrefix"`
	// Name of the route.
	// Names can only contain alphanumeric, underscore, dash, and period characters. Case-sensitive
	// Required
	Name string `json:"name"`
	// 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
	// Required
	NextHopVnicSet string `json:"nextHopVnicSet"`
	// Slice of tags to be associated with the route
	// Optional
	Tags []string `json:"tags"`
}

UpdateRouteInput details the attributes needed to update a route

type UpdateSSHKeyInput

type UpdateSSHKeyInput struct {
	// The three-part name of the object (/Compute-identity_domain/user/object).
	Name string `json:"name"`
	// The SSH public key value.
	// Required
	Key string `json:"key"`
	// Indicates whether the key must be enabled (default) or disabled. Note that disabled keys cannot be associated with instances.
	// To explicitly enable the key, specify true. To disable the key, specify false.
	// Optional
	// TODO/NOTE: isn't this required?
	Enabled bool `json:"enabled"`
}

UpdateSSHKeyInput defines an SSH key to be updated

type UpdateSecRuleInput

type UpdateSecRuleInput struct {
	// Set this parameter to PERMIT.
	// Required
	Action string `json:"action"`

	// The name of the security application for user-defined or predefined security applications.
	// Required
	Application string `json:"application"`

	// Description of the IP Network
	// Optional
	Description string `json:"description"`

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

	// The name of the destination security list or security IP list.
	//
	// You must use the prefix seclist: or seciplist: to identify the list type.
	//
	// 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.
	// Required
	DestinationList string `json:"dst_list"`

	// The name of the Sec Rule to create. Object names can only contain alphanumeric,
	// underscore, dash, and period characters. Names are case-sensitive.
	// Required
	Name string `json:"name"`

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

UpdateSecRuleInput describes a secruity rule to update

type UpdateSecurityIPListInput

type UpdateSecurityIPListInput struct {
	// A description of the security IP list.
	// Optional
	Description string `json:"description"`
	// The three-part name of the object (/Compute-identity_domain/user/object).
	// Required
	Name string `json:"name"`
	// A comma-separated list of the subnets (in CIDR format) or IPv4 addresses for which you want to create this security IP list.
	// Required
	SecIPEntries []string `json:"secipentries"`
}

UpdateSecurityIPListInput describes the security ip list to update

type UpdateSecurityListInput

type UpdateSecurityListInput struct {
	// A description of the security list.
	// Optional
	Description string `json:"description"`
	// The three-part name of the Security List (/Compute-identity_domain/user/object).
	// Required
	Name string `json:"name"`
	// The policy for outbound traffic from the security list.
	// Optional (defaults to `permit`)
	OutboundCIDRPolicy SecurityListPolicy `json:"outbound_cidr_policy"`
	// The policy for inbound traffic to the security list.
	// Optional (defaults to `deny`)
	Policy SecurityListPolicy `json:"policy"`
}

UpdateSecurityListInput defines what to update in a security list

type UpdateSecurityProtocolInput

type UpdateSecurityProtocolInput struct {
	// The name of the Security Protocol to create. Object names can only contain alphanumeric,
	// underscore, dash, and period characters. Names are case-sensitive.
	// Required
	Name string `json:"name"`

	// Description of the SecurityProtocol
	// Optional
	Description string `json:"description"`

	// 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"`

	// 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 string `json:"ipProtocol"`

	// Enter 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"`

	// String slice of tags to apply to the Security Protocol object
	// Optional
	Tags []string `json:"tags"`
}

UpdateSecurityProtocolInput defines what to update in a security protocol

type UpdateSecurityRuleInput

type UpdateSecurityRuleInput struct {
	//Select the name of the access control list (ACL) that you want to add this
	// security rule to. Security rules are applied to vNIC sets by using ACLs.
	// Optional
	ACL string `json:"acl,omitempty"`

	// Description of the Security Rule
	// Optional
	Description string `json:"description"`

	// A list of IP address prefix sets to which you want to permit traffic.
	// Only packets to IP addresses in the specified IP address prefix sets are permitted.
	// When no destination IP address prefix sets are specified, traffic to any
	// IP address is permitted.
	// Optional
	DstIPAddressPrefixSets []string `json:"dstIpAddressPrefixSets"`

	// The vNICset to which you want to permit traffic. Only packets to vNICs in the
	// specified vNICset are permitted. When no destination vNICset is specified, traffic
	// to any vNIC is permitted.
	// Optional
	DstVnicSet string `json:"dstVnicSet,omitempty"`

	// Allows the security rule to be enabled or disabled. This parameter is set to
	// true by default. Specify false to disable the security rule.
	// Optional
	Enabled bool `json:"enabledFlag"`

	// Specify the direction of flow of traffic, which is relative to the instances,
	// for this security rule. Allowed values are ingress or egress.
	// An ingress packet is a packet received by a virtual NIC, for example from
	// another virtual NIC or from the public Internet.
	// An egress packet is a packet sent by a virtual NIC, for example to another
	// virtual NIC or to the public Internet.
	// Required
	FlowDirection string `json:"flowDirection"`

	// The name of the Security Rule
	// Object names can contain only alphanumeric characters, hyphens, underscores, and periods.
	// Object names are case-sensitive. When you specify the object name, ensure that an object
	// of the same type and with the same name doesn't already exist.
	// If such an object already exists, another object of the same type and with the same name won't
	// be created and the existing object won't be updated.
	// Required
	Name string `json:"name"`

	// A list of security protocols for which you want to permit traffic. Only packets that
	// match the specified protocols and ports are permitted. When no security protocols are
	// specified, traffic using any protocol over any port is permitted.
	// Optional
	SecProtocols []string `json:"secProtocols"`

	// A list of IP address prefix sets from which you want to permit traffic. Only packets
	// from IP addresses in the specified IP address prefix sets are permitted. When no source
	// IP address prefix sets are specified, traffic from any IP address is permitted.
	// Optional
	SrcIPAddressPrefixSets []string `json:"srcIpAddressPrefixSets"`

	// The vNICset from which you want to permit traffic. Only packets from vNICs in the
	// specified vNICset are permitted. When no source vNICset is specified, traffic from any
	// vNIC is permitted.
	// Optional
	SrcVnicSet string `json:"srcVnicSet,omitempty"`

	// Strings that you can use to tag the security rule.
	// Optional
	Tags []string `json:"tags"`
}

UpdateSecurityRuleInput describes a secruity rule to update

type UpdateStorageVolumeInput

type UpdateStorageVolumeInput struct {
	// The description of the storage volume.
	Description string `json:"description,omitempty"`

	// Name of machine image to extract onto this volume when created. This information is provided only for bootable storage volumes.
	ImageList string `json:"imagelist,omitempty"`

	// Specific imagelist entry version to extract.
	ImageListEntry int `json:"imagelist_entry,omitempty"`

	// The three-part name of the object (/Compute-identity_domain/user/object).
	Name string `json:"name"`

	// The storage-pool property: /oracle/public/storage/latency or /oracle/public/storage/default.
	Properties []string `json:"properties,omitempty"`

	// The size of this storage volume in GB.
	Size string `json:"size"`

	// Name of the parent snapshot from which the storage volume is restored or cloned.
	Snapshot string `json:"snapshot,omitempty"`

	// Account of the parent snapshot from which the storage volume is restored.
	SnapshotAccount string `json:"snapshot_account,omitempty"`

	// Id of the parent snapshot from which the storage volume is restored or cloned.
	SnapshotID string `json:"snapshot_id,omitempty"`

	// Comma-separated strings that tag the storage volume.
	Tags []string `json:"tags,omitempty"`

	// Time to wait between polling storage volume status
	PollInterval time.Duration `json:"-"`

	// Time to wait for storage volume ready
	Timeout time.Duration `json:"-"`
}

UpdateStorageVolumeInput represents the body of an API request to update a Storage Volume.

type UpdateVPNEndpointV2Input added in v0.14.0

type UpdateVPNEndpointV2Input struct {
	// 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.
	// Required
	CustomerVPNGateway string `json:"customer_vpn_gateway"`
	// Description of the VPNGatewayV2
	Description string `json:"description,omitempty"`
	// Enable/Disable the tunnel
	// Optional
	Enabled bool `json:"enabled"`
	// The Internet Key Exchange (IKE) ID. If you don't specify a value, the default value is
	// the public IP address of the cloud gateway. You can specify either an alternative IP address,
	// or any text string that you want to use as the IKE ID. If you specify a text string, you must
	// prefix the string with @. For example, if you want to specify the text IKEID-for-VPN1, specify
	// @IKEID-for-VPN1 as the value in request body. If you specify an IP address, don't prefix it with @.
	// The IKE ID is case sensitive and can contain a maximum of 255 ASCII alphanumeric characters
	// including special characters, period (.), hyphen (-), and underscore (_). The IKE ID can't contain
	// embedded space characters.
	// Note: If you specify the IKE ID, ensure that you specify the Peer ID type as Domain Name on the
	// third-party device in your data center. Other Peer ID types, such as email address, firewall
	// identifier or key identifier, aren't supported.
	// Optional
	IKEIdentifier string `json:"ikeIdentifier"`
	// Specify the name of the IP network
	// which you want to create the cloud gateway. When you send a request to create a VPN connection,
	// a cloud gateway is created and this is assigned an available IP address from the IP network that
	// you specify. So, the cloud gateway is directly connected to the IP network that you specify.
	// You can only specify a single IP network. All other IP networks with are connected to the
	// specified IP network through an IP network exchange are discovered and added automatically to
	// the VPN connection.
	// Required
	IPNetwork string `json:"ipNetwork"`
	// The name of the VPN Endpoint V2 to create. Object names can only contain alphanumeric,
	// underscore, dash, and period characters. Names are case-sensitive.
	// Required
	Name string `json:"name"`
	// This is enabled (set to true) by default. If your third-party device supports Perfect Forward
	// Secrecy (PFS), set this parameter to true to require PFS.
	// Optional. Default true
	PFSFlag bool `json:"pfsFlag"`
	// Settings for Phase 1 of protocol (IKE).
	// Optional
	Phase1Settings *Phase1Settings `json:"phase1Settings"`
	// Settings for Phase 2 of protocol (IPSEC).
	// Optional
	Phase2Settings *Phase2Settings `json:"phase2Settings"`
	// Pre-shared VPN key. 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.
	// Required.
	PSK string `json:"psk"`
	// Specify 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.
	// Required
	ReachableRoutes []string `json:"reachable_routes"`
	// Array of tags
	Tags []string `json:"tags"`
	// Comma-separated list of vNIC sets. Traffic is allowed to and from these vNIC sets to the
	// cloud gateway's vNIC set.
	// Required
	VNICSets []string `json:"vnicSets"`
	// Time to wait between polls to check status
	PollInterval time.Duration `json:"-"`
	// Time to wait for an vpn endoint v2 to be ready
	Timeout time.Duration `json:"-"`
}

UpdateVPNEndpointV2Input defines what to update in a VPN Endpoint V2 Only PSK and ReachableRoutes are updatable

type UpdateVirtualNICSetInput

type UpdateVirtualNICSetInput struct {
	// List of ACLs applied to the VNICs in the set.
	// Optional
	AppliedACLs []string `json:"appliedAcls"`
	// Description of the object.
	// Optional
	Description string `json:"description"`
	// The three-part name (/Compute-identity_domain/user/object) of the virtual NIC set.
	// Object names can contain only alphanumeric, underscore (_), dash (-), and period (.) characters. Object names are case-sensitive.
	// Required
	Name string `json:"name"`
	// Tags associated with this VNIC set.
	// Optional
	Tags []string `json:"tags"`
	// List of VNICs associated with this VNIC set.
	// Optional
	VirtualNICs []string `json:"vnics"`
}

UpdateVirtualNICSetInput specifies the information that will be updated in the virtual nic set

type VPNEndpointLifeCycleState added in v0.14.0

type VPNEndpointLifeCycleState string

VPNEndpointLifeCycleState defines the different lifecycle states a VPN Endpoint can be in

const (
	// VPNEndpointLifeCycleStateProvisioning - the endpoint is in a provisioning state
	VPNEndpointLifeCycleStateProvisioning VPNEndpointLifeCycleState = "provisioning"
	// VPNEndpointLifeCycleStateReady - the endpoint is in a ready state
	VPNEndpointLifeCycleStateReady VPNEndpointLifeCycleState = "ready"
	// VPNEndpointLifeCycleStateDeleting - the endpoint is in a ready state
	VPNEndpointLifeCycleStateDeleting VPNEndpointLifeCycleState = "deleting"
	// VPNEndpointLifeCycleStateError - the endpoint is in a error state
	VPNEndpointLifeCycleStateError VPNEndpointLifeCycleState = "error"
	// VPNEndpointLifeCycleStateUpdating - the endpoint is in a updating state
	VPNEndpointLifeCycleStateUpdating VPNEndpointLifeCycleState = "updating"
)

type VPNEndpointTunnelStatus added in v0.14.0

type VPNEndpointTunnelStatus string

VPNEndpointTunnelStatus defines the different statuses a VPN Endpoint tunnel can be in

const (
	// VPNEndpointTunnelStatusPending - the tunnel is in a pending state
	VPNEndpointTunnelStatusPending VPNEndpointTunnelStatus = "PENDING"
	// VPNEndpointTunnelStatusUp - the tunnel is in a up state
	VPNEndpointTunnelStatusUp VPNEndpointTunnelStatus = "UP"
	// VPNEndpointTunnelStatusDown - the tunnel is in a down state
	VPNEndpointTunnelStatusDown VPNEndpointTunnelStatus = "DOWN"
	// VPNEndpointTunnelStatusError - the tunnel is in a error state
	VPNEndpointTunnelStatusError VPNEndpointTunnelStatus = "ERROR"
)

type VPNEndpointV2Info added in v0.14.0

type VPNEndpointV2Info struct {
	// IP address of the VPN gateway in your data center through which you want
	// to connect to the Oracle Cloud VPN gateway.
	CustomerVPNGateway string `json:"customer_vpn_gateway"`
	// Whether the tunnel is enabled or disabled
	// Optional
	Enabled bool `json:"enabled"`
	// The Internet Key Exchange (IKE) ID that you have specified. The default
	// value is the public IP address of the cloud gateway.
	IKEIdentifier string `json:"ikeIdentifier"`
	// The name of the IP network on which the cloud gateway is created by VPNaaS.
	IPNetwork string `json:"ipNetwork"`
	// The name of the VPN Endpoint V2
	Name string `json:"name"`
	// The lifecycle state the VPNEndpointV2 is in
	LifeCycleState VPNEndpointLifeCycleState `json:"lifecycleState"`
	// Local Gateway IP Address
	LocalGatewayIPAddress string `json:"localGatewayAddress"`
	// Local Gateway Private IP Address
	LocalGatewayPrivateIPAddress string `json:"localGatewayPrivateIpAddress"`
	// Indicates whether Perfect Forward Secrecy (PFS) is required and your third-party device supports PFS.
	PFSFlag bool `json:"pfsFlag"`
	// Settings for Phase 1 of protocol (IKE).
	Phase1Settings Phase1Settings `json:"phase1Settings"`
	// Settings for Phase 2 of protocol (IPSEC).
	Phase2Settings Phase2Settings `json:"phase2Settings"`
	// The pre-shared VPN key.
	PSK string `json:"psk"`
	// List of routes (CIDR prefixes) that are reachable through this VPN tunnel.
	ReachableRoutes []string `json:"reachable_routes"`
	// Current status of the tunnel. The tunnel can be in one of the following states:
	// PENDING: indicates that your VPN connection is being set up.
	// UP: indicates that your VPN connection is established.
	// DOWN: indicates that your VPN connection is down.
	// ERROR: indicates that your VPN connection is in the error state.
	TunnelStatus VPNEndpointTunnelStatus `json:"tunnelStatus"`
	// Uniform Resource Identifier for the VPN Endpoint V2
	URI string `json:"uri"`
	// Comma-separated list of vNIC sets. Traffic is allowed to and
	// from these vNIC sets to the cloud gateway's vNIC set.
	VNICSets []string `json:"vnicSets"`
}

VPNEndpointV2Info contains the exported fields necessary to hold all the information about an VPN Endpoint V2

type VPNEndpointV2sClient added in v0.14.0

type VPNEndpointV2sClient struct {
	ResourceClient
}

VPNEndpointV2sClient returns a VPNEndpointV2 client

func (*VPNEndpointV2sClient) CreateVPNEndpointV2 added in v0.14.0

func (c *VPNEndpointV2sClient) CreateVPNEndpointV2(input *CreateVPNEndpointV2Input) (*VPNEndpointV2Info, error)

CreateVPNEndpointV2 creates a new VPN Endpoint V2 from an VPNEndpointV2sClient and an input struct. Returns a populated Info struct for the VPN Endpoint V2, and any errors

func (*VPNEndpointV2sClient) DeleteVPNEndpointV2 added in v0.14.0

func (c *VPNEndpointV2sClient) DeleteVPNEndpointV2(input *DeleteVPNEndpointV2Input) error

DeleteVPNEndpointV2 deletes the specified vpn endpoint v2

func (*VPNEndpointV2sClient) GetVPNEndpointV2 added in v0.14.0

func (c *VPNEndpointV2sClient) GetVPNEndpointV2(input *GetVPNEndpointV2Input) (*VPNEndpointV2Info, error)

GetVPNEndpointV2 returns a populated VPNEndpointV2Info struct from an input struct

func (*VPNEndpointV2sClient) UpdateVPNEndpointV2 added in v0.14.0

func (c *VPNEndpointV2sClient) UpdateVPNEndpointV2(updateInput *UpdateVPNEndpointV2Input) (*VPNEndpointV2Info, error)

UpdateVPNEndpointV2 update the VPN Endpoint V2

func (*VPNEndpointV2sClient) WaitForVPNEndpointV2Deleted added in v0.14.0

func (c *VPNEndpointV2sClient) WaitForVPNEndpointV2Deleted(input *DeleteVPNEndpointV2Input, pollInterval, timeout time.Duration) error

WaitForVPNEndpointV2Deleted waits for an VPNEndpointV2to be fully deleted.

func (*VPNEndpointV2sClient) WaitForVPNEndpointV2Ready added in v0.14.0

func (c *VPNEndpointV2sClient) WaitForVPNEndpointV2Ready(input *GetVPNEndpointV2Input, pollInterval, timeout time.Duration) (*VPNEndpointV2Info, error)

WaitForVPNEndpointV2Ready waits for an vpn endpoint to be in an up or down state

type VirtNICSetsClient

type VirtNICSetsClient struct {
	ResourceClient
}

VirtNICSetsClient defines a virtual set nic client

func (*VirtNICSetsClient) CreateVirtualNICSet

func (c *VirtNICSetsClient) CreateVirtualNICSet(input *CreateVirtualNICSetInput) (*VirtualNICSet, error)

CreateVirtualNICSet creates a new virtual nic set

func (*VirtNICSetsClient) DeleteVirtualNICSet

func (c *VirtNICSetsClient) DeleteVirtualNICSet(input *DeleteVirtualNICSetInput) error

DeleteVirtualNICSet deletes the specified virtual nic set

func (*VirtNICSetsClient) GetVirtualNICSet

func (c *VirtNICSetsClient) GetVirtualNICSet(input *GetVirtualNICSetInput) (*VirtualNICSet, error)

GetVirtualNICSet retrieves the specified virtual nic set

func (*VirtNICSetsClient) UpdateVirtualNICSet

func (c *VirtNICSetsClient) UpdateVirtualNICSet(input *UpdateVirtualNICSetInput) (*VirtualNICSet, error)

UpdateVirtualNICSet updates the specified virtual nic set

type VirtNICsClient

type VirtNICsClient struct {
	ResourceClient
}

VirtNICsClient defines a vritual nics client

func (*VirtNICsClient) GetVirtualNIC

func (c *VirtNICsClient) GetVirtualNIC(input *GetVirtualNICInput) (*VirtualNIC, error)

GetVirtualNIC returns the specified virtual nic

type VirtualNIC

type VirtualNIC struct {
	// Description of the object.
	Description string `json:"description"`
	// Fully Qualified Domain Name
	FQDN string `json:"name"`
	// MAC address of this VNIC.
	MACAddress string `json:"macAddress"`
	// The three-part name (/Compute-identity_domain/user/object) of the Virtual NIC.
	Name string
	// Tags associated with the object.
	Tags []string `json:"tags"`
	// True if the VNIC is of type "transit".
	TransitFlag bool `json:"transitFlag"`
	// Uniform Resource Identifier
	URI string `json:"uri"`
}

VirtualNIC defines the attributes in a virtual nic

type VirtualNICSet

type VirtualNICSet struct {
	// List of ACLs applied to the VNICs in the set.
	AppliedACLs []string `json:"appliedAcls"`
	// Description of the VNIC Set.
	Description string `json:"description"`
	// Fully Qualified Domain Name
	FQDN string `json:"name"`
	// Name of the VNIC set.
	Name string
	// The three-part name (/Compute-identity_domain/user/object) of the virtual NIC set.
	Tags []string `json:"tags"`
	// Uniform Resource Identifier
	URI string `json:"uri"`
	// List of VNICs associated with this VNIC set.
	VirtualNICs []string `json:"vnics"`
}

VirtualNICSet describes an existing virtual nic set

Jump to

Keyboard shortcuts

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