Documentation

Overview

A Pulumi package for creating and managing linode cloud resources.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Domain

type Domain struct {
	pulumi.CustomResourceState

	// The list of IPs that may perform a zone transfer for this Domain. This is potentially dangerous, and should be set to an empty list unless you intend to use it.
	AxfrIps pulumi.StringArrayOutput `pulumi:"axfrIps"`
	// A description for this Domain. This is for display purposes only.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The domain this Domain represents. These must be unique in our system; you cannot have two Domains representing the same domain.
	Domain pulumi.StringOutput `pulumi:"domain"`
	// The amount of time in seconds that may pass before this Domain is no longer authoritative. Valid values are 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
	ExpireSec pulumi.IntPtrOutput `pulumi:"expireSec"`
	// The group this Domain belongs to. This is for display purposes only.
	Group pulumi.StringPtrOutput `pulumi:"group"`
	// The IP addresses representing the master DNS for this Domain.
	MasterIps pulumi.StringArrayOutput `pulumi:"masterIps"`
	// The amount of time in seconds before this Domain should be refreshed. Valid values are 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
	RefreshSec pulumi.IntPtrOutput `pulumi:"refreshSec"`
	// The interval, in seconds, at which a failed refresh should be retried. Valid values are 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
	RetrySec pulumi.IntPtrOutput `pulumi:"retrySec"`
	// Start of Authority email address. This is required for master Domains.
	SoaEmail pulumi.StringPtrOutput `pulumi:"soaEmail"`
	// Used to control whether this Domain is currently being rendered (defaults to "active").
	Status pulumi.StringOutput `pulumi:"status"`
	// A list of tags applied to this object. Tags are for organizational purposes only.
	Tags pulumi.StringArrayOutput `pulumi:"tags"`
	// 'Time to Live' - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
	TtlSec pulumi.IntPtrOutput `pulumi:"ttlSec"`
	// If this Domain represents the authoritative source of information for the domain it describes, or if it is a read-only copy of a master (also called a slave).
	Type pulumi.StringOutput `pulumi:"type"`
}

Provides a Linode Domain resource. This can be used to create, modify, and delete Linode Domains through Linode's managed DNS service. For more information, see [DNS Manager](https://www.linode.com/docs/platform/manager/dns-manager/) and the [Linode APIv4 docs](https://developers.linode.com/api/v4#operation/createDomain).

## Example Usage

The following example shows how one might use this resource to configure a Domain Record attached to a Linode Domain.

```go package main

import (

"github.com/pulumi/pulumi-linode/sdk/v2/go/linode"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {

pulumi.Run(func(ctx *pulumi.Context) error {
	foobarDomain, err := linode.NewDomain(ctx, "foobarDomain", &linode.DomainArgs{
		Domain:   pulumi.String("foobar.example"),
		SoaEmail: pulumi.String("example@foobar.example"),
		Tags: pulumi.StringArray{
			pulumi.String("foo"),
			pulumi.String("bar"),
		},
		Type: pulumi.String("master"),
	})
	if err != nil {
		return err
	}
	_, err = linode.NewDomainRecord(ctx, "foobarDomainRecord", &linode.DomainRecordArgs{
		DomainId:   foobarDomain.ID(),
		Name:       pulumi.String("www"),
		RecordType: pulumi.String("CNAME"),
		Target:     pulumi.String("foobar.example"),
	})
	if err != nil {
		return err
	}
	return nil
})

} ``` ## Attributes

This resource exports no additional attributes, however `status` may reflect degraded states.

## Import

Linodes Domains can be imported using the Linode Domain `id`, e.g.

```sh

$ pulumi import linode:index/domain:Domain foobar 1234567

```

The Linode Guide, [Import Existing Infrastructure to Terraform](https://www.linode.com/docs/applications/configuration-management/import-existing-infrastructure-to-terraform/), offers resource importing examples for Domains and other Linode resource types.

func GetDomain

func GetDomain(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DomainState, opts ...pulumi.ResourceOption) (*Domain, error)

GetDomain gets an existing Domain resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewDomain

func NewDomain(ctx *pulumi.Context,
	name string, args *DomainArgs, opts ...pulumi.ResourceOption) (*Domain, error)

NewDomain registers a new resource with the given unique name, arguments, and options.

func (Domain) ElementType

func (Domain) ElementType() reflect.Type

func (Domain) ToDomainOutput

func (i Domain) ToDomainOutput() DomainOutput

func (Domain) ToDomainOutputWithContext

func (i Domain) ToDomainOutputWithContext(ctx context.Context) DomainOutput

type DomainArgs

type DomainArgs struct {
	// The list of IPs that may perform a zone transfer for this Domain. This is potentially dangerous, and should be set to an empty list unless you intend to use it.
	AxfrIps pulumi.StringArrayInput
	// A description for this Domain. This is for display purposes only.
	Description pulumi.StringPtrInput
	// The domain this Domain represents. These must be unique in our system; you cannot have two Domains representing the same domain.
	Domain pulumi.StringInput
	// The amount of time in seconds that may pass before this Domain is no longer authoritative. Valid values are 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
	ExpireSec pulumi.IntPtrInput
	// The group this Domain belongs to. This is for display purposes only.
	Group pulumi.StringPtrInput
	// The IP addresses representing the master DNS for this Domain.
	MasterIps pulumi.StringArrayInput
	// The amount of time in seconds before this Domain should be refreshed. Valid values are 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
	RefreshSec pulumi.IntPtrInput
	// The interval, in seconds, at which a failed refresh should be retried. Valid values are 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
	RetrySec pulumi.IntPtrInput
	// Start of Authority email address. This is required for master Domains.
	SoaEmail pulumi.StringPtrInput
	// Used to control whether this Domain is currently being rendered (defaults to "active").
	Status pulumi.StringPtrInput
	// A list of tags applied to this object. Tags are for organizational purposes only.
	Tags pulumi.StringArrayInput
	// 'Time to Live' - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
	TtlSec pulumi.IntPtrInput
	// If this Domain represents the authoritative source of information for the domain it describes, or if it is a read-only copy of a master (also called a slave).
	Type pulumi.StringInput
}

The set of arguments for constructing a Domain resource.

func (DomainArgs) ElementType

func (DomainArgs) ElementType() reflect.Type

type DomainInput

type DomainInput interface {
	pulumi.Input

	ToDomainOutput() DomainOutput
	ToDomainOutputWithContext(ctx context.Context) DomainOutput
}

type DomainOutput

type DomainOutput struct {
	*pulumi.OutputState
}

func (DomainOutput) ElementType

func (DomainOutput) ElementType() reflect.Type

func (DomainOutput) ToDomainOutput

func (o DomainOutput) ToDomainOutput() DomainOutput

func (DomainOutput) ToDomainOutputWithContext

func (o DomainOutput) ToDomainOutputWithContext(ctx context.Context) DomainOutput

type DomainRecord

type DomainRecord struct {
	pulumi.CustomResourceState

	// The ID of the Domain to access.  *Changing `domainId` forces the creation of a new Linode Domain Record.*.
	DomainId pulumi.IntOutput `pulumi:"domainId"`
	// The name of this Record. Setting this is invalid for `SRV` records as it is generated by the API. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the subdomain being associated with an IP address.
	Name pulumi.StringOutput `pulumi:"name"`
	// The port this Record points to.
	Port pulumi.IntPtrOutput `pulumi:"port"`
	// The priority of the target host. Lower values are preferred.
	Priority pulumi.IntPtrOutput `pulumi:"priority"`
	// The protocol this Record's service communicates with. Only valid for SRV records.
	Protocol pulumi.StringPtrOutput `pulumi:"protocol"`
	// The type of Record this is in the DNS system. For example, A records associate a domain name with an IPv4 address, and AAAA records associate a domain name with an IPv6 address. *Changing `recordType` forces the creation of a new Linode Domain Record.*.
	RecordType pulumi.StringOutput `pulumi:"recordType"`
	// The service this Record identified. Only valid for SRV records.
	Service pulumi.StringPtrOutput `pulumi:"service"`
	// The tag portion of a CAA record. It is invalid to set this on other record types.
	Tag pulumi.StringPtrOutput `pulumi:"tag"`
	// The target for this Record. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the address the named Domain should resolve to.
	Target pulumi.StringOutput `pulumi:"target"`
	// 'Time to Live' - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
	TtlSec pulumi.IntPtrOutput `pulumi:"ttlSec"`
	// The relative weight of this Record. Higher values are preferred.
	Weight pulumi.IntPtrOutput `pulumi:"weight"`
}

Provides a Linode Domain Record resource. This can be used to create, modify, and delete Linodes Domain Records. For more information, see [DNS Manager](https://www.linode.com/docs/platform/manager/dns-manager/) and the [Linode APIv4 docs](https://developers.linode.com/api/v4#operation/createDomainRecord).

## Example Usage

The following example shows how one might use this resource to configure a Domain Record attached to a Linode Domain.

```go package main

import (

"github.com/pulumi/pulumi-linode/sdk/v2/go/linode"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {

pulumi.Run(func(ctx *pulumi.Context) error {
	foobarDomain, err := linode.NewDomain(ctx, "foobarDomain", &linode.DomainArgs{
		Domain:   pulumi.String("foobar.example"),
		SoaEmail: pulumi.String("example@foobar.example"),
		Type:     pulumi.String("master"),
	})
	if err != nil {
		return err
	}
	_, err = linode.NewDomainRecord(ctx, "foobarDomainRecord", &linode.DomainRecordArgs{
		DomainId:   foobarDomain.ID(),
		Name:       pulumi.String("www"),
		RecordType: pulumi.String("CNAME"),
		Target:     pulumi.String("foobar.example"),
	})
	if err != nil {
		return err
	}
	return nil
})

} ``` ## Attributes

This resource exports no additional attributes.

## Import

Linodes Domain Records can be imported using the Linode Domain `id` followed by the Domain Record `id` separated by a comma, e.g.

```sh

$ pulumi import linode:index/domainRecord:DomainRecord www-foobar 1234567,7654321

```

The Linode Guide, [Import Existing Infrastructure to Terraform](https://www.linode.com/docs/applications/configuration-management/import-existing-infrastructure-to-terraform/), offers resource importing examples for Domain Records and other Linode resource types.

func GetDomainRecord

func GetDomainRecord(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DomainRecordState, opts ...pulumi.ResourceOption) (*DomainRecord, error)

GetDomainRecord gets an existing DomainRecord resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewDomainRecord

func NewDomainRecord(ctx *pulumi.Context,
	name string, args *DomainRecordArgs, opts ...pulumi.ResourceOption) (*DomainRecord, error)

NewDomainRecord registers a new resource with the given unique name, arguments, and options.

func (DomainRecord) ElementType

func (DomainRecord) ElementType() reflect.Type

func (DomainRecord) ToDomainRecordOutput

func (i DomainRecord) ToDomainRecordOutput() DomainRecordOutput

func (DomainRecord) ToDomainRecordOutputWithContext

func (i DomainRecord) ToDomainRecordOutputWithContext(ctx context.Context) DomainRecordOutput

type DomainRecordArgs

type DomainRecordArgs struct {
	// The ID of the Domain to access.  *Changing `domainId` forces the creation of a new Linode Domain Record.*.
	DomainId pulumi.IntInput
	// The name of this Record. Setting this is invalid for `SRV` records as it is generated by the API. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the subdomain being associated with an IP address.
	Name pulumi.StringPtrInput
	// The port this Record points to.
	Port pulumi.IntPtrInput
	// The priority of the target host. Lower values are preferred.
	Priority pulumi.IntPtrInput
	// The protocol this Record's service communicates with. Only valid for SRV records.
	Protocol pulumi.StringPtrInput
	// The type of Record this is in the DNS system. For example, A records associate a domain name with an IPv4 address, and AAAA records associate a domain name with an IPv6 address. *Changing `recordType` forces the creation of a new Linode Domain Record.*.
	RecordType pulumi.StringInput
	// The service this Record identified. Only valid for SRV records.
	Service pulumi.StringPtrInput
	// The tag portion of a CAA record. It is invalid to set this on other record types.
	Tag pulumi.StringPtrInput
	// The target for this Record. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the address the named Domain should resolve to.
	Target pulumi.StringInput
	// 'Time to Live' - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
	TtlSec pulumi.IntPtrInput
	// The relative weight of this Record. Higher values are preferred.
	Weight pulumi.IntPtrInput
}

The set of arguments for constructing a DomainRecord resource.

func (DomainRecordArgs) ElementType

func (DomainRecordArgs) ElementType() reflect.Type

type DomainRecordInput

type DomainRecordInput interface {
	pulumi.Input

	ToDomainRecordOutput() DomainRecordOutput
	ToDomainRecordOutputWithContext(ctx context.Context) DomainRecordOutput
}

type DomainRecordOutput

type DomainRecordOutput struct {
	*pulumi.OutputState
}

func (DomainRecordOutput) ElementType

func (DomainRecordOutput) ElementType() reflect.Type

func (DomainRecordOutput) ToDomainRecordOutput

func (o DomainRecordOutput) ToDomainRecordOutput() DomainRecordOutput

func (DomainRecordOutput) ToDomainRecordOutputWithContext

func (o DomainRecordOutput) ToDomainRecordOutputWithContext(ctx context.Context) DomainRecordOutput

type DomainRecordState

type DomainRecordState struct {
	// The ID of the Domain to access.  *Changing `domainId` forces the creation of a new Linode Domain Record.*.
	DomainId pulumi.IntPtrInput
	// The name of this Record. Setting this is invalid for `SRV` records as it is generated by the API. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the subdomain being associated with an IP address.
	Name pulumi.StringPtrInput
	// The port this Record points to.
	Port pulumi.IntPtrInput
	// The priority of the target host. Lower values are preferred.
	Priority pulumi.IntPtrInput
	// The protocol this Record's service communicates with. Only valid for SRV records.
	Protocol pulumi.StringPtrInput
	// The type of Record this is in the DNS system. For example, A records associate a domain name with an IPv4 address, and AAAA records associate a domain name with an IPv6 address. *Changing `recordType` forces the creation of a new Linode Domain Record.*.
	RecordType pulumi.StringPtrInput
	// The service this Record identified. Only valid for SRV records.
	Service pulumi.StringPtrInput
	// The tag portion of a CAA record. It is invalid to set this on other record types.
	Tag pulumi.StringPtrInput
	// The target for this Record. This field's actual usage depends on the type of record this represents. For A and AAAA records, this is the address the named Domain should resolve to.
	Target pulumi.StringPtrInput
	// 'Time to Live' - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
	TtlSec pulumi.IntPtrInput
	// The relative weight of this Record. Higher values are preferred.
	Weight pulumi.IntPtrInput
}

func (DomainRecordState) ElementType

func (DomainRecordState) ElementType() reflect.Type

type DomainState

type DomainState struct {
	// The list of IPs that may perform a zone transfer for this Domain. This is potentially dangerous, and should be set to an empty list unless you intend to use it.
	AxfrIps pulumi.StringArrayInput
	// A description for this Domain. This is for display purposes only.
	Description pulumi.StringPtrInput
	// The domain this Domain represents. These must be unique in our system; you cannot have two Domains representing the same domain.
	Domain pulumi.StringPtrInput
	// The amount of time in seconds that may pass before this Domain is no longer authoritative. Valid values are 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
	ExpireSec pulumi.IntPtrInput
	// The group this Domain belongs to. This is for display purposes only.
	Group pulumi.StringPtrInput
	// The IP addresses representing the master DNS for this Domain.
	MasterIps pulumi.StringArrayInput
	// The amount of time in seconds before this Domain should be refreshed. Valid values are 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
	RefreshSec pulumi.IntPtrInput
	// The interval, in seconds, at which a failed refresh should be retried. Valid values are 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
	RetrySec pulumi.IntPtrInput
	// Start of Authority email address. This is required for master Domains.
	SoaEmail pulumi.StringPtrInput
	// Used to control whether this Domain is currently being rendered (defaults to "active").
	Status pulumi.StringPtrInput
	// A list of tags applied to this object. Tags are for organizational purposes only.
	Tags pulumi.StringArrayInput
	// 'Time to Live' - the amount of time in seconds that this Domain's records may be cached by resolvers or other domain servers. Valid values are 300, 3600, 7200, 14400, 28800, 57600, 86400, 172800, 345600, 604800, 1209600, and 2419200 - any other value will be rounded to the nearest valid value.
	TtlSec pulumi.IntPtrInput
	// If this Domain represents the authoritative source of information for the domain it describes, or if it is a read-only copy of a master (also called a slave).
	Type pulumi.StringPtrInput
}

func (DomainState) ElementType

func (DomainState) ElementType() reflect.Type

type Firewall

type Firewall struct {
	pulumi.CustomResourceState

	// The devices associated with this firewall.
	Devices FirewallDeviceArrayOutput `pulumi:"devices"`
	// If `true`, the Firewall's rules are not enforced (defaults to `false`).
	Disabled pulumi.BoolPtrOutput `pulumi:"disabled"`
	// A firewall rule that specifies what inbound network traffic is allowed.
	Inbounds FirewallInboundArrayOutput `pulumi:"inbounds"`
	// This Firewall's unique label.
	Label pulumi.StringOutput `pulumi:"label"`
	// A list of IDs of Linodes this Firewall should govern it's network traffic for.
	Linodes pulumi.IntArrayOutput `pulumi:"linodes"`
	// A firewall rule that specifies what outbound network traffic is allowed.
	Outbounds FirewallOutboundArrayOutput `pulumi:"outbounds"`
	// The status of the Firewall.
	Status pulumi.StringOutput `pulumi:"status"`
	// A list of tags applied to the Kubernetes cluster. Tags are for organizational purposes only.
	Tags pulumi.StringArrayOutput `pulumi:"tags"`
}

> **NOTICE:** The Firewall feature is currently available through early access.

Manages a Linode Firewall.

## Example Usage

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-linode/sdk/v2/go/linode"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {

pulumi.Run(func(ctx *pulumi.Context) error {
	myInstance, err := linode.NewInstance(ctx, "myInstance", &linode.InstanceArgs{
		Label:    pulumi.String("my_instance"),
		Image:    pulumi.String("linode/ubuntu18.04"),
		Region:   pulumi.String("us-east"),
		Type:     pulumi.String("g6-standard-1"),
		RootPass: pulumi.String(fmt.Sprintf("%v%v", "bogusPassword", "$")),
		SwapSize: pulumi.Int(256),
	})
	if err != nil {
		return err
	}
	_, err = linode.NewFirewall(ctx, "myFirewall", &linode.FirewallArgs{
		Label: pulumi.String("my_firewall"),
		Tags: pulumi.StringArray{
			pulumi.String("test"),
		},
		Inbounds: linode.FirewallInboundArray{
			&linode.FirewallInboundArgs{
				Protocol: pulumi.String("TCP"),
				Ports: pulumi.StringArray{
					pulumi.String("80"),
				},
				Addresses: pulumi.StringArray{
					pulumi.String("0.0.0.0/0"),
				},
			},
		},
		Outbounds: linode.FirewallOutboundArray{
			&linode.FirewallOutboundArgs{
				Protocol: pulumi.String("TCP"),
				Ports: pulumi.StringArray{
					pulumi.String("80"),
				},
				Addresses: pulumi.StringArray{
					pulumi.String("0.0.0.0/0"),
				},
			},
		},
		Linodes: pulumi.IntArray{
			myInstance.ID(),
		},
	})
	if err != nil {
		return err
	}
	return nil
})

} ```

## Import

Firewalls can be imported using the `id`, e.g.

```sh

$ pulumi import linode:index/firewall:Firewall my_firewall 12345

```

func GetFirewall

func GetFirewall(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FirewallState, opts ...pulumi.ResourceOption) (*Firewall, error)

GetFirewall gets an existing Firewall resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewFirewall

func NewFirewall(ctx *pulumi.Context,
	name string, args *FirewallArgs, opts ...pulumi.ResourceOption) (*Firewall, error)

NewFirewall registers a new resource with the given unique name, arguments, and options.

func (Firewall) ElementType

func (Firewall) ElementType() reflect.Type

func (Firewall) ToFirewallOutput

func (i Firewall) ToFirewallOutput() FirewallOutput

func (Firewall) ToFirewallOutputWithContext

func (i Firewall) ToFirewallOutputWithContext(ctx context.Context) FirewallOutput

type FirewallArgs

type FirewallArgs struct {
	// If `true`, the Firewall's rules are not enforced (defaults to `false`).
	Disabled pulumi.BoolPtrInput
	// A firewall rule that specifies what inbound network traffic is allowed.
	Inbounds FirewallInboundArrayInput
	// This Firewall's unique label.
	Label pulumi.StringPtrInput
	// A list of IDs of Linodes this Firewall should govern it's network traffic for.
	Linodes pulumi.IntArrayInput
	// A firewall rule that specifies what outbound network traffic is allowed.
	Outbounds FirewallOutboundArrayInput
	// A list of tags applied to the Kubernetes cluster. Tags are for organizational purposes only.
	Tags pulumi.StringArrayInput
}

The set of arguments for constructing a Firewall resource.

func (FirewallArgs) ElementType

func (FirewallArgs) ElementType() reflect.Type

type FirewallDevice

type FirewallDevice struct {
	// The ID of the underlying entity this device references (i.e. the Linode's ID).
	EntityId *int `pulumi:"entityId"`
	// The ID of the Firewall Device.
	Id *int `pulumi:"id"`
	// This Firewall's unique label.
	Label *string `pulumi:"label"`
	// The type of Firewall Device.
	Type *string `pulumi:"type"`
	Url  *string `pulumi:"url"`
}

type FirewallDeviceArgs

type FirewallDeviceArgs struct {
	// The ID of the underlying entity this device references (i.e. the Linode's ID).
	EntityId pulumi.IntPtrInput `pulumi:"entityId"`
	// The ID of the Firewall Device.
	Id pulumi.IntPtrInput `pulumi:"id"`
	// This Firewall's unique label.
	Label pulumi.StringPtrInput `pulumi:"label"`
	// The type of Firewall Device.
	Type pulumi.StringPtrInput `pulumi:"type"`
	Url  pulumi.StringPtrInput `pulumi:"url"`
}

func (FirewallDeviceArgs) ElementType

func (FirewallDeviceArgs) ElementType() reflect.Type

func (FirewallDeviceArgs) ToFirewallDeviceOutput

func (i FirewallDeviceArgs) ToFirewallDeviceOutput() FirewallDeviceOutput

func (FirewallDeviceArgs) ToFirewallDeviceOutputWithContext

func (i FirewallDeviceArgs) ToFirewallDeviceOutputWithContext(ctx context.Context) FirewallDeviceOutput

type FirewallDeviceArray

type FirewallDeviceArray []FirewallDeviceInput

func (FirewallDeviceArray) ElementType

func (FirewallDeviceArray) ElementType() reflect.Type

func (FirewallDeviceArray) ToFirewallDeviceArrayOutput

func (i FirewallDeviceArray) ToFirewallDeviceArrayOutput() FirewallDeviceArrayOutput

func (FirewallDeviceArray) ToFirewallDeviceArrayOutputWithContext

func (i FirewallDeviceArray) ToFirewallDeviceArrayOutputWithContext(ctx context.Context) FirewallDeviceArrayOutput

type FirewallDeviceArrayInput

type FirewallDeviceArrayInput interface {
	pulumi.Input

	ToFirewallDeviceArrayOutput() FirewallDeviceArrayOutput
	ToFirewallDeviceArrayOutputWithContext(context.Context) FirewallDeviceArrayOutput
}

FirewallDeviceArrayInput is an input type that accepts FirewallDeviceArray and FirewallDeviceArrayOutput values. You can construct a concrete instance of `FirewallDeviceArrayInput` via:

FirewallDeviceArray{ FirewallDeviceArgs{...} }

type FirewallDeviceArrayOutput

type FirewallDeviceArrayOutput struct{ *pulumi.OutputState }

func (FirewallDeviceArrayOutput) ElementType

func (FirewallDeviceArrayOutput) ElementType() reflect.Type

func (FirewallDeviceArrayOutput) Index

func (FirewallDeviceArrayOutput) ToFirewallDeviceArrayOutput

func (o FirewallDeviceArrayOutput) ToFirewallDeviceArrayOutput() FirewallDeviceArrayOutput

func (FirewallDeviceArrayOutput) ToFirewallDeviceArrayOutputWithContext

func (o FirewallDeviceArrayOutput) ToFirewallDeviceArrayOutputWithContext(ctx context.Context) FirewallDeviceArrayOutput

type FirewallDeviceInput

type FirewallDeviceInput interface {
	pulumi.Input

	ToFirewallDeviceOutput() FirewallDeviceOutput
	ToFirewallDeviceOutputWithContext(context.Context) FirewallDeviceOutput
}

FirewallDeviceInput is an input type that accepts FirewallDeviceArgs and FirewallDeviceOutput values. You can construct a concrete instance of `FirewallDeviceInput` via:

FirewallDeviceArgs{...}

type FirewallDeviceOutput

type FirewallDeviceOutput struct{ *pulumi.OutputState }

func (FirewallDeviceOutput) ElementType

func (FirewallDeviceOutput) ElementType() reflect.Type

func (FirewallDeviceOutput) EntityId

The ID of the underlying entity this device references (i.e. the Linode's ID).

func (FirewallDeviceOutput) Id

The ID of the Firewall Device.

func (FirewallDeviceOutput) Label

This Firewall's unique label.

func (FirewallDeviceOutput) ToFirewallDeviceOutput

func (o FirewallDeviceOutput) ToFirewallDeviceOutput() FirewallDeviceOutput

func (FirewallDeviceOutput) ToFirewallDeviceOutputWithContext

func (o FirewallDeviceOutput) ToFirewallDeviceOutputWithContext(ctx context.Context) FirewallDeviceOutput

func (FirewallDeviceOutput) Type

The type of Firewall Device.

func (FirewallDeviceOutput) Url

type FirewallInbound

type FirewallInbound struct {
	// A list of IP addresses, CIDR blocks, or `0.0.0.0/0` (to allow all) this rule applies to.
	Addresses []string `pulumi:"addresses"`
	// A list of ports and/or port ranges (i.e. "443" or "80-90").
	Ports []string `pulumi:"ports"`
	// The network protocol this rule controls.
	Protocol string `pulumi:"protocol"`
}

type FirewallInboundArgs

type FirewallInboundArgs struct {
	// A list of IP addresses, CIDR blocks, or `0.0.0.0/0` (to allow all) this rule applies to.
	Addresses pulumi.StringArrayInput `pulumi:"addresses"`
	// A list of ports and/or port ranges (i.e. "443" or "80-90").
	Ports pulumi.StringArrayInput `pulumi:"ports"`
	// The network protocol this rule controls.
	Protocol pulumi.StringInput `pulumi:"protocol"`
}

func (FirewallInboundArgs) ElementType

func (FirewallInboundArgs) ElementType() reflect.Type

func (FirewallInboundArgs) ToFirewallInboundOutput

func (i FirewallInboundArgs) ToFirewallInboundOutput() FirewallInboundOutput

func (FirewallInboundArgs) ToFirewallInboundOutputWithContext

func (i FirewallInboundArgs) ToFirewallInboundOutputWithContext(ctx context.Context) FirewallInboundOutput

type FirewallInboundArray

type FirewallInboundArray []FirewallInboundInput

func (FirewallInboundArray) ElementType

func (FirewallInboundArray) ElementType() reflect.Type

func (FirewallInboundArray) ToFirewallInboundArrayOutput

func (i FirewallInboundArray) ToFirewallInboundArrayOutput() FirewallInboundArrayOutput

func (FirewallInboundArray) ToFirewallInboundArrayOutputWithContext

func (i FirewallInboundArray) ToFirewallInboundArrayOutputWithContext(ctx context.Context) FirewallInboundArrayOutput

type FirewallInboundArrayInput

type FirewallInboundArrayInput interface {
	pulumi.Input

	ToFirewallInboundArrayOutput() FirewallInboundArrayOutput
	ToFirewallInboundArrayOutputWithContext(context.Context) FirewallInboundArrayOutput
}

FirewallInboundArrayInput is an input type that accepts FirewallInboundArray and FirewallInboundArrayOutput values. You can construct a concrete instance of `FirewallInboundArrayInput` via:

FirewallInboundArray{ FirewallInboundArgs{...} }

type FirewallInboundArrayOutput

type FirewallInboundArrayOutput struct{ *pulumi.OutputState }

func (FirewallInboundArrayOutput) ElementType

func (FirewallInboundArrayOutput) ElementType() reflect.Type

func (FirewallInboundArrayOutput) Index

func (FirewallInboundArrayOutput) ToFirewallInboundArrayOutput

func (o FirewallInboundArrayOutput) ToFirewallInboundArrayOutput() FirewallInboundArrayOutput

func (FirewallInboundArrayOutput) ToFirewallInboundArrayOutputWithContext

func (o FirewallInboundArrayOutput) ToFirewallInboundArrayOutputWithContext(ctx context.Context) FirewallInboundArrayOutput

type FirewallInboundInput

type FirewallInboundInput interface {
	pulumi.Input

	ToFirewallInboundOutput() FirewallInboundOutput
	ToFirewallInboundOutputWithContext(context.Context) FirewallInboundOutput
}

FirewallInboundInput is an input type that accepts FirewallInboundArgs and FirewallInboundOutput values. You can construct a concrete instance of `FirewallInboundInput` via:

FirewallInboundArgs{...}

type FirewallInboundOutput

type FirewallInboundOutput struct{ *pulumi.OutputState }

func (FirewallInboundOutput) Addresses

A list of IP addresses, CIDR blocks, or `0.0.0.0/0` (to allow all) this rule applies to.

func (FirewallInboundOutput) ElementType

func (FirewallInboundOutput) ElementType() reflect.Type

func (FirewallInboundOutput) Ports

A list of ports and/or port ranges (i.e. "443" or "80-90").

func (FirewallInboundOutput) Protocol

The network protocol this rule controls.

func (FirewallInboundOutput) ToFirewallInboundOutput

func (o FirewallInboundOutput) ToFirewallInboundOutput() FirewallInboundOutput

func (FirewallInboundOutput) ToFirewallInboundOutputWithContext

func (o FirewallInboundOutput) ToFirewallInboundOutputWithContext(ctx context.Context) FirewallInboundOutput

type FirewallInput

type FirewallInput interface {
	pulumi.Input

	ToFirewallOutput() FirewallOutput
	ToFirewallOutputWithContext(ctx context.Context) FirewallOutput
}

type FirewallOutbound

type FirewallOutbound struct {
	// A list of IP addresses, CIDR blocks, or `0.0.0.0/0` (to allow all) this rule applies to.
	Addresses []string `pulumi:"addresses"`
	// A list of ports and/or port ranges (i.e. "443" or "80-90").
	Ports []string `pulumi:"ports"`
	// The network protocol this rule controls.
	Protocol string `pulumi:"protocol"`
}

type FirewallOutboundArgs

type FirewallOutboundArgs struct {
	// A list of IP addresses, CIDR blocks, or `0.0.0.0/0` (to allow all) this rule applies to.
	Addresses pulumi.StringArrayInput `pulumi:"addresses"`
	// A list of ports and/or port ranges (i.e. "443" or "80-90").
	Ports pulumi.StringArrayInput `pulumi:"ports"`
	// The network protocol this rule controls.
	Protocol pulumi.StringInput `pulumi:"protocol"`
}

func (FirewallOutboundArgs) ElementType

func (FirewallOutboundArgs) ElementType() reflect.Type

func (FirewallOutboundArgs) ToFirewallOutboundOutput

func (i FirewallOutboundArgs) ToFirewallOutboundOutput() FirewallOutboundOutput

func (FirewallOutboundArgs) ToFirewallOutboundOutputWithContext

func (i FirewallOutboundArgs) ToFirewallOutboundOutputWithContext(ctx context.Context) FirewallOutboundOutput

type FirewallOutboundArray

type FirewallOutboundArray []FirewallOutboundInput

func (FirewallOutboundArray) ElementType

func (FirewallOutboundArray) ElementType() reflect.Type

func (FirewallOutboundArray) ToFirewallOutboundArrayOutput

func (i FirewallOutboundArray) ToFirewallOutboundArrayOutput() FirewallOutboundArrayOutput

func (FirewallOutboundArray) ToFirewallOutboundArrayOutputWithContext

func (i FirewallOutboundArray) ToFirewallOutboundArrayOutputWithContext(ctx context.Context) FirewallOutboundArrayOutput

type FirewallOutboundArrayInput

type FirewallOutboundArrayInput interface {
	pulumi.Input

	ToFirewallOutboundArrayOutput() FirewallOutboundArrayOutput
	ToFirewallOutboundArrayOutputWithContext(context.Context) FirewallOutboundArrayOutput
}

FirewallOutboundArrayInput is an input type that accepts FirewallOutboundArray and FirewallOutboundArrayOutput values. You can construct a concrete instance of `FirewallOutboundArrayInput` via:

FirewallOutboundArray{ FirewallOutboundArgs{...} }

type FirewallOutboundArrayOutput

type FirewallOutboundArrayOutput struct{ *pulumi.OutputState }

func (FirewallOutboundArrayOutput) ElementType

func (FirewallOutboundArrayOutput) Index

func (FirewallOutboundArrayOutput) ToFirewallOutboundArrayOutput

func (o FirewallOutboundArrayOutput) ToFirewallOutboundArrayOutput() FirewallOutboundArrayOutput

func (FirewallOutboundArrayOutput) ToFirewallOutboundArrayOutputWithContext

func (o FirewallOutboundArrayOutput) ToFirewallOutboundArrayOutputWithContext(ctx context.Context) FirewallOutboundArrayOutput

type FirewallOutboundInput

type FirewallOutboundInput interface {
	pulumi.Input

	ToFirewallOutboundOutput() FirewallOutboundOutput
	ToFirewallOutboundOutputWithContext(context.Context) FirewallOutboundOutput
}

FirewallOutboundInput is an input type that accepts FirewallOutboundArgs and FirewallOutboundOutput values. You can construct a concrete instance of `FirewallOutboundInput` via:

FirewallOutboundArgs{...}

type FirewallOutboundOutput

type FirewallOutboundOutput struct{ *pulumi.OutputState }

func (FirewallOutboundOutput) Addresses

A list of IP addresses, CIDR blocks, or `0.0.0.0/0` (to allow all) this rule applies to.

func (FirewallOutboundOutput) ElementType

func (FirewallOutboundOutput) ElementType() reflect.Type

func (FirewallOutboundOutput) Ports

A list of ports and/or port ranges (i.e. "443" or "80-90").

func (FirewallOutboundOutput) Protocol

The network protocol this rule controls.

func (FirewallOutboundOutput) ToFirewallOutboundOutput

func (o FirewallOutboundOutput) ToFirewallOutboundOutput() FirewallOutboundOutput

func (FirewallOutboundOutput) ToFirewallOutboundOutputWithContext

func (o FirewallOutboundOutput) ToFirewallOutboundOutputWithContext(ctx context.Context) FirewallOutboundOutput

type FirewallOutput

type FirewallOutput struct {
	*pulumi.OutputState
}

func (FirewallOutput) ElementType

func (FirewallOutput) ElementType() reflect.Type

func (FirewallOutput) ToFirewallOutput

func (o FirewallOutput) ToFirewallOutput() FirewallOutput

func (FirewallOutput) ToFirewallOutputWithContext

func (o FirewallOutput) ToFirewallOutputWithContext(ctx context.Context) FirewallOutput

type FirewallState

type FirewallState struct {
	// The devices associated with this firewall.
	Devices FirewallDeviceArrayInput
	// If `true`, the Firewall's rules are not enforced (defaults to `false`).
	Disabled pulumi.BoolPtrInput
	// A firewall rule that specifies what inbound network traffic is allowed.
	Inbounds FirewallInboundArrayInput
	// This Firewall's unique label.
	Label pulumi.StringPtrInput
	// A list of IDs of Linodes this Firewall should govern it's network traffic for.
	Linodes pulumi.IntArrayInput
	// A firewall rule that specifies what outbound network traffic is allowed.
	Outbounds FirewallOutboundArrayInput
	// The status of the Firewall.
	Status pulumi.StringPtrInput
	// A list of tags applied to the Kubernetes cluster. Tags are for organizational purposes only.
	Tags pulumi.StringArrayInput
}

func (FirewallState) ElementType

func (FirewallState) ElementType() reflect.Type

type GetAccountResult

type GetAccountResult struct {
	Address1  string `pulumi:"address1"`
	Address2  string `pulumi:"address2"`
	Balance   int    `pulumi:"balance"`
	City      string `pulumi:"city"`
	Company   string `pulumi:"company"`
	Country   string `pulumi:"country"`
	Email     string `pulumi:"email"`
	FirstName string `pulumi:"firstName"`
	// The provider-assigned unique ID for this managed resource.
	Id       string `pulumi:"id"`
	LastName string `pulumi:"lastName"`
	Phone    string `pulumi:"phone"`
	State    string `pulumi:"state"`
	Zip      string `pulumi:"zip"`
}

A collection of values returned by getAccount.

func GetAccount

func GetAccount(ctx *pulumi.Context, opts ...pulumi.InvokeOption) (*GetAccountResult, error)

Provides information about a Linode account.

This data source should not be used in conjuction with the `LINODE_DEBUG` option. See the [debugging notes](https://www.terraform.io/providers/linode/linode/latest/docs#debugging) for more details.

## Example Usage

The following example shows how one might use this data source to access account details.

```go package main

import (

"github.com/pulumi/pulumi-linode/sdk/v2/go/linode"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {

pulumi.Run(func(ctx *pulumi.Context) error {
	_, err := linode.GetAccount(ctx, nil, nil)
	if err != nil {
		return err
	}
	return nil
})

} ``` ## Attributes

The Linode Account resource exports the following attributes:

* `email` - The email address for this Account, for account management communications, and may be used for other communications as configured.

* `firstName` - The first name of the person associated with this Account.

* `lastName` - The last name of the person associated with this Account.

* `company` - The company name associated with this Account.

* `address1` - First line of this Account's billing address.

* `address2` - Second line of this Account's billing address.

* `phone` - The phone number associated with this Account.

* `city` - The city for this Account's billing address.

* `state` - If billing address is in the United States, this is the State portion of the Account's billing address. If the address is outside the US, this is the Province associated with the Account's billing address.

* `country` - The two-letter country code of this Account's billing address.

* `zip` - The zip code of this Account's billing address.

* `balance` - This Account's balance, in US dollars.

type GetInstanceTypeAddons

type GetInstanceTypeAddons struct {
	Backups GetInstanceTypeAddonsBackups `pulumi:"backups"`
}

type GetInstanceTypeAddonsArgs

type GetInstanceTypeAddonsArgs struct {
	Backups GetInstanceTypeAddonsBackupsInput `pulumi:"backups"`
}

func (GetInstanceTypeAddonsArgs) ElementType

func (GetInstanceTypeAddonsArgs) ElementType() reflect.Type

func (GetInstanceTypeAddonsArgs) ToGetInstanceTypeAddonsOutput

func (i GetInstanceTypeAddonsArgs) ToGetInstanceTypeAddonsOutput() GetInstanceTypeAddonsOutput

func (GetInstanceTypeAddonsArgs) ToGetInstanceTypeAddonsOutputWithContext

func (i GetInstanceTypeAddonsArgs) ToGetInstanceTypeAddonsOutputWithContext(ctx context.Context) GetInstanceTypeAddonsOutput

type GetInstanceTypeAddonsBackups

type GetInstanceTypeAddonsBackups struct {
	Price GetInstanceTypeAddonsBackupsPrice `pulumi:"price"`
}

type GetInstanceTypeAddonsBackupsArgs

type GetInstanceTypeAddonsBackupsArgs struct {
	Price GetInstanceTypeAddonsBackupsPriceInput `pulumi:"price"`
}

func (GetInstanceTypeAddonsBackupsArgs) ElementType

func (GetInstanceTypeAddonsBackupsArgs) ToGetInstanceTypeAddonsBackupsOutput

func (i GetInstanceTypeAddonsBackupsArgs) ToGetInstanceTypeAddonsBackupsOutput() GetInstanceTypeAddonsBackupsOutput

func (GetInstanceTypeAddonsBackupsArgs) ToGetInstanceTypeAddonsBackupsOutputWithContext

func (i GetInstanceTypeAddonsBackupsArgs) ToGetInstanceTypeAddonsBackupsOutputWithContext(ctx context.Context) GetInstanceTypeAddonsBackupsOutput

type GetInstanceTypeAddonsBackupsInput

type GetInstanceTypeAddonsBackupsInput interface {
	pulumi.Input

	ToGetInstanceTypeAddonsBackupsOutput() GetInstanceTypeAddonsBackupsOutput
	ToGetInstanceTypeAddonsBackupsOutputWithContext(context.Context) GetInstanceTypeAddonsBackupsOutput
}

GetInstanceTypeAddonsBackupsInput is an input type that accepts GetInstanceTypeAddonsBackupsArgs and GetInstanceTypeAddonsBackupsOutput values. You can construct a concrete instance of `GetInstanceTypeAddonsBackupsInput` via:

GetInstanceTypeAddonsBackupsArgs{...}

type GetInstanceTypeAddonsBackupsOutput

type GetInstanceTypeAddonsBackupsOutput struct{ *pulumi.OutputState }

func (GetInstanceTypeAddonsBackupsOutput) ElementType

func (GetInstanceTypeAddonsBackupsOutput) Price

func (GetInstanceTypeAddonsBackupsOutput) ToGetInstanceTypeAddonsBackupsOutput

func (o GetInstanceTypeAddonsBackupsOutput) ToGetInstanceTypeAddonsBackupsOutput() GetInstanceTypeAddonsBackupsOutput

func (GetInstanceTypeAddonsBackupsOutput) ToGetInstanceTypeAddonsBackupsOutputWithContext

func (o GetInstanceTypeAddonsBackupsOutput) ToGetInstanceTypeAddonsBackupsOutputWithContext(ctx context.Context) GetInstanceTypeAddonsBackupsOutput

type GetInstanceTypeAddonsBackupsPrice

type GetInstanceTypeAddonsBackupsPrice struct {
	Hourly  float64 `pulumi:"hourly"`
	Monthly float64 `pulumi:"monthly"`
}

type GetInstanceTypeAddonsBackupsPriceArgs

type GetInstanceTypeAddonsBackupsPriceArgs struct {
	Hourly  pulumi.Float64Input `pulumi:"hourly"`
	Monthly pulumi.Float64Input `pulumi:"monthly"`
}

func (GetInstanceTypeAddonsBackupsPriceArgs) ElementType

func (GetInstanceTypeAddonsBackupsPriceArgs) ToGetInstanceTypeAddonsBackupsPriceOutput

func (i GetInstanceTypeAddonsBackupsPriceArgs) ToGetInstanceTypeAddonsBackupsPriceOutput() GetInstanceTypeAddonsBackupsPriceOutput

func (GetInstanceTypeAddonsBackupsPriceArgs) ToGetInstanceTypeAddonsBackupsPriceOutputWithContext

func (i GetInstanceTypeAddonsBackupsPriceArgs) ToGetInstanceTypeAddonsBackupsPriceOutputWithContext(ctx context.Context) GetInstanceTypeAddonsBackupsPriceOutput

type GetInstanceTypeAddonsBackupsPriceInput

type GetInstanceTypeAddonsBackupsPriceInput interface {
	pulumi.Input

	ToGetInstanceTypeAddonsBackupsPriceOutput() GetInstanceTypeAddonsBackupsPriceOutput
	ToGetInstanceTypeAddonsBackupsPriceOutputWithContext(context.Context) GetInstanceTypeAddonsBackupsPriceOutput
}

GetInstanceTypeAddonsBackupsPriceInput is an input type that accepts GetInstanceTypeAddonsBackupsPriceArgs and GetInstanceTypeAddonsBackupsPriceOutput values. You can construct a concrete instance of `GetInstanceTypeAddonsBackupsPriceInput` via:

GetInstanceTypeAddonsBackupsPriceArgs{...}

type GetInstanceTypeAddonsBackupsPriceOutput

type GetInstanceTypeAddonsBackupsPriceOutput struct{ *pulumi.OutputState }

func (GetInstanceTypeAddonsBackupsPriceOutput) ElementType

func (GetInstanceTypeAddonsBackupsPriceOutput) Hourly

func (GetInstanceTypeAddonsBackupsPriceOutput) Monthly

func (GetInstanceTypeAddonsBackupsPriceOutput) ToGetInstanceTypeAddonsBackupsPriceOutput

func (o GetInstanceTypeAddonsBackupsPriceOutput) ToGetInstanceTypeAddonsBackupsPriceOutput() GetInstanceTypeAddonsBackupsPriceOutput

func (GetInstanceTypeAddonsBackupsPriceOutput) ToGetInstanceTypeAddonsBackupsPriceOutputWithContext

func (o GetInstanceTypeAddonsBackupsPriceOutput) ToGetInstanceTypeAddonsBackupsPriceOutputWithContext(ctx context.Context) GetInstanceTypeAddonsBackupsPriceOutput

type GetInstanceTypeAddonsInput

type GetInstanceTypeAddonsInput interface {
	pulumi.Input

	ToGetInstanceTypeAddonsOutput() GetInstanceTypeAddonsOutput
	ToGetInstanceTypeAddonsOutputWithContext(context.Context) GetInstanceTypeAddonsOutput
}

GetInstanceTypeAddonsInput is an input type that accepts GetInstanceTypeAddonsArgs and GetInstanceTypeAddonsOutput values. You can construct a concrete instance of `GetInstanceTypeAddonsInput` via:

GetInstanceTypeAddonsArgs{...}

type GetInstanceTypeAddonsOutput

type GetInstanceTypeAddonsOutput struct{ *pulumi.OutputState }

func (GetInstanceTypeAddonsOutput) Backups

func (GetInstanceTypeAddonsOutput) ElementType

func (GetInstanceTypeAddonsOutput) ToGetInstanceTypeAddonsOutput

func (o GetInstanceTypeAddonsOutput) ToGetInstanceTypeAddonsOutput() GetInstanceTypeAddonsOutput

func (GetInstanceTypeAddonsOutput) ToGetInstanceTypeAddonsOutputWithContext

func (o GetInstanceTypeAddonsOutput) ToGetInstanceTypeAddonsOutputWithContext(ctx context.Context) GetInstanceTypeAddonsOutput

type GetInstanceTypeArgs

type GetInstanceTypeArgs struct {
	// Label used to identify instance type
	Id    string  `pulumi:"id"`
	Label *string `pulumi:"label"`
}

A collection of arguments for invoking getInstanceType.

type GetInstanceTypePrice

type GetInstanceTypePrice struct {
	Hourly  float64 `pulumi:"hourly"`
	Monthly float64 `pulumi:"monthly"`
}

type GetInstanceTypePriceArgs

type GetInstanceTypePriceArgs struct {
	Hourly  pulumi.Float64Input `pulumi:"hourly"`
	Monthly pulumi.Float64Input `pulumi:"monthly"`
}

func (GetInstanceTypePriceArgs) ElementType

func (GetInstanceTypePriceArgs) ElementType() reflect.Type

func (GetInstanceTypePriceArgs) ToGetInstanceTypePriceOutput

func (i GetInstanceTypePriceArgs) ToGetInstanceTypePriceOutput() GetInstanceTypePriceOutput

func (GetInstanceTypePriceArgs) ToGetInstanceTypePriceOutputWithContext

func (i GetInstanceTypePriceArgs) ToGetInstanceTypePriceOutputWithContext(ctx context.Context) GetInstanceTypePriceOutput

type GetInstanceTypePriceInput

type GetInstanceTypePriceInput interface {
	pulumi.Input

	ToGetInstanceTypePriceOutput() GetInstanceTypePriceOutput
	ToGetInstanceTypePriceOutputWithContext(context.Context) GetInstanceTypePriceOutput
}

GetInstanceTypePriceInput is an input type that accepts GetInstanceTypePriceArgs and GetInstanceTypePriceOutput values. You can construct a concrete instance of `GetInstanceTypePriceInput` via:

GetInstanceTypePriceArgs{...}

type GetInstanceTypePriceOutput

type GetInstanceTypePriceOutput struct{ *pulumi.OutputState }

func (GetInstanceTypePriceOutput) ElementType

func (GetInstanceTypePriceOutput) ElementType() reflect.Type

func (GetInstanceTypePriceOutput) Hourly

func (GetInstanceTypePriceOutput) Monthly

func (GetInstanceTypePriceOutput) ToGetInstanceTypePriceOutput

func (o GetInstanceTypePriceOutput) ToGetInstanceTypePriceOutput() GetInstanceTypePriceOutput

func (GetInstanceTypePriceOutput) ToGetInstanceTypePriceOutputWithContext

func (o GetInstanceTypePriceOutput) ToGetInstanceTypePriceOutputWithContext(ctx context.Context) GetInstanceTypePriceOutput

type GetInstanceTypeResult

type GetInstanceTypeResult struct {
	Addons     GetInstanceTypeAddons `pulumi:"addons"`
	Class      string                `pulumi:"class"`
	Disk       int                   `pulumi:"disk"`
	Id         string                `pulumi:"id"`
	Label      string                `pulumi:"label"`
	Memory     int                   `pulumi:"memory"`
	NetworkOut int                   `pulumi:"networkOut"`
	Price      GetInstanceTypePrice  `pulumi:"price"`
	Transfer   int                   `pulumi:"transfer"`
	Vcpus      int                   `pulumi:"vcpus"`
}

A collection of values returned by getInstanceType.

func GetInstanceType

func GetInstanceType(ctx *pulumi.Context, args *GetInstanceTypeArgs, opts ...pulumi.InvokeOption) (*GetInstanceTypeResult, error)

Provides information about a Linode instance type

## Example Usage

The following example shows how one might use this data source to access information about a Linode Instance type.

```go package main

import (

"github.com/pulumi/pulumi-linode/sdk/v2/go/linode"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {

pulumi.Run(func(ctx *pulumi.Context) error {
	_, err := linode.GetInstanceType(ctx, &linode.GetInstanceTypeArgs{
		Id: "g6-standard-2",
	}, nil)
	if err != nil {
		return err
	}
	return nil
})

} ``` ## Attributes

The Linode Instance Type resource exports the following attributes:

* `id` - The ID representing the Linode Type

* `label` - The Linode Type's label is for display purposes only

* `class` - The class of the Linode Type

* `disk` - The Disk size, in MB, of the Linode Type

* `price.0.hourly` - Cost (in US dollars) per hour.

* `price.0.monthly` - Cost (in US dollars) per month.

* `addons.0.backups.0.price.0.hourly` - The cost (in US dollars) per hour to add Backups service.

* `addons.0.backups.0.price.0.monthly` - The cost (in US dollars) per month to add Backups service.

type GetNetworkingIpArgs

type GetNetworkingIpArgs struct {
	// The IP Address to access.  The address must be associated with the account and a resource that the user has access to view.
	Address string `pulumi:"address"`
}

A collection of arguments for invoking getNetworkingIp.

type GetNetworkingIpResult

type GetNetworkingIpResult struct {
	Address string `pulumi:"address"`
	Gateway string `pulumi:"gateway"`
	// The provider-assigned unique ID for this managed resource.
	Id         string `pulumi:"id"`
	LinodeId   int    `pulumi:"linodeId"`
	Prefix     int    `pulumi:"prefix"`
	Public     bool   `pulumi:"public"`
	Rdns       string `pulumi:"rdns"`
	Region     string `pulumi:"region"`
	SubnetMask string `pulumi:"subnetMask"`
	Type       string `pulumi:"type"`
}

A collection of values returned by getNetworkingIp.

func GetNetworkingIp

func GetNetworkingIp(ctx *pulumi.Context, args *GetNetworkingIpArgs, opts ...pulumi.InvokeOption) (*GetNetworkingIpResult, error)

Provides information about a Linode Networking IP Address

## Example Usage

The following example shows how one might use this data source to access information about a Linode Networking IP Address.

```go package main

import (

"github.com/pulumi/pulumi-linode/sdk/v2/go/linode"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {

pulumi.Run(func(ctx *pulumi.Context) error {
	_, err := linode.GetNetworkingIp(ctx, &linode.GetNetworkingIpArgs{
		Address: "162.159.27.72",
	}, nil)
	if err != nil {
		return err
	}
	return nil
})

} ``` ## Attributes

The Linode Network IP Address resource exports the following attributes:

* `address` - The IP address.

* `gateway` - The default gateway for this address.

* `subnetMask` - The mask that separates host bits from network bits for this address.

* `prefix` - The number of bits set in the subnet mask.

* `type` - The type of address this is (ipv4, ipv6, ipv6/pool, ipv6/range).

* `public` - Whether this is a public or private IP address.

* `rdns` - The reverse DNS assigned to this address. For public IPv4 addresses, this will be set to a default value provided by Linode if not explicitly set.

* `linodeId` - The ID of the Linode this address currently belongs to.

* `region` - The Region this IP address resides in.

type GetObjectStorageClusterArgs

type GetObjectStorageClusterArgs struct {
	Domain *string `pulumi:"domain"`
	// The unique ID of this cluster.
	Id               string  `pulumi:"id"`
	Region           *string `pulumi:"region"`
	StaticSiteDomain *string `pulumi:"staticSiteDomain"`
	Status           *string `pulumi:"status"`
}

A collection of arguments for invoking getObjectStorageCluster.

type GetObjectStorageClusterResult

type GetObjectStorageClusterResult struct {
	Domain           string `pulumi:"domain"`
	Id               string `pulumi:"id"`
	Region           string `pulumi:"region"`
	StaticSiteDomain string `pulumi:"staticSiteDomain"`
	Status           string `pulumi:"status"`
}

A collection of values returned by getObjectStorageCluster.

func GetObjectStorageCluster

func GetObjectStorageCluster(ctx *pulumi.Context, args *GetObjectStorageClusterArgs, opts ...pulumi.InvokeOption) (*GetObjectStorageClusterResult, error)

Provides information about a Linode Object Storage Cluster

## Example Usage

The following example shows how one might use this data source to access information about a Linode Object Storage Cluster.

```go package main

import (

"github.com/pulumi/pulumi-linode/sdk/v2/go/linode"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {

pulumi.Run(func(ctx *pulumi.Context) error {
	_, err := linode.GetObjectStorageCluster(ctx, &linode.GetObjectStorageClusterArgs{
		Id: "us-east-1",
	}, nil)
	if err != nil {
		return err
	}
	return nil
})

} ``` ## Attributes

The Linode Object Storage Cluster resource exports the following attributes:

* `domain` - The base URL for this cluster.

* `status` - This cluster's status.

* `region` - The region this cluster is located in.

* `staticSiteDomain` - The base URL for this cluster used when hosting static sites.

type GetProfileReferrals

type GetProfileReferrals struct {
	Code      string  `pulumi:"code"`
	Completed int     `pulumi:"completed"`
	Credit    float64 `pulumi:"credit"`
	Pending   int     `pulumi:"pending"`
	Total     int     `pulumi:"total"`
	Url       string  `pulumi:"url"`
}

type GetProfileReferralsArgs

type GetProfileReferralsArgs struct {
	Code      pulumi.StringInput  `pulumi:"code"`
	Completed pulumi.IntInput     `pulumi:"completed"`
	Credit    pulumi.Float64Input `pulumi:"credit"`
	Pending   pulumi.IntInput     `pulumi:"pending"`
	Total     pulumi.IntInput     `pulumi:"total"`
	Url       pulumi.StringInput  `pulumi:"url"`
}

func (GetProfileReferralsArgs) ElementType

func (GetProfileReferralsArgs) ElementType() reflect.Type

func (GetProfileReferralsArgs) ToGetProfileReferralsOutput

func (i GetProfileReferralsArgs) ToGetProfileReferralsOutput() GetProfileReferralsOutput

func (GetProfileReferralsArgs) ToGetProfileReferralsOutputWithContext

func (i GetProfileReferralsArgs) ToGetProfileReferralsOutputWithContext(ctx context.Context) GetProfileReferralsOutput

type GetProfileReferralsInput

type GetProfileReferralsInput interface {
	pulumi.Input

	ToGetProfileReferralsOutput() GetProfileReferralsOutput
	ToGetProfileReferralsOutputWithContext(context.Context) GetProfileReferralsOutput
}

GetProfileReferralsInput is an input type that accepts GetProfileReferralsArgs and GetProfileReferralsOutput values. You can construct a concrete instance of `GetProfileReferralsInput` via:

GetProfileReferralsArgs{...}

type GetProfileReferralsOutput

type GetProfileReferralsOutput struct{ *pulumi.OutputState }

func (GetProfileReferralsOutput) Code

func (GetProfileReferralsOutput) Completed

func (GetProfileReferralsOutput) Credit

func (GetProfileReferralsOutput) ElementType

func (GetProfileReferralsOutput) ElementType() reflect.Type

func (GetProfileReferralsOutput) Pending

func (GetProfileReferralsOutput) ToGetProfileReferralsOutput

func (o GetProfileReferralsOutput) ToGetProfileReferralsOutput() GetProfileReferralsOutput

func (GetProfileReferralsOutput) ToGetProfileReferralsOutputWithContext

func (o GetProfileReferralsOutput) ToGetProfileReferralsOutputWithContext(ctx context.Context) GetProfileReferralsOutput

func (GetProfileReferralsOutput) Total

func (GetProfileReferralsOutput) Url

type GetProfileResult

type GetProfileResult struct {
	AuthorizedKeys     []string `pulumi:"authorizedKeys"`
	Email              string   `pulumi:"email"`
	EmailNotifications bool     `pulumi:"emailNotifications"`
	// The provider-assigned unique ID for this managed resource.
	Id                 string              `pulumi:"id"`
	IpWhitelistEnabled bool                `pulumi:"ipWhitelistEnabled"`
	LishAuthMethod     string              `pulumi:"lishAuthMethod"`
	Referrals          GetProfileReferrals `pulumi:"referrals"`
	Restricted         bool                `pulumi:"restricted"`
	Timezone           string              `pulumi:"timezone"`
	TwoFactorAuth      bool                `pulumi:"twoFactorAuth"`
	Username           string              `pulumi:"username"`
}

A collection of values returned by getProfile.

func GetProfile

func GetProfile(ctx *pulumi.Context, opts ...pulumi.InvokeOption) (*GetProfileResult, error)

Provides information about a Linode profile.

## Example Usage

The following example shows how one might use this data source to access profile details.

```go package main

import (

"github.com/pulumi/pulumi-linode/sdk/v2/go/linode"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {

pulumi.Run(func(ctx *pulumi.Context) error {
	_, err := linode.GetProfile(ctx, nil, nil)
	if err != nil {
		return err
	}
	return nil
})

} ``` ## Attributes

The Linode Profile resource exports the following attributes:

* `email` - The profile email address. This address will be used for communication with Linode as necessary.

* `timezone` - The profile's preferred timezone. This is not used by the API, and is for the benefit of clients only. All times the API returns are in UTC.

* `emailNotifications` - If true, email notifications will be sent about account activity. If false, when false business-critical communications may still be sent through email.

* `username` - The username for logging in to Linode services.

* `ipWhitelistEnabled` - If true, logins for the user will only be allowed from whitelisted IPs. This setting is currently deprecated, and cannot be enabled.

* `lishAuthMethod` - The methods of authentication allowed when connecting via Lish. 'keys_only' is the most secure with the intent to use Lish, and 'disabled' is recommended for users that will not use Lish at all.

* `authorizedKeys` - The list of SSH Keys authorized to use Lish for this user. This value is ignored if lishAuthMethod is 'disabled'.

* `twoFactorAuth` - If true, logins from untrusted computers will require Two Factor Authentication.

* `restricted` - If true, the user has restrictions on what can be accessed on the Account.

* `referrals` - Credit Card information associated with this Account.

* `referrals.0.total` - The number of users who have signed up with the referral code.

* `referrals.0.credit` - The amount of account credit in US Dollars issued to the account through the referral program.

* `referrals.0.completed` - The number of completed signups with the referral code.

* `referrals.0.pending` - The number of pending signups for the referral code. To receive credit the signups must be completed.

* `referrals.0.code` - The Profile referral code. If new accounts use this when signing up for Linode, referring account will receive credit.

* `referrals.0.url` - The referral URL.

type GetRegionArgs

type GetRegionArgs struct {
	// The country the region resides in.
	Country *string `pulumi:"country"`
	// The code name of the region to select.
	Id string `pulumi:"id"`
}

A collection of arguments for invoking getRegion.

type GetRegionResult

type GetRegionResult struct {
	// The country the region resides in.
	Country string `pulumi:"country"`
	Id      string `pulumi:"id"`
}

A collection of values returned by getRegion.

func GetRegion

func GetRegion(ctx *pulumi.Context, args *GetRegionArgs, opts ...pulumi.InvokeOption) (*GetRegionResult, error)

`getRegion` provides details about a specific Linode region. See all regions [here](https://api.linode.com/v4/regions).

## Example Usage

The following example shows how the resource might be used to obtain additional information about a Linode region.

```go package main

import (

"github.com/pulumi/pulumi-linode/sdk/v2/go/linode"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {

pulumi.Run(func(ctx *pulumi.Context) error {
	_, err := linode.GetRegion(ctx, &linode.GetRegionArgs{
		Id: "us-east",
	}, nil)
	if err != nil {
		return err
	}
	return nil
})

} ```

type GetStackScriptUserDefinedField

type GetStackScriptUserDefinedField struct {
	Default string `pulumi:"default"`
	Example string `pulumi:"example"`
	Label   string `pulumi:"label"`
	ManyOf  string `pulumi:"manyOf"`
	Name    string `pulumi:"name"`
	OneOf   string `pulumi:"oneOf"`
}

type GetStackScriptUserDefinedFieldArgs

type GetStackScriptUserDefinedFieldArgs struct {
	Default pulumi.StringInput `pulumi:"default"`
	Example pulumi.StringInput `pulumi:"example"`
	Label   pulumi.StringInput `pulumi:"label"`
	ManyOf  pulumi.StringInput `pulumi:"manyOf"`
	Name    pulumi.StringInput `pulumi:"name"`
	OneOf   pulumi.StringInput `pulumi:"oneOf"`
}

func (GetStackScriptUserDefinedFieldArgs) ElementType

func (GetStackScriptUserDefinedFieldArgs) ToGetStackScriptUserDefinedFieldOutput

func (i GetStackScriptUserDefinedFieldArgs) ToGetStackScriptUserDefinedFieldOutput() GetStackScriptUserDefinedFieldOutput

func (GetStackScriptUserDefinedFieldArgs) ToGetStackScriptUserDefinedFieldOutputWithContext

func (i GetStackScriptUserDefinedFieldArgs) ToGetStackScriptUserDefinedFieldOutputWithContext(ctx context.Context) GetStackScriptUserDefinedFieldOutput

type GetStackScriptUserDefinedFieldArray

type GetStackScriptUserDefinedFieldArray []GetStackScriptUserDefinedFieldInput

func (GetStackScriptUserDefinedFieldArray) ElementType

func (GetStackScriptUserDefinedFieldArray) ToGetStackScriptUserDefinedFieldArrayOutput

func (i GetStackScriptUserDefinedFieldArray) ToGetStackScriptUserDefinedFieldArrayOutput() GetStackScriptUserDefinedFieldArrayOutput

func (GetStackScriptUserDefinedFieldArray) ToGetStackScriptUserDefinedFieldArrayOutputWithContext

func (i GetStackScriptUserDefinedFieldArray) ToGetStackScriptUserDefinedFieldArrayOutputWithContext(ctx context.Context) GetStackScriptUserDefinedFieldArrayOutput

type GetStackScriptUserDefinedFieldArrayInput

type GetStackScriptUserDefinedFieldArrayInput interface {
	pulumi.Input

	ToGetStackScriptUserDefinedFieldArrayOutput() GetStackScriptUserDefinedFieldArrayOutput
	ToGetStackScriptUserDefinedFieldArrayOutputWithContext(context.Context) GetStackScriptUserDefinedFieldArrayOutput
}

GetStackScriptUserDefinedFieldArrayInput is an input type that accepts GetStackScriptUserDefinedFieldArray and GetStackScriptUserDefinedFieldArrayOutput values. You can construct a concrete instance of `GetStackScriptUserDefinedFieldArrayInput` via:

GetStackScriptUserDefinedFieldArray{ GetStackScriptUserDefinedFieldArgs{...} }

type GetStackScriptUserDefinedFieldArrayOutput

type GetStackScriptUserDefinedFieldArrayOutput struct{ *pulumi.OutputState }

func (GetStackScriptUserDefinedFieldArrayOutput) ElementType

func (GetStackScriptUserDefinedFieldArrayOutput) Index

func (GetStackScriptUserDefinedFieldArrayOutput) ToGetStackScriptUserDefinedFieldArrayOutput

func (o GetStackScriptUserDefinedFieldArrayOutput) ToGetStackScriptUserDefinedFieldArrayOutput() GetStackScriptUserDefinedFieldArrayOutput

func (GetStackScriptUserDefinedFieldArrayOutput) ToGetStackScriptUserDefinedFieldArrayOutputWithContext

func (o GetStackScriptUserDefinedFieldArrayOutput) ToGetStackScriptUserDefinedFieldArrayOutputWithContext(ctx context.Context) GetStackScriptUserDefinedFieldArrayOutput

type GetStackScriptUserDefinedFieldInput

type GetStackScriptUserDefinedFieldInput interface {
	pulumi.Input

	ToGetStackScriptUserDefinedFieldOutput() GetStackScriptUserDefinedFieldOutput
	ToGetStackScriptUserDefinedFieldOutputWithContext(context.Context) GetStackScriptUserDefinedFieldOutput
}

GetStackScriptUserDefinedFieldInput is an input type that accepts GetStackScriptUserDefinedFieldArgs and GetStackScriptUserDefinedFieldOutput values. You can construct a concrete instance of `GetStackScriptUserDefinedFieldInput` via:

GetStackScriptUserDefinedFieldArgs{...}

type GetStackScriptUserDefinedFieldOutput

type GetStackScriptUserDefinedFieldOutput struct{ *pulumi.OutputState }

func (GetStackScriptUserDefinedFieldOutput) Default

func (GetStackScriptUserDefinedFieldOutput) ElementType

func (GetStackScriptUserDefinedFieldOutput) Example

func (GetStackScriptUserDefinedFieldOutput) Label

func (GetStackScriptUserDefinedFieldOutput) ManyOf

func (GetStackScriptUserDefinedFieldOutput) Name

func (GetStackScriptUserDefinedFieldOutput) OneOf

func (GetStackScriptUserDefinedFieldOutput) ToGetStackScriptUserDefinedFieldOutput

func (o GetStackScriptUserDefinedFieldOutput) ToGetStackScriptUserDefinedFieldOutput() GetStackScriptUserDefinedFieldOutput

func (GetStackScriptUserDefinedFieldOutput) ToGetStackScriptUserDefinedFieldOutputWithContext

func (o GetStackScriptUserDefinedFieldOutput) ToGetStackScriptUserDefinedFieldOutputWithContext(ctx context.Context) GetStackScriptUserDefinedFieldOutput

type GetUserArgs

type GetUserArgs struct {
	// The unique username of this User.
	Username string `pulumi:"username"`
}

A collection of arguments for invoking getUser.

type GetUserResult

type GetUserResult struct {
	Email string `pulumi:"email"`
	// The provider-assigned unique ID for this managed resource.
	Id         string   `pulumi:"id"`
	Restricted bool     `pulumi:"restricted"`
	SshKeys    []string `pulumi:"sshKeys"`
	Username   string   `pulumi:"username"`
}

A collection of values returned by getUser.

func GetUser

func GetUser(ctx *pulumi.Context, args *GetUserArgs, opts ...pulumi.InvokeOption) (*GetUserResult, error)

Provides information about a Linode user

## Example Usage

The following example shows how one might use this data source to access information about a Linode user.

```go package main

import (

"github.com/pulumi/pulumi-linode/sdk/v2/go/linode"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {

pulumi.Run(func(ctx *pulumi.Context) error {
	_, err := linode.GetUser(ctx, &linode.GetUserArgs{
		Username: "foo",
	}, nil)
	if err != nil {
		return err
	}
	return nil
})

} ``` ## Attributes

The Linode User resource exports the following attributes:

* `sshKeys` - A list of SSH Key labels added by this User. These are the keys that will be deployed if this User is included in the authorizedUsers field of a create Linode, rebuild Linode, or create Disk request.

* `email` - The email address for this User, for account management communications, and may be used for other communications as configured.

* `restricted` - If true, this User must be granted access to perform actions or access entities on this Account.

type Image

type Image struct {
	pulumi.CustomResourceState

	// When this Image was created.
	Created pulumi.StringOutput `pulumi:"created"`
	// The name of the User who created this Image.
	CreatedBy pulumi.StringOutput `pulumi:"createdBy"`
	// Whether or not this Image is deprecated. Will only be True for deprecated public Images.
	Deprecated pulumi.BoolOutput `pulumi:"deprecated"`
	// A detailed description of this Image.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The ID of the Linode Disk that this Image will be created from.
	DiskId pulumi.IntOutput `pulumi:"diskId"`
	// Only Images created automatically (from a deleted Linode; type=automatic) will expire.
	Expiry pulumi.StringOutput `pulumi:"expiry"`
	// True if the Image is public.
	IsPublic pulumi.BoolOutput `pulumi:"isPublic"`
	// A short description of the Image. Labels cannot contain special characters.
	Label pulumi.StringOutput `pulumi:"label"`
	// The ID of the Linode that this Image will be created from.
	LinodeId pulumi.IntOutput `pulumi:"linodeId"`
	// The minimum size this Image needs to deploy. Size is in MB.
	Size pulumi.IntOutput `pulumi:"size"`
	// How the Image was created. 'Manual' Images can be created at any time. 'Automatic' images are created automatically from
	// a deleted Linode.
	Type pulumi.StringOutput `pulumi:"type"`
	// The upstream distribution vendor. Nil for private Images.
	Vendor pulumi.StringOutput `pulumi:"vendor"`
}

Provides a Linode Image resource. This can be used to create, modify, and delete Linodes Images. Linode Images are snapshots of a Linode Instance Disk which can then be used to provision more Linode Instances. Images can be used across regions.

For more information, see [Linode's documentation on Images](https://www.linode.com/docs/platform/disk-images/linode-images/) and the [Linode APIv4 docs](https://developers.linode.com/api/v4#operation/createImage).

## Example Usage

The following example shows how one might use this resource to create an Image from a Linode Instance Disk and then deploy a new Linode Instance in another region using that Image.

```go package main

import (

"github.com/pulumi/pulumi-linode/sdk/v2/go/linode"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {

pulumi.Run(func(ctx *pulumi.Context) error {
	foo, err := linode.NewInstance(ctx, "foo", &linode.InstanceArgs{
		Region: pulumi.String("us-central"),
		Type:   pulumi.String("g6-nanode-1"),
	})
	if err != nil {
		return err
	}
	bar, err := linode.NewImage(ctx, "bar", &linode.ImageArgs{
		Description: pulumi.String("Image taken from foo"),
		DiskId: pulumi.Int(foo.Disks.ApplyT(func(disks []linode.InstanceDisk) (int, error) {
			return disks[0].Id, nil
		}).(pulumi.IntOutput)),
		Label:    pulumi.String("foo-sda-image"),
		LinodeId: foo.ID(),
	})
	if err != nil {
		return err
	}
	_, err = linode.NewInstance(ctx, "barBased", &linode.InstanceArgs{
		Image:  bar.ID(),
		Region: pulumi.String("eu-west"),
		Type:   foo.Type,
	})
	if err != nil {
		return err
	}
	return nil
})

} ``` ## Attributes

This resource exports the following attributes:

* `id` - The unique ID of this Image. The ID of private images begin with `private/` followed by the numeric identifier of the private image, for example `private/12345`.

* `created` - When this Image was created.

* `createdBy` - The name of the User who created this Image.

* `deprecated` - Whether or not this Image is deprecated. Will only be True for deprecated public Images.

* `isPublic` - True if the Image is public.

* `size` - The minimum size this Image needs to deploy. Size is in MB.

* `type` - How the Image was created. 'Manual' Images can be created at any time. 'Automatic' images are created automatically from a deleted Linode.

* `expiry` - Only Images created automatically (from a deleted Linode; type=automatic) will expire.

* `vendor` - The upstream distribution vendor. Nil for private Images.

## Import

Linodes Images can be imported using the Linode Image `id`, e.g.

```sh

$ pulumi import linode:index/image:Image myimage 1234567

```

func GetImage

func GetImage(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ImageState, opts ...pulumi.ResourceOption) (*Image, error)

GetImage gets an existing Image resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewImage

func NewImage(ctx *pulumi.Context,
	name string, args *ImageArgs, opts ...pulumi.ResourceOption) (*Image, error)

NewImage registers a new resource with the given unique name, arguments, and options.

func (Image) ElementType

func (Image) ElementType() reflect.Type

func (Image) ToImageOutput

func (i Image) ToImageOutput() ImageOutput

func (Image) ToImageOutputWithContext

func (i Image) ToImageOutputWithContext(ctx context.Context) ImageOutput

type ImageArgs

type ImageArgs struct {
	// A detailed description of this Image.
	Description pulumi.StringPtrInput
	// The ID of the Linode Disk that this Image will be created from.
	DiskId pulumi.IntInput
	// A short description of the Image. Labels cannot contain special characters.
	Label pulumi.StringInput
	// The ID of the Linode that this Image will be created from.
	LinodeId pulumi.IntInput
}

The set of arguments for constructing a Image resource.

func (ImageArgs) ElementType

func (ImageArgs) ElementType() reflect.Type

type ImageInput

type ImageInput interface {
	pulumi.Input

	ToImageOutput() ImageOutput
	ToImageOutputWithContext(ctx context.Context) ImageOutput
}

type ImageOutput

type ImageOutput struct {
	*pulumi.OutputState
}

func (ImageOutput) ElementType

func (ImageOutput) ElementType() reflect.Type

func (ImageOutput) ToImageOutput

func (o ImageOutput) ToImageOutput() ImageOutput

func (ImageOutput) ToImageOutputWithContext

func (o ImageOutput) ToImageOutputWithContext(ctx context.Context) ImageOutput

type ImageState

type ImageState struct {
	// When this Image was created.
	Created pulumi.StringPtrInput
	// The name of the User who created this Image.
	CreatedBy pulumi.StringPtrInput
	// Whether or not this Image is deprecated. Will only be True for deprecated public Images.
	Deprecated pulumi.BoolPtrInput
	// A detailed description of this Image.
	Description pulumi.StringPtrInput
	// The ID of the Linode Disk that this Image will be created from.
	DiskId pulumi.IntPtrInput
	// Only Images created automatically (from a deleted Linode; type=automatic) will expire.
	Expiry pulumi.StringPtrInput
	// True if the Image is public.
	IsPublic pulumi.BoolPtrInput
	// A short description of the Image. Labels cannot contain special characters.
	Label pulumi.StringPtrInput
	// The ID of the Linode that this Image will be created from.
	LinodeId pulumi.IntPtrInput
	// The minimum size this Image needs to deploy. Size is in MB.
	Size pulumi.IntPtrInput
	// How the Image was created. 'Manual' Images can be created at any time. 'Automatic' images are created automatically from
	// a deleted Linode.
	Type pulumi.StringPtrInput
	// The upstream distribution vendor. Nil for private Images.
	Vendor pulumi.StringPtrInput
}

func (ImageState) ElementType

func (ImageState) ElementType() reflect.Type

type Instance

type Instance struct {
	pulumi.CustomResourceState

	Alerts InstanceAlertsOutput `pulumi:"alerts"`
	// A list of SSH public keys to deploy for the root user on the newly created Linode. Only accepted if `image` is provided. *This value can not be imported.* *Changing `authorizedKeys` forces the creation of a new Linode Instance.*
	AuthorizedKeys pulumi.StringArrayOutput `pulumi:"authorizedKeys"`
	// A list of Linode usernames. If the usernames have associated SSH keys, the keys will be appended to the `root` user's `~/.ssh/authorized_keys` file automatically. *This value can not be imported.* *Changing `authorizedUsers` forces the creation of a new Linode Instance.*
	AuthorizedUsers pulumi.StringArrayOutput `pulumi:"authorizedUsers"`
	// A Backup ID from another Linode's available backups. Your User must have readWrite access to that Linode, the Backup must have a status of successful, and the Linode must be deployed to the same region as the Backup. See /linode/instances/{linodeId}/backups for a Linode's available backups. This field and the image field are mutually exclusive. *This value can not be imported.* *Changing `backupId` forces the creation of a new Linode Instance.*
	BackupId pulumi.IntPtrOutput `pulumi:"backupId"`
	// Information about this Linode's backups status.
	Backups InstanceBackupsOutput `pulumi:"backups"`
	// If this field is set to true, the created Linode will automatically be enrolled in the Linode Backup service. This will incur an additional charge. The cost for the Backup service is dependent on the Type of Linode deployed.
	BackupsEnabled pulumi.BoolOutput `pulumi:"backupsEnabled"`
	// The Label of the Instance Config that should be used to boot the Linode instance.  If there is only one `config`, the `label` of that `config` will be used as the `bootConfigLabel`. *This value can not be imported.*
	BootConfigLabel pulumi.StringOutput `pulumi:"bootConfigLabel"`
	// Configuration profiles define the VM settings and boot behavior of the Linode Instance.
	Configs InstanceConfigArrayOutput `pulumi:"configs"`
	Disks   InstanceDiskArrayOutput   `pulumi:"disks"`
	// The display group of the Linode instance.
	Group pulumi.StringPtrOutput `pulumi:"group"`
	// An Image ID to deploy the Disk from. Official Linode Images start with linode/, while your Images start with private/. See /images for more information on the Images available for you to use. Examples are `linode/debian9`, `linode/fedora28`, `linode/ubuntu16.04lts`, `linode/arch`, and `private/12345`. See all images [here](https://api.linode.com/v4/linode/kernels). *Changing `image` forces the creation of a new Linode Instance.*
	Image pulumi.StringPtrOutput `pulumi:"image"`
	// This Linode's Public IPv4 Address. If there are multiple public IPv4 addresses on this Instance, an arbitrary address
	// will be used for this field.
	IpAddress pulumi.StringOutput `pulumi:"ipAddress"`
	// This Linode's IPv4 Addresses. Each Linode is assigned a single public IPv4 address upon creation, and may get a single
	// private IPv4 address if needed. You may need to open a support ticket to get additional IPv4 addresses.
	Ipv4s pulumi.StringArrayOutput `pulumi:"ipv4s"`
	// This Linode's IPv6 SLAAC addresses. This address is specific to a Linode, and may not be shared.
	Ipv6 pulumi.StringOutput `pulumi:"ipv6"`
	// The Config's label for display purposes.  Also used by `bootConfigLabel`.
	Label pulumi.StringOutput `pulumi:"label"`
	// If true, the created Linode will have private networking enabled, allowing use of the 192.168.128.0/17 network within the Linode's region. It can be enabled on an existing Linode but it can't be disabled.
	PrivateIp pulumi.BoolPtrOutput `pulumi:"privateIp"`
	// This Linode's Private IPv4 Address. The regional private IP address range is 192.168.128/17 address shared by all Linode
	// Instances in a region.
	PrivateIpAddress pulumi.StringOutput `pulumi:"privateIpAddress"`
	// This is the location where the Linode is deployed. Examples are `"us-east"`, `"us-west"`, `"ap-south"`, etc. See all regions [here](https://api.linode.com/v4/regions). *Changing `region` forces the creation of a new Linode Instance.*.
	Region pulumi.StringOutput `pulumi:"region"`
	// The initial password for the `root` user account. *This value can not be imported.* *Changing `rootPass` forces the creation of a new Linode Instance.* *If omitted, a random password will be generated but will not be stored in state.*
	RootPass pulumi.StringPtrOutput `pulumi:"rootPass"`
	Specs    InstanceSpecsOutput    `pulumi:"specs"`
	// An object containing responses to any User Defined Fields present in the StackScript being deployed to this Linode. Only accepted if 'stackscript_id' is given. The required values depend on the StackScript being deployed.  *This value can not be imported.* *Changing `stackscriptData` forces the creation of a new Linode Instance.*
	StackscriptData pulumi.MapOutput `pulumi:"stackscriptData"`
	// The StackScript to deploy to the newly created Linode. If provided, 'image' must also be provided, and must be an Image that is compatible with this StackScript. *This value can not be imported.* *Changing `stackscriptId` forces the creation of a new Linode Instance.*
	StackscriptId pulumi.IntPtrOutput `pulumi:"stackscriptId"`
	// The status of the instance, indicating the current readiness state.
	Status pulumi.StringOutput `pulumi:"status"`
	// When deploying from an Image, this field is optional with a Linode API default of 512mb, otherwise it is ignored. This is used to set the swap disk size for the newly-created Linode.
	SwapSize pulumi.IntOutput `pulumi:"swapSize"`
	// A list of tags applied to this object. Tags are for organizational purposes only.
	Tags pulumi.StringArrayOutput `pulumi:"tags"`
	// The Linode type defines the pricing, CPU, disk, and RAM specs of the instance. Examples are `"g6-nanode-1"`, `"g6-standard-2"`, `"g6-highmem-16"`, `"g6-dedicated-16"`, etc. See all types [here](https://api.linode.com/v4/linode/types).
	Type pulumi.StringPtrOutput `pulumi:"type"`
	// The watchdog, named Lassie, is a Shutdown Watchdog that monitors your Linode and will reboot it if it powers off unexpectedly. It works by issuing a boot job when your Linode powers off without a shutdown job being responsible. To prevent a loop, Lassie will give up if there have been more than 5 boot jobs issued within 15 minutes.
	WatchdogEnabled pulumi.BoolPtrOutput `pulumi:"watchdogEnabled"`
}

Provides a Linode Instance resource. This can be used to create, modify, and delete Linodes. For more information, see [Getting Started with Linode](https://linode.com/docs/getting-started/) and the [Linode APIv4 docs](https://developers.linode.com/api/v4#operation/createLinodeInstance).

## Example Usage ### Simple Linode Instance

The following example shows how one might use this resource to configure a Linode instance.

```go package main

import (

"github.com/pulumi/pulumi-linode/sdk/v2/go/linode"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {

pulumi.Run(func(ctx *pulumi.Context) error {
	_, err := linode.NewInstance(ctx, "web", &linode.InstanceArgs{
		AuthorizedKeys: pulumi.StringArray{
			pulumi.String("ssh-rsa AAAA...Gw== user@example.local"),
		},
		Group:     pulumi.String("foo"),
		Image:     pulumi.String("linode/ubuntu18.04"),
		Label:     pulumi.String("simple_instance"),
		PrivateIp: pulumi.Bool(true),
		Region:    pulumi.String("us-central"),
		RootPass:  pulumi.String("terr4form-test"),
		SwapSize:  pulumi.Int(256),
		Tags: pulumi.StringArray{
			pulumi.String("foo"),
		},
		Type: pulumi.String("g6-standard-1"),
	})
	if err != nil {
		return err
	}
	return nil
})

} ``` ### Linode Instance with explicit Configs and Disks

Using explicit Instance Configs and Disks it is possible to create a more elaborate Linode instance. This can be used to provision multiple disks and volumes during Instance creation.

```go package main

import (

"github.com/pulumi/pulumi-linode/sdk/v2/go/linode"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {

pulumi.Run(func(ctx *pulumi.Context) error {
	me, err := linode.GetProfile(ctx, nil, nil)
	if err != nil {
		return err
	}
	webVolume, err := linode.NewVolume(ctx, "webVolume", &linode.VolumeArgs{
		Label:  pulumi.String("web_volume"),
		Region: pulumi.String("us-central"),
		Size:   pulumi.Int(20),
	})
	if err != nil {
		return err
	}
	_, err = linode.NewInstance(ctx, "web", &linode.InstanceArgs{
		BootConfigLabel: pulumi.String("boot_config"),
		Configs: linode.InstanceConfigArray{
			&linode.InstanceConfigArgs{
				Devices: &linode.InstanceConfigDevicesArgs{
					Sda: &linode.InstanceConfigDevicesSdaArgs{
						DiskLabel: pulumi.String("boot"),
					},
					Sdb: &linode.InstanceConfigDevicesSdbArgs{
						VolumeId: webVolume.ID(),
					},
				},
				Kernel:     pulumi.String("linode/latest-64bit"),
				Label:      pulumi.String("boot_config"),
				RootDevice: pulumi.String("/dev/sda"),
			},
		},
		Disks: linode.InstanceDiskArray{
			&linode.InstanceDiskArgs{
				AuthorizedKeys: pulumi.StringArray{
					pulumi.String("ssh-rsa AAAA...Gw== user@example.local"),
				},
				AuthorizedUsers: pulumi.StringArray{
					pulumi.String(me.Username),
				},
				Image:    pulumi.String("linode/ubuntu18.04"),
				Label:    pulumi.String("boot"),
				RootPass: pulumi.String("terr4form-test"),
				Size:     pulumi.Int(3000),
			},
		},
		Group:     pulumi.String("foo"),
		Label:     pulumi.String("complex_instance"),
		PrivateIp: pulumi.Bool(true),
		Region:    pulumi.String("us-central"),
		Tags: pulumi.StringArray{
			pulumi.String("foo"),
		},
		Type: pulumi.String("g6-nanode-1"),
	})
	if err != nil {
		return err
	}
	return nil
})

} ``` ## Attributes

This Linode Instance resource exports the following attributes:

* `status` - The status of the instance, indicating the current readiness state. (`running`, `offline`, ...)

* `ipAddress` - A string containing the Linode's public IP address.

* `privateIpAddress` - This Linode's Private IPv4 Address, if enabled. The regional private IP address range, 192.168.128.0/17, is shared by all Linode Instances in a region.

* `ipv6` - This Linode's IPv6 SLAAC addresses. This address is specific to a Linode, and may not be shared. The prefix (`/64`) is included in this attribute.

* `ipv4` - This Linode's IPv4 Addresses. Each Linode is assigned a single public IPv4 address upon creation, and may get a single private IPv4 address if needed. You may need to open a support ticket to get additional IPv4 addresses.

* `specs.0.disk` - The amount of storage space, in GB. this Linode has access to. A typical Linode will divide this space between a primary disk with an image deployed to it, and a swap disk, usually 512 MB. This is the default configuration created when deploying a Linode with an image through POST /linode/instances.

* `specs.0.memory` - The amount of RAM, in MB, this Linode has access to. Typically a Linode will choose to boot with all of its available RAM, but this can be configured in a Config profile.

* `specs.0.vcpus` - The number of vcpus this Linode has access to. Typically a Linode will choose to boot with all of its available vcpus, but this can be configured in a Config Profile.

* `specs.0.transfer` - The amount of network transfer this Linode is allotted each month.

* `backups` - Information about this Linode's backups status.

* `enabled` - If this Linode has the Backup service enabled.

* `schedule`

  * `day` -  The day of the week that your Linode's weekly Backup is taken. If not set manually, a day will be chosen for you. Backups are taken every day, but backups taken on this day are preferred when selecting backups to retain for a longer period.  If not set manually, then when backups are initially enabled, this may come back as "Scheduling" until the day is automatically selected.

  * `window` - The window ('W0'-'W22') in which your backups will be taken, in UTC. A backups window is a two-hour span of time in which the backup may occur. For example, 'W10' indicates that your backups should be taken between 10:00 and 12:00. If you do not choose a backup window, one will be selected for you automatically.  If not set manually, when backups are initially enabled this may come back as Scheduling until the window is automatically selected.

## Import

Linodes Instances can be imported using the Linode `id`, e.g.

```sh

$ pulumi import linode:index/instance:Instance mylinode 1234567

```

When importing an instance, all `disk` and `config` values must be represented. Imported disks must include their `label` value.

**Any disk that is not precisely represented may be removed resulting in data loss.** Imported configs should include all `devices`, and must include `label`, `kernel`, and the `root_device`.

The instance must include a `boot_config_label` referring to the correct configuration profile. The Linode Guide, [Import Existing Infrastructure to Terraform](https://www.linode.com/docs/applications/configuration-management/import-existing-infrastructure-to-terraform/), offers resource importing examples for Instances and other Linode resource types.

func GetInstance

func GetInstance(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *InstanceState, opts ...pulumi.ResourceOption) (*Instance, error)

GetInstance gets an existing Instance resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewInstance

func NewInstance(ctx *pulumi.Context,
	name string, args *InstanceArgs, opts ...pulumi.ResourceOption) (*Instance, error)

NewInstance registers a new resource with the given unique name, arguments, and options.

func (Instance) ElementType

func (Instance) ElementType() reflect.Type

func (Instance) ToInstanceOutput

func (i Instance) ToInstanceOutput() InstanceOutput

func (Instance) ToInstanceOutputWithContext

func (i Instance) ToInstanceOutputWithContext(ctx context.Context) InstanceOutput

type InstanceAlerts

type InstanceAlerts struct {
	Cpu           *int `pulumi:"cpu"`
	Io            *int `pulumi:"io"`
	NetworkIn     *int `pulumi:"networkIn"`
	NetworkOut    *int `pulumi:"networkOut"`
	TransferQuota *int `pulumi:"transferQuota"`
}

type InstanceAlertsArgs

type InstanceAlertsArgs struct {
	Cpu           pulumi.IntPtrInput `pulumi:"cpu"`
	Io            pulumi.IntPtrInput `pulumi:"io"`
	NetworkIn     pulumi.IntPtrInput `pulumi:"networkIn"`
	NetworkOut    pulumi.IntPtrInput `pulumi:"networkOut"`
	TransferQuota pulumi.IntPtrInput `pulumi:"transferQuota"`
}

func (InstanceAlertsArgs) ElementType

func (InstanceAlertsArgs) ElementType() reflect.Type

func (InstanceAlertsArgs) ToInstanceAlertsOutput

func (i InstanceAlertsArgs) ToInstanceAlertsOutput() InstanceAlertsOutput

func (InstanceAlertsArgs) ToInstanceAlertsOutputWithContext

func (i InstanceAlertsArgs) ToInstanceAlertsOutputWithContext(ctx context.Context) InstanceAlertsOutput

func (InstanceAlertsArgs) ToInstanceAlertsPtrOutput

func (i InstanceAlertsArgs) ToInstanceAlertsPtrOutput() InstanceAlertsPtrOutput

func (InstanceAlertsArgs) ToInstanceAlertsPtrOutputWithContext

func (i InstanceAlertsArgs) ToInstanceAlertsPtrOutputWithContext(ctx context.Context) InstanceAlertsPtrOutput

type InstanceAlertsInput

type InstanceAlertsInput interface {
	pulumi.Input

	ToInstanceAlertsOutput() InstanceAlertsOutput
	ToInstanceAlertsOutputWithContext(context.Context) InstanceAlertsOutput
}

InstanceAlertsInput is an input type that accepts InstanceAlertsArgs and InstanceAlertsOutput values. You can construct a concrete instance of `InstanceAlertsInput` via:

InstanceAlertsArgs{...}

type InstanceAlertsOutput

type InstanceAlertsOutput struct{ *pulumi.OutputState }

func (InstanceAlertsOutput) Cpu

func (InstanceAlertsOutput) ElementType

func (InstanceAlertsOutput) ElementType() reflect.Type

func (InstanceAlertsOutput) Io

func (InstanceAlertsOutput) NetworkIn

func (InstanceAlertsOutput) NetworkOut

func (o InstanceAlertsOutput) NetworkOut() pulumi.IntPtrOutput

func (InstanceAlertsOutput) ToInstanceAlertsOutput

func (o InstanceAlertsOutput) ToInstanceAlertsOutput() InstanceAlertsOutput

func (InstanceAlertsOutput) ToInstanceAlertsOutputWithContext

func (o InstanceAlertsOutput) ToInstanceAlertsOutputWithContext(ctx context.Context) InstanceAlertsOutput

func (InstanceAlertsOutput) ToInstanceAlertsPtrOutput

func (o InstanceAlertsOutput) ToInstanceAlertsPtrOutput() InstanceAlertsPtrOutput

func (InstanceAlertsOutput) ToInstanceAlertsPtrOutputWithContext

func (o InstanceAlertsOutput) ToInstanceAlertsPtrOutputWithContext(ctx context.Context) InstanceAlertsPtrOutput

func (InstanceAlertsOutput) TransferQuota

func (o InstanceAlertsOutput) TransferQuota() pulumi.IntPtrOutput

type InstanceAlertsPtrInput

type InstanceAlertsPtrInput interface {
	pulumi.Input

	ToInstanceAlertsPtrOutput() InstanceAlertsPtrOutput
	ToInstanceAlertsPtrOutputWithContext(context.Context) InstanceAlertsPtrOutput
}

InstanceAlertsPtrInput is an input type that accepts InstanceAlertsArgs, InstanceAlertsPtr and InstanceAlertsPtrOutput values. You can construct a concrete instance of `InstanceAlertsPtrInput` via:

        InstanceAlertsArgs{...}

or:

        nil

type InstanceAlertsPtrOutput

type InstanceAlertsPtrOutput struct{ *pulumi.OutputState }

func (InstanceAlertsPtrOutput) Cpu

func (InstanceAlertsPtrOutput) Elem

func (InstanceAlertsPtrOutput) ElementType

func (InstanceAlertsPtrOutput) ElementType() reflect.Type

func (InstanceAlertsPtrOutput) Io

func (InstanceAlertsPtrOutput) NetworkIn

func (InstanceAlertsPtrOutput) NetworkOut

func (InstanceAlertsPtrOutput) ToInstanceAlertsPtrOutput

func (o InstanceAlertsPtrOutput) ToInstanceAlertsPtrOutput() InstanceAlertsPtrOutput

func (InstanceAlertsPtrOutput) ToInstanceAlertsPtrOutputWithContext

func (o InstanceAlertsPtrOutput) ToInstanceAlertsPtrOutputWithContext(ctx context.Context) InstanceAlertsPtrOutput

func (InstanceAlertsPtrOutput) TransferQuota

func (o InstanceAlertsPtrOutput) TransferQuota() pulumi.IntPtrOutput

type InstanceArgs

type InstanceArgs struct {
	Alerts InstanceAlertsPtrInput
	// A list of SSH public keys to deploy for the root user on the newly created Linode. Only accepted if `image` is provided. *This value can not be imported.* *Changing `authorizedKeys` forces the creation of a new Linode Instance.*
	AuthorizedKeys pulumi.StringArrayInput
	// A list of Linode usernames. If the usernames have associated SSH keys, the keys will be appended to the `root` user's `~/.ssh/authorized_keys` file automatically. *This value can not be imported.* *Changing `authorizedUsers` forces the creation of a new Linode Instance.*
	AuthorizedUsers pulumi.StringArrayInput
	// A Backup ID from another Linode's available backups. Your User must have readWrite access to that Linode, the Backup must have a status of successful, and the Linode must be deployed to the same region as the Backup. See /linode/instances/{linodeId}/backups for a Linode's available backups. This field and the image field are mutually exclusive. *This value can not be imported.* *Changing `backupId` forces the creation of a new Linode Instance.*
	BackupId pulumi.IntPtrInput
	// If this field is set to true, the created Linode will automatically be enrolled in the Linode Backup service. This will incur an additional charge. The cost for the Backup service is dependent on the Type of Linode deployed.
	BackupsEnabled pulumi.BoolPtrInput
	// The Label of the Instance Config that should be used to boot the Linode instance.  If there is only one `config`, the `label` of that `config` will be used as the `bootConfigLabel`. *This value can not be imported.*
	BootConfigLabel pulumi.StringPtrInput
	// Configuration profiles define the VM settings and boot behavior of the Linode Instance.
	Configs InstanceConfigArrayInput
	Disks   InstanceDiskArrayInput
	// The display group of the Linode instance.
	Group pulumi.StringPtrInput
	// An Image ID to deploy the Disk from. Official Linode Images start with linode/, while your Images start with private/. See /images for more information on the Images available for you to use. Examples are `linode/debian9`, `linode/fedora28`, `linode/ubuntu16.04lts`, `linode/arch`, and `private/12345`. See all images [here](https://api.linode.com/v4/linode/kernels). *Changing `image` forces the creation of a new Linode Instance.*
	Image pulumi.StringPtrInput
	// The Config's label for display purposes.  Also used by `bootConfigLabel`.
	Label pulumi.StringPtrInput
	// If true, the created Linode will have private networking enabled, allowing use of the 192.168.128.0/17 network within the Linode's region. It can be enabled on an existing Linode but it can't be disabled.
	PrivateIp pulumi.BoolPtrInput
	// This is the location where the Linode is deployed. Examples are `"us-east"`, `"us-west"`, `"ap-south"`, etc. See all regions [here](https://api.linode.com/v4/regions). *Changing `region` forces the creation of a new Linode Instance.*.
	Region pulumi.