1// Copyright (c) 2016, 2018, 2019, Oracle and/or its affiliates. All rights reserved.
2// Code generated. DO NOT EDIT.
3
4// Object Storage Service API
5//
6// Common set of Object Storage and Archive Storage APIs for managing buckets, objects, and related resources.
7//
8
9package objectstorage
10
11import (
12	"github.com/oracle/oci-go-sdk/common"
13)
14
15// CopyObjectDetails The parameters required by Object Storage to process a request to copy an object to another bucket.
16// To use any of the API operations, you must be authorized in an IAM policy. If you are not authorized,
17// talk to an administrator. If you are an administrator who needs to write policies to give users access, see
18// Getting Started with Policies (https://docs.cloud.oracle.com/Content/Identity/Concepts/policygetstarted.htm).
19type CopyObjectDetails struct {
20
21	// The name of the object to be copied.
22	SourceObjectName *string `mandatory:"true" json:"sourceObjectName"`
23
24	// The destination region the object will be copied to, for example "us-ashburn-1".
25	DestinationRegion *string `mandatory:"true" json:"destinationRegion"`
26
27	// The destination Object Storage namespace the object will be copied to.
28	DestinationNamespace *string `mandatory:"true" json:"destinationNamespace"`
29
30	// The destination bucket the object will be copied to.
31	DestinationBucket *string `mandatory:"true" json:"destinationBucket"`
32
33	// The name of the destination object resulting from the copy operation.
34	DestinationObjectName *string `mandatory:"true" json:"destinationObjectName"`
35
36	// The entity tag (ETag) to match against that of the source object. Used to confirm that the source object
37	// with a given name is the version of that object storing a specified ETag.
38	SourceObjectIfMatchETag *string `mandatory:"false" json:"sourceObjectIfMatchETag"`
39
40	// The entity tag (ETag) to match against that of the destination object (an object intended to be overwritten).
41	// Used to confirm that the destination object stored under a given name is the version of that object
42	// storing a specified entity tag.
43	DestinationObjectIfMatchETag *string `mandatory:"false" json:"destinationObjectIfMatchETag"`
44
45	// The entity tag (ETag) to avoid matching. The only valid value is '*', which indicates that the request should fail
46	// if the object already exists in the destination bucket.
47	DestinationObjectIfNoneMatchETag *string `mandatory:"false" json:"destinationObjectIfNoneMatchETag"`
48
49	// Arbitrary string keys and values for the user-defined metadata for the object. Keys must be in
50	// "opc-meta-*" format. Avoid entering confidential information. Metadata key-value pairs entered
51	// in this field are assigned to the destination object. If you enter no metadata values, the destination
52	// object will inherit any existing metadata values associated with the source object.
53	DestinationObjectMetadata map[string]string `mandatory:"false" json:"destinationObjectMetadata"`
54}
55
56func (m CopyObjectDetails) String() string {
57	return common.PointerString(m)
58}
59