// Code generated by sdkgen. DO NOT EDIT.

package vpc

import (
	"context"

	"google.golang.org/grpc"
)

// VPC provides access to "vpc" component of Yandex.Cloud
type VPC struct {
	getConn func(ctx context.Context) (*grpc.ClientConn, error)
}

// NewVPC creates instance of VPC
func NewVPC(g func(ctx context.Context) (*grpc.ClientConn, error)) *VPC {
	return &VPC{g}
}

// Network gets NetworkService client
func (v *VPC) Network() *NetworkServiceClient {
	return &NetworkServiceClient{getConn: v.getConn}
}

// Subnet gets SubnetService client
func (v *VPC) Subnet() *SubnetServiceClient {
	return &SubnetServiceClient{getConn: v.getConn}
}

// RouteTable gets RouteTableService client
func (v *VPC) RouteTable() *RouteTableServiceClient {
	return &RouteTableServiceClient{getConn: v.getConn}
}

// SecurityGroup gets SecurityGroupService client
func (v *VPC) SecurityGroup() *SecurityGroupServiceClient {
	return &SecurityGroupServiceClient{getConn: v.getConn}
}

// Address gets AddressService client
func (v *VPC) Address() *AddressServiceClient {
	return &AddressServiceClient{getConn: v.getConn}
}

// Gateway gets GatewayService client
func (v *VPC) Gateway() *GatewayServiceClient {
	return &GatewayServiceClient{getConn: v.getConn}
}
