Skip to main content

template_model/
lib.rs

1#[cfg(feature = "uniffi-bindings")]
2uniffi::setup_scaffolding!();
3
4pub(crate) mod authored_template;
5pub mod budget;
6pub mod coercion;
7pub mod conditions;
8pub mod consts;
9pub mod defect;
10pub mod diagnostic;
11pub(crate) mod dynamic_ref;
12pub mod dynamodb;
13pub mod fargate;
14pub(crate) mod graph;
15pub mod hardcoded_az;
16pub mod iam_policy;
17pub(crate) mod intrinsic_arg_shapes;
18pub mod ir;
19pub mod json_value;
20pub(crate) mod lang_ext_shapes;
21pub(crate) mod language_extensions;
22pub mod message;
23pub mod model;
24pub(crate) mod nesting;
25pub(crate) mod parser;
26pub mod pattern;
27pub mod region_enums;
28pub mod regions;
29pub mod resolved_value;
30pub mod resolver;
31pub mod route_table;
32pub(crate) mod rules;
33pub(crate) mod sam;
34pub mod schedule;
35pub(crate) mod serialization;
36pub mod span;
37pub mod template_section;
38pub(crate) mod transform_expansion;
39pub(crate) mod value_identity;
40pub mod value_patterns;
41pub mod vpc_cidr;
42
43pub use budget::BudgetKind;
44pub use consts::PSEUDO_PARAMETERS;
45pub use consts::{
46    DEFAULT_ACCOUNT_ID, DEFAULT_STACK_NAME, FORMAT_VERSION, MARKER_CONDITIONAL, MARKER_DYNAMIC, MARKER_ENUM,
47    MARKER_IF_FALSE, MARKER_IF_TRUE, MARKER_INTRINSIC, MARKER_KIND, MARKER_PARAM_TYPE, MARKER_REF,
48    SAM_TRANSFORM_ERROR_PREFIX, SAM_TRANSFORM_ERROR_RULE_ID, is_sam_transform_error_message,
49};
50pub use defect::{DefectPhase, ParseDefect};
51pub use ir::*;
52pub use json_value::JsonValue;
53pub use message::{primary_identifier_conflict_message, quote, render_str_list, render_value, render_value_list};
54pub use model::{ParseConfig, ParseResult, PseudoParameterOverrides, SemanticModel};
55pub use pattern::{
56    CompiledPattern, anchor_allowed_pattern, compile as compile_pattern, default_matches_pattern, is_service_valid,
57};
58pub use regions::{
59    AVAILABILITY_ZONES, AWS_REGIONS, DEFAULT_PARTITION, DEFAULT_REGION, DEFAULT_URL_SUFFIX,
60    availability_zones_for_region, is_known_region, partition_for_region, url_suffix_for_region,
61};
62pub use schedule::schedule_expression_errors;
63pub use serialization::resolved_value_to_json;
64pub use span::{SourceSpan, SpanProvider, UNKNOWN_SPAN, span_to_option};
65pub use template_section::{EntityType, TopLevelSection, entity_identity};
66pub use value_patterns::{
67    AMI_ID_PATTERN, AVAILABILITY_ZONE_PATTERN, CAA_RECORD_PATTERN, IAM_ROLE_ARN_PATTERN, IAM_ROLE_ARN_RULE_PATTERN,
68    MX_RECORD_PATTERN, SECURITY_GROUP_NAME_PATTERN,
69};
70
71pub(crate) use defect::{make_parse_defect, make_parse_defect_at, make_parse_defect_for_resource};
72
73pub fn is_custom_resource_type(resource_type: &str) -> bool {
74    resource_type.starts_with("Custom::") || resource_type == "AWS::CloudFormation::CustomResource"
75}