On Tue, Dec 24, 2013 at 12:34 AM, Jackie Wheeler <[email protected]> wrote:

> 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.
>

Exactly, that is what I was trying to convey! May be it is a good idea to
have this mentioned as part of the connector development guide.


>
> 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
>
>
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to