// Copyright 2016-2019, Pulumi Corporation
namespace Pulumi
{
///
/// Useful static utility methods for both creating and working wit s.
///
public static partial class Output
{
private static readonly Output _zeroOut = Create(0);
private static readonly Input _zeroIn = Create(0);
///
/// Combines all the values in the provided parameters and combines
/// them all into a single tuple containing each of their underlying values. If any of the
/// s are not known, the final result will be not known. Similarly,
/// if any of the s are secrets, then the final result will be a
/// secret.
///
public static Output<(T1, T2, T3, T4, T5, T6, T7, T8)> Tuple(
Input item1, Input item2, Input item3, Input item4,
Input item5, Input item6, Input item7, Input item8)
=> Output<(T1, T2, T3, T4, T5, T6, T7, T8)>.Tuple(
item1, item2, item3, item4, item5, item6, item7, item8);
#region Overloads that take different numbers of inputs.
///
///
///
public static Output<(T1, T2)> Tuple(
Input item1, Input item2)
=> Tuple(item1, item2, _zeroIn, _zeroIn, _zeroIn, _zeroIn, _zeroIn, _zeroIn)
.Apply(v => (v.Item1, v.Item2));
///
///
///
public static Output<(T1, T2, T3)> Tuple(
Input item1, Input item2, Input item3)
=> Tuple(item1, item2, item3, _zeroIn, _zeroIn, _zeroIn, _zeroIn, _zeroIn)
.Apply(v => (v.Item1, v.Item2, v.Item3));
///
///
///
public static Output<(T1, T2, T3, T4)> Tuple(
Input item1, Input item2, Input item3, Input item4)
=> Tuple(item1, item2, item3, item4, _zeroIn, _zeroIn, _zeroIn, _zeroIn)
.Apply(v => (v.Item1, v.Item2, v.Item3, v.Item4));
///
///
///
public static Output<(T1, T2, T3, T4, T5)> Tuple(
Input item1, Input item2, Input item3, Input item4,
Input item5)
=> Tuple(item1, item2, item3, item4, item5, _zeroIn, _zeroIn, _zeroIn)
.Apply(v => (v.Item1, v.Item2, v.Item3, v.Item4, v.Item5));
///
///
///
public static Output<(T1, T2, T3, T4, T5, T6)> Tuple(
Input item1, Input item2, Input item3, Input item4,
Input item5, Input item6)
=> Tuple(item1, item2, item3, item4, item5, item6, _zeroIn, _zeroIn)
.Apply(v => (v.Item1, v.Item2, v.Item3, v.Item4, v.Item5, v.Item6));
///
///
///
public static Output<(T1, T2, T3, T4, T5, T6, T7)> Tuple(
Input item1, Input item2, Input item3, Input item4,
Input item5, Input item6, Input item7)
=> Tuple(item1, item2, item3, item4, item5, item6, item7, _zeroIn)
.Apply(v => (v.Item1, v.Item2, v.Item3, v.Item4, v.Item5, v.Item6, v.Item7));
#endregion
#region Overloads that take different numbers of outputs.
///
///
///
public static Output<(T1, T2)> Tuple(
Output item1, Output item2)
=> Tuple(item1, item2, _zeroOut, _zeroOut, _zeroOut, _zeroOut, _zeroOut, _zeroOut)
.Apply(v => (v.Item1, v.Item2));
///
///
///
public static Output<(T1, T2, T3)> Tuple(
Output item1, Output item2, Output item3)
=> Tuple(item1, item2, item3, _zeroOut, _zeroOut, _zeroOut, _zeroOut, _zeroOut)
.Apply(v => (v.Item1, v.Item2, v.Item3));
///
///
///
public static Output<(T1, T2, T3, T4)> Tuple(
Output item1, Output item2, Output item3, Output item4)
=> Tuple(item1, item2, item3, item4, _zeroOut, _zeroOut, _zeroOut, _zeroOut)
.Apply(v => (v.Item1, v.Item2, v.Item3, v.Item4));
///
///
///
public static Output<(T1, T2, T3, T4, T5)> Tuple(
Output item1, Output item2, Output item3, Output item4,
Output item5)
=> Tuple(item1, item2, item3, item4, item5, _zeroOut, _zeroOut, _zeroOut)
.Apply(v => (v.Item1, v.Item2, v.Item3, v.Item4, v.Item5));
///
///
///
public static Output<(T1, T2, T3, T4, T5, T6)> Tuple(
Output item1, Output item2, Output item3, Output item4,
Output item5, Output item6)
=> Tuple(item1, item2, item3, item4, item5, item6, _zeroOut, _zeroOut)
.Apply(v => (v.Item1, v.Item2, v.Item3, v.Item4, v.Item5, v.Item6));
///
///
///
public static Output<(T1, T2, T3, T4, T5, T6, T7)> Tuple(
Output item1, Output item2, Output item3, Output item4,
Output item5, Output item6, Output item7)
=> Tuple(item1, item2, item3, item4, item5, item6, item7, _zeroOut)
.Apply(v => (v.Item1, v.Item2, v.Item3, v.Item4, v.Item5, v.Item6, v.Item7));
///
///
///
public static Output<(T1, T2, T3, T4, T5, T6, T7, T8)> Tuple(
Output item1, Output item2, Output item3, Output item4,
Output item5, Output item6, Output item7, Output item8)
=> Output<(T1, T2, T3, T4, T5, T6, T7, T8)>.Tuple(
(Input)item1, (Input)item2, (Input)item3, (Input)item4,
(Input)item5, (Input)item6, (Input)item7, (Input)item8);
#endregion
}
}