
I recently migrated some infrastructure from AWS to Google Cloud and needed a way to upload a file to a storage bucket. For AWS there's an awesome Haskell library (aws), but I couldn't find anything comparable for interacting with the Google Cloud APIs. While it wouldn't be difficult to write a standalone function for that simple task, I decided to package it up in a library. Currently implemented is uploading a ByteString to a bucket and some metadata server queries. That's all I need currently, but I may add a few more selected APIs in the near future (mostly around managing compute instances). Adding support for new APIs should be relatively easy, even without having to change the library itself. All the internals are exposed to users of the library. There is nothing private or hidden. The library gives you access to convenience functions to send HTTP requests. That, coupled with a bit of JSON/aeson parsing, should cover most use cases. http://hackage.haskell.org/package/google-cloud https://github.com/wereHamster/google-cloud#readme

Great!
Would love to hear if anyone's pursuing generating the API's from the discovery
service https://developers.google.com/discovery/libraries in a manner
similar to the excellent amazonka for AWS.
Mark
On Wed, Aug 26, 2015 at 2:57 PM, Tomas Carnecky
I recently migrated some infrastructure from AWS to Google Cloud and needed a way to upload a file to a storage bucket. For AWS there's an awesome Haskell library (aws), but I couldn't find anything comparable for interacting with the Google Cloud APIs.
While it wouldn't be difficult to write a standalone function for that simple task, I decided to package it up in a library. Currently implemented is uploading a ByteString to a bucket and some metadata server queries. That's all I need currently, but I may add a few more selected APIs in the near future (mostly around managing compute instances).
Adding support for new APIs should be relatively easy, even without having to change the library itself. All the internals are exposed to users of the library. There is nothing private or hidden. The library gives you access to convenience functions to send HTTP requests. That, coupled with a bit of JSON/aeson parsing, should cover most use cases.
http://hackage.haskell.org/package/google-cloud https://github.com/wereHamster/google-cloud#readme
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe

I'd recently generated a limited operation set for personal use. I had no
plans to continue with the entire API surface, but I'll tidy up what I have
and put it on GitHub if others are interested.
On 27 August 2015 at 00:37, Mark Fine
Great!
Would love to hear if anyone's pursuing generating the API's from the discovery service https://developers.google.com/discovery/libraries in a manner similar to the excellent amazonka for AWS.
Mark
On Wed, Aug 26, 2015 at 2:57 PM, Tomas Carnecky
wrote: I recently migrated some infrastructure from AWS to Google Cloud and needed a way to upload a file to a storage bucket. For AWS there's an awesome Haskell library (aws), but I couldn't find anything comparable for interacting with the Google Cloud APIs.
While it wouldn't be difficult to write a standalone function for that simple task, I decided to package it up in a library. Currently implemented is uploading a ByteString to a bucket and some metadata server queries. That's all I need currently, but I may add a few more selected APIs in the near future (mostly around managing compute instances).
Adding support for new APIs should be relatively easy, even without having to change the library itself. All the internals are exposed to users of the library. There is nothing private or hidden. The library gives you access to convenience functions to send HTTP requests. That, coupled with a bit of JSON/aeson parsing, should cover most use cases.
http://hackage.haskell.org/package/google-cloud https://github.com/wereHamster/google-cloud#readme
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe

Hi, thank you both, it's going to be helpful! Cheers, Adrien On 2015-08-27 08:14, Brendan Hay wrote:
I'd recently generated a limited operation set for personal use. I had no plans to continue with the entire API surface, but I'll tidy up what I have and put it on GitHub if others are interested.
On 27 August 2015 at 00:37, Mark Fine
wrote: Great!
Would love to hear if anyone's pursuing generating the API's from the discovery service [4] in a manner similar to the excellent amazonka for AWS.
Mark
On Wed, Aug 26, 2015 at 2:57 PM, Tomas Carnecky
wrote: I recently migrated some infrastructure from AWS to Google Cloud and needed a way to upload a file to a storage bucket. For AWS there's an awesome Haskell library (aws), but I couldn't find anything comparable for interacting with the Google Cloud APIs.
While it wouldn't be difficult to write a standalone function for that simple task, I decided to package it up in a library. Currently implemented is uploading a ByteString to a bucket and some metadata server queries. That's all I need currently, but I may add a few more selected APIs in the near future (mostly around managing compute instances).
Adding support for new APIs should be relatively easy, even without having to change the library itself. All the internals are exposed to users of the library. There is nothing private or hidden. The library gives you access to convenience functions to send HTTP requests. That, coupled with a bit of JSON/aeson parsing, should cover most use cases.
http://hackage.haskell.org/package/google-cloud [1]
https://github.com/wereHamster/google-cloud#readme [2]
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe [3]
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe [3]
Links: ------ [1] http://hackage.haskell.org/package/google-cloud [2] https://github.com/wereHamster/google-cloud#readme [3] http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe [4] https://developers.google.com/discovery/libraries
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
-- Adrien Haxaire www.adrienhaxaire.org | @adrienhaxaire

I wasn't aware of the discovery service. I'd be open to adding it to my
library (though then it becomes more a google-api library rather than
google-cloud).
I see that there is no description of the internal metadata service. Maybe
it doesn't count as a google api?
On Thu, Aug 27, 2015 at 9:07 AM Adrien Haxaire
Hi,
thank you both, it's going to be helpful!
Cheers, Adrien
On 2015-08-27 08:14, Brendan Hay wrote:
I'd recently generated a limited operation set for personal use. I had no plans to continue with the entire API surface, but I'll tidy up what I have and put it on GitHub if others are interested.
On 27 August 2015 at 00:37, Mark Fine
wrote: Great!
Would love to hear if anyone's pursuing generating the API's from the discovery service [4] in a manner similar to the excellent amazonka for AWS.
Mark
On Wed, Aug 26, 2015 at 2:57 PM, Tomas Carnecky
wrote: I recently migrated some infrastructure from AWS to Google Cloud and needed a way to upload a file to a storage bucket. For AWS there's an awesome Haskell library (aws), but I couldn't find anything comparable for interacting with the Google Cloud APIs.
While it wouldn't be difficult to write a standalone function for that simple task, I decided to package it up in a library. Currently implemented is uploading a ByteString to a bucket and some metadata server queries. That's all I need currently, but I may add a few more selected APIs in the near future (mostly around managing compute instances).
Adding support for new APIs should be relatively easy, even without having to change the library itself. All the internals are exposed to users of the library. There is nothing private or hidden. The library gives you access to convenience functions to send HTTP requests. That, coupled with a bit of JSON/aeson parsing, should cover most use cases.
http://hackage.haskell.org/package/google-cloud [1]
https://github.com/wereHamster/google-cloud#readme [2]
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe [3]
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe [3]
Links: ------ [1] http://hackage.haskell.org/package/google-cloud [2] https://github.com/wereHamster/google-cloud#readme [3] http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe [4] https://developers.google.com/discovery/libraries
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
-- Adrien Haxaire www.adrienhaxaire.org | @adrienhaxaire _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe

Brendan your work is awesome and enabling us to use Haskell in more and
more applications! Thanks!
http://brendanhay.nz/gogol-comprehensive-haskell-google-client/
Mark
On Wednesday, August 26, 2015, Brendan Hay
I'd recently generated a limited operation set for personal use. I had no plans to continue with the entire API surface, but I'll tidy up what I have and put it on GitHub if others are interested.
On 27 August 2015 at 00:37, Mark Fine
javascript:_e(%7B%7D,'cvml','mark.fine@gmail.com');> wrote: Great!
Would love to hear if anyone's pursuing generating the API's from the discovery service https://developers.google.com/discovery/libraries in a manner similar to the excellent amazonka for AWS.
Mark
On Wed, Aug 26, 2015 at 2:57 PM, Tomas Carnecky
javascript:_e(%7B%7D,'cvml','tomas.carnecky@gmail.com');> wrote: I recently migrated some infrastructure from AWS to Google Cloud and needed a way to upload a file to a storage bucket. For AWS there's an awesome Haskell library (aws), but I couldn't find anything comparable for interacting with the Google Cloud APIs.
While it wouldn't be difficult to write a standalone function for that simple task, I decided to package it up in a library. Currently implemented is uploading a ByteString to a bucket and some metadata server queries. That's all I need currently, but I may add a few more selected APIs in the near future (mostly around managing compute instances).
Adding support for new APIs should be relatively easy, even without having to change the library itself. All the internals are exposed to users of the library. There is nothing private or hidden. The library gives you access to convenience functions to send HTTP requests. That, coupled with a bit of JSON/aeson parsing, should cover most use cases.
http://hackage.haskell.org/package/google-cloud https://github.com/wereHamster/google-cloud#readme
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org javascript:_e(%7B%7D,'cvml','Haskell-Cafe@haskell.org'); http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org javascript:_e(%7B%7D,'cvml','Haskell-Cafe@haskell.org'); http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
participants (4)
-
Adrien Haxaire
-
Brendan Hay
-
Mark Fine
-
Tomas Carnecky