UNPKG

the-moby-effect

Version:
90 lines (80 loc) 3.89 kB
import * as Schema from "effect/Schema"; import * as MobySchemas from "../schemas/index.js"; import * as SwarmSpec from "./SwarmSpec.generated.js"; export class SwarmInitRequest extends Schema.Class<SwarmInitRequest>("SwarmInitRequest")( { /** * Listen address used for inter-manager communication, as well as * determining the networking interface used for the VXLAN Tunnel * Endpoint (VTEP). This can either be an address/port combination in * the form 192.168.1.1:4567, or an interface followed by a port number, * like eth0:4567. If the port number is omitted, the default swarm * listening port is used. */ ListenAddr: Schema.Union( Schema.TemplateLiteral(Schema.String, ":", Schema.Number), MobySchemas.AddressString, Schema.String ), /** * Externally reachable address advertised to other nodes. This can * either be an address/port combination in the form 192.168.1.1:4567, * or an interface followed by a port number, like eth0:4567. If the * port number is omitted, the port number from the listen address is * used. If AdvertiseAddr is not specified, it will be automatically * detected when possible. */ AdvertiseAddr: Schema.optionalWith( Schema.Union( Schema.TemplateLiteral(Schema.String, ":", Schema.Number), MobySchemas.AddressString, Schema.String ), { nullable: true } ), /** * Address or interface to use for data path traffic (format: * <ip|interface>), for example, 192.168.1.1, or an interface, like * eth0. If DataPathAddr is unspecified, the same address as * AdvertiseAddr is used. * * The DataPathAddr specifies the address that global scope network * drivers will publish towards other nodes in order to reach the * containers running on this node. Using this parameter it is possible * to separate the container data traffic from the management traffic of * the cluster. */ DataPathAddr: Schema.optionalWith(Schema.Union(MobySchemas.AddressString, Schema.String), { nullable: true }), /** * DataPathPort specifies the data path port number for data traffic. * Acceptable port range is 1024 to 49151. if no port is set or is set * to 0, default port 4789 will be used. */ DataPathPort: Schema.optionalWith(MobySchemas.Port, { nullable: true }), /** Force creation of a new swarm. */ ForceNewCluster: Schema.optionalWith(Schema.Boolean, { nullable: true }), /** User modifiable swarm configuration. */ Spec: Schema.optionalWith(SwarmSpec.SwarmSpec, { nullable: true }), /** * Default Address Pool specifies default subnet pools for global scope * networks. */ DefaultAddrPool: Schema.optionalWith(Schema.Array(MobySchemas.CidrBlockFromString), { nullable: true }), /** * SubnetSize specifies the subnet size of the networks created from the * default subnet pool. */ SubnetSize: Schema.optionalWith(MobySchemas.UInt32, { default: () => MobySchemas.UInt32Schemas.UInt32Brand(24), nullable: true, }), AutoLockManagers: Schema.optionalWith(Schema.Boolean, { nullable: true }), Availability: Schema.optionalWith(Schema.Literal("active", "pause", "drain"), { nullable: true }), }, { identifier: "SwarmInitRequest", title: "swarm.InitRequest", documentation: "https://github.com/moby/moby/blob/7d861e889cd2214b38c8f1f3f997bf003c77739d/api/types/swarm/swarm.go#L152-L164", } ) {}