oss/api_op_publicaccessblock.go (115 lines of code) (raw):
package oss
import (
"context"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/signer"
)
type PublicAccessBlockConfiguration struct {
// Specifies whether to enable Block Public Access.true: enables Block Public Access.false (default): disables Block Public Access.
BlockPublicAccess *bool `xml:"BlockPublicAccess"`
}
type GetPublicAccessBlockRequest struct {
RequestCommon
}
type GetPublicAccessBlockResult struct {
// The container in which the Block Public Access configurations are stored.
PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `output:"body,PublicAccessBlockConfiguration,xml"`
ResultCommon
}
// GetPublicAccessBlock Queries the Block Public Access configurations of OSS resources.
func (c *Client) GetPublicAccessBlock(ctx context.Context, request *GetPublicAccessBlockRequest, optFns ...func(*Options)) (*GetPublicAccessBlockResult, error) {
var err error
if request == nil {
request = &GetPublicAccessBlockRequest{}
}
input := &OperationInput{
OpName: "GetPublicAccessBlock",
Method: "GET",
Headers: map[string]string{
HTTPHeaderContentType: contentTypeXML,
},
Parameters: map[string]string{
"publicAccessBlock": "",
},
}
input.OpMetadata.Set(signer.SubResource, []string{"publicAccessBlock"})
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 := &GetPublicAccessBlockResult{}
if err = c.unmarshalOutput(result, output, unmarshalBodyXmlMix); err != nil {
return nil, c.toClientError(err, "UnmarshalOutputFail", output)
}
return result, err
}
type PutPublicAccessBlockRequest struct {
// Request body.
PublicAccessBlockConfiguration *PublicAccessBlockConfiguration `input:"body,PublicAccessBlockConfiguration,xml,required"`
RequestCommon
}
type PutPublicAccessBlockResult struct {
ResultCommon
}
// PutPublicAccessBlock Enables or disables Block Public Access for Object Storage Service (OSS) resources.
func (c *Client) PutPublicAccessBlock(ctx context.Context, request *PutPublicAccessBlockRequest, optFns ...func(*Options)) (*PutPublicAccessBlockResult, error) {
var err error
if request == nil {
request = &PutPublicAccessBlockRequest{}
}
input := &OperationInput{
OpName: "PutPublicAccessBlock",
Method: "PUT",
Headers: map[string]string{
HTTPHeaderContentType: contentTypeXML,
},
Parameters: map[string]string{
"publicAccessBlock": "",
},
}
input.OpMetadata.Set(signer.SubResource, []string{"publicAccessBlock"})
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 := &PutPublicAccessBlockResult{}
if err = c.unmarshalOutput(result, output, unmarshalBodyXmlMix); err != nil {
return nil, c.toClientError(err, "UnmarshalOutputFail", output)
}
return result, err
}
type DeletePublicAccessBlockRequest struct {
RequestCommon
}
type DeletePublicAccessBlockResult struct {
ResultCommon
}
// DeletePublicAccessBlock Deletes the Block Public Access configurations of OSS resources.
func (c *Client) DeletePublicAccessBlock(ctx context.Context, request *DeletePublicAccessBlockRequest, optFns ...func(*Options)) (*DeletePublicAccessBlockResult, error) {
var err error
if request == nil {
request = &DeletePublicAccessBlockRequest{}
}
input := &OperationInput{
OpName: "DeletePublicAccessBlock",
Method: "DELETE",
Headers: map[string]string{
HTTPHeaderContentType: contentTypeXML,
},
Parameters: map[string]string{
"publicAccessBlock": "",
},
}
input.OpMetadata.Set(signer.SubResource, []string{"publicAccessBlock"})
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 := &DeletePublicAccessBlockResult{}
if err = c.unmarshalOutput(result, output, unmarshalBodyXmlMix); err != nil {
return nil, c.toClientError(err, "UnmarshalOutputFail", output)
}
return result, err
}