import _m0 from 'protobufjs/minimal'; export declare const protobufPackage = "yandex.cloud.vpc.v1"; /** An Address resource. For more information, see [Address](/docs/vpc/concepts/address). */ export interface Address { /** ID of the address. Generated at creation time. */ id: string; /** ID of the folder that the address belongs to. */ folderId: string; /** Creation timestamp. */ createdAt?: Date; /** * Name of the address. * The name is unique within the folder. * Value must match the regular expression ``\|[a-zA-Z]([-_a-zA-Z0-9]{0,61}[a-zA-Z0-9])?``. */ name: string; /** Description of the address. 0-256 characters long. */ description: string; /** * Address labels as `key:value` pairs. * No more than 64 per resource. * The maximum string length in characters for each value is 63. * Each value must match the regular expression `[-_0-9a-z]*`. * The string length in characters for each key must be 1-63. * Each key must match the regular expression `[a-z][-_0-9a-z]*`. */ labels: { [key: string]: string; }; externalIpv4Address?: ExternalIpv4Address | undefined; /** Specifies if address is reserved or not. */ reserved: boolean; /** Specifies if address is used or not. */ used: boolean; /** Type of the IP address. */ type: Address_Type; /** Version of the IP address. */ ipVersion: Address_IpVersion; /** Specifies if address protected from deletion. */ deletionProtection: boolean; /** Optional DNS record specifications */ dnsRecords: DnsRecord[]; } export declare enum Address_Type { TYPE_UNSPECIFIED = 0, /** INTERNAL - Internal IP address. */ INTERNAL = 1, /** EXTERNAL - Public IP address. */ EXTERNAL = 2, UNRECOGNIZED = -1 } export declare function address_TypeFromJSON(object: any): Address_Type; export declare function address_TypeToJSON(object: Address_Type): string; export declare enum Address_IpVersion { IP_VERSION_UNSPECIFIED = 0, /** IPV4 - IPv4 address. */ IPV4 = 1, /** IPV6 - IPv6 address. */ IPV6 = 2, UNRECOGNIZED = -1 } export declare function address_IpVersionFromJSON(object: any): Address_IpVersion; export declare function address_IpVersionToJSON(object: Address_IpVersion): string; export interface Address_LabelsEntry { key: string; value: string; } export interface ExternalIpv4Address { /** Value of address. */ address: string; /** Availability zone from which the address will be allocated. */ zoneId: string; /** Parameters of the allocated address, for example DDoS Protection. */ requirements?: AddressRequirements; } export interface AddressRequirements { /** DDoS protection provider ID. */ ddosProtectionProvider: string; /** Capability to send SMTP traffic. */ outgoingSmtpCapability: string; } export interface DnsRecord { /** DNS record name (absolute or relative to the DNS zone in use). */ fqdn: string; /** ID of the public DNS zone. */ dnsZoneId: string; /** TTL of record. */ ttl: number; /** If the PTR record is required, this parameter must be set to "true". */ ptr: boolean; } export declare const Address: { encode(message: Address, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Address; fromJSON(object: any): Address; toJSON(message: Address): unknown; fromPartial, never>) | undefined; externalIpv4Address?: ({ address?: string | undefined; zoneId?: string | undefined; requirements?: { ddosProtectionProvider?: string | undefined; outgoingSmtpCapability?: string | undefined; } | undefined; } & { address?: string | undefined; zoneId?: string | undefined; requirements?: ({ ddosProtectionProvider?: string | undefined; outgoingSmtpCapability?: string | undefined; } & { ddosProtectionProvider?: string | undefined; outgoingSmtpCapability?: string | undefined; } & Record, never>) | undefined; } & Record, never>) | undefined; reserved?: boolean | undefined; used?: boolean | undefined; type?: Address_Type | undefined; ipVersion?: Address_IpVersion | undefined; deletionProtection?: boolean | undefined; dnsRecords?: ({ fqdn?: string | undefined; dnsZoneId?: string | undefined; ttl?: number | undefined; ptr?: boolean | undefined; }[] & ({ fqdn?: string | undefined; dnsZoneId?: string | undefined; ttl?: number | undefined; ptr?: boolean | undefined; } & { fqdn?: string | undefined; dnsZoneId?: string | undefined; ttl?: number | undefined; ptr?: boolean | undefined; } & Record, never>)[] & Record, never>) | undefined; } & Record, never>>(object: I): Address; }; export declare const Address_LabelsEntry: { encode(message: Address_LabelsEntry, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): Address_LabelsEntry; fromJSON(object: any): Address_LabelsEntry; toJSON(message: Address_LabelsEntry): unknown; fromPartial, never>>(object: I): Address_LabelsEntry; }; export declare const ExternalIpv4Address: { encode(message: ExternalIpv4Address, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): ExternalIpv4Address; fromJSON(object: any): ExternalIpv4Address; toJSON(message: ExternalIpv4Address): unknown; fromPartial, never>) | undefined; } & Record, never>>(object: I): ExternalIpv4Address; }; export declare const AddressRequirements: { encode(message: AddressRequirements, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): AddressRequirements; fromJSON(object: any): AddressRequirements; toJSON(message: AddressRequirements): unknown; fromPartial, never>>(object: I): AddressRequirements; }; export declare const DnsRecord: { encode(message: DnsRecord, writer?: _m0.Writer): _m0.Writer; decode(input: _m0.Reader | Uint8Array, length?: number): DnsRecord; fromJSON(object: any): DnsRecord; toJSON(message: DnsRecord): unknown; fromPartial, never>>(object: I): DnsRecord; }; type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export type DeepPartial = T extends Builtin ? T : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? { [K in keyof T]?: DeepPartial; } : Partial; type KeysOfUnion = T extends T ? keyof T : never; export type Exact = P extends Builtin ? P : P & { [K in keyof P]: Exact; } & Record>, never>; export {};