// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        v3.21.12
// source: yandex/cloud/marketplace/stacklandlicenseapi/v1/sync.proto

package stacklandlicenseapi

import (
	_ "github.com/yandex-cloud/go-genproto/yandex/cloud"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// Product type enum
type ProductType int32

const (
	// Unspecified product type.
	ProductType_PRODUCT_TYPE_UNSPECIFIED ProductType = 0
	// Stackland product.
	ProductType_PRODUCT_TYPE_STACKLAND ProductType = 1
	// DataLens product.
	ProductType_PRODUCT_TYPE_DATALENS ProductType = 2
	// AI Studio product.
	ProductType_PRODUCT_TYPE_AI_STUDIO ProductType = 3
	// SpeechSense product.
	ProductType_PRODUCT_TYPE_SPEECHSENSE ProductType = 4
	// Robotics AI product.
	ProductType_PRODUCT_TYPE_ROBOTICS_AI ProductType = 5
)

// Enum value maps for ProductType.
var (
	ProductType_name = map[int32]string{
		0: "PRODUCT_TYPE_UNSPECIFIED",
		1: "PRODUCT_TYPE_STACKLAND",
		2: "PRODUCT_TYPE_DATALENS",
		3: "PRODUCT_TYPE_AI_STUDIO",
		4: "PRODUCT_TYPE_SPEECHSENSE",
		5: "PRODUCT_TYPE_ROBOTICS_AI",
	}
	ProductType_value = map[string]int32{
		"PRODUCT_TYPE_UNSPECIFIED": 0,
		"PRODUCT_TYPE_STACKLAND":   1,
		"PRODUCT_TYPE_DATALENS":    2,
		"PRODUCT_TYPE_AI_STUDIO":   3,
		"PRODUCT_TYPE_SPEECHSENSE": 4,
		"PRODUCT_TYPE_ROBOTICS_AI": 5,
	}
)

func (x ProductType) Enum() *ProductType {
	p := new(ProductType)
	*p = x
	return p
}

func (x ProductType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ProductType) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_enumTypes[0].Descriptor()
}

func (ProductType) Type() protoreflect.EnumType {
	return &file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_enumTypes[0]
}

func (x ProductType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ProductType.Descriptor instead.
func (ProductType) EnumDescriptor() ([]byte, []int) {
	return file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_rawDescGZIP(), []int{0}
}

// Sync status enum
type SyncStatus int32

const (
	// Unspecified sync status.
	SyncStatus_SYNC_STATUS_UNSPECIFIED SyncStatus = 0
	// Sync completed successfully.
	SyncStatus_OK SyncStatus = 1
	// Sync completed with warnings.
	SyncStatus_WARNING SyncStatus = 2
	// Sync failed with errors.
	SyncStatus_ERROR SyncStatus = 3
)

// Enum value maps for SyncStatus.
var (
	SyncStatus_name = map[int32]string{
		0: "SYNC_STATUS_UNSPECIFIED",
		1: "OK",
		2: "WARNING",
		3: "ERROR",
	}
	SyncStatus_value = map[string]int32{
		"SYNC_STATUS_UNSPECIFIED": 0,
		"OK":                      1,
		"WARNING":                 2,
		"ERROR":                   3,
	}
)

func (x SyncStatus) Enum() *SyncStatus {
	p := new(SyncStatus)
	*p = x
	return p
}

func (x SyncStatus) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (SyncStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_enumTypes[1].Descriptor()
}

func (SyncStatus) Type() protoreflect.EnumType {
	return &file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_enumTypes[1]
}

func (x SyncStatus) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use SyncStatus.Descriptor instead.
func (SyncStatus) EnumDescriptor() ([]byte, []int) {
	return file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_rawDescGZIP(), []int{1}
}

// Usage data entry for a single installation
type UsageEntry struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Installation ID
	InstallationId string `protobuf:"bytes,1,opt,name=installation_id,json=installationId,proto3" json:"installation_id,omitempty"`
	// Product type
	ProductType ProductType `protobuf:"varint,2,opt,name=product_type,json=productType,proto3,enum=yandex.cloud.marketplace.stacklandlicenseapi.v1.ProductType" json:"product_type,omitempty"`
	// Usage metric type (e.g., "stackland.vcpu.cores")
	Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
	// Usage value
	Usage int64 `protobuf:"varint,4,opt,name=usage,proto3" json:"usage,omitempty"`
	// Timestamp of the usage (client-side timestamp)
	Timestamp *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	// Hardware fingerprint for the installation
	HardwareFingerprint string `protobuf:"bytes,6,opt,name=hardware_fingerprint,json=hardwareFingerprint,proto3" json:"hardware_fingerprint,omitempty"`
	// License ID this usage applies to
	LicenseId string `protobuf:"bytes,7,opt,name=license_id,json=licenseId,proto3" json:"license_id,omitempty"`
	// Requested license limit value (optional)
	RequestedValue int64 `protobuf:"varint,8,opt,name=requested_value,json=requestedValue,proto3" json:"requested_value,omitempty"`
	// Server-side timestamp set by license server
	ServerTimestamp *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=server_timestamp,json=serverTimestamp,proto3" json:"server_timestamp,omitempty"`
	// Previous record's hash in the chain (64 hex characters)
	PrevRecordHash string `protobuf:"bytes,10,opt,name=prev_record_hash,json=prevRecordHash,proto3" json:"prev_record_hash,omitempty"`
	// SHA-256 hash of this record (64 hex characters)
	RecordHash string `protobuf:"bytes,11,opt,name=record_hash,json=recordHash,proto3" json:"record_hash,omitempty"`
	// RSA-PSS signature of the record hash (base64-encoded)
	Signature     string `protobuf:"bytes,12,opt,name=signature,proto3" json:"signature,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UsageEntry) Reset() {
	*x = UsageEntry{}
	mi := &file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UsageEntry) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UsageEntry) ProtoMessage() {}

func (x *UsageEntry) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UsageEntry.ProtoReflect.Descriptor instead.
func (*UsageEntry) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_rawDescGZIP(), []int{0}
}

func (x *UsageEntry) GetInstallationId() string {
	if x != nil {
		return x.InstallationId
	}
	return ""
}

func (x *UsageEntry) GetProductType() ProductType {
	if x != nil {
		return x.ProductType
	}
	return ProductType_PRODUCT_TYPE_UNSPECIFIED
}

func (x *UsageEntry) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *UsageEntry) GetUsage() int64 {
	if x != nil {
		return x.Usage
	}
	return 0
}

func (x *UsageEntry) GetTimestamp() *timestamppb.Timestamp {
	if x != nil {
		return x.Timestamp
	}
	return nil
}

func (x *UsageEntry) GetHardwareFingerprint() string {
	if x != nil {
		return x.HardwareFingerprint
	}
	return ""
}

func (x *UsageEntry) GetLicenseId() string {
	if x != nil {
		return x.LicenseId
	}
	return ""
}

func (x *UsageEntry) GetRequestedValue() int64 {
	if x != nil {
		return x.RequestedValue
	}
	return 0
}

func (x *UsageEntry) GetServerTimestamp() *timestamppb.Timestamp {
	if x != nil {
		return x.ServerTimestamp
	}
	return nil
}

func (x *UsageEntry) GetPrevRecordHash() string {
	if x != nil {
		return x.PrevRecordHash
	}
	return ""
}

func (x *UsageEntry) GetRecordHash() string {
	if x != nil {
		return x.RecordHash
	}
	return ""
}

func (x *UsageEntry) GetSignature() string {
	if x != nil {
		return x.Signature
	}
	return ""
}

// License limit for a specific metric type
type LicenseLimit struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Metric type (e.g., "stackland.vcpu.cores")
	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
	// Limit value
	Limit         int64 `protobuf:"varint,2,opt,name=limit,proto3" json:"limit,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *LicenseLimit) Reset() {
	*x = LicenseLimit{}
	mi := &file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LicenseLimit) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LicenseLimit) ProtoMessage() {}

func (x *LicenseLimit) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LicenseLimit.ProtoReflect.Descriptor instead.
func (*LicenseLimit) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_rawDescGZIP(), []int{1}
}

func (x *LicenseLimit) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *LicenseLimit) GetLimit() int64 {
	if x != nil {
		return x.Limit
	}
	return 0
}

// License information returned by the sync API
type License struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Unique license ID
	LicenseId string `protobuf:"bytes,1,opt,name=license_id,json=licenseId,proto3" json:"license_id,omitempty"`
	// Product type this license applies to
	ProductType ProductType `protobuf:"varint,2,opt,name=product_type,json=productType,proto3,enum=yandex.cloud.marketplace.stacklandlicenseapi.v1.ProductType" json:"product_type,omitempty"`
	// Organization ID
	OrganizationId string `protobuf:"bytes,3,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"`
	// Billing account ID
	BillingAccountId string `protobuf:"bytes,4,opt,name=billing_account_id,json=billingAccountId,proto3" json:"billing_account_id,omitempty"`
	// Timestamp when the license was issued
	IssuedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=issued_at,json=issuedAt,proto3" json:"issued_at,omitempty"`
	// Timestamp when the license expires
	ValidUntil *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=valid_until,json=validUntil,proto3" json:"valid_until,omitempty"`
	// List of limits for this license
	Limits []*LicenseLimit `protobuf:"bytes,7,rep,name=limits,proto3" json:"limits,omitempty"`
	// Digital signature for this license
	Signature     string `protobuf:"bytes,8,opt,name=signature,proto3" json:"signature,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *License) Reset() {
	*x = License{}
	mi := &file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *License) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*License) ProtoMessage() {}

func (x *License) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use License.ProtoReflect.Descriptor instead.
func (*License) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_rawDescGZIP(), []int{2}
}

func (x *License) GetLicenseId() string {
	if x != nil {
		return x.LicenseId
	}
	return ""
}

func (x *License) GetProductType() ProductType {
	if x != nil {
		return x.ProductType
	}
	return ProductType_PRODUCT_TYPE_UNSPECIFIED
}

func (x *License) GetOrganizationId() string {
	if x != nil {
		return x.OrganizationId
	}
	return ""
}

func (x *License) GetBillingAccountId() string {
	if x != nil {
		return x.BillingAccountId
	}
	return ""
}

func (x *License) GetIssuedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.IssuedAt
	}
	return nil
}

func (x *License) GetValidUntil() *timestamppb.Timestamp {
	if x != nil {
		return x.ValidUntil
	}
	return nil
}

func (x *License) GetLimits() []*LicenseLimit {
	if x != nil {
		return x.Limits
	}
	return nil
}

func (x *License) GetSignature() string {
	if x != nil {
		return x.Signature
	}
	return ""
}

// Request to synchronize licenses and submit usage data
type SyncRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Organization ID
	OrganizationId string `protobuf:"bytes,1,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"`
	// Billing account ID
	BillingAccountId string `protobuf:"bytes,2,opt,name=billing_account_id,json=billingAccountId,proto3" json:"billing_account_id,omitempty"`
	// License server ID
	LicenseServerId string `protobuf:"bytes,3,opt,name=license_server_id,json=licenseServerId,proto3" json:"license_server_id,omitempty"`
	// Usage data for audit
	Usage         []*UsageEntry `protobuf:"bytes,4,rep,name=usage,proto3" json:"usage,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SyncRequest) Reset() {
	*x = SyncRequest{}
	mi := &file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SyncRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SyncRequest) ProtoMessage() {}

func (x *SyncRequest) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SyncRequest.ProtoReflect.Descriptor instead.
func (*SyncRequest) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_rawDescGZIP(), []int{3}
}

func (x *SyncRequest) GetOrganizationId() string {
	if x != nil {
		return x.OrganizationId
	}
	return ""
}

func (x *SyncRequest) GetBillingAccountId() string {
	if x != nil {
		return x.BillingAccountId
	}
	return ""
}

func (x *SyncRequest) GetLicenseServerId() string {
	if x != nil {
		return x.LicenseServerId
	}
	return ""
}

func (x *SyncRequest) GetUsage() []*UsageEntry {
	if x != nil {
		return x.Usage
	}
	return nil
}

// Result of the sync operation
type SyncUsageResult struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// List of licenses for different product types
	Licenses []*License `protobuf:"bytes,1,rep,name=licenses,proto3" json:"licenses,omitempty"`
	// Overall sync status
	SyncStatus SyncStatus `protobuf:"varint,2,opt,name=sync_status,json=syncStatus,proto3,enum=yandex.cloud.marketplace.stacklandlicenseapi.v1.SyncStatus" json:"sync_status,omitempty"`
	// Optional message (e.g., warnings or errors)
	Message       string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SyncUsageResult) Reset() {
	*x = SyncUsageResult{}
	mi := &file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SyncUsageResult) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SyncUsageResult) ProtoMessage() {}

func (x *SyncUsageResult) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SyncUsageResult.ProtoReflect.Descriptor instead.
func (*SyncUsageResult) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_rawDescGZIP(), []int{4}
}

func (x *SyncUsageResult) GetLicenses() []*License {
	if x != nil {
		return x.Licenses
	}
	return nil
}

func (x *SyncUsageResult) GetSyncStatus() SyncStatus {
	if x != nil {
		return x.SyncStatus
	}
	return SyncStatus_SYNC_STATUS_UNSPECIFIED
}

func (x *SyncUsageResult) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

// Metadata for sync operation
type SyncUsageMetadata struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Organization ID
	OrganizationId string `protobuf:"bytes,1,opt,name=organization_id,json=organizationId,proto3" json:"organization_id,omitempty"`
	// Billing account ID
	BillingAccountId string `protobuf:"bytes,2,opt,name=billing_account_id,json=billingAccountId,proto3" json:"billing_account_id,omitempty"`
	// License server ID
	LicenseServerId string `protobuf:"bytes,3,opt,name=license_server_id,json=licenseServerId,proto3" json:"license_server_id,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *SyncUsageMetadata) Reset() {
	*x = SyncUsageMetadata{}
	mi := &file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SyncUsageMetadata) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SyncUsageMetadata) ProtoMessage() {}

func (x *SyncUsageMetadata) ProtoReflect() protoreflect.Message {
	mi := &file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SyncUsageMetadata.ProtoReflect.Descriptor instead.
func (*SyncUsageMetadata) Descriptor() ([]byte, []int) {
	return file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_rawDescGZIP(), []int{5}
}

func (x *SyncUsageMetadata) GetOrganizationId() string {
	if x != nil {
		return x.OrganizationId
	}
	return ""
}

func (x *SyncUsageMetadata) GetBillingAccountId() string {
	if x != nil {
		return x.BillingAccountId
	}
	return ""
}

func (x *SyncUsageMetadata) GetLicenseServerId() string {
	if x != nil {
		return x.LicenseServerId
	}
	return ""
}

var File_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto protoreflect.FileDescriptor

const file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_rawDesc = "" +
	"\n" +
	":yandex/cloud/marketplace/stacklandlicenseapi/v1/sync.proto\x12/yandex.cloud.marketplace.stacklandlicenseapi.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1dyandex/cloud/validation.proto\"\x91\x05\n" +
	"\n" +
	"UsageEntry\x126\n" +
	"\x0finstallation_id\x18\x01 \x01(\tB\r\xe8\xc71\x01\x8a\xc81\x05<=100R\x0einstallationId\x12_\n" +
	"\fproduct_type\x18\x02 \x01(\x0e2<.yandex.cloud.marketplace.stacklandlicenseapi.v1.ProductTypeR\vproductType\x12!\n" +
	"\x04type\x18\x03 \x01(\tB\r\xe8\xc71\x01\x8a\xc81\x05<=100R\x04type\x12\x14\n" +
	"\x05usage\x18\x04 \x01(\x03R\x05usage\x12>\n" +
	"\ttimestamp\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampB\x04\xe8\xc71\x01R\ttimestamp\x12<\n" +
	"\x14hardware_fingerprint\x18\x06 \x01(\tB\t\x8a\xc81\x05<=500R\x13hardwareFingerprint\x12,\n" +
	"\n" +
	"license_id\x18\a \x01(\tB\r\xe8\xc71\x01\x8a\xc81\x05<=100R\tlicenseId\x12'\n" +
	"\x0frequested_value\x18\b \x01(\x03R\x0erequestedValue\x12K\n" +
	"\x10server_timestamp\x18\t \x01(\v2\x1a.google.protobuf.TimestampB\x04\xe8\xc71\x01R\x0fserverTimestamp\x124\n" +
	"\x10prev_record_hash\x18\n" +
	" \x01(\tB\n" +
	"\xe8\xc71\x01\x8a\xc81\x0264R\x0eprevRecordHash\x12+\n" +
	"\vrecord_hash\x18\v \x01(\tB\n" +
	"\xe8\xc71\x01\x8a\xc81\x0264R\n" +
	"recordHash\x12,\n" +
	"\tsignature\x18\f \x01(\tB\x0e\xe8\xc71\x01\x8a\xc81\x06<=1000R\tsignature\"8\n" +
	"\fLicenseLimit\x12\x12\n" +
	"\x04type\x18\x01 \x01(\tR\x04type\x12\x14\n" +
	"\x05limit\x18\x02 \x01(\x03R\x05limit\"\xcb\x03\n" +
	"\aLicense\x12\x1d\n" +
	"\n" +
	"license_id\x18\x01 \x01(\tR\tlicenseId\x12_\n" +
	"\fproduct_type\x18\x02 \x01(\x0e2<.yandex.cloud.marketplace.stacklandlicenseapi.v1.ProductTypeR\vproductType\x12'\n" +
	"\x0forganization_id\x18\x03 \x01(\tR\x0eorganizationId\x12,\n" +
	"\x12billing_account_id\x18\x04 \x01(\tR\x10billingAccountId\x127\n" +
	"\tissued_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\bissuedAt\x12;\n" +
	"\vvalid_until\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\n" +
	"validUntil\x12U\n" +
	"\x06limits\x18\a \x03(\v2=.yandex.cloud.marketplace.stacklandlicenseapi.v1.LicenseLimitR\x06limits\x12\x1c\n" +
	"\tsignature\x18\b \x01(\tR\tsignature\"\x9a\x02\n" +
	"\vSyncRequest\x125\n" +
	"\x0forganization_id\x18\x01 \x01(\tB\f\xe8\xc71\x01\x8a\xc81\x04<=50R\x0eorganizationId\x12:\n" +
	"\x12billing_account_id\x18\x02 \x01(\tB\f\xe8\xc71\x01\x8a\xc81\x04<=50R\x10billingAccountId\x129\n" +
	"\x11license_server_id\x18\x03 \x01(\tB\r\xe8\xc71\x01\x8a\xc81\x05<=100R\x0flicenseServerId\x12]\n" +
	"\x05usage\x18\x04 \x03(\v2;.yandex.cloud.marketplace.stacklandlicenseapi.v1.UsageEntryB\n" +
	"\x82\xc81\x06<=1000R\x05usage\"\xdf\x01\n" +
	"\x0fSyncUsageResult\x12T\n" +
	"\blicenses\x18\x01 \x03(\v28.yandex.cloud.marketplace.stacklandlicenseapi.v1.LicenseR\blicenses\x12\\\n" +
	"\vsync_status\x18\x02 \x01(\x0e2;.yandex.cloud.marketplace.stacklandlicenseapi.v1.SyncStatusR\n" +
	"syncStatus\x12\x18\n" +
	"\amessage\x18\x03 \x01(\tR\amessage\"\x96\x01\n" +
	"\x11SyncUsageMetadata\x12'\n" +
	"\x0forganization_id\x18\x01 \x01(\tR\x0eorganizationId\x12,\n" +
	"\x12billing_account_id\x18\x02 \x01(\tR\x10billingAccountId\x12*\n" +
	"\x11license_server_id\x18\x03 \x01(\tR\x0flicenseServerId*\xba\x01\n" +
	"\vProductType\x12\x1c\n" +
	"\x18PRODUCT_TYPE_UNSPECIFIED\x10\x00\x12\x1a\n" +
	"\x16PRODUCT_TYPE_STACKLAND\x10\x01\x12\x19\n" +
	"\x15PRODUCT_TYPE_DATALENS\x10\x02\x12\x1a\n" +
	"\x16PRODUCT_TYPE_AI_STUDIO\x10\x03\x12\x1c\n" +
	"\x18PRODUCT_TYPE_SPEECHSENSE\x10\x04\x12\x1c\n" +
	"\x18PRODUCT_TYPE_ROBOTICS_AI\x10\x05*I\n" +
	"\n" +
	"SyncStatus\x12\x1b\n" +
	"\x17SYNC_STATUS_UNSPECIFIED\x10\x00\x12\x06\n" +
	"\x02OK\x10\x01\x12\v\n" +
	"\aWARNING\x10\x02\x12\t\n" +
	"\x05ERROR\x10\x03B\x9e\x01\n" +
	"3yandex.cloud.api.marketplace.stacklandlicenseapi.v1Zggithub.com/yandex-cloud/go-genproto/yandex/cloud/marketplace/stacklandlicenseapi/v1;stacklandlicenseapib\x06proto3"

var (
	file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_rawDescOnce sync.Once
	file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_rawDescData []byte
)

func file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_rawDescGZIP() []byte {
	file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_rawDescOnce.Do(func() {
		file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_rawDesc), len(file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_rawDesc)))
	})
	return file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_rawDescData
}

var file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_goTypes = []any{
	(ProductType)(0),              // 0: yandex.cloud.marketplace.stacklandlicenseapi.v1.ProductType
	(SyncStatus)(0),               // 1: yandex.cloud.marketplace.stacklandlicenseapi.v1.SyncStatus
	(*UsageEntry)(nil),            // 2: yandex.cloud.marketplace.stacklandlicenseapi.v1.UsageEntry
	(*LicenseLimit)(nil),          // 3: yandex.cloud.marketplace.stacklandlicenseapi.v1.LicenseLimit
	(*License)(nil),               // 4: yandex.cloud.marketplace.stacklandlicenseapi.v1.License
	(*SyncRequest)(nil),           // 5: yandex.cloud.marketplace.stacklandlicenseapi.v1.SyncRequest
	(*SyncUsageResult)(nil),       // 6: yandex.cloud.marketplace.stacklandlicenseapi.v1.SyncUsageResult
	(*SyncUsageMetadata)(nil),     // 7: yandex.cloud.marketplace.stacklandlicenseapi.v1.SyncUsageMetadata
	(*timestamppb.Timestamp)(nil), // 8: google.protobuf.Timestamp
}
var file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_depIdxs = []int32{
	0,  // 0: yandex.cloud.marketplace.stacklandlicenseapi.v1.UsageEntry.product_type:type_name -> yandex.cloud.marketplace.stacklandlicenseapi.v1.ProductType
	8,  // 1: yandex.cloud.marketplace.stacklandlicenseapi.v1.UsageEntry.timestamp:type_name -> google.protobuf.Timestamp
	8,  // 2: yandex.cloud.marketplace.stacklandlicenseapi.v1.UsageEntry.server_timestamp:type_name -> google.protobuf.Timestamp
	0,  // 3: yandex.cloud.marketplace.stacklandlicenseapi.v1.License.product_type:type_name -> yandex.cloud.marketplace.stacklandlicenseapi.v1.ProductType
	8,  // 4: yandex.cloud.marketplace.stacklandlicenseapi.v1.License.issued_at:type_name -> google.protobuf.Timestamp
	8,  // 5: yandex.cloud.marketplace.stacklandlicenseapi.v1.License.valid_until:type_name -> google.protobuf.Timestamp
	3,  // 6: yandex.cloud.marketplace.stacklandlicenseapi.v1.License.limits:type_name -> yandex.cloud.marketplace.stacklandlicenseapi.v1.LicenseLimit
	2,  // 7: yandex.cloud.marketplace.stacklandlicenseapi.v1.SyncRequest.usage:type_name -> yandex.cloud.marketplace.stacklandlicenseapi.v1.UsageEntry
	4,  // 8: yandex.cloud.marketplace.stacklandlicenseapi.v1.SyncUsageResult.licenses:type_name -> yandex.cloud.marketplace.stacklandlicenseapi.v1.License
	1,  // 9: yandex.cloud.marketplace.stacklandlicenseapi.v1.SyncUsageResult.sync_status:type_name -> yandex.cloud.marketplace.stacklandlicenseapi.v1.SyncStatus
	10, // [10:10] is the sub-list for method output_type
	10, // [10:10] is the sub-list for method input_type
	10, // [10:10] is the sub-list for extension type_name
	10, // [10:10] is the sub-list for extension extendee
	0,  // [0:10] is the sub-list for field type_name
}

func init() { file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_init() }
func file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_init() {
	if File_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_rawDesc), len(file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_rawDesc)),
			NumEnums:      2,
			NumMessages:   6,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_goTypes,
		DependencyIndexes: file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_depIdxs,
		EnumInfos:         file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_enumTypes,
		MessageInfos:      file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_msgTypes,
	}.Build()
	File_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto = out.File
	file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_goTypes = nil
	file_yandex_cloud_marketplace_stacklandlicenseapi_v1_sync_proto_depIdxs = nil
}
