pulumi_wasm_providers_gcp_mini::compute::router_nat

Struct RouterNatArgsBuilder

source
pub struct RouterNatArgsBuilder<S: State = Empty> { /* private fields */ }
Expand description

Use builder syntax to set the inputs and finish with build_struct().

Implementations§

source§

impl<S: State> RouterNatArgsBuilder<S>

source

pub fn build_struct(self) -> RouterNatArgs
where S: IsComplete,

Finish building and return the requested object

source

pub fn auto_network_tier( self, value: impl Into<Output<Option<String>>>, ) -> RouterNatArgsBuilder<SetAutoNetworkTier<S>>
where S::AutoNetworkTier: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<String>> as Default>::default().

The network tier to use when automatically reserving NAT IP addresses. Must be one of: PREMIUM, STANDARD. If not specified, then the current project-level default tier is used. Possible values are: PREMIUM, STANDARD.

source

pub fn maybe_auto_network_tier( self, value: Option<impl Into<Output<Option<String>>>>, ) -> RouterNatArgsBuilder<SetAutoNetworkTier<S>>
where S::AutoNetworkTier: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<String>> as Default>::default().

The network tier to use when automatically reserving NAT IP addresses. Must be one of: PREMIUM, STANDARD. If not specified, then the current project-level default tier is used. Possible values are: PREMIUM, STANDARD.

source

pub fn drain_nat_ips( self, value: impl Into<Output<Option<Vec<String>>>>, ) -> RouterNatArgsBuilder<SetDrainNatIps<S>>
where S::DrainNatIps: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<Vec<String>>> as Default>::default().

A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT.

source

pub fn maybe_drain_nat_ips( self, value: Option<impl Into<Output<Option<Vec<String>>>>>, ) -> RouterNatArgsBuilder<SetDrainNatIps<S>>
where S::DrainNatIps: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<Vec<String>>> as Default>::default().

A list of URLs of the IP resources to be drained. These IPs must be valid static external IPs that have been assigned to the NAT.

source

pub fn enable_dynamic_port_allocation( self, value: impl Into<Output<Option<bool>>>, ) -> RouterNatArgsBuilder<SetEnableDynamicPortAllocation<S>>
where S::EnableDynamicPortAllocation: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<bool>> as Default>::default().

Enable Dynamic Port Allocation. If minPortsPerVm is set, minPortsPerVm must be set to a power of two greater than or equal to 32. If minPortsPerVm is not set, a minimum of 32 ports will be allocated to a VM from this NAT config. If maxPortsPerVm is set, maxPortsPerVm must be set to a power of two greater than minPortsPerVm. If maxPortsPerVm is not set, a maximum of 65536 ports will be allocated to a VM from this NAT config. Mutually exclusive with enableEndpointIndependentMapping.

source

pub fn maybe_enable_dynamic_port_allocation( self, value: Option<impl Into<Output<Option<bool>>>>, ) -> RouterNatArgsBuilder<SetEnableDynamicPortAllocation<S>>
where S::EnableDynamicPortAllocation: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<bool>> as Default>::default().

Enable Dynamic Port Allocation. If minPortsPerVm is set, minPortsPerVm must be set to a power of two greater than or equal to 32. If minPortsPerVm is not set, a minimum of 32 ports will be allocated to a VM from this NAT config. If maxPortsPerVm is set, maxPortsPerVm must be set to a power of two greater than minPortsPerVm. If maxPortsPerVm is not set, a maximum of 65536 ports will be allocated to a VM from this NAT config. Mutually exclusive with enableEndpointIndependentMapping.

source

pub fn enable_endpoint_independent_mapping( self, value: impl Into<Output<Option<bool>>>, ) -> RouterNatArgsBuilder<SetEnableEndpointIndependentMapping<S>>
where S::EnableEndpointIndependentMapping: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<bool>> as Default>::default().

Enable endpoint independent mapping. For more information see the official documentation.

source

pub fn maybe_enable_endpoint_independent_mapping( self, value: Option<impl Into<Output<Option<bool>>>>, ) -> RouterNatArgsBuilder<SetEnableEndpointIndependentMapping<S>>
where S::EnableEndpointIndependentMapping: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<bool>> as Default>::default().

Enable endpoint independent mapping. For more information see the official documentation.

source

pub fn endpoint_types( self, value: impl Into<Output<Option<Vec<String>>>>, ) -> RouterNatArgsBuilder<SetEndpointTypes<S>>
where S::EndpointTypes: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<Vec<String>>> as Default>::default().

Specifies the endpoint Types supported by the NAT Gateway. Supported values include: ENDPOINT_TYPE_VM, ENDPOINT_TYPE_SWG, ENDPOINT_TYPE_MANAGED_PROXY_LB.

source

pub fn maybe_endpoint_types( self, value: Option<impl Into<Output<Option<Vec<String>>>>>, ) -> RouterNatArgsBuilder<SetEndpointTypes<S>>
where S::EndpointTypes: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<Vec<String>>> as Default>::default().

Specifies the endpoint Types supported by the NAT Gateway. Supported values include: ENDPOINT_TYPE_VM, ENDPOINT_TYPE_SWG, ENDPOINT_TYPE_MANAGED_PROXY_LB.

source

pub fn icmp_idle_timeout_sec( self, value: impl Into<Output<Option<i32>>>, ) -> RouterNatArgsBuilder<SetIcmpIdleTimeoutSec<S>>
where S::IcmpIdleTimeoutSec: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<i32>> as Default>::default().

Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.

source

pub fn maybe_icmp_idle_timeout_sec( self, value: Option<impl Into<Output<Option<i32>>>>, ) -> RouterNatArgsBuilder<SetIcmpIdleTimeoutSec<S>>
where S::IcmpIdleTimeoutSec: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<i32>> as Default>::default().

Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.

source

pub fn initial_nat_ips( self, value: impl Into<Output<Option<Vec<String>>>>, ) -> RouterNatArgsBuilder<SetInitialNatIps<S>>
where S::InitialNatIps: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<Vec<String>>> as Default>::default().

Self-links of NAT IPs to be used as initial value for creation alongside a RouterNatAddress resource. Conflicts with natIps and drainNatIps. Only valid if natIpAllocateOption is set to MANUAL_ONLY.

source

pub fn maybe_initial_nat_ips( self, value: Option<impl Into<Output<Option<Vec<String>>>>>, ) -> RouterNatArgsBuilder<SetInitialNatIps<S>>
where S::InitialNatIps: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<Vec<String>>> as Default>::default().

Self-links of NAT IPs to be used as initial value for creation alongside a RouterNatAddress resource. Conflicts with natIps and drainNatIps. Only valid if natIpAllocateOption is set to MANUAL_ONLY.

source

pub fn log_config( self, value: impl Into<Output<Option<RouterNatLogConfig>>>, ) -> RouterNatArgsBuilder<SetLogConfig<S>>
where S::LogConfig: IsUnset,

Optional (Some / Option setters). Default:

<pulumi_wasm_rust::Output<
    Option<super::super::types::compute::RouterNatLogConfig>,
> as Default>::default()

Configuration for logging on NAT Structure is documented below.

source

pub fn maybe_log_config( self, value: Option<impl Into<Output<Option<RouterNatLogConfig>>>>, ) -> RouterNatArgsBuilder<SetLogConfig<S>>
where S::LogConfig: IsUnset,

Optional (Some / Option setters). Default:

<pulumi_wasm_rust::Output<
    Option<super::super::types::compute::RouterNatLogConfig>,
> as Default>::default()

Configuration for logging on NAT Structure is documented below.

source

pub fn max_ports_per_vm( self, value: impl Into<Output<Option<i32>>>, ) -> RouterNatArgsBuilder<SetMaxPortsPerVm<S>>
where S::MaxPortsPerVm: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<i32>> as Default>::default().

Maximum number of ports allocated to a VM from this NAT. This field can only be set when enableDynamicPortAllocation is enabled.

source

pub fn maybe_max_ports_per_vm( self, value: Option<impl Into<Output<Option<i32>>>>, ) -> RouterNatArgsBuilder<SetMaxPortsPerVm<S>>
where S::MaxPortsPerVm: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<i32>> as Default>::default().

Maximum number of ports allocated to a VM from this NAT. This field can only be set when enableDynamicPortAllocation is enabled.

source

pub fn min_ports_per_vm( self, value: impl Into<Output<Option<i32>>>, ) -> RouterNatArgsBuilder<SetMinPortsPerVm<S>>
where S::MinPortsPerVm: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<i32>> as Default>::default().

Minimum number of ports allocated to a VM from this NAT. Defaults to 64 for static port allocation and 32 dynamic port allocation if not set.

source

pub fn maybe_min_ports_per_vm( self, value: Option<impl Into<Output<Option<i32>>>>, ) -> RouterNatArgsBuilder<SetMinPortsPerVm<S>>
where S::MinPortsPerVm: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<i32>> as Default>::default().

Minimum number of ports allocated to a VM from this NAT. Defaults to 64 for static port allocation and 32 dynamic port allocation if not set.

source

pub fn name( self, value: impl Into<Output<Option<String>>>, ) -> RouterNatArgsBuilder<SetName<S>>
where S::Name: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<String>> as Default>::default().

Name of the NAT service. The name must be 1-63 characters long and comply with RFC1035.

source

pub fn maybe_name( self, value: Option<impl Into<Output<Option<String>>>>, ) -> RouterNatArgsBuilder<SetName<S>>
where S::Name: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<String>> as Default>::default().

Name of the NAT service. The name must be 1-63 characters long and comply with RFC1035.

source

pub fn nat_ip_allocate_option( self, value: impl Into<Output<Option<String>>>, ) -> RouterNatArgsBuilder<SetNatIpAllocateOption<S>>
where S::NatIpAllocateOption: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<String>> as Default>::default().

How external IPs should be allocated for this NAT. Valid values are AUTO_ONLY for only allowing NAT IPs allocated by Google Cloud Platform, or MANUAL_ONLY for only user-allocated NAT IP addresses. Possible values are: MANUAL_ONLY, AUTO_ONLY.

source

pub fn maybe_nat_ip_allocate_option( self, value: Option<impl Into<Output<Option<String>>>>, ) -> RouterNatArgsBuilder<SetNatIpAllocateOption<S>>
where S::NatIpAllocateOption: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<String>> as Default>::default().

How external IPs should be allocated for this NAT. Valid values are AUTO_ONLY for only allowing NAT IPs allocated by Google Cloud Platform, or MANUAL_ONLY for only user-allocated NAT IP addresses. Possible values are: MANUAL_ONLY, AUTO_ONLY.

source

pub fn nat_ips( self, value: impl Into<Output<Option<Vec<String>>>>, ) -> RouterNatArgsBuilder<SetNatIps<S>>
where S::NatIps: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<Vec<String>>> as Default>::default().

Self-links of NAT IPs. Only valid if natIpAllocateOption is set to MANUAL_ONLY. If this field is used alongside with a count created list of address resources google_compute_address.foobar.*.self_link, the access level resource for the address resource must have a lifecycle block with create_before_destroy = true so the number of resources can be increased/decreased without triggering the resourceInUseByAnotherResource error.

source

pub fn maybe_nat_ips( self, value: Option<impl Into<Output<Option<Vec<String>>>>>, ) -> RouterNatArgsBuilder<SetNatIps<S>>
where S::NatIps: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<Vec<String>>> as Default>::default().

Self-links of NAT IPs. Only valid if natIpAllocateOption is set to MANUAL_ONLY. If this field is used alongside with a count created list of address resources google_compute_address.foobar.*.self_link, the access level resource for the address resource must have a lifecycle block with create_before_destroy = true so the number of resources can be increased/decreased without triggering the resourceInUseByAnotherResource error.

source

pub fn project( self, value: impl Into<Output<Option<String>>>, ) -> RouterNatArgsBuilder<SetProject<S>>
where S::Project: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<String>> as Default>::default().

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

source

pub fn maybe_project( self, value: Option<impl Into<Output<Option<String>>>>, ) -> RouterNatArgsBuilder<SetProject<S>>
where S::Project: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<String>> as Default>::default().

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

source

pub fn region( self, value: impl Into<Output<Option<String>>>, ) -> RouterNatArgsBuilder<SetRegion<S>>
where S::Region: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<String>> as Default>::default().

Region where the router and NAT reside.

source

pub fn maybe_region( self, value: Option<impl Into<Output<Option<String>>>>, ) -> RouterNatArgsBuilder<SetRegion<S>>
where S::Region: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<String>> as Default>::default().

Region where the router and NAT reside.

source

pub fn router( self, value: impl Into<Output<String>>, ) -> RouterNatArgsBuilder<SetRouter<S>>
where S::Router: IsUnset,

Required.

The name of the Cloud Router in which this NAT will be configured.


source

pub fn rules( self, value: impl Into<Output<Option<Vec<RouterNatRule>>>>, ) -> RouterNatArgsBuilder<SetRules<S>>
where S::Rules: IsUnset,

Optional (Some / Option setters). Default:

<pulumi_wasm_rust::Output<
    Option<Vec<super::super::types::compute::RouterNatRule>>,
> as Default>::default()

A list of rules associated with this NAT. Structure is documented below.

source

pub fn maybe_rules( self, value: Option<impl Into<Output<Option<Vec<RouterNatRule>>>>>, ) -> RouterNatArgsBuilder<SetRules<S>>
where S::Rules: IsUnset,

Optional (Some / Option setters). Default:

<pulumi_wasm_rust::Output<
    Option<Vec<super::super::types::compute::RouterNatRule>>,
> as Default>::default()

A list of rules associated with this NAT. Structure is documented below.

source

pub fn source_subnetwork_ip_ranges_to_nat( self, value: impl Into<Output<String>>, ) -> RouterNatArgsBuilder<SetSourceSubnetworkIpRangesToNat<S>>
where S::SourceSubnetworkIpRangesToNat: IsUnset,

Required.

How NAT should be configured per Subnetwork. If ALL_SUBNETWORKS_ALL_IP_RANGES, all of the IP ranges in every Subnetwork are allowed to Nat. If ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, all of the primary IP ranges in every Subnetwork are allowed to Nat. LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat (specified in the field subnetwork below). Note that if this field contains ALL_SUBNETWORKS_ALL_IP_RANGES or ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any other RouterNat section in any Router for this network in this region. Possible values are: ALL_SUBNETWORKS_ALL_IP_RANGES, ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, LIST_OF_SUBNETWORKS.

source

pub fn subnetworks( self, value: impl Into<Output<Option<Vec<RouterNatSubnetwork>>>>, ) -> RouterNatArgsBuilder<SetSubnetworks<S>>
where S::Subnetworks: IsUnset,

Optional (Some / Option setters). Default:

<pulumi_wasm_rust::Output<
    Option<Vec<super::super::types::compute::RouterNatSubnetwork>>,
> as Default>::default()

One or more subnetwork NAT configurations. Only used if source_subnetwork_ip_ranges_to_nat is set to LIST_OF_SUBNETWORKS Structure is documented below.

source

pub fn maybe_subnetworks( self, value: Option<impl Into<Output<Option<Vec<RouterNatSubnetwork>>>>>, ) -> RouterNatArgsBuilder<SetSubnetworks<S>>
where S::Subnetworks: IsUnset,

Optional (Some / Option setters). Default:

<pulumi_wasm_rust::Output<
    Option<Vec<super::super::types::compute::RouterNatSubnetwork>>,
> as Default>::default()

One or more subnetwork NAT configurations. Only used if source_subnetwork_ip_ranges_to_nat is set to LIST_OF_SUBNETWORKS Structure is documented below.

source

pub fn tcp_established_idle_timeout_sec( self, value: impl Into<Output<Option<i32>>>, ) -> RouterNatArgsBuilder<SetTcpEstablishedIdleTimeoutSec<S>>
where S::TcpEstablishedIdleTimeoutSec: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<i32>> as Default>::default().

Timeout (in seconds) for TCP established connections. Defaults to 1200s if not set.

source

pub fn maybe_tcp_established_idle_timeout_sec( self, value: Option<impl Into<Output<Option<i32>>>>, ) -> RouterNatArgsBuilder<SetTcpEstablishedIdleTimeoutSec<S>>
where S::TcpEstablishedIdleTimeoutSec: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<i32>> as Default>::default().

Timeout (in seconds) for TCP established connections. Defaults to 1200s if not set.

source

pub fn tcp_time_wait_timeout_sec( self, value: impl Into<Output<Option<i32>>>, ) -> RouterNatArgsBuilder<SetTcpTimeWaitTimeoutSec<S>>
where S::TcpTimeWaitTimeoutSec: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<i32>> as Default>::default().

Timeout (in seconds) for TCP connections that are in TIME_WAIT state. Defaults to 120s if not set.

source

pub fn maybe_tcp_time_wait_timeout_sec( self, value: Option<impl Into<Output<Option<i32>>>>, ) -> RouterNatArgsBuilder<SetTcpTimeWaitTimeoutSec<S>>
where S::TcpTimeWaitTimeoutSec: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<i32>> as Default>::default().

Timeout (in seconds) for TCP connections that are in TIME_WAIT state. Defaults to 120s if not set.

source

pub fn tcp_transitory_idle_timeout_sec( self, value: impl Into<Output<Option<i32>>>, ) -> RouterNatArgsBuilder<SetTcpTransitoryIdleTimeoutSec<S>>
where S::TcpTransitoryIdleTimeoutSec: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<i32>> as Default>::default().

Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not set.

source

pub fn maybe_tcp_transitory_idle_timeout_sec( self, value: Option<impl Into<Output<Option<i32>>>>, ) -> RouterNatArgsBuilder<SetTcpTransitoryIdleTimeoutSec<S>>
where S::TcpTransitoryIdleTimeoutSec: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<i32>> as Default>::default().

Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not set.

source

pub fn type_( self, value: impl Into<Output<Option<String>>>, ) -> RouterNatArgsBuilder<SetType<S>>
where S::Type: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<String>> as Default>::default().

Indicates whether this NAT is used for public or private IP translation. If unspecified, it defaults to PUBLIC. If PUBLIC NAT used for public IP translation. If PRIVATE NAT used for private IP translation. Default value is PUBLIC. Possible values are: PUBLIC, PRIVATE.

source

pub fn maybe_type_( self, value: Option<impl Into<Output<Option<String>>>>, ) -> RouterNatArgsBuilder<SetType<S>>
where S::Type: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<String>> as Default>::default().

Indicates whether this NAT is used for public or private IP translation. If unspecified, it defaults to PUBLIC. If PUBLIC NAT used for public IP translation. If PRIVATE NAT used for private IP translation. Default value is PUBLIC. Possible values are: PUBLIC, PRIVATE.

source

pub fn udp_idle_timeout_sec( self, value: impl Into<Output<Option<i32>>>, ) -> RouterNatArgsBuilder<SetUdpIdleTimeoutSec<S>>
where S::UdpIdleTimeoutSec: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<i32>> as Default>::default().

Timeout (in seconds) for UDP connections. Defaults to 30s if not set.

source

pub fn maybe_udp_idle_timeout_sec( self, value: Option<impl Into<Output<Option<i32>>>>, ) -> RouterNatArgsBuilder<SetUdpIdleTimeoutSec<S>>
where S::UdpIdleTimeoutSec: IsUnset,

Optional (Some / Option setters). Default: <pulumi_wasm_rust::Output<Option<i32>> as Default>::default().

Timeout (in seconds) for UDP connections. Defaults to 30s if not set.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.