api/v3: prototool format

pull/540/head
Jimmy Zelinskie 6 years ago
parent 6b9f668ea0
commit d7a751e0d4

@ -26,9 +26,9 @@ package clairpb
import proto "github.com/golang/protobuf/proto" import proto "github.com/golang/protobuf/proto"
import fmt "fmt" import fmt "fmt"
import math "math" import math "math"
import google_protobuf "github.com/golang/protobuf/ptypes/empty"
import google_protobuf1 "github.com/golang/protobuf/ptypes/timestamp"
import _ "google.golang.org/genproto/googleapis/api/annotations" import _ "google.golang.org/genproto/googleapis/api/annotations"
import google_protobuf1 "github.com/golang/protobuf/ptypes/empty"
import google_protobuf2 "github.com/golang/protobuf/ptypes/timestamp"
import ( import (
context "golang.org/x/net/context" context "golang.org/x/net/context"
@ -204,7 +204,7 @@ type ClairStatus struct {
// The configured list of namespace detectors used to scan an ancestry. // The configured list of namespace detectors used to scan an ancestry.
Detectors []string `protobuf:"bytes,2,rep,name=detectors" json:"detectors,omitempty"` Detectors []string `protobuf:"bytes,2,rep,name=detectors" json:"detectors,omitempty"`
// The time at which the updater last ran. // The time at which the updater last ran.
LastUpdateTime *google_protobuf2.Timestamp `protobuf:"bytes,3,opt,name=last_update_time,json=lastUpdateTime" json:"last_update_time,omitempty"` LastUpdateTime *google_protobuf1.Timestamp `protobuf:"bytes,3,opt,name=last_update_time,json=lastUpdateTime" json:"last_update_time,omitempty"`
} }
func (m *ClairStatus) Reset() { *m = ClairStatus{} } func (m *ClairStatus) Reset() { *m = ClairStatus{} }
@ -226,7 +226,7 @@ func (m *ClairStatus) GetDetectors() []string {
return nil return nil
} }
func (m *ClairStatus) GetLastUpdateTime() *google_protobuf2.Timestamp { func (m *ClairStatus) GetLastUpdateTime() *google_protobuf1.Timestamp {
if m != nil { if m != nil {
return m.LastUpdateTime return m.LastUpdateTime
} }
@ -670,22 +670,22 @@ func (m *MarkNotificationAsReadRequest) GetName() string {
} }
func init() { func init() {
proto.RegisterType((*Vulnerability)(nil), "clairpb.Vulnerability") proto.RegisterType((*Vulnerability)(nil), "coreos.clair.Vulnerability")
proto.RegisterType((*Feature)(nil), "clairpb.Feature") proto.RegisterType((*Feature)(nil), "coreos.clair.Feature")
proto.RegisterType((*Layer)(nil), "clairpb.Layer") proto.RegisterType((*Layer)(nil), "coreos.clair.Layer")
proto.RegisterType((*ClairStatus)(nil), "clairpb.ClairStatus") proto.RegisterType((*ClairStatus)(nil), "coreos.clair.ClairStatus")
proto.RegisterType((*GetAncestryRequest)(nil), "clairpb.GetAncestryRequest") proto.RegisterType((*GetAncestryRequest)(nil), "coreos.clair.GetAncestryRequest")
proto.RegisterType((*GetAncestryResponse)(nil), "clairpb.GetAncestryResponse") proto.RegisterType((*GetAncestryResponse)(nil), "coreos.clair.GetAncestryResponse")
proto.RegisterType((*GetAncestryResponse_Ancestry)(nil), "clairpb.GetAncestryResponse.Ancestry") proto.RegisterType((*GetAncestryResponse_Ancestry)(nil), "coreos.clair.GetAncestryResponse.Ancestry")
proto.RegisterType((*PostAncestryRequest)(nil), "clairpb.PostAncestryRequest") proto.RegisterType((*PostAncestryRequest)(nil), "coreos.clair.PostAncestryRequest")
proto.RegisterType((*PostAncestryRequest_PostLayer)(nil), "clairpb.PostAncestryRequest.PostLayer") proto.RegisterType((*PostAncestryRequest_PostLayer)(nil), "coreos.clair.PostAncestryRequest.PostLayer")
proto.RegisterType((*PostAncestryResponse)(nil), "clairpb.PostAncestryResponse") proto.RegisterType((*PostAncestryResponse)(nil), "coreos.clair.PostAncestryResponse")
proto.RegisterType((*GetNotificationRequest)(nil), "clairpb.GetNotificationRequest") proto.RegisterType((*GetNotificationRequest)(nil), "coreos.clair.GetNotificationRequest")
proto.RegisterType((*GetNotificationResponse)(nil), "clairpb.GetNotificationResponse") proto.RegisterType((*GetNotificationResponse)(nil), "coreos.clair.GetNotificationResponse")
proto.RegisterType((*GetNotificationResponse_Notification)(nil), "clairpb.GetNotificationResponse.Notification") proto.RegisterType((*GetNotificationResponse_Notification)(nil), "coreos.clair.GetNotificationResponse.Notification")
proto.RegisterType((*PagedVulnerableAncestries)(nil), "clairpb.PagedVulnerableAncestries") proto.RegisterType((*PagedVulnerableAncestries)(nil), "coreos.clair.PagedVulnerableAncestries")
proto.RegisterType((*PagedVulnerableAncestries_IndexedAncestryName)(nil), "clairpb.PagedVulnerableAncestries.IndexedAncestryName") proto.RegisterType((*PagedVulnerableAncestries_IndexedAncestryName)(nil), "coreos.clair.PagedVulnerableAncestries.IndexedAncestryName")
proto.RegisterType((*MarkNotificationAsReadRequest)(nil), "clairpb.MarkNotificationAsReadRequest") proto.RegisterType((*MarkNotificationAsReadRequest)(nil), "coreos.clair.MarkNotificationAsReadRequest")
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.
@ -715,7 +715,7 @@ func NewAncestryServiceClient(cc *grpc.ClientConn) AncestryServiceClient {
func (c *ancestryServiceClient) GetAncestry(ctx context.Context, in *GetAncestryRequest, opts ...grpc.CallOption) (*GetAncestryResponse, error) { func (c *ancestryServiceClient) GetAncestry(ctx context.Context, in *GetAncestryRequest, opts ...grpc.CallOption) (*GetAncestryResponse, error) {
out := new(GetAncestryResponse) out := new(GetAncestryResponse)
err := grpc.Invoke(ctx, "/clairpb.AncestryService/GetAncestry", in, out, c.cc, opts...) err := grpc.Invoke(ctx, "/coreos.clair.AncestryService/GetAncestry", in, out, c.cc, opts...)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -724,7 +724,7 @@ func (c *ancestryServiceClient) GetAncestry(ctx context.Context, in *GetAncestry
func (c *ancestryServiceClient) PostAncestry(ctx context.Context, in *PostAncestryRequest, opts ...grpc.CallOption) (*PostAncestryResponse, error) { func (c *ancestryServiceClient) PostAncestry(ctx context.Context, in *PostAncestryRequest, opts ...grpc.CallOption) (*PostAncestryResponse, error) {
out := new(PostAncestryResponse) out := new(PostAncestryResponse)
err := grpc.Invoke(ctx, "/clairpb.AncestryService/PostAncestry", in, out, c.cc, opts...) err := grpc.Invoke(ctx, "/coreos.clair.AncestryService/PostAncestry", in, out, c.cc, opts...)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -754,7 +754,7 @@ func _AncestryService_GetAncestry_Handler(srv interface{}, ctx context.Context,
} }
info := &grpc.UnaryServerInfo{ info := &grpc.UnaryServerInfo{
Server: srv, Server: srv,
FullMethod: "/clairpb.AncestryService/GetAncestry", FullMethod: "/coreos.clair.AncestryService/GetAncestry",
} }
handler := func(ctx context.Context, req interface{}) (interface{}, error) { handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(AncestryServiceServer).GetAncestry(ctx, req.(*GetAncestryRequest)) return srv.(AncestryServiceServer).GetAncestry(ctx, req.(*GetAncestryRequest))
@ -772,7 +772,7 @@ func _AncestryService_PostAncestry_Handler(srv interface{}, ctx context.Context,
} }
info := &grpc.UnaryServerInfo{ info := &grpc.UnaryServerInfo{
Server: srv, Server: srv,
FullMethod: "/clairpb.AncestryService/PostAncestry", FullMethod: "/coreos.clair.AncestryService/PostAncestry",
} }
handler := func(ctx context.Context, req interface{}) (interface{}, error) { handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(AncestryServiceServer).PostAncestry(ctx, req.(*PostAncestryRequest)) return srv.(AncestryServiceServer).PostAncestry(ctx, req.(*PostAncestryRequest))
@ -781,7 +781,7 @@ func _AncestryService_PostAncestry_Handler(srv interface{}, ctx context.Context,
} }
var _AncestryService_serviceDesc = grpc.ServiceDesc{ var _AncestryService_serviceDesc = grpc.ServiceDesc{
ServiceName: "clairpb.AncestryService", ServiceName: "coreos.clair.AncestryService",
HandlerType: (*AncestryServiceServer)(nil), HandlerType: (*AncestryServiceServer)(nil),
Methods: []grpc.MethodDesc{ Methods: []grpc.MethodDesc{
{ {
@ -803,7 +803,7 @@ type NotificationServiceClient interface {
// The RPC used to get a particularly Notification. // The RPC used to get a particularly Notification.
GetNotification(ctx context.Context, in *GetNotificationRequest, opts ...grpc.CallOption) (*GetNotificationResponse, error) GetNotification(ctx context.Context, in *GetNotificationRequest, opts ...grpc.CallOption) (*GetNotificationResponse, error)
// The RPC used to mark a Notification as read after it has been processed. // The RPC used to mark a Notification as read after it has been processed.
MarkNotificationAsRead(ctx context.Context, in *MarkNotificationAsReadRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) MarkNotificationAsRead(ctx context.Context, in *MarkNotificationAsReadRequest, opts ...grpc.CallOption) (*google_protobuf.Empty, error)
} }
type notificationServiceClient struct { type notificationServiceClient struct {
@ -816,16 +816,16 @@ func NewNotificationServiceClient(cc *grpc.ClientConn) NotificationServiceClient
func (c *notificationServiceClient) GetNotification(ctx context.Context, in *GetNotificationRequest, opts ...grpc.CallOption) (*GetNotificationResponse, error) { func (c *notificationServiceClient) GetNotification(ctx context.Context, in *GetNotificationRequest, opts ...grpc.CallOption) (*GetNotificationResponse, error) {
out := new(GetNotificationResponse) out := new(GetNotificationResponse)
err := grpc.Invoke(ctx, "/clairpb.NotificationService/GetNotification", in, out, c.cc, opts...) err := grpc.Invoke(ctx, "/coreos.clair.NotificationService/GetNotification", in, out, c.cc, opts...)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return out, nil return out, nil
} }
func (c *notificationServiceClient) MarkNotificationAsRead(ctx context.Context, in *MarkNotificationAsReadRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error) { func (c *notificationServiceClient) MarkNotificationAsRead(ctx context.Context, in *MarkNotificationAsReadRequest, opts ...grpc.CallOption) (*google_protobuf.Empty, error) {
out := new(google_protobuf1.Empty) out := new(google_protobuf.Empty)
err := grpc.Invoke(ctx, "/clairpb.NotificationService/MarkNotificationAsRead", in, out, c.cc, opts...) err := grpc.Invoke(ctx, "/coreos.clair.NotificationService/MarkNotificationAsRead", in, out, c.cc, opts...)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -838,7 +838,7 @@ type NotificationServiceServer interface {
// The RPC used to get a particularly Notification. // The RPC used to get a particularly Notification.
GetNotification(context.Context, *GetNotificationRequest) (*GetNotificationResponse, error) GetNotification(context.Context, *GetNotificationRequest) (*GetNotificationResponse, error)
// The RPC used to mark a Notification as read after it has been processed. // The RPC used to mark a Notification as read after it has been processed.
MarkNotificationAsRead(context.Context, *MarkNotificationAsReadRequest) (*google_protobuf1.Empty, error) MarkNotificationAsRead(context.Context, *MarkNotificationAsReadRequest) (*google_protobuf.Empty, error)
} }
func RegisterNotificationServiceServer(s *grpc.Server, srv NotificationServiceServer) { func RegisterNotificationServiceServer(s *grpc.Server, srv NotificationServiceServer) {
@ -855,7 +855,7 @@ func _NotificationService_GetNotification_Handler(srv interface{}, ctx context.C
} }
info := &grpc.UnaryServerInfo{ info := &grpc.UnaryServerInfo{
Server: srv, Server: srv,
FullMethod: "/clairpb.NotificationService/GetNotification", FullMethod: "/coreos.clair.NotificationService/GetNotification",
} }
handler := func(ctx context.Context, req interface{}) (interface{}, error) { handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NotificationServiceServer).GetNotification(ctx, req.(*GetNotificationRequest)) return srv.(NotificationServiceServer).GetNotification(ctx, req.(*GetNotificationRequest))
@ -873,7 +873,7 @@ func _NotificationService_MarkNotificationAsRead_Handler(srv interface{}, ctx co
} }
info := &grpc.UnaryServerInfo{ info := &grpc.UnaryServerInfo{
Server: srv, Server: srv,
FullMethod: "/clairpb.NotificationService/MarkNotificationAsRead", FullMethod: "/coreos.clair.NotificationService/MarkNotificationAsRead",
} }
handler := func(ctx context.Context, req interface{}) (interface{}, error) { handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NotificationServiceServer).MarkNotificationAsRead(ctx, req.(*MarkNotificationAsReadRequest)) return srv.(NotificationServiceServer).MarkNotificationAsRead(ctx, req.(*MarkNotificationAsReadRequest))
@ -882,7 +882,7 @@ func _NotificationService_MarkNotificationAsRead_Handler(srv interface{}, ctx co
} }
var _NotificationService_serviceDesc = grpc.ServiceDesc{ var _NotificationService_serviceDesc = grpc.ServiceDesc{
ServiceName: "clairpb.NotificationService", ServiceName: "coreos.clair.NotificationService",
HandlerType: (*NotificationServiceServer)(nil), HandlerType: (*NotificationServiceServer)(nil),
Methods: []grpc.MethodDesc{ Methods: []grpc.MethodDesc{
{ {
@ -901,78 +901,80 @@ var _NotificationService_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("api/v3/clairpb/clair.proto", fileDescriptor0) } func init() { proto.RegisterFile("api/v3/clairpb/clair.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{ var fileDescriptor0 = []byte{
// 1166 bytes of a gzipped FileDescriptorProto // 1189 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xdd, 0x6f, 0xdb, 0x54, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x57, 0x4f, 0x73, 0xdb, 0x44,
0x14, 0x97, 0xd3, 0xa6, 0x49, 0x4e, 0xd2, 0x8f, 0xdd, 0x86, 0xcc, 0x73, 0x3b, 0xad, 0x33, 0xda, 0x14, 0x1f, 0x29, 0x71, 0xec, 0x3c, 0x3b, 0x7f, 0xba, 0x76, 0x53, 0x45, 0x69, 0x21, 0x11, 0x74,
0x98, 0xc6, 0x48, 0x44, 0x3a, 0x21, 0x54, 0xf1, 0xd5, 0xd1, 0x6d, 0x20, 0x6d, 0xd3, 0xf0, 0xa0, 0xda, 0x69, 0x67, 0xec, 0xa9, 0xcb, 0xa1, 0x94, 0x03, 0x93, 0xb4, 0x49, 0xe9, 0x4c, 0xe9, 0x74,
0x0f, 0xbc, 0x44, 0xb7, 0xf6, 0x49, 0x6b, 0xd5, 0xb1, 0x8d, 0xef, 0x4d, 0xd2, 0x68, 0xe2, 0x05, 0x54, 0xc8, 0x01, 0x0e, 0x9e, 0xb5, 0xf4, 0x9c, 0x68, 0x22, 0x4b, 0x42, 0xbb, 0x76, 0xe2, 0x29,
0x1e, 0x79, 0x02, 0xfe, 0x0f, 0xfe, 0x04, 0x5e, 0x41, 0x48, 0x3c, 0xed, 0x1d, 0x09, 0x89, 0x3f, 0xbd, 0x70, 0xe5, 0x04, 0x1c, 0xf8, 0x16, 0x7c, 0x09, 0xae, 0x9c, 0x80, 0x23, 0xdc, 0x98, 0x81,
0x04, 0xdd, 0xeb, 0x7b, 0x1d, 0xbb, 0x75, 0xdb, 0x09, 0x9e, 0xe2, 0xf3, 0xfd, 0xf5, 0x3b, 0xf7, 0x2f, 0xc0, 0x9d, 0xd9, 0xd5, 0xae, 0x22, 0x39, 0x26, 0x49, 0xe1, 0x14, 0xbd, 0xff, 0xff, 0x7e,
0x04, 0x2c, 0x1a, 0xfb, 0xbd, 0xc9, 0x76, 0xcf, 0x0d, 0xa8, 0x9f, 0xc4, 0x07, 0xe9, 0x6f, 0x37, 0x6f, 0x5f, 0x0c, 0x36, 0x4d, 0x82, 0xce, 0xf8, 0x7e, 0xc7, 0x0b, 0x69, 0x90, 0x26, 0xfd, 0xec,
0x4e, 0x22, 0x1e, 0x91, 0x9a, 0x62, 0x5a, 0x9b, 0x87, 0x51, 0x74, 0x18, 0x60, 0x4f, 0xe8, 0xd2, 0x6f, 0x3b, 0x49, 0x63, 0x1e, 0x93, 0x86, 0x17, 0xa7, 0x18, 0xb3, 0xb6, 0xe4, 0xd9, 0x1b, 0x07,
0x30, 0x8c, 0x38, 0xe5, 0x7e, 0x14, 0xb2, 0x54, 0xcd, 0xda, 0x50, 0x52, 0x49, 0x1d, 0x8c, 0x87, 0x71, 0x7c, 0x10, 0x62, 0x47, 0xca, 0xfa, 0xa3, 0x41, 0x07, 0x87, 0x09, 0x9f, 0x64, 0xaa, 0xf6,
0x3d, 0x1c, 0xc5, 0x7c, 0xa6, 0x84, 0x37, 0x4e, 0x0b, 0xb9, 0x3f, 0x42, 0xc6, 0xe9, 0x28, 0x4e, 0xdb, 0xd3, 0x42, 0x1e, 0x0c, 0x91, 0x71, 0x3a, 0x4c, 0x94, 0xc2, 0x75, 0xa5, 0x20, 0xc2, 0xd1,
0x15, 0xec, 0x9f, 0x2a, 0xb0, 0xbc, 0x3f, 0x0e, 0x42, 0x4c, 0xe8, 0x81, 0x1f, 0xf8, 0x7c, 0x46, 0x28, 0x8a, 0x39, 0xe5, 0x41, 0x1c, 0xb1, 0x4c, 0xea, 0x7c, 0x6f, 0xc2, 0xd2, 0xfe, 0x28, 0x8c,
0x08, 0x2c, 0x86, 0x74, 0x84, 0xa6, 0xb1, 0x65, 0xdc, 0x69, 0x38, 0xf2, 0x9b, 0xdc, 0x82, 0x15, 0x30, 0xa5, 0xfd, 0x20, 0x0c, 0xf8, 0x84, 0x10, 0x98, 0x8f, 0xe8, 0x10, 0x2d, 0x63, 0xd3, 0xb8,
0xf1, 0xcb, 0x62, 0xea, 0xe2, 0x40, 0x4a, 0x2b, 0x52, 0xba, 0x9c, 0x71, 0x9f, 0x09, 0xb5, 0x2d, 0xbd, 0xe8, 0xca, 0x6f, 0x72, 0x13, 0x96, 0xc5, 0x5f, 0x96, 0x50, 0x0f, 0x7b, 0x52, 0x6a, 0x4a,
0x68, 0x7a, 0xc8, 0xdc, 0xc4, 0x8f, 0x45, 0x82, 0xe6, 0x82, 0xd4, 0xc9, 0xb3, 0x84, 0xf3, 0xc0, 0xe9, 0x52, 0xce, 0x7d, 0x2e, 0xd4, 0x36, 0xa1, 0xee, 0x23, 0xf3, 0xd2, 0x20, 0x11, 0x21, 0xac,
0x0f, 0x8f, 0xcd, 0xc5, 0xd4, 0xb9, 0xf8, 0x26, 0x16, 0xd4, 0x19, 0x4e, 0x30, 0xf1, 0xf9, 0xcc, 0x39, 0xa9, 0x53, 0x64, 0x09, 0xe7, 0x61, 0x10, 0x1d, 0x59, 0xf3, 0x99, 0x73, 0xf1, 0x4d, 0x6c,
0xac, 0x4a, 0x7e, 0x46, 0x0b, 0xd9, 0x08, 0x39, 0xf5, 0x28, 0xa7, 0xe6, 0x52, 0x2a, 0xd3, 0x34, 0xa8, 0x31, 0x1c, 0x63, 0x1a, 0xf0, 0x89, 0x55, 0x91, 0xfc, 0x9c, 0x16, 0xb2, 0x21, 0x72, 0xea,
0xb9, 0x06, 0xf5, 0xa1, 0x7f, 0x82, 0xde, 0xe0, 0x60, 0x66, 0xd6, 0xa4, 0xac, 0x26, 0xe9, 0x07, 0x53, 0x4e, 0xad, 0x85, 0x4c, 0xa6, 0x69, 0xb2, 0x0e, 0xb5, 0x41, 0x70, 0x82, 0x7e, 0xaf, 0x3f,
0x33, 0xf2, 0x21, 0x5c, 0xa1, 0xc3, 0x21, 0xba, 0x1c, 0xbd, 0xc1, 0x04, 0x13, 0x26, 0xda, 0x65, 0xb1, 0xaa, 0x52, 0x56, 0x95, 0xf4, 0xce, 0x84, 0xec, 0xc0, 0x15, 0x3a, 0x18, 0xa0, 0xc7, 0xd1,
0xd6, 0xb7, 0x16, 0xee, 0x34, 0xfb, 0x6b, 0x5d, 0xd5, 0xd6, 0xee, 0x23, 0xa4, 0x7c, 0x9c, 0xa0, 0xef, 0x8d, 0x31, 0x65, 0xa2, 0x60, 0xab, 0xb6, 0x39, 0x77, 0xbb, 0xde, 0xbd, 0xda, 0x2e, 0xf6,
0xb3, 0xa6, 0x55, 0xf7, 0x95, 0xa6, 0xfd, 0x9b, 0x01, 0x35, 0x25, 0xfd, 0x3f, 0xed, 0x30, 0xa1, 0xb6, 0xbd, 0x87, 0x94, 0x8f, 0x52, 0x74, 0x57, 0xb5, 0xfe, 0xbe, 0x52, 0x77, 0x7e, 0x32, 0xa0,
0xa6, 0x82, 0xab, 0x56, 0x68, 0x52, 0x38, 0x50, 0x9f, 0x83, 0x61, 0x94, 0x8c, 0x28, 0x57, 0x0d, 0xaa, 0xa4, 0xff, 0xa7, 0x27, 0x16, 0x54, 0x55, 0x06, 0xaa, 0x1f, 0x9a, 0x14, 0x0e, 0xd4, 0x67,
0x59, 0x56, 0xdc, 0x47, 0x92, 0x49, 0x3e, 0x81, 0xd5, 0x49, 0x6e, 0x36, 0x3e, 0x32, 0xb3, 0x2a, 0x6f, 0x10, 0xa7, 0x43, 0xca, 0x55, 0x57, 0x96, 0x14, 0x77, 0x4f, 0x32, 0xc9, 0x2e, 0xac, 0x8c,
0x8b, 0xe8, 0x64, 0x45, 0x14, 0x66, 0xe7, 0x9c, 0x56, 0xb7, 0x37, 0xa0, 0xfa, 0x84, 0xce, 0x30, 0x0b, 0x03, 0x0a, 0x90, 0x59, 0x15, 0x59, 0xc9, 0x46, 0xb9, 0x92, 0xd2, 0x14, 0xdd, 0x69, 0x1b,
0x11, 0x65, 0x1c, 0x51, 0x76, 0xa4, 0xcb, 0x10, 0xdf, 0xf6, 0x0f, 0x06, 0x34, 0x3f, 0x15, 0x7e, 0x67, 0x03, 0x2a, 0xcf, 0xe8, 0x04, 0x53, 0x51, 0xcb, 0x21, 0x65, 0x87, 0xba, 0x16, 0xf1, 0xed,
0x5e, 0x70, 0xca, 0xc7, 0x4c, 0xe4, 0x1b, 0xf8, 0x8c, 0x63, 0xc2, 0x4c, 0x63, 0x6b, 0x41, 0xe4, 0x7c, 0x6d, 0x40, 0xfd, 0x91, 0xf0, 0xf2, 0x92, 0x53, 0x3e, 0x62, 0x22, 0xe9, 0x30, 0x60, 0x1c,
0xab, 0x48, 0xb2, 0x09, 0x0d, 0x0f, 0x39, 0xba, 0x3c, 0x4a, 0x98, 0x59, 0x91, 0xb2, 0x39, 0x83, 0x53, 0x66, 0x19, 0x9b, 0x73, 0x22, 0x69, 0x45, 0x92, 0xeb, 0xb0, 0xe8, 0x23, 0x47, 0x8f, 0xc7,
0xec, 0xc1, 0x5a, 0x40, 0x19, 0x1f, 0x8c, 0x63, 0x8f, 0x72, 0x1c, 0x08, 0x88, 0xc9, 0x82, 0x9b, 0x29, 0xb3, 0x4c, 0x29, 0x3b, 0x65, 0x90, 0xc7, 0xb0, 0x1a, 0x52, 0xc6, 0x7b, 0xa3, 0xc4, 0xa7,
0x7d, 0xab, 0x9b, 0xe2, 0xaf, 0xab, 0xf1, 0xd7, 0xfd, 0x52, 0xe3, 0xcf, 0x59, 0x11, 0x36, 0x5f, 0x1c, 0x7b, 0x02, 0x8a, 0xb2, 0xea, 0x7a, 0xd7, 0x6e, 0x67, 0x30, 0x6c, 0x6b, 0x9c, 0xb6, 0x3f,
0x49, 0x13, 0xc1, 0xb4, 0x7f, 0x34, 0x80, 0x3c, 0x46, 0xbe, 0x1b, 0xba, 0xc8, 0x78, 0x32, 0x73, 0xd1, 0x38, 0x75, 0x97, 0x85, 0xcd, 0xa7, 0xd2, 0x44, 0x30, 0x9d, 0x6f, 0x0c, 0x20, 0x4f, 0x90,
0xf0, 0x9b, 0x31, 0x32, 0x4e, 0xde, 0x84, 0x65, 0xaa, 0x58, 0x83, 0xdc, 0x20, 0x5a, 0x9a, 0x29, 0x6f, 0x47, 0x1e, 0x32, 0x9e, 0x4e, 0x5c, 0xfc, 0x62, 0x84, 0x8c, 0x93, 0x77, 0x60, 0x89, 0x2a,
0x3b, 0xfd, 0x2e, 0xb4, 0xa7, 0x3e, 0x3f, 0x1a, 0x9c, 0xee, 0x96, 0x18, 0x4b, 0xdd, 0x59, 0x17, 0x56, 0xaf, 0x30, 0x8d, 0x86, 0x66, 0xca, 0x76, 0xdf, 0x83, 0xd6, 0x71, 0xc0, 0x0f, 0x7b, 0xd3,
0xb2, 0xfd, 0xa2, 0x48, 0xf8, 0x95, 0x26, 0xc3, 0x74, 0xce, 0x4c, 0x66, 0x5c, 0x77, 0x5a, 0x82, 0x2d, 0x13, 0xb3, 0xa9, 0xb9, 0x4d, 0x21, 0xdb, 0x2f, 0x8b, 0x84, 0x5f, 0x69, 0x32, 0xc8, 0x86,
0xa9, 0x66, 0xcf, 0xec, 0x57, 0x15, 0x58, 0x2f, 0xe4, 0xc4, 0xe2, 0x28, 0x64, 0x48, 0x76, 0xa1, 0xcd, 0x64, 0xc6, 0x35, 0xb7, 0x21, 0x98, 0x0a, 0x00, 0xcc, 0xf9, 0xd3, 0x84, 0x66, 0x29, 0x27,
0xae, 0xe3, 0xcb, 0x7c, 0x9a, 0xfd, 0x5b, 0xd9, 0x44, 0x4a, 0xf4, 0xbb, 0x19, 0x23, 0x33, 0x23, 0x96, 0xc4, 0x11, 0x43, 0xb2, 0x07, 0x35, 0x1d, 0x5f, 0xe6, 0x53, 0xef, 0xde, 0x29, 0x8f, 0x65,
0xf7, 0x60, 0x89, 0xc9, 0xb6, 0xcb, 0x24, 0x9b, 0xfd, 0x76, 0xe6, 0x20, 0x37, 0x12, 0x47, 0xe9, 0x86, 0x51, 0x3b, 0x67, 0xe4, 0xb6, 0xe4, 0x1e, 0x2c, 0x30, 0xd9, 0x7b, 0x99, 0x69, 0xbd, 0xbb,
0x58, 0x7f, 0x18, 0x50, 0xd7, 0x4e, 0x4a, 0x21, 0x79, 0x0f, 0xea, 0x59, 0x25, 0x95, 0x73, 0x80, 0x5e, 0xf6, 0x52, 0x18, 0x8e, 0xab, 0x14, 0xed, 0x5f, 0x0d, 0xa8, 0x69, 0x4f, 0x33, 0x11, 0x7a,
0x9e, 0x69, 0x90, 0xdb, 0xb0, 0x14, 0x08, 0x58, 0x88, 0xaa, 0x85, 0xee, 0x4a, 0xa6, 0x2b, 0xd1, 0x0f, 0x6a, 0x79, 0x4d, 0xe6, 0x79, 0xe0, 0xcf, 0xd5, 0xc8, 0x5d, 0x58, 0x08, 0x05, 0x4a, 0x44,
0xe2, 0x28, 0x29, 0x79, 0x0b, 0x56, 0x99, 0x4b, 0xc3, 0x10, 0xbd, 0x81, 0x46, 0xc6, 0xa2, 0x9c, 0x13, 0x84, 0x41, 0xb3, 0x6c, 0x20, 0x11, 0xe4, 0x2a, 0x15, 0x72, 0x0b, 0x56, 0x98, 0x47, 0xa3,
0xfe, 0x8a, 0x62, 0x3f, 0x51, 0x00, 0x79, 0x1b, 0xae, 0x68, 0xc5, 0x39, 0x50, 0xaa, 0x52, 0x75, 0x08, 0xfd, 0x9e, 0x46, 0xcb, 0xbc, 0x44, 0xc4, 0xb2, 0x62, 0x3f, 0x53, 0xa0, 0xb9, 0x0b, 0x57,
0x4d, 0x09, 0xf6, 0x34, 0x5f, 0x76, 0xf5, 0x79, 0xc4, 0xfe, 0xdb, 0xa8, 0x3b, 0xb0, 0xa4, 0x56, 0xb4, 0xe2, 0x29, 0x78, 0x2a, 0x52, 0x75, 0x55, 0x09, 0x1e, 0x6b, 0xbe, 0xf3, 0xbb, 0x09, 0xcd,
0x26, 0xdd, 0x39, 0x45, 0x91, 0x8f, 0x4e, 0x95, 0x74, 0x3b, 0x2b, 0xa9, 0x24, 0x94, 0xe4, 0x15, 0x17, 0x31, 0xfb, 0x6f, 0xe3, 0x5f, 0x83, 0x05, 0xb5, 0x4b, 0xd9, 0x32, 0x2a, 0x8a, 0x3c, 0x9a,
0x4a, 0xb5, 0x7e, 0x35, 0xa0, 0x91, 0x71, 0xcb, 0xd6, 0x45, 0xf0, 0x62, 0xca, 0x8f, 0x54, 0x5c, 0xaa, 0xeb, 0x6e, 0xb9, 0xae, 0x19, 0xf1, 0x24, 0xaf, 0x54, 0xaf, 0xfd, 0xa3, 0x01, 0x8b, 0x39,
0xf9, 0x4d, 0x9e, 0x42, 0xed, 0x08, 0xa9, 0x37, 0x0f, 0xbb, 0xfd, 0x7a, 0x61, 0xbb, 0x9f, 0xa5, 0x77, 0xd6, 0x1e, 0x09, 0x5e, 0x42, 0xf9, 0xa1, 0x0a, 0x2e, 0xbf, 0x89, 0x0b, 0xd5, 0x43, 0xa4,
0x56, 0x0f, 0x43, 0x21, 0xd5, 0x3e, 0xac, 0x1d, 0x68, 0xe5, 0x05, 0x64, 0x0d, 0x16, 0x8e, 0x71, 0xfe, 0x69, 0xec, 0x07, 0x6f, 0x10, 0xbb, 0xfd, 0x51, 0x66, 0xba, 0x1b, 0x09, 0xa9, 0x76, 0x64,
0xa6, 0xb2, 0x10, 0x9f, 0xa4, 0x0d, 0xd5, 0x09, 0x0d, 0xc6, 0xfa, 0xc5, 0x49, 0x89, 0x9d, 0xca, 0x3f, 0x84, 0x46, 0x51, 0x40, 0x56, 0x61, 0xee, 0x08, 0x27, 0x2a, 0x15, 0xf1, 0x49, 0x5a, 0x50,
0xfb, 0x86, 0xbd, 0x07, 0xed, 0x62, 0x48, 0x85, 0xd5, 0x39, 0xd0, 0x8c, 0xcb, 0x81, 0x66, 0xff, 0x19, 0xd3, 0x70, 0xa4, 0x1f, 0xa5, 0x8c, 0x78, 0x68, 0x3e, 0x30, 0x9c, 0xa7, 0xd0, 0x2a, 0x87,
0x62, 0x40, 0xe7, 0x31, 0xf2, 0x67, 0x11, 0xf7, 0x87, 0xbe, 0x2b, 0x0f, 0x8d, 0x1e, 0xcf, 0x7d, 0x54, 0x48, 0x3e, 0x45, 0xa0, 0x71, 0x49, 0x04, 0x3a, 0x3f, 0x18, 0xb0, 0xf6, 0x04, 0xf9, 0xf3,
0xe8, 0x44, 0x81, 0x57, 0xd8, 0xb1, 0xd9, 0x20, 0xa6, 0x87, 0x7a, 0x4e, 0xed, 0x28, 0xf0, 0x0a, 0x98, 0x07, 0x83, 0xc0, 0x93, 0x77, 0x45, 0x4f, 0xeb, 0x3d, 0x58, 0x8b, 0x43, 0xbf, 0xb4, 0x86,
0xcf, 0xd1, 0x73, 0x7a, 0x88, 0xc2, 0x2a, 0xc4, 0x69, 0x99, 0x55, 0x5a, 0x41, 0x3b, 0xc4, 0xe9, 0x93, 0x5e, 0x42, 0x0f, 0xf4, 0xd8, 0x5a, 0x71, 0xe8, 0x97, 0x5e, 0xac, 0x17, 0xf4, 0x00, 0x85,
0x59, 0xab, 0x36, 0x54, 0x03, 0x7f, 0xe4, 0x73, 0xb9, 0x95, 0x55, 0x27, 0x25, 0x32, 0xe0, 0x2f, 0x55, 0x84, 0xc7, 0xb3, 0xac, 0xb2, 0x32, 0x5a, 0x11, 0x1e, 0x9f, 0xb5, 0x6a, 0x41, 0x25, 0x0c,
0xce, 0x81, 0x6f, 0xff, 0x59, 0x81, 0xab, 0x67, 0x12, 0x56, 0xa5, 0x7f, 0x01, 0xad, 0x30, 0xc7, 0x86, 0x01, 0x97, 0x8b, 0x5b, 0x71, 0x33, 0x22, 0xdf, 0x88, 0xf9, 0xd3, 0x8d, 0x70, 0x7e, 0x33,
0x57, 0x0d, 0x78, 0x27, 0xbf, 0xaa, 0x65, 0x76, 0xdd, 0x02, 0xb3, 0xe0, 0xc2, 0xfa, 0xcb, 0x80, 0xe1, 0xda, 0x99, 0x84, 0x55, 0xfd, 0xfb, 0xd0, 0x88, 0x0a, 0x7c, 0xd5, 0x85, 0xee, 0x99, 0x6d,
0x56, 0x5e, 0x5c, 0xba, 0x8c, 0x26, 0xd4, 0xdc, 0x04, 0x29, 0x47, 0x4f, 0x15, 0xa9, 0x49, 0x71, 0x9e, 0x65, 0xdc, 0x2e, 0x31, 0x4b, 0x7e, 0xec, 0xbf, 0x0c, 0x68, 0x14, 0xc5, 0x33, 0x57, 0xd5,
0xcf, 0x52, 0x77, 0xe8, 0xa9, 0x9b, 0x90, 0xd1, 0xc2, 0xca, 0xc3, 0x00, 0x85, 0x55, 0x5a, 0xa0, 0x82, 0xaa, 0x97, 0x22, 0xe5, 0xe8, 0xab, 0x4a, 0x35, 0x29, 0x2e, 0x60, 0xe6, 0x0e, 0x7d, 0x75,
0x26, 0xc9, 0x7d, 0x58, 0x88, 0x02, 0x4f, 0x1e, 0xc7, 0x66, 0xdf, 0x9e, 0x23, 0x8c, 0x1e, 0x62, 0x40, 0x72, 0x5a, 0x58, 0xf9, 0x18, 0xa2, 0xb0, 0xca, 0xaa, 0xd4, 0x24, 0x79, 0x1f, 0xe6, 0xe2,
0xd6, 0xf1, 0x00, 0xd5, 0xe4, 0x7d, 0x64, 0x8e, 0x50, 0x17, 0x56, 0x21, 0x4e, 0xe5, 0xd9, 0x7c, 0xd0, 0x97, 0xe7, 0xb4, 0xde, 0xbd, 0x35, 0x05, 0x38, 0x7a, 0x80, 0x79, 0xef, 0x43, 0x54, 0x40,
0x4d, 0xab, 0x10, 0xa7, 0xf6, 0xef, 0x15, 0xb8, 0x76, 0xae, 0x0a, 0xb9, 0x09, 0x2d, 0x77, 0x9c, 0x08, 0x90, 0xb9, 0xc2, 0x46, 0x98, 0x46, 0x78, 0x2c, 0xaf, 0xed, 0x9b, 0x98, 0x46, 0x78, 0xec,
0x24, 0x18, 0xf2, 0xfc, 0xe4, 0x9b, 0x8a, 0x27, 0x47, 0xb7, 0x01, 0x8d, 0x10, 0x4f, 0x78, 0x7e, 0xfc, 0x6c, 0xc2, 0xfa, 0xbf, 0xaa, 0x90, 0x2d, 0x68, 0x78, 0xa3, 0x34, 0xc5, 0x88, 0x17, 0x81,
0xc6, 0x75, 0xc1, 0xb8, 0x60, 0xae, 0x1f, 0xc0, 0x72, 0x01, 0x1f, 0xb2, 0xfe, 0xf3, 0xaf, 0x5c, 0x50, 0x57, 0x3c, 0x39, 0xc9, 0x0d, 0x58, 0x8c, 0xf0, 0x84, 0x17, 0x47, 0x5e, 0x13, 0x8c, 0x73,
0x51, 0x99, 0xec, 0x03, 0xd0, 0x2c, 0x43, 0x75, 0x20, 0xdf, 0xbb, 0xbc, 0xdc, 0xee, 0xe7, 0xa1, 0xc6, 0xbc, 0x0d, 0x4b, 0x25, 0xb8, 0xc8, 0x4e, 0x5c, 0x70, 0x1c, 0xcb, 0x16, 0xe4, 0x73, 0x00,
0x87, 0x27, 0xe8, 0xed, 0xe6, 0x5e, 0x17, 0x27, 0xe7, 0xc9, 0xfa, 0x18, 0xd6, 0x4b, 0x54, 0x44, 0x9a, 0xa7, 0xa9, 0x8e, 0xeb, 0x07, 0x97, 0x2c, 0xbc, 0xfd, 0x34, 0xf2, 0xf1, 0x04, 0xfd, 0xed,
0x09, 0xbe, 0x60, 0xcb, 0xda, 0xab, 0x4e, 0x4a, 0x64, 0x30, 0xa8, 0xe4, 0xa0, 0xb9, 0x0d, 0xd7, 0xc2, 0x2b, 0xe4, 0x16, 0xdc, 0xd9, 0x1f, 0x42, 0x73, 0x86, 0x8a, 0x28, 0x26, 0x10, 0x6c, 0xd9,
0x9f, 0xd2, 0xe4, 0x38, 0x0f, 0x97, 0x5d, 0xe6, 0x20, 0xf5, 0xf4, 0x46, 0x95, 0x60, 0xa7, 0xff, 0x85, 0x8a, 0x9b, 0x11, 0x39, 0x34, 0xcc, 0x02, 0x66, 0xef, 0xc3, 0x8d, 0x8f, 0x69, 0x7a, 0x54,
0xb7, 0x01, 0xab, 0x3a, 0xde, 0x0b, 0x4c, 0x26, 0xbe, 0x8b, 0xe4, 0x18, 0x9a, 0xb9, 0xab, 0x42, 0x84, 0xd0, 0x36, 0x73, 0x91, 0xfa, 0x7a, 0xd5, 0x66, 0xe0, 0xa9, 0xfb, 0xb7, 0x01, 0x2b, 0x3a,
0x36, 0xca, 0x6f, 0x8d, 0xf4, 0x69, 0x6d, 0x5e, 0x74, 0x88, 0xec, 0x9b, 0xdf, 0xbd, 0xfa, 0xe7, 0xde, 0x4b, 0x4c, 0xc7, 0x81, 0x87, 0x64, 0x04, 0xf5, 0xc2, 0x31, 0x22, 0x9b, 0xe7, 0xdc, 0x29,
0xe7, 0xca, 0x06, 0xb9, 0xd6, 0xd3, 0x8f, 0x6a, 0xef, 0x65, 0xe1, 0xcd, 0xfd, 0x96, 0x50, 0x68, 0xe9, 0xd8, 0xde, 0xba, 0xf0, 0x92, 0x39, 0x5b, 0x5f, 0xfd, 0xf2, 0xc7, 0x77, 0xe6, 0x06, 0x59,
0xe5, 0xdf, 0x11, 0xb2, 0x79, 0xd1, 0x8b, 0x66, 0x5d, 0x3f, 0x47, 0xaa, 0xe2, 0xb5, 0x65, 0xbc, 0xef, 0xe8, 0x67, 0xb8, 0xf3, 0xaa, 0xf4, 0x4a, 0xbf, 0x26, 0x47, 0xd0, 0x28, 0xbe, 0x37, 0x64,
0x15, 0xbb, 0x91, 0xc5, 0xdb, 0x31, 0xee, 0xf6, 0xbf, 0xaf, 0xc0, 0x7a, 0xbe, 0x2b, 0xba, 0x4e, 0xeb, 0xc2, 0xe7, 0xcf, 0x76, 0xce, 0x53, 0x51, 0x91, 0x5b, 0x32, 0xf2, 0xb2, 0xb3, 0x98, 0x47,
0x06, 0xab, 0xa7, 0x56, 0x92, 0xdc, 0x38, 0x7f, 0x59, 0xd3, 0x04, 0xb6, 0x2e, 0xdb, 0x66, 0xfb, 0x7e, 0x68, 0xdc, 0xe9, 0x7e, 0x6b, 0x42, 0xb3, 0xd8, 0x29, 0x5d, 0xfb, 0x6b, 0x58, 0x99, 0x5a,
0xba, 0xcc, 0xe1, 0x2a, 0x79, 0xa3, 0x97, 0xdf, 0x64, 0xd6, 0x7b, 0x99, 0xd6, 0x3b, 0x85, 0x4e, 0x5d, 0xf2, 0xee, 0x05, 0x9b, 0x9d, 0xa5, 0x72, 0xf3, 0x52, 0xfb, 0xef, 0xdc, 0x90, 0xd9, 0x5c,
0xf9, 0x94, 0xc8, 0xfc, 0x84, 0x5c, 0x38, 0x46, 0xab, 0x73, 0xe6, 0x5f, 0xce, 0x43, 0xf1, 0x17, 0x23, 0x57, 0x3b, 0xc5, 0xdd, 0x67, 0x9d, 0x57, 0x59, 0x0f, 0xbe, 0x84, 0xb5, 0xd9, 0x33, 0x24,
0x5c, 0x07, 0xbe, 0x5b, 0x1e, 0xf8, 0x41, 0xe3, 0x6b, 0xfd, 0x0f, 0xff, 0x60, 0x49, 0x5a, 0x6e, 0x53, 0x87, 0xe8, 0xdc, 0x49, 0xdb, 0x6b, 0x67, 0xfe, 0x89, 0xda, 0x15, 0xbf, 0x04, 0x74, 0xf4,
0xff, 0x1b, 0x00, 0x00, 0xff, 0xff, 0xbb, 0xee, 0xb6, 0xdc, 0x0f, 0x0c, 0x00, 0x00, 0x3b, 0xb3, 0xa3, 0xef, 0xbc, 0x05, 0x4d, 0x2f, 0x1e, 0x96, 0x03, 0x25, 0xfd, 0xcf, 0xaa, 0xea,
0x97, 0x47, 0x7f, 0x41, 0xba, 0xbb, 0xff, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xfd, 0xb6, 0x68,
0xf9, 0x92, 0x0c, 0x00, 0x00,
} }

@ -13,37 +13,33 @@
// limitations under the License. // limitations under the License.
syntax = "proto3"; syntax = "proto3";
option go_package = "clairpb";
package clairpb;
import "google/api/annotations.proto";
import "google/protobuf/empty.proto"; import "google/protobuf/empty.proto";
import "google/protobuf/timestamp.proto"; import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
package coreos.clair;
option go_package = "clairpb";
option java_package = "com.coreos.clair.pb";
message Vulnerability { message Vulnerability {
// The name of the vulnerability. // The name of the vulnerability.
string name = 1; string name = 1;
// The name of the namespace in which the vulnerability was detected. // The name of the namespace in which the vulnerability was detected.
string namespace_name = 2; string namespace_name = 2;
// A description of the vulnerability according to the source for the namespace. // A description of the vulnerability according to the source for the namespace.
string description = 3; string description = 3;
// A link to the vulnerability according to the source for the namespace. // A link to the vulnerability according to the source for the namespace.
string link = 4; string link = 4;
// How dangerous the vulnerability is. // How dangerous the vulnerability is.
string severity = 5; string severity = 5;
// Namespace agnostic metadata about the vulnerability. // Namespace agnostic metadata about the vulnerability.
string metadata = 6; string metadata = 6;
// The feature that fixes this vulnerability. // The feature that fixes this vulnerability.
// This field only exists when a vulnerability is a part of a Feature. // This field only exists when a vulnerability is a part of a Feature.
string fixed_by = 7; string fixed_by = 7;
// The Features that are affected by the vulnerability. // The Features that are affected by the vulnerability.
// This field only exists when a vulnerability is a part of a Notification. // This field only exists when a vulnerability is a part of a Notification.
repeated Feature affected_versions = 8; repeated Feature affected_versions = 8;
@ -52,21 +48,17 @@ message Vulnerability {
message Feature { message Feature {
// The name of the feature. // The name of the feature.
string name = 1; string name = 1;
// The name of the namespace in which the feature is detected. // The name of the namespace in which the feature is detected.
string namespace_name = 2; string namespace_name = 2;
// The specific version of this feature. // The specific version of this feature.
string version = 3; string version = 3;
// The format used to parse version numbers for the feature. // The format used to parse version numbers for the feature.
string version_format = 4; string version_format = 4;
// The list of vulnerabilities that affect the feature. // The list of vulnerabilities that affect the feature.
repeated Vulnerability vulnerabilities = 5; repeated Vulnerability vulnerabilities = 5;
} }
message Layer { message Layer {
// The sha256 tarsum for the layer. // The sha256 tarsum for the layer.
string hash = 1; string hash = 1;
} }
@ -74,11 +66,8 @@ message Layer {
service AncestryService { service AncestryService {
// The RPC used to read the results of scanning for a particular ancestry. // The RPC used to read the results of scanning for a particular ancestry.
rpc GetAncestry(GetAncestryRequest) returns (GetAncestryResponse) { rpc GetAncestry(GetAncestryRequest) returns (GetAncestryResponse) {
option (google.api.http) = { option (google.api.http) = { get: "/ancestry/{ancestry_name}" };
get: "/ancestry/{ancestry_name}"
};
} }
// The RPC used to create a new scan of an ancestry. // The RPC used to create a new scan of an ancestry.
rpc PostAncestry(PostAncestryRequest) returns (PostAncestryResponse) { rpc PostAncestry(PostAncestryRequest) returns (PostAncestryResponse) {
option (google.api.http) = { option (google.api.http) = {
@ -91,10 +80,8 @@ service AncestryService {
message ClairStatus { message ClairStatus {
// The configured list of feature listers used to scan an ancestry. // The configured list of feature listers used to scan an ancestry.
repeated string listers = 1; repeated string listers = 1;
// The configured list of namespace detectors used to scan an ancestry. // The configured list of namespace detectors used to scan an ancestry.
repeated string detectors = 2; repeated string detectors = 2;
// The time at which the updater last ran. // The time at which the updater last ran.
google.protobuf.Timestamp last_update_time = 3; google.protobuf.Timestamp last_update_time = 3;
} }
@ -102,10 +89,8 @@ message ClairStatus {
message GetAncestryRequest { message GetAncestryRequest {
// The name of the desired ancestry. // The name of the desired ancestry.
string ancestry_name = 1; string ancestry_name = 1;
// Whether to include vulnerabilities or not in the response. // Whether to include vulnerabilities or not in the response.
bool with_vulnerabilities = 2; bool with_vulnerabilities = 2;
// Whether to include features or not in the response. // Whether to include features or not in the response.
bool with_features = 3; bool with_features = 3;
} }
@ -114,69 +99,53 @@ message GetAncestryResponse {
message Ancestry { message Ancestry {
// The name of the desired ancestry. // The name of the desired ancestry.
string name = 1; string name = 1;
// The list of features present in the ancestry. // The list of features present in the ancestry.
// This will only be provided if requested. // This will only be provided if requested.
repeated Feature features = 2; repeated Feature features = 2;
// The layers present in the ancestry. // The layers present in the ancestry.
repeated Layer layers = 3; repeated Layer layers = 3;
// The configured list of feature listers used to scan this ancestry. // The configured list of feature listers used to scan this ancestry.
repeated string scanned_listers = 4; repeated string scanned_listers = 4;
// The configured list of namespace detectors used to scan an ancestry. // The configured list of namespace detectors used to scan an ancestry.
repeated string scanned_detectors = 5; repeated string scanned_detectors = 5;
} }
// The ancestry requested. // The ancestry requested.
Ancestry ancestry = 1; Ancestry ancestry = 1;
// The status of Clair at the time of the request. // The status of Clair at the time of the request.
ClairStatus status = 2; ClairStatus status = 2;
} }
message PostAncestryRequest { message PostAncestryRequest {
message PostLayer { message PostLayer {
// The hash of the layer. // The hash of the layer.
string hash = 1; string hash = 1;
// The location of the layer (URL or filepath). // The location of the layer (URL or filepath).
string path = 2; string path = 2;
// Any HTTP Headers that need to be used if requesting a layer over HTTP(S).
// Any HTTP Headers that need to be used if requesting a layer over HTTP(S). map<string, string> headers = 3;
map<string, string> headers = 3; }
}
// The name of the ancestry being scanned. // The name of the ancestry being scanned.
// If scanning OCI images, this should be the hash of the manifest. // If scanning OCI images, this should be the hash of the manifest.
string ancestry_name = 1; string ancestry_name = 1;
// The format of the image being uploaded. // The format of the image being uploaded.
string format = 2; string format = 2;
// The layers to be scanned for this particular ancestry. // The layers to be scanned for this particular ancestry.
repeated PostLayer layers = 3; repeated PostLayer layers = 3;
} }
message PostAncestryResponse { message PostAncestryResponse {
// The status of Clair at the time of the request. // The status of Clair at the time of the request.
ClairStatus status = 1; ClairStatus status = 1;
} }
service NotificationService { service NotificationService {
// The RPC used to get a particularly Notification. // The RPC used to get a particularly Notification.
rpc GetNotification(GetNotificationRequest) returns (GetNotificationResponse) { rpc GetNotification(GetNotificationRequest) returns (GetNotificationResponse) {
option (google.api.http) = { option (google.api.http) = { get: "/notifications/{name}" };
get: "/notifications/{name}"
};
} }
// The RPC used to mark a Notification as read after it has been processed. // The RPC used to mark a Notification as read after it has been processed.
rpc MarkNotificationAsRead(MarkNotificationAsReadRequest) returns (google.protobuf.Empty) { rpc MarkNotificationAsRead(MarkNotificationAsReadRequest) returns (google.protobuf.Empty) {
option (google.api.http) = { option (google.api.http) = { delete: "/notifications/{name}" };
delete: "/notifications/{name}"
};
} }
} }
@ -184,14 +153,11 @@ message GetNotificationRequest {
// The current page of previous vulnerabilities for the ancestry. // The current page of previous vulnerabilities for the ancestry.
// This will be empty when it is the first page. // This will be empty when it is the first page.
string old_vulnerability_page = 1; string old_vulnerability_page = 1;
// The current page of vulnerabilities for the ancestry. // The current page of vulnerabilities for the ancestry.
// This will be empty when it is the first page. // This will be empty when it is the first page.
string new_vulnerability_page = 2; string new_vulnerability_page = 2;
// The requested maximum number of results per page. // The requested maximum number of results per page.
int32 limit = 3; int32 limit = 3;
// The name of the notification being requested. // The name of the notification being requested.
string name = 4; string name = 4;
} }
@ -200,23 +166,17 @@ message GetNotificationResponse {
message Notification { message Notification {
// The name of the requested notification. // The name of the requested notification.
string name = 1; string name = 1;
// The time at which the notification was created. // The time at which the notification was created.
string created = 2; string created = 2;
// The time at which the notification was last sent out. // The time at which the notification was last sent out.
string notified = 3; string notified = 3;
// The time at which a notification has been deleted. // The time at which a notification has been deleted.
string deleted = 4; string deleted = 4;
// The previous vulnerability and a paginated view of the ancestries it affects. // The previous vulnerability and a paginated view of the ancestries it affects.
PagedVulnerableAncestries old = 5; PagedVulnerableAncestries old = 5;
// The newly updated vulnerability and a paginated view of the ancestries it affects. // The newly updated vulnerability and a paginated view of the ancestries it affects.
PagedVulnerableAncestries new = 6; PagedVulnerableAncestries new = 6;
} }
// The notification as requested. // The notification as requested.
Notification notification = 1; Notification notification = 1;
} }
@ -226,24 +186,18 @@ message PagedVulnerableAncestries {
// The index is an ever increasing number associated with the particular ancestry. // The index is an ever increasing number associated with the particular ancestry.
// This is useful if you're processing notifications, and need to keep track of the progress of paginating the results. // This is useful if you're processing notifications, and need to keep track of the progress of paginating the results.
int32 index = 1; int32 index = 1;
// The name of the ancestry. // The name of the ancestry.
string name = 2; string name = 2;
} }
// The identifier for the current page. // The identifier for the current page.
string current_page = 1; string current_page = 1;
// The token used to request the next page. // The token used to request the next page.
// This will be empty when there are no more pages. // This will be empty when there are no more pages.
string next_page = 2; string next_page = 2;
// The requested maximum number of results per page. // The requested maximum number of results per page.
int32 limit = 3; int32 limit = 3;
// The vulnerability that affects a given set of ancestries. // The vulnerability that affects a given set of ancestries.
Vulnerability vulnerability = 4; Vulnerability vulnerability = 4;
// The ancestries affected by a vulnerability. // The ancestries affected by a vulnerability.
repeated IndexedAncestryName ancestries = 5; repeated IndexedAncestryName ancestries = 5;
} }

@ -23,7 +23,7 @@
"200": { "200": {
"description": "", "description": "",
"schema": { "schema": {
"$ref": "#/definitions/clairpbPostAncestryResponse" "$ref": "#/definitions/clairPostAncestryResponse"
} }
} }
}, },
@ -33,7 +33,7 @@
"in": "body", "in": "body",
"required": true, "required": true,
"schema": { "schema": {
"$ref": "#/definitions/clairpbPostAncestryRequest" "$ref": "#/definitions/clairPostAncestryRequest"
} }
} }
], ],
@ -50,7 +50,7 @@
"200": { "200": {
"description": "", "description": "",
"schema": { "schema": {
"$ref": "#/definitions/clairpbGetAncestryResponse" "$ref": "#/definitions/clairGetAncestryResponse"
} }
} }
}, },
@ -91,7 +91,7 @@
"200": { "200": {
"description": "", "description": "",
"schema": { "schema": {
"$ref": "#/definitions/clairpbGetNotificationResponse" "$ref": "#/definitions/clairGetNotificationResponse"
} }
} }
}, },
@ -165,14 +165,14 @@
"features": { "features": {
"type": "array", "type": "array",
"items": { "items": {
"$ref": "#/definitions/clairpbFeature" "$ref": "#/definitions/clairFeature"
}, },
"description": "The list of features present in the ancestry.\nThis will only be provided if requested." "description": "The list of features present in the ancestry.\nThis will only be provided if requested."
}, },
"layers": { "layers": {
"type": "array", "type": "array",
"items": { "items": {
"$ref": "#/definitions/clairpbLayer" "$ref": "#/definitions/clairLayer"
}, },
"description": "The layers present in the ancestry." "description": "The layers present in the ancestry."
}, },
@ -212,11 +212,11 @@
"description": "The time at which a notification has been deleted." "description": "The time at which a notification has been deleted."
}, },
"old": { "old": {
"$ref": "#/definitions/clairpbPagedVulnerableAncestries", "$ref": "#/definitions/clairPagedVulnerableAncestries",
"description": "The previous vulnerability and a paginated view of the ancestries it affects." "description": "The previous vulnerability and a paginated view of the ancestries it affects."
}, },
"new": { "new": {
"$ref": "#/definitions/clairpbPagedVulnerableAncestries", "$ref": "#/definitions/clairPagedVulnerableAncestries",
"description": "The newly updated vulnerability and a paginated view of the ancestries it affects." "description": "The newly updated vulnerability and a paginated view of the ancestries it affects."
} }
} }
@ -255,7 +255,7 @@
} }
} }
}, },
"clairpbClairStatus": { "clairClairStatus": {
"type": "object", "type": "object",
"properties": { "properties": {
"listers": { "listers": {
@ -279,7 +279,7 @@
} }
} }
}, },
"clairpbFeature": { "clairFeature": {
"type": "object", "type": "object",
"properties": { "properties": {
"name": { "name": {
@ -301,13 +301,13 @@
"vulnerabilities": { "vulnerabilities": {
"type": "array", "type": "array",
"items": { "items": {
"$ref": "#/definitions/clairpbVulnerability" "$ref": "#/definitions/clairVulnerability"
}, },
"description": "The list of vulnerabilities that affect the feature." "description": "The list of vulnerabilities that affect the feature."
} }
} }
}, },
"clairpbGetAncestryResponse": { "clairGetAncestryResponse": {
"type": "object", "type": "object",
"properties": { "properties": {
"ancestry": { "ancestry": {
@ -315,12 +315,12 @@
"description": "The ancestry requested." "description": "The ancestry requested."
}, },
"status": { "status": {
"$ref": "#/definitions/clairpbClairStatus", "$ref": "#/definitions/clairClairStatus",
"description": "The status of Clair at the time of the request." "description": "The status of Clair at the time of the request."
} }
} }
}, },
"clairpbGetNotificationResponse": { "clairGetNotificationResponse": {
"type": "object", "type": "object",
"properties": { "properties": {
"notification": { "notification": {
@ -329,7 +329,7 @@
} }
} }
}, },
"clairpbLayer": { "clairLayer": {
"type": "object", "type": "object",
"properties": { "properties": {
"hash": { "hash": {
@ -338,7 +338,7 @@
} }
} }
}, },
"clairpbPagedVulnerableAncestries": { "clairPagedVulnerableAncestries": {
"type": "object", "type": "object",
"properties": { "properties": {
"current_page": { "current_page": {
@ -355,7 +355,7 @@
"description": "The requested maximum number of results per page." "description": "The requested maximum number of results per page."
}, },
"vulnerability": { "vulnerability": {
"$ref": "#/definitions/clairpbVulnerability", "$ref": "#/definitions/clairVulnerability",
"description": "The vulnerability that affects a given set of ancestries." "description": "The vulnerability that affects a given set of ancestries."
}, },
"ancestries": { "ancestries": {
@ -367,7 +367,7 @@
} }
} }
}, },
"clairpbPostAncestryRequest": { "clairPostAncestryRequest": {
"type": "object", "type": "object",
"properties": { "properties": {
"ancestry_name": { "ancestry_name": {
@ -387,16 +387,16 @@
} }
} }
}, },
"clairpbPostAncestryResponse": { "clairPostAncestryResponse": {
"type": "object", "type": "object",
"properties": { "properties": {
"status": { "status": {
"$ref": "#/definitions/clairpbClairStatus", "$ref": "#/definitions/clairClairStatus",
"description": "The status of Clair at the time of the request." "description": "The status of Clair at the time of the request."
} }
} }
}, },
"clairpbVulnerability": { "clairVulnerability": {
"type": "object", "type": "object",
"properties": { "properties": {
"name": { "name": {
@ -430,7 +430,7 @@
"affected_versions": { "affected_versions": {
"type": "array", "type": "array",
"items": { "items": {
"$ref": "#/definitions/clairpbFeature" "$ref": "#/definitions/clairFeature"
}, },
"description": "The Features that are affected by the vulnerability.\nThis field only exists when a vulnerability is a part of a Notification." "description": "The Features that are affected by the vulnerability.\nThis field only exists when a vulnerability is a part of a Notification."
} }

@ -0,0 +1,3 @@
protoc_version: 3.5.1
protoc_includes:
- ../../../vendor/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis
Loading…
Cancel
Save