//Generated by wsdl2apex

public class AsyncS3Amazon {
    public class ListAllMyBucketsResponse_elementFuture extends System.WebServiceCalloutFuture {
        public s3Amazon.ListAllMyBucketsResult getValue() {
            s3Amazon.ListAllMyBucketsResponse_element response = (s3Amazon.ListAllMyBucketsResponse_element)System.WebServiceCallout.endInvoke(this);
            return response.ListAllMyBucketsResponse;
        }
    }
    public class GetObjectExtendedResponse_elementFuture extends System.WebServiceCalloutFuture {
        public s3Amazon.GetObjectResult getValue() {
            s3Amazon.GetObjectExtendedResponse_element response = (s3Amazon.GetObjectExtendedResponse_element)System.WebServiceCallout.endInvoke(this);
            return response.GetObjectResponse;
        }
    }
    public class GetObjectAccessControlPolicyResponse_elementFuture extends System.WebServiceCalloutFuture {
        public s3Amazon.AccessControlPolicy getValue() {
            s3Amazon.GetObjectAccessControlPolicyResponse_element response = (s3Amazon.GetObjectAccessControlPolicyResponse_element)System.WebServiceCallout.endInvoke(this);
            return response.GetObjectAccessControlPolicyResponse;
        }
    }
    public class SetBucketAccessControlPolicyResponse_elementFuture extends System.WebServiceCalloutFuture {
        public void getValue() {
            System.WebServiceCallout.endInvoke(this);
        }
    }
    public class PutObjectResponse_elementFuture extends System.WebServiceCalloutFuture {
        public s3Amazon.PutObjectResult getValue() {
            s3Amazon.PutObjectResponse_element response = (s3Amazon.PutObjectResponse_element)System.WebServiceCallout.endInvoke(this);
            return response.PutObjectResponse;
        }
    }
    public class GetObjectResponse_elementFuture extends System.WebServiceCalloutFuture {
        public s3Amazon.GetObjectResult getValue() {
            s3Amazon.GetObjectResponse_element response = (s3Amazon.GetObjectResponse_element)System.WebServiceCallout.endInvoke(this);
            return response.GetObjectResponse;
        }
    }
    public class CreateBucketResponse_elementFuture extends System.WebServiceCalloutFuture {
        public s3Amazon.CreateBucketResult getValue() {
            s3Amazon.CreateBucketResponse_element response = (s3Amazon.CreateBucketResponse_element)System.WebServiceCallout.endInvoke(this);
            return response.CreateBucketReturn;
        }
    }
    public class GetBucketLoggingStatusResponse_elementFuture extends System.WebServiceCalloutFuture {
        public s3Amazon.BucketLoggingStatus getValue() {
            s3Amazon.GetBucketLoggingStatusResponse_element response = (s3Amazon.GetBucketLoggingStatusResponse_element)System.WebServiceCallout.endInvoke(this);
            return response.GetBucketLoggingStatusResponse;
        }
    }
    public class GetBucketAccessControlPolicyResponse_elementFuture extends System.WebServiceCalloutFuture {
        public s3Amazon.AccessControlPolicy getValue() {
            s3Amazon.GetBucketAccessControlPolicyResponse_element response = (s3Amazon.GetBucketAccessControlPolicyResponse_element)System.WebServiceCallout.endInvoke(this);
            return response.GetBucketAccessControlPolicyResponse;
        }
    }
    public class DeleteBucketResponse_elementFuture extends System.WebServiceCalloutFuture {
        public s3Amazon.Status getValue() {
            s3Amazon.DeleteBucketResponse_element response = (s3Amazon.DeleteBucketResponse_element)System.WebServiceCallout.endInvoke(this);
            return response.DeleteBucketResponse;
        }
    }
    public class DeleteObjectResponse_elementFuture extends System.WebServiceCalloutFuture {
        public s3Amazon.Status getValue() {
            s3Amazon.DeleteObjectResponse_element response = (s3Amazon.DeleteObjectResponse_element)System.WebServiceCallout.endInvoke(this);
            return response.DeleteObjectResponse;
        }
    }
    public class PutObjectInlineResponse_elementFuture extends System.WebServiceCalloutFuture {
        public s3Amazon.PutObjectResult getValue() {
            s3Amazon.PutObjectInlineResponse_element response = (s3Amazon.PutObjectInlineResponse_element)System.WebServiceCallout.endInvoke(this);
            return response.PutObjectInlineResponse;
        }
    }
    public class SetObjectAccessControlPolicyResponse_elementFuture extends System.WebServiceCalloutFuture {
        public void getValue() {
            System.WebServiceCallout.endInvoke(this);
        }
    }
    public class ListBucketResponse_elementFuture extends System.WebServiceCalloutFuture {
        public s3Amazon.ListBucketResult getValue() {
            s3Amazon.ListBucketResponse_element response = (s3Amazon.ListBucketResponse_element)System.WebServiceCallout.endInvoke(this);
            return response.ListBucketResponse;
        }
    }
    public class SetBucketLoggingStatusResponse_elementFuture extends System.WebServiceCalloutFuture {
        public void getValue() {
            System.WebServiceCallout.endInvoke(this);
        }
    }
    public class AsyncAmazonS3 {
        public String endpoint_x = 'https://s3.amazonaws.com/soap';
        public Map<String,String> inputHttpHeaders_x;
        public String clientCertName_x;
        public Integer timeout_x;
        private String[] ns_map_type_info = new String[]{'http://s3.amazonaws.com/doc/2006-03-01/', 's3Amazon'};
        public AsyncS3Amazon.ListAllMyBucketsResponse_elementFuture beginListAllMyBuckets(System.Continuation continuation,String AWSAccessKeyId,DateTime Timestamp,String Signature) {
            s3Amazon.ListAllMyBuckets_element request_x = new s3Amazon.ListAllMyBuckets_element();
            request_x.AWSAccessKeyId = AWSAccessKeyId;
            request_x.Timestamp = Timestamp;
            request_x.Signature = Signature;
            return (AsyncS3Amazon.ListAllMyBucketsResponse_elementFuture) System.WebServiceCallout.beginInvoke(
              this,
              request_x,
              AsyncS3Amazon.ListAllMyBucketsResponse_elementFuture.class,
              continuation,
              new String[]{endpoint_x,
              '',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'ListAllMyBuckets',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'ListAllMyBucketsResponse',
              's3Amazon.ListAllMyBucketsResponse_element'}
            );
        }
        public AsyncS3Amazon.GetObjectExtendedResponse_elementFuture beginGetObjectExtended(System.Continuation continuation,String Bucket,String Key,Boolean GetMetadata,Boolean GetData,Boolean InlineData,Long ByteRangeStart,Long ByteRangeEnd,DateTime IfModifiedSince,DateTime IfUnmodifiedSince,String[] IfMatch,String[] IfNoneMatch,Boolean ReturnCompleteObjectOnConditionFailure,String AWSAccessKeyId,DateTime Timestamp,String Signature,String Credential) {
            s3Amazon.GetObjectExtended_element request_x = new s3Amazon.GetObjectExtended_element();
            request_x.Bucket = Bucket;
            request_x.Key = Key;
            request_x.GetMetadata = GetMetadata;
            request_x.GetData = GetData;
            request_x.InlineData = InlineData;
            request_x.ByteRangeStart = ByteRangeStart;
            request_x.ByteRangeEnd = ByteRangeEnd;
            request_x.IfModifiedSince = IfModifiedSince;
            request_x.IfUnmodifiedSince = IfUnmodifiedSince;
            request_x.IfMatch = IfMatch;
            request_x.IfNoneMatch = IfNoneMatch;
            request_x.ReturnCompleteObjectOnConditionFailure = ReturnCompleteObjectOnConditionFailure;
            request_x.AWSAccessKeyId = AWSAccessKeyId;
            request_x.Timestamp = Timestamp;
            request_x.Signature = Signature;
            request_x.Credential = Credential;
            return (AsyncS3Amazon.GetObjectExtendedResponse_elementFuture) System.WebServiceCallout.beginInvoke(
              this,
              request_x,
              AsyncS3Amazon.GetObjectExtendedResponse_elementFuture.class,
              continuation,
              new String[]{endpoint_x,
              '',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'GetObjectExtended',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'GetObjectExtendedResponse',
              's3Amazon.GetObjectExtendedResponse_element'}
            );
        }
        public AsyncS3Amazon.GetObjectAccessControlPolicyResponse_elementFuture beginGetObjectAccessControlPolicy(System.Continuation continuation,String Bucket,String Key,String AWSAccessKeyId,DateTime Timestamp,String Signature,String Credential) {
            s3Amazon.GetObjectAccessControlPolicy_element request_x = new s3Amazon.GetObjectAccessControlPolicy_element();
            request_x.Bucket = Bucket;
            request_x.Key = Key;
            request_x.AWSAccessKeyId = AWSAccessKeyId;
            request_x.Timestamp = Timestamp;
            request_x.Signature = Signature;
            request_x.Credential = Credential;
            return (AsyncS3Amazon.GetObjectAccessControlPolicyResponse_elementFuture) System.WebServiceCallout.beginInvoke(
              this,
              request_x,
              AsyncS3Amazon.GetObjectAccessControlPolicyResponse_elementFuture.class,
              continuation,
              new String[]{endpoint_x,
              '',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'GetObjectAccessControlPolicy',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'GetObjectAccessControlPolicyResponse',
              's3Amazon.GetObjectAccessControlPolicyResponse_element'}
            );
        }
        public AsyncS3Amazon.SetBucketAccessControlPolicyResponse_elementFuture beginSetBucketAccessControlPolicy(System.Continuation continuation,String Bucket,s3Amazon.AccessControlList AccessControlList,String AWSAccessKeyId,DateTime Timestamp,String Signature,String Credential) {
            s3Amazon.SetBucketAccessControlPolicy_element request_x = new s3Amazon.SetBucketAccessControlPolicy_element();
            request_x.Bucket = Bucket;
            request_x.AccessControlList = AccessControlList;
            request_x.AWSAccessKeyId = AWSAccessKeyId;
            request_x.Timestamp = Timestamp;
            request_x.Signature = Signature;
            request_x.Credential = Credential;
            return (AsyncS3Amazon.SetBucketAccessControlPolicyResponse_elementFuture) System.WebServiceCallout.beginInvoke(
              this,
              request_x,
              AsyncS3Amazon.SetBucketAccessControlPolicyResponse_elementFuture.class,
              continuation,
              new String[]{endpoint_x,
              '',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'SetBucketAccessControlPolicy',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'SetBucketAccessControlPolicyResponse',
              's3Amazon.SetBucketAccessControlPolicyResponse_element'}
            );
        }
        public AsyncS3Amazon.PutObjectResponse_elementFuture beginPutObject(System.Continuation continuation,String Bucket,String Key,s3Amazon.MetadataEntry[] Metadata,Long ContentLength,s3Amazon.AccessControlList AccessControlList,String StorageClass,String AWSAccessKeyId,DateTime Timestamp,String Signature,String Credential) {
            s3Amazon.PutObject_element request_x = new s3Amazon.PutObject_element();
            request_x.Bucket = Bucket;
            request_x.Key = Key;
            request_x.Metadata = Metadata;
            request_x.ContentLength = ContentLength;
            request_x.AccessControlList = AccessControlList;
            request_x.StorageClass = StorageClass;
            request_x.AWSAccessKeyId = AWSAccessKeyId;
            request_x.Timestamp = Timestamp;
            request_x.Signature = Signature;
            request_x.Credential = Credential;
            return (AsyncS3Amazon.PutObjectResponse_elementFuture) System.WebServiceCallout.beginInvoke(
              this,
              request_x,
              AsyncS3Amazon.PutObjectResponse_elementFuture.class,
              continuation,
              new String[]{endpoint_x,
              '',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'PutObject',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'PutObjectResponse',
              's3Amazon.PutObjectResponse_element'}
            );
        }
        public AsyncS3Amazon.GetObjectResponse_elementFuture beginGetObject(System.Continuation continuation,String Bucket,String Key,Boolean GetMetadata,Boolean GetData,Boolean InlineData,String AWSAccessKeyId,DateTime Timestamp,String Signature,String Credential) {
            s3Amazon.GetObject_element request_x = new s3Amazon.GetObject_element();
            request_x.Bucket = Bucket;
            request_x.Key = Key;
            request_x.GetMetadata = GetMetadata;
            request_x.GetData = GetData;
            request_x.InlineData = InlineData;
            request_x.AWSAccessKeyId = AWSAccessKeyId;
            request_x.Timestamp = Timestamp;
            request_x.Signature = Signature;
            request_x.Credential = Credential;
            return (AsyncS3Amazon.GetObjectResponse_elementFuture) System.WebServiceCallout.beginInvoke(
              this,
              request_x,
              AsyncS3Amazon.GetObjectResponse_elementFuture.class,
              continuation,
              new String[]{endpoint_x,
              '',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'GetObject',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'GetObjectResponse',
              's3Amazon.GetObjectResponse_element'}
            );
        }
        public AsyncS3Amazon.CreateBucketResponse_elementFuture beginCreateBucket(System.Continuation continuation,String Bucket,s3Amazon.AccessControlList AccessControlList,String AWSAccessKeyId,DateTime Timestamp,String Signature) {
            s3Amazon.CreateBucket_element request_x = new s3Amazon.CreateBucket_element();
            request_x.Bucket = Bucket;
            request_x.AccessControlList = AccessControlList;
            request_x.AWSAccessKeyId = AWSAccessKeyId;
            request_x.Timestamp = Timestamp;
            request_x.Signature = Signature;
            return (AsyncS3Amazon.CreateBucketResponse_elementFuture) System.WebServiceCallout.beginInvoke(
              this,
              request_x,
              AsyncS3Amazon.CreateBucketResponse_elementFuture.class,
              continuation,
              new String[]{endpoint_x,
              '',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'CreateBucket',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'CreateBucketResponse',
              's3Amazon.CreateBucketResponse_element'}
            );
        }
        public AsyncS3Amazon.GetBucketLoggingStatusResponse_elementFuture beginGetBucketLoggingStatus(System.Continuation continuation,String Bucket,String AWSAccessKeyId,DateTime Timestamp,String Signature,String Credential) {
            s3Amazon.GetBucketLoggingStatus_element request_x = new s3Amazon.GetBucketLoggingStatus_element();
            request_x.Bucket = Bucket;
            request_x.AWSAccessKeyId = AWSAccessKeyId;
            request_x.Timestamp = Timestamp;
            request_x.Signature = Signature;
            request_x.Credential = Credential;
            return (AsyncS3Amazon.GetBucketLoggingStatusResponse_elementFuture) System.WebServiceCallout.beginInvoke(
              this,
              request_x,
              AsyncS3Amazon.GetBucketLoggingStatusResponse_elementFuture.class,
              continuation,
              new String[]{endpoint_x,
              '',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'GetBucketLoggingStatus',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'GetBucketLoggingStatusResponse',
              's3Amazon.GetBucketLoggingStatusResponse_element'}
            );
        }
        public AsyncS3Amazon.GetBucketAccessControlPolicyResponse_elementFuture beginGetBucketAccessControlPolicy(System.Continuation continuation,String Bucket,String AWSAccessKeyId,DateTime Timestamp,String Signature,String Credential) {
            s3Amazon.GetBucketAccessControlPolicy_element request_x = new s3Amazon.GetBucketAccessControlPolicy_element();
            request_x.Bucket = Bucket;
            request_x.AWSAccessKeyId = AWSAccessKeyId;
            request_x.Timestamp = Timestamp;
            request_x.Signature = Signature;
            request_x.Credential = Credential;
            return (AsyncS3Amazon.GetBucketAccessControlPolicyResponse_elementFuture) System.WebServiceCallout.beginInvoke(
              this,
              request_x,
              AsyncS3Amazon.GetBucketAccessControlPolicyResponse_elementFuture.class,
              continuation,
              new String[]{endpoint_x,
              '',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'GetBucketAccessControlPolicy',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'GetBucketAccessControlPolicyResponse',
              's3Amazon.GetBucketAccessControlPolicyResponse_element'}
            );
        }
        public AsyncS3Amazon.DeleteBucketResponse_elementFuture beginDeleteBucket(System.Continuation continuation,String Bucket,String AWSAccessKeyId,DateTime Timestamp,String Signature,String Credential) {
            s3Amazon.DeleteBucket_element request_x = new s3Amazon.DeleteBucket_element();
            request_x.Bucket = Bucket;
            request_x.AWSAccessKeyId = AWSAccessKeyId;
            request_x.Timestamp = Timestamp;
            request_x.Signature = Signature;
            request_x.Credential = Credential;
            return (AsyncS3Amazon.DeleteBucketResponse_elementFuture) System.WebServiceCallout.beginInvoke(
              this,
              request_x,
              AsyncS3Amazon.DeleteBucketResponse_elementFuture.class,
              continuation,
              new String[]{endpoint_x,
              '',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'DeleteBucket',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'DeleteBucketResponse',
              's3Amazon.DeleteBucketResponse_element'}
            );
        }
        public AsyncS3Amazon.DeleteObjectResponse_elementFuture beginDeleteObject(System.Continuation continuation,String Bucket,String Key,String AWSAccessKeyId,DateTime Timestamp,String Signature,String Credential) {
            s3Amazon.DeleteObject_element request_x = new s3Amazon.DeleteObject_element();
            request_x.Bucket = Bucket;
            request_x.Key = Key;
            request_x.AWSAccessKeyId = AWSAccessKeyId;
            request_x.Timestamp = Timestamp;
            request_x.Signature = Signature;
            request_x.Credential = Credential;
            return (AsyncS3Amazon.DeleteObjectResponse_elementFuture) System.WebServiceCallout.beginInvoke(
              this,
              request_x,
              AsyncS3Amazon.DeleteObjectResponse_elementFuture.class,
              continuation,
              new String[]{endpoint_x,
              '',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'DeleteObject',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'DeleteObjectResponse',
              's3Amazon.DeleteObjectResponse_element'}
            );
        }
        public AsyncS3Amazon.PutObjectInlineResponse_elementFuture beginPutObjectInline(System.Continuation continuation,String Bucket,String Key,s3Amazon.MetadataEntry[] Metadata,String Data,Long ContentLength,s3Amazon.AccessControlList AccessControlList,String StorageClass,String AWSAccessKeyId,DateTime Timestamp,String Signature,String Credential) {
            s3Amazon.PutObjectInline_element request_x = new s3Amazon.PutObjectInline_element();
            request_x.Bucket = Bucket;
            request_x.Key = Key;
            request_x.Metadata = Metadata;
            request_x.Data = Data;
            request_x.ContentLength = ContentLength;
            request_x.AccessControlList = AccessControlList;
            request_x.StorageClass = StorageClass;
            request_x.AWSAccessKeyId = AWSAccessKeyId;
            request_x.Timestamp = Timestamp;
            request_x.Signature = Signature;
            request_x.Credential = Credential;
            return (AsyncS3Amazon.PutObjectInlineResponse_elementFuture) System.WebServiceCallout.beginInvoke(
              this,
              request_x,
              AsyncS3Amazon.PutObjectInlineResponse_elementFuture.class,
              continuation,
              new String[]{endpoint_x,
              '',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'PutObjectInline',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'PutObjectInlineResponse',
              's3Amazon.PutObjectInlineResponse_element'}
            );
        }
        public AsyncS3Amazon.SetObjectAccessControlPolicyResponse_elementFuture beginSetObjectAccessControlPolicy(System.Continuation continuation,String Bucket,String Key,s3Amazon.AccessControlList AccessControlList,String AWSAccessKeyId,DateTime Timestamp,String Signature,String Credential) {
            s3Amazon.SetObjectAccessControlPolicy_element request_x = new s3Amazon.SetObjectAccessControlPolicy_element();
            request_x.Bucket = Bucket;
            request_x.Key = Key;
            request_x.AccessControlList = AccessControlList;
            request_x.AWSAccessKeyId = AWSAccessKeyId;
            request_x.Timestamp = Timestamp;
            request_x.Signature = Signature;
            request_x.Credential = Credential;
            return (AsyncS3Amazon.SetObjectAccessControlPolicyResponse_elementFuture) System.WebServiceCallout.beginInvoke(
              this,
              request_x,
              AsyncS3Amazon.SetObjectAccessControlPolicyResponse_elementFuture.class,
              continuation,
              new String[]{endpoint_x,
              '',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'SetObjectAccessControlPolicy',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'SetObjectAccessControlPolicyResponse',
              's3Amazon.SetObjectAccessControlPolicyResponse_element'}
            );
        }
        public AsyncS3Amazon.ListBucketResponse_elementFuture beginListBucket(System.Continuation continuation,String Bucket,String Prefix,String Marker,Integer MaxKeys,String Delimiter,String AWSAccessKeyId,DateTime Timestamp,String Signature,String Credential) {
            s3Amazon.ListBucket_element request_x = new s3Amazon.ListBucket_element();
            request_x.Bucket = Bucket;
            request_x.Prefix = Prefix;
            request_x.Marker = Marker;
            request_x.MaxKeys = MaxKeys;
            request_x.Delimiter = Delimiter;
            request_x.AWSAccessKeyId = AWSAccessKeyId;
            request_x.Timestamp = Timestamp;
            request_x.Signature = Signature;
            request_x.Credential = Credential;
            return (AsyncS3Amazon.ListBucketResponse_elementFuture) System.WebServiceCallout.beginInvoke(
              this,
              request_x,
              AsyncS3Amazon.ListBucketResponse_elementFuture.class,
              continuation,
              new String[]{endpoint_x,
              '',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'ListBucket',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'ListBucketResponse',
              's3Amazon.ListBucketResponse_element'}
            );
        }
        public AsyncS3Amazon.SetBucketLoggingStatusResponse_elementFuture beginSetBucketLoggingStatus(System.Continuation continuation,String Bucket,String AWSAccessKeyId,DateTime Timestamp,String Signature,String Credential,s3Amazon.BucketLoggingStatus BucketLoggingStatus) {
            s3Amazon.SetBucketLoggingStatus_element request_x = new s3Amazon.SetBucketLoggingStatus_element();
            request_x.Bucket = Bucket;
            request_x.AWSAccessKeyId = AWSAccessKeyId;
            request_x.Timestamp = Timestamp;
            request_x.Signature = Signature;
            request_x.Credential = Credential;
            request_x.BucketLoggingStatus = BucketLoggingStatus;
            return (AsyncS3Amazon.SetBucketLoggingStatusResponse_elementFuture) System.WebServiceCallout.beginInvoke(
              this,
              request_x,
              AsyncS3Amazon.SetBucketLoggingStatusResponse_elementFuture.class,
              continuation,
              new String[]{endpoint_x,
              '',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'SetBucketLoggingStatus',
              'http://s3.amazonaws.com/doc/2006-03-01/',
              'SetBucketLoggingStatusResponse',
              's3Amazon.SetBucketLoggingStatusResponse_element'}
            );
        }
    }
}