// Copyright 2016-2019, Pulumi Corporation
namespace Pulumi
{
///
/// Alias is a description of prior named used for a resource. It can be processed in the
/// context of a resource creation to determine what the full aliased URN would be.
///
/// Use in the case where a prior URN is known and can just be specified in
/// full. Otherwise, provide some subset of the other properties in this type to generate an
/// appropriate urn from the pre-existing values of the with certain
/// parts overridden.
///
/// The presence of a property indicates if its value should be used. If absent (i.e.
/// ), then the value is not used.
///
/// Note: because of the above, there needs to be special handling to indicate that the previous
/// of a was . Specifically,
/// pass in:
///
/// Aliases = { new Alias { NoParent = true } }
///
public sealed class Alias
{
///
/// The previous urn to alias to. If this is provided, no other properties in this type
/// should be provided.
///
public string? Urn { get; set; }
///
/// The previous name of the resource. If , the current name of the
/// resource is used.
///
public Input? Name { get; set; }
///
/// The previous type of the resource. If , the current type of the
/// resource is used.
///
public Input? Type { get; set; }
///
/// The previous stack of the resource. If , defaults to the value of
/// .
///
public Input? Stack { get; set; }
///
/// The previous project of the resource. If , defaults to the value
/// of .
///
public Input? Project { get; set; }
///
/// The previous parent of the resource. If , the current parent of
/// the resource is used.
///
/// To specify no original parent, use new Alias { NoParent = true }.
///
/// Only specify one of or or .
///
public Resource? Parent { get; set; }
///
/// The previous parent of the resource. If , the current parent of
/// the resource is used.
///
/// To specify no original parent, use new Alias { NoParent = true }.
///
/// Only specify one of or or .
///
public Input? ParentUrn { get; set; }
///
/// Used to indicate the resource previously had no parent. If this
/// property is ignored.
///
/// To specify no original parent, use new Alias { NoParent = true }.
///
/// Only specify one of or or .
///
public bool NoParent { get; set; }
}
}