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