@fractal_cloud/sdk 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1563,6 +1563,29 @@ type LiveSystemBuilder = {
1563
1563
  //#region src/live_system/index.d.ts
1564
1564
  declare namespace LiveSystem$1 {
1565
1565
  type Status = 'Unknown' | 'Mutating' | 'Active' | 'FailedMutation' | 'Processing' | 'Error' | 'Ready' | 'Deleting' | 'Stale';
1566
+ /**
1567
+ * Controls how deploy() behaves after submitting the live system to the API.
1568
+ *
1569
+ * - `'fire-and-forget'` (default): submit and return immediately. Errors are
1570
+ * logged to the console but not thrown. Suitable for applications and CLIs
1571
+ * where deployment is a background concern.
1572
+ *
1573
+ * - `'wait'`: submit then poll until the live system reaches `Active` status.
1574
+ * Throws if deployment fails or if the timeout is exceeded. Suitable for
1575
+ * CI/CD pipelines where the pipeline must not advance until infrastructure
1576
+ * is fully provisioned.
1577
+ */
1578
+ type DeployOptions = {
1579
+ mode: 'fire-and-forget' | 'wait'; /** Polling interval in milliseconds. Default: 5000 (5 s). Only used with `mode: 'wait'`. */
1580
+ pollIntervalMs?: number; /** Maximum time to wait in milliseconds. Default: 600000 (10 min). Only used with `mode: 'wait'`. */
1581
+ timeoutMs?: number;
1582
+ /**
1583
+ * Suppress all SDK log output. Default: false.
1584
+ * Set to `true` when a CLI or wrapper layer owns the presentation layer.
1585
+ * Only applies to `mode: 'wait'` — `fire-and-forget` is always silent.
1586
+ */
1587
+ quiet?: boolean;
1588
+ };
1566
1589
  type Id = LiveSystemId;
1567
1590
  namespace Id {
1568
1591
  type Builder = LiveSystemIdBuilder;
@@ -1590,21 +1613,59 @@ type LiveSystem$1 = {
1590
1613
  environment: Environment$1;
1591
1614
  createdAt: Date;
1592
1615
  updatedAt: Date;
1593
- deploy: (credentials: ServiceAccountCredentials$1) => Promise<void>;
1616
+ deploy: (credentials: ServiceAccountCredentials$1, options?: LiveSystem$1.DeployOptions) => Promise<void>;
1594
1617
  destroy: (credentials: ServiceAccountCredentials$1) => Promise<void>;
1595
1618
  };
1596
1619
  //#endregion
1620
+ //#region src/fractal/component/network_and_compute/iaas/security_group.d.ts
1621
+ type IngressRule = {
1622
+ protocol?: string;
1623
+ fromPort: number;
1624
+ toPort?: number;
1625
+ sourceCidr?: string;
1626
+ sourceGroupId?: string;
1627
+ };
1628
+ type SecurityGroupBuilder = {
1629
+ withId: (id: string) => SecurityGroupBuilder;
1630
+ withVersion: (major: number, minor: number, patch: number) => SecurityGroupBuilder;
1631
+ withDisplayName: (displayName: string) => SecurityGroupBuilder;
1632
+ withDescription: (description: string) => SecurityGroupBuilder;
1633
+ withIngressRules: (rules: IngressRule[]) => SecurityGroupBuilder;
1634
+ withLinks: (links: ComponentLink[]) => SecurityGroupBuilder;
1635
+ build: () => SecurityGroupComponent;
1636
+ };
1637
+ type SecurityGroupConfig = {
1638
+ id: string;
1639
+ version: {
1640
+ major: number;
1641
+ minor: number;
1642
+ patch: number;
1643
+ };
1644
+ displayName: string;
1645
+ description: string;
1646
+ ingressRules?: IngressRule[];
1647
+ };
1648
+ /** A BlueprintComponent that is guaranteed to be a SecurityGroup. */
1649
+ type SecurityGroupComponent = BlueprintComponent & {
1650
+ readonly _brand: 'SecurityGroup';
1651
+ };
1652
+ declare namespace SecurityGroup {
1653
+ const getBuilder: () => SecurityGroupBuilder;
1654
+ const create: (config: SecurityGroupConfig) => SecurityGroupComponent;
1655
+ }
1656
+ //#endregion
1597
1657
  //#region src/fractal/component/network_and_compute/iaas/vm.d.ts
1598
1658
  type VmPortLink = {
1599
- target: VirtualMachineNode;
1659
+ target: VirtualMachineComponent;
1600
1660
  fromPort: number;
1601
1661
  toPort?: number;
1602
1662
  protocol?: string;
1603
1663
  };
1604
- type VirtualMachineNode = {
1664
+ type VirtualMachineComponent = {
1605
1665
  readonly component: BlueprintComponent;
1606
- readonly components: ReadonlyArray<BlueprintComponent>;
1607
- withLinks: (links: VmPortLink[]) => VirtualMachineNode;
1666
+ readonly components: ReadonlyArray<BlueprintComponent>; /** Declares a traffic rule from this VM to another. The agent derives managed SG egress/ingress rules. */
1667
+ linkToVirtualMachine: (links: VmPortLink[]) => VirtualMachineComponent; /** Declares SG membership. The agent assigns the VM to the given security group at launch. No settings required. */
1668
+ linkToSecurityGroup: (sgs: SecurityGroupComponent[]) => VirtualMachineComponent;
1608
1669
  };
1609
1670
  type VirtualMachineBuilder = {
1610
1671
  withId: (id: string) => VirtualMachineBuilder;
@@ -1626,7 +1687,7 @@ type VirtualMachineConfig = {
1626
1687
  };
1627
1688
  declare namespace VirtualMachine {
1628
1689
  const getBuilder: () => VirtualMachineBuilder;
1629
- const create: (config: VirtualMachineConfig) => VirtualMachineNode;
1690
+ const create: (config: VirtualMachineConfig) => VirtualMachineComponent;
1630
1691
  }
1631
1692
  //#endregion
1632
1693
  //#region src/fractal/component/custom_workloads/caas/workload.d.ts
@@ -1635,16 +1696,16 @@ declare namespace VirtualMachine {
1635
1696
  * The agent derives managed SG egress/ingress rules from these.
1636
1697
  */
1637
1698
  type WorkloadPortLink = {
1638
- target: WorkloadNode;
1699
+ target: WorkloadComponent;
1639
1700
  fromPort: number;
1640
1701
  toPort?: number;
1641
1702
  protocol?: string;
1642
1703
  };
1643
- type WorkloadNode = {
1704
+ type WorkloadComponent = {
1644
1705
  readonly component: BlueprintComponent;
1645
- readonly components: ReadonlyArray<BlueprintComponent>;
1646
- withLinks: (links: WorkloadPortLink[]) => WorkloadNode;
1647
- withSecurityGroups: (sgs: BlueprintComponent[]) => WorkloadNode;
1706
+ readonly components: ReadonlyArray<BlueprintComponent>; /** Declares a traffic rule from this workload to another. The agent derives managed SG egress/ingress rules. */
1707
+ linkToWorkload: (links: WorkloadPortLink[]) => WorkloadComponent; /** Declares SG membership. The agent assigns the workload to the given security group at launch. No settings required. */
1708
+ linkToSecurityGroup: (sgs: SecurityGroupComponent[]) => WorkloadComponent;
1648
1709
  };
1649
1710
  type WorkloadBuilder = {
1650
1711
  withId: (id: string) => WorkloadBuilder;
@@ -1677,17 +1738,17 @@ type WorkloadConfig = {
1677
1738
  };
1678
1739
  declare namespace Workload {
1679
1740
  const getBuilder: () => WorkloadBuilder;
1680
- const create: (config: WorkloadConfig) => WorkloadNode;
1741
+ const create: (config: WorkloadConfig) => WorkloadComponent;
1681
1742
  }
1682
1743
  //#endregion
1683
1744
  //#region src/fractal/component/network_and_compute/iaas/subnet.d.ts
1684
- type SubnetNode = {
1745
+ type SubnetComponent = {
1685
1746
  readonly subnet: BlueprintComponent;
1686
1747
  readonly virtualMachines: ReadonlyArray<BlueprintComponent>;
1687
1748
  readonly workloads: ReadonlyArray<BlueprintComponent>;
1688
1749
  readonly components: ReadonlyArray<BlueprintComponent>;
1689
- withVirtualMachines: (vms: VirtualMachineNode[]) => SubnetNode;
1690
- withWorkloads: (workloads: ReadonlyArray<WorkloadNode>) => SubnetNode;
1750
+ withVirtualMachines: (vms: VirtualMachineComponent[]) => SubnetComponent;
1751
+ withWorkloads: (workloads: ReadonlyArray<WorkloadComponent>) => SubnetComponent;
1691
1752
  };
1692
1753
  type SubnetResult = {
1693
1754
  readonly subnet: BlueprintComponent;
@@ -1717,52 +1778,19 @@ type SubnetConfig = {
1717
1778
  };
1718
1779
  declare namespace Subnet {
1719
1780
  const getBuilder: () => SubnetBuilder;
1720
- const create: (config: SubnetConfig) => SubnetNode;
1721
- }
1722
- //#endregion
1723
- //#region src/fractal/component/network_and_compute/iaas/security_group.d.ts
1724
- type IngressRule = {
1725
- protocol?: string;
1726
- fromPort: number;
1727
- toPort?: number;
1728
- sourceCidr?: string;
1729
- sourceGroupId?: string;
1730
- };
1731
- type SecurityGroupBuilder = {
1732
- withId: (id: string) => SecurityGroupBuilder;
1733
- withVersion: (major: number, minor: number, patch: number) => SecurityGroupBuilder;
1734
- withDisplayName: (displayName: string) => SecurityGroupBuilder;
1735
- withDescription: (description: string) => SecurityGroupBuilder;
1736
- withIngressRules: (rules: IngressRule[]) => SecurityGroupBuilder;
1737
- withLinks: (links: ComponentLink[]) => SecurityGroupBuilder;
1738
- build: () => BlueprintComponent;
1739
- };
1740
- type SecurityGroupConfig = {
1741
- id: string;
1742
- version: {
1743
- major: number;
1744
- minor: number;
1745
- patch: number;
1746
- };
1747
- displayName: string;
1748
- description: string;
1749
- ingressRules?: IngressRule[];
1750
- };
1751
- declare namespace SecurityGroup {
1752
- const getBuilder: () => SecurityGroupBuilder;
1753
- const create: (config: SecurityGroupConfig) => BlueprintComponent;
1781
+ const create: (config: SubnetConfig) => SubnetComponent;
1754
1782
  }
1755
1783
  //#endregion
1756
1784
  //#region src/fractal/component/network_and_compute/iaas/virtual_network.d.ts
1757
- type VirtualNetworkNode = {
1785
+ type VirtualNetworkComponent = {
1758
1786
  readonly vpc: BlueprintComponent;
1759
1787
  readonly subnets: ReadonlyArray<BlueprintComponent>;
1760
1788
  readonly securityGroups: ReadonlyArray<BlueprintComponent>;
1761
1789
  readonly virtualMachines: ReadonlyArray<BlueprintComponent>;
1762
1790
  readonly workloads: ReadonlyArray<BlueprintComponent>;
1763
1791
  readonly components: ReadonlyArray<BlueprintComponent>;
1764
- withSubnets: (subnets: SubnetNode[]) => VirtualNetworkNode;
1765
- withSecurityGroups: (sgs: BlueprintComponent[]) => VirtualNetworkNode;
1792
+ withSubnets: (subnets: SubnetComponent[]) => VirtualNetworkComponent;
1793
+ withSecurityGroups: (sgs: BlueprintComponent[]) => VirtualNetworkComponent;
1766
1794
  };
1767
1795
  type VirtualNetworkResult = {
1768
1796
  readonly vpc: BlueprintComponent;
@@ -1796,7 +1824,7 @@ type VirtualNetworkConfig = {
1796
1824
  };
1797
1825
  declare namespace VirtualNetwork {
1798
1826
  const getBuilder: () => VirtualNetworkBuilder;
1799
- const create: (config: VirtualNetworkConfig) => VirtualNetworkNode;
1827
+ const create: (config: VirtualNetworkConfig) => VirtualNetworkComponent;
1800
1828
  }
1801
1829
  //#endregion
1802
1830
  //#region src/live_system/component/network_and_compute/iaas/vpc.d.ts
@@ -2626,14 +2654,14 @@ declare namespace HetznerServer {
2626
2654
  }
2627
2655
  //#endregion
2628
2656
  //#region src/fractal/component/network_and_compute/paas/container_platform.d.ts
2629
- type ContainerPlatformNode = {
2657
+ type ContainerPlatformComponent = {
2630
2658
  readonly platform: BlueprintComponent;
2631
2659
  /**
2632
2660
  * Workload nodes with the platform dependency auto-wired into each component.
2633
2661
  * Pass these to Subnet.withWorkloads() so the subnet dep is stacked on top.
2634
2662
  */
2635
- readonly workloads: ReadonlyArray<WorkloadNode>;
2636
- withWorkloads: (workloads: WorkloadNode[]) => ContainerPlatformNode;
2663
+ readonly workloads: ReadonlyArray<WorkloadComponent>;
2664
+ withWorkloads: (workloads: WorkloadComponent[]) => ContainerPlatformComponent;
2637
2665
  };
2638
2666
  type ContainerPlatformBuilder = {
2639
2667
  withId: (id: string) => ContainerPlatformBuilder;
@@ -2654,7 +2682,7 @@ type ContainerPlatformConfig = {
2654
2682
  };
2655
2683
  declare namespace ContainerPlatform {
2656
2684
  const getBuilder: () => ContainerPlatformBuilder;
2657
- const create: (config: ContainerPlatformConfig) => ContainerPlatformNode;
2685
+ const create: (config: ContainerPlatformConfig) => ContainerPlatformComponent;
2658
2686
  }
2659
2687
  //#endregion
2660
2688
  //#region src/live_system/component/network_and_compute/paas/ecs_cluster.d.ts
@@ -2755,11 +2783,17 @@ declare namespace AwsEcsTaskDefinition {
2755
2783
  /**
2756
2784
  * Returned by satisfy() — all structural properties (dependencies, links,
2757
2785
  * desiredCount) are locked from the blueprint. Only AWS-specific launch
2758
- * parameters are set here.
2786
+ * parameters and live-system sub-component dependencies are set here.
2759
2787
  */
2760
2788
  type SatisfiedAwsEcsServiceBuilder = {
2761
2789
  withLaunchType: (type: string) => SatisfiedAwsEcsServiceBuilder;
2762
2790
  withAssignPublicIp: (assign: boolean) => SatisfiedAwsEcsServiceBuilder;
2791
+ /**
2792
+ * Declares a live-system-only dependency on the ECS Task Definition that
2793
+ * this service will run. This has no blueprint equivalent — it is an
2794
+ * AWS-specific sub-component relationship.
2795
+ */
2796
+ withTaskDefinition: (taskDef: LiveSystemComponent) => SatisfiedAwsEcsServiceBuilder;
2763
2797
  build: () => LiveSystemComponent;
2764
2798
  };
2765
2799
  type AwsEcsServiceBuilder = {
@@ -2787,6 +2821,12 @@ type AwsEcsServiceConfig = {
2787
2821
  };
2788
2822
  declare namespace AwsEcsService {
2789
2823
  const getBuilder: () => AwsEcsServiceBuilder;
2824
+ /**
2825
+ * Satisfies a blueprint Workload component as an AWS ECS Service.
2826
+ * All structural properties — dependencies (subnet, cluster), links
2827
+ * (traffic rules, SG membership), and desiredCount — are carried from
2828
+ * the blueprint unchanged. Only AWS-specific launch parameters are added here.
2829
+ */
2790
2830
  /**
2791
2831
  * Satisfies a blueprint Workload component as an AWS ECS Service.
2792
2832
  * All structural properties — dependencies (subnet, cluster), links
@@ -2825,4 +2865,4 @@ type Environment = Environment$1;
2825
2865
  declare const LiveSystem: typeof LiveSystem$1;
2826
2866
  type LiveSystem = LiveSystem$1;
2827
2867
  //#endregion
2828
- export { AwsEcsCluster, type AwsEcsClusterBuilder, type AwsEcsClusterConfig, AwsEcsService, type AwsEcsServiceBuilder, type AwsEcsServiceConfig, AwsEcsTaskDefinition, type AwsEcsTaskDefinitionBuilder, type AwsEcsTaskDefinitionConfig, AwsSecurityGroup, type AwsSecurityGroupBuilder, type AwsSecurityGroupConfig, AwsSubnet, type AwsSubnetBuilder, type AwsSubnetConfig, AwsVpc, type AwsVpcBuilder, type AwsVpcConfig, AzureNsg, type AzureNsgBuilder, type AzureNsgConfig, AzureSubnet, type AzureSubnetBuilder, type AzureSubnetConfig, AzureVm, type AzureVmBuilder, type AzureVmConfig, AzureVnet, type AzureVnetBuilder, type AzureVnetConfig, BoundedContext, ContainerPlatform, type ContainerPlatformBuilder, type ContainerPlatformConfig, type ContainerPlatformNode, Ec2Instance, type Ec2InstanceBuilder, type Ec2InstanceConfig, Environment, Fractal, GcpFirewall, type GcpFirewallBuilder, type GcpFirewallConfig, GcpSubnet, type GcpSubnetBuilder, type GcpSubnetConfig, GcpVm, type GcpVmBuilder, type GcpVmConfig, GcpVpc, type GcpVpcBuilder, type GcpVpcConfig, HetznerFirewall, type HetznerFirewallBuilder, type HetznerFirewallConfig, HetznerNetwork, type HetznerNetworkBuilder, type HetznerNetworkConfig, HetznerServer, type HetznerServerBuilder, type HetznerServerConfig, HetznerSubnet, type HetznerSubnetBuilder, type HetznerSubnetConfig, InfrastructureDomain, type IngressRule, KebabCaseString, LiveSystem, OciInstance, type OciInstanceBuilder, type OciInstanceConfig, OciSecurityList, type OciSecurityListBuilder, type OciSecurityListConfig, OciSubnet, type OciSubnetBuilder, type OciSubnetConfig, OciVcn, type OciVcnBuilder, type OciVcnConfig, OwnerId, OwnerType, PascalCaseString, type SatisfiedAwsEcsClusterBuilder, type SatisfiedAwsEcsServiceBuilder, type SatisfiedAwsEcsTaskDefinitionBuilder, type SatisfiedAwsSecurityGroupBuilder, type SatisfiedAwsSubnetBuilder, type SatisfiedAwsVpcBuilder, type SatisfiedAzureNsgBuilder, type SatisfiedAzureSubnetBuilder, type SatisfiedAzureVmBuilder, type SatisfiedAzureVnetBuilder, type SatisfiedEc2Builder, type SatisfiedGcpFirewallBuilder, type SatisfiedGcpSubnetBuilder, type SatisfiedGcpVmBuilder, type SatisfiedGcpVpcBuilder, type SatisfiedHetznerFirewallBuilder, type SatisfiedHetznerNetworkBuilder, type SatisfiedHetznerServerBuilder, type SatisfiedHetznerSubnetBuilder, type SatisfiedOciInstanceBuilder, type SatisfiedOciSecurityListBuilder, type SatisfiedOciSubnetBuilder, type SatisfiedOciVcnBuilder, SecurityGroup, type SecurityGroupBuilder, type SecurityGroupConfig, ServiceAccountCredentials, ServiceAccountId, ServiceDeliveryModel, Subnet, type SubnetBuilder, type SubnetConfig, type SubnetNode, type SubnetResult, Version, VirtualMachine, type VirtualMachineBuilder, type VirtualMachineConfig, type VirtualMachineNode, VirtualNetwork, type VirtualNetworkBuilder, type VirtualNetworkConfig, type VirtualNetworkNode, type VirtualNetworkResult, type VmPortLink, Workload, type WorkloadBuilder, type WorkloadConfig, type WorkloadNode, type WorkloadPortLink };
2868
+ export { AwsEcsCluster, type AwsEcsClusterBuilder, type AwsEcsClusterConfig, AwsEcsService, type AwsEcsServiceBuilder, type AwsEcsServiceConfig, AwsEcsTaskDefinition, type AwsEcsTaskDefinitionBuilder, type AwsEcsTaskDefinitionConfig, AwsSecurityGroup, type AwsSecurityGroupBuilder, type AwsSecurityGroupConfig, AwsSubnet, type AwsSubnetBuilder, type AwsSubnetConfig, AwsVpc, type AwsVpcBuilder, type AwsVpcConfig, AzureNsg, type AzureNsgBuilder, type AzureNsgConfig, AzureSubnet, type AzureSubnetBuilder, type AzureSubnetConfig, AzureVm, type AzureVmBuilder, type AzureVmConfig, AzureVnet, type AzureVnetBuilder, type AzureVnetConfig, BoundedContext, ContainerPlatform, type ContainerPlatformBuilder, type ContainerPlatformComponent, type ContainerPlatformConfig, Ec2Instance, type Ec2InstanceBuilder, type Ec2InstanceConfig, Environment, Fractal, GcpFirewall, type GcpFirewallBuilder, type GcpFirewallConfig, GcpSubnet, type GcpSubnetBuilder, type GcpSubnetConfig, GcpVm, type GcpVmBuilder, type GcpVmConfig, GcpVpc, type GcpVpcBuilder, type GcpVpcConfig, HetznerFirewall, type HetznerFirewallBuilder, type HetznerFirewallConfig, HetznerNetwork, type HetznerNetworkBuilder, type HetznerNetworkConfig, HetznerServer, type HetznerServerBuilder, type HetznerServerConfig, HetznerSubnet, type HetznerSubnetBuilder, type HetznerSubnetConfig, InfrastructureDomain, type IngressRule, KebabCaseString, LiveSystem, OciInstance, type OciInstanceBuilder, type OciInstanceConfig, OciSecurityList, type OciSecurityListBuilder, type OciSecurityListConfig, OciSubnet, type OciSubnetBuilder, type OciSubnetConfig, OciVcn, type OciVcnBuilder, type OciVcnConfig, OwnerId, OwnerType, PascalCaseString, type SatisfiedAwsEcsClusterBuilder, type SatisfiedAwsEcsServiceBuilder, type SatisfiedAwsEcsTaskDefinitionBuilder, type SatisfiedAwsSecurityGroupBuilder, type SatisfiedAwsSubnetBuilder, type SatisfiedAwsVpcBuilder, type SatisfiedAzureNsgBuilder, type SatisfiedAzureSubnetBuilder, type SatisfiedAzureVmBuilder, type SatisfiedAzureVnetBuilder, type SatisfiedEc2Builder, type SatisfiedGcpFirewallBuilder, type SatisfiedGcpSubnetBuilder, type SatisfiedGcpVmBuilder, type SatisfiedGcpVpcBuilder, type SatisfiedHetznerFirewallBuilder, type SatisfiedHetznerNetworkBuilder, type SatisfiedHetznerServerBuilder, type SatisfiedHetznerSubnetBuilder, type SatisfiedOciInstanceBuilder, type SatisfiedOciSecurityListBuilder, type SatisfiedOciSubnetBuilder, type SatisfiedOciVcnBuilder, SecurityGroup, type SecurityGroupBuilder, type SecurityGroupComponent, type SecurityGroupConfig, ServiceAccountCredentials, ServiceAccountId, ServiceDeliveryModel, Subnet, type SubnetBuilder, type SubnetComponent, type SubnetConfig, type SubnetResult, Version, VirtualMachine, type VirtualMachineBuilder, type VirtualMachineComponent, type VirtualMachineConfig, VirtualNetwork, type VirtualNetworkBuilder, type VirtualNetworkComponent, type VirtualNetworkConfig, type VirtualNetworkResult, type VmPortLink, Workload, type WorkloadBuilder, type WorkloadComponent, type WorkloadConfig, type WorkloadPortLink };
package/dist/index.d.mts CHANGED
@@ -1563,6 +1563,29 @@ type LiveSystemBuilder = {
1563
1563
  //#region src/live_system/index.d.ts
1564
1564
  declare namespace LiveSystem$1 {
1565
1565
  type Status = 'Unknown' | 'Mutating' | 'Active' | 'FailedMutation' | 'Processing' | 'Error' | 'Ready' | 'Deleting' | 'Stale';
1566
+ /**
1567
+ * Controls how deploy() behaves after submitting the live system to the API.
1568
+ *
1569
+ * - `'fire-and-forget'` (default): submit and return immediately. Errors are
1570
+ * logged to the console but not thrown. Suitable for applications and CLIs
1571
+ * where deployment is a background concern.
1572
+ *
1573
+ * - `'wait'`: submit then poll until the live system reaches `Active` status.
1574
+ * Throws if deployment fails or if the timeout is exceeded. Suitable for
1575
+ * CI/CD pipelines where the pipeline must not advance until infrastructure
1576
+ * is fully provisioned.
1577
+ */
1578
+ type DeployOptions = {
1579
+ mode: 'fire-and-forget' | 'wait'; /** Polling interval in milliseconds. Default: 5000 (5 s). Only used with `mode: 'wait'`. */
1580
+ pollIntervalMs?: number; /** Maximum time to wait in milliseconds. Default: 600000 (10 min). Only used with `mode: 'wait'`. */
1581
+ timeoutMs?: number;
1582
+ /**
1583
+ * Suppress all SDK log output. Default: false.
1584
+ * Set to `true` when a CLI or wrapper layer owns the presentation layer.
1585
+ * Only applies to `mode: 'wait'` — `fire-and-forget` is always silent.
1586
+ */
1587
+ quiet?: boolean;
1588
+ };
1566
1589
  type Id = LiveSystemId;
1567
1590
  namespace Id {
1568
1591
  type Builder = LiveSystemIdBuilder;
@@ -1590,21 +1613,59 @@ type LiveSystem$1 = {
1590
1613
  environment: Environment$1;
1591
1614
  createdAt: Date;
1592
1615
  updatedAt: Date;
1593
- deploy: (credentials: ServiceAccountCredentials$1) => Promise<void>;
1616
+ deploy: (credentials: ServiceAccountCredentials$1, options?: LiveSystem$1.DeployOptions) => Promise<void>;
1594
1617
  destroy: (credentials: ServiceAccountCredentials$1) => Promise<void>;
1595
1618
  };
1596
1619
  //#endregion
1620
+ //#region src/fractal/component/network_and_compute/iaas/security_group.d.ts
1621
+ type IngressRule = {
1622
+ protocol?: string;
1623
+ fromPort: number;
1624
+ toPort?: number;
1625
+ sourceCidr?: string;
1626
+ sourceGroupId?: string;
1627
+ };
1628
+ type SecurityGroupBuilder = {
1629
+ withId: (id: string) => SecurityGroupBuilder;
1630
+ withVersion: (major: number, minor: number, patch: number) => SecurityGroupBuilder;
1631
+ withDisplayName: (displayName: string) => SecurityGroupBuilder;
1632
+ withDescription: (description: string) => SecurityGroupBuilder;
1633
+ withIngressRules: (rules: IngressRule[]) => SecurityGroupBuilder;
1634
+ withLinks: (links: ComponentLink[]) => SecurityGroupBuilder;
1635
+ build: () => SecurityGroupComponent;
1636
+ };
1637
+ type SecurityGroupConfig = {
1638
+ id: string;
1639
+ version: {
1640
+ major: number;
1641
+ minor: number;
1642
+ patch: number;
1643
+ };
1644
+ displayName: string;
1645
+ description: string;
1646
+ ingressRules?: IngressRule[];
1647
+ };
1648
+ /** A BlueprintComponent that is guaranteed to be a SecurityGroup. */
1649
+ type SecurityGroupComponent = BlueprintComponent & {
1650
+ readonly _brand: 'SecurityGroup';
1651
+ };
1652
+ declare namespace SecurityGroup {
1653
+ const getBuilder: () => SecurityGroupBuilder;
1654
+ const create: (config: SecurityGroupConfig) => SecurityGroupComponent;
1655
+ }
1656
+ //#endregion
1597
1657
  //#region src/fractal/component/network_and_compute/iaas/vm.d.ts
1598
1658
  type VmPortLink = {
1599
- target: VirtualMachineNode;
1659
+ target: VirtualMachineComponent;
1600
1660
  fromPort: number;
1601
1661
  toPort?: number;
1602
1662
  protocol?: string;
1603
1663
  };
1604
- type VirtualMachineNode = {
1664
+ type VirtualMachineComponent = {
1605
1665
  readonly component: BlueprintComponent;
1606
- readonly components: ReadonlyArray<BlueprintComponent>;
1607
- withLinks: (links: VmPortLink[]) => VirtualMachineNode;
1666
+ readonly components: ReadonlyArray<BlueprintComponent>; /** Declares a traffic rule from this VM to another. The agent derives managed SG egress/ingress rules. */
1667
+ linkToVirtualMachine: (links: VmPortLink[]) => VirtualMachineComponent; /** Declares SG membership. The agent assigns the VM to the given security group at launch. No settings required. */
1668
+ linkToSecurityGroup: (sgs: SecurityGroupComponent[]) => VirtualMachineComponent;
1608
1669
  };
1609
1670
  type VirtualMachineBuilder = {
1610
1671
  withId: (id: string) => VirtualMachineBuilder;
@@ -1626,7 +1687,7 @@ type VirtualMachineConfig = {
1626
1687
  };
1627
1688
  declare namespace VirtualMachine {
1628
1689
  const getBuilder: () => VirtualMachineBuilder;
1629
- const create: (config: VirtualMachineConfig) => VirtualMachineNode;
1690
+ const create: (config: VirtualMachineConfig) => VirtualMachineComponent;
1630
1691
  }
1631
1692
  //#endregion
1632
1693
  //#region src/fractal/component/custom_workloads/caas/workload.d.ts
@@ -1635,16 +1696,16 @@ declare namespace VirtualMachine {
1635
1696
  * The agent derives managed SG egress/ingress rules from these.
1636
1697
  */
1637
1698
  type WorkloadPortLink = {
1638
- target: WorkloadNode;
1699
+ target: WorkloadComponent;
1639
1700
  fromPort: number;
1640
1701
  toPort?: number;
1641
1702
  protocol?: string;
1642
1703
  };
1643
- type WorkloadNode = {
1704
+ type WorkloadComponent = {
1644
1705
  readonly component: BlueprintComponent;
1645
- readonly components: ReadonlyArray<BlueprintComponent>;
1646
- withLinks: (links: WorkloadPortLink[]) => WorkloadNode;
1647
- withSecurityGroups: (sgs: BlueprintComponent[]) => WorkloadNode;
1706
+ readonly components: ReadonlyArray<BlueprintComponent>; /** Declares a traffic rule from this workload to another. The agent derives managed SG egress/ingress rules. */
1707
+ linkToWorkload: (links: WorkloadPortLink[]) => WorkloadComponent; /** Declares SG membership. The agent assigns the workload to the given security group at launch. No settings required. */
1708
+ linkToSecurityGroup: (sgs: SecurityGroupComponent[]) => WorkloadComponent;
1648
1709
  };
1649
1710
  type WorkloadBuilder = {
1650
1711
  withId: (id: string) => WorkloadBuilder;
@@ -1677,17 +1738,17 @@ type WorkloadConfig = {
1677
1738
  };
1678
1739
  declare namespace Workload {
1679
1740
  const getBuilder: () => WorkloadBuilder;
1680
- const create: (config: WorkloadConfig) => WorkloadNode;
1741
+ const create: (config: WorkloadConfig) => WorkloadComponent;
1681
1742
  }
1682
1743
  //#endregion
1683
1744
  //#region src/fractal/component/network_and_compute/iaas/subnet.d.ts
1684
- type SubnetNode = {
1745
+ type SubnetComponent = {
1685
1746
  readonly subnet: BlueprintComponent;
1686
1747
  readonly virtualMachines: ReadonlyArray<BlueprintComponent>;
1687
1748
  readonly workloads: ReadonlyArray<BlueprintComponent>;
1688
1749
  readonly components: ReadonlyArray<BlueprintComponent>;
1689
- withVirtualMachines: (vms: VirtualMachineNode[]) => SubnetNode;
1690
- withWorkloads: (workloads: ReadonlyArray<WorkloadNode>) => SubnetNode;
1750
+ withVirtualMachines: (vms: VirtualMachineComponent[]) => SubnetComponent;
1751
+ withWorkloads: (workloads: ReadonlyArray<WorkloadComponent>) => SubnetComponent;
1691
1752
  };
1692
1753
  type SubnetResult = {
1693
1754
  readonly subnet: BlueprintComponent;
@@ -1717,52 +1778,19 @@ type SubnetConfig = {
1717
1778
  };
1718
1779
  declare namespace Subnet {
1719
1780
  const getBuilder: () => SubnetBuilder;
1720
- const create: (config: SubnetConfig) => SubnetNode;
1721
- }
1722
- //#endregion
1723
- //#region src/fractal/component/network_and_compute/iaas/security_group.d.ts
1724
- type IngressRule = {
1725
- protocol?: string;
1726
- fromPort: number;
1727
- toPort?: number;
1728
- sourceCidr?: string;
1729
- sourceGroupId?: string;
1730
- };
1731
- type SecurityGroupBuilder = {
1732
- withId: (id: string) => SecurityGroupBuilder;
1733
- withVersion: (major: number, minor: number, patch: number) => SecurityGroupBuilder;
1734
- withDisplayName: (displayName: string) => SecurityGroupBuilder;
1735
- withDescription: (description: string) => SecurityGroupBuilder;
1736
- withIngressRules: (rules: IngressRule[]) => SecurityGroupBuilder;
1737
- withLinks: (links: ComponentLink[]) => SecurityGroupBuilder;
1738
- build: () => BlueprintComponent;
1739
- };
1740
- type SecurityGroupConfig = {
1741
- id: string;
1742
- version: {
1743
- major: number;
1744
- minor: number;
1745
- patch: number;
1746
- };
1747
- displayName: string;
1748
- description: string;
1749
- ingressRules?: IngressRule[];
1750
- };
1751
- declare namespace SecurityGroup {
1752
- const getBuilder: () => SecurityGroupBuilder;
1753
- const create: (config: SecurityGroupConfig) => BlueprintComponent;
1781
+ const create: (config: SubnetConfig) => SubnetComponent;
1754
1782
  }
1755
1783
  //#endregion
1756
1784
  //#region src/fractal/component/network_and_compute/iaas/virtual_network.d.ts
1757
- type VirtualNetworkNode = {
1785
+ type VirtualNetworkComponent = {
1758
1786
  readonly vpc: BlueprintComponent;
1759
1787
  readonly subnets: ReadonlyArray<BlueprintComponent>;
1760
1788
  readonly securityGroups: ReadonlyArray<BlueprintComponent>;
1761
1789
  readonly virtualMachines: ReadonlyArray<BlueprintComponent>;
1762
1790
  readonly workloads: ReadonlyArray<BlueprintComponent>;
1763
1791
  readonly components: ReadonlyArray<BlueprintComponent>;
1764
- withSubnets: (subnets: SubnetNode[]) => VirtualNetworkNode;
1765
- withSecurityGroups: (sgs: BlueprintComponent[]) => VirtualNetworkNode;
1792
+ withSubnets: (subnets: SubnetComponent[]) => VirtualNetworkComponent;
1793
+ withSecurityGroups: (sgs: BlueprintComponent[]) => VirtualNetworkComponent;
1766
1794
  };
1767
1795
  type VirtualNetworkResult = {
1768
1796
  readonly vpc: BlueprintComponent;
@@ -1796,7 +1824,7 @@ type VirtualNetworkConfig = {
1796
1824
  };
1797
1825
  declare namespace VirtualNetwork {
1798
1826
  const getBuilder: () => VirtualNetworkBuilder;
1799
- const create: (config: VirtualNetworkConfig) => VirtualNetworkNode;
1827
+ const create: (config: VirtualNetworkConfig) => VirtualNetworkComponent;
1800
1828
  }
1801
1829
  //#endregion
1802
1830
  //#region src/live_system/component/network_and_compute/iaas/vpc.d.ts
@@ -2626,14 +2654,14 @@ declare namespace HetznerServer {
2626
2654
  }
2627
2655
  //#endregion
2628
2656
  //#region src/fractal/component/network_and_compute/paas/container_platform.d.ts
2629
- type ContainerPlatformNode = {
2657
+ type ContainerPlatformComponent = {
2630
2658
  readonly platform: BlueprintComponent;
2631
2659
  /**
2632
2660
  * Workload nodes with the platform dependency auto-wired into each component.
2633
2661
  * Pass these to Subnet.withWorkloads() so the subnet dep is stacked on top.
2634
2662
  */
2635
- readonly workloads: ReadonlyArray<WorkloadNode>;
2636
- withWorkloads: (workloads: WorkloadNode[]) => ContainerPlatformNode;
2663
+ readonly workloads: ReadonlyArray<WorkloadComponent>;
2664
+ withWorkloads: (workloads: WorkloadComponent[]) => ContainerPlatformComponent;
2637
2665
  };
2638
2666
  type ContainerPlatformBuilder = {
2639
2667
  withId: (id: string) => ContainerPlatformBuilder;
@@ -2654,7 +2682,7 @@ type ContainerPlatformConfig = {
2654
2682
  };
2655
2683
  declare namespace ContainerPlatform {
2656
2684
  const getBuilder: () => ContainerPlatformBuilder;
2657
- const create: (config: ContainerPlatformConfig) => ContainerPlatformNode;
2685
+ const create: (config: ContainerPlatformConfig) => ContainerPlatformComponent;
2658
2686
  }
2659
2687
  //#endregion
2660
2688
  //#region src/live_system/component/network_and_compute/paas/ecs_cluster.d.ts
@@ -2755,11 +2783,17 @@ declare namespace AwsEcsTaskDefinition {
2755
2783
  /**
2756
2784
  * Returned by satisfy() — all structural properties (dependencies, links,
2757
2785
  * desiredCount) are locked from the blueprint. Only AWS-specific launch
2758
- * parameters are set here.
2786
+ * parameters and live-system sub-component dependencies are set here.
2759
2787
  */
2760
2788
  type SatisfiedAwsEcsServiceBuilder = {
2761
2789
  withLaunchType: (type: string) => SatisfiedAwsEcsServiceBuilder;
2762
2790
  withAssignPublicIp: (assign: boolean) => SatisfiedAwsEcsServiceBuilder;
2791
+ /**
2792
+ * Declares a live-system-only dependency on the ECS Task Definition that
2793
+ * this service will run. This has no blueprint equivalent — it is an
2794
+ * AWS-specific sub-component relationship.
2795
+ */
2796
+ withTaskDefinition: (taskDef: LiveSystemComponent) => SatisfiedAwsEcsServiceBuilder;
2763
2797
  build: () => LiveSystemComponent;
2764
2798
  };
2765
2799
  type AwsEcsServiceBuilder = {
@@ -2787,6 +2821,12 @@ type AwsEcsServiceConfig = {
2787
2821
  };
2788
2822
  declare namespace AwsEcsService {
2789
2823
  const getBuilder: () => AwsEcsServiceBuilder;
2824
+ /**
2825
+ * Satisfies a blueprint Workload component as an AWS ECS Service.
2826
+ * All structural properties — dependencies (subnet, cluster), links
2827
+ * (traffic rules, SG membership), and desiredCount — are carried from
2828
+ * the blueprint unchanged. Only AWS-specific launch parameters are added here.
2829
+ */
2790
2830
  /**
2791
2831
  * Satisfies a blueprint Workload component as an AWS ECS Service.
2792
2832
  * All structural properties — dependencies (subnet, cluster), links
@@ -2825,4 +2865,4 @@ type Environment = Environment$1;
2825
2865
  declare const LiveSystem: typeof LiveSystem$1;
2826
2866
  type LiveSystem = LiveSystem$1;
2827
2867
  //#endregion
2828
- export { AwsEcsCluster, type AwsEcsClusterBuilder, type AwsEcsClusterConfig, AwsEcsService, type AwsEcsServiceBuilder, type AwsEcsServiceConfig, AwsEcsTaskDefinition, type AwsEcsTaskDefinitionBuilder, type AwsEcsTaskDefinitionConfig, AwsSecurityGroup, type AwsSecurityGroupBuilder, type AwsSecurityGroupConfig, AwsSubnet, type AwsSubnetBuilder, type AwsSubnetConfig, AwsVpc, type AwsVpcBuilder, type AwsVpcConfig, AzureNsg, type AzureNsgBuilder, type AzureNsgConfig, AzureSubnet, type AzureSubnetBuilder, type AzureSubnetConfig, AzureVm, type AzureVmBuilder, type AzureVmConfig, AzureVnet, type AzureVnetBuilder, type AzureVnetConfig, BoundedContext, ContainerPlatform, type ContainerPlatformBuilder, type ContainerPlatformConfig, type ContainerPlatformNode, Ec2Instance, type Ec2InstanceBuilder, type Ec2InstanceConfig, Environment, Fractal, GcpFirewall, type GcpFirewallBuilder, type GcpFirewallConfig, GcpSubnet, type GcpSubnetBuilder, type GcpSubnetConfig, GcpVm, type GcpVmBuilder, type GcpVmConfig, GcpVpc, type GcpVpcBuilder, type GcpVpcConfig, HetznerFirewall, type HetznerFirewallBuilder, type HetznerFirewallConfig, HetznerNetwork, type HetznerNetworkBuilder, type HetznerNetworkConfig, HetznerServer, type HetznerServerBuilder, type HetznerServerConfig, HetznerSubnet, type HetznerSubnetBuilder, type HetznerSubnetConfig, InfrastructureDomain, type IngressRule, KebabCaseString, LiveSystem, OciInstance, type OciInstanceBuilder, type OciInstanceConfig, OciSecurityList, type OciSecurityListBuilder, type OciSecurityListConfig, OciSubnet, type OciSubnetBuilder, type OciSubnetConfig, OciVcn, type OciVcnBuilder, type OciVcnConfig, OwnerId, OwnerType, PascalCaseString, type SatisfiedAwsEcsClusterBuilder, type SatisfiedAwsEcsServiceBuilder, type SatisfiedAwsEcsTaskDefinitionBuilder, type SatisfiedAwsSecurityGroupBuilder, type SatisfiedAwsSubnetBuilder, type SatisfiedAwsVpcBuilder, type SatisfiedAzureNsgBuilder, type SatisfiedAzureSubnetBuilder, type SatisfiedAzureVmBuilder, type SatisfiedAzureVnetBuilder, type SatisfiedEc2Builder, type SatisfiedGcpFirewallBuilder, type SatisfiedGcpSubnetBuilder, type SatisfiedGcpVmBuilder, type SatisfiedGcpVpcBuilder, type SatisfiedHetznerFirewallBuilder, type SatisfiedHetznerNetworkBuilder, type SatisfiedHetznerServerBuilder, type SatisfiedHetznerSubnetBuilder, type SatisfiedOciInstanceBuilder, type SatisfiedOciSecurityListBuilder, type SatisfiedOciSubnetBuilder, type SatisfiedOciVcnBuilder, SecurityGroup, type SecurityGroupBuilder, type SecurityGroupConfig, ServiceAccountCredentials, ServiceAccountId, ServiceDeliveryModel, Subnet, type SubnetBuilder, type SubnetConfig, type SubnetNode, type SubnetResult, Version, VirtualMachine, type VirtualMachineBuilder, type VirtualMachineConfig, type VirtualMachineNode, VirtualNetwork, type VirtualNetworkBuilder, type VirtualNetworkConfig, type VirtualNetworkNode, type VirtualNetworkResult, type VmPortLink, Workload, type WorkloadBuilder, type WorkloadConfig, type WorkloadNode, type WorkloadPortLink };
2868
+ export { AwsEcsCluster, type AwsEcsClusterBuilder, type AwsEcsClusterConfig, AwsEcsService, type AwsEcsServiceBuilder, type AwsEcsServiceConfig, AwsEcsTaskDefinition, type AwsEcsTaskDefinitionBuilder, type AwsEcsTaskDefinitionConfig, AwsSecurityGroup, type AwsSecurityGroupBuilder, type AwsSecurityGroupConfig, AwsSubnet, type AwsSubnetBuilder, type AwsSubnetConfig, AwsVpc, type AwsVpcBuilder, type AwsVpcConfig, AzureNsg, type AzureNsgBuilder, type AzureNsgConfig, AzureSubnet, type AzureSubnetBuilder, type AzureSubnetConfig, AzureVm, type AzureVmBuilder, type AzureVmConfig, AzureVnet, type AzureVnetBuilder, type AzureVnetConfig, BoundedContext, ContainerPlatform, type ContainerPlatformBuilder, type ContainerPlatformComponent, type ContainerPlatformConfig, Ec2Instance, type Ec2InstanceBuilder, type Ec2InstanceConfig, Environment, Fractal, GcpFirewall, type GcpFirewallBuilder, type GcpFirewallConfig, GcpSubnet, type GcpSubnetBuilder, type GcpSubnetConfig, GcpVm, type GcpVmBuilder, type GcpVmConfig, GcpVpc, type GcpVpcBuilder, type GcpVpcConfig, HetznerFirewall, type HetznerFirewallBuilder, type HetznerFirewallConfig, HetznerNetwork, type HetznerNetworkBuilder, type HetznerNetworkConfig, HetznerServer, type HetznerServerBuilder, type HetznerServerConfig, HetznerSubnet, type HetznerSubnetBuilder, type HetznerSubnetConfig, InfrastructureDomain, type IngressRule, KebabCaseString, LiveSystem, OciInstance, type OciInstanceBuilder, type OciInstanceConfig, OciSecurityList, type OciSecurityListBuilder, type OciSecurityListConfig, OciSubnet, type OciSubnetBuilder, type OciSubnetConfig, OciVcn, type OciVcnBuilder, type OciVcnConfig, OwnerId, OwnerType, PascalCaseString, type SatisfiedAwsEcsClusterBuilder, type SatisfiedAwsEcsServiceBuilder, type SatisfiedAwsEcsTaskDefinitionBuilder, type SatisfiedAwsSecurityGroupBuilder, type SatisfiedAwsSubnetBuilder, type SatisfiedAwsVpcBuilder, type SatisfiedAzureNsgBuilder, type SatisfiedAzureSubnetBuilder, type SatisfiedAzureVmBuilder, type SatisfiedAzureVnetBuilder, type SatisfiedEc2Builder, type SatisfiedGcpFirewallBuilder, type SatisfiedGcpSubnetBuilder, type SatisfiedGcpVmBuilder, type SatisfiedGcpVpcBuilder, type SatisfiedHetznerFirewallBuilder, type SatisfiedHetznerNetworkBuilder, type SatisfiedHetznerServerBuilder, type SatisfiedHetznerSubnetBuilder, type SatisfiedOciInstanceBuilder, type SatisfiedOciSecurityListBuilder, type SatisfiedOciSubnetBuilder, type SatisfiedOciVcnBuilder, SecurityGroup, type SecurityGroupBuilder, type SecurityGroupComponent, type SecurityGroupConfig, ServiceAccountCredentials, ServiceAccountId, ServiceDeliveryModel, Subnet, type SubnetBuilder, type SubnetComponent, type SubnetConfig, type SubnetResult, Version, VirtualMachine, type VirtualMachineBuilder, type VirtualMachineComponent, type VirtualMachineConfig, VirtualNetwork, type VirtualNetworkBuilder, type VirtualNetworkComponent, type VirtualNetworkConfig, type VirtualNetworkResult, type VmPortLink, Workload, type WorkloadBuilder, type WorkloadComponent, type WorkloadConfig, type WorkloadPortLink };