From 4279fde14fc442dd3a67b58c8c0dedd11752ae57 Mon Sep 17 00:00:00 2001
From: ilyal <ilyal@spiralsolutions.com>
Date: Sun, 14 Jun 2020 08:09:46 +0300
Subject: [PATCH 1/3] add new paramet 'range' for google sheets options

---
 plugins/modules/gcp_bigquery_table.py | 27 ++++++++++++++++++++++++---
 1 file changed, 24 insertions(+), 3 deletions(-)

diff --git a/plugins/modules/gcp_bigquery_table.py b/plugins/modules/gcp_bigquery_table.py
index f145113..ffcb9d0 100644
--- a/plugins/modules/gcp_bigquery_table.py
+++ b/plugins/modules/gcp_bigquery_table.py
@@ -332,6 +332,11 @@ options:
               when reading the data.
             required: false
             type: int
+          range:
+            description:
+            - Range of a sheet to query from. Only used when non-empty.
+            required: true
+            type: str
       csv_options:
         description:
         - Additional properties to set if sourceFormat is set to CSV.
@@ -1072,7 +1077,13 @@ def main():
                             )
                         ),
                     ),
-                    google_sheets_options=dict(type='dict', options=dict(skip_leading_rows=dict(default=0, type='int'))),
+                    google_sheets_options=dict(
+                        type='dict', 
+                        options=dict(
+                            skip_leading_rows=dict(default=0, type='int')
+                            range=dict(type='str')
+                        )
+                    ),
                     csv_options=dict(
                         type='dict',
                         options=dict(
@@ -1560,10 +1571,20 @@ class TableGooglesheetsoptions(object):
             self.request = {}
 
     def to_request(self):
-        return remove_nones_from_dict({u'skipLeadingRows': self.request.get('skip_leading_rows')})
+        return remove_nones_from_dict(
+            {
+                u'skipLeadingRows': self.request.get('skip_leading_rows'),
+                u'range': self.request.get('range'),
+            }
+        )
 
     def from_response(self):
-        return remove_nones_from_dict({u'skipLeadingRows': self.request.get(u'skipLeadingRows')})
+        return remove_nones_from_dict(
+            {
+                u'skipLeadingRows': self.request.get(u'skipLeadingRows'),
+                u'range': self.request.get(u'range'),
+            }
+        )
 
 
 class TableCsvoptions(object):

From 05f0e6d0e27c58fcc5a40f24399b903d8387a89d Mon Sep 17 00:00:00 2001
From: ilyal <ilyal@spiralsolutions.com>
Date: Sun, 14 Jun 2020 08:11:49 +0300
Subject: [PATCH 2/3] make range parametr optional

---
 plugins/modules/gcp_bigquery_table.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/plugins/modules/gcp_bigquery_table.py b/plugins/modules/gcp_bigquery_table.py
index ffcb9d0..b867aa6 100644
--- a/plugins/modules/gcp_bigquery_table.py
+++ b/plugins/modules/gcp_bigquery_table.py
@@ -335,7 +335,7 @@ options:
           range:
             description:
             - Range of a sheet to query from. Only used when non-empty.
-            required: true
+            required: false
             type: str
       csv_options:
         description:

From 6aef6f9b224cd9df527ab739569c81c3d12ba563 Mon Sep 17 00:00:00 2001
From: ilyal <ilyal@spiralsolutions.com>
Date: Sun, 14 Jun 2020 09:56:17 +0300
Subject: [PATCH 3/3] Add parameter query for view element. Fix table info
 module

---
 plugins/modules/gcp_bigquery_table.py      | 13 +++++++++++++
 plugins/modules/gcp_bigquery_table_info.py | 10 ++++++++++
 2 files changed, 23 insertions(+)

diff --git a/plugins/modules/gcp_bigquery_table.py b/plugins/modules/gcp_bigquery_table.py
index b867aa6..70812b2 100644
--- a/plugins/modules/gcp_bigquery_table.py
+++ b/plugins/modules/gcp_bigquery_table.py
@@ -113,6 +113,11 @@ options:
     required: false
     type: dict
     suboptions:
+      query:
+        description:
+        - A query that BigQuery executes when the view is referenced.
+        required: true
+        type: str
       use_legacy_sql:
         description:
         - Specifies whether to use BigQuery's legacy SQL for this view .
@@ -641,6 +646,11 @@ view:
   returned: success
   type: complex
   contains:
+    query:
+      description:
+      - A query that BigQuery executes when the view is referenced.
+      required: true
+      type: str
     useLegacySql:
       description:
       - Specifies whether to use BigQuery's legacy SQL for this view .
@@ -1027,6 +1037,7 @@ def main():
             view=dict(
                 type='dict',
                 options=dict(
+                    query=dict(required=True, type='str'),
                     use_legacy_sql=dict(type='bool'),
                     user_defined_function_resources=dict(
                         type='list', elements='dict', options=dict(inline_code=dict(type='str'), resource_uri=dict(type='str'))
@@ -1311,6 +1322,7 @@ class TableView(object):
     def to_request(self):
         return remove_nones_from_dict(
             {
+                u'query': self.request.get('query'),
                 u'useLegacySql': self.request.get('use_legacy_sql'),
                 u'userDefinedFunctionResources': TableUserdefinedfunctionresourcesArray(
                     self.request.get('user_defined_function_resources', []), self.module
@@ -1321,6 +1333,7 @@ class TableView(object):
     def from_response(self):
         return remove_nones_from_dict(
             {
+                u'query': self.request.get(u'query'),
                 u'useLegacySql': self.request.get(u'useLegacySql'),
                 u'userDefinedFunctionResources': TableUserdefinedfunctionresourcesArray(
                     self.request.get(u'userDefinedFunctionResources', []), self.module
diff --git a/plugins/modules/gcp_bigquery_table_info.py b/plugins/modules/gcp_bigquery_table_info.py
index f012617..9516252 100644
--- a/plugins/modules/gcp_bigquery_table_info.py
+++ b/plugins/modules/gcp_bigquery_table_info.py
@@ -214,6 +214,11 @@ resources:
       returned: success
       type: complex
       contains:
+        query:
+          description:
+          - A query that BigQuery executes when the view is referenced.
+          required: true
+          type: str
         useLegacySql:
           description:
           - Specifies whether to use BigQuery's legacy SQL for this view .
@@ -444,6 +449,11 @@ resources:
                 skip when reading the data.
               returned: success
               type: int
+            range:
+              description:
+              - Range of a sheet to query from. Only used when non-empty.
+              required: false
+              type: str
         csvOptions:
           description:
           - Additional properties to set if sourceFormat is set to CSV.