Skip to main content

template_model/
lib.rs

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