Skip to content

Commit

Permalink
Merge changes from AWS repository (#92)
Browse files Browse the repository at this point in the history
* [AD-231] Update build for version 0.3 beta
https://bitquill.atlassian.net/browse/AD-231

* AD-204 Fixed comparisons against NULL/undefined (#5)

### Summary

AD-204 Fixed comparisons against NULL/undefined

### Description

Comparison operators (<, >, !=) now return null in expressions where a field is compared to null.

Fixes three types of queries:

1. Queries with multiple conditions on a single field

eg. `SELECT * FROM table WHERE field <> 3 AND field <> 5`

2. Queries did not remove null values in not-equals filters. For example in the above query a row containing `field:null` would be included in the result set.

3. Queries involving CASE would incorrectly consider some comparisons to null to be true/false, instead of unknown.
eg. `SELECT CASE WHEN field < 2 THEN 'A' ELSE 'B' END FROM table` would result in 'A' if `field==null` instead of 'B'. The same is true if the field does not exist at all in the document.

### Related Issue

https://bitquill.atlassian.net/browse/AD-204

* Minot enhancements in the documentation

* Commit Code Coverage Badge

* [AD-231] Update build for version 1.0.0-beta.3
https://bitquill.atlassian.net/browse/AD-231

* [AD-192] Integrate existing aws repository content with our develop branch (#1)

### Summary

Integrate existing aws repository content with our develop branch.

### Description
- Integrates changes from the initial commit of the aws repository to our develop branch (adds a contributing readme, code of conduct readme, a notice file and a license file)
- There was already an Apache license file so added our header license file as a separate file in license-header.txt.  
- Removed task and github action steps related to sonarqube.

### Related Issue
https://bitquill.atlassian.net/browse/AD-190

* Added link to GitHub Releases

* not - [user]

* [AD-195] Implement CLI for the metadata persistence - Part 2 (#4)

### Summary

[AD-195](https://bitquill.atlassian.net/browse/AD-195) Implement CLI for the metadata persistence - Part 2

### Description

Add support for:

1. `-l` "list" - lists persisted schema
1. `-b` "list tables" - lists persisted table schemas
1. `-e` "export" - exports one or more table schema to JSON.
1. `-i` "import" - import table schema and update persisted schema.
1. `-o` "output-file" - outputs exported table schema to a file, instead of standard out.
1. Updated documentation.

### Related Issue

https://bitquill.atlassian.net/browse/AD-195

* [AD-236] Make use of sessions conditional on supported versions. (#8)

### Summary

[AD-236] Make use of sessions conditional on supported versions.

### Description

Do not use sessions if version is not 4.0 or greater.

### Related Issue

https://bitquill.atlassian.net/browse/AD-236

* [AD-189] Load work-around JAR files from branch in Janino forked repository. (#3)

### Summary

[AD-189] Load work-around JAR files from branch in Janino forked repository.

### Description

Reference work-around JAR file from forked Janino project where the source is set for the work-around and the JAR files are produced against that source.

### Related Issue

https://bitquill.atlassian.net/browse/AD-189

* Added script to automatically generate taco file.

* Commit Code Coverage Badge

* [AD-237] Document Schema JSON format (#10)

### Summary

[AD-237](https://bitquill.atlassian.net/browse/AD-237) Document Schema JSON format

### Description

- Document table schema in JSON format and how make modifications to flatten a virtual table.

### Related Issue

https://bitquill.atlassian.net/browse/AD-237

* [AD-203] Fix where clause (#7)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* AD-203 Changed to use placeholder constant, added DECIMAL to types

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-240] Allow "latest or none" option so we don't always generate a schema (#12)

### Summary

[AD-240](https://bitquill.atlassian.net/browse/AD-240) Allow "latest or none" option so we don't always generate a schema.

### Description

Add option to get latest or none - so we don' always generate a new schema.

### Related Issue

https://bitquill.atlassian.net/browse/AD-240

* [AD-223] Sql Functions Foundation (#9)

* AD-204 Fixed comparisons against NULL/undefined (#89)

* AD-215 Fixed comparisons for CASE

* AD-204 Fix for multi-field conditions

* Commit Code Coverage Badge

* Commit Code Coverage Badge

* AD-204 Added test in query mapping service

* Commit Code Coverage Badge

* AD-204 Added check for cast, removed list copying

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-203 Initial commit with unit tests

* AD-203 Used RexToMongoTranslator

* AD-203 Added fix for quotes, and Long parsing, also fixed unit tests

* WIP - added dateadd and some datepart functions

* Add more tests

* AD-203 Added test for nested OR in WHERE clause

* AD-203 Changed $literal to $numberLong

* AD-203 Format and fixed comment

* Commit Code Coverage Badge

* [AD-223] Update taco file

* Commit Code Coverage Badge

* AD-203 Removed $literal

* Commit Code Coverage Badge

* Resolve conflicts with AD-203 + add unit tests

* Commit Code Coverage Badge

* AD-203 Added note on $literal, fixed some types

* Commit Code Coverage Badge

* Merge cganges from [AD-203]

* Commit Code Coverage Badge

* Merge changes from develop

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* AD-257 refactor DocumentDbStatementTest (#14)

* AD-257 refactor DocumentDbStatementTest

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* AD-220 Add missing tests (#13)

* AD-220 Initial commit, added tests for IN, NOT IN, CAST, OFFSET, NATURAL JOIN, CROSS JOIN

* AD-220 Re-worked cast tests, refactored DocumentDbStatementTest

* Spotbugs

* Commit Code Coverage Badge

* AD-220 Added refactor from Develop

* Commit Code Coverage Badge

* AD-220 Added documentation

* Commit Code Coverage Badge

* AD-220 Documentation space

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-193] Documentation and Demo for metadata persistence with DocumentDB (#15)

### Summary

[AD-193](https://bitquill.atlassian.net/browse/AD-193) Documentation and Demo for metadata persistence with DocumentDB

### Description

- Fixes an issue with importing schema for a new (previously non-existent) schema.
- Fixes some small documentation issues.

### Related Issue

https://bitquill.atlassian.net/browse/AD-193

* AD-241 Error when querying >20000 rows (#17)

* AD-241 Added client to result set

* Commit Code Coverage Badge

* AD-241 Added unit test, fixed get/setFetchSize

* AD-241 Checkstyle

* Removed mock overrides

* Fixed test class

* Fixed Statement test

* Commit Code Coverage Badge

* Adjusted batch/fetchSize

* Checkstyle

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-214] Query cancellation (#16)

* WIP - initial commit

* [AD-214] Implement query cancellation for statement and prepared statement

* Remove duplicate calls to verifyOpen()

* Commit Code Coverage Badge

* Fix spacing in build.gradle

* Commit Code Coverage Badge

* Code review improvements

* Commit Code Coverage Badge

* Resolve merge conflicts from develop

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update version to v1.0.0-beta.4 (#18)

* [AD-261] Update version to v1.0.0-beta.4

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-261] Update Tableau Connector name (#19)

* [AD-261] Update version to v1.0.0-beta.4

* [AD-261] Update names and links in taco file

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-226] Add additional extract tests (#20)

* Add additional tests for datepart functions

* Add ':' in needsQuote check

* Add tests for case

* Add test descriptions

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME. (#21)

### Summary

[AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, and MONTHNAME.

### Description

- CURRENT_TIMESTAMP/NOW, 
- CURRENT_DATE/TODAY, 
- QUARTER, 
- DAYNAME, and 
- MONTHNAME.
- Date/Datetime operators `+` and `-` (in Tableau)
- Small improvement in handling BsonTimestamp conversions.

### Related Issue

https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Added support for CURRENT_TIMESTAMP, CURRENT_DATE, QUARTER, DAYNAME, MONTHNAME.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Correct failing test.
https://bitquill.atlassian.net/browse/AD-227

* [AD-227] Improvements from review.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Update datediff in dialect.tdd

* Commit Code Coverage Badge

* [AD-227] Add dialect entry for datetime - datetime

* Commit Code Coverage Badge

* [AD-227] Add support for NULL as parameter to DAYNAME, MONTHNAME, and QUARTER.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

* [AD-227] Refactored MONTHNAME, DAYNAME and QUARTER to use String.format() to create Mongo aggregate commands.
https://bitquill.atlassian.net/browse/AD-227

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>
Co-authored-by: Andie Montoya <andiem@bitquilltech.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* AD-194 Added fix for Tableau Issue (#22)

* AD-194 Added fix for Tableau Issue

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field. (#24)

### Summary

[AD-268] Handle case when sub-document (virtual table) contains '_id' as field.

### Description

Now correctly sending the `collectionName` instead of `path`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-268

* [AD-268] Handle case when sub-document (virtual table) contains '_id' as field.
https://bitquill.atlassian.net/browse/AD-268

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* AD-251 Added support for IS [NOT] NULL (#23)

* AD-251 Added support for IS [NOT] NULL

* Removed unused import

* Checkstyle

* Commit Code Coverage Badge

* AD-251 Added mapping test, simplified null handler

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-269] Handle case when first array is empty followed by non-empty array of object. (#25)

### Summary

[AD-269] Handle case when first array is empty followed by non-empty array of object.

### Description

Handle the case when a field is first encountered as an empty array, followed by a non-empty array of object.

### Related Issue

https://bitquill.atlassian.net/browse/AD-269

* [AD-269] Handle case when first array is empty followed by non-empty array of object.
https://bitquill.atlassian.net/browse/AD-269

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-262] Additional tests for CASE (#26)

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* [AD-262] Add additional tests for CASE

* Remove extra space

* Remove extra space

* Commit Code Coverage Badge

* Add separate test for CASE with NOT + add setting to treat string literals of different lengths as varchar

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* [AD-274] Fix handling of checking for missing database name in connection string. (#29)

### Summary

[AD-274] Fix handling of checking for missing database name in connection string.

### Description

- Fix handling of checking for missing database name in connection string.

### Related Issue

https://bitquill.atlassian.net/browse/AD-274

* [AD-274] Fix handling of checking for missing database name in connection string.
https://bitquill.atlassian.net/browse/AD-274

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Commit Code Coverage Badge

* AD-225 Added substring (#28)

* AD-225 Added substring

* Ad-225 Checkstyle

* Commit Code Coverage Badge

* Fixed merge

* Moved old method to make changes clearer

* Commit Code Coverage Badge

* $substr -> $substrCP

* Fixed mapping test

* Commit Code Coverage Badge

* Added more tests with literals

* Commit Code Coverage Badge

* Fixed substring support for expressions, added tests, added tableau support for MID

* Commit Code Coverage Badge

* Removed use of standard operator

* Commit Code Coverage Badge

Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length. (#30)

### Summary

[AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.

### Description

- Truncate generated identifiers to ensure it doesn't exceed maximum (128) length.
- Attempt to keep "base" table name in truncated identifiers
- Attempt to keep as much of context as possible.

### Related Issue

https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Implement a automated identifier truncation when they exceed the maximum (128) length.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Update documentation.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Review changes. Refactor DocumentDbTableSchemaGenerator.java with helper class. Improve test understanding.
https://bitquill.atlassian.net/browse/AD-213

* [AD-213] Change test so not so memory challenging.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

* [AD-213] Documentation updates from code review.
https://bitquill.atlassian.net/browse/AD-213

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable. (#32)

### Summary

[AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.

### Description

- Create `MongoClient` (`client`) only when needed. 
- Close `client` connection when closing the Enumerable.

### Related Issue

https://bitquill.atlassian.net/browse/AD-278

* [AD-278] Create MongoClient only when needed. Close client connection when closing the Enumerable.
https://bitquill.atlassian.net/browse/AD-278

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* [AD-254] Implement FLOOR for DATETIME types. (#31)

### Summary

[AD-254] Implement FLOOR for DATETIME types.

### Description

Implements `FLOOR (<datetime> TO <timeunit>)`
- Uses equivalent of `dateadd(<timeunit>,datediff(<timeunit>,0,@datetime),0)` (https://stackoverflow.com/questions/85373/floor-a-date-in-sql-server/85379#85379)
- Except for YEAR and MONTH which use `$dateToString` and `$dateFromString`
- Implements an emulated version of integer division using `$mod`.

### Related Issue

https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement FLOOR for DATETIME types.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Removed support for ISOYEAR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Slight refactor for easier review.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Implement FLOOR(... TO WEEK). Split query/DocumentDbQueryMappingServiceTest.java
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Minor refactor.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Updated Tableau dialect file.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Improvements from code review.
https://bitquill.atlassian.net/browse/AD-254

* [AD-254] Implement QUARTER time unit for FLOOR.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* [AD-254] Added support for FLOOR aggregation in Tableau.
https://bitquill.atlassian.net/browse/AD-254

* Commit Code Coverage Badge

* Commit Code Coverage Badge

Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>

* Update beta version from 4 to 5 (#33)

* Update beta version from 4 to 5

* Commit Code Coverage Badge

Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>

* Commit Code Coverage Badge

Co-authored-by: Bruce Irschick <brucei@bitquilltech.com>
Co-authored-by: Alexey Temnikov <alexeyt@bitquilltech.com>
Co-authored-by: alexey-temnikov <alexey-temnikov@users.noreply.github.com>
Co-authored-by: mitchell-elholm <76969722+mitchell-elholm@users.noreply.github.com>
Co-authored-by: mitchell-elholm <mitchell-elholm@users.noreply.github.com>
Co-authored-by: andiem-bq <andiem-bq@users.noreply.github.com>
Co-authored-by: birschick-bq <birschick-bq@users.noreply.github.com>
  • Loading branch information
8 people authored Jul 19, 2021
1 parent 6cd0a24 commit 0c9a636
Show file tree
Hide file tree
Showing 80 changed files with 10,451 additions and 3,218 deletions.
2 changes: 1 addition & 1 deletion .github/badges/branches.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion .github/badges/jacoco.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 0 additions & 12 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,25 +115,13 @@ jobs:
with:
name: jacoco-report
path: build/reports/jacoco/

- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11
- name: Cache SonarCloud packages
uses: actions/cache@v1
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- name: Cache Gradle packages
uses: actions/cache@v1
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
restore-keys: ${{ runner.os }}-gradle
- name: Build and analyze
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: ./gradlew sonarqube
4 changes: 4 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
## Code of Conduct
This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).
For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
opensource-codeofconduct@amazon.com with any additional questions or comments.
59 changes: 59 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Contributing Guidelines

Thank you for your interest in contributing to our project. Whether it's a bug report, new feature, correction, or additional
documentation, we greatly value feedback and contributions from our community.

Please read through this document before submitting any issues or pull requests to ensure we have all the necessary
information to effectively respond to your bug report or contribution.


## Reporting Bugs/Feature Requests

We welcome you to use the GitHub issue tracker to report bugs or suggest features.

When filing an issue, please check existing open, or recently closed, issues to make sure somebody else hasn't already
reported the issue. Please try to include as much information as you can. Details like these are incredibly useful:

* A reproducible test case or series of steps
* The version of our code being used
* Any modifications you've made relevant to the bug
* Anything unusual about your environment or deployment


## Contributing via Pull Requests
Contributions via pull requests are much appreciated. Before sending us a pull request, please ensure that:

1. You are working against the latest source on the *main* branch.
2. You check existing open, and recently merged, pull requests to make sure someone else hasn't addressed the problem already.
3. You open an issue to discuss any significant work - we would hate for your time to be wasted.

To send us a pull request, please:

1. Fork the repository.
2. Modify the source; please focus on the specific change you are contributing. If you also reformat all the code, it will be hard for us to focus on your change.
3. Ensure local tests pass.
4. Commit to your fork using clear commit messages.
5. Send us a pull request, answering any default questions in the pull request interface.
6. Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation.

GitHub provides additional document on [forking a repository](https://help.github.com/articles/fork-a-repo/) and
[creating a pull request](https://help.github.com/articles/creating-a-pull-request/).


## Finding contributions to work on
Looking at the existing issues is a great way to find something to contribute on. As our projects, by default, use the default GitHub issue labels (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 'help wanted' issues is a great place to start.


## Code of Conduct
This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).
For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
opensource-codeofconduct@amazon.com with any additional questions or comments.


## Security issue notifications
If you discover a potential security issue in this project we ask that you notify AWS/Amazon Security via our [vulnerability reporting page](http://aws.amazon.com/security/vulnerability-reporting/). Please do **not** create a public github issue.


## Licensing

See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to confirm the licensing of your contribution.
181 changes: 172 additions & 9 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,12 +1,175 @@
Copyright <2021> Amazon.com, Inc. or its affiliates. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License").
You may not use this file except in compliance with the License.
A copy of the License is located at
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

http://www.apache.org/licenses/LICENSE-2.0
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

or in the "license" file accompanying this file. This file is distributed
on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
express or implied. See the License for the specific language governing
permissions and limitations under the License.
1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
1 change: 1 addition & 0 deletions NOTICE
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
Loading

0 comments on commit 0c9a636

Please sign in to comment.