diff --git a/go/github.com/jupyter-naas/naas-models/go/asset/asset.pb.go b/go/github.com/jupyter-naas/naas-models/go/asset/asset.pb.go index 087ae6c..133f428 100644 --- a/go/github.com/jupyter-naas/naas-models/go/asset/asset.pb.go +++ b/go/github.com/jupyter-naas/naas-models/go/asset/asset.pb.go @@ -27,8 +27,8 @@ type AssetError int32 const ( AssetError_ASSET_NO_ERROR AssetError = 0 AssetError_ASSET_NOT_FOUND AssetError = 1 - AssetError_ASSET_PARAMETER_ERROR AssetError = 2 - AssetError_ASSET_ALREADY_EXISTS AssetError = 3 + AssetError_ASSET_ALREADY_EXISTS AssetError = 2 + AssetError_ASSET_REQUEST_ERROR AssetError = 3 AssetError_INTERNAL_SERVER_ERROR AssetError = 1000 ) @@ -37,15 +37,15 @@ var ( AssetError_name = map[int32]string{ 0: "ASSET_NO_ERROR", 1: "ASSET_NOT_FOUND", - 2: "ASSET_PARAMETER_ERROR", - 3: "ASSET_ALREADY_EXISTS", + 2: "ASSET_ALREADY_EXISTS", + 3: "ASSET_REQUEST_ERROR", 1000: "INTERNAL_SERVER_ERROR", } AssetError_value = map[string]int32{ "ASSET_NO_ERROR": 0, "ASSET_NOT_FOUND": 1, - "ASSET_PARAMETER_ERROR": 2, - "ASSET_ALREADY_EXISTS": 3, + "ASSET_ALREADY_EXISTS": 2, + "ASSET_REQUEST_ERROR": 3, "INTERNAL_SERVER_ERROR": 1000, } ) @@ -83,21 +83,21 @@ type Asset struct { unknownFields protoimpl.UnknownFields Id *string `protobuf:"bytes,1,opt,name=id,proto3,oneof" json:"id,omitempty"` - Url *string `protobuf:"bytes,2,opt,name=url,proto3,oneof" json:"url,omitempty"` - WorkspaceId *string `protobuf:"bytes,3,opt,name=workspace_id,json=workspaceId,proto3,oneof" json:"workspace_id,omitempty"` - StorageName *string `protobuf:"bytes,4,opt,name=storage_name,json=storageName,proto3,oneof" json:"storage_name,omitempty"` - Prefix *string `protobuf:"bytes,5,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` - ObjectName *string `protobuf:"bytes,6,opt,name=object_name,json=objectName,proto3,oneof" json:"object_name,omitempty"` - VersionId *string `protobuf:"bytes,7,opt,name=version_id,json=versionId,proto3,oneof" json:"version_id,omitempty"` - UserId *string `protobuf:"bytes,8,opt,name=user_id,json=userId,proto3,oneof" json:"user_id,omitempty"` - Password *string `protobuf:"bytes,9,opt,name=password,proto3,oneof" json:"password,omitempty"` - Provider *string `protobuf:"bytes,10,opt,name=provider,proto3,oneof" json:"provider,omitempty"` - ProviderBucketName *string `protobuf:"bytes,11,opt,name=provider_bucket_name,json=providerBucketName,proto3,oneof" json:"provider_bucket_name,omitempty"` + ObjectName *string `protobuf:"bytes,2,opt,name=object_name,json=objectName,proto3,oneof" json:"object_name,omitempty"` + Visibility *string `protobuf:"bytes,3,opt,name=visibility,proto3,oneof" json:"visibility,omitempty"` + ContentDisposition *string `protobuf:"bytes,4,opt,name=content_disposition,json=contentDisposition,proto3,oneof" json:"content_disposition,omitempty"` + Password *string `protobuf:"bytes,5,opt,name=password,proto3,oneof" json:"password,omitempty"` + Url *string `protobuf:"bytes,6,opt,name=url,proto3,oneof" json:"url,omitempty"` + WorkspaceId *string `protobuf:"bytes,7,opt,name=workspace_id,json=workspaceId,proto3,oneof" json:"workspace_id,omitempty"` + StorageName *string `protobuf:"bytes,8,opt,name=storage_name,json=storageName,proto3,oneof" json:"storage_name,omitempty"` + Prefix *string `protobuf:"bytes,9,opt,name=prefix,proto3,oneof" json:"prefix,omitempty"` + ObjectVersion *string `protobuf:"bytes,10,opt,name=object_version,json=objectVersion,proto3,oneof" json:"object_version,omitempty"` + ContentType *string `protobuf:"bytes,11,opt,name=content_type,json=contentType,proto3,oneof" json:"content_type,omitempty"` ObjectUpdatedAt *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=object_updated_at,json=objectUpdatedAt,proto3,oneof" json:"object_updated_at,omitempty"` - Visibility *string `protobuf:"bytes,13,opt,name=visibility,proto3,oneof" json:"visibility,omitempty"` - ContentType *string `protobuf:"bytes,14,opt,name=content_type,json=contentType,proto3,oneof" json:"content_type,omitempty"` - ContentDisposition *string `protobuf:"bytes,15,opt,name=content_disposition,json=contentDisposition,proto3,oneof" json:"content_disposition,omitempty"` - AssetCreatedAt *timestamppb.Timestamp `protobuf:"bytes,16,opt,name=asset_created_at,json=assetCreatedAt,proto3,oneof" json:"asset_created_at,omitempty"` + AssetCreatedAt *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=asset_created_at,json=assetCreatedAt,proto3,oneof" json:"asset_created_at,omitempty"` + UserId *string `protobuf:"bytes,14,opt,name=user_id,json=userId,proto3,oneof" json:"user_id,omitempty"` + Provider *string `protobuf:"bytes,15,opt,name=provider,proto3,oneof" json:"provider,omitempty"` + ProviderBucketName *string `protobuf:"bytes,16,opt,name=provider_bucket_name,json=providerBucketName,proto3,oneof" json:"provider_bucket_name,omitempty"` } func (x *Asset) Reset() { @@ -139,72 +139,72 @@ func (x *Asset) GetId() string { return "" } -func (x *Asset) GetUrl() string { - if x != nil && x.Url != nil { - return *x.Url +func (x *Asset) GetObjectName() string { + if x != nil && x.ObjectName != nil { + return *x.ObjectName } return "" } -func (x *Asset) GetWorkspaceId() string { - if x != nil && x.WorkspaceId != nil { - return *x.WorkspaceId +func (x *Asset) GetVisibility() string { + if x != nil && x.Visibility != nil { + return *x.Visibility } return "" } -func (x *Asset) GetStorageName() string { - if x != nil && x.StorageName != nil { - return *x.StorageName +func (x *Asset) GetContentDisposition() string { + if x != nil && x.ContentDisposition != nil { + return *x.ContentDisposition } return "" } -func (x *Asset) GetPrefix() string { - if x != nil && x.Prefix != nil { - return *x.Prefix +func (x *Asset) GetPassword() string { + if x != nil && x.Password != nil { + return *x.Password } return "" } -func (x *Asset) GetObjectName() string { - if x != nil && x.ObjectName != nil { - return *x.ObjectName +func (x *Asset) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url } return "" } -func (x *Asset) GetVersionId() string { - if x != nil && x.VersionId != nil { - return *x.VersionId +func (x *Asset) GetWorkspaceId() string { + if x != nil && x.WorkspaceId != nil { + return *x.WorkspaceId } return "" } -func (x *Asset) GetUserId() string { - if x != nil && x.UserId != nil { - return *x.UserId +func (x *Asset) GetStorageName() string { + if x != nil && x.StorageName != nil { + return *x.StorageName } return "" } -func (x *Asset) GetPassword() string { - if x != nil && x.Password != nil { - return *x.Password +func (x *Asset) GetPrefix() string { + if x != nil && x.Prefix != nil { + return *x.Prefix } return "" } -func (x *Asset) GetProvider() string { - if x != nil && x.Provider != nil { - return *x.Provider +func (x *Asset) GetObjectVersion() string { + if x != nil && x.ObjectVersion != nil { + return *x.ObjectVersion } return "" } -func (x *Asset) GetProviderBucketName() string { - if x != nil && x.ProviderBucketName != nil { - return *x.ProviderBucketName +func (x *Asset) GetContentType() string { + if x != nil && x.ContentType != nil { + return *x.ContentType } return "" } @@ -216,32 +216,32 @@ func (x *Asset) GetObjectUpdatedAt() *timestamppb.Timestamp { return nil } -func (x *Asset) GetVisibility() string { - if x != nil && x.Visibility != nil { - return *x.Visibility +func (x *Asset) GetAssetCreatedAt() *timestamppb.Timestamp { + if x != nil { + return x.AssetCreatedAt } - return "" + return nil } -func (x *Asset) GetContentType() string { - if x != nil && x.ContentType != nil { - return *x.ContentType +func (x *Asset) GetUserId() string { + if x != nil && x.UserId != nil { + return *x.UserId } return "" } -func (x *Asset) GetContentDisposition() string { - if x != nil && x.ContentDisposition != nil { - return *x.ContentDisposition +func (x *Asset) GetProvider() string { + if x != nil && x.Provider != nil { + return *x.Provider } return "" } -func (x *Asset) GetAssetCreatedAt() *timestamppb.Timestamp { - if x != nil { - return x.AssetCreatedAt +func (x *Asset) GetProviderBucketName() string { + if x != nil && x.ProviderBucketName != nil { + return *x.ProviderBucketName } - return nil + return "" } type AssetCreation struct { @@ -249,10 +249,13 @@ type AssetCreation struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - WorkspaceId *string `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId,proto3,oneof" json:"workspace_id,omitempty"` - StorageName *string `protobuf:"bytes,2,opt,name=storage_name,json=storageName,proto3,oneof" json:"storage_name,omitempty"` - ObjectName *string `protobuf:"bytes,3,opt,name=object_name,json=objectName,proto3,oneof" json:"object_name,omitempty"` - ObjectVersionId *string `protobuf:"bytes,4,opt,name=object_version_id,json=objectVersionId,proto3,oneof" json:"object_version_id,omitempty"` + WorkspaceId *string `protobuf:"bytes,1,opt,name=workspace_id,json=workspaceId,proto3,oneof" json:"workspace_id,omitempty"` + StorageName *string `protobuf:"bytes,2,opt,name=storage_name,json=storageName,proto3,oneof" json:"storage_name,omitempty"` + ObjectName *string `protobuf:"bytes,3,opt,name=object_name,json=objectName,proto3,oneof" json:"object_name,omitempty"` + ObjectVersion *string `protobuf:"bytes,4,opt,name=object_version,json=objectVersion,proto3,oneof" json:"object_version,omitempty"` + Visibility *string `protobuf:"bytes,5,opt,name=visibility,proto3,oneof" json:"visibility,omitempty"` + ContentDisposition *string `protobuf:"bytes,6,opt,name=content_disposition,json=contentDisposition,proto3,oneof" json:"content_disposition,omitempty"` + Password *string `protobuf:"bytes,7,opt,name=password,proto3,oneof" json:"password,omitempty"` } func (x *AssetCreation) Reset() { @@ -308,9 +311,30 @@ func (x *AssetCreation) GetObjectName() string { return "" } -func (x *AssetCreation) GetObjectVersionId() string { - if x != nil && x.ObjectVersionId != nil { - return *x.ObjectVersionId +func (x *AssetCreation) GetObjectVersion() string { + if x != nil && x.ObjectVersion != nil { + return *x.ObjectVersion + } + return "" +} + +func (x *AssetCreation) GetVisibility() string { + if x != nil && x.Visibility != nil { + return *x.Visibility + } + return "" +} + +func (x *AssetCreation) GetContentDisposition() string { + if x != nil && x.ContentDisposition != nil { + return *x.ContentDisposition + } + return "" +} + +func (x *AssetCreation) GetPassword() string { + if x != nil && x.Password != nil { + return *x.Password } return "" } @@ -803,7 +827,8 @@ type AssetUpdateResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Error *AssetResponseError `protobuf:"bytes,1,opt,name=error,proto3,oneof" json:"error,omitempty"` + Asset *Asset `protobuf:"bytes,1,opt,name=asset,proto3,oneof" json:"asset,omitempty"` + Error *AssetResponseError `protobuf:"bytes,2,opt,name=error,proto3,oneof" json:"error,omitempty"` } func (x *AssetUpdateResponse) Reset() { @@ -838,6 +863,13 @@ func (*AssetUpdateResponse) Descriptor() ([]byte, []int) { return file_asset_proto_rawDescGZIP(), []int{11} } +func (x *AssetUpdateResponse) GetAsset() *Asset { + if x != nil { + return x.Asset + } + return nil +} + func (x *AssetUpdateResponse) GetError() *AssetResponseError { if x != nil { return x.Error @@ -955,114 +987,143 @@ var file_asset_proto_rawDesc = []byte{ 0x73, 0x73, 0x65, 0x74, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb7, 0x07, 0x0a, 0x05, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc3, 0x07, 0x0a, 0x05, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, - 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x15, - 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x75, - 0x72, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, - 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x02, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, - 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x04, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x05, 0x52, 0x0a, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x09, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, - 0x01, 0x48, 0x07, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1f, - 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x08, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, - 0x12, 0x35, 0x0a, 0x14, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x75, 0x63, - 0x6b, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0a, - 0x52, 0x12, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x11, 0x6f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x0b, - 0x52, 0x0f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0c, 0x52, 0x0a, 0x76, 0x69, 0x73, 0x69, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x34, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0e, - 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x10, 0x61, 0x73, 0x73, 0x65, 0x74, - 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x0f, 0x52, - 0x0e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, - 0x6c, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x0e, - 0x0a, 0x0c, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0d, - 0x0a, 0x0b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x42, 0x0a, 0x0a, - 0x08, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x14, 0x0a, 0x12, - 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x61, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x64, - 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, - 0x73, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x22, - 0x88, 0x02, 0x0a, 0x0d, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x30, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, - 0x01, 0x48, 0x00, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x02, 0x52, 0x0a, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0f, - 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x88, - 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x22, 0x8f, 0x01, 0x0a, 0x0b, 0x41, - 0x73, 0x73, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0a, 0x76, 0x69, - 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, - 0x34, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x12, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x74, 0x0a, 0x12, + 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, + 0x0a, 0x0b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x76, 0x69, 0x73, 0x69, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x44, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x1f, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x04, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, + 0x03, 0x75, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, + 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x06, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x07, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x08, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2a, + 0x0a, 0x0e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x0a, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x11, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x0b, 0x52, 0x0f, 0x6f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x49, 0x0a, 0x10, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x61, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x0c, 0x52, 0x0e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x07, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, + 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x0d, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x0e, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, + 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x0f, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x42, 0x75, 0x63, + 0x6b, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, + 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, 0x6c, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, + 0x0a, 0x12, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, + 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb0, 0x03, 0x0a, 0x0d, + 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, + 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x00, 0x52, + 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, + 0x0e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x76, 0x69, 0x73, + 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, + 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x34, + 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x12, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x76, + 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x8f, + 0x01, 0x0a, 0x0b, 0x41, 0x73, 0x73, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x23, + 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x64, + 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x76, 0x69, + 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x74, 0x0a, 0x12, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2a, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x4f, 0x0a, 0x12, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x05, + 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x73, + 0x73, 0x65, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x13, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x27, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x48, 0x00, 0x52, 0x05, + 0x61, 0x73, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x12, 0x2a, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x11, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, - 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x01, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x22, 0x4f, 0x0a, 0x12, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, - 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, - 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x61, 0x73, - 0x73, 0x65, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x13, 0x41, 0x73, 0x73, 0x65, 0x74, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x05, 0x61, - 0x73, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x73, 0x73, - 0x65, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x48, 0x00, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x01, - 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x61, - 0x73, 0x73, 0x65, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x8b, - 0x01, 0x0a, 0x0f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x6f, 0x72, 0x48, 0x01, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x22, 0x8b, 0x01, 0x0a, 0x0f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x47, 0x65, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, + 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, + 0x03, 0xb0, 0x01, 0x01, 0x48, 0x01, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, + 0x22, 0x85, 0x01, 0x0a, 0x10, 0x41, 0x73, 0x73, 0x65, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x48, 0x00, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x91, 0x01, 0x0a, 0x15, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x47, 0x65, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, @@ -1070,71 +1131,56 @@ var file_asset_proto_rawDesc = []byte{ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x01, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x85, 0x01, 0x0a, - 0x10, 0x41, 0x73, 0x73, 0x65, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x27, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x48, 0x00, - 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x22, 0x91, 0x01, 0x0a, 0x15, 0x41, 0x73, 0x73, 0x65, 0x74, 0x47, 0x65, - 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, - 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x00, - 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x28, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x01, 0x52, 0x07, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, - 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x77, 0x0a, 0x16, 0x41, 0x73, 0x73, 0x65, - 0x74, 0x47, 0x65, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, + 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x77, 0x0a, 0x16, + 0x41, 0x73, 0x73, 0x65, 0x74, 0x47, 0x65, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, + 0x73, 0x73, 0x65, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, 0x6c, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x61, 0x0a, 0x12, 0x41, 0x73, 0x73, 0x65, 0x74, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x0c, 0x61, + 0x73, 0x73, 0x65, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x13, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x27, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x48, 0x00, 0x52, + 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, 0x6c, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x22, 0x61, 0x0a, 0x12, 0x41, 0x73, 0x73, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, - 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x22, 0x55, 0x0a, 0x13, 0x41, 0x73, 0x73, 0x65, 0x74, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, + 0x08, 0x0a, 0x06, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x22, 0x8e, 0x01, 0x0a, 0x12, 0x41, 0x73, 0x73, 0x65, 0x74, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0c, 0x77, 0x6f, + 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x77, 0x6f, + 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x08, + 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, + 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, 0x48, 0x01, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x5f, 0x69, 0x64, 0x22, 0x55, 0x0a, 0x13, 0x41, 0x73, 0x73, 0x65, 0x74, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x8e, 0x01, 0x0a, 0x12, - 0x41, 0x73, 0x73, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, - 0x01, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x72, 0x03, 0xb0, 0x01, 0x01, - 0x48, 0x01, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x55, 0x0a, 0x13, - 0x41, 0x73, 0x73, 0x65, 0x74, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x2a, 0x86, 0x01, 0x0a, 0x0a, 0x41, 0x73, 0x73, 0x65, 0x74, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x53, 0x53, 0x45, 0x54, 0x5f, 0x4e, 0x4f, 0x5f, 0x45, - 0x52, 0x52, 0x4f, 0x52, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x53, 0x53, 0x45, 0x54, 0x5f, - 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x41, - 0x53, 0x53, 0x45, 0x54, 0x5f, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x5f, 0x45, - 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x53, 0x53, 0x45, 0x54, 0x5f, - 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, 0x10, 0x03, - 0x12, 0x1a, 0x0a, 0x15, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x53, 0x45, 0x52, - 0x56, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0xe8, 0x07, 0x42, 0x2e, 0x5a, 0x2c, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6a, 0x75, 0x70, 0x79, 0x74, - 0x65, 0x72, 0x2d, 0x6e, 0x61, 0x61, 0x73, 0x2f, 0x6e, 0x61, 0x61, 0x73, 0x2d, 0x6d, 0x6f, 0x64, - 0x65, 0x6c, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x2a, 0x84, 0x01, 0x0a, 0x0a, + 0x41, 0x73, 0x73, 0x65, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x53, + 0x53, 0x45, 0x54, 0x5f, 0x4e, 0x4f, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x00, 0x12, 0x13, + 0x0a, 0x0f, 0x41, 0x53, 0x53, 0x45, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, + 0x44, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x53, 0x53, 0x45, 0x54, 0x5f, 0x41, 0x4c, 0x52, + 0x45, 0x41, 0x44, 0x59, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, 0x10, 0x02, 0x12, 0x17, 0x0a, + 0x13, 0x41, 0x53, 0x53, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x45, + 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x15, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, + 0x41, 0x4c, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, + 0xe8, 0x07, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x6a, 0x75, 0x70, 0x79, 0x74, 0x65, 0x72, 0x2d, 0x6e, 0x61, 0x61, 0x73, 0x2f, 0x6e, 0x61, + 0x61, 0x73, 0x2d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x73, 0x73, + 0x65, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1180,13 +1226,14 @@ var file_asset_proto_depIdxs = []int32{ 4, // 7: asset.AssetGetResponse.error:type_name -> asset.AssetResponseError 4, // 8: asset.AssetGetObjectResponse.error:type_name -> asset.AssetResponseError 3, // 9: asset.AssetUpdateRequest.asset_update:type_name -> asset.AssetUpdate - 4, // 10: asset.AssetUpdateResponse.error:type_name -> asset.AssetResponseError - 4, // 11: asset.AssetDeleteResponse.error:type_name -> asset.AssetResponseError - 12, // [12:12] is the sub-list for method output_type - 12, // [12:12] is the sub-list for method input_type - 12, // [12:12] is the sub-list for extension type_name - 12, // [12:12] is the sub-list for extension extendee - 0, // [0:12] is the sub-list for field type_name + 1, // 10: asset.AssetUpdateResponse.asset:type_name -> asset.Asset + 4, // 11: asset.AssetUpdateResponse.error:type_name -> asset.AssetResponseError + 4, // 12: asset.AssetDeleteResponse.error:type_name -> asset.AssetResponseError + 13, // [13:13] is the sub-list for method output_type + 13, // [13:13] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name } func init() { file_asset_proto_init() } diff --git a/go/github.com/jupyter-naas/naas-models/go/asset/asset.pb.validate.go b/go/github.com/jupyter-naas/naas-models/go/asset/asset.pb.validate.go index 5f1c471..3134dee 100644 --- a/go/github.com/jupyter-naas/naas-models/go/asset/asset.pb.validate.go +++ b/go/github.com/jupyter-naas/naas-models/go/asset/asset.pb.validate.go @@ -75,6 +75,22 @@ func (m *Asset) validate(all bool) error { } + if m.ObjectName != nil { + // no validation rules for ObjectName + } + + if m.Visibility != nil { + // no validation rules for Visibility + } + + if m.ContentDisposition != nil { + // no validation rules for ContentDisposition + } + + if m.Password != nil { + // no validation rules for Password + } + if m.Url != nil { // no validation rules for Url } @@ -103,40 +119,12 @@ func (m *Asset) validate(all bool) error { // no validation rules for Prefix } - if m.ObjectName != nil { - // no validation rules for ObjectName - } - - if m.VersionId != nil { - // no validation rules for VersionId + if m.ObjectVersion != nil { + // no validation rules for ObjectVersion } - if m.UserId != nil { - - if err := m._validateUuid(m.GetUserId()); err != nil { - err = AssetValidationError{ - field: "UserId", - reason: "value must be a valid UUID", - cause: err, - } - if !all { - return err - } - errors = append(errors, err) - } - - } - - if m.Password != nil { - // no validation rules for Password - } - - if m.Provider != nil { - // no validation rules for Provider - } - - if m.ProviderBucketName != nil { - // no validation rules for ProviderBucketName + if m.ContentType != nil { + // no validation rules for ContentType } if m.ObjectUpdatedAt != nil { @@ -172,18 +160,6 @@ func (m *Asset) validate(all bool) error { } - if m.Visibility != nil { - // no validation rules for Visibility - } - - if m.ContentType != nil { - // no validation rules for ContentType - } - - if m.ContentDisposition != nil { - // no validation rules for ContentDisposition - } - if m.AssetCreatedAt != nil { if all { @@ -217,6 +193,30 @@ func (m *Asset) validate(all bool) error { } + if m.UserId != nil { + + if err := m._validateUuid(m.GetUserId()); err != nil { + err = AssetValidationError{ + field: "UserId", + reason: "value must be a valid UUID", + cause: err, + } + if !all { + return err + } + errors = append(errors, err) + } + + } + + if m.Provider != nil { + // no validation rules for Provider + } + + if m.ProviderBucketName != nil { + // no validation rules for ProviderBucketName + } + if len(errors) > 0 { return AssetMultiError(errors) } @@ -348,8 +348,20 @@ func (m *AssetCreation) validate(all bool) error { // no validation rules for ObjectName } - if m.ObjectVersionId != nil { - // no validation rules for ObjectVersionId + if m.ObjectVersion != nil { + // no validation rules for ObjectVersion + } + + if m.Visibility != nil { + // no validation rules for Visibility + } + + if m.ContentDisposition != nil { + // no validation rules for ContentDisposition + } + + if m.Password != nil { + // no validation rules for Password } if len(errors) > 0 { @@ -1702,6 +1714,39 @@ func (m *AssetUpdateResponse) validate(all bool) error { var errors []error + if m.Asset != nil { + + if all { + switch v := interface{}(m.GetAsset()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, AssetUpdateResponseValidationError{ + field: "Asset", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, AssetUpdateResponseValidationError{ + field: "Asset", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetAsset()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return AssetUpdateResponseValidationError{ + field: "Asset", + reason: "embedded message failed validation", + cause: err, + } + } + } + + } + if m.Error != nil { if all { diff --git a/protos/asset.proto b/protos/asset.proto index be09139..eaacf0c 100644 --- a/protos/asset.proto +++ b/protos/asset.proto @@ -9,33 +9,31 @@ import "validate.proto"; message Asset { optional string id = 1 [(validate.rules).string.uuid = true]; - optional string url = 2; - optional string workspace_id = 3 [(validate.rules).string.uuid = true]; - optional string storage_name = 4; - optional string prefix = 5; - optional string object_name = 6; - optional string version_id = 7; - optional string user_id = 8 [(validate.rules).string.uuid = true]; - optional string password = 9; - optional string provider = 10; - optional string provider_bucket_name = 11; + optional string object_name = 2; + optional string visibility = 3; + optional string content_disposition = 4; + optional string password = 5; + optional string url = 6; + optional string workspace_id = 7 [(validate.rules).string.uuid = true]; + optional string storage_name = 8; + optional string prefix = 9; + optional string object_version = 10; + optional string content_type = 11; optional google.protobuf.Timestamp object_updated_at = 12; - optional string visibility = 13; - optional string content_type = 14; - optional string content_disposition = 15; - optional google.protobuf.Timestamp asset_created_at = 16; + optional google.protobuf.Timestamp asset_created_at = 13; + optional string user_id = 14 [(validate.rules).string.uuid = true]; + optional string provider = 15; + optional string provider_bucket_name = 16; } - //optional timestamp created_at = 9; - //optional timestamp updated_at = 10; message AssetCreation { optional string workspace_id = 1 [(validate.rules).string.uuid = true]; optional string storage_name = 2; optional string object_name = 3; - optional string object_version_id = 4; - // optional string visibility = 4; - // optional bool public = 5; - // optional bool visible = 6; + optional string object_version = 4; + optional string visibility = 5; + optional string content_disposition = 6; + optional string password = 7; } message AssetUpdate { optional string visibility = 1; @@ -45,8 +43,8 @@ message AssetUpdate { enum AssetError { ASSET_NO_ERROR = 0; ASSET_NOT_FOUND = 1; - ASSET_PARAMETER_ERROR = 2; - ASSET_ALREADY_EXISTS = 3; + ASSET_ALREADY_EXISTS = 2; + ASSET_REQUEST_ERROR = 3; INTERNAL_SERVER_ERROR = 1000; } @@ -94,7 +92,8 @@ message AssetUpdateRequest { } message AssetUpdateResponse { - optional AssetResponseError error = 1; + optional Asset asset = 1; + optional AssetResponseError error = 2; } // Asset Delete diff --git a/python/naas_models/asset_pb2.py b/python/naas_models/asset_pb2.py index 261bf9a..58f0c5d 100644 --- a/python/naas_models/asset_pb2.py +++ b/python/naas_models/asset_pb2.py @@ -17,14 +17,14 @@ import naas_models.validate_pb2 as validate__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0b\x61sset.proto\x12\x05\x61sset\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x0evalidate.proto\"\xf7\x05\n\x05\x41sset\x12\x19\n\x02id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x12\x10\n\x03url\x18\x02 \x01(\tH\x01\x88\x01\x01\x12#\n\x0cworkspace_id\x18\x03 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x02\x88\x01\x01\x12\x19\n\x0cstorage_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06prefix\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x18\n\x0bobject_name\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x17\n\nversion_id\x18\x07 \x01(\tH\x06\x88\x01\x01\x12\x1e\n\x07user_id\x18\x08 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x07\x88\x01\x01\x12\x15\n\x08password\x18\t \x01(\tH\x08\x88\x01\x01\x12\x15\n\x08provider\x18\n \x01(\tH\t\x88\x01\x01\x12!\n\x14provider_bucket_name\x18\x0b \x01(\tH\n\x88\x01\x01\x12:\n\x11object_updated_at\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x0b\x88\x01\x01\x12\x17\n\nvisibility\x18\r \x01(\tH\x0c\x88\x01\x01\x12\x19\n\x0c\x63ontent_type\x18\x0e \x01(\tH\r\x88\x01\x01\x12 \n\x13\x63ontent_disposition\x18\x0f \x01(\tH\x0e\x88\x01\x01\x12\x39\n\x10\x61sset_created_at\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x0f\x88\x01\x01\x42\x05\n\x03_idB\x06\n\x04_urlB\x0f\n\r_workspace_idB\x0f\n\r_storage_nameB\t\n\x07_prefixB\x0e\n\x0c_object_nameB\r\n\x0b_version_idB\n\n\x08_user_idB\x0b\n\t_passwordB\x0b\n\t_providerB\x17\n\x15_provider_bucket_nameB\x14\n\x12_object_updated_atB\r\n\x0b_visibilityB\x0f\n\r_content_typeB\x16\n\x14_content_dispositionB\x13\n\x11_asset_created_at\"\xd1\x01\n\rAssetCreation\x12#\n\x0cworkspace_id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x12\x19\n\x0cstorage_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0bobject_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1e\n\x11object_version_id\x18\x04 \x01(\tH\x03\x88\x01\x01\x42\x0f\n\r_workspace_idB\x0f\n\r_storage_nameB\x0e\n\x0c_object_nameB\x14\n\x12_object_version_id\"o\n\x0b\x41ssetUpdate\x12\x17\n\nvisibility\x18\x01 \x01(\tH\x00\x88\x01\x01\x12 \n\x13\x63ontent_disposition\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_visibilityB\x16\n\x14_content_disposition\"e\n\x12\x41ssetResponseError\x12$\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x11.asset.AssetErrorH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_codeB\n\n\x08_message\"H\n\x12\x41ssetCreateRequest\x12(\n\x05\x61sset\x18\x01 \x01(\x0b\x32\x14.asset.AssetCreationH\x00\x88\x01\x01\x42\x08\n\x06_asset\"z\n\x13\x41ssetCreateResponse\x12 \n\x05\x61sset\x18\x01 \x01(\x0b\x32\x0c.asset.AssetH\x00\x88\x01\x01\x12-\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x19.asset.AssetResponseErrorH\x01\x88\x01\x01\x42\x08\n\x06_assetB\x08\n\x06_error\"u\n\x0f\x41ssetGetRequest\x12#\n\x0cworkspace_id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x12\x1f\n\x08\x61sset_id\x18\x02 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x01\x88\x01\x01\x42\x0f\n\r_workspace_idB\x0b\n\t_asset_id\"w\n\x10\x41ssetGetResponse\x12 \n\x05\x61sset\x18\x01 \x01(\x0b\x32\x0c.asset.AssetH\x00\x88\x01\x01\x12-\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x19.asset.AssetResponseErrorH\x01\x88\x01\x01\x42\x08\n\x06_assetB\x08\n\x06_error\"{\n\x15\x41ssetGetObjectRequest\x12#\n\x0cworkspace_id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x12\x1f\n\x08\x61sset_id\x18\x02 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x01\x88\x01\x01\x42\x0f\n\r_workspace_idB\x0b\n\t_asset_id\"k\n\x16\x41ssetGetObjectResponse\x12\x10\n\x03url\x18\x01 \x01(\tH\x00\x88\x01\x01\x12-\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x19.asset.AssetResponseErrorH\x01\x88\x01\x01\x42\x06\n\x04_urlB\x08\n\x06_error\"T\n\x12\x41ssetUpdateRequest\x12-\n\x0c\x61sset_update\x18\x01 \x01(\x0b\x32\x12.asset.AssetUpdateH\x00\x88\x01\x01\x42\x0f\n\r_asset_update\"N\n\x13\x41ssetUpdateResponse\x12-\n\x05\x65rror\x18\x01 \x01(\x0b\x32\x19.asset.AssetResponseErrorH\x00\x88\x01\x01\x42\x08\n\x06_error\"x\n\x12\x41ssetDeleteRequest\x12#\n\x0cworkspace_id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x12\x1f\n\x08\x61sset_id\x18\x02 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x01\x88\x01\x01\x42\x0f\n\r_workspace_idB\x0b\n\t_asset_id\"N\n\x13\x41ssetDeleteResponse\x12-\n\x05\x65rror\x18\x01 \x01(\x0b\x32\x19.asset.AssetResponseErrorH\x00\x88\x01\x01\x42\x08\n\x06_error*\x86\x01\n\nAssetError\x12\x12\n\x0e\x41SSET_NO_ERROR\x10\x00\x12\x13\n\x0f\x41SSET_NOT_FOUND\x10\x01\x12\x19\n\x15\x41SSET_PARAMETER_ERROR\x10\x02\x12\x18\n\x14\x41SSET_ALREADY_EXISTS\x10\x03\x12\x1a\n\x15INTERNAL_SERVER_ERROR\x10\xe8\x07\x42.Z,github.com/jupyter-naas/naas-models/go/assetb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0b\x61sset.proto\x12\x05\x61sset\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x0evalidate.proto\"\xff\x05\n\x05\x41sset\x12\x19\n\x02id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x12\x18\n\x0bobject_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x17\n\nvisibility\x18\x03 \x01(\tH\x02\x88\x01\x01\x12 \n\x13\x63ontent_disposition\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x15\n\x08password\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x10\n\x03url\x18\x06 \x01(\tH\x05\x88\x01\x01\x12#\n\x0cworkspace_id\x18\x07 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x06\x88\x01\x01\x12\x19\n\x0cstorage_name\x18\x08 \x01(\tH\x07\x88\x01\x01\x12\x13\n\x06prefix\x18\t \x01(\tH\x08\x88\x01\x01\x12\x1b\n\x0eobject_version\x18\n \x01(\tH\t\x88\x01\x01\x12\x19\n\x0c\x63ontent_type\x18\x0b \x01(\tH\n\x88\x01\x01\x12:\n\x11object_updated_at\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x0b\x88\x01\x01\x12\x39\n\x10\x61sset_created_at\x18\r \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x0c\x88\x01\x01\x12\x1e\n\x07user_id\x18\x0e \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\r\x88\x01\x01\x12\x15\n\x08provider\x18\x0f \x01(\tH\x0e\x88\x01\x01\x12!\n\x14provider_bucket_name\x18\x10 \x01(\tH\x0f\x88\x01\x01\x42\x05\n\x03_idB\x0e\n\x0c_object_nameB\r\n\x0b_visibilityB\x16\n\x14_content_dispositionB\x0b\n\t_passwordB\x06\n\x04_urlB\x0f\n\r_workspace_idB\x0f\n\r_storage_nameB\t\n\x07_prefixB\x11\n\x0f_object_versionB\x0f\n\r_content_typeB\x14\n\x12_object_updated_atB\x13\n\x11_asset_created_atB\n\n\x08_user_idB\x0b\n\t_providerB\x17\n\x15_provider_bucket_name\"\xd1\x02\n\rAssetCreation\x12#\n\x0cworkspace_id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x12\x19\n\x0cstorage_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0bobject_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1b\n\x0eobject_version\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x17\n\nvisibility\x18\x05 \x01(\tH\x04\x88\x01\x01\x12 \n\x13\x63ontent_disposition\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x15\n\x08password\x18\x07 \x01(\tH\x06\x88\x01\x01\x42\x0f\n\r_workspace_idB\x0f\n\r_storage_nameB\x0e\n\x0c_object_nameB\x11\n\x0f_object_versionB\r\n\x0b_visibilityB\x16\n\x14_content_dispositionB\x0b\n\t_password\"o\n\x0b\x41ssetUpdate\x12\x17\n\nvisibility\x18\x01 \x01(\tH\x00\x88\x01\x01\x12 \n\x13\x63ontent_disposition\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\r\n\x0b_visibilityB\x16\n\x14_content_disposition\"e\n\x12\x41ssetResponseError\x12$\n\x04\x63ode\x18\x01 \x01(\x0e\x32\x11.asset.AssetErrorH\x00\x88\x01\x01\x12\x14\n\x07message\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_codeB\n\n\x08_message\"H\n\x12\x41ssetCreateRequest\x12(\n\x05\x61sset\x18\x01 \x01(\x0b\x32\x14.asset.AssetCreationH\x00\x88\x01\x01\x42\x08\n\x06_asset\"z\n\x13\x41ssetCreateResponse\x12 \n\x05\x61sset\x18\x01 \x01(\x0b\x32\x0c.asset.AssetH\x00\x88\x01\x01\x12-\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x19.asset.AssetResponseErrorH\x01\x88\x01\x01\x42\x08\n\x06_assetB\x08\n\x06_error\"u\n\x0f\x41ssetGetRequest\x12#\n\x0cworkspace_id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x12\x1f\n\x08\x61sset_id\x18\x02 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x01\x88\x01\x01\x42\x0f\n\r_workspace_idB\x0b\n\t_asset_id\"w\n\x10\x41ssetGetResponse\x12 \n\x05\x61sset\x18\x01 \x01(\x0b\x32\x0c.asset.AssetH\x00\x88\x01\x01\x12-\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x19.asset.AssetResponseErrorH\x01\x88\x01\x01\x42\x08\n\x06_assetB\x08\n\x06_error\"{\n\x15\x41ssetGetObjectRequest\x12#\n\x0cworkspace_id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x12\x1f\n\x08\x61sset_id\x18\x02 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x01\x88\x01\x01\x42\x0f\n\r_workspace_idB\x0b\n\t_asset_id\"k\n\x16\x41ssetGetObjectResponse\x12\x10\n\x03url\x18\x01 \x01(\tH\x00\x88\x01\x01\x12-\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x19.asset.AssetResponseErrorH\x01\x88\x01\x01\x42\x06\n\x04_urlB\x08\n\x06_error\"T\n\x12\x41ssetUpdateRequest\x12-\n\x0c\x61sset_update\x18\x01 \x01(\x0b\x32\x12.asset.AssetUpdateH\x00\x88\x01\x01\x42\x0f\n\r_asset_update\"z\n\x13\x41ssetUpdateResponse\x12 \n\x05\x61sset\x18\x01 \x01(\x0b\x32\x0c.asset.AssetH\x00\x88\x01\x01\x12-\n\x05\x65rror\x18\x02 \x01(\x0b\x32\x19.asset.AssetResponseErrorH\x01\x88\x01\x01\x42\x08\n\x06_assetB\x08\n\x06_error\"x\n\x12\x41ssetDeleteRequest\x12#\n\x0cworkspace_id\x18\x01 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x00\x88\x01\x01\x12\x1f\n\x08\x61sset_id\x18\x02 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01H\x01\x88\x01\x01\x42\x0f\n\r_workspace_idB\x0b\n\t_asset_id\"N\n\x13\x41ssetDeleteResponse\x12-\n\x05\x65rror\x18\x01 \x01(\x0b\x32\x19.asset.AssetResponseErrorH\x00\x88\x01\x01\x42\x08\n\x06_error*\x84\x01\n\nAssetError\x12\x12\n\x0e\x41SSET_NO_ERROR\x10\x00\x12\x13\n\x0f\x41SSET_NOT_FOUND\x10\x01\x12\x18\n\x14\x41SSET_ALREADY_EXISTS\x10\x02\x12\x17\n\x13\x41SSET_REQUEST_ERROR\x10\x03\x12\x1a\n\x15INTERNAL_SERVER_ERROR\x10\xe8\x07\x42.Z,github.com/jupyter-naas/naas-models/go/assetb\x06proto3') _ASSETERROR = DESCRIPTOR.enum_types_by_name['AssetError'] AssetError = enum_type_wrapper.EnumTypeWrapper(_ASSETERROR) ASSET_NO_ERROR = 0 ASSET_NOT_FOUND = 1 -ASSET_PARAMETER_ERROR = 2 -ASSET_ALREADY_EXISTS = 3 +ASSET_ALREADY_EXISTS = 2 +ASSET_REQUEST_ERROR = 3 INTERNAL_SERVER_ERROR = 1000 @@ -164,34 +164,34 @@ _ASSETDELETEREQUEST.fields_by_name['workspace_id']._serialized_options = b'\372B\005r\003\260\001\001' _ASSETDELETEREQUEST.fields_by_name['asset_id']._options = None _ASSETDELETEREQUEST.fields_by_name['asset_id']._serialized_options = b'\372B\005r\003\260\001\001' - _ASSETERROR._serialized_start=2302 - _ASSETERROR._serialized_end=2436 + _ASSETERROR._serialized_start=2482 + _ASSETERROR._serialized_end=2614 _ASSET._serialized_start=72 - _ASSET._serialized_end=831 - _ASSETCREATION._serialized_start=834 - _ASSETCREATION._serialized_end=1043 - _ASSETUPDATE._serialized_start=1045 - _ASSETUPDATE._serialized_end=1156 - _ASSETRESPONSEERROR._serialized_start=1158 - _ASSETRESPONSEERROR._serialized_end=1259 - _ASSETCREATEREQUEST._serialized_start=1261 - _ASSETCREATEREQUEST._serialized_end=1333 - _ASSETCREATERESPONSE._serialized_start=1335 - _ASSETCREATERESPONSE._serialized_end=1457 - _ASSETGETREQUEST._serialized_start=1459 - _ASSETGETREQUEST._serialized_end=1576 - _ASSETGETRESPONSE._serialized_start=1578 - _ASSETGETRESPONSE._serialized_end=1697 - _ASSETGETOBJECTREQUEST._serialized_start=1699 - _ASSETGETOBJECTREQUEST._serialized_end=1822 - _ASSETGETOBJECTRESPONSE._serialized_start=1824 - _ASSETGETOBJECTRESPONSE._serialized_end=1931 - _ASSETUPDATEREQUEST._serialized_start=1933 - _ASSETUPDATEREQUEST._serialized_end=2017 - _ASSETUPDATERESPONSE._serialized_start=2019 - _ASSETUPDATERESPONSE._serialized_end=2097 - _ASSETDELETEREQUEST._serialized_start=2099 - _ASSETDELETEREQUEST._serialized_end=2219 - _ASSETDELETERESPONSE._serialized_start=2221 - _ASSETDELETERESPONSE._serialized_end=2299 + _ASSET._serialized_end=839 + _ASSETCREATION._serialized_start=842 + _ASSETCREATION._serialized_end=1179 + _ASSETUPDATE._serialized_start=1181 + _ASSETUPDATE._serialized_end=1292 + _ASSETRESPONSEERROR._serialized_start=1294 + _ASSETRESPONSEERROR._serialized_end=1395 + _ASSETCREATEREQUEST._serialized_start=1397 + _ASSETCREATEREQUEST._serialized_end=1469 + _ASSETCREATERESPONSE._serialized_start=1471 + _ASSETCREATERESPONSE._serialized_end=1593 + _ASSETGETREQUEST._serialized_start=1595 + _ASSETGETREQUEST._serialized_end=1712 + _ASSETGETRESPONSE._serialized_start=1714 + _ASSETGETRESPONSE._serialized_end=1833 + _ASSETGETOBJECTREQUEST._serialized_start=1835 + _ASSETGETOBJECTREQUEST._serialized_end=1958 + _ASSETGETOBJECTRESPONSE._serialized_start=1960 + _ASSETGETOBJECTRESPONSE._serialized_end=2067 + _ASSETUPDATEREQUEST._serialized_start=2069 + _ASSETUPDATEREQUEST._serialized_end=2153 + _ASSETUPDATERESPONSE._serialized_start=2155 + _ASSETUPDATERESPONSE._serialized_end=2277 + _ASSETDELETEREQUEST._serialized_start=2279 + _ASSETDELETEREQUEST._serialized_end=2399 + _ASSETDELETERESPONSE._serialized_start=2401 + _ASSETDELETERESPONSE._serialized_end=2479 # @@protoc_insertion_point(module_scope) diff --git a/python/naas_models/pydantic/asset_p2p.py b/python/naas_models/pydantic/asset_p2p.py index a84f4e2..acd33c2 100644 --- a/python/naas_models/pydantic/asset_p2p.py +++ b/python/naas_models/pydantic/asset_p2p.py @@ -16,8 +16,8 @@ class AssetError(IntEnum): ASSET_NO_ERROR = 0 ASSET_NOT_FOUND = 1 - ASSET_PARAMETER_ERROR = 2 - ASSET_ALREADY_EXISTS = 3 + ASSET_ALREADY_EXISTS = 2 + ASSET_REQUEST_ERROR = 3 INTERNAL_SERVER_ERROR = 1000 @@ -25,38 +25,41 @@ class AssetError(IntEnum): class Asset(BaseModel): - _one_of_dict = {"Asset._asset_created_at": {"fields": {"asset_created_at"}}, "Asset._content_disposition": {"fields": {"content_disposition"}}, "Asset._content_type": {"fields": {"content_type"}}, "Asset._id": {"fields": {"id"}}, "Asset._object_name": {"fields": {"object_name"}}, "Asset._object_updated_at": {"fields": {"object_updated_at"}}, "Asset._password": {"fields": {"password"}}, "Asset._prefix": {"fields": {"prefix"}}, "Asset._provider": {"fields": {"provider"}}, "Asset._provider_bucket_name": {"fields": {"provider_bucket_name"}}, "Asset._storage_name": {"fields": {"storage_name"}}, "Asset._url": {"fields": {"url"}}, "Asset._user_id": {"fields": {"user_id"}}, "Asset._version_id": {"fields": {"version_id"}}, "Asset._visibility": {"fields": {"visibility"}}, "Asset._workspace_id": {"fields": {"workspace_id"}}} + _one_of_dict = {"Asset._asset_created_at": {"fields": {"asset_created_at"}}, "Asset._content_disposition": {"fields": {"content_disposition"}}, "Asset._content_type": {"fields": {"content_type"}}, "Asset._id": {"fields": {"id"}}, "Asset._object_name": {"fields": {"object_name"}}, "Asset._object_updated_at": {"fields": {"object_updated_at"}}, "Asset._object_version": {"fields": {"object_version"}}, "Asset._password": {"fields": {"password"}}, "Asset._prefix": {"fields": {"prefix"}}, "Asset._provider": {"fields": {"provider"}}, "Asset._provider_bucket_name": {"fields": {"provider_bucket_name"}}, "Asset._storage_name": {"fields": {"storage_name"}}, "Asset._url": {"fields": {"url"}}, "Asset._user_id": {"fields": {"user_id"}}, "Asset._visibility": {"fields": {"visibility"}}, "Asset._workspace_id": {"fields": {"workspace_id"}}} _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) id: UUID = FieldInfo(default="") + object_name: str = FieldInfo(default="") + visibility: str = FieldInfo(default="") + content_disposition: str = FieldInfo(default="") + password: str = FieldInfo(default="") url: str = FieldInfo(default="") workspace_id: UUID = FieldInfo(default="") storage_name: str = FieldInfo(default="") prefix: str = FieldInfo(default="") - object_name: str = FieldInfo(default="") - version_id: str = FieldInfo(default="") + object_version: str = FieldInfo(default="") + content_type: str = FieldInfo(default="") + object_updated_at: datetime = FieldInfo(default_factory=datetime.now) + asset_created_at: datetime = FieldInfo(default_factory=datetime.now) user_id: UUID = FieldInfo(default="") - password: str = FieldInfo(default="") provider: str = FieldInfo(default="") provider_bucket_name: str = FieldInfo(default="") - object_updated_at: datetime = FieldInfo(default_factory=datetime.now) - visibility: str = FieldInfo(default="") - content_type: str = FieldInfo(default="") - content_disposition: str = FieldInfo(default="") - asset_created_at: datetime = FieldInfo(default_factory=datetime.now) class AssetCreation(BaseModel): - _one_of_dict = {"AssetCreation._object_name": {"fields": {"object_name"}}, "AssetCreation._object_version_id": {"fields": {"object_version_id"}}, "AssetCreation._storage_name": {"fields": {"storage_name"}}, "AssetCreation._workspace_id": {"fields": {"workspace_id"}}} + _one_of_dict = {"AssetCreation._content_disposition": {"fields": {"content_disposition"}}, "AssetCreation._object_name": {"fields": {"object_name"}}, "AssetCreation._object_version": {"fields": {"object_version"}}, "AssetCreation._password": {"fields": {"password"}}, "AssetCreation._storage_name": {"fields": {"storage_name"}}, "AssetCreation._visibility": {"fields": {"visibility"}}, "AssetCreation._workspace_id": {"fields": {"workspace_id"}}} _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) workspace_id: UUID = FieldInfo(default="") storage_name: str = FieldInfo(default="") object_name: str = FieldInfo(default="") - object_version_id: str = FieldInfo(default="") + object_version: str = FieldInfo(default="") + visibility: str = FieldInfo(default="") + content_disposition: str = FieldInfo(default="") + password: str = FieldInfo(default="") @@ -160,9 +163,10 @@ class AssetUpdateRequest(BaseModel): class AssetUpdateResponse(BaseModel): - _one_of_dict = {"AssetUpdateResponse._error": {"fields": {"error"}}} + _one_of_dict = {"AssetUpdateResponse._asset": {"fields": {"asset"}}, "AssetUpdateResponse._error": {"fields": {"error"}}} _check_one_of = root_validator(pre=True, allow_reuse=True)(check_one_of) + asset: Asset = FieldInfo() error: AssetResponseError = FieldInfo()