iam

package
v0.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 25, 2021 License: Apache-2.0 Imports: 20 Imported by: 1

Documentation

Overview

Package iam is a reverse proxy.

It translates gRPC into RESTful JSON APIs.

Index

Constants

This section is empty.

Variables

View Source
var File_iam_v1_iam_proto protoreflect.FileDescriptor
View Source
var Iam_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "blueapi.iam.v1.Iam",
	HandlerType: (*IamServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "WhoAmI",
			Handler:    _Iam_WhoAmI_Handler,
		},
		{
			MethodName: "ListUsers",
			Handler:    _Iam_ListUsers_Handler,
		},
		{
			MethodName: "GetUser",
			Handler:    _Iam_GetUser_Handler,
		},
		{
			MethodName: "ListIpFilters",
			Handler:    _Iam_ListIpFilters_Handler,
		},
		{
			MethodName: "CreateIpFilter",
			Handler:    _Iam_CreateIpFilter_Handler,
		},
		{
			MethodName: "DeleteIpFilter",
			Handler:    _Iam_DeleteIpFilter_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "iam/v1/iam.proto",
}

Iam_ServiceDesc is the grpc.ServiceDesc for Iam service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

Functions

func RegisterIamHandler

func RegisterIamHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error

RegisterIamHandler registers the http handlers for service Iam to "mux". The handlers forward requests to the grpc endpoint over "conn".

func RegisterIamHandlerClient

func RegisterIamHandlerClient(ctx context.Context, mux *runtime.ServeMux, client IamClient) error

RegisterIamHandlerClient registers the http handlers for service Iam to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "IamClient". Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "IamClient" doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in "IamClient" to call the correct interceptors.

func RegisterIamHandlerFromEndpoint

func RegisterIamHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error)

RegisterIamHandlerFromEndpoint is same as RegisterIamHandler but automatically dials to "endpoint" and closes the connection when "ctx" gets done.

func RegisterIamHandlerServer

func RegisterIamHandlerServer(ctx context.Context, mux *runtime.ServeMux, server IamServer) error

RegisterIamHandlerServer registers the http handlers for service Iam to "mux". UnaryRPC :call IamServer directly. StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterIamHandlerFromEndpoint instead.

func RegisterIamServer

func RegisterIamServer(s grpc.ServiceRegistrar, srv IamServer)

Types

type ClientOptions added in v0.6.10

type ClientOptions struct {
	Conn *conn.GrpcClientConn
}

ClientOptions represents the optional options to NewClient.

type CreateIpFilterRequest added in v0.9.7

type CreateIpFilterRequest struct {

	// Required. The IP input to filter, either blacklist or whitelist. Should be in
	// CIDR format (i.e. 1.2.3.4/32).
	Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
	// Optional. Can be 'whitelist' or 'blacklist'. Defaults to 'blacklist' if empty.
	Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	// Optional. If valid rootuser and sub_user is empty, filter is for this rootuser.
	// If both root_user and sub_user inputs are empty, filter is at global scope.
	RootUser string `protobuf:"bytes,3,opt,name=root_user,proto3" json:"root_user,omitempty"`
	// Optional. If valid subuser, filter is for this subuser; root_user value is discarded.
	// If both root_user and sub_user inputs are empty, filter is at global scope.
	SubUser string `protobuf:"bytes,4,opt,name=sub_user,proto3" json:"sub_user,omitempty"`
	// contains filtered or unexported fields
}

Request message for Iam.CreateIpFilter rpc.

func (*CreateIpFilterRequest) Descriptor deprecated added in v0.9.7

func (*CreateIpFilterRequest) Descriptor() ([]byte, []int)

Deprecated: Use CreateIpFilterRequest.ProtoReflect.Descriptor instead.

func (*CreateIpFilterRequest) GetRootUser added in v0.9.7

func (x *CreateIpFilterRequest) GetRootUser() string

func (*CreateIpFilterRequest) GetSubUser added in v0.9.7

func (x *CreateIpFilterRequest) GetSubUser() string

func (*CreateIpFilterRequest) GetType added in v0.9.7

func (x *CreateIpFilterRequest) GetType() string

func (*CreateIpFilterRequest) GetValue added in v0.9.7

func (x *CreateIpFilterRequest) GetValue() string

func (*CreateIpFilterRequest) ProtoMessage added in v0.9.7

func (*CreateIpFilterRequest) ProtoMessage()

func (*CreateIpFilterRequest) ProtoReflect added in v0.9.7

func (x *CreateIpFilterRequest) ProtoReflect() protoreflect.Message

func (*CreateIpFilterRequest) Reset added in v0.9.7

func (x *CreateIpFilterRequest) Reset()

func (*CreateIpFilterRequest) String added in v0.9.7

func (x *CreateIpFilterRequest) String() string

type DeleteIpFilterRequest added in v0.9.6

type DeleteIpFilterRequest struct {

	// The id to delete.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

Request message for Iam.DeleteIpFilter rpc.

func (*DeleteIpFilterRequest) Descriptor deprecated added in v0.9.6

func (*DeleteIpFilterRequest) Descriptor() ([]byte, []int)

Deprecated: Use DeleteIpFilterRequest.ProtoReflect.Descriptor instead.

func (*DeleteIpFilterRequest) GetId added in v0.9.6

func (x *DeleteIpFilterRequest) GetId() string

func (*DeleteIpFilterRequest) ProtoMessage added in v0.9.6

func (*DeleteIpFilterRequest) ProtoMessage()

func (*DeleteIpFilterRequest) ProtoReflect added in v0.9.6

func (x *DeleteIpFilterRequest) ProtoReflect() protoreflect.Message

func (*DeleteIpFilterRequest) Reset added in v0.9.6

func (x *DeleteIpFilterRequest) Reset()

func (*DeleteIpFilterRequest) String added in v0.9.6

func (x *DeleteIpFilterRequest) String() string

type GetUserRequest added in v0.6.22

type GetUserRequest struct {
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// contains filtered or unexported fields
}

Request message for Iam.GetUser rpc.

func (*GetUserRequest) Descriptor deprecated added in v0.6.22

func (*GetUserRequest) Descriptor() ([]byte, []int)

Deprecated: Use GetUserRequest.ProtoReflect.Descriptor instead.

func (*GetUserRequest) GetName added in v0.6.22

func (x *GetUserRequest) GetName() string

func (*GetUserRequest) ProtoMessage added in v0.6.22

func (*GetUserRequest) ProtoMessage()

func (*GetUserRequest) ProtoReflect added in v0.6.22

func (x *GetUserRequest) ProtoReflect() protoreflect.Message

func (*GetUserRequest) Reset added in v0.6.22

func (x *GetUserRequest) Reset()

func (*GetUserRequest) String added in v0.6.22

func (x *GetUserRequest) String() string

type GrpcClient added in v0.6.7

type GrpcClient struct {
	IamClient
	// contains filtered or unexported fields
}

func NewClient added in v0.6.7

func NewClient(ctx context.Context, opts ...*ClientOptions) (*GrpcClient, error)

NewClient returns a client connection to the 'iam' service.

func (*GrpcClient) Close added in v0.6.7

func (c *GrpcClient) Close()

type IamClient

type IamClient interface {
	// Gets user information about the caller. This call includes all of the user metadata.
	// See https://alphauslabs.github.io/blueapi/ for the list of supported attributes.
	WhoAmI(ctx context.Context, in *WhoAmIRequest, opts ...grpc.CallOption) (*api.User, error)
	// Lists all subusers.
	ListUsers(ctx context.Context, in *ListUsersRequest, opts ...grpc.CallOption) (*ListUsersResponse, error)
	// Gets subuser information. This call includes all of the subuser metadata. See
	// https://alphauslabs.github.io/blueapi/ for the list of supported attributes.
	// If the {name} parameter is 'me' or '-', returns the caller information, which
	// is equivalent to `WhoAmI()` or `GET:/iam/v*/whoami`.
	GetUser(ctx context.Context, in *GetUserRequest, opts ...grpc.CallOption) (*api.User, error)
	// Lists all IP filters. At the moment, this API is only available for root users.
	ListIpFilters(ctx context.Context, in *ListIpFiltersRequest, opts ...grpc.CallOption) (*ListIpFiltersResponse, error)
	// Creates an IP filter item for IP blacklisting or whitelisting. At the moment,
	// this API is only available for root users.
	CreateIpFilter(ctx context.Context, in *CreateIpFilterRequest, opts ...grpc.CallOption) (*IpFilter, error)
	// Deletes an IP filter item. At the moment, this API is only available for root users.
	DeleteIpFilter(ctx context.Context, in *DeleteIpFilterRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
}

IamClient is the client API for Iam service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

func NewIamClient

func NewIamClient(cc grpc.ClientConnInterface) IamClient

type IamServer

type IamServer interface {
	// Gets user information about the caller. This call includes all of the user metadata.
	// See https://alphauslabs.github.io/blueapi/ for the list of supported attributes.
	WhoAmI(context.Context, *WhoAmIRequest) (*api.User, error)
	// Lists all subusers.
	ListUsers(context.Context, *ListUsersRequest) (*ListUsersResponse, error)
	// Gets subuser information. This call includes all of the subuser metadata. See
	// https://alphauslabs.github.io/blueapi/ for the list of supported attributes.
	// If the {name} parameter is 'me' or '-', returns the caller information, which
	// is equivalent to `WhoAmI()` or `GET:/iam/v*/whoami`.
	GetUser(context.Context, *GetUserRequest) (*api.User, error)
	// Lists all IP filters. At the moment, this API is only available for root users.
	ListIpFilters(context.Context, *ListIpFiltersRequest) (*ListIpFiltersResponse, error)
	// Creates an IP filter item for IP blacklisting or whitelisting. At the moment,
	// this API is only available for root users.
	CreateIpFilter(context.Context, *CreateIpFilterRequest) (*IpFilter, error)
	// Deletes an IP filter item. At the moment, this API is only available for root users.
	DeleteIpFilter(context.Context, *DeleteIpFilterRequest) (*emptypb.Empty, error)
	// contains filtered or unexported methods
}

IamServer is the server API for Iam service. All implementations must embed UnimplementedIamServer for forward compatibility

type IpFilter added in v0.9.6

type IpFilter struct {

	// Ip filter item id. Note that this id is transcient and is not fixed. However,
	// you can use any of its permutations to endpoints that accept it, such as
	// the 'DELETE:/iam/v?/ipfilters/{id}' endpoint, without issues.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Can be 'global', 'rootuser', or 'subuser'.
	Scope string `protobuf:"bytes,2,opt,name=scope,proto3" json:"scope,omitempty"`
	// The target of the filter. If global scope, this is usually empty.
	// Rootuser id for rootuser scope, and subuser id for subuser scope.
	// For subuser targets, format is 'rootuserid/subuserid'.
	Target string `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"`
	// The type of ip filter. It could be 'whitelist' or 'blacklist'.
	Type string `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"`
	// The ip filter value. Should be in CIDR format.
	Value string `protobuf:"bytes,5,opt,name=value,proto3" json:"value,omitempty"`
	// contains filtered or unexported fields
}

func (*IpFilter) Descriptor deprecated added in v0.9.6

func (*IpFilter) Descriptor() ([]byte, []int)

Deprecated: Use IpFilter.ProtoReflect.Descriptor instead.

func (*IpFilter) GetId added in v0.9.6

func (x *IpFilter) GetId() string

func (*IpFilter) GetScope added in v0.9.6

func (x *IpFilter) GetScope() string

func (*IpFilter) GetTarget added in v0.9.6

func (x *IpFilter) GetTarget() string

func (*IpFilter) GetType added in v0.9.6

func (x *IpFilter) GetType() string

func (*IpFilter) GetValue added in v0.9.6

func (x *IpFilter) GetValue() string

func (*IpFilter) ProtoMessage added in v0.9.6

func (*IpFilter) ProtoMessage()

func (*IpFilter) ProtoReflect added in v0.9.6

func (x *IpFilter) ProtoReflect() protoreflect.Message

func (*IpFilter) Reset added in v0.9.6

func (x *IpFilter) Reset()

func (*IpFilter) String added in v0.9.6

func (x *IpFilter) String() string

type ListIpFiltersRequest added in v0.9.6

type ListIpFiltersRequest struct {
	// contains filtered or unexported fields
}

Request message for Iam.ListIpFilters rpc.

func (*ListIpFiltersRequest) Descriptor deprecated added in v0.9.6

func (*ListIpFiltersRequest) Descriptor() ([]byte, []int)

Deprecated: Use ListIpFiltersRequest.ProtoReflect.Descriptor instead.

func (*ListIpFiltersRequest) ProtoMessage added in v0.9.6

func (*ListIpFiltersRequest) ProtoMessage()

func (*ListIpFiltersRequest) ProtoReflect added in v0.9.6

func (x *ListIpFiltersRequest) ProtoReflect() protoreflect.Message

func (*ListIpFiltersRequest) Reset added in v0.9.6

func (x *ListIpFiltersRequest) Reset()

func (*ListIpFiltersRequest) String added in v0.9.6

func (x *ListIpFiltersRequest) String() string

type ListIpFiltersResponse added in v0.9.6

type ListIpFiltersResponse struct {
	Items []*IpFilter `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
	// contains filtered or unexported fields
}

Response message for Iam.ListIpFilters rpc.

func (*ListIpFiltersResponse) Descriptor deprecated added in v0.9.6

func (*ListIpFiltersResponse) Descriptor() ([]byte, []int)

Deprecated: Use ListIpFiltersResponse.ProtoReflect.Descriptor instead.

func (*ListIpFiltersResponse) GetItems added in v0.9.6

func (x *ListIpFiltersResponse) GetItems() []*IpFilter

func (*ListIpFiltersResponse) ProtoMessage added in v0.9.6

func (*ListIpFiltersResponse) ProtoMessage()

func (*ListIpFiltersResponse) ProtoReflect added in v0.9.6

func (x *ListIpFiltersResponse) ProtoReflect() protoreflect.Message

func (*ListIpFiltersResponse) Reset added in v0.9.6

func (x *ListIpFiltersResponse) Reset()

func (*ListIpFiltersResponse) String added in v0.9.6

func (x *ListIpFiltersResponse) String() string

type ListUsersRequest added in v0.6.22

type ListUsersRequest struct {
	// contains filtered or unexported fields
}

Request message for Iam.ListUsers rpc.

func (*ListUsersRequest) Descriptor deprecated added in v0.6.22

func (*ListUsersRequest) Descriptor() ([]byte, []int)

Deprecated: Use ListUsersRequest.ProtoReflect.Descriptor instead.

func (*ListUsersRequest) ProtoMessage added in v0.6.22

func (*ListUsersRequest) ProtoMessage()

func (*ListUsersRequest) ProtoReflect added in v0.6.22

func (x *ListUsersRequest) ProtoReflect() protoreflect.Message

func (*ListUsersRequest) Reset added in v0.6.22

func (x *ListUsersRequest) Reset()

func (*ListUsersRequest) String added in v0.6.22

func (x *ListUsersRequest) String() string

type ListUsersResponse added in v0.6.22

type ListUsersResponse struct {
	Users []*api.User `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"`
	// contains filtered or unexported fields
}

Response message for Iam.ListUsers rpc.

func (*ListUsersResponse) Descriptor deprecated added in v0.6.22

func (*ListUsersResponse) Descriptor() ([]byte, []int)

Deprecated: Use ListUsersResponse.ProtoReflect.Descriptor instead.

func (*ListUsersResponse) GetUsers added in v0.6.22

func (x *ListUsersResponse) GetUsers() []*api.User

func (*ListUsersResponse) ProtoMessage added in v0.6.22

func (*ListUsersResponse) ProtoMessage()

func (*ListUsersResponse) ProtoReflect added in v0.6.22

func (x *ListUsersResponse) ProtoReflect() protoreflect.Message

func (*ListUsersResponse) Reset added in v0.6.22

func (x *ListUsersResponse) Reset()

func (*ListUsersResponse) String added in v0.6.22

func (x *ListUsersResponse) String() string

type UnimplementedIamServer

type UnimplementedIamServer struct {
}

UnimplementedIamServer must be embedded to have forward compatible implementations.

func (UnimplementedIamServer) CreateIpFilter added in v0.9.7

func (UnimplementedIamServer) DeleteIpFilter added in v0.9.6

func (UnimplementedIamServer) GetUser added in v0.6.22

func (UnimplementedIamServer) ListIpFilters added in v0.9.6

func (UnimplementedIamServer) ListUsers added in v0.6.22

func (UnimplementedIamServer) WhoAmI

type UnsafeIamServer

type UnsafeIamServer interface {
	// contains filtered or unexported methods
}

UnsafeIamServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to IamServer will result in compilation errors.

type WhoAmIRequest

type WhoAmIRequest struct {
	// contains filtered or unexported fields
}

Request message for Iam.WhoAmI rpc.

func (*WhoAmIRequest) Descriptor deprecated

func (*WhoAmIRequest) Descriptor() ([]byte, []int)

Deprecated: Use WhoAmIRequest.ProtoReflect.Descriptor instead.

func (*WhoAmIRequest) ProtoMessage

func (*WhoAmIRequest) ProtoMessage()

func (*WhoAmIRequest) ProtoReflect

func (x *WhoAmIRequest) ProtoReflect() protoreflect.Message

func (*WhoAmIRequest) Reset

func (x *WhoAmIRequest) Reset()

func (*WhoAmIRequest) String

func (x *WhoAmIRequest) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL