v1alpha1

package
v0.22.0 Latest Latest
Warning

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

Go to latest
Published: Oct 10, 2022 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package v1alpha1 contains managed resources for GCP compute services such as Firewall. +kubebuilder:object:generate=true +groupName=compute.gcp.crossplane.io +versionName=v1alpha1

Index

Constants

View Source
const (
	Group   = "compute.gcp.crossplane.io"
	Version = "v1alpha1"
)

Package type metadata.

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: Group, Version: Version}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
)
View Source
var (
	FirewallKind             = reflect.TypeOf(Firewall{}).Name()
	FirewallGroupKind        = schema.GroupKind{Group: Group, Kind: FirewallKind}.String()
	FirewallKindAPIVersion   = FirewallKind + "." + SchemeGroupVersion.String()
	FirewallGroupVersionKind = SchemeGroupVersion.WithKind(FirewallKind)
)

Firewall type metadata.

View Source
var (
	RouterKind             = reflect.TypeOf(Router{}).Name()
	RouterGroupKind        = schema.GroupKind{Group: Group, Kind: RouterKind}.String()
	RouterKindAPIVersion   = RouterKind + "." + SchemeGroupVersion.String()
	RouterGroupVersionKind = SchemeGroupVersion.WithKind(RouterKind)
)

Router type metadata.

Functions

This section is empty.

Types

type Firewall

type Firewall struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   FirewallSpec   `json:"spec"`
	Status FirewallStatus `json:"status,omitempty"`
}

A Firewall is a managed resource that represents a Google Compute Engine Firewall +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,gcp}

func (*Firewall) DeepCopy

func (in *Firewall) DeepCopy() *Firewall

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Firewall.

func (*Firewall) DeepCopyInto

func (in *Firewall) DeepCopyInto(out *Firewall)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Firewall) DeepCopyObject

func (in *Firewall) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Firewall) GetCondition

func (mg *Firewall) GetCondition(ct xpv1.ConditionType) xpv1.Condition

GetCondition of this Firewall.

func (*Firewall) GetDeletionPolicy

func (mg *Firewall) GetDeletionPolicy() xpv1.DeletionPolicy

GetDeletionPolicy of this Firewall.

func (*Firewall) GetProviderConfigReference

func (mg *Firewall) GetProviderConfigReference() *xpv1.Reference

GetProviderConfigReference of this Firewall.

func (*Firewall) GetProviderReference

func (mg *Firewall) GetProviderReference() *xpv1.Reference

GetProviderReference of this Firewall. Deprecated: Use GetProviderConfigReference.

func (*Firewall) GetPublishConnectionDetailsTo

func (mg *Firewall) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo

GetPublishConnectionDetailsTo of this Firewall.

func (*Firewall) GetWriteConnectionSecretToReference

func (mg *Firewall) GetWriteConnectionSecretToReference() *xpv1.SecretReference

GetWriteConnectionSecretToReference of this Firewall.

func (*Firewall) ResolveReferences

func (mg *Firewall) ResolveReferences(ctx context.Context, c client.Reader) error

ResolveReferences of this Firewall

func (*Firewall) SetConditions

func (mg *Firewall) SetConditions(c ...xpv1.Condition)

SetConditions of this Firewall.

func (*Firewall) SetDeletionPolicy

func (mg *Firewall) SetDeletionPolicy(r xpv1.DeletionPolicy)

SetDeletionPolicy of this Firewall.

func (*Firewall) SetProviderConfigReference

func (mg *Firewall) SetProviderConfigReference(r *xpv1.Reference)

SetProviderConfigReference of this Firewall.

func (*Firewall) SetProviderReference

func (mg *Firewall) SetProviderReference(r *xpv1.Reference)

SetProviderReference of this Firewall. Deprecated: Use SetProviderConfigReference.

func (*Firewall) SetPublishConnectionDetailsTo

func (mg *Firewall) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo)

SetPublishConnectionDetailsTo of this Firewall.

func (*Firewall) SetWriteConnectionSecretToReference

func (mg *Firewall) SetWriteConnectionSecretToReference(r *xpv1.SecretReference)

SetWriteConnectionSecretToReference of this Firewall.

type FirewallAllowed

type FirewallAllowed struct {
	// IPProtocol: The IP protocol to which this rule applies. The protocol
	// type is required when creating a firewall rule. This value can either
	// be one of the following well known protocol strings (tcp, udp, icmp,
	// esp, ah, ipip, sctp) or the IP protocol number.
	IPProtocol string `json:"IPProtocol"`

	// Ports: An optional list of ports to which this rule applies. This
	// field is only applicable for the UDP or TCP protocol. Each entry must
	// be either an integer or a range. If not specified, this rule applies
	// to connections through any port.
	//
	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
	// +optional
	Ports []string `json:"ports,omitempty"`
}

FirewallAllowed represents the ALLOW rule by the firewall

func (*FirewallAllowed) DeepCopy

func (in *FirewallAllowed) DeepCopy() *FirewallAllowed

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirewallAllowed.

func (*FirewallAllowed) DeepCopyInto

func (in *FirewallAllowed) DeepCopyInto(out *FirewallAllowed)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FirewallDenied

type FirewallDenied struct {
	// IPProtocol: The IP protocol to which this rule applies. The protocol
	// type is required when creating a firewall rule. This value can either
	// be one of the following well known protocol strings (tcp, udp, icmp,
	// esp, ah, ipip, sctp) or the IP protocol number.
	IPProtocol string `json:"IPProtocol"`

	// Ports: An optional list of ports to which this rule applies. This
	// field is only applicable for the UDP or TCP protocol. Each entry must
	// be either an integer or a range. If not specified, this rule applies
	// to connections through any port.
	//
	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
	// +optional
	Ports []string `json:"ports,omitempty"`
}

FirewallDenied represents the DENY rule by the firewall

func (*FirewallDenied) DeepCopy

func (in *FirewallDenied) DeepCopy() *FirewallDenied

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirewallDenied.

func (*FirewallDenied) DeepCopyInto

func (in *FirewallDenied) DeepCopyInto(out *FirewallDenied)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FirewallList

type FirewallList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Firewall `json:"items"`
}

FirewallList contains a list of Firewall.

func (*FirewallList) DeepCopy

func (in *FirewallList) DeepCopy() *FirewallList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirewallList.

func (*FirewallList) DeepCopyInto

func (in *FirewallList) DeepCopyInto(out *FirewallList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FirewallList) DeepCopyObject

func (in *FirewallList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*FirewallList) GetItems

func (l *FirewallList) GetItems() []resource.Managed

GetItems of this FirewallList.

type FirewallLogConfig

type FirewallLogConfig struct {
	// Enable: This field denotes whether to enable logging for a particular
	// firewall rule.
	Enable bool `json:"enable"`
}

A FirewallLogConfig represents the available logging options for firewall.

func (*FirewallLogConfig) DeepCopy

func (in *FirewallLogConfig) DeepCopy() *FirewallLogConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirewallLogConfig.

func (*FirewallLogConfig) DeepCopyInto

func (in *FirewallLogConfig) DeepCopyInto(out *FirewallLogConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FirewallObservation

type FirewallObservation struct {
	// CreationTimestamp: Creation timestamp in RFC3339 text
	// format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`

	// Id: The unique identifier for the resource. This
	// identifier is defined by the server.
	ID uint64 `json:"id,omitempty"`

	// SelfLink: Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
}

A FirewallObservation represents the observed state of a Google Compute Engine Firewall rule.

func (*FirewallObservation) DeepCopy

func (in *FirewallObservation) DeepCopy() *FirewallObservation

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirewallObservation.

func (*FirewallObservation) DeepCopyInto

func (in *FirewallObservation) DeepCopyInto(out *FirewallObservation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FirewallParameters

type FirewallParameters struct {
	// Description: An optional description of this resource. Provide this
	// field when you create the resource.
	// +optional
	// +immutable
	Description *string `json:"description,omitempty"`

	// Network: URL of the network resource for this firewall rule. If not
	// specified when creating a firewall rule, the default network is
	// used:
	// global/networks/default
	// If you choose to specify this field, you can specify the network as a
	// full or partial URL. For example, the following are all valid URLs:
	//
	// -
	// https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
	// - projects/myproject/global/networks/my-network
	// - global/networks/default
	// +optional
	// +immutable
	Network *string `json:"network,omitempty"`

	// NetworkRef references a Network and retrieves its URI
	// +optional
	// +immutable
	NetworkRef *xpv1.Reference `json:"networkRef,omitempty"`

	// NetworkSelector selects a reference to a Network
	// +optional
	// +immutable
	NetworkSelector *xpv1.Selector `json:"networkSelector,omitempty"`

	// Priority: Priority for this rule. This is an integer between `0` and
	// `65535`, both inclusive. The default value is `1000`. Relative
	// priorities determine which rule takes effect if multiple rules apply.
	// Lower values indicate higher priority. For example, a rule with
	// priority `0` has higher precedence than a rule with priority `1`.
	// DENY rules take precedence over ALLOW rules if they have equal
	// priority. Note that VPC networks have implied rules with a priority
	// of `65535`. To avoid conflicts with the implied rules, use a priority
	// number less than `65535`.
	// +optional
	Priority *int64 `json:"priority,omitempty"`

	// SourceRanges: If source ranges are specified, the firewall rule
	// applies only to traffic that has a source IP address in these ranges.
	// These ranges must be expressed in CIDR format. One or both of
	// sourceRanges and sourceTags may be set. If both fields are set, the
	// rule applies to traffic that has a source IP address within
	// sourceRanges OR a source IP from a resource with a matching tag
	// listed in the sourceTags field. The connection does not need to match
	// both fields for the rule to apply. Only IPv4 is supported.
	// +optional
	SourceRanges []string `json:"sourceRanges,omitempty"`

	// DestinationRanges: If destination ranges are specified, the firewall
	// rule applies only to traffic that has destination IP address in these
	// ranges. These ranges must be expressed in CIDR format. Only IPv4 is
	// supported.
	// +optional
	DestinationRanges []string `json:"destinationRanges,omitempty"`

	// SourceTags: If source tags are specified, the firewall rule applies
	// only to traffic with source IPs that match the primary network
	// interfaces of VM instances that have the tag and are in the same VPC
	// network. Source tags cannot be used to control traffic to an
	// instance's external IP address, it only applies to traffic between
	// instances in the same virtual network. Because tags are associated
	// with instances, not IP addresses. One or both of sourceRanges and
	// sourceTags may be set. If both fields are set, the firewall applies
	// to traffic that has a source IP address within sourceRanges OR a
	// source IP from a resource with a matching tag listed in the
	// sourceTags field. The connection does not need to match both fields
	// for the firewall to apply.
	// +optional
	SourceTags []string `json:"sourceTags,omitempty"`

	// TargetTags: A list of tags that controls which instances the firewall
	// rule applies to. If targetTags are specified, then the firewall rule
	// applies only to instances in the VPC network that have one of those
	// tags. If no targetTags are specified, the firewall rule applies to
	// all instances on the specified network.
	// +optional
	TargetTags []string `json:"targetTags,omitempty"`

	// SourceServiceAccounts: If source service accounts are specified, the
	// firewall rules apply only to traffic originating from an instance
	// with a service account in this list. Source service accounts cannot
	// be used to control traffic to an instance's external IP address
	// because service accounts are associated with an instance, not an IP
	// address. sourceRanges can be set at the same time as
	// sourceServiceAccounts. If both are set, the firewall applies to
	// traffic that has a source IP address within the sourceRanges OR a
	// source IP that belongs to an instance with service account listed in
	// sourceServiceAccount. The connection does not need to match both
	// fields for the firewall to apply. sourceServiceAccounts cannot be
	// used at the same time as sourceTags or targetTags.
	// +optional
	SourceServiceAccounts []string `json:"sourceServiceAccounts,omitempty"`

	// TargetServiceAccounts: A list of service accounts indicating sets of
	// instances located in the network that may make network connections as
	// specified in allowed[]. targetServiceAccounts cannot be used at the
	// same time as targetTags or sourceTags. If neither
	// targetServiceAccounts nor targetTags are specified, the firewall rule
	// applies to all instances on the specified network.
	// +optional
	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`

	// Allowed: The list of ALLOW rules specified by this firewall. Each
	// rule specifies a protocol and port-range tuple that describes a
	// permitted connection.
	// +optional
	Allowed []*FirewallAllowed `json:"allowed,omitempty"`

	// Denied: The list of DENY rules specified by this firewall. Each rule
	// specifies a protocol and port-range tuple that describes a denied
	// connection.
	// +optional
	Denied []*FirewallDenied `json:"denied,omitempty"`

	// Direction: Direction of traffic to which this firewall applies,
	// either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `INGRESS`
	// traffic, you cannot specify the destinationRanges field, and for
	// `EGRESS` traffic, you cannot specify the sourceRanges or sourceTags
	// fields.
	//
	// Possible values:
	//   "EGRESS"
	//   "INGRESS"
	// +optional
	Direction *string `json:"direction,omitempty"`

	// Disabled: Denotes whether the firewall rule is disabled. When set to
	// true, the firewall rule is not enforced and the network behaves as if
	// it did not exist. If this is unspecified, the firewall rule will be
	// enabled.
	// +optional
	Disabled *bool `json:"disabled,omitempty"`

	// LogConfig: This field denotes the logging options for a particular
	// firewall rule. If logging is enabled, logs will be exported to
	// Stackdriver.
	// +optional
	LogConfig *FirewallLogConfig `json:"logConfig,omitempty"`
}

FirewallParameters define the desired state of a Google Compute Engine Firewall rule. Most fields map directly to a Firewall: https://cloud.google.com/compute/docs/reference/rest/v1/firewalls/

func (*FirewallParameters) DeepCopy

func (in *FirewallParameters) DeepCopy() *FirewallParameters

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirewallParameters.

func (*FirewallParameters) DeepCopyInto

func (in *FirewallParameters) DeepCopyInto(out *FirewallParameters)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FirewallSpec

type FirewallSpec struct {
	xpv1.ResourceSpec `json:",inline"`
	ForProvider       FirewallParameters `json:"forProvider"`
}

A FirewallSpec defines the desired state of a Firewall.

func (*FirewallSpec) DeepCopy

func (in *FirewallSpec) DeepCopy() *FirewallSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirewallSpec.

func (*FirewallSpec) DeepCopyInto

func (in *FirewallSpec) DeepCopyInto(out *FirewallSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FirewallStatus

type FirewallStatus struct {
	xpv1.ResourceStatus `json:",inline"`
	AtProvider          FirewallObservation `json:"atProvider,omitempty"`
}

A FirewallStatus represents the observed state of a Firewall.

func (*FirewallStatus) DeepCopy

func (in *FirewallStatus) DeepCopy() *FirewallStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirewallStatus.

func (*FirewallStatus) DeepCopyInto

func (in *FirewallStatus) DeepCopyInto(out *FirewallStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Router

type Router struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   RouterSpec   `json:"spec"`
	Status RouterStatus `json:"status,omitempty"`
}

A Router is a managed resource that represents a Google Compute Engine Router +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,gcp}

func (*Router) DeepCopy

func (in *Router) DeepCopy() *Router

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Router.

func (*Router) DeepCopyInto

func (in *Router) DeepCopyInto(out *Router)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Router) DeepCopyObject

func (in *Router) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Router) GetCondition

func (mg *Router) GetCondition(ct xpv1.ConditionType) xpv1.Condition

GetCondition of this Router.

func (*Router) GetDeletionPolicy

func (mg *Router) GetDeletionPolicy() xpv1.DeletionPolicy

GetDeletionPolicy of this Router.

func (*Router) GetProviderConfigReference

func (mg *Router) GetProviderConfigReference() *xpv1.Reference

GetProviderConfigReference of this Router.

func (*Router) GetProviderReference

func (mg *Router) GetProviderReference() *xpv1.Reference

GetProviderReference of this Router. Deprecated: Use GetProviderConfigReference.

func (*Router) GetPublishConnectionDetailsTo

func (mg *Router) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo

GetPublishConnectionDetailsTo of this Router.

func (*Router) GetWriteConnectionSecretToReference

func (mg *Router) GetWriteConnectionSecretToReference() *xpv1.SecretReference

GetWriteConnectionSecretToReference of this Router.

func (*Router) ResolveReferences

func (mg *Router) ResolveReferences(ctx context.Context, c client.Reader) error

ResolveReferences of this Router

func (*Router) SetConditions

func (mg *Router) SetConditions(c ...xpv1.Condition)

SetConditions of this Router.

func (*Router) SetDeletionPolicy

func (mg *Router) SetDeletionPolicy(r xpv1.DeletionPolicy)

SetDeletionPolicy of this Router.

func (*Router) SetProviderConfigReference

func (mg *Router) SetProviderConfigReference(r *xpv1.Reference)

SetProviderConfigReference of this Router.

func (*Router) SetProviderReference

func (mg *Router) SetProviderReference(r *xpv1.Reference)

SetProviderReference of this Router. Deprecated: Use SetProviderConfigReference.

func (*Router) SetPublishConnectionDetailsTo

func (mg *Router) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo)

SetPublishConnectionDetailsTo of this Router.

func (*Router) SetWriteConnectionSecretToReference

func (mg *Router) SetWriteConnectionSecretToReference(r *xpv1.SecretReference)

SetWriteConnectionSecretToReference of this Router.

type RouterAdvertisedIpRange

type RouterAdvertisedIpRange struct {
	// Description: User-specified description for the IP range.
	// +optional
	Description *string `json:"description,omitempty"`

	// Range: The IP range to advertise. The value must be a CIDR-formatted
	// string.
	Range string `json:"range"`
}

A RouterAdvertisedIpRange represents the IP ranges advertised by router.

func (*RouterAdvertisedIpRange) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterAdvertisedIpRange.

func (*RouterAdvertisedIpRange) DeepCopyInto

func (in *RouterAdvertisedIpRange) DeepCopyInto(out *RouterAdvertisedIpRange)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RouterBgp

type RouterBgp struct {
	// AdvertiseMode: User-specified flag to indicate which mode to use for
	// advertisement. The options are DEFAULT or CUSTOM.
	//
	// Possible values:
	//   "CUSTOM"
	//   "DEFAULT"
	// +optional
	// +kubebuilder:validation:Enum=CUSTOM;DEFAULT
	AdvertiseMode *string `json:"advertiseMode,omitempty"`

	// AdvertisedGroups: User-specified list of prefix groups to advertise
	// in custom mode. This field can only be populated if advertise_mode is
	// CUSTOM and is advertised to all peers of the router. These groups
	// will be advertised in addition to any specified prefixes. Leave this
	// field blank to advertise no custom groups.
	//
	// Possible values:
	//   "ALL_SUBNETS"
	// +optional
	// +kubebuilder:validation:Enum=ALL_SUBNETS
	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`

	// AdvertisedIpRanges: User-specified list of individual IP ranges to
	// advertise in custom mode. This field can only be populated if
	// advertise_mode is CUSTOM and is advertised to all peers of the
	// router. These IP ranges will be advertised in addition to any
	// specified groups. Leave this field blank to advertise no custom IP
	// ranges.
	// +optional
	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"` // nolint

	// Asn: Local BGP Autonomous System Number (ASN). Must be an RFC6996
	// private ASN, either 16-bit or 32-bit. The value will be fixed for
	// this router resource. All VPN tunnels that link to this router will
	// have the same local ASN.
	// +optional
	Asn *int64 `json:"asn,omitempty"`
}

A RouterBgp represents the Bgp information for router.

func (*RouterBgp) DeepCopy

func (in *RouterBgp) DeepCopy() *RouterBgp

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterBgp.

func (*RouterBgp) DeepCopyInto

func (in *RouterBgp) DeepCopyInto(out *RouterBgp)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RouterBgpPeer

type RouterBgpPeer struct {
	// AdvertiseMode: User-specified flag to indicate which mode to use for
	// advertisement.
	//
	// Possible values:
	//   "CUSTOM"
	//   "DEFAULT"
	// +optional
	// +kubebuilder:validation:Enum=CUSTOM;DEFAULT
	AdvertiseMode *string `json:"advertiseMode,omitempty"`

	// AdvertisedGroups: User-specified list of prefix groups to advertise
	// in custom mode, which can take one of the following options:
	// - ALL_SUBNETS: Advertises all available subnets, including peer VPC
	// subnets.
	// - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets. Note that
	// this field can only be populated if advertise_mode is CUSTOM and
	// overrides the list defined for the router (in the "bgp" message).
	// These groups are advertised in addition to any specified prefixes.
	// Leave this field blank to advertise no custom groups.
	//
	// Possible values:
	//   "ALL_SUBNETS"
	// +optional
	// +kubebuilder:validation:Enum=ALL_SUBNETS
	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`

	// AdvertisedIpRanges: User-specified list of individual IP ranges to
	// advertise in custom mode. This field can only be populated if
	// advertise_mode is CUSTOM and overrides the list defined for the
	// router (in the "bgp" message). These IP ranges are advertised in
	// addition to any specified groups. Leave this field blank to advertise
	// no custom IP ranges.
	// +optional
	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"` // nolint

	// AdvertisedRoutePriority: The priority of routes advertised to this
	// BGP peer. Where there is more than one matching route of maximum
	// length, the routes with the lowest priority value win.
	// +optional
	AdvertisedRoutePriority *int64 `json:"advertisedRoutePriority,omitempty"`

	// InterfaceName: Name of the interface the BGP peer is associated with.
	// +optional
	InterfaceName *string `json:"interfaceName,omitempty"`

	// IpAddress: IP address of the interface inside Google Cloud Platform.
	// Only IPv4 is supported.
	// +optional
	IpAddress *string `json:"ipAddress,omitempty"` // nolint

	// Name: Name of this BGP peer. The name must be 1-63 characters long,
	// and comply with RFC1035. Specifically, the name must be 1-63
	// characters long and match the regular expression
	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
	// a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot
	// be a dash.
	Name string `json:"name"`

	// PeerAsn: Peer BGP Autonomous System Number (ASN). Each BGP interface
	// may use a different value.
	PeerAsn int64 `json:"peerAsn"`

	// PeerIpAddress: IP address of the BGP interface outside Google Cloud
	// Platform. Only IPv4 is supported.
	// +optional
	PeerIpAddress *string `json:"peerIpAddress,omitempty"` // nolint
}

A RouterBgpPeer represents the BgpPeer configuration for the router.

func (*RouterBgpPeer) DeepCopy

func (in *RouterBgpPeer) DeepCopy() *RouterBgpPeer

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterBgpPeer.

func (*RouterBgpPeer) DeepCopyInto

func (in *RouterBgpPeer) DeepCopyInto(out *RouterBgpPeer)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RouterInterface

type RouterInterface struct {
	// IpRange: IP address and range of the interface. The IP range must be
	// in the RFC3927 link-local IP address space. The value must be a
	// CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not
	// truncate the address as it represents the IP address of the
	// interface.
	// +optional
	IpRange *string `json:"ipRange,omitempty"` // nolint

	// LinkedInterconnectAttachment: URI of the linked Interconnect
	// attachment. It must be in the same region as the router. Each
	// interface can have one linked resource, which can be a VPN tunnel, an
	// Interconnect attachment, or a virtual machine instance.
	// +optional
	LinkedInterconnectAttachment *string `json:"linkedInterconnectAttachment,omitempty"`

	// LinkedVpnTunnel: URI of the linked VPN tunnel, which must be in the
	// same region as the router. Each interface can have one linked
	// resource, which can be a VPN tunnel, an Interconnect attachment, or a
	// virtual machine instance.
	// +optional
	LinkedVpnTunnel *string `json:"linkedVpnTunnel,omitempty"`

	// Name: Name of this interface entry. The name must be 1-63 characters
	// long, and comply with RFC1035. Specifically, the name must be 1-63
	// characters long and match the regular expression
	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
	// a lowercase letter, and all following characters must be a dash,
	// lowercase letter, or digit, except the last character, which cannot
	// be a dash.
	Name string `json:"name"`
}

A RouterInterface represent the Interface information for router.

func (*RouterInterface) DeepCopy

func (in *RouterInterface) DeepCopy() *RouterInterface

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterInterface.

func (*RouterInterface) DeepCopyInto

func (in *RouterInterface) DeepCopyInto(out *RouterInterface)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RouterList

type RouterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []Router `json:"items"`
}

RouterList contains a list of Routers.

func (*RouterList) DeepCopy

func (in *RouterList) DeepCopy() *RouterList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterList.

func (*RouterList) DeepCopyInto

func (in *RouterList) DeepCopyInto(out *RouterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*RouterList) DeepCopyObject

func (in *RouterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*RouterList) GetItems

func (l *RouterList) GetItems() []resource.Managed

GetItems of this RouterList.

type RouterNat

type RouterNat struct {
	// DrainNatIps: A list of URLs of the IP resources to be drained. These
	// IPs must be valid static external IPs that have been assigned to the
	// NAT. These IPs should be used for updating/patching a NAT only.
	// +optional
	DrainNatIps []string `json:"drainNatIps,omitempty"`

	// +optional
	EnableEndpointIndependentMapping *bool `json:"enableEndpointIndependentMapping,omitempty"`

	// IcmpIdleTimeoutSec: Timeout (in seconds) for ICMP connections.
	// Defaults to 30s if not set.
	// +optional
	IcmpIdleTimeoutSec *int64 `json:"icmpIdleTimeoutSec,omitempty"`

	// LogConfig: Configure logging on this NAT.
	// +optional
	LogConfig *RouterNatLogConfig `json:"logConfig,omitempty"`

	// MinPortsPerVm: Minimum number of ports allocated to a VM from this
	// NAT config. If not set, a default number of ports is allocated to a
	// VM. This is rounded up to the nearest power of 2. For example, if the
	// value of this field is 50, at least 64 ports are allocated to a VM.
	// +optional
	MinPortsPerVm *int64 `json:"minPortsPerVm,omitempty"` // nolint

	// Name: Unique name of this Nat service. The name must be 1-63
	// characters long and comply with RFC1035.
	// +optional
	Name *string `json:"name,omitempty"`

	// NatIpAllocateOption: Specify the NatIpAllocateOption, which can take
	// one of the following values:
	// - MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When
	// there are not enough specified Nat IPs, the Nat service fails for new
	// VMs.
	// - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform;
	// customers can't specify any Nat IPs. When choosing AUTO_ONLY, then
	// nat_ip should be empty.
	//
	// Possible values:
	//   "AUTO_ONLY"
	//   "MANUAL_ONLY"
	// +kubebuilder:validation:Enum=AUTO_ONLY;MANUAL_ONLY
	NatIpAllocateOption string `json:"natIpAllocateOption,omitempty"` // nolint

	// NatIps: A list of URLs of the IP resources used for this Nat service.
	// These IP addresses must be valid static external IP addresses
	// assigned to the project.
	// +optional
	NatIps []string `json:"natIps"`

	// SourceSubnetworkIpRangesToNat: Specify the Nat option, which can take
	// one of the following values:
	// - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every
	// Subnetwork are allowed to Nat.
	// - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges
	// in every Subnetwork are allowed to Nat.
	// - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat
	// (specified in the field subnetwork below) The default is
	// SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this
	// field contains ALL_SUBNETWORKS_ALL_IP_RANGES or
	// ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any
	// other Router.Nat section in any Router for this network in this
	// region.
	//
	// Possible values:
	//   "ALL_SUBNETWORKS_ALL_IP_RANGES"
	//   "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES"
	//   "LIST_OF_SUBNETWORKS"
	// +kubebuilder:validation:Enum=ALL_SUBNETWORKS_ALL_IP_RANGES;ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES;LIST_OF_SUBNETWORKS
	SourceSubnetworkIpRangesToNat string `json:"sourceSubnetworkIpRangesToNat"` // nolint

	// Subnetworks: A list of Subnetwork resources whose traffic should be
	// translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS
	// is selected for the SubnetworkIpRangeToNatOption above.
	// +optional
	Subnetworks []*RouterNatSubnetworkToNat `json:"subnetworks,omitempty"`

	// TcpEstablishedIdleTimeoutSec: Timeout (in seconds) for TCP
	// established connections. Defaults to 1200s if not set.
	// +optional
	TcpEstablishedIdleTimeoutSec *int64 `json:"tcpEstablishedIdleTimeoutSec,omitempty"` // nolint

	// TcpTransitoryIdleTimeoutSec: Timeout (in seconds) for TCP transitory
	// connections. Defaults to 30s if not set.
	// +optional
	TcpTransitoryIdleTimeoutSec *int64 `json:"tcpTransitoryIdleTimeoutSec,omitempty"` // nolint

	// UdpIdleTimeoutSec: Timeout (in seconds) for UDP connections. Defaults
	// to 30s if not set.
	// +optional
	UdpIdleTimeoutSec *int64 `json:"udpIdleTimeoutSec,omitempty"` // nolint
}

RouterNat represents the Nat Service for the router.

func (*RouterNat) DeepCopy

func (in *RouterNat) DeepCopy() *RouterNat

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterNat.

func (*RouterNat) DeepCopyInto

func (in *RouterNat) DeepCopyInto(out *RouterNat)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RouterNatLogConfig

type RouterNatLogConfig struct {
	// Enable: Indicates whether or not to export logs. This is false by
	// default.
	// +optional
	Enable *bool `json:"enable,omitempty"`

	// Filter: Specify the desired filtering of logs on this NAT. If
	// unspecified, logs are exported for all connections handled by this
	// NAT. This option can take one of the following values:
	// - ERRORS_ONLY: Export logs only for connection failures.
	// - TRANSLATIONS_ONLY: Export logs only for successful connections.
	// - ALL: Export logs for all connections, successful and unsuccessful.
	//
	// Possible values:
	//   "ALL"
	//   "ERRORS_ONLY"
	//   "TRANSLATIONS_ONLY"
	// +optional
	// +kubebuilder:validation:Enum=ALL;ERRORS_ONLY;TRANSLATIONS_ONLY
	Filter *string `json:"filter,omitempty"`
}

A RouterNatLogConfig represent the Log config Router Nat service.

func (*RouterNatLogConfig) DeepCopy

func (in *RouterNatLogConfig) DeepCopy() *RouterNatLogConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterNatLogConfig.

func (*RouterNatLogConfig) DeepCopyInto

func (in *RouterNatLogConfig) DeepCopyInto(out *RouterNatLogConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RouterNatSubnetworkToNat

type RouterNatSubnetworkToNat struct {
	// Name: URL for the subnetwork resource that will use NAT.
	// +optional
	Name *string `json:"name,omitempty"`

	// SecondaryIpRangeNames: A list of the secondary ranges of the
	// Subnetwork that are allowed to use NAT. This can be populated only if
	// "LIST_OF_SECONDARY_IP_RANGES" is one of the values in
	// source_ip_ranges_to_nat.
	// +optional
	SecondaryIpRangeNames []string `json:"secondaryIpRangeNames,omitempty"` // nolint

	// SourceIpRangesToNat: Specify the options for NAT ranges in the
	// Subnetwork. All options of a single value are valid except
	// NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple
	// values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"]
	// Default: [ALL_IP_RANGES]
	//
	// Possible values:
	//   "ALL_IP_RANGES"
	//   "LIST_OF_SECONDARY_IP_RANGES"
	//   "PRIMARY_IP_RANGE"
	// +optional
	// +kubebuilder:validation:Enum=ALL_IP_RANGES;LIST_OF_SECONDARY_IP_RANGES;PRIMARY_IP_RANGE
	SourceIpRangesToNat []string `json:"sourceIpRangesToNat,omitempty"` // nolint
}

A RouterNatSubnetworkToNat represent the Subnetwork information for Router Nat Service.

func (*RouterNatSubnetworkToNat) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterNatSubnetworkToNat.

func (*RouterNatSubnetworkToNat) DeepCopyInto

func (in *RouterNatSubnetworkToNat) DeepCopyInto(out *RouterNatSubnetworkToNat)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RouterObservation

type RouterObservation struct {
	// CreationTimestamp: Creation timestamp in RFC3339 text
	// format.
	CreationTimestamp string `json:"creationTimestamp,omitempty"`

	// Id: The unique identifier for the resource. This
	// identifier is defined by the server.
	ID uint64 `json:"id,omitempty"`

	// SelfLink: Server-defined URL for the resource.
	SelfLink string `json:"selfLink,omitempty"`
}

A RouterObservation represents the observed state of a Google Compute Engine Router.

func (*RouterObservation) DeepCopy

func (in *RouterObservation) DeepCopy() *RouterObservation

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterObservation.

func (*RouterObservation) DeepCopyInto

func (in *RouterObservation) DeepCopyInto(out *RouterObservation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RouterParameters

type RouterParameters struct {
	// Description: An optional description of this resource. Provide this
	// field when you create the resource.
	// +optional
	// +immutable
	Description *string `json:"description,omitempty"`

	// Region: URL of the region where the Subnetwork resides. This field
	// can be set only at resource creation time.
	// +immutable
	Region string `json:"region"`

	// Network: URI of the network to which this router belongs.
	// +immutable
	// +optional
	Network *string `json:"network,omitempty"`

	// NetworkRef references a Network and retrieves its URI
	// +optional
	// +immutable
	NetworkRef *xpv1.Reference `json:"networkRef,omitempty"`

	// NetworkSelector selects a reference to a Network
	// +optional
	// +immutable
	NetworkSelector *xpv1.Selector `json:"networkSelector,omitempty"`

	// Bgp: BGP information specific to this router.
	// +optional
	Bgp *RouterBgp `json:"bgp,omitempty"`

	// BgpPeers: BGP information that must be configured into the routing
	// stack to establish BGP peering. This information must specify the
	// peer ASN and either the interface name, IP address, or peer IP
	// address. Please refer to RFC4273.
	// +optional
	BgpPeers []*RouterBgpPeer `json:"bgpPeers,omitempty"`

	// EncryptedInterconnectRouter: Field to indicate if a router is
	// dedicated to use with encrypted Interconnect Attachment
	// (IPsec-encrypted Cloud Interconnect feature).
	// Not currently available in all Interconnect locations.
	// +optional
	EncryptedInterconnectRouter *bool `json:"encryptedInterconnectRouter,omitempty"`

	// Interfaces: Router interfaces. Each interface requires either one
	// linked resource, (for example, linkedVpnTunnel), or IP address and IP
	// address range (for example, ipRange), or both.
	// +optional
	Interfaces []*RouterInterface `json:"interfaces,omitempty"`

	// Nats: A list of NAT services created in this router.
	// +optional
	Nats []*RouterNat `json:"nats,omitempty"`
}

RouterParameters define the desired state of a Google Compute Engine Router. Most fields map directly to a Router: https://cloud.google.com/compute/docs/reference/rest/v1/routers/

func (*RouterParameters) DeepCopy

func (in *RouterParameters) DeepCopy() *RouterParameters

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterParameters.

func (*RouterParameters) DeepCopyInto

func (in *RouterParameters) DeepCopyInto(out *RouterParameters)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RouterSpec

type RouterSpec struct {
	xpv1.ResourceSpec `json:",inline"`
	ForProvider       RouterParameters `json:"forProvider"`
}

A RouterSpec defines the desired state of a Router.

func (*RouterSpec) DeepCopy

func (in *RouterSpec) DeepCopy() *RouterSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterSpec.

func (*RouterSpec) DeepCopyInto

func (in *RouterSpec) DeepCopyInto(out *RouterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RouterStatus

type RouterStatus struct {
	xpv1.ResourceStatus `json:",inline"`
	AtProvider          RouterObservation `json:"atProvider,omitempty"`
}

A RouterStatus represents the observed state of a Router.

func (*RouterStatus) DeepCopy

func (in *RouterStatus) DeepCopy() *RouterStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterStatus.

func (*RouterStatus) DeepCopyInto

func (in *RouterStatus) DeepCopyInto(out *RouterStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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