Class Template
Represents an entire CloudFormation Template
Implements
Inherited Members
Namespace: Firefly.CloudFormationParser.TemplateObjects
Assembly: Firefly.CloudFormationParser.dll
Syntax
public class Template : ITemplate
Properties
| Improve this Doc View SourceAWSTemplateFormatVersion
Gets or sets the AWS template format version.
The AWS CloudFormation template version that the template conforms to. The template format version isn't the same as the API or WSDL version. The template format version can change independently of the API and WSDL versions.
Declaration
[YamlMember(Order = 0)]
public string AWSTemplateFormatVersion { get; set; }
Property Value
| Type | Description |
|---|---|
| String | The AWS template format version. |
Conditions
Gets or sets the conditions.
Conditions that control whether certain resources are created or whether certain resource properties are assigned a value during stack creation or update. For example, you could conditionally create a resource that depends on whether the stack is for a production or test environment.
Declaration
[YamlMember(Order = 6)]
public ConditionSection Conditions { get; set; }
Property Value
| Type | Description |
|---|---|
| ConditionSection | The conditions. |
DependencyGraph
Gets a directed edge graph of dependencies between inputs, resources and outputs.
Declaration
[YamlIgnore]
public BidirectionalGraph<IVertex, TaggedEdge<IVertex, EdgeDetail>> DependencyGraph { get; }
Property Value
| Type | Description |
|---|---|
| QuikGraph.BidirectionalGraph<IVertex, QuikGraph.TaggedEdge<IVertex, EdgeDetail>> | The dependency graph. |
Description
Gets or sets the template's description.
A text string that describes the template. This section must always follow the template format version section.
Declaration
[YamlMember(Order = 2)]
public string Description { get; set; }
Property Value
| Type | Description |
|---|---|
| String | The template's description which will be |
EvaluatedConditions
Gets the value of each condition where the dictionary key is the condition name, post evaluation.
Declaration
[YamlIgnore]
public Dictionary<string, bool> EvaluatedConditions { get; }
Property Value
| Type | Description |
|---|---|
| Dictionary<String, Boolean> | The evaluated conditions. |
Globals
Gets or sets the globals.
Globals are unique to AWS SAM
Declaration
[YamlMember(Order = 8)]
public GlobalSection Globals { get; set; }
Property Value
| Type | Description |
|---|---|
| GlobalSection | The conditions. |
IsSAMTemplate
Gets a value indicating whether this instance is a Serverless Application Model template.
Declaration
[YamlIgnore]
public bool IsSAMTemplate { get; }
Property Value
| Type | Description |
|---|---|
| Boolean |
|
Mappings
Gets or sets the mappings.
A mapping of keys and associated values that you can use to specify conditional parameter values, similar to a lookup table.
You can match a key to a corresponding value by using the Fn::FindInMap intrinsic function in the Resources and Outputs sections.
Declaration
[YamlMember(Order = 7)]
public MappingSection Mappings { get; set; }
Property Value
| Type | Description |
|---|---|
| MappingSection | The mappings which will be |
Metadata
Gets or sets the metadata - objects that provide additional information about the template.
Declaration
[YamlMember(Order = 3)]
public MetadataSection Metadata { get; set; }
Property Value
| Type | Description |
|---|---|
| MetadataSection | The metadata. |
Outputs
Gets the outputs.
Describes the values that are returned whenever you view your stack's properties.
For example, you can declare an output for an S3 bucket name and then call the aws cloudformation describe-stacks AWS CLI command to view the name.
Declaration
[YamlIgnore]
public IEnumerable<IOutput> Outputs { get; }
Property Value
| Type | Description |
|---|---|
| IEnumerable<IOutput> | The outputs. |
Parameters
Gets the parameters.
Values to pass to your template at runtime (when you create or update a stack). You can refer to parameters from the Resources and Outputs sections of the template.
Declaration
[YamlIgnore]
public IEnumerable<IParameter> Parameters { get; }
Property Value
| Type | Description |
|---|---|
| IEnumerable<IParameter> | The parameters. |
ParsedOutputs
Gets or sets the parsed outputs.
Use the convenience property Outputs to access the outputs.
Declaration
[YamlMember(Alias = "Outputs", Order = 10)]
public OutputSection ParsedOutputs { get; set; }
Property Value
| Type | Description |
|---|---|
| OutputSection | The parsed outputs. |
ParsedParameters
Gets or sets the parsed parameters.
Use the convenience property Parameters to access the parameters.
Declaration
[YamlMember(Alias = "Parameters", Order = 4)]
public ParameterSection ParsedParameters { get; set; }
Property Value
| Type | Description |
|---|---|
| ParameterSection | The parsed parameters. |
ParsedResources
Gets or sets the parsed resources.
Use the convenience property Resources to access the resources.
Declaration
[YamlMember(Alias = "Resources", Order = 9)]
public ResourceSection ParsedResources { get; set; }
Property Value
| Type | Description |
|---|---|
| ResourceSection | The parsed resources. |
Remarks
Not null as templates must have resources.
PseudoParameters
Gets any pseudo parameters discovered during template deserialization.
Declaration
[YamlIgnore]
public List<IParameter> PseudoParameters { get; }
Property Value
| Type | Description |
|---|---|
| List<IParameter> | The pseudo parameters. |
Resources
Gets the resources.
Specifies the stack resources and their properties, such as an Amazon Elastic Compute Cloud instance or an Amazon Simple Storage Service bucket.
You can refer to resources in the Resources and Outputs sections of the template.
Declaration
[YamlIgnore]
public IEnumerable<IResource> Resources { get; }
Property Value
| Type | Description |
|---|---|
| IEnumerable<IResource> | The resources. |
Rules
Gets or sets the rules.
Validates a parameter or a combination of parameters passed to a template during a stack creation or stack update.
Declaration
[YamlMember(Order = 5)]
public RuleSection Rules { get; set; }
Property Value
| Type | Description |
|---|---|
| RuleSection | The rules. |
Transform
Gets or sets the transformations.
For serverless applications (also referred to as Lambda-based applications), specifies the version of the AWS Serverless Application Model (AWS SAM) to use. When you specify a transform, you can use AWS SAM syntax to declare resources in your template. The model defines the syntax that you can use and how it's processed.
You can also use AWS::Include transforms to work with template snippets that are stored separately from the main AWS CloudFormation template. You can store your snippet files in an Amazon S3 bucket and then reuse the functions across multiple templates.
Declaration
[YamlMember(Order = 1)]
public object Transform { get; set; }
Property Value
| Type | Description |
|---|---|
| Object | The transformations which will be |
UserParameterValues
Gets any values for parameters set up from IDeserializerSettings
Declaration
[YamlIgnore]
public IDictionary<string, object> UserParameterValues { get; }
Property Value
| Type | Description |
|---|---|
| IDictionary<String, Object> | The parameter values. |
Methods
| Improve this Doc View SourceDeserialize(IDeserializerSettings)
Deserializes a YAML or JSON template.
Declaration
public static async Task<ITemplate> Deserialize(IDeserializerSettings settings)
Parameters
| Type | Name | Description |
|---|---|---|
| IDeserializerSettings | settings | A IDeserializerSettings implementation defining what to deserialize and how. |
Returns
| Type | Description |
|---|---|
| Task<ITemplate> | Deserialized template. |
Exceptions
| Type | Condition |
|---|---|
| ArgumentException | Content property cannot be null - settings |
Serialize(ITemplate)
Serializes a template to YAML.
Declaration
public static string Serialize(ITemplate template)
Parameters
| Type | Name | Description |
|---|---|---|
| ITemplate | template | The template to serialize. |
Returns
| Type | Description |
|---|---|
| String | YAML string. |