@@ -8,6 +8,9 @@ under heavy development and not intended for public consumption, caveat emptor!
88[](https://gitter.im/brendanhay/gogol)
99
1010* [Description](#description)
11+* [Documentation](#documentation)
12+* [Organisation](#organisation)
13+* [Change Log](#change-log)
1114* [Contribute](#contribute)
1215* [Licence](#licence)
1316
@@ -17,45 +20,38 @@ under heavy development and not intended for public consumption, caveat emptor!
1720<img alt="Гоголь-моголь" height="261px;" src="https://upload.wikimedia.org/wikipedia/commons/c/c7/Kogel_mogel.JPG">
1821<img alt="Мико́ла Васи́льович Го́голь" height="261px" src="https://upload.wikimedia.org/wikipedia/commons/3/31/NV_Gogol.png">
1922
20−## Generate New API Endpoints
23+A comprehensive Google Services SDK for Haskell supporting all of the publicly
24+available services.
2125
22−To generate new API endpoints, use the gogol/gen directory.
23−The key files in this directory (outside of the actual gogol-gen source!) are the annex files.
26+An introductory blog post detailing the motivation can be found [here](http://brendanhay.nz/gogol-comprehensive-haskell-google-client).
2427
25−To add a new endpoint, first create its annex file in the annex directory. It should be named after the API endpoint as found in the <a href="https://www.github.com/google/google-api-go-client">google/google-api-go-client repo.</a>
28+## Documentation
2629
27−### Example:
30+You can find the latest stable release documentation for each respective library
31+on Hackage under the [Google section](http://hackage.haskell.org/packages/#cat:Google).
2832
29−#### Generating the Cloud Dataproc API
33+Haddock documentation which is built by CI from the `develop` branch
34+can be found [here](http://brendanhay.nz/gogol-doc).
3035
31−The Cloud Dataproc API is called `dataproc-api.json` in the Google Discovery API.
32−Create the file `./gen/annex/dataproc.json` with these contents:
3336
34−```
35−{
36− "library": "dataproc",
37− "canonicalName": "Dataproc"
38−}
39−```
37+## Organisation
4038
41−From the `./gen` directory, run:
39+This repository is organised into the following directory structure:
4240
43−```
44−make clean
45−make
46−```
41+* [`gogol`](gogol): Actual operational logic, you'll need to import this to send requests etc.
42+* `gogol-*`: Data types for each of the individual Amazon Web Service libraries.
43+* [`core`](core): The `gogol-core` library upon which each of the services depends.
44+* [`examples`](examples): A currently sparse collection of examples for the various services.
45+* [`gen`](gen): The code generation binary, along with configuration, templates, and assets.
46+* [`script`](script): CI scripts to manage the release lifecycle of the service libraries.
47+* [`share`](share): Makefile plumbing common to all service libraries
4748
48−This will build the `./gen/bin/gogol-gen` executable, and then will generate libraries
49−for all APIs that have matching `./gen/annex/*.json` configuration.
49+> See the `./gen` subdirectory for further details about generating an API client/SDK.
5050
51−Once completed, the result would be a `./gogol-dataproc` directory containing the
52−generated API client.
5351
54−`make full-clean` can be used to cause a complete re-download of all (including new)
55−service models.
52+## Change Log
5653
57−Individual libraries can be generated by passing a specific `MODELS` environment
58−variable to the `make` command, for example: `MODELS=model/admin/directory/v1/admin-api.json make`
54+A change log for the entire project can be found under [`gogol/CHANGELOG.md`](gogol/CHANGELOG.md).
5955
6056
6157## Contribute
@@ -66,3 +62,6 @@ For any problems, comments, or feedback please create an issue [here on GitHub](
6662## Licence
6763
6864Gogol is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).
65+
66+Parts of the code are derived from AWS service descriptions, licensed under Apache 2.0.
67+Source files subject to this contain an additional licensing clause in their header.