compute

package
v0.5.1 Latest Latest
Warning

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

Go to latest
Published: Oct 5, 2017 License: MPL-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ACLDescription   = "acl"
	ACLContainerPath = "/network/v1/acl/"
	ACLResourcePath  = "/network/v1/acl"
)
View Source
const (
	ImageListDescription   = "Image List"
	ImageListContainerPath = "/imagelist/"
	ImageListResourcePath  = "/imagelist"
)
View Source
const (
	ImageListEntryDescription   = "image list entry"
	ImageListEntryContainerPath = "/imagelist"
	ImageListEntryResourcePath  = "/imagelist"
)
View Source
const (
	IPAddressAssociationDescription   = "ip address association"
	IPAddressAssociationContainerPath = "/network/v1/ipassociation/"
	IPAddressAssociationResourcePath  = "/network/v1/ipassociation"
)
View Source
const (
	IPAddressPrefixSetDescription   = "ip address prefix set"
	IPAddressPrefixSetContainerPath = "/network/v1/ipaddressprefixset/"
	IPAddressPrefixSetResourcePath  = "/network/v1/ipaddressprefixset"
)
View Source
const (
	IPAddressReservationDescription   = "IP Address Reservation"
	IPAddressReservationContainerPath = "/network/v1/ipreservation/"
	IPAddressReservationResourcePath  = "/network/v1/ipreservation"
	IPAddressReservationQualifier     = "/oracle/public"
)
View Source
const (
	PublicIPAddressPool  = "public-ippool"
	PrivateIPAddressPool = "cloud-ippool"
)
View Source
const (
	IPNetworkExchangeDescription   = "ip network exchange"
	IPNetworkExchangeContainerPath = "/network/v1/ipnetworkexchange/"
	IPNetworkExchangeResourcePath  = "/network/v1/ipnetworkexchange"
)
View Source
const (
	IPNetworkDescription   = "ip network"
	IPNetworkContainerPath = "/network/v1/ipnetwork/"
	IPNetworkResourcePath  = "/network/v1/ipnetwork"
)
View Source
const (
	IPReservationDesc          = "ip reservation"
	IPReservationContainerPath = "/ip/reservation/"
	IPReservataionResourcePath = "/ip/reservation"
)
View Source
const (
	RoutesDescription   = "IP Network Route"
	RoutesContainerPath = "/network/v1/route/"
	RoutesResourcePath  = "/network/v1/route"
)
View Source
const (
	SecurityProtocolDescription   = "security protocol"
	SecurityProtocolContainerPath = "/network/v1/secprotocol/"
	SecurityProtocolResourcePath  = "/network/v1/secprotocol"
)
View Source
const (
	SecurityRuleDescription   = "security rules"
	SecurityRuleContainerPath = "/network/v1/secrule/"
	SecurityRuleResourcePath  = "/network/v1/secrule"
)
View Source
const (
	StorageVolumeSnapshotDescription   = "storage volume snapshot"
	StorageVolumeSnapshotContainerPath = "/storage/snapshot/"
	StorageVolumeSnapshotResourcePath  = "/storage/snapshot"

	WaitForSnapshotCreateTimeout = time.Duration(2400 * time.Second)
	WaitForSnapshotDeleteTimeout = time.Duration(1500 * time.Second)

	// Collocated Snapshot Property
	SnapshotPropertyCollocated = "/oracle/private/storage/snapshot/collocated"
)
View Source
const CMP_ACME = "/Compute-%s"
View Source
const CMP_QUALIFIED_NAME = "%s/%s"
View Source
const CMP_USERNAME = "/Compute-%s/%s"
View Source
const ReservationIPPrefix = "network/v1/ipreservation"
View Source
const ReservationPrefix = "ipreservation"
View Source
const WaitForInstanceDeleteTimeout = time.Duration(3600 * time.Second)
View Source
const WaitForInstanceReadyTimeout = time.Duration(3600 * time.Second)
View Source
const WaitForSnapshotCompleteTimeout = time.Duration(600 * time.Second)
View Source
const WaitForVolumeAttachmentDeleteTimeout = time.Duration(30 * time.Second)
View Source
const WaitForVolumeAttachmentReadyTimeout = time.Duration(30 * time.Second)
View Source
const WaitForVolumeDeleteTimeout = time.Duration(600 * time.Second)
View Source
const WaitForVolumeReadyTimeout = time.Duration(600 * time.Second)

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"`
	// The name of the ACL
	Name string `json:"name"`
	// 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 ComputeClient added in v0.1.2

type ComputeClient 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) (*ComputeClient, error)

func (*ComputeClient) ACLs added in v0.1.2

func (c *ComputeClient) ACLs() *ACLsClient

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

func (*ComputeClient) IPAddressAssociations added in v0.1.2

func (c *ComputeClient) IPAddressAssociations() *IPAddressAssociationsClient

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

func (*ComputeClient) IPAddressPrefixSets added in v0.1.2

func (c *ComputeClient) IPAddressPrefixSets() *IPAddressPrefixSetsClient

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

func (*ComputeClient) IPAddressReservations added in v0.1.2

func (c *ComputeClient) IPAddressReservations() *IPAddressReservationsClient

IPAddressReservations returns an IPAddressReservationsClient to manage IP address reservation resources

func (*ComputeClient) IPAssociations added in v0.1.2

func (c *ComputeClient) IPAssociations() *IPAssociationsClient

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

func (*ComputeClient) IPNetworkExchanges added in v0.1.2

func (c *ComputeClient) IPNetworkExchanges() *IPNetworkExchangesClient

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

func (*ComputeClient) IPNetworks added in v0.1.2

func (c *ComputeClient) IPNetworks() *IPNetworksClient

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

func (*ComputeClient) IPReservations added in v0.1.2

func (c *ComputeClient) IPReservations() *IPReservationsClient

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

func (*ComputeClient) ImageList added in v0.1.2

func (c *ComputeClient) ImageList() *ImageListClient

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

func (*ComputeClient) ImageListEntries added in v0.1.2

func (c *ComputeClient) ImageListEntries() *ImageListEntriesClient

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

func (*ComputeClient) Instances added in v0.1.2

func (c *ComputeClient) Instances() *InstancesClient

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

func (*ComputeClient) MachineImages added in v0.1.2

func (c *ComputeClient) MachineImages() *MachineImagesClient

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

func (*ComputeClient) Routes added in v0.1.2

func (c *ComputeClient) Routes() *RoutesClient

func (*ComputeClient) SSHKeys added in v0.1.2

func (c *ComputeClient) SSHKeys() *SSHKeysClient

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

func (*ComputeClient) SecRules added in v0.1.2

func (c *ComputeClient) SecRules() *SecRulesClient

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

func (*ComputeClient) SecurityApplications added in v0.1.2

func (c *ComputeClient) SecurityApplications() *SecurityApplicationsClient

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

func (*ComputeClient) SecurityAssociations added in v0.1.2

func (c *ComputeClient) SecurityAssociations() *SecurityAssociationsClient

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

func (*ComputeClient) SecurityIPLists added in v0.1.2

func (c *ComputeClient) SecurityIPLists() *SecurityIPListsClient

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

func (*ComputeClient) SecurityLists added in v0.1.2

func (c *ComputeClient) SecurityLists() *SecurityListsClient

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

func (*ComputeClient) SecurityProtocols added in v0.1.2

func (c *ComputeClient) SecurityProtocols() *SecurityProtocolsClient

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

func (*ComputeClient) SecurityRules added in v0.1.2

func (c *ComputeClient) SecurityRules() *SecurityRuleClient

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

func (*ComputeClient) Snapshots added in v0.1.2

func (c *ComputeClient) Snapshots() *SnapshotsClient

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

func (*ComputeClient) StorageAttachments added in v0.1.2

func (c *ComputeClient) StorageAttachments() *StorageAttachmentsClient

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

func (*ComputeClient) StorageVolumeSnapshots added in v0.1.2

func (c *ComputeClient) StorageVolumeSnapshots() *StorageVolumeSnapshotClient

func (*ComputeClient) StorageVolumes added in v0.1.2

func (c *ComputeClient) StorageVolumes() *StorageVolumeClient

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

func (*ComputeClient) VirtNICSets added in v0.1.2

func (c *ComputeClient) VirtNICSets() *VirtNICSetsClient

func (*ComputeClient) VirtNICs added in v0.1.2

func (c *ComputeClient) VirtNICs() *VirtNICsClient

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

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

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

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

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

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

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

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

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

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

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 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 for storage volume attachment
	Timeout time.Duration `json:"-"`
}

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

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

type DeleteIPAddressPrefixSetInput

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

type DeleteIPAddressReservationInput

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

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

type DeleteIPNetworkExchangeInput

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

type DeleteIPNetworkInput

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

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
}

type DeleteImageListInput

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

DeleteKeyInput 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 for instance to be deleted
	Timeout time.Duration
}

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 snapshot to delete

type DeleteRouteInput

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

type DeleteSSHKeyInput

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

DeleteKeyInput 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"`
}

type DeleteSecurityRuleInput

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

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 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 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 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 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 DeleteVirtualNICSetInput

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

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

type GetIPAddressPrefixSetInput

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

type GetIPAddressReservationInput

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

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

type GetIPNetworkExchangeInput

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

type GetIPNetworkInput

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

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
}

type GetImageListInput

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

GetImageListInput describes the image list to get

type GetInstanceInput

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

Both of these fields are required. If they're not provided, things go wrong in incredibly amazing ways.

func (*GetInstanceInput) String

func (g *GetInstanceInput) String() string

type GetRouteInput

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

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

type GetSecurityRuleInput

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

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 GetVirtualNICInput

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

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

type IPAddressAssociationInfo

type IPAddressAssociationInfo struct {
	// 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 `json:"name"`
	// 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
}

func (*IPAddressAssociationsClient) CreateIPAddressAssociation

Create 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

func (*IPAddressAssociationsClient) GetIPAddressAssociation

Returns a populated IPAddressAssociationInfo struct from an input struct

func (*IPAddressAssociationsClient) UpdateIPAddressAssociation

func (c *IPAddressAssociationsClient) UpdateIPAddressAssociation(updateInput *UpdateIPAddressAssociationInput) (*IPAddressAssociationInfo, error)

UpdateIPAddressAssociation update the ip address association

type IPAddressPrefixSetInfo

type IPAddressPrefixSetInfo struct {
	// The name of the IP Address Prefix Set
	Name string `json:"name"`
	// 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
}

func (*IPAddressPrefixSetsClient) CreateIPAddressPrefixSet

Create 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

func (*IPAddressPrefixSetsClient) 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"`

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

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

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

func (*IPAddressReservationsClient) DeleteIPAddressReservation

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

func (*IPAddressReservationsClient) GetIPAddressReservation

Returns an IP Address Reservation and any errors

func (*IPAddressReservationsClient) UpdateIPAddressReservation

type IPAssociationInfo

type IPAssociationInfo struct {

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

	// 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 {
	// The name of the IP Network Exchange
	Name string `json:"name"`
	// 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
}

func (*IPNetworkExchangesClient) CreateIPNetworkExchange

Create 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

func (*IPNetworkExchangesClient) GetIPNetworkExchange

Returns a populated IPNetworkExchangeInfo struct from an input struct

type IPNetworkInfo

type IPNetworkInfo struct {
	// The name of the IP Network
	Name string `json:"name"`
	// 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
}

func (*IPNetworksClient) CreateIPNetwork

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

Create 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

func (*IPNetworksClient) GetIPNetwork

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

Returns a populated IPNetworkInfo struct from an input struct

func (*IPNetworksClient) UpdateIPNetwork

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

type IPReservation

type IPReservation struct {
	// Shows the default account for your identity domain.
	Account string `json:"account"`
	// Public IP address.
	IP string `json:"ip"`
	// The three-part name of the IP Reservation (/Compute-identity_domain/user/object).
	Name string `json:"name"`
	// Pool of public IP addresses
	ParentPool IPReservationPool `json:"parentpool"`
	// Is the IP Reservation Persistent (i.e. static) or not (i.e. Dynamic)?
	Permanent bool `json:"permanent"`
	// 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 associated with an instance?
	Used bool `json:"used"`
}

IPReservationInput describes an existing IP reservation.

type IPReservationPool

type IPReservationPool string
const (
	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"`

	// The name of the Image List
	Name string `json:"name"`

	// 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
}

func (*ImageListEntriesClient) CreateImageListEntry

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

Create 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

func (*ImageListEntriesClient) GetImageListEntry

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

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

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
const (
	InstanceDesiredRunning  InstanceDesiredState = "running"
	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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

type InstanceState

type InstanceState string
const (
	InstanceRunning      InstanceState = "running"
	InstanceInitializing InstanceState = "initializing"
	InstancePreparing    InstanceState = "preparing"
	InstanceStarting     InstanceState = "starting"
	InstanceStopping     InstanceState = "stopping"
	InstanceShutdown     InstanceState = "shutdown"
	InstanceQueued       InstanceState = "queued"
	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)

LaunchInstance 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) UpdateInstance

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

func (*InstancesClient) WaitForInstanceDeleted

func (c *InstancesClient) WaitForInstanceDeleted(input *DeleteInstanceInput, timeout time.Duration) error

WaitForInstanceDeleted waits for an instance to be fully deleted.

func (*InstancesClient) WaitForInstanceRunning

func (c *InstancesClient) WaitForInstanceRunning(input *GetInstanceInput, 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, timeout time.Duration) (*InstanceInfo, error)

WaitForInstanceShutdown waits for an instance to be shutdown

type LaunchPlanInput

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

LaunchPlan 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"`
}

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) DeleteMachineImage added in v0.1.2

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

DeleteMachineImage deletes the MachineImage with the given name.

type NICModel

type NICModel string
const (
	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.
	// 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"`
}

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

type ResourceClient

type ResourceClient struct {
	*ComputeClient
	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"`
	// CIDR IPv4 Prefix associated with this route
	IPAddressPrefix string `json:"ipAddressPrefix"`
	// Name of the route
	Name string `json:"name"`
	// 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"`
}

type RoutesClient

type RoutesClient struct {
	ResourceClient
}

func (*RoutesClient) CreateRoute

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

func (*RoutesClient) DeleteRoute

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

func (*RoutesClient) GetRoute

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

func (*RoutesClient) UpdateRoute

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

type SSHKey

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

SSHKeyInfo 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"`
	// The name of the sec rule
	Name string `json:"name"`
	// 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
const (
	Admin    SecurityApplicationICMPCode = "admin"
	Df       SecurityApplicationICMPCode = "df"
	Host     SecurityApplicationICMPCode = "host"
	Network  SecurityApplicationICMPCode = "network"
	Port     SecurityApplicationICMPCode = "port"
	Protocol SecurityApplicationICMPCode = "protocol"
)

type SecurityApplicationICMPType

type SecurityApplicationICMPType string
const (
	Echo        SecurityApplicationICMPType = "echo"
	Reply       SecurityApplicationICMPType = "reply"
	TTL         SecurityApplicationICMPType = "ttl"
	TraceRoute  SecurityApplicationICMPType = "traceroute"
	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"`
	// 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 `json:"name"`
	// The protocol to use.
	Protocol SecurityApplicationProtocol `json:"protocol"`
	// The Uniform Resource Identifier
	URI string `json:"uri"`
}

SecurityApplicationInfo describes an existing security application.

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 {
	// The three-part name of the Security Association (/Compute-identity_domain/user/object).
	Name string `json:"name"`
	// 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"`
	// The three-part name of the object (/Compute-identity_domain/user/object).
	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.
	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`
	// The three-part name of the security list (/Compute-identity_domain/user/object).
	Name string `json:"name"`
	// 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
const (
	SecurityListPolicyDeny   SecurityListPolicy = "deny"
	SecurityListPolicyReject SecurityListPolicy = "reject"
	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"`
	// The name of the Security Protocol
	Name string `json:"name"`
	// 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
}

func (*SecurityProtocolsClient) CreateSecurityProtocol

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

Create 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

func (*SecurityProtocolsClient) 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
}

func (*SecurityRuleClient) CreateSecurityRule

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

Create 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

func (*SecurityRuleClient) GetSecurityRule

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

Returns a populated SecurityRuleInfo struct from an input struct

func (*SecurityRuleClient) UpdateSecurityRule

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

UpdateSecRule 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"`
	// The name of the Security Rule
	Name string `json:"name"`
	// 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"`
	// 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 `json:"name"`
	// Not used
	Quota string `json:"quota"`
	// The state of the request.
	State SnapshotState `json:"state"`
	// Uniform Resource Identifier
	URI string `json:"uri"`
}

SnapshotInfo describes an existing Snapshot.

type SnapshotDelay added in v0.1.2

type SnapshotDelay string
const (
	SnapshotDelayShutdown SnapshotDelay = "shutdown"
)

type SnapshotState added in v0.1.2

type SnapshotState string
const (
	SnapshotActive   SnapshotState = "active"
	SnapshotComplete SnapshotState = "complete"
	SnapshotQueued   SnapshotState = "queued"
	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) 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, 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"`
}

type StorageAttachmentInfo

type StorageAttachmentInfo struct {
	// Name of this attachment, generated by the server.
	Name string `json:"name"`

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

type StorageAttachmentState

type StorageAttachmentState string
const (
	Attaching   StorageAttachmentState = "attaching"
	Attached    StorageAttachmentState = "attached"
	Detaching   StorageAttachmentState = "detaching"
	Unavailable StorageAttachmentState = "unavailable"
	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"`

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

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

	// Specific imagelist entry version to extract.
	ImageListEntry int `json:"imagelist_entry,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"`

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

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

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

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

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

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

type StorageVolumeKind

type StorageVolumeKind string
const (
	StorageVolumeKindDefault StorageVolumeKind = "/oracle/public/storage/default"
	StorageVolumeKindLatency StorageVolumeKind = "/oracle/public/storage/latency"
	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"`

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

	// 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 UpdateIPAddressAssociationInput

type UpdateIPAddressAssociationInput 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"`
}

UpdateIPAddressAssociationInput defines what to update in a ip address association

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

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

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 for instance to be ready, or shutdown depending on desired state
	Timeout time.Duration `json:"-"`
}

func (*UpdateInstanceInput) String

func (g *UpdateInstanceInput) String() string

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

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 for storage volume ready
	Timeout time.Duration `json:"-"`
}

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

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

type VirtNICSetsClient

type VirtNICSetsClient struct {
	ResourceClient
}

func (*VirtNICSetsClient) CreateVirtualNICSet

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

func (*VirtNICSetsClient) DeleteVirtualNICSet

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

func (*VirtNICSetsClient) GetVirtualNICSet

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

func (*VirtNICSetsClient) UpdateVirtualNICSet

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

type VirtNICsClient

type VirtNICsClient struct {
	ResourceClient
}

func (*VirtNICsClient) GetVirtualNIC

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

type VirtualNIC

type VirtualNIC struct {
	// Description of the object.
	Description string `json:"description"`
	// MAC address of this VNIC.
	MACAddress string `json:"macAddress"`
	// The three-part name (/Compute-identity_domain/user/object) of the Virtual NIC.
	Name string `json:"name"`
	// 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"`
}

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"`
	// Name of the VNIC set.
	Name string `json:"name"`
	// 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"`
}

Describes an existing virtual nic set

Jump to

Keyboard shortcuts

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