github.com/qiniu/go-sdk/v7@v7.27.0/iam/apis/get_audits/api.go (about) 1 // THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY! 2 3 // 查询审计日志列表 4 package get_audits 5 6 import ( 7 "encoding/json" 8 9 credentials "github.com/qiniu/go-sdk/v7/storagev2/credentials" 10 errors "github.com/qiniu/go-sdk/v7/storagev2/errors" 11 ) 12 13 // 调用 API 所用的请求 14 type Request struct { 15 Iuid int64 // IAM 子账号 UID 16 Service string // 操作对应的服务别名 17 Action string // 操作别名 18 Resource string // 操作别名 19 StartTime string // 操作开始时间 20 EndTime string // 操作截止时间 21 Marker string // 下页标记 22 Limit int64 // 分页大小,默认 20,最大 2000 23 Credentials credentials.CredentialsProvider // 鉴权参数,用于生成鉴权凭证,如果为空,则使用 HTTPClientOptions 中的 CredentialsProvider 24 } 25 26 // 获取 API 所用的响应 27 type Response struct { 28 Data GetAuditLogsData // 审计日志信息 29 } 30 31 // 返回的审计日志 32 type GetAuditLog struct { 33 Id string // 记录 ID 34 RootUid int64 // 根用户 uid 35 Iuid int64 // 子账号 uid 36 Service string // 接口操作对应的服务 37 Action string // 接口操作别名 38 CreatedAt string // 日志创建时间 39 EventTime string // 请求发生时间 40 DurationMs int64 // 请求持续时间,毫秒 41 SourceIp string // 源 IP 42 UserEvent string // 用户代理 43 ErrorCode int64 // 错误码 44 ErrorMessage string // 错误消息 45 } 46 type jsonGetAuditLog struct { 47 Id string `json:"id"` // 记录 ID 48 RootUid int64 `json:"root_uid"` // 根用户 uid 49 Iuid int64 `json:"iuid"` // 子账号 uid 50 Service string `json:"service"` // 接口操作对应的服务 51 Action string `json:"action"` // 接口操作别名 52 CreatedAt string `json:"created_at"` // 日志创建时间 53 EventTime string `json:"event_time"` // 请求发生时间 54 DurationMs int64 `json:"duration_ms"` // 请求持续时间,毫秒 55 SourceIp string `json:"source_ip"` // 源 IP 56 UserEvent string `json:"user_event"` // 用户代理 57 ErrorCode int64 `json:"error_code"` // 错误码 58 ErrorMessage string `json:"error_message"` // 错误消息 59 } 60 61 func (j *GetAuditLog) MarshalJSON() ([]byte, error) { 62 if err := j.validate(); err != nil { 63 return nil, err 64 } 65 return json.Marshal(&jsonGetAuditLog{Id: j.Id, RootUid: j.RootUid, Iuid: j.Iuid, Service: j.Service, Action: j.Action, CreatedAt: j.CreatedAt, EventTime: j.EventTime, DurationMs: j.DurationMs, SourceIp: j.SourceIp, UserEvent: j.UserEvent, ErrorCode: j.ErrorCode, ErrorMessage: j.ErrorMessage}) 66 } 67 68 func (j *GetAuditLog) UnmarshalJSON(data []byte) error { 69 var nj jsonGetAuditLog 70 if err := json.Unmarshal(data, &nj); err != nil { 71 return err 72 } 73 j.Id = nj.Id 74 j.RootUid = nj.RootUid 75 j.Iuid = nj.Iuid 76 j.Service = nj.Service 77 j.Action = nj.Action 78 j.CreatedAt = nj.CreatedAt 79 j.EventTime = nj.EventTime 80 j.DurationMs = nj.DurationMs 81 j.SourceIp = nj.SourceIp 82 j.UserEvent = nj.UserEvent 83 j.ErrorCode = nj.ErrorCode 84 j.ErrorMessage = nj.ErrorMessage 85 return nil 86 } 87 88 func (j *GetAuditLog) validate() error { 89 if j.Id == "" { 90 return errors.MissingRequiredFieldError{Name: "Id"} 91 } 92 if j.RootUid == 0 { 93 return errors.MissingRequiredFieldError{Name: "RootUid"} 94 } 95 if j.Iuid == 0 { 96 return errors.MissingRequiredFieldError{Name: "Iuid"} 97 } 98 if j.Service == "" { 99 return errors.MissingRequiredFieldError{Name: "Service"} 100 } 101 if j.Action == "" { 102 return errors.MissingRequiredFieldError{Name: "Action"} 103 } 104 if j.CreatedAt == "" { 105 return errors.MissingRequiredFieldError{Name: "CreatedAt"} 106 } 107 if j.EventTime == "" { 108 return errors.MissingRequiredFieldError{Name: "EventTime"} 109 } 110 if j.DurationMs == 0 { 111 return errors.MissingRequiredFieldError{Name: "DurationMs"} 112 } 113 if j.SourceIp == "" { 114 return errors.MissingRequiredFieldError{Name: "SourceIp"} 115 } 116 if j.UserEvent == "" { 117 return errors.MissingRequiredFieldError{Name: "UserEvent"} 118 } 119 if j.ErrorCode == 0 { 120 return errors.MissingRequiredFieldError{Name: "ErrorCode"} 121 } 122 if j.ErrorMessage == "" { 123 return errors.MissingRequiredFieldError{Name: "ErrorMessage"} 124 } 125 return nil 126 } 127 128 // 返回的审计日志列表 129 type GetAuditLogs = []GetAuditLog 130 131 // 审计日志信息 132 type Data struct { 133 Marker string // 下页标记 134 List GetAuditLogs // 审计日志列表 135 } 136 137 // 返回的审计日志列表信息 138 type ( 139 GetAuditLogsData = Data 140 jsonData struct { 141 Marker string `json:"marker"` // 下页标记 142 List GetAuditLogs `json:"list"` // 审计日志列表 143 } 144 ) 145 146 func (j *Data) MarshalJSON() ([]byte, error) { 147 if err := j.validate(); err != nil { 148 return nil, err 149 } 150 return json.Marshal(&jsonData{Marker: j.Marker, List: j.List}) 151 } 152 153 func (j *Data) UnmarshalJSON(data []byte) error { 154 var nj jsonData 155 if err := json.Unmarshal(data, &nj); err != nil { 156 return err 157 } 158 j.Marker = nj.Marker 159 j.List = nj.List 160 return nil 161 } 162 163 func (j *Data) validate() error { 164 if j.Marker == "" { 165 return errors.MissingRequiredFieldError{Name: "Marker"} 166 } 167 if len(j.List) == 0 { 168 return errors.MissingRequiredFieldError{Name: "List"} 169 } 170 for _, value := range j.List { 171 if err := value.validate(); err != nil { 172 return err 173 } 174 } 175 return nil 176 } 177 178 // 返回的审计日志列表响应 179 type ( 180 GetAuditLogsResp = Response 181 jsonResponse struct { 182 Data GetAuditLogsData `json:"data"` // 审计日志信息 183 } 184 ) 185 186 func (j *Response) MarshalJSON() ([]byte, error) { 187 if err := j.validate(); err != nil { 188 return nil, err 189 } 190 return json.Marshal(&jsonResponse{Data: j.Data}) 191 } 192 193 func (j *Response) UnmarshalJSON(data []byte) error { 194 var nj jsonResponse 195 if err := json.Unmarshal(data, &nj); err != nil { 196 return err 197 } 198 j.Data = nj.Data 199 return nil 200 } 201 202 func (j *Response) validate() error { 203 if err := j.Data.validate(); err != nil { 204 return err 205 } 206 return nil 207 }