fortios.vpn/ipsec.Manualkey
Explore with Pulumi AI
Configure IPsec manual keys.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as fortios from "@pulumiverse/fortios";
const trname = new fortios.vpn.ipsec.Manualkey("trname", {
authentication: "md5",
authkey: "EE32CA121ECD772A-ECACAABA212345EC",
enckey: "-",
encryption: "null",
"interface": "port4",
localGw: "0.0.0.0",
localspi: "0x100",
remoteGw: "1.1.1.1",
remotespi: "0x100",
});
import pulumi
import pulumiverse_fortios as fortios
trname = fortios.vpn.ipsec.Manualkey("trname",
authentication="md5",
authkey="EE32CA121ECD772A-ECACAABA212345EC",
enckey="-",
encryption="null",
interface="port4",
local_gw="0.0.0.0",
localspi="0x100",
remote_gw="1.1.1.1",
remotespi="0x100")
package main
import (
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumiverse/pulumi-fortios/sdk/go/fortios/vpn"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := vpn.NewManualkey(ctx, "trname", &vpn.ManualkeyArgs{
Authentication: pulumi.String("md5"),
Authkey: pulumi.String("EE32CA121ECD772A-ECACAABA212345EC"),
Enckey: pulumi.String("-"),
Encryption: pulumi.String("null"),
Interface: pulumi.String("port4"),
LocalGw: pulumi.String("0.0.0.0"),
Localspi: pulumi.String("0x100"),
RemoteGw: pulumi.String("1.1.1.1"),
Remotespi: pulumi.String("0x100"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Fortios = Pulumiverse.Fortios;
return await Deployment.RunAsync(() =>
{
var trname = new Fortios.Vpn.Ipsec.Manualkey("trname", new()
{
Authentication = "md5",
Authkey = "EE32CA121ECD772A-ECACAABA212345EC",
Enckey = "-",
Encryption = "null",
Interface = "port4",
LocalGw = "0.0.0.0",
Localspi = "0x100",
RemoteGw = "1.1.1.1",
Remotespi = "0x100",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.fortios.vpn.Manualkey;
import com.pulumi.fortios.vpn.ManualkeyArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var trname = new Manualkey("trname", ManualkeyArgs.builder()
.authentication("md5")
.authkey("EE32CA121ECD772A-ECACAABA212345EC")
.enckey("-")
.encryption("null")
.interface_("port4")
.localGw("0.0.0.0")
.localspi("0x100")
.remoteGw("1.1.1.1")
.remotespi("0x100")
.build());
}
}
resources:
trname:
type: fortios:vpn/ipsec:Manualkey
properties:
authentication: md5
authkey: EE32CA121ECD772A-ECACAABA212345EC
enckey: '-'
encryption: null
interface: port4
localGw: 0.0.0.0
localspi: 0x100
remoteGw: 1.1.1.1
remotespi: 0x100
Create Manualkey Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new Manualkey(name: string, args: ManualkeyArgs, opts?: CustomResourceOptions);
@overload
def Manualkey(resource_name: str,
args: ManualkeyArgs,
opts: Optional[ResourceOptions] = None)
@overload
def Manualkey(resource_name: str,
opts: Optional[ResourceOptions] = None,
authentication: Optional[str] = None,
encryption: Optional[str] = None,
interface: Optional[str] = None,
remote_gw: Optional[str] = None,
authkey: Optional[str] = None,
enckey: Optional[str] = None,
local_gw: Optional[str] = None,
localspi: Optional[str] = None,
name: Optional[str] = None,
npu_offload: Optional[str] = None,
remotespi: Optional[str] = None,
vdomparam: Optional[str] = None)
func NewManualkey(ctx *Context, name string, args ManualkeyArgs, opts ...ResourceOption) (*Manualkey, error)
public Manualkey(string name, ManualkeyArgs args, CustomResourceOptions? opts = null)
public Manualkey(String name, ManualkeyArgs args)
public Manualkey(String name, ManualkeyArgs args, CustomResourceOptions options)
type: fortios:vpn/ipsec/manualkey:Manualkey
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args ManualkeyArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args ManualkeyArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args ManualkeyArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args ManualkeyArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args ManualkeyArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Manualkey Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The Manualkey resource accepts the following input properties:
- Authentication string
- Authentication algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,md5
,sha1
,sha256
,sha384
,sha512
. - Encryption string
- Encryption algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,des
,3des
,aes128
,aes192
,aes256
,aria128
,aria192
,aria256
,seed
. - Interface string
- Name of the physical, aggregate, or VLAN interface.
- Remote
Gw string - Peer gateway.
- Authkey string
- Hexadecimal authentication key in 16-digit (8-byte) segments separated by hyphens.
- Enckey string
- Hexadecimal encryption key in 16-digit (8-byte) segments separated by hyphens.
- Local
Gw string - Local gateway.
- Localspi string
- Local SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- Name string
- IPsec tunnel name.
- Npu
Offload string - Enable/disable NPU offloading. Valid values:
enable
,disable
. - Remotespi string
- Remote SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- Vdomparam string
- Specifies the vdom to which the resource will be applied when the FortiGate unit is running in VDOM mode. Only one vdom can be specified. If you want to inherit the vdom configuration of the provider, please do not set this parameter.
- Authentication string
- Authentication algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,md5
,sha1
,sha256
,sha384
,sha512
. - Encryption string
- Encryption algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,des
,3des
,aes128
,aes192
,aes256
,aria128
,aria192
,aria256
,seed
. - Interface string
- Name of the physical, aggregate, or VLAN interface.
- Remote
Gw string - Peer gateway.
- Authkey string
- Hexadecimal authentication key in 16-digit (8-byte) segments separated by hyphens.
- Enckey string
- Hexadecimal encryption key in 16-digit (8-byte) segments separated by hyphens.
- Local
Gw string - Local gateway.
- Localspi string
- Local SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- Name string
- IPsec tunnel name.
- Npu
Offload string - Enable/disable NPU offloading. Valid values:
enable
,disable
. - Remotespi string
- Remote SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- Vdomparam string
- Specifies the vdom to which the resource will be applied when the FortiGate unit is running in VDOM mode. Only one vdom can be specified. If you want to inherit the vdom configuration of the provider, please do not set this parameter.
- authentication String
- Authentication algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,md5
,sha1
,sha256
,sha384
,sha512
. - encryption String
- Encryption algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,des
,3des
,aes128
,aes192
,aes256
,aria128
,aria192
,aria256
,seed
. - interface_ String
- Name of the physical, aggregate, or VLAN interface.
- remote
Gw String - Peer gateway.
- authkey String
- Hexadecimal authentication key in 16-digit (8-byte) segments separated by hyphens.
- enckey String
- Hexadecimal encryption key in 16-digit (8-byte) segments separated by hyphens.
- local
Gw String - Local gateway.
- localspi String
- Local SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- name String
- IPsec tunnel name.
- npu
Offload String - Enable/disable NPU offloading. Valid values:
enable
,disable
. - remotespi String
- Remote SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- vdomparam String
- Specifies the vdom to which the resource will be applied when the FortiGate unit is running in VDOM mode. Only one vdom can be specified. If you want to inherit the vdom configuration of the provider, please do not set this parameter.
- authentication string
- Authentication algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,md5
,sha1
,sha256
,sha384
,sha512
. - encryption string
- Encryption algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,des
,3des
,aes128
,aes192
,aes256
,aria128
,aria192
,aria256
,seed
. - interface string
- Name of the physical, aggregate, or VLAN interface.
- remote
Gw string - Peer gateway.
- authkey string
- Hexadecimal authentication key in 16-digit (8-byte) segments separated by hyphens.
- enckey string
- Hexadecimal encryption key in 16-digit (8-byte) segments separated by hyphens.
- local
Gw string - Local gateway.
- localspi string
- Local SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- name string
- IPsec tunnel name.
- npu
Offload string - Enable/disable NPU offloading. Valid values:
enable
,disable
. - remotespi string
- Remote SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- vdomparam string
- Specifies the vdom to which the resource will be applied when the FortiGate unit is running in VDOM mode. Only one vdom can be specified. If you want to inherit the vdom configuration of the provider, please do not set this parameter.
- authentication str
- Authentication algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,md5
,sha1
,sha256
,sha384
,sha512
. - encryption str
- Encryption algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,des
,3des
,aes128
,aes192
,aes256
,aria128
,aria192
,aria256
,seed
. - interface str
- Name of the physical, aggregate, or VLAN interface.
- remote_
gw str - Peer gateway.
- authkey str
- Hexadecimal authentication key in 16-digit (8-byte) segments separated by hyphens.
- enckey str
- Hexadecimal encryption key in 16-digit (8-byte) segments separated by hyphens.
- local_
gw str - Local gateway.
- localspi str
- Local SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- name str
- IPsec tunnel name.
- npu_
offload str - Enable/disable NPU offloading. Valid values:
enable
,disable
. - remotespi str
- Remote SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- vdomparam str
- Specifies the vdom to which the resource will be applied when the FortiGate unit is running in VDOM mode. Only one vdom can be specified. If you want to inherit the vdom configuration of the provider, please do not set this parameter.
- authentication String
- Authentication algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,md5
,sha1
,sha256
,sha384
,sha512
. - encryption String
- Encryption algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,des
,3des
,aes128
,aes192
,aes256
,aria128
,aria192
,aria256
,seed
. - interface String
- Name of the physical, aggregate, or VLAN interface.
- remote
Gw String - Peer gateway.
- authkey String
- Hexadecimal authentication key in 16-digit (8-byte) segments separated by hyphens.
- enckey String
- Hexadecimal encryption key in 16-digit (8-byte) segments separated by hyphens.
- local
Gw String - Local gateway.
- localspi String
- Local SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- name String
- IPsec tunnel name.
- npu
Offload String - Enable/disable NPU offloading. Valid values:
enable
,disable
. - remotespi String
- Remote SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- vdomparam String
- Specifies the vdom to which the resource will be applied when the FortiGate unit is running in VDOM mode. Only one vdom can be specified. If you want to inherit the vdom configuration of the provider, please do not set this parameter.
Outputs
All input properties are implicitly available as output properties. Additionally, the Manualkey resource produces the following output properties:
- Id string
- The provider-assigned unique ID for this managed resource.
- Id string
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
- id string
- The provider-assigned unique ID for this managed resource.
- id str
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
Look up Existing Manualkey Resource
Get an existing Manualkey resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: ManualkeyState, opts?: CustomResourceOptions): Manualkey
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
authentication: Optional[str] = None,
authkey: Optional[str] = None,
enckey: Optional[str] = None,
encryption: Optional[str] = None,
interface: Optional[str] = None,
local_gw: Optional[str] = None,
localspi: Optional[str] = None,
name: Optional[str] = None,
npu_offload: Optional[str] = None,
remote_gw: Optional[str] = None,
remotespi: Optional[str] = None,
vdomparam: Optional[str] = None) -> Manualkey
func GetManualkey(ctx *Context, name string, id IDInput, state *ManualkeyState, opts ...ResourceOption) (*Manualkey, error)
public static Manualkey Get(string name, Input<string> id, ManualkeyState? state, CustomResourceOptions? opts = null)
public static Manualkey get(String name, Output<String> id, ManualkeyState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Authentication string
- Authentication algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,md5
,sha1
,sha256
,sha384
,sha512
. - Authkey string
- Hexadecimal authentication key in 16-digit (8-byte) segments separated by hyphens.
- Enckey string
- Hexadecimal encryption key in 16-digit (8-byte) segments separated by hyphens.
- Encryption string
- Encryption algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,des
,3des
,aes128
,aes192
,aes256
,aria128
,aria192
,aria256
,seed
. - Interface string
- Name of the physical, aggregate, or VLAN interface.
- Local
Gw string - Local gateway.
- Localspi string
- Local SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- Name string
- IPsec tunnel name.
- Npu
Offload string - Enable/disable NPU offloading. Valid values:
enable
,disable
. - Remote
Gw string - Peer gateway.
- Remotespi string
- Remote SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- Vdomparam string
- Specifies the vdom to which the resource will be applied when the FortiGate unit is running in VDOM mode. Only one vdom can be specified. If you want to inherit the vdom configuration of the provider, please do not set this parameter.
- Authentication string
- Authentication algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,md5
,sha1
,sha256
,sha384
,sha512
. - Authkey string
- Hexadecimal authentication key in 16-digit (8-byte) segments separated by hyphens.
- Enckey string
- Hexadecimal encryption key in 16-digit (8-byte) segments separated by hyphens.
- Encryption string
- Encryption algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,des
,3des
,aes128
,aes192
,aes256
,aria128
,aria192
,aria256
,seed
. - Interface string
- Name of the physical, aggregate, or VLAN interface.
- Local
Gw string - Local gateway.
- Localspi string
- Local SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- Name string
- IPsec tunnel name.
- Npu
Offload string - Enable/disable NPU offloading. Valid values:
enable
,disable
. - Remote
Gw string - Peer gateway.
- Remotespi string
- Remote SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- Vdomparam string
- Specifies the vdom to which the resource will be applied when the FortiGate unit is running in VDOM mode. Only one vdom can be specified. If you want to inherit the vdom configuration of the provider, please do not set this parameter.
- authentication String
- Authentication algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,md5
,sha1
,sha256
,sha384
,sha512
. - authkey String
- Hexadecimal authentication key in 16-digit (8-byte) segments separated by hyphens.
- enckey String
- Hexadecimal encryption key in 16-digit (8-byte) segments separated by hyphens.
- encryption String
- Encryption algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,des
,3des
,aes128
,aes192
,aes256
,aria128
,aria192
,aria256
,seed
. - interface_ String
- Name of the physical, aggregate, or VLAN interface.
- local
Gw String - Local gateway.
- localspi String
- Local SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- name String
- IPsec tunnel name.
- npu
Offload String - Enable/disable NPU offloading. Valid values:
enable
,disable
. - remote
Gw String - Peer gateway.
- remotespi String
- Remote SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- vdomparam String
- Specifies the vdom to which the resource will be applied when the FortiGate unit is running in VDOM mode. Only one vdom can be specified. If you want to inherit the vdom configuration of the provider, please do not set this parameter.
- authentication string
- Authentication algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,md5
,sha1
,sha256
,sha384
,sha512
. - authkey string
- Hexadecimal authentication key in 16-digit (8-byte) segments separated by hyphens.
- enckey string
- Hexadecimal encryption key in 16-digit (8-byte) segments separated by hyphens.
- encryption string
- Encryption algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,des
,3des
,aes128
,aes192
,aes256
,aria128
,aria192
,aria256
,seed
. - interface string
- Name of the physical, aggregate, or VLAN interface.
- local
Gw string - Local gateway.
- localspi string
- Local SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- name string
- IPsec tunnel name.
- npu
Offload string - Enable/disable NPU offloading. Valid values:
enable
,disable
. - remote
Gw string - Peer gateway.
- remotespi string
- Remote SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- vdomparam string
- Specifies the vdom to which the resource will be applied when the FortiGate unit is running in VDOM mode. Only one vdom can be specified. If you want to inherit the vdom configuration of the provider, please do not set this parameter.
- authentication str
- Authentication algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,md5
,sha1
,sha256
,sha384
,sha512
. - authkey str
- Hexadecimal authentication key in 16-digit (8-byte) segments separated by hyphens.
- enckey str
- Hexadecimal encryption key in 16-digit (8-byte) segments separated by hyphens.
- encryption str
- Encryption algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,des
,3des
,aes128
,aes192
,aes256
,aria128
,aria192
,aria256
,seed
. - interface str
- Name of the physical, aggregate, or VLAN interface.
- local_
gw str - Local gateway.
- localspi str
- Local SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- name str
- IPsec tunnel name.
- npu_
offload str - Enable/disable NPU offloading. Valid values:
enable
,disable
. - remote_
gw str - Peer gateway.
- remotespi str
- Remote SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- vdomparam str
- Specifies the vdom to which the resource will be applied when the FortiGate unit is running in VDOM mode. Only one vdom can be specified. If you want to inherit the vdom configuration of the provider, please do not set this parameter.
- authentication String
- Authentication algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,md5
,sha1
,sha256
,sha384
,sha512
. - authkey String
- Hexadecimal authentication key in 16-digit (8-byte) segments separated by hyphens.
- enckey String
- Hexadecimal encryption key in 16-digit (8-byte) segments separated by hyphens.
- encryption String
- Encryption algorithm. Must be the same for both ends of the tunnel. Valid values:
null
,des
,3des
,aes128
,aes192
,aes256
,aria128
,aria192
,aria256
,seed
. - interface String
- Name of the physical, aggregate, or VLAN interface.
- local
Gw String - Local gateway.
- localspi String
- Local SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- name String
- IPsec tunnel name.
- npu
Offload String - Enable/disable NPU offloading. Valid values:
enable
,disable
. - remote
Gw String - Peer gateway.
- remotespi String
- Remote SPI, a hexadecimal 8-digit (4-byte) tag. Discerns between two traffic streams with different encryption rules.
- vdomparam String
- Specifies the vdom to which the resource will be applied when the FortiGate unit is running in VDOM mode. Only one vdom can be specified. If you want to inherit the vdom configuration of the provider, please do not set this parameter.
Import
VpnIpsec Manualkey can be imported using any of these accepted formats:
$ pulumi import fortios:vpn/ipsec/manualkey:Manualkey labelname {{name}}
If you do not want to import arguments of block:
$ export “FORTIOS_IMPORT_TABLE”=“false”
$ pulumi import fortios:vpn/ipsec/manualkey:Manualkey labelname {{name}}
$ unset “FORTIOS_IMPORT_TABLE”
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- fortios pulumiverse/pulumi-fortios
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
fortios
Terraform Provider.