the-moby-effect
Version:
Moby/Docker API client built using effect-ts
216 lines • 7.2 kB
TypeScript
/**
* IPv4 or IPv6 cidr block schemas.
*
* @since 1.0.0
*/
import type * as Family from "./family.js";
import * as Array from "effect/Array";
import * as Effect from "effect/Effect";
import * as ParseResult from "effect/ParseResult";
import * as Schema from "effect/Schema";
import * as Stream from "effect/Stream";
import * as Address from "./address.js";
import * as CidrBlockMask from "./cidrBlockMask.js";
import * as IPv4 from "./ipv4.js";
import * as IPv6 from "./ipv6.js";
declare const CidrBlockBase_base: Schema.Class<CidrBlockBase<"ipv4" | "ipv6">, {
address: Address.$Address;
mask: Schema.Union<[CidrBlockMask.$IPv4CidrMask, CidrBlockMask.$IPv6CidrMask]>;
}, Schema.Struct.Encoded<{
address: Address.$Address;
mask: Schema.Union<[CidrBlockMask.$IPv4CidrMask, CidrBlockMask.$IPv6CidrMask]>;
}>, never, {
readonly address: {
readonly family: "ipv4";
readonly ip: IPv4.IPv4Brand;
} | {
readonly family: "ipv6";
readonly ip: IPv6.IPv6Brand;
};
} & {
readonly mask: CidrBlockMask.IPv4CidrMaskBrand | CidrBlockMask.IPv6CidrMaskBrand;
}, {}, {}>;
/**
* @since 1.0.0
* @category Api interface
*/
export declare class CidrBlockBase<_Family extends Family.Family> extends CidrBlockBase_base {
/** @since 1.0.0 */
readonly family: Family.Family;
/**
* The first address in the range given by this address' subnet, often
* referred to as the Network Address.
*
* @since 1.0.0
*/
protected get networkAddressAsBigint(): Effect.Effect<_Family extends IPv4.IPv4Family ? IPv4.IPv4BigintBrand : _Family extends IPv6.IPv6Family ? IPv6.IPv6BigintBrand : never, ParseResult.ParseError, never>;
/**
* The first address in the range given by this address' subnet, often
* referred to as the Network Address.
*
* @since 1.0.0
*/
networkAddress(): _Family extends IPv4.IPv4Family ? Effect.Effect<IPv4.IPv4, ParseResult.ParseError, never> : _Family extends IPv6.IPv6Family ? Effect.Effect<IPv6.IPv6, ParseResult.ParseError, never> : never;
/**
* The last address in the range given by this address' subnet, often
* referred to as the Broadcast Address.
*
* @since 1.0.0
*/
protected get broadcastAddressAsBigint(): Effect.Effect<_Family extends IPv4.IPv4Family ? IPv4.IPv4BigintBrand : _Family extends IPv6.IPv6Family ? IPv6.IPv6BigintBrand : never, ParseResult.ParseError, never>;
/**
* The last address in the range given by this address' subnet, often
* referred to as the Broadcast Address.
*
* @since 1.0.0
*/
broadcastAddress(): _Family extends IPv4.IPv4Family ? Effect.Effect<IPv4.IPv4, ParseResult.ParseError, never> : _Family extends IPv6.IPv6Family ? Effect.Effect<IPv6.IPv6, ParseResult.ParseError, never> : never;
/**
* A stream of all addresses in the range given by this address' subnet.
*
* @since 1.0.0
*/
get range(): _Family extends IPv4.IPv4Family ? Stream.Stream<IPv4.IPv4, ParseResult.ParseError, never> : _Family extends IPv6.IPv6Family ? Stream.Stream<IPv6.IPv6, ParseResult.ParseError, never> : never;
/**
* The total number of addresses in the range given by this address' subnet.
*
* @since 1.0.0
*/
get total(): Effect.Effect<bigint, ParseResult.ParseError, never>;
/**
* Finds the smallest CIDR block that contains all the given IP addresses.
*
* @since 1.0.0
*/
static readonly cidrBlockForRange: <_Family_1 extends Family.Family>(inputs: _Family_1 extends IPv4.IPv4Family ? Array.NonEmptyReadonlyArray<IPv4.IPv4> : Array.NonEmptyReadonlyArray<IPv6.IPv6>) => _Family_1 extends IPv4.IPv4Family ? Effect.Effect<CidrBlockBase<"ipv4">, ParseResult.ParseError, never> : Effect.Effect<CidrBlockBase<"ipv6">, ParseResult.ParseError, never>;
}
/**
* @since 1.0.0
* @category Api interface
*/
export interface $IPv4CidrBlock extends Schema.Annotable<$IPv4CidrBlock, CidrBlockBase<"ipv4">, {
readonly address: string;
readonly mask: number;
}, never> {
}
/**
* @since 1.0.0
* @category Decoded types
*/
export type IPv4CidrBlock = CidrBlockBase<"ipv4">;
/**
* @since 1.0.0
* @category Encoded types
*/
export type IPv4CidrBlockEncoded = Schema.Schema.Encoded<$IPv4CidrBlock>;
/**
* @since 1.0.0
* @category Schemas
*/
export declare const IPv4CidrBlock: $IPv4CidrBlock;
/**
* @since 1.0.0
* @category Api interface
*/
export interface $IPv4CidrBlockFromString extends Schema.Annotable<$IPv4CidrBlockFromString, CidrBlockBase<"ipv4">, `${string}/${number}`, never> {
}
/**
* @since 1.0.0
* @category Decoded types
*/
export type IPv4CidrBlockFromString = Schema.Schema.Type<$IPv4CidrBlockFromString>;
/**
* @since 1.0.0
* @category Encoded types
*/
export type IPv4CidrBlockFromStringEncoded = Schema.Schema.Encoded<$IPv4CidrBlockFromString>;
/**
* A schema that transforms a `string` into a `CidrBlock`.
*
* @since 1.0.0
* @category Schemas
*/
export declare const IPv4CidrBlockFromString: $IPv4CidrBlockFromString;
/**
* @since 1.0.0
* @category Api interface
*/
export interface $IPv6CidrBlock extends Schema.transformOrFail<Schema.Struct<{
address: IPv6.$IPv6;
mask: CidrBlockMask.$IPv6CidrMask;
}>, typeof CidrBlockBase<"ipv6">, never> {
}
/**
* @since 1.0.0
* @category Decoded types
*/
export type IPv6CidrBlock = CidrBlockBase<"ipv6">;
/**
* @since 1.0.0
* @category Encoded types
*/
export type IPv6CidrBlockEncoded = Schema.Schema.Encoded<$IPv6CidrBlock>;
/**
* @since 1.0.0
* @category Schemas
*/
export declare const IPv6CidrBlock: $IPv6CidrBlock;
/**
* @since 1.0.0
* @category Api interface
*/
export interface $IPv6CidrBlockFromString extends Schema.Annotable<$IPv6CidrBlockFromString, CidrBlockBase<"ipv6">, `${string}/${number}`, never> {
}
/**
* @since 1.0.0
* @category Decoded types
*/
export type IPv6CidrBlockFromString = Schema.Schema.Type<$IPv6CidrBlockFromString>;
/**
* @since 1.0.0
* @category Encoded types
*/
export type IPv6CidrBlockFromStringEncoded = Schema.Schema.Encoded<$IPv6CidrBlockFromString>;
/**
* A schema that transforms a `string` into a `CidrBlock`.
*
* @since 1.0.0
* @category Schemas
*/
export declare const IPv6CidrBlockFromString: $IPv6CidrBlockFromString;
/**
* @since 1.0.0
* @category Api interface
*/
export interface $CidrBlock extends Schema.Union<[$IPv4CidrBlock, $IPv6CidrBlock]> {
}
/**
* @since 1.0.0
* @category Schemas
*/
export declare const CidrBlock: $CidrBlock;
/**
* @since 1.0.0
* @category Api interface
*/
export interface $CidrBlockFromString extends Schema.Annotable<$CidrBlockFromString, CidrBlockBase<"ipv4"> | CidrBlockBase<"ipv6">, `${string}/${number}`, never> {
}
/**
* @since 1.0.0
* @category Decoded types
*/
export type CidrBlockFromString = Schema.Schema.Type<$CidrBlockFromString>;
/**
* @since 1.0.0
* @category Encoded types
*/
export type CidrBlockFromStringEncoded = Schema.Schema.Encoded<$CidrBlockFromString>;
/**
* A schema that transforms a `string` into a `CidrBlock`.
*
* @since 1.0.0
* @category Schemas
*/
export declare const CidrBlockFromString: $CidrBlockFromString;
export {};
//# sourceMappingURL=cidrBlock.d.ts.map