@linode/validation
Version:
Yup validation schemas for use with the Linode APIv4
68 lines • 2.58 kB
TypeScript
export declare const IP_EITHER_BOTH_NOT_NEITHER = "A subnet must have either IPv4 or IPv6, or both, but not neither.";
export declare const determineIPType: (ip: string) => "ipv4" | "ipv6" | undefined;
/**
* VPC-related IP validation that handles for single IPv4 and IPv6 addresses as well as
* IPv4 ranges in CIDR format and IPv6 ranges with prefix lengths.
* @param { value } - the IP address string to be validated
* @param { shouldHaveIPMask } - a boolean indicating whether the value should have a mask (e.g., /32) or not
* @param { mustBeIPMask } - a boolean indicating whether the value MUST be an IP mask/prefix length or not
* @param { isIPv6Subnet } - a boolean indicating whether the IPv6 value is for a subnet
* @param { checkIPv6PrefixLengthIs64 } – a boolean indicating whether the IPv6 value prefix length is 64 (for nested `range` fields in config/Linode interface objects)
*/
export declare const vpcsValidateIP: ({ value, shouldHaveIPMask, mustBeIPMask, checkIPv6PrefixLengthIs64, }: {
checkIPv6PrefixLengthIs64?: boolean;
isIPv6Subnet?: boolean;
mustBeIPMask: boolean;
shouldHaveIPMask: boolean;
value: null | string | undefined;
}) => boolean;
export declare const updateVPCSchema: import("yup").ObjectSchema<{
label: string | undefined;
description: string | undefined;
}, import("yup").AnyObject, {
label: undefined;
description: undefined;
}, "">;
export declare const createSubnetSchemaIPv4: import("yup").ObjectSchema<{
label: string;
ipv4: string | undefined;
}, import("yup").AnyObject, {
label: undefined;
ipv4: undefined;
}, "">;
export declare const createSubnetSchemaWithIPv6: import("yup").ObjectSchema<{
label: string;
ipv4: string | undefined;
ipv6: {
range: string;
}[] | undefined;
}, import("yup").AnyObject, {
label: undefined;
ipv4: undefined;
ipv6: "";
}, "">;
export declare const createVPCSchema: import("yup").ObjectSchema<{
label: string;
description: string | undefined;
region: string;
subnets: {
ipv4?: string | undefined;
label: string;
}[] | undefined;
ipv6: {
range?: string | undefined;
allocation_class?: string | undefined;
}[] | undefined;
}, import("yup").AnyObject, {
label: undefined;
description: undefined;
region: undefined;
subnets: "";
ipv6: "";
}, "">;
export declare const modifySubnetSchema: import("yup").ObjectSchema<{
label: string;
}, import("yup").AnyObject, {
label: undefined;
}, "">;
//# sourceMappingURL=vpcs.schema.d.ts.map