@blaxel/core 0.2.64 → 0.2.65-preview.78

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.
@@ -54,6 +54,10 @@ export type AgentSpec = {
54
54
  */
55
55
  enabled?: boolean;
56
56
  policies?: PoliciesList;
57
+ /**
58
+ * When true, the agent is publicly accessible without authentication. Only available for mk3 generation.
59
+ */
60
+ public?: boolean;
57
61
  repository?: Repository;
58
62
  revision?: RevisionConfiguration;
59
63
  runtime?: AgentRuntime;
@@ -68,6 +72,10 @@ export type AgentSpecWritable = {
68
72
  */
69
73
  enabled?: boolean;
70
74
  policies?: PoliciesList;
75
+ /**
76
+ * When true, the agent is publicly accessible without authentication. Only available for mk3 generation.
77
+ */
78
+ public?: boolean;
71
79
  repository?: Repository;
72
80
  revision?: RevisionConfiguration;
73
81
  runtime?: AgentRuntime;
@@ -406,6 +414,145 @@ export type CustomDomainSpecWritable = {
406
414
  [key: string]: string;
407
415
  };
408
416
  };
417
+ /**
418
+ * An egress gateway that manages outbound traffic routing within a VPC. Multiple egress IPs can be allocated from a single gateway.
419
+ */
420
+ export type EgressGateway = {
421
+ events?: CoreEvents;
422
+ metadata: EgressGatewayMetadata;
423
+ spec: EgressGatewaySpec;
424
+ status?: Status;
425
+ };
426
+ /**
427
+ * An egress gateway that manages outbound traffic routing within a VPC. Multiple egress IPs can be allocated from a single gateway.
428
+ */
429
+ export type EgressGatewayWritable = {
430
+ events?: CoreEventsWritable;
431
+ metadata: EgressGatewayMetadataWritable;
432
+ spec: EgressGatewaySpec;
433
+ status?: Status;
434
+ };
435
+ /**
436
+ * Metadata for an egress gateway resource including workspace, VPC, and name
437
+ */
438
+ export type EgressGatewayMetadata = TimeFields & OwnerFields & {
439
+ /**
440
+ * Human-readable name for display in the UI. Can contain spaces and special characters, max 63 characters.
441
+ */
442
+ displayName?: string;
443
+ /**
444
+ * Unique identifier for the egress gateway within the VPC. Must be lowercase alphanumeric with hyphens, max 49 characters. Immutable after creation.
445
+ */
446
+ name: string;
447
+ /**
448
+ * Name of the VPC this egress gateway belongs to
449
+ */
450
+ readonly vpcName?: string;
451
+ /**
452
+ * Name of the workspace this resource belongs to (read-only, set automatically)
453
+ */
454
+ readonly workspace?: string;
455
+ };
456
+ /**
457
+ * Metadata for an egress gateway resource including workspace, VPC, and name
458
+ */
459
+ export type EgressGatewayMetadataWritable = TimeFields & OwnerFields & {
460
+ /**
461
+ * Human-readable name for display in the UI. Can contain spaces and special characters, max 63 characters.
462
+ */
463
+ displayName?: string;
464
+ /**
465
+ * Unique identifier for the egress gateway within the VPC. Must be lowercase alphanumeric with hyphens, max 49 characters. Immutable after creation.
466
+ */
467
+ name: string;
468
+ };
469
+ /**
470
+ * Specification for an egress gateway including region and capacity configuration
471
+ */
472
+ export type EgressGatewaySpec = {
473
+ /**
474
+ * Region where the egress gateway is provisioned (e.g. us-pdx-1, eu-lon-1)
475
+ */
476
+ region: string;
477
+ };
478
+ /**
479
+ * An individual IP address allocated from an egress gateway for dedicated outbound traffic
480
+ */
481
+ export type EgressIp = {
482
+ events?: CoreEvents;
483
+ metadata: EgressIpMetadata;
484
+ spec: EgressIpSpec;
485
+ status?: Status;
486
+ };
487
+ /**
488
+ * An individual IP address allocated from an egress gateway for dedicated outbound traffic
489
+ */
490
+ export type EgressIpWritable = {
491
+ events?: CoreEventsWritable;
492
+ metadata: EgressIpMetadataWritable;
493
+ spec: EgressIpSpecWritable;
494
+ status?: Status;
495
+ };
496
+ /**
497
+ * Metadata for an egress IP address including gateway association and name
498
+ */
499
+ export type EgressIpMetadata = TimeFields & OwnerFields & {
500
+ /**
501
+ * Human-readable name for display in the UI. Can contain spaces and special characters, max 63 characters.
502
+ */
503
+ displayName?: string;
504
+ /**
505
+ * Name of the egress gateway this IP is allocated from
506
+ */
507
+ readonly gatewayName?: string;
508
+ /**
509
+ * Unique identifier for the egress IP within the gateway. Must be lowercase alphanumeric with hyphens, max 49 characters. Immutable after creation.
510
+ */
511
+ name: string;
512
+ /**
513
+ * Name of the VPC this egress IP belongs to
514
+ */
515
+ readonly vpcName?: string;
516
+ /**
517
+ * Name of the workspace this resource belongs to (read-only, set automatically)
518
+ */
519
+ readonly workspace?: string;
520
+ };
521
+ /**
522
+ * Metadata for an egress IP address including gateway association and name
523
+ */
524
+ export type EgressIpMetadataWritable = TimeFields & OwnerFields & {
525
+ /**
526
+ * Human-readable name for display in the UI. Can contain spaces and special characters, max 63 characters.
527
+ */
528
+ displayName?: string;
529
+ /**
530
+ * Unique identifier for the egress IP within the gateway. Must be lowercase alphanumeric with hyphens, max 49 characters. Immutable after creation.
531
+ */
532
+ name: string;
533
+ };
534
+ /**
535
+ * Specification for an egress IP including IP family and the provisioned address
536
+ */
537
+ export type EgressIpSpec = {
538
+ /**
539
+ * IP address family, either IPv4 or IPv6
540
+ */
541
+ ipFamily: 'IPv4' | 'IPv6';
542
+ /**
543
+ * Public IP address assigned to this egress IP (read-only, set after provisioning)
544
+ */
545
+ readonly publicIp?: string;
546
+ };
547
+ /**
548
+ * Specification for an egress IP including IP family and the provisioned address
549
+ */
550
+ export type EgressIpSpecWritable = {
551
+ /**
552
+ * IP address family, either IPv4 or IPv6
553
+ */
554
+ ipFamily: 'IPv4' | 'IPv6';
555
+ };
409
556
  /**
410
557
  * Entrypoint of the artifact
411
558
  */
@@ -580,6 +727,10 @@ export type FunctionSpec = {
580
727
  enabled?: boolean;
581
728
  integrationConnections?: IntegrationConnectionsList;
582
729
  policies?: PoliciesList;
730
+ /**
731
+ * When true, the function is publicly accessible without authentication. Only available for mk3 generation.
732
+ */
733
+ public?: boolean;
583
734
  revision?: RevisionConfiguration;
584
735
  runtime?: FunctionRuntime;
585
736
  triggers?: Triggers;
@@ -594,6 +745,10 @@ export type FunctionSpecWritable = {
594
745
  enabled?: boolean;
595
746
  integrationConnections?: IntegrationConnectionsList;
596
747
  policies?: PoliciesList;
748
+ /**
749
+ * When true, the function is publicly accessible without authentication. Only available for mk3 generation.
750
+ */
751
+ public?: boolean;
597
752
  revision?: RevisionConfiguration;
598
753
  runtime?: FunctionRuntime;
599
754
  triggers?: TriggersWritable;
@@ -1525,6 +1680,10 @@ export type ModelRuntime = {
1525
1680
  * Provider-specific endpoint name (e.g., HuggingFace Inference Endpoints name)
1526
1681
  */
1527
1682
  endpointName?: string;
1683
+ /**
1684
+ * Infrastructure generation. Empty (default) uses the classic deployment path. mk3 deploys through the model-gateway on microVM clusters.
1685
+ */
1686
+ generation?: 'mk3';
1528
1687
  /**
1529
1688
  * Model identifier at the provider (e.g., gpt-4.1, claude-sonnet-4-20250514, mistral-large-latest)
1530
1689
  */
@@ -2329,6 +2488,19 @@ export type SandboxLifecycle = {
2329
2488
  */
2330
2489
  expirationPolicies?: Array<ExpirationPolicy>;
2331
2490
  };
2491
+ /**
2492
+ * Network configuration for a sandbox including egress IP binding. All three fields (vpcName, egressGatewayName, egressIpName) must be specified together to assign a dedicated IP.
2493
+ */
2494
+ export type SandboxNetwork = {
2495
+ /**
2496
+ * Name of the egress gateway in the VPC. Must be specified together with vpcName and egressIpName.
2497
+ */
2498
+ egressGatewayName: string;
2499
+ /**
2500
+ * Name of the VPC where the egress gateway is provisioned. Must be specified together with egressGatewayName and egressIpName.
2501
+ */
2502
+ vpcName: string;
2503
+ };
2332
2504
  /**
2333
2505
  * Runtime configuration defining how the sandbox VM is provisioned and its resource limits
2334
2506
  */
@@ -2364,6 +2536,7 @@ export type SandboxSpec = {
2364
2536
  */
2365
2537
  enabled?: boolean;
2366
2538
  lifecycle?: SandboxLifecycle;
2539
+ network?: SandboxNetwork;
2367
2540
  /**
2368
2541
  * Region where the sandbox should be created (e.g. us-pdx-1, eu-lon-1). If not specified, defaults to the region closest to the user.
2369
2542
  */
@@ -2586,6 +2759,30 @@ export type Triggers = Array<Trigger>;
2586
2759
  * Triggers to use your agent
2587
2760
  */
2588
2761
  export type TriggersWritable = Array<TriggerWritable>;
2762
+ /**
2763
+ * Virtual Private Cloud scoped to a workspace for network isolation and dedicated egress
2764
+ */
2765
+ export type Vpc = {
2766
+ events?: CoreEvents;
2767
+ metadata: Metadata;
2768
+ spec: VpcSpec;
2769
+ status?: Status;
2770
+ };
2771
+ /**
2772
+ * Virtual Private Cloud scoped to a workspace for network isolation and dedicated egress
2773
+ */
2774
+ export type VpcWritable = {
2775
+ events?: CoreEventsWritable;
2776
+ metadata: MetadataWritable;
2777
+ spec: VpcSpec;
2778
+ status?: Status;
2779
+ };
2780
+ /**
2781
+ * VPC specification (controlplane-only, no external resources)
2782
+ */
2783
+ export type VpcSpec = {
2784
+ [key: string]: unknown;
2785
+ };
2589
2786
  /**
2590
2787
  * Persistent storage volume that can be attached to sandboxes for durable file storage across sessions. Volumes survive sandbox deletion and can be reattached to new sandboxes.
2591
2788
  */
@@ -3224,6 +3421,82 @@ export type VerifyCustomDomainResponses = {
3224
3421
  200: CustomDomain;
3225
3422
  };
3226
3423
  export type VerifyCustomDomainResponse = VerifyCustomDomainResponses[keyof VerifyCustomDomainResponses];
3424
+ export type GetWorkspaceFeaturesData = {
3425
+ body?: never;
3426
+ path?: never;
3427
+ query?: never;
3428
+ url: '/features';
3429
+ };
3430
+ export type GetWorkspaceFeaturesErrors = {
3431
+ /**
3432
+ * Unauthorized - Invalid or missing authentication credentials
3433
+ */
3434
+ 401: _Error;
3435
+ /**
3436
+ * Forbidden - You do not have access to this workspace
3437
+ */
3438
+ 403: _Error;
3439
+ /**
3440
+ * Not found - Workspace does not exist
3441
+ */
3442
+ 404: _Error;
3443
+ };
3444
+ export type GetWorkspaceFeaturesError = GetWorkspaceFeaturesErrors[keyof GetWorkspaceFeaturesErrors];
3445
+ export type GetWorkspaceFeaturesResponses = {
3446
+ /**
3447
+ * Map of enabled features (only enabled flags are included)
3448
+ */
3449
+ 200: {
3450
+ /**
3451
+ * Map of feature keys to enabled state (always true). Disabled features are omitted.
3452
+ */
3453
+ features?: {
3454
+ [key: string]: boolean;
3455
+ };
3456
+ };
3457
+ };
3458
+ export type GetWorkspaceFeaturesResponse = GetWorkspaceFeaturesResponses[keyof GetWorkspaceFeaturesResponses];
3459
+ export type TestFeatureFlagData = {
3460
+ body?: never;
3461
+ path: {
3462
+ /**
3463
+ * Name of the feature flag
3464
+ */
3465
+ featureKey: string;
3466
+ };
3467
+ query?: never;
3468
+ url: '/features/{featureKey}';
3469
+ };
3470
+ export type TestFeatureFlagErrors = {
3471
+ /**
3472
+ * Unauthorized - Invalid or missing authentication credentials
3473
+ */
3474
+ 401: _Error;
3475
+ /**
3476
+ * Forbidden - You do not have access to this feature flag
3477
+ */
3478
+ 403: _Error;
3479
+ /**
3480
+ * Not found - Feature flag not found
3481
+ */
3482
+ 404: _Error;
3483
+ };
3484
+ export type TestFeatureFlagError = TestFeatureFlagErrors[keyof TestFeatureFlagErrors];
3485
+ export type TestFeatureFlagResponses = {
3486
+ /**
3487
+ * Feature flag evaluation result with details
3488
+ */
3489
+ 200: {
3490
+ enabled?: boolean;
3491
+ evaluatedAt?: string;
3492
+ featureKey?: string;
3493
+ payload?: {
3494
+ [key: string]: unknown;
3495
+ };
3496
+ variant?: string;
3497
+ };
3498
+ };
3499
+ export type TestFeatureFlagResponse = TestFeatureFlagResponses[keyof TestFeatureFlagResponses];
3227
3500
  export type ListFunctionsData = {
3228
3501
  body?: never;
3229
3502
  path?: never;
@@ -5402,6 +5675,190 @@ export type UpdateVolumeResponses = {
5402
5675
  200: Volume;
5403
5676
  };
5404
5677
  export type UpdateVolumeResponse = UpdateVolumeResponses[keyof UpdateVolumeResponses];
5678
+ export type ListVpcsData = {
5679
+ body?: never;
5680
+ path?: never;
5681
+ query?: never;
5682
+ url: '/vpcs';
5683
+ };
5684
+ export type ListVpcsResponses = {
5685
+ /**
5686
+ * successful operation
5687
+ */
5688
+ 200: Array<Vpc>;
5689
+ };
5690
+ export type ListVpcsResponse = ListVpcsResponses[keyof ListVpcsResponses];
5691
+ export type CreateVpcData = {
5692
+ body: VpcWritable;
5693
+ path?: never;
5694
+ query?: never;
5695
+ url: '/vpcs';
5696
+ };
5697
+ export type CreateVpcResponses = {
5698
+ /**
5699
+ * successful operation
5700
+ */
5701
+ 200: Vpc;
5702
+ };
5703
+ export type CreateVpcResponse = CreateVpcResponses[keyof CreateVpcResponses];
5704
+ export type DeleteVpcData = {
5705
+ body?: never;
5706
+ path: {
5707
+ vpcName: string;
5708
+ };
5709
+ query?: never;
5710
+ url: '/vpcs/{vpcName}';
5711
+ };
5712
+ export type DeleteVpcResponses = {
5713
+ /**
5714
+ * successful operation
5715
+ */
5716
+ 200: Vpc;
5717
+ };
5718
+ export type DeleteVpcResponse = DeleteVpcResponses[keyof DeleteVpcResponses];
5719
+ export type GetVpcData = {
5720
+ body?: never;
5721
+ path: {
5722
+ vpcName: string;
5723
+ };
5724
+ query?: never;
5725
+ url: '/vpcs/{vpcName}';
5726
+ };
5727
+ export type GetVpcResponses = {
5728
+ /**
5729
+ * successful operation
5730
+ */
5731
+ 200: Vpc;
5732
+ };
5733
+ export type GetVpcResponse = GetVpcResponses[keyof GetVpcResponses];
5734
+ export type ListEgressGatewaysData = {
5735
+ body?: never;
5736
+ path: {
5737
+ vpcName: string;
5738
+ };
5739
+ query?: never;
5740
+ url: '/vpcs/{vpcName}/egressgateways';
5741
+ };
5742
+ export type ListEgressGatewaysResponses = {
5743
+ /**
5744
+ * successful operation
5745
+ */
5746
+ 200: Array<EgressGateway>;
5747
+ };
5748
+ export type ListEgressGatewaysResponse = ListEgressGatewaysResponses[keyof ListEgressGatewaysResponses];
5749
+ export type CreateEgressGatewayData = {
5750
+ body: EgressGatewayWritable;
5751
+ path: {
5752
+ vpcName: string;
5753
+ };
5754
+ query?: never;
5755
+ url: '/vpcs/{vpcName}/egressgateways';
5756
+ };
5757
+ export type CreateEgressGatewayResponses = {
5758
+ /**
5759
+ * successful operation
5760
+ */
5761
+ 200: EgressGateway;
5762
+ };
5763
+ export type CreateEgressGatewayResponse = CreateEgressGatewayResponses[keyof CreateEgressGatewayResponses];
5764
+ export type DeleteEgressGatewayData = {
5765
+ body?: never;
5766
+ path: {
5767
+ vpcName: string;
5768
+ gatewayName: string;
5769
+ };
5770
+ query?: never;
5771
+ url: '/vpcs/{vpcName}/egressgateways/{gatewayName}';
5772
+ };
5773
+ export type DeleteEgressGatewayResponses = {
5774
+ /**
5775
+ * successful operation
5776
+ */
5777
+ 200: EgressGateway;
5778
+ };
5779
+ export type DeleteEgressGatewayResponse = DeleteEgressGatewayResponses[keyof DeleteEgressGatewayResponses];
5780
+ export type GetEgressGatewayData = {
5781
+ body?: never;
5782
+ path: {
5783
+ vpcName: string;
5784
+ gatewayName: string;
5785
+ };
5786
+ query?: never;
5787
+ url: '/vpcs/{vpcName}/egressgateways/{gatewayName}';
5788
+ };
5789
+ export type GetEgressGatewayResponses = {
5790
+ /**
5791
+ * successful operation
5792
+ */
5793
+ 200: EgressGateway;
5794
+ };
5795
+ export type GetEgressGatewayResponse = GetEgressGatewayResponses[keyof GetEgressGatewayResponses];
5796
+ export type ListEgressIpsData = {
5797
+ body?: never;
5798
+ path: {
5799
+ vpcName: string;
5800
+ gatewayName: string;
5801
+ };
5802
+ query?: never;
5803
+ url: '/vpcs/{vpcName}/egressgateways/{gatewayName}/ips';
5804
+ };
5805
+ export type ListEgressIpsResponses = {
5806
+ /**
5807
+ * successful operation
5808
+ */
5809
+ 200: Array<EgressIp>;
5810
+ };
5811
+ export type ListEgressIpsResponse = ListEgressIpsResponses[keyof ListEgressIpsResponses];
5812
+ export type CreateEgressIpData = {
5813
+ body: EgressIpWritable;
5814
+ path: {
5815
+ vpcName: string;
5816
+ gatewayName: string;
5817
+ };
5818
+ query?: never;
5819
+ url: '/vpcs/{vpcName}/egressgateways/{gatewayName}/ips';
5820
+ };
5821
+ export type CreateEgressIpResponses = {
5822
+ /**
5823
+ * successful operation
5824
+ */
5825
+ 200: EgressIp;
5826
+ };
5827
+ export type CreateEgressIpResponse = CreateEgressIpResponses[keyof CreateEgressIpResponses];
5828
+ export type DeleteEgressIpData = {
5829
+ body?: never;
5830
+ path: {
5831
+ vpcName: string;
5832
+ gatewayName: string;
5833
+ ipName: string;
5834
+ };
5835
+ query?: never;
5836
+ url: '/vpcs/{vpcName}/egressgateways/{gatewayName}/ips/{ipName}';
5837
+ };
5838
+ export type DeleteEgressIpResponses = {
5839
+ /**
5840
+ * successful operation
5841
+ */
5842
+ 200: EgressIp;
5843
+ };
5844
+ export type DeleteEgressIpResponse = DeleteEgressIpResponses[keyof DeleteEgressIpResponses];
5845
+ export type GetEgressIpData = {
5846
+ body?: never;
5847
+ path: {
5848
+ vpcName: string;
5849
+ gatewayName: string;
5850
+ ipName: string;
5851
+ };
5852
+ query?: never;
5853
+ url: '/vpcs/{vpcName}/egressgateways/{gatewayName}/ips/{ipName}';
5854
+ };
5855
+ export type GetEgressIpResponses = {
5856
+ /**
5857
+ * successful operation
5858
+ */
5859
+ 200: EgressIp;
5860
+ };
5861
+ export type GetEgressIpResponse = GetEgressIpResponses[keyof GetEgressIpResponses];
5405
5862
  export type ListWorkspacesData = {
5406
5863
  body?: never;
5407
5864
  path?: never;