diff --git a/go.mod b/go.mod index 41564d2..4fe9e28 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/hashicorp/go-multierror v1.0.0 github.com/mitchellh/go-testing-interface v1.0.0 github.com/stretchr/testify v1.7.0 - github.com/yandex-cloud/go-genproto v0.0.0-20231030104359-acaea815f0c1 + github.com/yandex-cloud/go-genproto v0.0.0-20231107052148-5652a7212ca4 golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 google.golang.org/genproto v0.0.0-20211021150943-2b146023228c google.golang.org/grpc v1.41.0 diff --git a/go.sum b/go.sum index 7df94f6..bf23093 100644 --- a/go.sum +++ b/go.sum @@ -204,6 +204,8 @@ github.com/yandex-cloud/go-genproto v0.0.0-20231023135945-63f600d5bf4e h1:Mag6Es github.com/yandex-cloud/go-genproto v0.0.0-20231023135945-63f600d5bf4e/go.mod h1:HEUYX/p8966tMUHHT+TsS0hF/Ca/NYwqprC5WXSDMfE= github.com/yandex-cloud/go-genproto v0.0.0-20231030104359-acaea815f0c1 h1:eFzLYSDEhF296CzDVitnDMl5ZwTVVUqjTBs5IT5dPkI= github.com/yandex-cloud/go-genproto v0.0.0-20231030104359-acaea815f0c1/go.mod h1:HEUYX/p8966tMUHHT+TsS0hF/Ca/NYwqprC5WXSDMfE= +github.com/yandex-cloud/go-genproto v0.0.0-20231107052148-5652a7212ca4 h1:XzTkwoLNq8cOhVxTWbbjUD//yhqMxxGF7EQibmFv8xY= +github.com/yandex-cloud/go-genproto v0.0.0-20231107052148-5652a7212ca4/go.mod h1:HEUYX/p8966tMUHHT+TsS0hF/Ca/NYwqprC5WXSDMfE= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= diff --git a/sdkresolvers/logs_export_resolver.go b/sdkresolvers/logs_export_resolver.go new file mode 100644 index 0000000..bf56340 --- /dev/null +++ b/sdkresolvers/logs_export_resolver.go @@ -0,0 +1,36 @@ +package sdkresolvers + +import ( + "context" + + "google.golang.org/grpc" + + "github.com/yandex-cloud/go-genproto/yandex/cloud/logging/v1" + ycsdk "github.com/yandex-cloud/go-sdk" +) + +type exportResolver struct { + BaseNameResolver +} + +func (r *exportResolver) Run(ctx context.Context, sdk *ycsdk.SDK, opts ...grpc.CallOption) error { + err := r.ensureFolderID() + if err != nil { + return err + } + resp, err := sdk.Logging().Export().List(ctx, &logging.ListExportsRequest{ + FolderId: r.FolderID(), + Filter: CreateResolverFilter("name", r.Name), + PageSize: DefaultResolverPageSize, + }, opts...) + if err != nil { + return err + } + return r.findName(resp.Exports, err) +} + +func ExportResolver(name string, opts ...ResolveOption) ycsdk.Resolver { + return &exportResolver{ + BaseNameResolver: NewBaseNameResolver(name, "export", opts...), + } +}