Totally agree on the mapping. In the connectors I documented, I painstakingly 
created links to the docs of each original API. If this mapping were provided 
up front, it would have saved me a lot of time. 

Sent from my iPhone

> On Dec 22, 2013, at 10:23 PM, Samisa Abeysinghe <[email protected]> wrote:
> 
> Further to this, as I raised the concern in the other connector threads, we 
> need to know the API which we are wrapping. These are connector design 
> discussions, and hence, cannot decide the names without reference to the 
> original API. 
> 
> Once the connector is done, the user may not worry about the original API, as 
> at that time, it depends if the user knows the internals. But to get the 
> connector API right, and help debug the issues in the connector 
> implementation, we need the mapping. 
> 
> 
> 
> Thanks,
> Samisa...
> 
> 
> 
> Samisa Abeysinghe
> 
> Vice President Training 
> 
> WSO2 Inc. 
> http://wso2.com
> 
> 
> 
> 
>> On Mon, Dec 23, 2013 at 11:42 AM, Samisa Abeysinghe <[email protected]> wrote:
>> We do not do any magic with the connector. It is better to have the same API 
>> for the sake of familiarity. 
>> 
>> It is the need to write code that we drop. 
>> 
>> Thanks,
>> Samisa...
>> 
>> 
>> 
>> Samisa Abeysinghe
>> 
>> Vice President Training 
>> 
>> WSO2 Inc. 
>> http://wso2.com
>> 
>> 
>> 
>> 
>>> On Mon, Dec 23, 2013 at 9:54 AM, Jackie Wheeler <[email protected]> wrote:
>>> I don't quite agree. Our goal is to wrap the existing APIs and make it 
>>> easier for our users to use them. If the original API uses an unintuitive 
>>> or incorrect name (as is often the case), we have the opportunity to make 
>>> it clearer for our users. Likewise, our goal for the documentation should 
>>> not be just to copy and paste the original descriptions from the API's docs 
>>> but to improve on them where possible. Let's strive to make the connector 
>>> user experience better, not equal to, the experience with the original 
>>> APIs. 
>>> 
>>> Jackie
>>> 
>>> Sent from my iPhone
>>> 
>>>> On Dec 22, 2013, at 6:45 PM, Samisa Abeysinghe <[email protected]> wrote:
>>>> 
>>>> 
>>>> 
>>>> 
>>>>> On Sat, Dec 21, 2013 at 1:42 AM, Jackie Wheeler <[email protected]> wrote:
>>>>> I would change optionsObject to testObject or verifyObject, as "options" 
>>>>> doesn't make sense. Also, I'd change ObjectRestore to restoreObject. 
>>>> 
>>>> Guys, if we are wrapping the existing APIs with connector API, why would 
>>>> these sorts of naming questions appear. There is no point discussing the 
>>>> connector API, without relating to the corresponding back-end API. 
>>>> 
>>>> And if the back end API called it apples, we should not call it oranges. 
>>>> In other words, my point here, in simple terms is that, there should not 
>>>> be any "discussions" on the API semantics. It is already there in the 
>>>> original. 
>>>> 
>>>>  
>>>>> 
>>>>> Cheers,
>>>>> Jackie
>>>>> 
>>>>> 
>>>>>> On Fri, Dec 13, 2013 at 6:57 AM, indika prasad <[email protected]> 
>>>>>> wrote:
>>>>>> *Introduction*
>>>>>> 
>>>>>> Amazon S3 provides a simple web services interface that can be used to 
>>>>>> store
>>>>>> and retrieve any amount of data, at any time, from anywhere on the web. 
>>>>>> It
>>>>>> gives any developer access to the same highly scalable, reliable, secure,
>>>>>> fast, inexpensive infrastructure that Amazon uses to run its own global
>>>>>> network of web sites. The service aims to maximize benefits of scale and 
>>>>>> to
>>>>>> pass those benefits on to developers. Amazon S3 API is used to deal with
>>>>>> Amazon S3 to perform certain operations allowed by the API.
>>>>>> 
>>>>>> *Amazon S3 Connector Summery*
>>>>>> 
>>>>>> •       Connector Name:  amazons3-connector-1.0.0
>>>>>> •       Version: 1.0.0
>>>>>> •       Technology:  REST
>>>>>> 
>>>>>> *Authentication*
>>>>>> 
>>>>>> The Amazon S3 REST API uses the standard HTTP Authorization header to 
>>>>>> pass
>>>>>> authentication information. Developers are issued an AWS access key ID 
>>>>>> and
>>>>>> AWS secret access key when they register. For request authentication, the
>>>>>> AWSAccessKeyId element identifies the access key ID that was used to 
>>>>>> compute
>>>>>> the signature and, indirectly, the developer making the request.
>>>>>> 
>>>>>> *Domain definition*
>>>>>> 
>>>>>> 1.      *Bucket *- A bucket is a container for objects stored in Amazon 
>>>>>> S3. Every
>>>>>> object is contained in a bucket.
>>>>>> 
>>>>>> 2.      *Object *-Objects are the fundamental entities stored in Amazon 
>>>>>> S3.
>>>>>> Objects consist of object data and metadata. The data portion is opaque 
>>>>>> to
>>>>>> Amazon S3. The metadata is a set of name-value pairs that describe the
>>>>>> object. These include some default metadata, such as the date last 
>>>>>> modified
>>>>>> and standard HTTP metadata, such as Content-Type.
>>>>>> 
>>>>>> 3.      *Bucket Policy* - Bucket policies provide centralized, access 
>>>>>> control to
>>>>>> buckets and objects based on a variety of conditions, including Amazon S3
>>>>>> operations, requesters, resources, and aspects of the request (e.g., IP
>>>>>> address). The policies are expressed in our access policy language and
>>>>>> enable centralized management of permissions. The permissions attached 
>>>>>> to a
>>>>>> bucket apply to all of the objects in that bucket.
>>>>>> 
>>>>>> 4.      *Lifecycle *–Lifecycle management defines how Amazon S3 manages 
>>>>>> objects
>>>>>> during their lifetime.
>>>>>> 
>>>>>> 
>>>>>> 5.      *ACL *-Amazon S3 Access Control Lists (ACL) enable you to manage 
>>>>>> access
>>>>>> to buckets and objects. Each bucket and object has an ACL attached to it 
>>>>>> as
>>>>>> a subresource. It defines which AWS accounts or groups are granted access
>>>>>> and the type of access.
>>>>>> 
>>>>>> 
>>>>>> Selected Methods (24) for version 1.0.0
>>>>>> 
>>>>>> *OPERATION ON BUCKETS*
>>>>>>         *init *- configurations
>>>>>>         *getBuckets *- This implementation of the GET operation returns 
>>>>>> a list of
>>>>>> all buckets owned by the authenticated sender of the request.
>>>>>>         *deleteBucket *- This implementation of the DELETE operation 
>>>>>> deletes the
>>>>>> bucket named in the URI. All objects (including all object versions and
>>>>>> Delete Markers) in the bucket must be deleted before the bucket itself 
>>>>>> can
>>>>>> be deleted.
>>>>>>         *createBucket *-        This implementation of the PUT operation 
>>>>>> creates a new
>>>>>> bucket.
>>>>>>         *deleteBucketPolicy *-This implementation of the DELETE 
>>>>>> operation uses the
>>>>>> policy sub resource to delete the policy on a specified bucket.
>>>>>>         *deleteBucketWebsiteConfiguration *- This operation removes the 
>>>>>> website
>>>>>> configuration for a bucket.
>>>>>>         *getObjectsInBucket *- This implementation of the GET operation 
>>>>>> returns
>>>>>> some or all (up to 1000) of the objects in a bucket.
>>>>>>         *getBucketLifeCycle *- Returns the lifecycle configuration 
>>>>>> information set
>>>>>> on the bucket.
>>>>>>         *getBucketPolicy *- This implementation of the GET operation 
>>>>>> uses the
>>>>>> policy subresource to return the policy of a specified bucket.
>>>>>>         *getBucketObjectVersions *- You can use the versions subresource 
>>>>>> to list
>>>>>> metadata about all of the versions of objects in a bucket.
>>>>>>         *getBucketRequestPayment *- This implementation of the GET 
>>>>>> operation uses
>>>>>> the requestPayment subresource to return the request payment 
>>>>>> configuration
>>>>>> of a bucket.
>>>>>>         *getBucketVersioning *- This implementation of the GET operation 
>>>>>> uses the
>>>>>> versioning subresource to return the versioning state of a bucket.
>>>>>>         *createBucketWebsiteConfiguration *- Sets the configuration of 
>>>>>> the website
>>>>>> that is specified in the website subresource.
>>>>>>         *getWebSiteConfiguration *- This implementation of the GET 
>>>>>> operation
>>>>>> returns the website configuration associated with a bucket.
>>>>>>         *checkBucketPermission *-       This operation is useful to 
>>>>>> determine if a bucket
>>>>>> exists and you have permission to access it.
>>>>>>         *createBucketPolicy*- This implementation of the PUT operation 
>>>>>> uses the
>>>>>> policy subresource to add to or replace a policy on a bucket.
>>>>>>         *getBucketACL *-        This implementation of the GET operation 
>>>>>> uses the acl
>>>>>> subresource to return the access control list (ACL) of a bucket.
>>>>>> 
>>>>>> *OPERATIONS ON OBJECTS*
>>>>>>         *deleteObject *- The DELETE operation removes the null version 
>>>>>> (if there is
>>>>>> one) of an object and inserts a delete marker, which becomes the latest
>>>>>> version of the object.
>>>>>>         *deleteMultipleObjects *-       The Multi-Object Delete 
>>>>>> operation enables you to
>>>>>> delete multiple objects from a bucket using a single HTTP request. If you
>>>>>> know the object keys that you want to delete, then this operation 
>>>>>> provides a
>>>>>> suitable alternative to sending individual delete requests.
>>>>>>         *getObject *- This implementation of the GET operation retrieves 
>>>>>> objects
>>>>>> from Amazon S3.
>>>>>>         *createObject *- The POST operation adds an object to a 
>>>>>> specified bucket
>>>>>> using HTML forms.
>>>>>>         *getObjectMetaData *- The HEAD operation retrieves metadata from 
>>>>>> an object
>>>>>> without returning the object itself.
>>>>>>         *createObjectACL *- This implementation of the PUT operation 
>>>>>> uses the acl
>>>>>> subresource to set the access control list (ACL) permissions for an 
>>>>>> object
>>>>>> that already exists in a bucket.
>>>>>>         *createObjectCopy *- This implementation of the PUT operation 
>>>>>> creates a
>>>>>> copy of an object that is already stored in Amazon S3.
>>>>>> 
>>>>>> 
>>>>>> Methods that are not going to implement with version 1.0.0
>>>>>> *OPERATION ON BUCKETS*
>>>>>>         *getBucketCORS *- Returns the cors configuration information set 
>>>>>> for the
>>>>>> bucket.
>>>>>>         *listMultipartUploads *- This operation lists in-progress 
>>>>>> multipart
>>>>>> uploads. An in-progress multipart upload is a multipart upload that has 
>>>>>> been
>>>>>> initiated, using the Initiate Multipart Upload request, but has not yet 
>>>>>> been
>>>>>> completed or aborted.
>>>>>>         *createBucketACL *- This implementation of the PUT operation 
>>>>>> uses the acl
>>>>>> subresource to set the permissions on an existing bucket using access
>>>>>> control lists (ACL).
>>>>>>         *createBucketCORS *-    Sets the cors configuration for your 
>>>>>> bucket. If the
>>>>>> configuration exists, Amazon S3 replaces it.
>>>>>>         *createBucketLifeCycle *- Creates a new lifecycle configuration 
>>>>>> for the
>>>>>> bucket or replaces an existing lifecycle configuration.
>>>>>>         *createBucketLogging *- This implementation of the PUT operation 
>>>>>> uses the
>>>>>> logging subresource to set the logging parameters for a bucket and to
>>>>>> specify permissions for who can view and modify the logging parameters. 
>>>>>> To
>>>>>> set the logging status of a bucket, you must be the bucket owner.
>>>>>>         (NOTE: The logging implementation of PUT Bucket is a beta 
>>>>>> feature.)
>>>>>>         *createBucketNotification *- This implementation of the PUT 
>>>>>> operation uses
>>>>>> the notification subresource to enable notifications of specified events 
>>>>>> for
>>>>>> a bucket.
>>>>>>         *createBucketTagging *- This implementation of the PUT operation 
>>>>>> uses the
>>>>>> tagging subresource to add a set of tags to an existing bucket.
>>>>>>         *deleteBucketTagging *- This implementation of the DELETE 
>>>>>> operation uses
>>>>>> the tagging subresource to remove a tag set from the specified bucket.
>>>>>>         *createBucketRequestPayment *- This implementation of the PUT 
>>>>>> operation
>>>>>> uses the requestPayment subresource to set the request payment 
>>>>>> configuration
>>>>>> of a bucket.
>>>>>>         *createBucketVersioning *- This implementation of the PUT 
>>>>>> operation uses
>>>>>> the versioning subresource to set the versioning state of an existing
>>>>>> bucket.
>>>>>>         *deleteBucketCors *-Deletes the cors configuration information 
>>>>>> set for the
>>>>>> bucket.
>>>>>>         *getBucketLocation *-   This implementation of the GET operation 
>>>>>> uses the
>>>>>> location subresource to return a bucket's Region.
>>>>>>         *getBucketLogging *- This implementation of the GET operation 
>>>>>> uses the
>>>>>> logging subresource to return the logging status of a bucket and the
>>>>>> permissions users have to view and modify that status. (NOTE: Logging
>>>>>> functionality is currently in beta).
>>>>>>         *getBucketNotification *-       This implementation of the GET 
>>>>>> operation uses the
>>>>>> notification subresource to return the notification configuration of a
>>>>>> bucket.
>>>>>>         *getBucketTagging *- This implementation of the GET operation 
>>>>>> uses the
>>>>>> tagging subresource to return the tag set associated with the bucket.
>>>>>>         *deleteBucketLifecycle *-       Deletes the lifecycle 
>>>>>> configuration from the
>>>>>> specified bucket.
>>>>>> 
>>>>>> *OPERATIONS ON OBJECTS*
>>>>>>         *createObject *- This implementation of the PUT operation adds 
>>>>>> an object to
>>>>>> a bucket.
>>>>>>         *optionsObject *- A browser can send this preflight request to 
>>>>>> Amazon S3 to
>>>>>> determine if it can send an actual request with the specific origin, HTTP
>>>>>> method, and headers.
>>>>>>         *ObjectRestore *-  Restores a temporary copy of an archived 
>>>>>> object. In the
>>>>>> request, you specify the number of days that you want the restored copy 
>>>>>> to
>>>>>> exist. After the specified period, Amazon S3 deletes the temporary copy.
>>>>>> Note that the object remains archived; Amazon S3 deletes only the 
>>>>>> restored
>>>>>> copy.
>>>>>>         *initiateMultipartUpload *- This operation initiates a multipart 
>>>>>> upload and
>>>>>> returns an upload ID. This upload ID is used to associate all the parts 
>>>>>> in
>>>>>> the specific multipart upload.
>>>>>>         *uploadPart *- This operation uploads a part in a multipart 
>>>>>> upload.
>>>>>>         Note: In this operation you provide part data in your request. 
>>>>>> However, you
>>>>>> have an option to specify your existing Amazon S3 object as data source 
>>>>>> for
>>>>>> the part getting uploaded. To upload a part from an existing object you 
>>>>>> use
>>>>>> the Upload Part (Copy) operation. For more information, see Upload Part -
>>>>>> Copy.
>>>>>>         *uploadPartCopy *- Uploads a part by copying data from an 
>>>>>> existing object
>>>>>> as data source.
>>>>>>         *completeMultipartUpload        *This operation completes a 
>>>>>> multipart upload by
>>>>>> assembling previously uploaded parts.
>>>>>>         *abortMultipartUpload *- This operation aborts a multipart 
>>>>>> upload.
>>>>>>         *getObjectACL *- This implementation of the GET operation uses 
>>>>>> the acl
>>>>>> subresource to return the access control list (ACL) of an object.
>>>>>>         *getObjectTorrent *- This implementation of the GET operation 
>>>>>> uses the
>>>>>> torrent subresource to return torrent files from a bucket.
>>>>>>         *listParts *- This operation lists the parts that have been 
>>>>>> uploaded for a
>>>>>> specific multipart upload.
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> View this message in context: 
>>>>>> http://wso2-oxygen-tank.10903.n7.nabble.com/Connector-amazon-s3-tp89705.html
>>>>>> Sent from the WSO2 Architecture mailing list archive at Nabble.com.
>>>>>> _______________________________________________
>>>>>> Architecture mailing list
>>>>>> [email protected]
>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>> 
>>>>> 
>>>>> 
>>>>> -- 
>>>>> Jackie Wheeler
>>>>> VP, Technical Content
>>>>> WSO2, Inc.  
>>>>> Mobile: +1 510 725-2876
>>>>> http://wso2.com/
>>>>> 
>>>>> _______________________________________________
>>>>> Architecture mailing list
>>>>> [email protected]
>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>> 
>>>> 
>>>> _______________________________________________
>>>> Architecture mailing list
>>>> [email protected]
>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>> 
>>> _______________________________________________
>>> Architecture mailing list
>>> [email protected]
>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>> 
>> 
> 
> _______________________________________________
> Architecture mailing list
> [email protected]
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to