2025-10-07 11:20:26 +01:00

109 lines
3.8 KiB
Plaintext

# Info: AWS provider dependencies for batch provisioning workflows (Provisioning)
# Author: Claude Code Agent 7
# Release: 2.0.0
# Date: 2025-09-25
import provisioning
schema NetworkDependencies:
"""VPC and networking dependencies"""
vpc_first: bool = True
subnets_require_vpc: bool = True
igw_for_public: bool = True
route_tables_auto: bool = True
nacls_after_subnets: bool = True
network_timeout: int = 10
schema SecurityDependencies:
"""Security Group dependencies"""
requires_vpc: bool = True
cross_references: bool = True
batch_size: int = 20
max_rules_per_group: int = 60
schema InstanceDependencies:
"""EC2 instance dependencies"""
requires: [str] = ["subnets", "security_groups", "key_pairs"]
launch_template_support: bool = True
batch_size: int = 10
max_concurrent_per_az: int = 20
launch_timeout: int = 10
placement_groups: bool = True
schema VolumeDependencies:
"""EBS volume dependencies"""
independent_creation: bool = True
attach_requires_running: bool = False
concurrent_snapshots: bool = True
batch_size: int = 15
single_az_restriction: bool = True
schema ApiLimits:
"""API rate limits and constraints"""
ec2_requests_per_second: int = 20
vpc_requests_per_second: int = 10
ebs_requests_per_second: int = 10
burst_multiplier: float = 2
throttle_backoff: int = 1000
max_retries: int = 5
regional_limits: bool = True
schema SharedResources:
"""Shared resources across accounts/regions"""
amis_shareable: bool = True
snapshots_shareable: bool = True
keypairs_regional: bool = True
vpcs_isolated: bool = True
sgs_vpc_scoped: bool = True
schema Lifecycle:
"""Resource lifecycle management"""
safe_delete: [str] = ["instances", "volumes", "snapshots"]
dependency_check: [str] = ["vpc", "subnets", "security_groups"]
cost_monitoring: [str] = ["instances", "volumes", "nat_gateways", "load_balancers"]
cleanup_order: [str] = ["load_balancers", "volumes", "instances", "key_pairs", "security_groups", "internet_gateways", "subnets", "vpc"]
schema CrossProvider:
"""Cross-provider compatibility"""
upcloud_compatible: bool = True
local_compatible: bool = True
hybrid_deployments: bool = True
naming_restrictions: [str] = ["aws-", "amazon-"]
mandatory_tags: [str] = ["Project", "Environment", "ManagedBy"]
schema AvailabilityZones:
"""Availability Zone considerations"""
multi_az_distribution: bool = True
min_az_count: int = 2
max_az_count: int = 3
affinity_groups: bool = True
schema Validation:
"""Validation and compliance"""
quota_validation: bool = True
permission_validation: bool = True
regional_limits: bool = True
compliance_checks: bool = True
cost_estimation: bool = True
schema AWSDependencies:
"""
AWS provider dependency management for batch workflows
"""
# Resource creation order and dependencies
resource_order: [str] = ["vpc", "subnets", "internet_gateways", "security_groups", "key_pairs", "instances", "volumes", "load_balancers"]
# Configuration sections
network_dependencies: NetworkDependencies = NetworkDependencies {}
security_dependencies: SecurityDependencies = SecurityDependencies {}
instance_dependencies: InstanceDependencies = InstanceDependencies {}
volume_dependencies: VolumeDependencies = VolumeDependencies {}
api_limits: ApiLimits = ApiLimits {}
shared_resources: SharedResources = SharedResources {}
lifecycle: Lifecycle = Lifecycle {}
cross_provider: CrossProvider = CrossProvider {}
availability_zones: AvailabilityZones = AvailabilityZones {}
validation: Validation = Validation {}
# Default dependency configuration for AWS provider
aws_dependencies: AWSDependencies = AWSDependencies {}