github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/provider/oci/common/interfaces.go (about) 1 // Copyright 2021 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package common 5 6 import ( 7 "context" 8 9 ociCore "github.com/oracle/oci-go-sdk/v65/core" 10 ) 11 12 // These interfaces represent the methods required for the OCI Provider to interact with 13 // that cloud for compute, storage and virtual networking. This is due to abstracting away 14 // pagination required by most List methods. 15 16 //go:generate go run go.uber.org/mock/mockgen -package testing -destination ../testing/mocks_clientcompute.go -write_package_comment=false github.com/juju/juju/provider/oci/common OCIComputeClient 17 type OCIComputeClient interface { 18 ListVnicAttachments(ctx context.Context, request ociCore.ListVnicAttachmentsRequest) (ociCore.ListVnicAttachmentsResponse, error) 19 TerminateInstance(ctx context.Context, request ociCore.TerminateInstanceRequest) (ociCore.TerminateInstanceResponse, error) 20 GetInstance(ctx context.Context, request ociCore.GetInstanceRequest) (ociCore.GetInstanceResponse, error) 21 LaunchInstance(ctx context.Context, request ociCore.LaunchInstanceRequest) (ociCore.LaunchInstanceResponse, error) 22 ListInstances(ctx context.Context, request ociCore.ListInstancesRequest) (ociCore.ListInstancesResponse, error) 23 ListShapes(ctx context.Context, request ociCore.ListShapesRequest) (ociCore.ListShapesResponse, error) 24 ListImages(ctx context.Context, request ociCore.ListImagesRequest) (ociCore.ListImagesResponse, error) 25 ListVolumeAttachments(ctx context.Context, request ociCore.ListVolumeAttachmentsRequest) (ociCore.ListVolumeAttachmentsResponse, error) 26 GetVolumeAttachment(ctx context.Context, request ociCore.GetVolumeAttachmentRequest) (ociCore.GetVolumeAttachmentResponse, error) 27 DetachVolume(ctx context.Context, request ociCore.DetachVolumeRequest) (ociCore.DetachVolumeResponse, error) 28 AttachVolume(ctx context.Context, request ociCore.AttachVolumeRequest) (ociCore.AttachVolumeResponse, error) 29 } 30 31 //go:generate go run go.uber.org/mock/mockgen -package testing -destination ../testing/mocks_clientnetworking.go -write_package_comment=false github.com/juju/juju/provider/oci/common OCIVirtualNetworkingClient 32 type OCIVirtualNetworkingClient interface { 33 CreateVcn(ctx context.Context, request ociCore.CreateVcnRequest) (ociCore.CreateVcnResponse, error) 34 DeleteVcn(ctx context.Context, request ociCore.DeleteVcnRequest) (ociCore.DeleteVcnResponse, error) 35 ListVcns(ctx context.Context, request ociCore.ListVcnsRequest) (ociCore.ListVcnsResponse, error) 36 GetVcn(ctx context.Context, request ociCore.GetVcnRequest) (ociCore.GetVcnResponse, error) 37 38 CreateSubnet(ctx context.Context, request ociCore.CreateSubnetRequest) (ociCore.CreateSubnetResponse, error) 39 ListSubnets(ctx context.Context, request ociCore.ListSubnetsRequest) (ociCore.ListSubnetsResponse, error) 40 DeleteSubnet(ctx context.Context, request ociCore.DeleteSubnetRequest) (ociCore.DeleteSubnetResponse, error) 41 GetSubnet(ctx context.Context, request ociCore.GetSubnetRequest) (ociCore.GetSubnetResponse, error) 42 43 CreateInternetGateway(ctx context.Context, request ociCore.CreateInternetGatewayRequest) (ociCore.CreateInternetGatewayResponse, error) 44 GetInternetGateway(ctx context.Context, request ociCore.GetInternetGatewayRequest) (ociCore.GetInternetGatewayResponse, error) 45 ListInternetGateways(ctx context.Context, request ociCore.ListInternetGatewaysRequest) (response ociCore.ListInternetGatewaysResponse, err error) 46 DeleteInternetGateway(ctx context.Context, request ociCore.DeleteInternetGatewayRequest) (ociCore.DeleteInternetGatewayResponse, error) 47 48 CreateRouteTable(ctx context.Context, request ociCore.CreateRouteTableRequest) (ociCore.CreateRouteTableResponse, error) 49 GetRouteTable(ctx context.Context, request ociCore.GetRouteTableRequest) (ociCore.GetRouteTableResponse, error) 50 DeleteRouteTable(ctx context.Context, request ociCore.DeleteRouteTableRequest) (ociCore.DeleteRouteTableResponse, error) 51 ListRouteTables(ctx context.Context, request ociCore.ListRouteTablesRequest) (response ociCore.ListRouteTablesResponse, err error) 52 53 GetVnic(ctx context.Context, request ociCore.GetVnicRequest) (ociCore.GetVnicResponse, error) 54 55 CreateSecurityList(ctx context.Context, request ociCore.CreateSecurityListRequest) (ociCore.CreateSecurityListResponse, error) 56 ListSecurityLists(ctx context.Context, request ociCore.ListSecurityListsRequest) (ociCore.ListSecurityListsResponse, error) 57 DeleteSecurityList(ctx context.Context, request ociCore.DeleteSecurityListRequest) (ociCore.DeleteSecurityListResponse, error) 58 GetSecurityList(ctx context.Context, request ociCore.GetSecurityListRequest) (ociCore.GetSecurityListResponse, error) 59 } 60 61 //go:generate go run go.uber.org/mock/mockgen -package testing -destination ../testing/mocks_clientstorage.go -write_package_comment=false github.com/juju/juju/provider/oci/common OCIStorageClient 62 type OCIStorageClient interface { 63 CreateVolume(ctx context.Context, request ociCore.CreateVolumeRequest) (ociCore.CreateVolumeResponse, error) 64 ListVolumes(ctx context.Context, request ociCore.ListVolumesRequest) (response ociCore.ListVolumesResponse, err error) 65 GetVolume(ctx context.Context, request ociCore.GetVolumeRequest) (ociCore.GetVolumeResponse, error) 66 DeleteVolume(ctx context.Context, request ociCore.DeleteVolumeRequest) (ociCore.DeleteVolumeResponse, error) 67 UpdateVolume(ctx context.Context, request ociCore.UpdateVolumeRequest) (ociCore.UpdateVolumeResponse, error) 68 }