oss/api_op_bucket_logging.go (248 lines of code) (raw):
package oss
import (
"context"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/signer"
)
type LoggingEnabled struct {
// The bucket that stores access logs.
TargetBucket *string `xml:"TargetBucket"`
// The prefix of the log objects. This parameter can be left empty.
TargetPrefix *string `xml:"TargetPrefix"`
}
type BucketLoggingStatus struct {
// Indicates the container used to store access logging information. This element is returned if it is enabled and is not returned if it is disabled.
LoggingEnabled *LoggingEnabled `xml:"LoggingEnabled"`
}
type LoggingHeaderSet struct {
// The list of the custom request headers.
Headers []string `xml:"header"`
}
type LoggingParamSet struct {
// The list of the custom URL parameters.
Parameters []string `xml:"parameter"`
}
type UserDefinedLogFieldsConfiguration struct {
// The container that stores the configurations of custom request headers.
HeaderSet *LoggingHeaderSet `xml:"HeaderSet"`
// The container that stores the configurations of custom URL parameters.
ParamSet *LoggingParamSet `xml:"ParamSet"`
}
type PutBucketLoggingRequest struct {
// The name of the bucket.
Bucket *string `input:"host,bucket,required"`
// The request body schema.
BucketLoggingStatus *BucketLoggingStatus `input:"body,BucketLoggingStatus,xml,required"`
RequestCommon
}
type PutBucketLoggingResult struct {
ResultCommon
}
// PutBucketLogging Enables logging for a bucket. After you enable logging for a bucket, Object Storage Service (OSS) generates logs every hour based on the defined naming rule and stores the logs as objects in the specified destination bucket.
func (c *Client) PutBucketLogging(ctx context.Context, request *PutBucketLoggingRequest, optFns ...func(*Options)) (*PutBucketLoggingResult, error) {
var err error
if request == nil {
request = &PutBucketLoggingRequest{}
}
input := &OperationInput{
OpName: "PutBucketLogging",
Method: "PUT",
Headers: map[string]string{
HTTPHeaderContentType: contentTypeXML,
},
Parameters: map[string]string{
"logging": "",
},
Bucket: request.Bucket,
}
input.OpMetadata.Set(signer.SubResource, []string{"logging"})
if err = c.marshalInput(request, input, updateContentMd5); err != nil {
return nil, err
}
output, err := c.invokeOperation(ctx, input, optFns)
if err != nil {
return nil, err
}
result := &PutBucketLoggingResult{}
if err = c.unmarshalOutput(result, output, unmarshalBodyXmlMix); err != nil {
return nil, c.toClientError(err, "UnmarshalOutputFail", output)
}
return result, err
}
type GetBucketLoggingRequest struct {
// The name of the bucket.
Bucket *string `input:"host,bucket,required"`
RequestCommon
}
type GetBucketLoggingResult struct {
// Indicates the container used to store access logging configuration of a bucket.
BucketLoggingStatus *BucketLoggingStatus `output:"body,BucketLoggingStatus,xml"`
ResultCommon
}
// GetBucketLogging Queries the configurations of access log collection of a bucket. Only the owner of a bucket can query the configurations of access log collection of the bucket.
func (c *Client) GetBucketLogging(ctx context.Context, request *GetBucketLoggingRequest, optFns ...func(*Options)) (*GetBucketLoggingResult, error) {
var err error
if request == nil {
request = &GetBucketLoggingRequest{}
}
input := &OperationInput{
OpName: "GetBucketLogging",
Method: "GET",
Headers: map[string]string{
HTTPHeaderContentType: contentTypeXML,
},
Parameters: map[string]string{
"logging": "",
},
Bucket: request.Bucket,
}
input.OpMetadata.Set(signer.SubResource, []string{"logging"})
if err = c.marshalInput(request, input, updateContentMd5); err != nil {
return nil, err
}
output, err := c.invokeOperation(ctx, input, optFns)
if err != nil {
return nil, err
}
result := &GetBucketLoggingResult{}
if err = c.unmarshalOutput(result, output, unmarshalBodyXmlMix); err != nil {
return nil, c.toClientError(err, "UnmarshalOutputFail", output)
}
return result, err
}
type DeleteBucketLoggingRequest struct {
// The name of the bucket.
Bucket *string `input:"host,bucket,required"`
RequestCommon
}
type DeleteBucketLoggingResult struct {
ResultCommon
}
// DeleteBucketLogging Disables the logging feature for a bucket.
func (c *Client) DeleteBucketLogging(ctx context.Context, request *DeleteBucketLoggingRequest, optFns ...func(*Options)) (*DeleteBucketLoggingResult, error) {
var err error
if request == nil {
request = &DeleteBucketLoggingRequest{}
}
input := &OperationInput{
OpName: "DeleteBucketLogging",
Method: "DELETE",
Headers: map[string]string{
HTTPHeaderContentType: contentTypeXML,
},
Parameters: map[string]string{
"logging": "",
},
Bucket: request.Bucket,
}
input.OpMetadata.Set(signer.SubResource, []string{"logging"})
if err = c.marshalInput(request, input, updateContentMd5); err != nil {
return nil, err
}
output, err := c.invokeOperation(ctx, input, optFns)
if err != nil {
return nil, err
}
result := &DeleteBucketLoggingResult{}
if err = c.unmarshalOutput(result, output, unmarshalBodyXmlMix); err != nil {
return nil, c.toClientError(err, "UnmarshalOutputFail", output)
}
return result, err
}
type PutUserDefinedLogFieldsConfigRequest struct {
// The name of the bucket.
Bucket *string `input:"host,bucket,required"`
// The container that stores the specified log configurations.
UserDefinedLogFieldsConfiguration *UserDefinedLogFieldsConfiguration `input:"body,UserDefinedLogFieldsConfiguration,xml,required"`
RequestCommon
}
type PutUserDefinedLogFieldsConfigResult struct {
ResultCommon
}
// PutUserDefinedLogFieldsConfig Customizes the user_defined_log_fields field in real-time logs by adding custom request headers or query parameters to the field for subsequent analysis of requests.
func (c *Client) PutUserDefinedLogFieldsConfig(ctx context.Context, request *PutUserDefinedLogFieldsConfigRequest, optFns ...func(*Options)) (*PutUserDefinedLogFieldsConfigResult, error) {
var err error
if request == nil {
request = &PutUserDefinedLogFieldsConfigRequest{}
}
input := &OperationInput{
OpName: "PutUserDefinedLogFieldsConfig",
Method: "PUT",
Headers: map[string]string{
HTTPHeaderContentType: contentTypeXML,
},
Parameters: map[string]string{
"userDefinedLogFieldsConfig": "",
},
Bucket: request.Bucket,
}
input.OpMetadata.Set(signer.SubResource, []string{"userDefinedLogFieldsConfig"})
if err = c.marshalInput(request, input, updateContentMd5); err != nil {
return nil, err
}
output, err := c.invokeOperation(ctx, input, optFns)
if err != nil {
return nil, err
}
result := &PutUserDefinedLogFieldsConfigResult{}
if err = c.unmarshalOutput(result, output, unmarshalBodyXmlMix); err != nil {
return nil, c.toClientError(err, "UnmarshalOutputFail", output)
}
return result, err
}
type GetUserDefinedLogFieldsConfigRequest struct {
// The name of the bucket.
Bucket *string `input:"host,bucket,required"`
RequestCommon
}
type GetUserDefinedLogFieldsConfigResult struct {
// The container for the user-defined logging configuration.
UserDefinedLogFieldsConfiguration *UserDefinedLogFieldsConfiguration `output:"body,UserDefinedLogFieldsConfiguration,xml"`
ResultCommon
}
// GetUserDefinedLogFieldsConfig Queries the custom configurations of the user_defined_log_fields field in the real-time logs of a bucket.
func (c *Client) GetUserDefinedLogFieldsConfig(ctx context.Context, request *GetUserDefinedLogFieldsConfigRequest, optFns ...func(*Options)) (*GetUserDefinedLogFieldsConfigResult, error) {
var err error
if request == nil {
request = &GetUserDefinedLogFieldsConfigRequest{}
}
input := &OperationInput{
OpName: "GetUserDefinedLogFieldsConfig",
Method: "GET",
Headers: map[string]string{
HTTPHeaderContentType: contentTypeXML,
},
Parameters: map[string]string{
"userDefinedLogFieldsConfig": "",
},
Bucket: request.Bucket,
}
input.OpMetadata.Set(signer.SubResource, []string{"userDefinedLogFieldsConfig"})
if err = c.marshalInput(request, input, updateContentMd5); err != nil {
return nil, err
}
output, err := c.invokeOperation(ctx, input, optFns)
if err != nil {
return nil, err
}
result := &GetUserDefinedLogFieldsConfigResult{}
if err = c.unmarshalOutput(result, output, unmarshalBodyXmlMix); err != nil {
return nil, c.toClientError(err, "UnmarshalOutputFail", output)
}
return result, err
}
type DeleteUserDefinedLogFieldsConfigRequest struct {
// The name of the bucket.
Bucket *string `input:"host,bucket,required"`
RequestCommon
}
type DeleteUserDefinedLogFieldsConfigResult struct {
ResultCommon
}
// DeleteUserDefinedLogFieldsConfig Deletes the custom configurations of the user_defined_log_fields field in the real-time logs of a bucket.
func (c *Client) DeleteUserDefinedLogFieldsConfig(ctx context.Context, request *DeleteUserDefinedLogFieldsConfigRequest, optFns ...func(*Options)) (*DeleteUserDefinedLogFieldsConfigResult, error) {
var err error
if request == nil {
request = &DeleteUserDefinedLogFieldsConfigRequest{}
}
input := &OperationInput{
OpName: "DeleteUserDefinedLogFieldsConfig",
Method: "DELETE",
Headers: map[string]string{
HTTPHeaderContentType: contentTypeXML,
},
Parameters: map[string]string{
"userDefinedLogFieldsConfig": "",
},
Bucket: request.Bucket,
}
input.OpMetadata.Set(signer.SubResource, []string{"userDefinedLogFieldsConfig"})
if err = c.marshalInput(request, input, updateContentMd5); err != nil {
return nil, err
}
output, err := c.invokeOperation(ctx, input, optFns)
if err != nil {
return nil, err
}
result := &DeleteUserDefinedLogFieldsConfigResult{}
if err = c.unmarshalOutput(result, output, unmarshalBodyXmlMix); err != nil {
return nil, c.toClientError(err, "UnmarshalOutputFail", output)
}
return result, err
}