|
| 1 | +// THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY! |
| 2 | + |
| 3 | +package apis |
| 4 | + |
| 5 | +import ( |
| 6 | + "context" |
| 7 | + querylog "github.com/qiniu/go-sdk/v7/audit/apis/query_log" |
| 8 | + auth "github.com/qiniu/go-sdk/v7/auth" |
| 9 | + uplog "github.com/qiniu/go-sdk/v7/internal/uplog" |
| 10 | + errors "github.com/qiniu/go-sdk/v7/storagev2/errors" |
| 11 | + httpclient "github.com/qiniu/go-sdk/v7/storagev2/http_client" |
| 12 | + region "github.com/qiniu/go-sdk/v7/storagev2/region" |
| 13 | + uptoken "github.com/qiniu/go-sdk/v7/storagev2/uptoken" |
| 14 | + "net/url" |
| 15 | + "strconv" |
| 16 | + "strings" |
| 17 | + "time" |
| 18 | +) |
| 19 | + |
| 20 | +type innerQueryLogRequest querylog.Request |
| 21 | + |
| 22 | +func (query *innerQueryLogRequest) buildQuery() (url.Values, error) { |
| 23 | + allQuery := make(url.Values) |
| 24 | + if query.StartTime != "" { |
| 25 | + allQuery.Set("start_time", query.StartTime) |
| 26 | + } else { |
| 27 | + return nil, errors.MissingRequiredFieldError{Name: "StartTime"} |
| 28 | + } |
| 29 | + if query.EndTime != "" { |
| 30 | + allQuery.Set("end_time", query.EndTime) |
| 31 | + } else { |
| 32 | + return nil, errors.MissingRequiredFieldError{Name: "EndTime"} |
| 33 | + } |
| 34 | + if query.ServiceName != "" { |
| 35 | + allQuery.Set("service_name", query.ServiceName) |
| 36 | + } |
| 37 | + if len(query.EventNames) > 0 { |
| 38 | + for _, value := range query.EventNames { |
| 39 | + allQuery.Add("event_names", value) |
| 40 | + } |
| 41 | + } |
| 42 | + if query.PrincipalId != "" { |
| 43 | + allQuery.Set("principal_id", query.PrincipalId) |
| 44 | + } |
| 45 | + if query.AccessKeyId != "" { |
| 46 | + allQuery.Set("access_key_id", query.AccessKeyId) |
| 47 | + } |
| 48 | + if query.Limit != 0 { |
| 49 | + allQuery.Set("limit", strconv.FormatInt(query.Limit, 10)) |
| 50 | + } |
| 51 | + if query.NextMark != "" { |
| 52 | + allQuery.Set("next_mark", query.NextMark) |
| 53 | + } |
| 54 | + return allQuery, nil |
| 55 | +} |
| 56 | + |
| 57 | +type QueryLogRequest = querylog.Request |
| 58 | +type QueryLogResponse = querylog.Response |
| 59 | + |
| 60 | +// 审计日志查询 |
| 61 | +func (audit *Audit) QueryLog(ctx context.Context, request *QueryLogRequest, options *Options) (*QueryLogResponse, error) { |
| 62 | + if options == nil { |
| 63 | + options = &Options{} |
| 64 | + } |
| 65 | + innerRequest := (*innerQueryLogRequest)(request) |
| 66 | + serviceNames := []region.ServiceName{region.ServiceApi} |
| 67 | + if innerRequest.Credentials == nil && audit.client.GetCredentials() == nil { |
| 68 | + return nil, errors.MissingRequiredFieldError{Name: "Credentials"} |
| 69 | + } |
| 70 | + pathSegments := make([]string, 0, 2) |
| 71 | + pathSegments = append(pathSegments, "audit", "log-query") |
| 72 | + path := "/" + strings.Join(pathSegments, "/") |
| 73 | + var rawQuery string |
| 74 | + if query, err := innerRequest.buildQuery(); err != nil { |
| 75 | + return nil, err |
| 76 | + } else { |
| 77 | + rawQuery += query.Encode() |
| 78 | + } |
| 79 | + uplogInterceptor, err := uplog.NewRequestUplog("queryLog", "", "", func() (string, error) { |
| 80 | + credentials := innerRequest.Credentials |
| 81 | + if credentials == nil { |
| 82 | + credentials = audit.client.GetCredentials() |
| 83 | + } |
| 84 | + putPolicy, err := uptoken.NewPutPolicy("", time.Now().Add(time.Hour)) |
| 85 | + if err != nil { |
| 86 | + return "", err |
| 87 | + } |
| 88 | + return uptoken.NewSigner(putPolicy, credentials).GetUpToken(ctx) |
| 89 | + }) |
| 90 | + if err != nil { |
| 91 | + return nil, err |
| 92 | + } |
| 93 | + req := httpclient.Request{Method: "GET", ServiceNames: serviceNames, Path: path, RawQuery: rawQuery, Endpoints: options.OverwrittenEndpoints, Region: options.OverwrittenRegion, Interceptors: []httpclient.Interceptor{uplogInterceptor}, AuthType: auth.TokenQiniu, Credentials: innerRequest.Credentials, BufferResponse: true, OnRequestProgress: options.OnRequestProgress} |
| 94 | + if options.OverwrittenEndpoints == nil && options.OverwrittenRegion == nil && audit.client.GetRegions() == nil { |
| 95 | + bucketHosts := httpclient.DefaultBucketHosts() |
| 96 | + |
| 97 | + req.Region = audit.client.GetAllRegions() |
| 98 | + if req.Region == nil { |
| 99 | + if options.OverwrittenBucketHosts != nil { |
| 100 | + if bucketHosts, err = options.OverwrittenBucketHosts.GetEndpoints(ctx); err != nil { |
| 101 | + return nil, err |
| 102 | + } |
| 103 | + } |
| 104 | + allRegionsOptions := region.AllRegionsProviderOptions{UseInsecureProtocol: audit.client.UseInsecureProtocol(), HostFreezeDuration: audit.client.GetHostFreezeDuration(), Resolver: audit.client.GetResolver(), Chooser: audit.client.GetChooser(), BeforeSign: audit.client.GetBeforeSignCallback(), AfterSign: audit.client.GetAfterSignCallback(), SignError: audit.client.GetSignErrorCallback(), BeforeResolve: audit.client.GetBeforeResolveCallback(), AfterResolve: audit.client.GetAfterResolveCallback(), ResolveError: audit.client.GetResolveErrorCallback(), BeforeBackoff: audit.client.GetBeforeBackoffCallback(), AfterBackoff: audit.client.GetAfterBackoffCallback(), BeforeRequest: audit.client.GetBeforeRequestCallback(), AfterResponse: audit.client.GetAfterResponseCallback()} |
| 105 | + if hostRetryConfig := audit.client.GetHostRetryConfig(); hostRetryConfig != nil { |
| 106 | + allRegionsOptions.RetryMax = hostRetryConfig.RetryMax |
| 107 | + allRegionsOptions.Backoff = hostRetryConfig.Backoff |
| 108 | + } |
| 109 | + credentials := innerRequest.Credentials |
| 110 | + if credentials == nil { |
| 111 | + credentials = audit.client.GetCredentials() |
| 112 | + } |
| 113 | + if req.Region, err = region.NewAllRegionsProvider(credentials, bucketHosts, &allRegionsOptions); err != nil { |
| 114 | + return nil, err |
| 115 | + } |
| 116 | + } |
| 117 | + } |
| 118 | + var respBody QueryLogResponse |
| 119 | + if err := audit.client.DoAndAcceptJSON(ctx, &req, &respBody); err != nil { |
| 120 | + return nil, err |
| 121 | + } |
| 122 | + return &respBody, nil |
| 123 | +} |
0 commit comments