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  }