armpit
Version:
Another resource manager programming interface toolkit.
115 lines • 7.49 kB
TypeScript
import type { NetworkManagementClientOptionalParams, NetworkSecurityGroup, SecurityRule, VirtualNetwork, VirtualNetworkBgpCommunities, Subnet, Delegation, KnownSecurityRuleDirection, KnownSecurityRuleAccess, KnownSecurityRuleProtocol, KnownVirtualNetworkPrivateEndpointNetworkPolicies, KnownVirtualNetworkPrivateLinkServiceNetworkPolicies, KnownSharingScope, KnownPrivateEndpointVNetPolicies, PublicIPAddress, KnownIPAllocationMethod, KnownIPVersion, KnownPublicIPAddressSkuName, ApplicationSecurityGroup, NatGateway, KnownNatGatewaySkuName, NetworkInterface, KnownNetworkInterfaceNicType, KnownNetworkInterfaceAuxiliaryMode, KnownNetworkInterfaceAuxiliarySku, NetworkInterfaceIPConfiguration, SubResource as NetworkSubResource } from "@azure/arm-network";
import { NetworkManagementClient } from "@azure/arm-network";
import type { PrivateDnsManagementClientOptionalParams, PrivateZone, VirtualNetworkLink, KnownResolutionPolicy } from "@azure/arm-privatedns";
import { PrivateDnsManagementClient } from "@azure/arm-privatedns";
import { type SubscriptionId } from "./azureUtils.js";
import { ManagementClientFactory } from "./azureSdkUtils.js";
import type { AzCliInvoker } from "./azCliInvoker.js";
interface NetworkToolsOptions {
groupName?: string | null;
location?: string | null;
subscriptionId?: SubscriptionId | null;
abortSignal?: AbortSignal;
}
interface PrivateDnsToolsOptions {
groupName?: string | null;
subscriptionId?: SubscriptionId | null;
abortSignal?: AbortSignal;
}
interface PrivateZoneVnetLinkDescriptor {
virtualNetwork: {
id?: string;
} | string;
registrationEnabled?: boolean;
resolutionPolicy?: `${KnownResolutionPolicy}`;
}
type DelegationDescriptor = Pick<Delegation, "name" | "serviceName">;
interface SubnetDescriptor extends Pick<Subnet, "name" | "addressPrefix" | "addressPrefixes"> {
defaultOutboundAccess?: boolean;
delegations?: DelegationDescriptor | string | (DelegationDescriptor | string)[];
ipAllocations?: NetworkSubResource[];
natGateway?: NetworkSubResource;
networkSecurityGroup?: NetworkSubResource;
privateEndpointNetworkPolicies?: `${KnownVirtualNetworkPrivateEndpointNetworkPolicies}`;
privateLinkServiceNetworkPolicies?: `${KnownVirtualNetworkPrivateLinkServiceNetworkPolicies}`;
routeTable?: NetworkSubResource;
sharingScope?: `${KnownSharingScope}`;
}
interface VnetDescriptor extends Pick<VirtualNetwork, "flowTimeoutInMinutes" | "dhcpOptions" | "enableDdosProtection" | "enableVmProtection" | "ddosProtectionPlan" | "encryption" | "ipAllocations"> {
addressSpace?: {
addressPrefixes?: string[];
};
addressPrefix?: string;
bgpCommunities?: Pick<VirtualNetworkBgpCommunities, "virtualNetworkCommunity">;
privateEndpointVNetPolicies?: `${KnownPrivateEndpointVNetPolicies}`;
subnets?: SubnetDescriptor[];
}
interface VnetDescriptorWithOptions extends VnetDescriptor {
deleteUnknownSubnets?: boolean;
}
interface SecurityRuleDescriptor extends Omit<SecurityRule, "id" | "etag" | "type" | "provisioningState"> {
priority: number;
direction: `${KnownSecurityRuleDirection}`;
access: `${KnownSecurityRuleAccess}`;
protocol: `${KnownSecurityRuleProtocol}`;
}
interface NsgDescriptor {
securityRules?: SecurityRuleDescriptor[];
}
interface NsgDescriptorWithOptions extends NsgDescriptor {
deleteUnknownRules?: boolean;
}
interface PublicIpDescriptor extends Pick<PublicIPAddress, "zones" | "dnsSettings" | "ddosSettings" | "ipAddress" | "publicIPPrefix" | "idleTimeoutInMinutes" | "deleteOption"> {
servicePublicIPAddress?: NetworkSubResource;
natGateway?: NetworkSubResource;
linkedPublicIPAddress?: NetworkSubResource;
publicIPAllocationMethod?: `${KnownIPAllocationMethod}`;
publicIPAddressVersion?: `${KnownIPVersion}`;
sku?: `${KnownPublicIPAddressSkuName}` | PublicIPAddress["sku"];
}
interface NatGatewayDescriptor extends Pick<NatGateway, "zones" | "idleTimeoutInMinutes" | "publicIpAddresses" | "publicIpAddressesV6" | "publicIpPrefixes" | "publicIpPrefixesV6" | "sourceVirtualNetwork"> {
sku: `${KnownNatGatewaySkuName}` | NatGateway["sku"];
}
interface NetworkInterfaceIPConfigurationDescriptor extends Omit<NetworkInterfaceIPConfiguration, "id" | "etag" | "type" | "privateIPAllocationMethod" | "privateIPAddressVersion" | "provisioningState" | "privateLinkConnectionProperties"> {
privateIPAllocationMethod?: `${KnownIPAllocationMethod}`;
privateIPAddressVersion?: `${KnownIPVersion}`;
}
interface NetworkInterfaceDescriptor extends Pick<NetworkInterface, "enableAcceleratedNetworking" | "disableTcpStateTracking" | "enableIPForwarding" | "workloadType"> {
networkSecurityGroup?: NetworkSubResource;
nicType?: `${KnownNetworkInterfaceNicType}`;
auxiliaryMode?: `${KnownNetworkInterfaceAuxiliaryMode}`;
auxiliarySku?: `${KnownNetworkInterfaceAuxiliarySku}`;
ipConfigurations: NetworkInterfaceIPConfigurationDescriptor[];
}
export declare class NetworkTools {
#private;
constructor(dependencies: {
invoker: AzCliInvoker;
managementClientFactory: ManagementClientFactory;
}, options: NetworkToolsOptions);
asgGet(name: string, options?: NetworkToolsOptions): Promise<ApplicationSecurityGroup | null>;
asgMultiUpsert<TDescriptor extends {
[key: string]: string;
}>(descriptor: TDescriptor, options?: NetworkToolsOptions): Promise<{
[K in keyof TDescriptor]: ApplicationSecurityGroup;
}>;
asgUpsert(name: string, options?: NetworkToolsOptions): Promise<ApplicationSecurityGroup>;
natGatewayGet(name: string, options?: NetworkToolsOptions): Promise<NatGateway | null>;
natGatewayUpsert(name: string, descriptorOptions: NatGatewayDescriptor & NetworkToolsOptions): Promise<NatGateway>;
nicGet(name: string, options?: NetworkToolsOptions): Promise<NetworkInterface | null>;
nicUpsert(name: string, descriptorOptions: NetworkInterfaceDescriptor & NetworkToolsOptions): Promise<NetworkInterface>;
nsgGet(name: string, options?: NetworkToolsOptions): Promise<NetworkSecurityGroup | null>;
nsgUpsert(name: string, descriptorOptions?: NsgDescriptorWithOptions & NetworkToolsOptions): Promise<NetworkSecurityGroup>;
pipGet(name: string, options?: NetworkToolsOptions): Promise<PublicIPAddress | null>;
pipUpsert(name: string, descriptorOptions?: PublicIpDescriptor & NetworkToolsOptions): Promise<PublicIPAddress>;
privateZoneGet(name: string, options?: PrivateDnsToolsOptions): Promise<PrivateZone | null>;
privateZoneUpsert(name: string, options?: PrivateDnsToolsOptions): Promise<PrivateZone>;
privateZoneVnetLinkGet(zoneName: string, name: string, options?: NetworkToolsOptions): Promise<VirtualNetworkLink | null>;
privateZoneVnetLinkUpsert(zoneName: string, name: string, descriptorOptions: PrivateZoneVnetLinkDescriptor & PrivateDnsToolsOptions): Promise<VirtualNetworkLink>;
vnetGet(name: string, options?: NetworkToolsOptions): Promise<VirtualNetwork | null>;
vnetUpsert(name: string, optionsDescriptor?: VnetDescriptorWithOptions & NetworkToolsOptions): Promise<VirtualNetwork>;
getClient(subscriptionId?: SubscriptionId | null, options?: NetworkManagementClientOptionalParams): NetworkManagementClient;
getPrivateDnsClient(subscriptionId?: SubscriptionId | null, options?: PrivateDnsManagementClientOptionalParams): PrivateDnsManagementClient;
}
export {};
//# sourceMappingURL=networkTools.d.ts.map