diff --git a/CHANGELOG.md b/CHANGELOG.md
index 838173917..e6599103a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 0.9.15
+* Add datastore v1
+* Regenerate APIs
+
# 0.9.14
* Fix error handling with downloads, no longer fails silently
* Prevent form-encoding query parameters for APIs that don't expect it
diff --git a/api_names.yaml b/api_names.yaml
index 0bdd5b1dd..1e261f540 100644
--- a/api_names.yaml
+++ b/api_names.yaml
@@ -623,6 +623,10 @@
"/datastore:v1beta2/AllocateIdsResponse": allocate_ids_response
"/datastore:v1beta2/BeginTransactionRequest": begin_transaction_request
"/datastore:v1beta2/BeginTransactionResponse": begin_transaction_response
+"/datastore:v1/AllocateIdsRequest": allocate_ids_request
+"/datastore:v1/AllocateIdsResponse": allocate_ids_response
+"/datastore:v1/BeginTransactionRequest": begin_transaction_request
+"/datastore:v1/BeginTransactionResponse": begin_transaction_response
"/deploymentmanager:v2/DeploymentsListResponse": list_deployments_response
"/deploymentmanager:v2/ManifestsListResponse": list_manifests_response
"/deploymentmanager:v2/OperationsListResponse": list_operations_response
diff --git a/api_names_out.yaml b/api_names_out.yaml
index 8b0d55f48..c1be7186d 100644
--- a/api_names_out.yaml
+++ b/api_names_out.yaml
@@ -604,6 +604,10 @@
"/datastore:v1beta2/AllocateIdsResponse": allocate_ids_response
"/datastore:v1beta2/BeginTransactionRequest": begin_transaction_request
"/datastore:v1beta2/BeginTransactionResponse": begin_transaction_response
+"/datastore:v1/AllocateIdsRequest": allocate_ids_request
+"/datastore:v1/AllocateIdsResponse": allocate_ids_response
+"/datastore:v1/BeginTransactionRequest": begin_transaction_request
+"/datastore:v1/BeginTransactionResponse": begin_transaction_response
"/deploymentmanager:v2/DeploymentsListResponse": list_deployments_response
"/deploymentmanager:v2/ManifestsListResponse": list_manifests_response
"/deploymentmanager:v2/OperationsListResponse": list_operations_response
@@ -15435,166 +15439,162 @@
"/customsearch:v1/Search/url": url
"/customsearch:v1/Search/url/template": template
"/customsearch:v1/Search/url/type": type
-"/datastore:v1beta3/key": key
-"/datastore:v1beta3/quotaUser": quota_user
-"/datastore:v1beta3/fields": fields
-"/datastore:v1beta3/datastore.projects.runQuery": run_project_query
-"/datastore:v1beta3/datastore.projects.runQuery/projectId": project_id
-"/datastore:v1beta3/datastore.projects.beginTransaction": begin_project_transaction
-"/datastore:v1beta3/datastore.projects.beginTransaction/projectId": project_id
-"/datastore:v1beta3/datastore.projects.allocateIds": allocate_project_ids
-"/datastore:v1beta3/datastore.projects.allocateIds/projectId": project_id
-"/datastore:v1beta3/datastore.projects.lookup": lookup_project
-"/datastore:v1beta3/datastore.projects.lookup/projectId": project_id
-"/datastore:v1beta3/datastore.projects.commit": commit_project
-"/datastore:v1beta3/datastore.projects.commit/projectId": project_id
-"/datastore:v1beta3/datastore.projects.rollback": rollback_project
-"/datastore:v1beta3/datastore.projects.rollback/projectId": project_id
-"/datastore:v1beta3/Value": value
-"/datastore:v1beta3/Value/stringValue": string_value
-"/datastore:v1beta3/Value/arrayValue": array_value
-"/datastore:v1beta3/Value/entityValue": entity_value
-"/datastore:v1beta3/Value/meaning": meaning
-"/datastore:v1beta3/Value/integerValue": integer_value
-"/datastore:v1beta3/Value/doubleValue": double_value
-"/datastore:v1beta3/Value/blobValue": blob_value
-"/datastore:v1beta3/Value/geoPointValue": geo_point_value
-"/datastore:v1beta3/Value/nullValue": null_value
-"/datastore:v1beta3/Value/booleanValue": boolean_value
-"/datastore:v1beta3/Value/keyValue": key_value
-"/datastore:v1beta3/Value/excludeFromIndexes": exclude_from_indexes
-"/datastore:v1beta3/Value/timestampValue": timestamp_value
-"/datastore:v1beta3/ReadOptions": read_options
-"/datastore:v1beta3/ReadOptions/transaction": transaction
-"/datastore:v1beta3/ReadOptions/readConsistency": read_consistency
-"/datastore:v1beta3/PropertyOrder": property_order
-"/datastore:v1beta3/PropertyOrder/direction": direction
-"/datastore:v1beta3/PropertyOrder/property": property
-"/datastore:v1beta3/CommitRequest": commit_request
-"/datastore:v1beta3/CommitRequest/transaction": transaction
-"/datastore:v1beta3/CommitRequest/mode": mode
-"/datastore:v1beta3/CommitRequest/mutations": mutations
-"/datastore:v1beta3/CommitRequest/mutations/mutation": mutation
-"/datastore:v1beta3/Query": query
-"/datastore:v1beta3/Query/limit": limit
-"/datastore:v1beta3/Query/filter": filter
-"/datastore:v1beta3/Query/endCursor": end_cursor
-"/datastore:v1beta3/Query/distinctOn": distinct_on
-"/datastore:v1beta3/Query/distinctOn/distinct_on": distinct_on
-"/datastore:v1beta3/Query/offset": offset
-"/datastore:v1beta3/Query/projection": projection
-"/datastore:v1beta3/Query/projection/projection": projection
-"/datastore:v1beta3/Query/order": order
-"/datastore:v1beta3/Query/order/order": order
-"/datastore:v1beta3/Query/startCursor": start_cursor
-"/datastore:v1beta3/Query/kind": kind
-"/datastore:v1beta3/Query/kind/kind": kind
-"/datastore:v1beta3/RollbackRequest": rollback_request
-"/datastore:v1beta3/RollbackRequest/transaction": transaction
-"/datastore:v1beta3/EntityResult": entity_result
-"/datastore:v1beta3/EntityResult/cursor": cursor
-"/datastore:v1beta3/EntityResult/entity": entity
-"/datastore:v1beta3/EntityResult/version": version
-"/datastore:v1beta3/GqlQueryParameter": gql_query_parameter
-"/datastore:v1beta3/GqlQueryParameter/value": value
-"/datastore:v1beta3/GqlQueryParameter/cursor": cursor
-"/datastore:v1beta3/ArrayValue": array_value
-"/datastore:v1beta3/ArrayValue/values": values
-"/datastore:v1beta3/ArrayValue/values/value": value
-"/datastore:v1beta3/Filter": filter
-"/datastore:v1beta3/Filter/propertyFilter": property_filter
-"/datastore:v1beta3/Filter/compositeFilter": composite_filter
-"/datastore:v1beta3/BeginTransactionResponse": begin_transaction_response
-"/datastore:v1beta3/BeginTransactionResponse/transaction": transaction
-"/datastore:v1beta3/PartitionId": partition_id
-"/datastore:v1beta3/PartitionId/namespaceId": namespace_id
-"/datastore:v1beta3/PartitionId/projectId": project_id
-"/datastore:v1beta3/QueryResultBatch": query_result_batch
-"/datastore:v1beta3/QueryResultBatch/snapshotVersion": snapshot_version
-"/datastore:v1beta3/QueryResultBatch/endCursor": end_cursor
-"/datastore:v1beta3/QueryResultBatch/skippedCursor": skipped_cursor
-"/datastore:v1beta3/QueryResultBatch/entityResultType": entity_result_type
-"/datastore:v1beta3/QueryResultBatch/moreResults": more_results
-"/datastore:v1beta3/QueryResultBatch/entityResults": entity_results
-"/datastore:v1beta3/QueryResultBatch/entityResults/entity_result": entity_result
-"/datastore:v1beta3/QueryResultBatch/skippedResults": skipped_results
-"/datastore:v1beta3/AllocateIdsRequest": allocate_ids_request
-"/datastore:v1beta3/AllocateIdsRequest/keys": keys
-"/datastore:v1beta3/AllocateIdsRequest/keys/key": key
-"/datastore:v1beta3/KindExpression": kind_expression
-"/datastore:v1beta3/KindExpression/name": name
-"/datastore:v1beta3/PropertyFilter": property_filter
-"/datastore:v1beta3/PropertyFilter/value": value
-"/datastore:v1beta3/PropertyFilter/op": op
-"/datastore:v1beta3/PropertyFilter/property": property
-"/datastore:v1beta3/PathElement": path_element
-"/datastore:v1beta3/PathElement/kind": kind
-"/datastore:v1beta3/PathElement/id": id
-"/datastore:v1beta3/PathElement/name": name
-"/datastore:v1beta3/RollbackResponse": rollback_response
-"/datastore:v1beta3/PropertyReference": property_reference
-"/datastore:v1beta3/PropertyReference/name": name
-"/datastore:v1beta3/Projection": projection
-"/datastore:v1beta3/Projection/property": property
-"/datastore:v1beta3/MutationResult": mutation_result
-"/datastore:v1beta3/MutationResult/conflictDetected": conflict_detected
-"/datastore:v1beta3/MutationResult/key": key
-"/datastore:v1beta3/MutationResult/version": version
-"/datastore:v1beta3/AllocateIdsResponse": allocate_ids_response
-"/datastore:v1beta3/AllocateIdsResponse/keys": keys
-"/datastore:v1beta3/AllocateIdsResponse/keys/key": key
-"/datastore:v1beta3/LookupResponse": lookup_response
-"/datastore:v1beta3/LookupResponse/found": found
-"/datastore:v1beta3/LookupResponse/found/found": found
-"/datastore:v1beta3/LookupResponse/missing": missing
-"/datastore:v1beta3/LookupResponse/missing/missing": missing
-"/datastore:v1beta3/LookupResponse/deferred": deferred
-"/datastore:v1beta3/LookupResponse/deferred/deferred": deferred
-"/datastore:v1beta3/BeginTransactionRequest": begin_transaction_request
-"/datastore:v1beta3/Key": key
-"/datastore:v1beta3/Key/partitionId": partition_id
-"/datastore:v1beta3/Key/path": path
-"/datastore:v1beta3/Key/path/path": path
-"/datastore:v1beta3/RunQueryResponse": run_query_response
-"/datastore:v1beta3/RunQueryResponse/batch": batch
-"/datastore:v1beta3/RunQueryResponse/query": query
-"/datastore:v1beta3/Entity": entity
-"/datastore:v1beta3/Entity/properties": properties
-"/datastore:v1beta3/Entity/properties/property": property
-"/datastore:v1beta3/Entity/key": key
-"/datastore:v1beta3/GqlQuery": gql_query
-"/datastore:v1beta3/GqlQuery/queryString": query_string
-"/datastore:v1beta3/GqlQuery/namedBindings": named_bindings
-"/datastore:v1beta3/GqlQuery/namedBindings/named_binding": named_binding
-"/datastore:v1beta3/GqlQuery/allowLiterals": allow_literals
-"/datastore:v1beta3/GqlQuery/positionalBindings": positional_bindings
-"/datastore:v1beta3/GqlQuery/positionalBindings/positional_binding": positional_binding
-"/datastore:v1beta3/Mutation": mutation
-"/datastore:v1beta3/Mutation/insert": insert
-"/datastore:v1beta3/Mutation/update": update
-"/datastore:v1beta3/Mutation/baseVersion": base_version
-"/datastore:v1beta3/Mutation/upsert": upsert
-"/datastore:v1beta3/Mutation/delete": delete
-"/datastore:v1beta3/CommitResponse": commit_response
-"/datastore:v1beta3/CommitResponse/mutationResults": mutation_results
-"/datastore:v1beta3/CommitResponse/mutationResults/mutation_result": mutation_result
-"/datastore:v1beta3/CommitResponse/indexUpdates": index_updates
-"/datastore:v1beta3/RunQueryRequest": run_query_request
-"/datastore:v1beta3/RunQueryRequest/partitionId": partition_id
-"/datastore:v1beta3/RunQueryRequest/gqlQuery": gql_query
-"/datastore:v1beta3/RunQueryRequest/readOptions": read_options
-"/datastore:v1beta3/RunQueryRequest/query": query
-"/datastore:v1beta3/LookupRequest": lookup_request
-"/datastore:v1beta3/LookupRequest/readOptions": read_options
-"/datastore:v1beta3/LookupRequest/keys": keys
-"/datastore:v1beta3/LookupRequest/keys/key": key
-"/datastore:v1beta3/LatLng": lat_lng
-"/datastore:v1beta3/LatLng/latitude": latitude
-"/datastore:v1beta3/LatLng/longitude": longitude
-"/datastore:v1beta3/CompositeFilter": composite_filter
-"/datastore:v1beta3/CompositeFilter/op": op
-"/datastore:v1beta3/CompositeFilter/filters": filters
-"/datastore:v1beta3/CompositeFilter/filters/filter": filter
+"/datastore:v1/key": key
+"/datastore:v1/quotaUser": quota_user
+"/datastore:v1/fields": fields
+"/datastore:v1/datastore.projects.runQuery": run_project_query
+"/datastore:v1/datastore.projects.runQuery/projectId": project_id
+"/datastore:v1/datastore.projects.beginTransaction": begin_project_transaction
+"/datastore:v1/datastore.projects.beginTransaction/projectId": project_id
+"/datastore:v1/datastore.projects.allocateIds": allocate_project_ids
+"/datastore:v1/datastore.projects.allocateIds/projectId": project_id
+"/datastore:v1/datastore.projects.lookup": lookup_project
+"/datastore:v1/datastore.projects.lookup/projectId": project_id
+"/datastore:v1/datastore.projects.commit": commit_project
+"/datastore:v1/datastore.projects.commit/projectId": project_id
+"/datastore:v1/datastore.projects.rollback": rollback_project
+"/datastore:v1/datastore.projects.rollback/projectId": project_id
+"/datastore:v1/Value": value
+"/datastore:v1/Value/stringValue": string_value
+"/datastore:v1/Value/arrayValue": array_value
+"/datastore:v1/Value/entityValue": entity_value
+"/datastore:v1/Value/meaning": meaning
+"/datastore:v1/Value/integerValue": integer_value
+"/datastore:v1/Value/doubleValue": double_value
+"/datastore:v1/Value/blobValue": blob_value
+"/datastore:v1/Value/geoPointValue": geo_point_value
+"/datastore:v1/Value/nullValue": null_value
+"/datastore:v1/Value/booleanValue": boolean_value
+"/datastore:v1/Value/keyValue": key_value
+"/datastore:v1/Value/excludeFromIndexes": exclude_from_indexes
+"/datastore:v1/Value/timestampValue": timestamp_value
+"/datastore:v1/ReadOptions": read_options
+"/datastore:v1/ReadOptions/transaction": transaction
+"/datastore:v1/ReadOptions/readConsistency": read_consistency
+"/datastore:v1/PropertyOrder": property_order
+"/datastore:v1/PropertyOrder/direction": direction
+"/datastore:v1/PropertyOrder/property": property
+"/datastore:v1/CommitRequest": commit_request
+"/datastore:v1/CommitRequest/transaction": transaction
+"/datastore:v1/CommitRequest/mode": mode
+"/datastore:v1/CommitRequest/mutations": mutations
+"/datastore:v1/CommitRequest/mutations/mutation": mutation
+"/datastore:v1/Query": query
+"/datastore:v1/Query/limit": limit
+"/datastore:v1/Query/filter": filter
+"/datastore:v1/Query/endCursor": end_cursor
+"/datastore:v1/Query/distinctOn": distinct_on
+"/datastore:v1/Query/distinctOn/distinct_on": distinct_on
+"/datastore:v1/Query/offset": offset
+"/datastore:v1/Query/projection": projection
+"/datastore:v1/Query/projection/projection": projection
+"/datastore:v1/Query/order": order
+"/datastore:v1/Query/order/order": order
+"/datastore:v1/Query/startCursor": start_cursor
+"/datastore:v1/Query/kind": kind
+"/datastore:v1/Query/kind/kind": kind
+"/datastore:v1/RollbackRequest": rollback_request
+"/datastore:v1/RollbackRequest/transaction": transaction
+"/datastore:v1/EntityResult": entity_result
+"/datastore:v1/EntityResult/cursor": cursor
+"/datastore:v1/EntityResult/entity": entity
+"/datastore:v1/EntityResult/version": version
+"/datastore:v1/GqlQueryParameter": gql_query_parameter
+"/datastore:v1/GqlQueryParameter/value": value
+"/datastore:v1/GqlQueryParameter/cursor": cursor
+"/datastore:v1/ArrayValue": array_value
+"/datastore:v1/ArrayValue/values": values
+"/datastore:v1/ArrayValue/values/value": value
+"/datastore:v1/Filter": filter
+"/datastore:v1/Filter/propertyFilter": property_filter
+"/datastore:v1/Filter/compositeFilter": composite_filter
+"/datastore:v1/BeginTransactionResponse/transaction": transaction
+"/datastore:v1/PartitionId": partition_id
+"/datastore:v1/PartitionId/namespaceId": namespace_id
+"/datastore:v1/PartitionId/projectId": project_id
+"/datastore:v1/QueryResultBatch": query_result_batch
+"/datastore:v1/QueryResultBatch/snapshotVersion": snapshot_version
+"/datastore:v1/QueryResultBatch/endCursor": end_cursor
+"/datastore:v1/QueryResultBatch/skippedCursor": skipped_cursor
+"/datastore:v1/QueryResultBatch/entityResultType": entity_result_type
+"/datastore:v1/QueryResultBatch/moreResults": more_results
+"/datastore:v1/QueryResultBatch/entityResults": entity_results
+"/datastore:v1/QueryResultBatch/entityResults/entity_result": entity_result
+"/datastore:v1/QueryResultBatch/skippedResults": skipped_results
+"/datastore:v1/AllocateIdsRequest/keys": keys
+"/datastore:v1/AllocateIdsRequest/keys/key": key
+"/datastore:v1/KindExpression": kind_expression
+"/datastore:v1/KindExpression/name": name
+"/datastore:v1/PropertyFilter": property_filter
+"/datastore:v1/PropertyFilter/value": value
+"/datastore:v1/PropertyFilter/op": op
+"/datastore:v1/PropertyFilter/property": property
+"/datastore:v1/PathElement": path_element
+"/datastore:v1/PathElement/kind": kind
+"/datastore:v1/PathElement/id": id
+"/datastore:v1/PathElement/name": name
+"/datastore:v1/RollbackResponse": rollback_response
+"/datastore:v1/PropertyReference": property_reference
+"/datastore:v1/PropertyReference/name": name
+"/datastore:v1/Projection": projection
+"/datastore:v1/Projection/property": property
+"/datastore:v1/MutationResult": mutation_result
+"/datastore:v1/MutationResult/conflictDetected": conflict_detected
+"/datastore:v1/MutationResult/key": key
+"/datastore:v1/MutationResult/version": version
+"/datastore:v1/AllocateIdsResponse/keys": keys
+"/datastore:v1/AllocateIdsResponse/keys/key": key
+"/datastore:v1/LookupResponse": lookup_response
+"/datastore:v1/LookupResponse/found": found
+"/datastore:v1/LookupResponse/found/found": found
+"/datastore:v1/LookupResponse/missing": missing
+"/datastore:v1/LookupResponse/missing/missing": missing
+"/datastore:v1/LookupResponse/deferred": deferred
+"/datastore:v1/LookupResponse/deferred/deferred": deferred
+"/datastore:v1/Key": key
+"/datastore:v1/Key/partitionId": partition_id
+"/datastore:v1/Key/path": path
+"/datastore:v1/Key/path/path": path
+"/datastore:v1/RunQueryResponse": run_query_response
+"/datastore:v1/RunQueryResponse/batch": batch
+"/datastore:v1/RunQueryResponse/query": query
+"/datastore:v1/Entity": entity
+"/datastore:v1/Entity/properties": properties
+"/datastore:v1/Entity/properties/property": property
+"/datastore:v1/Entity/key": key
+"/datastore:v1/GqlQuery": gql_query
+"/datastore:v1/GqlQuery/queryString": query_string
+"/datastore:v1/GqlQuery/namedBindings": named_bindings
+"/datastore:v1/GqlQuery/namedBindings/named_binding": named_binding
+"/datastore:v1/GqlQuery/allowLiterals": allow_literals
+"/datastore:v1/GqlQuery/positionalBindings": positional_bindings
+"/datastore:v1/GqlQuery/positionalBindings/positional_binding": positional_binding
+"/datastore:v1/Mutation": mutation
+"/datastore:v1/Mutation/insert": insert
+"/datastore:v1/Mutation/update": update
+"/datastore:v1/Mutation/baseVersion": base_version
+"/datastore:v1/Mutation/upsert": upsert
+"/datastore:v1/Mutation/delete": delete
+"/datastore:v1/CommitResponse": commit_response
+"/datastore:v1/CommitResponse/mutationResults": mutation_results
+"/datastore:v1/CommitResponse/mutationResults/mutation_result": mutation_result
+"/datastore:v1/CommitResponse/indexUpdates": index_updates
+"/datastore:v1/RunQueryRequest": run_query_request
+"/datastore:v1/RunQueryRequest/partitionId": partition_id
+"/datastore:v1/RunQueryRequest/gqlQuery": gql_query
+"/datastore:v1/RunQueryRequest/readOptions": read_options
+"/datastore:v1/RunQueryRequest/query": query
+"/datastore:v1/LookupRequest": lookup_request
+"/datastore:v1/LookupRequest/readOptions": read_options
+"/datastore:v1/LookupRequest/keys": keys
+"/datastore:v1/LookupRequest/keys/key": key
+"/datastore:v1/LatLng": lat_lng
+"/datastore:v1/LatLng/latitude": latitude
+"/datastore:v1/LatLng/longitude": longitude
+"/datastore:v1/CompositeFilter": composite_filter
+"/datastore:v1/CompositeFilter/op": op
+"/datastore:v1/CompositeFilter/filters": filters
+"/datastore:v1/CompositeFilter/filters/filter": filter
"/deploymentmanager:v2/fields": fields
"/deploymentmanager:v2/key": key
"/deploymentmanager:v2/quotaUser": quota_user
@@ -15608,6 +15608,9 @@
"/deploymentmanager:v2/deploymentmanager.deployments.get": get_deployment
"/deploymentmanager:v2/deploymentmanager.deployments.get/deployment": deployment
"/deploymentmanager:v2/deploymentmanager.deployments.get/project": project
+"/deploymentmanager:v2/deploymentmanager.deployments.getIamPolicy": get_deployment_iam_policy
+"/deploymentmanager:v2/deploymentmanager.deployments.getIamPolicy/project": project
+"/deploymentmanager:v2/deploymentmanager.deployments.getIamPolicy/resource": resource
"/deploymentmanager:v2/deploymentmanager.deployments.insert": insert_deployment
"/deploymentmanager:v2/deploymentmanager.deployments.insert/preview": preview
"/deploymentmanager:v2/deploymentmanager.deployments.insert/project": project
@@ -15622,9 +15625,15 @@
"/deploymentmanager:v2/deploymentmanager.deployments.patch/deployment": deployment
"/deploymentmanager:v2/deploymentmanager.deployments.patch/preview": preview
"/deploymentmanager:v2/deploymentmanager.deployments.patch/project": project
+"/deploymentmanager:v2/deploymentmanager.deployments.setIamPolicy": set_deployment_iam_policy
+"/deploymentmanager:v2/deploymentmanager.deployments.setIamPolicy/project": project
+"/deploymentmanager:v2/deploymentmanager.deployments.setIamPolicy/resource": resource
"/deploymentmanager:v2/deploymentmanager.deployments.stop": stop_deployment
"/deploymentmanager:v2/deploymentmanager.deployments.stop/deployment": deployment
"/deploymentmanager:v2/deploymentmanager.deployments.stop/project": project
+"/deploymentmanager:v2/deploymentmanager.deployments.testIamPermissions": test_deployment_iam_permissions
+"/deploymentmanager:v2/deploymentmanager.deployments.testIamPermissions/project": project
+"/deploymentmanager:v2/deploymentmanager.deployments.testIamPermissions/resource": resource
"/deploymentmanager:v2/deploymentmanager.deployments.update": update_deployment
"/deploymentmanager:v2/deploymentmanager.deployments.update/createPolicy": create_policy
"/deploymentmanager:v2/deploymentmanager.deployments.update/deletePolicy": delete_policy
@@ -15664,6 +15673,22 @@
"/deploymentmanager:v2/deploymentmanager.types.list/maxResults": max_results
"/deploymentmanager:v2/deploymentmanager.types.list/pageToken": page_token
"/deploymentmanager:v2/deploymentmanager.types.list/project": project
+"/deploymentmanager:v2/AuditConfig": audit_config
+"/deploymentmanager:v2/AuditConfig/exemptedMembers": exempted_members
+"/deploymentmanager:v2/AuditConfig/exemptedMembers/exempted_member": exempted_member
+"/deploymentmanager:v2/AuditConfig/service": service
+"/deploymentmanager:v2/Binding": binding
+"/deploymentmanager:v2/Binding/members": members
+"/deploymentmanager:v2/Binding/members/member": member
+"/deploymentmanager:v2/Binding/role": role
+"/deploymentmanager:v2/Condition": condition
+"/deploymentmanager:v2/Condition/iam": iam
+"/deploymentmanager:v2/Condition/op": op
+"/deploymentmanager:v2/Condition/svc": svc
+"/deploymentmanager:v2/Condition/sys": sys
+"/deploymentmanager:v2/Condition/value": value
+"/deploymentmanager:v2/Condition/values": values
+"/deploymentmanager:v2/Condition/values/value": value
"/deploymentmanager:v2/ConfigFile": config_file
"/deploymentmanager:v2/ConfigFile/content": content
"/deploymentmanager:v2/Deployment": deployment
@@ -15699,6 +15724,11 @@
"/deploymentmanager:v2/ImportFile": import_file
"/deploymentmanager:v2/ImportFile/content": content
"/deploymentmanager:v2/ImportFile/name": name
+"/deploymentmanager:v2/LogConfig": log_config
+"/deploymentmanager:v2/LogConfig/counter": counter
+"/deploymentmanager:v2/LogConfigCounterOptions": log_config_counter_options
+"/deploymentmanager:v2/LogConfigCounterOptions/field": field
+"/deploymentmanager:v2/LogConfigCounterOptions/metric": metric
"/deploymentmanager:v2/Manifest": manifest
"/deploymentmanager:v2/Manifest/config": config
"/deploymentmanager:v2/Manifest/expandedConfig": expanded_config
@@ -15751,7 +15781,18 @@
"/deploymentmanager:v2/OperationsListResponse/nextPageToken": next_page_token
"/deploymentmanager:v2/OperationsListResponse/operations": operations
"/deploymentmanager:v2/OperationsListResponse/operations/operation": operation
+"/deploymentmanager:v2/Policy": policy
+"/deploymentmanager:v2/Policy/auditConfigs": audit_configs
+"/deploymentmanager:v2/Policy/auditConfigs/audit_config": audit_config
+"/deploymentmanager:v2/Policy/bindings": bindings
+"/deploymentmanager:v2/Policy/bindings/binding": binding
+"/deploymentmanager:v2/Policy/etag": etag
+"/deploymentmanager:v2/Policy/iamOwned": iam_owned
+"/deploymentmanager:v2/Policy/rules": rules
+"/deploymentmanager:v2/Policy/rules/rule": rule
+"/deploymentmanager:v2/Policy/version": version
"/deploymentmanager:v2/Resource": resource
+"/deploymentmanager:v2/Resource/accessControl": access_control
"/deploymentmanager:v2/Resource/finalProperties": final_properties
"/deploymentmanager:v2/Resource/id": id
"/deploymentmanager:v2/Resource/insertTime": insert_time
@@ -15770,7 +15811,10 @@
"/deploymentmanager:v2/Resource/warnings/warning/data/datum/key": key
"/deploymentmanager:v2/Resource/warnings/warning/data/datum/value": value
"/deploymentmanager:v2/Resource/warnings/warning/message": message
+"/deploymentmanager:v2/ResourceAccessControl": resource_access_control
+"/deploymentmanager:v2/ResourceAccessControl/gcpIamPolicy": gcp_iam_policy
"/deploymentmanager:v2/ResourceUpdate": resource_update
+"/deploymentmanager:v2/ResourceUpdate/accessControl": access_control
"/deploymentmanager:v2/ResourceUpdate/error": error
"/deploymentmanager:v2/ResourceUpdate/error/errors": errors
"/deploymentmanager:v2/ResourceUpdate/error/errors/error": error
@@ -15793,10 +15837,29 @@
"/deploymentmanager:v2/ResourcesListResponse/nextPageToken": next_page_token
"/deploymentmanager:v2/ResourcesListResponse/resources": resources
"/deploymentmanager:v2/ResourcesListResponse/resources/resource": resource
+"/deploymentmanager:v2/Rule": rule
+"/deploymentmanager:v2/Rule/action": action
+"/deploymentmanager:v2/Rule/conditions": conditions
+"/deploymentmanager:v2/Rule/conditions/condition": condition
+"/deploymentmanager:v2/Rule/description": description
+"/deploymentmanager:v2/Rule/ins": ins
+"/deploymentmanager:v2/Rule/ins/in": in
+"/deploymentmanager:v2/Rule/logConfigs": log_configs
+"/deploymentmanager:v2/Rule/logConfigs/log_config": log_config
+"/deploymentmanager:v2/Rule/notIns": not_ins
+"/deploymentmanager:v2/Rule/notIns/not_in": not_in
+"/deploymentmanager:v2/Rule/permissions": permissions
+"/deploymentmanager:v2/Rule/permissions/permission": permission
"/deploymentmanager:v2/TargetConfiguration": target_configuration
"/deploymentmanager:v2/TargetConfiguration/config": config
"/deploymentmanager:v2/TargetConfiguration/imports": imports
"/deploymentmanager:v2/TargetConfiguration/imports/import": import
+"/deploymentmanager:v2/TestPermissionsRequest": test_permissions_request
+"/deploymentmanager:v2/TestPermissionsRequest/permissions": permissions
+"/deploymentmanager:v2/TestPermissionsRequest/permissions/permission": permission
+"/deploymentmanager:v2/TestPermissionsResponse": test_permissions_response
+"/deploymentmanager:v2/TestPermissionsResponse/permissions": permissions
+"/deploymentmanager:v2/TestPermissionsResponse/permissions/permission": permission
"/deploymentmanager:v2/Type": type
"/deploymentmanager:v2/Type/id": id
"/deploymentmanager:v2/Type/insertTime": insert_time
diff --git a/generated/google/apis/adsense_v1_4.rb b/generated/google/apis/adsense_v1_4.rb
index a03b791b9..9158c9891 100644
--- a/generated/google/apis/adsense_v1_4.rb
+++ b/generated/google/apis/adsense_v1_4.rb
@@ -25,7 +25,7 @@ module Google
# @see https://developers.google.com/adsense/management/
module AdsenseV1_4
VERSION = 'V1_4'
- REVISION = '20160910'
+ REVISION = '20160918'
# View and manage your AdSense data
AUTH_ADSENSE = 'https://www.googleapis.com/auth/adsense'
diff --git a/generated/google/apis/adsensehost_v4_1.rb b/generated/google/apis/adsensehost_v4_1.rb
index 11cdfe05f..60190ff28 100644
--- a/generated/google/apis/adsensehost_v4_1.rb
+++ b/generated/google/apis/adsensehost_v4_1.rb
@@ -26,7 +26,7 @@ module Google
# @see https://developers.google.com/adsense/host/
module AdsensehostV4_1
VERSION = 'V4_1'
- REVISION = '20160910'
+ REVISION = '20160918'
# View and manage your AdSense host data and associated accounts
AUTH_ADSENSEHOST = 'https://www.googleapis.com/auth/adsensehost'
diff --git a/generated/google/apis/cloudbuild_v1.rb b/generated/google/apis/cloudbuild_v1.rb
index 009708386..348b93dbc 100644
--- a/generated/google/apis/cloudbuild_v1.rb
+++ b/generated/google/apis/cloudbuild_v1.rb
@@ -25,7 +25,7 @@ module Google
# @see https://cloud.google.com/container-builder/docs/
module CloudbuildV1
VERSION = 'V1'
- REVISION = '20160919'
+ REVISION = '20160920'
# View and manage your data across Google Cloud Platform services
AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
diff --git a/generated/google/apis/datastore_v1.rb b/generated/google/apis/datastore_v1.rb
new file mode 100644
index 000000000..5be7418cd
--- /dev/null
+++ b/generated/google/apis/datastore_v1.rb
@@ -0,0 +1,38 @@
+# Copyright 2015 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License 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.
+
+require 'google/apis/datastore_v1/service.rb'
+require 'google/apis/datastore_v1/classes.rb'
+require 'google/apis/datastore_v1/representations.rb'
+
+module Google
+ module Apis
+ # Google Cloud Datastore API
+ #
+ # Accesses the schemaless NoSQL database to provide fully managed, robust,
+ # scalable storage for your application.
+ #
+ # @see https://cloud.google.com/datastore/
+ module DatastoreV1
+ VERSION = 'V1'
+ REVISION = '20160823'
+
+ # View and manage your data across Google Cloud Platform services
+ AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
+
+ # View and manage your Google Cloud Datastore data
+ AUTH_DATASTORE = 'https://www.googleapis.com/auth/datastore'
+ end
+ end
+end
diff --git a/generated/google/apis/datastore_v1/classes.rb b/generated/google/apis/datastore_v1/classes.rb
new file mode 100644
index 000000000..14541e019
--- /dev/null
+++ b/generated/google/apis/datastore_v1/classes.rb
@@ -0,0 +1,1284 @@
+# Copyright 2015 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License 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.
+
+require 'date'
+require 'google/apis/core/base_service'
+require 'google/apis/core/json_representation'
+require 'google/apis/core/hashable'
+require 'google/apis/errors'
+
+module Google
+ module Apis
+ module DatastoreV1
+
+ # A message that can hold any of the supported value types and associated
+ # metadata.
+ class Value
+ include Google::Apis::Core::Hashable
+
+ # A UTF-8 encoded string value.
+ # When `exclude_from_indexes` is false (it is indexed) , may have at most 1500
+ # bytes.
+ # Otherwise, may be set to at least 1,000,000 bytes.
+ # Corresponds to the JSON property `stringValue`
+ # @return [String]
+ attr_accessor :string_value
+
+ # An array value.
+ # Corresponds to the JSON property `arrayValue`
+ # @return [Google::Apis::DatastoreV1::ArrayValue]
+ attr_accessor :array_value
+
+ # A Datastore data object.
+ # An entity is limited to 1 megabyte when stored. That _roughly_
+ # corresponds to a limit of 1 megabyte for the serialized form of this
+ # message.
+ # Corresponds to the JSON property `entityValue`
+ # @return [Google::Apis::DatastoreV1::Entity]
+ attr_accessor :entity_value
+
+ # The `meaning` field should only be populated for backwards compatibility.
+ # Corresponds to the JSON property `meaning`
+ # @return [Fixnum]
+ attr_accessor :meaning
+
+ # An integer value.
+ # Corresponds to the JSON property `integerValue`
+ # @return [String]
+ attr_accessor :integer_value
+
+ # A double value.
+ # Corresponds to the JSON property `doubleValue`
+ # @return [Float]
+ attr_accessor :double_value
+
+ # A blob value.
+ # May have at most 1,000,000 bytes.
+ # When `exclude_from_indexes` is false, may have at most 1500 bytes.
+ # In JSON requests, must be base64-encoded.
+ # Corresponds to the JSON property `blobValue`
+ # @return [String]
+ attr_accessor :blob_value
+
+ # An object representing a latitude/longitude pair. This is expressed as a pair
+ # of doubles representing degrees latitude and degrees longitude. Unless
+ # specified otherwise, this must conform to the
+ # WGS84
+ # standard. Values must be within normalized ranges.
+ # Example of normalization code in Python:
+ # def NormalizeLongitude(longitude):
+ # """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+ # q, r = divmod(longitude, 360.0)
+ # if r > 180.0 or (r == 180.0 and q <= -1.0):
+ # return r - 360.0
+ # return r
+ # def NormalizeLatLng(latitude, longitude):
+ # """Wraps decimal degrees latitude and longitude to
+ # [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+ # r = latitude % 360.0
+ # if r <= 90.0:
+ # return r, NormalizeLongitude(longitude)
+ # elif r >= 270.0:
+ # return r - 360, NormalizeLongitude(longitude)
+ # else:
+ # return 180 - r, NormalizeLongitude(longitude + 180.0)
+ # assert 180.0 == NormalizeLongitude(180.0)
+ # assert -180.0 == NormalizeLongitude(-180.0)
+ # assert -179.0 == NormalizeLongitude(181.0)
+ # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+ # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+ # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+ # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+ # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+ # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+ # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+ # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+ # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+ # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+ # Corresponds to the JSON property `geoPointValue`
+ # @return [Google::Apis::DatastoreV1::LatLng]
+ attr_accessor :geo_point_value
+
+ # A null value.
+ # Corresponds to the JSON property `nullValue`
+ # @return [String]
+ attr_accessor :null_value
+
+ # A boolean value.
+ # Corresponds to the JSON property `booleanValue`
+ # @return [Boolean]
+ attr_accessor :boolean_value
+ alias_method :boolean_value?, :boolean_value
+
+ # A unique identifier for an entity.
+ # If a key's partition ID or any of its path kinds or names are
+ # reserved/read-only, the key is reserved/read-only.
+ # A reserved/read-only key is forbidden in certain documented contexts.
+ # Corresponds to the JSON property `keyValue`
+ # @return [Google::Apis::DatastoreV1::Key]
+ attr_accessor :key_value
+
+ # If the value should be excluded from all indexes including those defined
+ # explicitly.
+ # Corresponds to the JSON property `excludeFromIndexes`
+ # @return [Boolean]
+ attr_accessor :exclude_from_indexes
+ alias_method :exclude_from_indexes?, :exclude_from_indexes
+
+ # A timestamp value.
+ # When stored in the Datastore, precise only to microseconds;
+ # any additional precision is rounded down.
+ # Corresponds to the JSON property `timestampValue`
+ # @return [String]
+ attr_accessor :timestamp_value
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @string_value = args[:string_value] if args.key?(:string_value)
+ @array_value = args[:array_value] if args.key?(:array_value)
+ @entity_value = args[:entity_value] if args.key?(:entity_value)
+ @meaning = args[:meaning] if args.key?(:meaning)
+ @integer_value = args[:integer_value] if args.key?(:integer_value)
+ @double_value = args[:double_value] if args.key?(:double_value)
+ @blob_value = args[:blob_value] if args.key?(:blob_value)
+ @geo_point_value = args[:geo_point_value] if args.key?(:geo_point_value)
+ @null_value = args[:null_value] if args.key?(:null_value)
+ @boolean_value = args[:boolean_value] if args.key?(:boolean_value)
+ @key_value = args[:key_value] if args.key?(:key_value)
+ @exclude_from_indexes = args[:exclude_from_indexes] if args.key?(:exclude_from_indexes)
+ @timestamp_value = args[:timestamp_value] if args.key?(:timestamp_value)
+ end
+ end
+
+ # The options shared by read requests.
+ class ReadOptions
+ include Google::Apis::Core::Hashable
+
+ # The identifier of the transaction in which to read. A
+ # transaction identifier is returned by a call to
+ # Datastore.BeginTransaction.
+ # Corresponds to the JSON property `transaction`
+ # @return [String]
+ attr_accessor :transaction
+
+ # The non-transactional read consistency to use.
+ # Cannot be set to `STRONG` for global queries.
+ # Corresponds to the JSON property `readConsistency`
+ # @return [String]
+ attr_accessor :read_consistency
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @transaction = args[:transaction] if args.key?(:transaction)
+ @read_consistency = args[:read_consistency] if args.key?(:read_consistency)
+ end
+ end
+
+ # The desired order for a specific property.
+ class PropertyOrder
+ include Google::Apis::Core::Hashable
+
+ # The direction to order by. Defaults to `ASCENDING`.
+ # Corresponds to the JSON property `direction`
+ # @return [String]
+ attr_accessor :direction
+
+ # A reference to a property relative to the kind expressions.
+ # Corresponds to the JSON property `property`
+ # @return [Google::Apis::DatastoreV1::PropertyReference]
+ attr_accessor :property
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @direction = args[:direction] if args.key?(:direction)
+ @property = args[:property] if args.key?(:property)
+ end
+ end
+
+ # The request for Datastore.Commit.
+ class CommitRequest
+ include Google::Apis::Core::Hashable
+
+ # The identifier of the transaction associated with the commit. A
+ # transaction identifier is returned by a call to
+ # Datastore.BeginTransaction.
+ # Corresponds to the JSON property `transaction`
+ # @return [String]
+ attr_accessor :transaction
+
+ # The type of commit to perform. Defaults to `TRANSACTIONAL`.
+ # Corresponds to the JSON property `mode`
+ # @return [String]
+ attr_accessor :mode
+
+ # The mutations to perform.
+ # When mode is `TRANSACTIONAL`, mutations affecting a single entity are
+ # applied in order. The following sequences of mutations affecting a single
+ # entity are not permitted in a single `Commit` request:
+ # - `insert` followed by `insert`
+ # - `update` followed by `insert`
+ # - `upsert` followed by `insert`
+ # - `delete` followed by `update`
+ # When mode is `NON_TRANSACTIONAL`, no two mutations may affect a single
+ # entity.
+ # Corresponds to the JSON property `mutations`
+ # @return [Array]
+ attr_accessor :mutations
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @transaction = args[:transaction] if args.key?(:transaction)
+ @mode = args[:mode] if args.key?(:mode)
+ @mutations = args[:mutations] if args.key?(:mutations)
+ end
+ end
+
+ # A query for entities.
+ class Query
+ include Google::Apis::Core::Hashable
+
+ # The maximum number of results to return. Applies after all other
+ # constraints. Optional.
+ # Unspecified is interpreted as no limit.
+ # Must be >= 0 if specified.
+ # Corresponds to the JSON property `limit`
+ # @return [Fixnum]
+ attr_accessor :limit
+
+ # A holder for any type of filter.
+ # Corresponds to the JSON property `filter`
+ # @return [Google::Apis::DatastoreV1::Filter]
+ attr_accessor :filter
+
+ # An ending point for the query results. Query cursors are
+ # returned in query result batches and
+ # [can only be used to limit the same query](https://cloud.google.com/datastore/
+ # docs/concepts/queries#cursors_limits_and_offsets).
+ # Corresponds to the JSON property `endCursor`
+ # @return [String]
+ attr_accessor :end_cursor
+
+ # The properties to make distinct. The query results will contain the first
+ # result for each distinct combination of values for the given properties
+ # (if empty, all results are returned).
+ # Corresponds to the JSON property `distinctOn`
+ # @return [Array]
+ attr_accessor :distinct_on
+
+ # The number of results to skip. Applies before limit, but after all other
+ # constraints. Optional. Must be >= 0 if specified.
+ # Corresponds to the JSON property `offset`
+ # @return [Fixnum]
+ attr_accessor :offset
+
+ # The projection to return. Defaults to returning all properties.
+ # Corresponds to the JSON property `projection`
+ # @return [Array]
+ attr_accessor :projection
+
+ # The order to apply to the query results (if empty, order is unspecified).
+ # Corresponds to the JSON property `order`
+ # @return [Array]
+ attr_accessor :order
+
+ # A starting point for the query results. Query cursors are
+ # returned in query result batches and
+ # [can only be used to continue the same query](https://cloud.google.com/
+ # datastore/docs/concepts/queries#cursors_limits_and_offsets).
+ # Corresponds to the JSON property `startCursor`
+ # @return [String]
+ attr_accessor :start_cursor
+
+ # The kinds to query (if empty, returns entities of all kinds).
+ # Currently at most 1 kind may be specified.
+ # Corresponds to the JSON property `kind`
+ # @return [Array]
+ attr_accessor :kind
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @limit = args[:limit] if args.key?(:limit)
+ @filter = args[:filter] if args.key?(:filter)
+ @end_cursor = args[:end_cursor] if args.key?(:end_cursor)
+ @distinct_on = args[:distinct_on] if args.key?(:distinct_on)
+ @offset = args[:offset] if args.key?(:offset)
+ @projection = args[:projection] if args.key?(:projection)
+ @order = args[:order] if args.key?(:order)
+ @start_cursor = args[:start_cursor] if args.key?(:start_cursor)
+ @kind = args[:kind] if args.key?(:kind)
+ end
+ end
+
+ # The request for Datastore.Rollback.
+ class RollbackRequest
+ include Google::Apis::Core::Hashable
+
+ # The transaction identifier, returned by a call to
+ # Datastore.BeginTransaction.
+ # Corresponds to the JSON property `transaction`
+ # @return [String]
+ attr_accessor :transaction
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @transaction = args[:transaction] if args.key?(:transaction)
+ end
+ end
+
+ # The result of fetching an entity from Datastore.
+ class EntityResult
+ include Google::Apis::Core::Hashable
+
+ # A cursor that points to the position after the result entity.
+ # Set only when the `EntityResult` is part of a `QueryResultBatch` message.
+ # Corresponds to the JSON property `cursor`
+ # @return [String]
+ attr_accessor :cursor
+
+ # A Datastore data object.
+ # An entity is limited to 1 megabyte when stored. That _roughly_
+ # corresponds to a limit of 1 megabyte for the serialized form of this
+ # message.
+ # Corresponds to the JSON property `entity`
+ # @return [Google::Apis::DatastoreV1::Entity]
+ attr_accessor :entity
+
+ # The version of the entity, a strictly positive number that monotonically
+ # increases with changes to the entity.
+ # This field is set for `FULL` entity
+ # results.
+ # For missing entities in `LookupResponse`, this
+ # is the version of the snapshot that was used to look up the entity, and it
+ # is always set except for eventually consistent reads.
+ # Corresponds to the JSON property `version`
+ # @return [String]
+ attr_accessor :version
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @cursor = args[:cursor] if args.key?(:cursor)
+ @entity = args[:entity] if args.key?(:entity)
+ @version = args[:version] if args.key?(:version)
+ end
+ end
+
+ # A binding parameter for a GQL query.
+ class GqlQueryParameter
+ include Google::Apis::Core::Hashable
+
+ # A message that can hold any of the supported value types and associated
+ # metadata.
+ # Corresponds to the JSON property `value`
+ # @return [Google::Apis::DatastoreV1::Value]
+ attr_accessor :value
+
+ # A query cursor. Query cursors are returned in query
+ # result batches.
+ # Corresponds to the JSON property `cursor`
+ # @return [String]
+ attr_accessor :cursor
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @value = args[:value] if args.key?(:value)
+ @cursor = args[:cursor] if args.key?(:cursor)
+ end
+ end
+
+ # An array value.
+ class ArrayValue
+ include Google::Apis::Core::Hashable
+
+ # Values in the array.
+ # The order of this array may not be preserved if it contains a mix of
+ # indexed and unindexed values.
+ # Corresponds to the JSON property `values`
+ # @return [Array]
+ attr_accessor :values
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @values = args[:values] if args.key?(:values)
+ end
+ end
+
+ # A holder for any type of filter.
+ class Filter
+ include Google::Apis::Core::Hashable
+
+ # A filter on a specific property.
+ # Corresponds to the JSON property `propertyFilter`
+ # @return [Google::Apis::DatastoreV1::PropertyFilter]
+ attr_accessor :property_filter
+
+ # A filter that merges multiple other filters using the given operator.
+ # Corresponds to the JSON property `compositeFilter`
+ # @return [Google::Apis::DatastoreV1::CompositeFilter]
+ attr_accessor :composite_filter
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @property_filter = args[:property_filter] if args.key?(:property_filter)
+ @composite_filter = args[:composite_filter] if args.key?(:composite_filter)
+ end
+ end
+
+ # The response for Datastore.BeginTransaction.
+ class BeginTransactionResponse
+ include Google::Apis::Core::Hashable
+
+ # The transaction identifier (always present).
+ # Corresponds to the JSON property `transaction`
+ # @return [String]
+ attr_accessor :transaction
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @transaction = args[:transaction] if args.key?(:transaction)
+ end
+ end
+
+ # A partition ID identifies a grouping of entities. The grouping is always
+ # by project and namespace, however the namespace ID may be empty.
+ # A partition ID contains several dimensions:
+ # project ID and namespace ID.
+ # Partition dimensions:
+ # - May be `""`.
+ # - Must be valid UTF-8 bytes.
+ # - Must have values that match regex `[A-Za-z\d\.\-_]`1,100``
+ # If the value of any dimension matches regex `__.*__`, the partition is
+ # reserved/read-only.
+ # A reserved/read-only partition ID is forbidden in certain documented
+ # contexts.
+ # Foreign partition IDs (in which the project ID does
+ # not match the context project ID ) are discouraged.
+ # Reads and writes of foreign partition IDs may fail if the project is not in an
+ # active state.
+ class PartitionId
+ include Google::Apis::Core::Hashable
+
+ # If not empty, the ID of the namespace to which the entities belong.
+ # Corresponds to the JSON property `namespaceId`
+ # @return [String]
+ attr_accessor :namespace_id
+
+ # The ID of the project to which the entities belong.
+ # Corresponds to the JSON property `projectId`
+ # @return [String]
+ attr_accessor :project_id
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @namespace_id = args[:namespace_id] if args.key?(:namespace_id)
+ @project_id = args[:project_id] if args.key?(:project_id)
+ end
+ end
+
+ # A batch of results produced by a query.
+ class QueryResultBatch
+ include Google::Apis::Core::Hashable
+
+ # The version number of the snapshot this batch was returned from.
+ # This applies to the range of results from the query's `start_cursor` (or
+ # the beginning of the query if no cursor was given) to this batch's
+ # `end_cursor` (not the query's `end_cursor`).
+ # In a single transaction, subsequent query result batches for the same query
+ # can have a greater snapshot version number. Each batch's snapshot version
+ # is valid for all preceding batches.
+ # Corresponds to the JSON property `snapshotVersion`
+ # @return [String]
+ attr_accessor :snapshot_version
+
+ # A cursor that points to the position after the last result in the batch.
+ # Corresponds to the JSON property `endCursor`
+ # @return [String]
+ attr_accessor :end_cursor
+
+ # A cursor that points to the position after the last skipped result.
+ # Will be set when `skipped_results` != 0.
+ # Corresponds to the JSON property `skippedCursor`
+ # @return [String]
+ attr_accessor :skipped_cursor
+
+ # The result type for every entity in `entity_results`.
+ # Corresponds to the JSON property `entityResultType`
+ # @return [String]
+ attr_accessor :entity_result_type
+
+ # The state of the query after the current batch.
+ # Corresponds to the JSON property `moreResults`
+ # @return [String]
+ attr_accessor :more_results
+
+ # The results for this batch.
+ # Corresponds to the JSON property `entityResults`
+ # @return [Array]
+ attr_accessor :entity_results
+
+ # The number of results skipped, typically because of an offset.
+ # Corresponds to the JSON property `skippedResults`
+ # @return [Fixnum]
+ attr_accessor :skipped_results
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @snapshot_version = args[:snapshot_version] if args.key?(:snapshot_version)
+ @end_cursor = args[:end_cursor] if args.key?(:end_cursor)
+ @skipped_cursor = args[:skipped_cursor] if args.key?(:skipped_cursor)
+ @entity_result_type = args[:entity_result_type] if args.key?(:entity_result_type)
+ @more_results = args[:more_results] if args.key?(:more_results)
+ @entity_results = args[:entity_results] if args.key?(:entity_results)
+ @skipped_results = args[:skipped_results] if args.key?(:skipped_results)
+ end
+ end
+
+ # The request for Datastore.AllocateIds.
+ class AllocateIdsRequest
+ include Google::Apis::Core::Hashable
+
+ # A list of keys with incomplete key paths for which to allocate IDs.
+ # No key may be reserved/read-only.
+ # Corresponds to the JSON property `keys`
+ # @return [Array]
+ attr_accessor :keys
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @keys = args[:keys] if args.key?(:keys)
+ end
+ end
+
+ # A representation of a kind.
+ class KindExpression
+ include Google::Apis::Core::Hashable
+
+ # The name of the kind.
+ # Corresponds to the JSON property `name`
+ # @return [String]
+ attr_accessor :name
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @name = args[:name] if args.key?(:name)
+ end
+ end
+
+ # A filter on a specific property.
+ class PropertyFilter
+ include Google::Apis::Core::Hashable
+
+ # A message that can hold any of the supported value types and associated
+ # metadata.
+ # Corresponds to the JSON property `value`
+ # @return [Google::Apis::DatastoreV1::Value]
+ attr_accessor :value
+
+ # The operator to filter by.
+ # Corresponds to the JSON property `op`
+ # @return [String]
+ attr_accessor :op
+
+ # A reference to a property relative to the kind expressions.
+ # Corresponds to the JSON property `property`
+ # @return [Google::Apis::DatastoreV1::PropertyReference]
+ attr_accessor :property
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @value = args[:value] if args.key?(:value)
+ @op = args[:op] if args.key?(:op)
+ @property = args[:property] if args.key?(:property)
+ end
+ end
+
+ # A (kind, ID/name) pair used to construct a key path.
+ # If either name or ID is set, the element is complete.
+ # If neither is set, the element is incomplete.
+ class PathElement
+ include Google::Apis::Core::Hashable
+
+ # The kind of the entity.
+ # A kind matching regex `__.*__` is reserved/read-only.
+ # A kind must not contain more than 1500 bytes when UTF-8 encoded.
+ # Cannot be `""`.
+ # Corresponds to the JSON property `kind`
+ # @return [String]
+ attr_accessor :kind
+
+ # The auto-allocated ID of the entity.
+ # Never equal to zero. Values less than zero are discouraged and may not
+ # be supported in the future.
+ # Corresponds to the JSON property `id`
+ # @return [String]
+ attr_accessor :id
+
+ # The name of the entity.
+ # A name matching regex `__.*__` is reserved/read-only.
+ # A name must not be more than 1500 bytes when UTF-8 encoded.
+ # Cannot be `""`.
+ # Corresponds to the JSON property `name`
+ # @return [String]
+ attr_accessor :name
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @kind = args[:kind] if args.key?(:kind)
+ @id = args[:id] if args.key?(:id)
+ @name = args[:name] if args.key?(:name)
+ end
+ end
+
+ # The response for Datastore.Rollback.
+ # (an empty message).
+ class RollbackResponse
+ include Google::Apis::Core::Hashable
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ end
+ end
+
+ # A reference to a property relative to the kind expressions.
+ class PropertyReference
+ include Google::Apis::Core::Hashable
+
+ # The name of the property.
+ # If name includes "."s, it may be interpreted as a property name path.
+ # Corresponds to the JSON property `name`
+ # @return [String]
+ attr_accessor :name
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @name = args[:name] if args.key?(:name)
+ end
+ end
+
+ # A representation of a property in a projection.
+ class Projection
+ include Google::Apis::Core::Hashable
+
+ # A reference to a property relative to the kind expressions.
+ # Corresponds to the JSON property `property`
+ # @return [Google::Apis::DatastoreV1::PropertyReference]
+ attr_accessor :property
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @property = args[:property] if args.key?(:property)
+ end
+ end
+
+ # The result of applying a mutation.
+ class MutationResult
+ include Google::Apis::Core::Hashable
+
+ # Whether a conflict was detected for this mutation. Always false when a
+ # conflict detection strategy field is not set in the mutation.
+ # Corresponds to the JSON property `conflictDetected`
+ # @return [Boolean]
+ attr_accessor :conflict_detected
+ alias_method :conflict_detected?, :conflict_detected
+
+ # A unique identifier for an entity.
+ # If a key's partition ID or any of its path kinds or names are
+ # reserved/read-only, the key is reserved/read-only.
+ # A reserved/read-only key is forbidden in certain documented contexts.
+ # Corresponds to the JSON property `key`
+ # @return [Google::Apis::DatastoreV1::Key]
+ attr_accessor :key
+
+ # The version of the entity on the server after processing the mutation. If
+ # the mutation doesn't change anything on the server, then the version will
+ # be the version of the current entity or, if no entity is present, a version
+ # that is strictly greater than the version of any previous entity and less
+ # than the version of any possible future entity.
+ # Corresponds to the JSON property `version`
+ # @return [String]
+ attr_accessor :version
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @conflict_detected = args[:conflict_detected] if args.key?(:conflict_detected)
+ @key = args[:key] if args.key?(:key)
+ @version = args[:version] if args.key?(:version)
+ end
+ end
+
+ # The response for Datastore.AllocateIds.
+ class AllocateIdsResponse
+ include Google::Apis::Core::Hashable
+
+ # The keys specified in the request (in the same order), each with
+ # its key path completed with a newly allocated ID.
+ # Corresponds to the JSON property `keys`
+ # @return [Array]
+ attr_accessor :keys
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @keys = args[:keys] if args.key?(:keys)
+ end
+ end
+
+ # The response for Datastore.Lookup.
+ class LookupResponse
+ include Google::Apis::Core::Hashable
+
+ # Entities found as `ResultType.FULL` entities. The order of results in this
+ # field is undefined and has no relation to the order of the keys in the
+ # input.
+ # Corresponds to the JSON property `found`
+ # @return [Array]
+ attr_accessor :found
+
+ # Entities not found as `ResultType.KEY_ONLY` entities. The order of results
+ # in this field is undefined and has no relation to the order of the keys
+ # in the input.
+ # Corresponds to the JSON property `missing`
+ # @return [Array]
+ attr_accessor :missing
+
+ # A list of keys that were not looked up due to resource constraints. The
+ # order of results in this field is undefined and has no relation to the
+ # order of the keys in the input.
+ # Corresponds to the JSON property `deferred`
+ # @return [Array]
+ attr_accessor :deferred
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @found = args[:found] if args.key?(:found)
+ @missing = args[:missing] if args.key?(:missing)
+ @deferred = args[:deferred] if args.key?(:deferred)
+ end
+ end
+
+ # The request for Datastore.BeginTransaction.
+ class BeginTransactionRequest
+ include Google::Apis::Core::Hashable
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ end
+ end
+
+ # A unique identifier for an entity.
+ # If a key's partition ID or any of its path kinds or names are
+ # reserved/read-only, the key is reserved/read-only.
+ # A reserved/read-only key is forbidden in certain documented contexts.
+ class Key
+ include Google::Apis::Core::Hashable
+
+ # A partition ID identifies a grouping of entities. The grouping is always
+ # by project and namespace, however the namespace ID may be empty.
+ # A partition ID contains several dimensions:
+ # project ID and namespace ID.
+ # Partition dimensions:
+ # - May be `""`.
+ # - Must be valid UTF-8 bytes.
+ # - Must have values that match regex `[A-Za-z\d\.\-_]`1,100``
+ # If the value of any dimension matches regex `__.*__`, the partition is
+ # reserved/read-only.
+ # A reserved/read-only partition ID is forbidden in certain documented
+ # contexts.
+ # Foreign partition IDs (in which the project ID does
+ # not match the context project ID ) are discouraged.
+ # Reads and writes of foreign partition IDs may fail if the project is not in an
+ # active state.
+ # Corresponds to the JSON property `partitionId`
+ # @return [Google::Apis::DatastoreV1::PartitionId]
+ attr_accessor :partition_id
+
+ # The entity path.
+ # An entity path consists of one or more elements composed of a kind and a
+ # string or numerical identifier, which identify entities. The first
+ # element identifies a _root entity_, the second element identifies
+ # a _child_ of the root entity, the third element identifies a child of the
+ # second entity, and so forth. The entities identified by all prefixes of
+ # the path are called the element's _ancestors_.
+ # An entity path is always fully complete: *all* of the entity's ancestors
+ # are required to be in the path along with the entity identifier itself.
+ # The only exception is that in some documented cases, the identifier in the
+ # last path element (for the entity) itself may be omitted. For example,
+ # the last path element of the key of `Mutation.insert` may have no
+ # identifier.
+ # A path can never be empty, and a path can have at most 100 elements.
+ # Corresponds to the JSON property `path`
+ # @return [Array]
+ attr_accessor :path
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @partition_id = args[:partition_id] if args.key?(:partition_id)
+ @path = args[:path] if args.key?(:path)
+ end
+ end
+
+ # The response for Datastore.RunQuery.
+ class RunQueryResponse
+ include Google::Apis::Core::Hashable
+
+ # A batch of results produced by a query.
+ # Corresponds to the JSON property `batch`
+ # @return [Google::Apis::DatastoreV1::QueryResultBatch]
+ attr_accessor :batch
+
+ # A query for entities.
+ # Corresponds to the JSON property `query`
+ # @return [Google::Apis::DatastoreV1::Query]
+ attr_accessor :query
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @batch = args[:batch] if args.key?(:batch)
+ @query = args[:query] if args.key?(:query)
+ end
+ end
+
+ # A Datastore data object.
+ # An entity is limited to 1 megabyte when stored. That _roughly_
+ # corresponds to a limit of 1 megabyte for the serialized form of this
+ # message.
+ class Entity
+ include Google::Apis::Core::Hashable
+
+ # The entity's properties.
+ # The map's keys are property names.
+ # A property name matching regex `__.*__` is reserved.
+ # A reserved property name is forbidden in certain documented contexts.
+ # The name must not contain more than 500 characters.
+ # The name cannot be `""`.
+ # Corresponds to the JSON property `properties`
+ # @return [Hash]
+ attr_accessor :properties
+
+ # A unique identifier for an entity.
+ # If a key's partition ID or any of its path kinds or names are
+ # reserved/read-only, the key is reserved/read-only.
+ # A reserved/read-only key is forbidden in certain documented contexts.
+ # Corresponds to the JSON property `key`
+ # @return [Google::Apis::DatastoreV1::Key]
+ attr_accessor :key
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @properties = args[:properties] if args.key?(:properties)
+ @key = args[:key] if args.key?(:key)
+ end
+ end
+
+ # A [GQL query](https://cloud.google.com/datastore/docs/apis/gql/gql_reference).
+ class GqlQuery
+ include Google::Apis::Core::Hashable
+
+ # A string of the format described
+ # [here](https://cloud.google.com/datastore/docs/apis/gql/gql_reference).
+ # Corresponds to the JSON property `queryString`
+ # @return [String]
+ attr_accessor :query_string
+
+ # For each non-reserved named binding site in the query string, there must be
+ # a named parameter with that name, but not necessarily the inverse.
+ # Key must match regex `A-Za-z_$*`, must not match regex
+ # `__.*__`, and must not be `""`.
+ # Corresponds to the JSON property `namedBindings`
+ # @return [Hash]
+ attr_accessor :named_bindings
+
+ # When false, the query string must not contain any literals and instead must
+ # bind all values. For example,
+ # `SELECT * FROM Kind WHERE a = 'string literal'` is not allowed, while
+ # `SELECT * FROM Kind WHERE a = @value` is.
+ # Corresponds to the JSON property `allowLiterals`
+ # @return [Boolean]
+ attr_accessor :allow_literals
+ alias_method :allow_literals?, :allow_literals
+
+ # Numbered binding site @1 references the first numbered parameter,
+ # effectively using 1-based indexing, rather than the usual 0.
+ # For each binding site numbered i in `query_string`, there must be an i-th
+ # numbered parameter. The inverse must also be true.
+ # Corresponds to the JSON property `positionalBindings`
+ # @return [Array]
+ attr_accessor :positional_bindings
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @query_string = args[:query_string] if args.key?(:query_string)
+ @named_bindings = args[:named_bindings] if args.key?(:named_bindings)
+ @allow_literals = args[:allow_literals] if args.key?(:allow_literals)
+ @positional_bindings = args[:positional_bindings] if args.key?(:positional_bindings)
+ end
+ end
+
+ # A mutation to apply to an entity.
+ class Mutation
+ include Google::Apis::Core::Hashable
+
+ # A Datastore data object.
+ # An entity is limited to 1 megabyte when stored. That _roughly_
+ # corresponds to a limit of 1 megabyte for the serialized form of this
+ # message.
+ # Corresponds to the JSON property `insert`
+ # @return [Google::Apis::DatastoreV1::Entity]
+ attr_accessor :insert
+
+ # A Datastore data object.
+ # An entity is limited to 1 megabyte when stored. That _roughly_
+ # corresponds to a limit of 1 megabyte for the serialized form of this
+ # message.
+ # Corresponds to the JSON property `update`
+ # @return [Google::Apis::DatastoreV1::Entity]
+ attr_accessor :update
+
+ # The version of the entity that this mutation is being applied to. If this
+ # does not match the current version on the server, the mutation conflicts.
+ # Corresponds to the JSON property `baseVersion`
+ # @return [String]
+ attr_accessor :base_version
+
+ # A Datastore data object.
+ # An entity is limited to 1 megabyte when stored. That _roughly_
+ # corresponds to a limit of 1 megabyte for the serialized form of this
+ # message.
+ # Corresponds to the JSON property `upsert`
+ # @return [Google::Apis::DatastoreV1::Entity]
+ attr_accessor :upsert
+
+ # A unique identifier for an entity.
+ # If a key's partition ID or any of its path kinds or names are
+ # reserved/read-only, the key is reserved/read-only.
+ # A reserved/read-only key is forbidden in certain documented contexts.
+ # Corresponds to the JSON property `delete`
+ # @return [Google::Apis::DatastoreV1::Key]
+ attr_accessor :delete
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @insert = args[:insert] if args.key?(:insert)
+ @update = args[:update] if args.key?(:update)
+ @base_version = args[:base_version] if args.key?(:base_version)
+ @upsert = args[:upsert] if args.key?(:upsert)
+ @delete = args[:delete] if args.key?(:delete)
+ end
+ end
+
+ # The response for Datastore.Commit.
+ class CommitResponse
+ include Google::Apis::Core::Hashable
+
+ # The result of performing the mutations.
+ # The i-th mutation result corresponds to the i-th mutation in the request.
+ # Corresponds to the JSON property `mutationResults`
+ # @return [Array]
+ attr_accessor :mutation_results
+
+ # The number of index entries updated during the commit, or zero if none were
+ # updated.
+ # Corresponds to the JSON property `indexUpdates`
+ # @return [Fixnum]
+ attr_accessor :index_updates
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @mutation_results = args[:mutation_results] if args.key?(:mutation_results)
+ @index_updates = args[:index_updates] if args.key?(:index_updates)
+ end
+ end
+
+ # The request for Datastore.RunQuery.
+ class RunQueryRequest
+ include Google::Apis::Core::Hashable
+
+ # A partition ID identifies a grouping of entities. The grouping is always
+ # by project and namespace, however the namespace ID may be empty.
+ # A partition ID contains several dimensions:
+ # project ID and namespace ID.
+ # Partition dimensions:
+ # - May be `""`.
+ # - Must be valid UTF-8 bytes.
+ # - Must have values that match regex `[A-Za-z\d\.\-_]`1,100``
+ # If the value of any dimension matches regex `__.*__`, the partition is
+ # reserved/read-only.
+ # A reserved/read-only partition ID is forbidden in certain documented
+ # contexts.
+ # Foreign partition IDs (in which the project ID does
+ # not match the context project ID ) are discouraged.
+ # Reads and writes of foreign partition IDs may fail if the project is not in an
+ # active state.
+ # Corresponds to the JSON property `partitionId`
+ # @return [Google::Apis::DatastoreV1::PartitionId]
+ attr_accessor :partition_id
+
+ # A [GQL query](https://cloud.google.com/datastore/docs/apis/gql/gql_reference).
+ # Corresponds to the JSON property `gqlQuery`
+ # @return [Google::Apis::DatastoreV1::GqlQuery]
+ attr_accessor :gql_query
+
+ # The options shared by read requests.
+ # Corresponds to the JSON property `readOptions`
+ # @return [Google::Apis::DatastoreV1::ReadOptions]
+ attr_accessor :read_options
+
+ # A query for entities.
+ # Corresponds to the JSON property `query`
+ # @return [Google::Apis::DatastoreV1::Query]
+ attr_accessor :query
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @partition_id = args[:partition_id] if args.key?(:partition_id)
+ @gql_query = args[:gql_query] if args.key?(:gql_query)
+ @read_options = args[:read_options] if args.key?(:read_options)
+ @query = args[:query] if args.key?(:query)
+ end
+ end
+
+ # The request for Datastore.Lookup.
+ class LookupRequest
+ include Google::Apis::Core::Hashable
+
+ # The options shared by read requests.
+ # Corresponds to the JSON property `readOptions`
+ # @return [Google::Apis::DatastoreV1::ReadOptions]
+ attr_accessor :read_options
+
+ # Keys of entities to look up.
+ # Corresponds to the JSON property `keys`
+ # @return [Array]
+ attr_accessor :keys
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @read_options = args[:read_options] if args.key?(:read_options)
+ @keys = args[:keys] if args.key?(:keys)
+ end
+ end
+
+ # An object representing a latitude/longitude pair. This is expressed as a pair
+ # of doubles representing degrees latitude and degrees longitude. Unless
+ # specified otherwise, this must conform to the
+ # WGS84
+ # standard. Values must be within normalized ranges.
+ # Example of normalization code in Python:
+ # def NormalizeLongitude(longitude):
+ # """Wraps decimal degrees longitude to [-180.0, 180.0]."""
+ # q, r = divmod(longitude, 360.0)
+ # if r > 180.0 or (r == 180.0 and q <= -1.0):
+ # return r - 360.0
+ # return r
+ # def NormalizeLatLng(latitude, longitude):
+ # """Wraps decimal degrees latitude and longitude to
+ # [-90.0, 90.0] and [-180.0, 180.0], respectively."""
+ # r = latitude % 360.0
+ # if r <= 90.0:
+ # return r, NormalizeLongitude(longitude)
+ # elif r >= 270.0:
+ # return r - 360, NormalizeLongitude(longitude)
+ # else:
+ # return 180 - r, NormalizeLongitude(longitude + 180.0)
+ # assert 180.0 == NormalizeLongitude(180.0)
+ # assert -180.0 == NormalizeLongitude(-180.0)
+ # assert -179.0 == NormalizeLongitude(181.0)
+ # assert (0.0, 0.0) == NormalizeLatLng(360.0, 0.0)
+ # assert (0.0, 0.0) == NormalizeLatLng(-360.0, 0.0)
+ # assert (85.0, 180.0) == NormalizeLatLng(95.0, 0.0)
+ # assert (-85.0, -170.0) == NormalizeLatLng(-95.0, 10.0)
+ # assert (90.0, 10.0) == NormalizeLatLng(90.0, 10.0)
+ # assert (-90.0, -10.0) == NormalizeLatLng(-90.0, -10.0)
+ # assert (0.0, -170.0) == NormalizeLatLng(-180.0, 10.0)
+ # assert (0.0, -170.0) == NormalizeLatLng(180.0, 10.0)
+ # assert (-90.0, 10.0) == NormalizeLatLng(270.0, 10.0)
+ # assert (90.0, 10.0) == NormalizeLatLng(-270.0, 10.0)
+ class LatLng
+ include Google::Apis::Core::Hashable
+
+ # The latitude in degrees. It must be in the range [-90.0, +90.0].
+ # Corresponds to the JSON property `latitude`
+ # @return [Float]
+ attr_accessor :latitude
+
+ # The longitude in degrees. It must be in the range [-180.0, +180.0].
+ # Corresponds to the JSON property `longitude`
+ # @return [Float]
+ attr_accessor :longitude
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @latitude = args[:latitude] if args.key?(:latitude)
+ @longitude = args[:longitude] if args.key?(:longitude)
+ end
+ end
+
+ # A filter that merges multiple other filters using the given operator.
+ class CompositeFilter
+ include Google::Apis::Core::Hashable
+
+ # The operator for combining multiple filters.
+ # Corresponds to the JSON property `op`
+ # @return [String]
+ attr_accessor :op
+
+ # The list of filters to combine.
+ # Must contain at least one filter.
+ # Corresponds to the JSON property `filters`
+ # @return [Array]
+ attr_accessor :filters
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @op = args[:op] if args.key?(:op)
+ @filters = args[:filters] if args.key?(:filters)
+ end
+ end
+ end
+ end
+end
diff --git a/generated/google/apis/datastore_v1/representations.rb b/generated/google/apis/datastore_v1/representations.rb
new file mode 100644
index 000000000..bd62ceea7
--- /dev/null
+++ b/generated/google/apis/datastore_v1/representations.rb
@@ -0,0 +1,572 @@
+# Copyright 2015 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License 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.
+
+require 'date'
+require 'google/apis/core/base_service'
+require 'google/apis/core/json_representation'
+require 'google/apis/core/hashable'
+require 'google/apis/errors'
+
+module Google
+ module Apis
+ module DatastoreV1
+
+ class Value
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class ReadOptions
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class PropertyOrder
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class CommitRequest
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class Query
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class RollbackRequest
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class EntityResult
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class GqlQueryParameter
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class ArrayValue
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class Filter
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class BeginTransactionResponse
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class PartitionId
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class QueryResultBatch
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class AllocateIdsRequest
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class KindExpression
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class PropertyFilter
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class PathElement
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class RollbackResponse
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class PropertyReference
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class Projection
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class MutationResult
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class AllocateIdsResponse
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class LookupResponse
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class BeginTransactionRequest
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class Key
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class RunQueryResponse
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class Entity
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class GqlQuery
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class Mutation
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class CommitResponse
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class RunQueryRequest
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class LookupRequest
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class LatLng
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class CompositeFilter
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class Value
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :string_value, as: 'stringValue'
+ property :array_value, as: 'arrayValue', class: Google::Apis::DatastoreV1::ArrayValue, decorator: Google::Apis::DatastoreV1::ArrayValue::Representation
+
+ property :entity_value, as: 'entityValue', class: Google::Apis::DatastoreV1::Entity, decorator: Google::Apis::DatastoreV1::Entity::Representation
+
+ property :meaning, as: 'meaning'
+ property :integer_value, as: 'integerValue'
+ property :double_value, as: 'doubleValue'
+ property :blob_value, :base64 => true, as: 'blobValue'
+ property :geo_point_value, as: 'geoPointValue', class: Google::Apis::DatastoreV1::LatLng, decorator: Google::Apis::DatastoreV1::LatLng::Representation
+
+ property :null_value, as: 'nullValue'
+ property :boolean_value, as: 'booleanValue'
+ property :key_value, as: 'keyValue', class: Google::Apis::DatastoreV1::Key, decorator: Google::Apis::DatastoreV1::Key::Representation
+
+ property :exclude_from_indexes, as: 'excludeFromIndexes'
+ property :timestamp_value, as: 'timestampValue'
+ end
+ end
+
+ class ReadOptions
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :transaction, :base64 => true, as: 'transaction'
+ property :read_consistency, as: 'readConsistency'
+ end
+ end
+
+ class PropertyOrder
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :direction, as: 'direction'
+ property :property, as: 'property', class: Google::Apis::DatastoreV1::PropertyReference, decorator: Google::Apis::DatastoreV1::PropertyReference::Representation
+
+ end
+ end
+
+ class CommitRequest
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :transaction, :base64 => true, as: 'transaction'
+ property :mode, as: 'mode'
+ collection :mutations, as: 'mutations', class: Google::Apis::DatastoreV1::Mutation, decorator: Google::Apis::DatastoreV1::Mutation::Representation
+
+ end
+ end
+
+ class Query
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :limit, as: 'limit'
+ property :filter, as: 'filter', class: Google::Apis::DatastoreV1::Filter, decorator: Google::Apis::DatastoreV1::Filter::Representation
+
+ property :end_cursor, :base64 => true, as: 'endCursor'
+ collection :distinct_on, as: 'distinctOn', class: Google::Apis::DatastoreV1::PropertyReference, decorator: Google::Apis::DatastoreV1::PropertyReference::Representation
+
+ property :offset, as: 'offset'
+ collection :projection, as: 'projection', class: Google::Apis::DatastoreV1::Projection, decorator: Google::Apis::DatastoreV1::Projection::Representation
+
+ collection :order, as: 'order', class: Google::Apis::DatastoreV1::PropertyOrder, decorator: Google::Apis::DatastoreV1::PropertyOrder::Representation
+
+ property :start_cursor, :base64 => true, as: 'startCursor'
+ collection :kind, as: 'kind', class: Google::Apis::DatastoreV1::KindExpression, decorator: Google::Apis::DatastoreV1::KindExpression::Representation
+
+ end
+ end
+
+ class RollbackRequest
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :transaction, :base64 => true, as: 'transaction'
+ end
+ end
+
+ class EntityResult
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :cursor, :base64 => true, as: 'cursor'
+ property :entity, as: 'entity', class: Google::Apis::DatastoreV1::Entity, decorator: Google::Apis::DatastoreV1::Entity::Representation
+
+ property :version, as: 'version'
+ end
+ end
+
+ class GqlQueryParameter
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :value, as: 'value', class: Google::Apis::DatastoreV1::Value, decorator: Google::Apis::DatastoreV1::Value::Representation
+
+ property :cursor, :base64 => true, as: 'cursor'
+ end
+ end
+
+ class ArrayValue
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ collection :values, as: 'values', class: Google::Apis::DatastoreV1::Value, decorator: Google::Apis::DatastoreV1::Value::Representation
+
+ end
+ end
+
+ class Filter
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :property_filter, as: 'propertyFilter', class: Google::Apis::DatastoreV1::PropertyFilter, decorator: Google::Apis::DatastoreV1::PropertyFilter::Representation
+
+ property :composite_filter, as: 'compositeFilter', class: Google::Apis::DatastoreV1::CompositeFilter, decorator: Google::Apis::DatastoreV1::CompositeFilter::Representation
+
+ end
+ end
+
+ class BeginTransactionResponse
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :transaction, :base64 => true, as: 'transaction'
+ end
+ end
+
+ class PartitionId
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :namespace_id, as: 'namespaceId'
+ property :project_id, as: 'projectId'
+ end
+ end
+
+ class QueryResultBatch
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :snapshot_version, as: 'snapshotVersion'
+ property :end_cursor, :base64 => true, as: 'endCursor'
+ property :skipped_cursor, :base64 => true, as: 'skippedCursor'
+ property :entity_result_type, as: 'entityResultType'
+ property :more_results, as: 'moreResults'
+ collection :entity_results, as: 'entityResults', class: Google::Apis::DatastoreV1::EntityResult, decorator: Google::Apis::DatastoreV1::EntityResult::Representation
+
+ property :skipped_results, as: 'skippedResults'
+ end
+ end
+
+ class AllocateIdsRequest
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ collection :keys, as: 'keys', class: Google::Apis::DatastoreV1::Key, decorator: Google::Apis::DatastoreV1::Key::Representation
+
+ end
+ end
+
+ class KindExpression
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :name, as: 'name'
+ end
+ end
+
+ class PropertyFilter
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :value, as: 'value', class: Google::Apis::DatastoreV1::Value, decorator: Google::Apis::DatastoreV1::Value::Representation
+
+ property :op, as: 'op'
+ property :property, as: 'property', class: Google::Apis::DatastoreV1::PropertyReference, decorator: Google::Apis::DatastoreV1::PropertyReference::Representation
+
+ end
+ end
+
+ class PathElement
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :kind, as: 'kind'
+ property :id, as: 'id'
+ property :name, as: 'name'
+ end
+ end
+
+ class RollbackResponse
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ end
+ end
+
+ class PropertyReference
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :name, as: 'name'
+ end
+ end
+
+ class Projection
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :property, as: 'property', class: Google::Apis::DatastoreV1::PropertyReference, decorator: Google::Apis::DatastoreV1::PropertyReference::Representation
+
+ end
+ end
+
+ class MutationResult
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :conflict_detected, as: 'conflictDetected'
+ property :key, as: 'key', class: Google::Apis::DatastoreV1::Key, decorator: Google::Apis::DatastoreV1::Key::Representation
+
+ property :version, as: 'version'
+ end
+ end
+
+ class AllocateIdsResponse
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ collection :keys, as: 'keys', class: Google::Apis::DatastoreV1::Key, decorator: Google::Apis::DatastoreV1::Key::Representation
+
+ end
+ end
+
+ class LookupResponse
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ collection :found, as: 'found', class: Google::Apis::DatastoreV1::EntityResult, decorator: Google::Apis::DatastoreV1::EntityResult::Representation
+
+ collection :missing, as: 'missing', class: Google::Apis::DatastoreV1::EntityResult, decorator: Google::Apis::DatastoreV1::EntityResult::Representation
+
+ collection :deferred, as: 'deferred', class: Google::Apis::DatastoreV1::Key, decorator: Google::Apis::DatastoreV1::Key::Representation
+
+ end
+ end
+
+ class BeginTransactionRequest
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ end
+ end
+
+ class Key
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :partition_id, as: 'partitionId', class: Google::Apis::DatastoreV1::PartitionId, decorator: Google::Apis::DatastoreV1::PartitionId::Representation
+
+ collection :path, as: 'path', class: Google::Apis::DatastoreV1::PathElement, decorator: Google::Apis::DatastoreV1::PathElement::Representation
+
+ end
+ end
+
+ class RunQueryResponse
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :batch, as: 'batch', class: Google::Apis::DatastoreV1::QueryResultBatch, decorator: Google::Apis::DatastoreV1::QueryResultBatch::Representation
+
+ property :query, as: 'query', class: Google::Apis::DatastoreV1::Query, decorator: Google::Apis::DatastoreV1::Query::Representation
+
+ end
+ end
+
+ class Entity
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ hash :properties, as: 'properties', class: Google::Apis::DatastoreV1::Value, decorator: Google::Apis::DatastoreV1::Value::Representation
+
+ property :key, as: 'key', class: Google::Apis::DatastoreV1::Key, decorator: Google::Apis::DatastoreV1::Key::Representation
+
+ end
+ end
+
+ class GqlQuery
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :query_string, as: 'queryString'
+ hash :named_bindings, as: 'namedBindings', class: Google::Apis::DatastoreV1::GqlQueryParameter, decorator: Google::Apis::DatastoreV1::GqlQueryParameter::Representation
+
+ property :allow_literals, as: 'allowLiterals'
+ collection :positional_bindings, as: 'positionalBindings', class: Google::Apis::DatastoreV1::GqlQueryParameter, decorator: Google::Apis::DatastoreV1::GqlQueryParameter::Representation
+
+ end
+ end
+
+ class Mutation
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :insert, as: 'insert', class: Google::Apis::DatastoreV1::Entity, decorator: Google::Apis::DatastoreV1::Entity::Representation
+
+ property :update, as: 'update', class: Google::Apis::DatastoreV1::Entity, decorator: Google::Apis::DatastoreV1::Entity::Representation
+
+ property :base_version, as: 'baseVersion'
+ property :upsert, as: 'upsert', class: Google::Apis::DatastoreV1::Entity, decorator: Google::Apis::DatastoreV1::Entity::Representation
+
+ property :delete, as: 'delete', class: Google::Apis::DatastoreV1::Key, decorator: Google::Apis::DatastoreV1::Key::Representation
+
+ end
+ end
+
+ class CommitResponse
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ collection :mutation_results, as: 'mutationResults', class: Google::Apis::DatastoreV1::MutationResult, decorator: Google::Apis::DatastoreV1::MutationResult::Representation
+
+ property :index_updates, as: 'indexUpdates'
+ end
+ end
+
+ class RunQueryRequest
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :partition_id, as: 'partitionId', class: Google::Apis::DatastoreV1::PartitionId, decorator: Google::Apis::DatastoreV1::PartitionId::Representation
+
+ property :gql_query, as: 'gqlQuery', class: Google::Apis::DatastoreV1::GqlQuery, decorator: Google::Apis::DatastoreV1::GqlQuery::Representation
+
+ property :read_options, as: 'readOptions', class: Google::Apis::DatastoreV1::ReadOptions, decorator: Google::Apis::DatastoreV1::ReadOptions::Representation
+
+ property :query, as: 'query', class: Google::Apis::DatastoreV1::Query, decorator: Google::Apis::DatastoreV1::Query::Representation
+
+ end
+ end
+
+ class LookupRequest
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :read_options, as: 'readOptions', class: Google::Apis::DatastoreV1::ReadOptions, decorator: Google::Apis::DatastoreV1::ReadOptions::Representation
+
+ collection :keys, as: 'keys', class: Google::Apis::DatastoreV1::Key, decorator: Google::Apis::DatastoreV1::Key::Representation
+
+ end
+ end
+
+ class LatLng
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :latitude, as: 'latitude'
+ property :longitude, as: 'longitude'
+ end
+ end
+
+ class CompositeFilter
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :op, as: 'op'
+ collection :filters, as: 'filters', class: Google::Apis::DatastoreV1::Filter, decorator: Google::Apis::DatastoreV1::Filter::Representation
+
+ end
+ end
+ end
+ end
+end
diff --git a/generated/google/apis/datastore_v1/service.rb b/generated/google/apis/datastore_v1/service.rb
new file mode 100644
index 000000000..9d8a295a7
--- /dev/null
+++ b/generated/google/apis/datastore_v1/service.rb
@@ -0,0 +1,259 @@
+# Copyright 2015 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License 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.
+
+require 'google/apis/core/base_service'
+require 'google/apis/core/json_representation'
+require 'google/apis/core/hashable'
+require 'google/apis/errors'
+
+module Google
+ module Apis
+ module DatastoreV1
+ # Google Cloud Datastore API
+ #
+ # Accesses the schemaless NoSQL database to provide fully managed, robust,
+ # scalable storage for your application.
+ #
+ # @example
+ # require 'google/apis/datastore_v1'
+ #
+ # Datastore = Google::Apis::DatastoreV1 # Alias the module
+ # service = Datastore::DatastoreService.new
+ #
+ # @see https://cloud.google.com/datastore/
+ class DatastoreService < Google::Apis::Core::BaseService
+ # @return [String]
+ # API key. Your API key identifies your project and provides you with API access,
+ # quota, and reports. Required unless you provide an OAuth 2.0 token.
+ attr_accessor :key
+
+ # @return [String]
+ # Available to use for quota purposes for server-side applications. Can be any
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
+ attr_accessor :quota_user
+
+ def initialize
+ super('https://datastore.googleapis.com/', '')
+ end
+
+ # Queries for entities.
+ # @param [String] project_id
+ # The ID of the project against which to make the request.
+ # @param [Google::Apis::DatastoreV1::RunQueryRequest] run_query_request_object
+ # @param [String] quota_user
+ # Available to use for quota purposes for server-side applications. Can be any
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
+ # @param [String] fields
+ # Selector specifying which fields to include in a partial response.
+ # @param [Google::Apis::RequestOptions] options
+ # Request-specific options
+ #
+ # @yield [result, err] Result & error if block supplied
+ # @yieldparam result [Google::Apis::DatastoreV1::RunQueryResponse] parsed result object
+ # @yieldparam err [StandardError] error object if request failed
+ #
+ # @return [Google::Apis::DatastoreV1::RunQueryResponse]
+ #
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
+ def run_project_query(project_id, run_query_request_object = nil, quota_user: nil, fields: nil, options: nil, &block)
+ command = make_simple_command(:post, 'v1/projects/{projectId}:runQuery', options)
+ command.request_representation = Google::Apis::DatastoreV1::RunQueryRequest::Representation
+ command.request_object = run_query_request_object
+ command.response_representation = Google::Apis::DatastoreV1::RunQueryResponse::Representation
+ command.response_class = Google::Apis::DatastoreV1::RunQueryResponse
+ command.params['projectId'] = project_id unless project_id.nil?
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
+ command.query['fields'] = fields unless fields.nil?
+ execute_or_queue_command(command, &block)
+ end
+
+ # Begins a new transaction.
+ # @param [String] project_id
+ # The ID of the project against which to make the request.
+ # @param [Google::Apis::DatastoreV1::BeginTransactionRequest] begin_transaction_request_object
+ # @param [String] quota_user
+ # Available to use for quota purposes for server-side applications. Can be any
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
+ # @param [String] fields
+ # Selector specifying which fields to include in a partial response.
+ # @param [Google::Apis::RequestOptions] options
+ # Request-specific options
+ #
+ # @yield [result, err] Result & error if block supplied
+ # @yieldparam result [Google::Apis::DatastoreV1::BeginTransactionResponse] parsed result object
+ # @yieldparam err [StandardError] error object if request failed
+ #
+ # @return [Google::Apis::DatastoreV1::BeginTransactionResponse]
+ #
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
+ def begin_project_transaction(project_id, begin_transaction_request_object = nil, quota_user: nil, fields: nil, options: nil, &block)
+ command = make_simple_command(:post, 'v1/projects/{projectId}:beginTransaction', options)
+ command.request_representation = Google::Apis::DatastoreV1::BeginTransactionRequest::Representation
+ command.request_object = begin_transaction_request_object
+ command.response_representation = Google::Apis::DatastoreV1::BeginTransactionResponse::Representation
+ command.response_class = Google::Apis::DatastoreV1::BeginTransactionResponse
+ command.params['projectId'] = project_id unless project_id.nil?
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
+ command.query['fields'] = fields unless fields.nil?
+ execute_or_queue_command(command, &block)
+ end
+
+ # Allocates IDs for the given keys, which is useful for referencing an entity
+ # before it is inserted.
+ # @param [String] project_id
+ # The ID of the project against which to make the request.
+ # @param [Google::Apis::DatastoreV1::AllocateIdsRequest] allocate_ids_request_object
+ # @param [String] quota_user
+ # Available to use for quota purposes for server-side applications. Can be any
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
+ # @param [String] fields
+ # Selector specifying which fields to include in a partial response.
+ # @param [Google::Apis::RequestOptions] options
+ # Request-specific options
+ #
+ # @yield [result, err] Result & error if block supplied
+ # @yieldparam result [Google::Apis::DatastoreV1::AllocateIdsResponse] parsed result object
+ # @yieldparam err [StandardError] error object if request failed
+ #
+ # @return [Google::Apis::DatastoreV1::AllocateIdsResponse]
+ #
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
+ def allocate_project_ids(project_id, allocate_ids_request_object = nil, quota_user: nil, fields: nil, options: nil, &block)
+ command = make_simple_command(:post, 'v1/projects/{projectId}:allocateIds', options)
+ command.request_representation = Google::Apis::DatastoreV1::AllocateIdsRequest::Representation
+ command.request_object = allocate_ids_request_object
+ command.response_representation = Google::Apis::DatastoreV1::AllocateIdsResponse::Representation
+ command.response_class = Google::Apis::DatastoreV1::AllocateIdsResponse
+ command.params['projectId'] = project_id unless project_id.nil?
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
+ command.query['fields'] = fields unless fields.nil?
+ execute_or_queue_command(command, &block)
+ end
+
+ # Looks up entities by key.
+ # @param [String] project_id
+ # The ID of the project against which to make the request.
+ # @param [Google::Apis::DatastoreV1::LookupRequest] lookup_request_object
+ # @param [String] quota_user
+ # Available to use for quota purposes for server-side applications. Can be any
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
+ # @param [String] fields
+ # Selector specifying which fields to include in a partial response.
+ # @param [Google::Apis::RequestOptions] options
+ # Request-specific options
+ #
+ # @yield [result, err] Result & error if block supplied
+ # @yieldparam result [Google::Apis::DatastoreV1::LookupResponse] parsed result object
+ # @yieldparam err [StandardError] error object if request failed
+ #
+ # @return [Google::Apis::DatastoreV1::LookupResponse]
+ #
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
+ def lookup_project(project_id, lookup_request_object = nil, quota_user: nil, fields: nil, options: nil, &block)
+ command = make_simple_command(:post, 'v1/projects/{projectId}:lookup', options)
+ command.request_representation = Google::Apis::DatastoreV1::LookupRequest::Representation
+ command.request_object = lookup_request_object
+ command.response_representation = Google::Apis::DatastoreV1::LookupResponse::Representation
+ command.response_class = Google::Apis::DatastoreV1::LookupResponse
+ command.params['projectId'] = project_id unless project_id.nil?
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
+ command.query['fields'] = fields unless fields.nil?
+ execute_or_queue_command(command, &block)
+ end
+
+ # Commits a transaction, optionally creating, deleting or modifying some
+ # entities.
+ # @param [String] project_id
+ # The ID of the project against which to make the request.
+ # @param [Google::Apis::DatastoreV1::CommitRequest] commit_request_object
+ # @param [String] quota_user
+ # Available to use for quota purposes for server-side applications. Can be any
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
+ # @param [String] fields
+ # Selector specifying which fields to include in a partial response.
+ # @param [Google::Apis::RequestOptions] options
+ # Request-specific options
+ #
+ # @yield [result, err] Result & error if block supplied
+ # @yieldparam result [Google::Apis::DatastoreV1::CommitResponse] parsed result object
+ # @yieldparam err [StandardError] error object if request failed
+ #
+ # @return [Google::Apis::DatastoreV1::CommitResponse]
+ #
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
+ def commit_project(project_id, commit_request_object = nil, quota_user: nil, fields: nil, options: nil, &block)
+ command = make_simple_command(:post, 'v1/projects/{projectId}:commit', options)
+ command.request_representation = Google::Apis::DatastoreV1::CommitRequest::Representation
+ command.request_object = commit_request_object
+ command.response_representation = Google::Apis::DatastoreV1::CommitResponse::Representation
+ command.response_class = Google::Apis::DatastoreV1::CommitResponse
+ command.params['projectId'] = project_id unless project_id.nil?
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
+ command.query['fields'] = fields unless fields.nil?
+ execute_or_queue_command(command, &block)
+ end
+
+ # Rolls back a transaction.
+ # @param [String] project_id
+ # The ID of the project against which to make the request.
+ # @param [Google::Apis::DatastoreV1::RollbackRequest] rollback_request_object
+ # @param [String] quota_user
+ # Available to use for quota purposes for server-side applications. Can be any
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
+ # @param [String] fields
+ # Selector specifying which fields to include in a partial response.
+ # @param [Google::Apis::RequestOptions] options
+ # Request-specific options
+ #
+ # @yield [result, err] Result & error if block supplied
+ # @yieldparam result [Google::Apis::DatastoreV1::RollbackResponse] parsed result object
+ # @yieldparam err [StandardError] error object if request failed
+ #
+ # @return [Google::Apis::DatastoreV1::RollbackResponse]
+ #
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
+ def rollback_project(project_id, rollback_request_object = nil, quota_user: nil, fields: nil, options: nil, &block)
+ command = make_simple_command(:post, 'v1/projects/{projectId}:rollback', options)
+ command.request_representation = Google::Apis::DatastoreV1::RollbackRequest::Representation
+ command.request_object = rollback_request_object
+ command.response_representation = Google::Apis::DatastoreV1::RollbackResponse::Representation
+ command.response_class = Google::Apis::DatastoreV1::RollbackResponse
+ command.params['projectId'] = project_id unless project_id.nil?
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
+ command.query['fields'] = fields unless fields.nil?
+ execute_or_queue_command(command, &block)
+ end
+
+ protected
+
+ def apply_command_defaults(command)
+ command.query['key'] = key unless key.nil?
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
+ end
+ end
+ end
+ end
+end
diff --git a/generated/google/apis/deploymentmanager_v2.rb b/generated/google/apis/deploymentmanager_v2.rb
index 6d48b5125..8f8a0e8aa 100644
--- a/generated/google/apis/deploymentmanager_v2.rb
+++ b/generated/google/apis/deploymentmanager_v2.rb
@@ -25,7 +25,7 @@ module Google
# @see https://cloud.google.com/deployment-manager/
module DeploymentmanagerV2
VERSION = 'V2'
- REVISION = '20160913'
+ REVISION = '20160915'
# View and manage your data across Google Cloud Platform services
AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
diff --git a/generated/google/apis/deploymentmanager_v2/classes.rb b/generated/google/apis/deploymentmanager_v2/classes.rb
index ea4bc31f2..5ff5bb854 100644
--- a/generated/google/apis/deploymentmanager_v2/classes.rb
+++ b/generated/google/apis/deploymentmanager_v2/classes.rb
@@ -22,6 +22,124 @@ module Google
module Apis
module DeploymentmanagerV2
+ # Enables "data access" audit logging for a service and specifies a list of
+ # members that are log-exempted.
+ class AuditConfig
+ include Google::Apis::Core::Hashable
+
+ # Specifies the identities that are exempted from "data access" audit logging
+ # for the `service` specified above. Follows the same format of Binding.members.
+ # Corresponds to the JSON property `exemptedMembers`
+ # @return [Array]
+ attr_accessor :exempted_members
+
+ # Specifies a service that will be enabled for "data access" audit logging. For
+ # example, `resourcemanager`, `storage`, `compute`. `allServices` is a special
+ # value that covers all services.
+ # Corresponds to the JSON property `service`
+ # @return [String]
+ attr_accessor :service
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
+ @service = args[:service] if args.key?(:service)
+ end
+ end
+
+ # Associates `members` with a `role`.
+ class Binding
+ include Google::Apis::Core::Hashable
+
+ # Specifies the identities requesting access for a Cloud Platform resource. `
+ # members` can have the following values:
+ # * `allUsers`: A special identifier that represents anyone who is on the
+ # internet; with or without a Google account.
+ # * `allAuthenticatedUsers`: A special identifier that represents anyone who is
+ # authenticated with a Google account or a service account.
+ # * `user:`emailid``: An email address that represents a specific Google account.
+ # For example, `alice@gmail.com` or `joe@example.com`.
+ # * `serviceAccount:`emailid``: An email address that represents a service
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`.
+ # * `group:`emailid``: An email address that represents a Google group. For
+ # example, `admins@example.com`.
+ # * `domain:`domain``: A Google Apps domain name that represents all the users
+ # of that domain. For example, `google.com` or `example.com`.
+ # Corresponds to the JSON property `members`
+ # @return [Array]
+ attr_accessor :members
+
+ # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
+ # , or `roles/owner`.
+ # Corresponds to the JSON property `role`
+ # @return [String]
+ attr_accessor :role
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @members = args[:members] if args.key?(:members)
+ @role = args[:role] if args.key?(:role)
+ end
+ end
+
+ # A condition to be met.
+ class Condition
+ include Google::Apis::Core::Hashable
+
+ # Trusted attributes supplied by the IAM system.
+ # Corresponds to the JSON property `iam`
+ # @return [String]
+ attr_accessor :iam
+
+ # An operator to apply the subject with.
+ # Corresponds to the JSON property `op`
+ # @return [String]
+ attr_accessor :op
+
+ # Trusted attributes discharged by the service.
+ # Corresponds to the JSON property `svc`
+ # @return [String]
+ attr_accessor :svc
+
+ # Trusted attributes supplied by any service that owns resources and uses the
+ # IAM system for access control.
+ # Corresponds to the JSON property `sys`
+ # @return [String]
+ attr_accessor :sys
+
+ # DEPRECATED. Use 'values' instead.
+ # Corresponds to the JSON property `value`
+ # @return [String]
+ attr_accessor :value
+
+ # The objects of the condition. This is mutually exclusive with 'value'.
+ # Corresponds to the JSON property `values`
+ # @return [Array]
+ attr_accessor :values
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @iam = args[:iam] if args.key?(:iam)
+ @op = args[:op] if args.key?(:op)
+ @svc = args[:svc] if args.key?(:svc)
+ @sys = args[:sys] if args.key?(:sys)
+ @value = args[:value] if args.key?(:value)
+ @values = args[:values] if args.key?(:values)
+ end
+ end
+
#
class ConfigFile
include Google::Apis::Core::Hashable
@@ -323,6 +441,50 @@ module Google
end
end
+ # Specifies what kind of log the caller must write
+ class LogConfig
+ include Google::Apis::Core::Hashable
+
+ # Options for counters
+ # Corresponds to the JSON property `counter`
+ # @return [Google::Apis::DeploymentmanagerV2::LogConfigCounterOptions]
+ attr_accessor :counter
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @counter = args[:counter] if args.key?(:counter)
+ end
+ end
+
+ # Options for counters
+ class LogConfigCounterOptions
+ include Google::Apis::Core::Hashable
+
+ # The field value to attribute.
+ # Corresponds to the JSON property `field`
+ # @return [String]
+ attr_accessor :field
+
+ # The metric to update.
+ # Corresponds to the JSON property `metric`
+ # @return [String]
+ attr_accessor :metric
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @field = args[:field] if args.key?(:field)
+ @metric = args[:metric] if args.key?(:metric)
+ end
+ end
+
#
class Manifest
include Google::Apis::Core::Hashable
@@ -726,10 +888,97 @@ module Google
end
end
+ # Defines an Identity and Access Management (IAM) policy. It is used to specify
+ # access control policies for Cloud Platform resources.
+ # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `
+ # members` to a `role`, where the members can be user accounts, Google groups,
+ # Google domains, and service accounts. A `role` is a named list of permissions
+ # defined by IAM.
+ # **Example**
+ # ` "bindings": [ ` "role": "roles/owner", "members": [ "user:mike@example.com",
+ # "group:admins@example.com", "domain:google.com", "serviceAccount:my-other-app@
+ # appspot.gserviceaccount.com", ] `, ` "role": "roles/viewer", "members": ["user:
+ # sean@example.com"] ` ] `
+ # For a description of IAM and its features, see the [IAM developer's guide](
+ # https://cloud.google.com/iam).
+ class Policy
+ include Google::Apis::Core::Hashable
+
+ # Specifies audit logging configs for "data access". "data access": generally
+ # refers to data reads/writes and admin reads. "admin activity": generally
+ # refers to admin writes.
+ # Note: `AuditConfig` doesn't apply to "admin activity", which always enables
+ # audit logging.
+ # Corresponds to the JSON property `auditConfigs`
+ # @return [Array]
+ attr_accessor :audit_configs
+
+ # Associates a list of `members` to a `role`. Multiple `bindings` must not be
+ # specified for the same `role`. `bindings` with no members will result in an
+ # error.
+ # Corresponds to the JSON property `bindings`
+ # @return [Array]
+ attr_accessor :bindings
+
+ # `etag` is used for optimistic concurrency control as a way to help prevent
+ # simultaneous updates of a policy from overwriting each other. It is strongly
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
+ # to perform policy updates in order to avoid race conditions: An `etag` is
+ # returned in the response to `getIamPolicy`, and systems are expected to put
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
+ # applied to the same version of the policy.
+ # If no `etag` is provided in the call to `setIamPolicy`, then the existing
+ # policy is overwritten blindly.
+ # Corresponds to the JSON property `etag`
+ # @return [String]
+ attr_accessor :etag
+
+ #
+ # Corresponds to the JSON property `iamOwned`
+ # @return [Boolean]
+ attr_accessor :iam_owned
+ alias_method :iam_owned?, :iam_owned
+
+ # If more than one rule is specified, the rules are applied in the following
+ # manner: - All matching LOG rules are always applied. - If any DENY/
+ # DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if
+ # one or more matching rule requires logging. - Otherwise, if any ALLOW/
+ # ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if
+ # one or more matching rule requires logging. - Otherwise, if no rule applies,
+ # permission is denied.
+ # Corresponds to the JSON property `rules`
+ # @return [Array]
+ attr_accessor :rules
+
+ # Version of the `Policy`. The default version is 0.
+ # Corresponds to the JSON property `version`
+ # @return [Fixnum]
+ attr_accessor :version
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
+ @bindings = args[:bindings] if args.key?(:bindings)
+ @etag = args[:etag] if args.key?(:etag)
+ @iam_owned = args[:iam_owned] if args.key?(:iam_owned)
+ @rules = args[:rules] if args.key?(:rules)
+ @version = args[:version] if args.key?(:version)
+ end
+ end
+
#
class Resource
include Google::Apis::Core::Hashable
+ # The access controls set on the resource.
+ # Corresponds to the JSON property `accessControl`
+ # @return [Google::Apis::DeploymentmanagerV2::ResourceAccessControl]
+ attr_accessor :access_control
+
# [Output Only] The evaluated properties of the resource with references
# expanded. Returned as serialized YAML.
# Corresponds to the JSON property `finalProperties`
@@ -797,6 +1046,7 @@ module Google
# Update properties of this object
def update!(**args)
+ @access_control = args[:access_control] if args.key?(:access_control)
@final_properties = args[:final_properties] if args.key?(:final_properties)
@id = args[:id] if args.key?(:id)
@insert_time = args[:insert_time] if args.key?(:insert_time)
@@ -875,10 +1125,34 @@ module Google
end
end
+ # The access controls set on the resource.
+ class ResourceAccessControl
+ include Google::Apis::Core::Hashable
+
+ # The GCP IAM Policy to set on the resource.
+ # Corresponds to the JSON property `gcpIamPolicy`
+ # @return [String]
+ attr_accessor :gcp_iam_policy
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @gcp_iam_policy = args[:gcp_iam_policy] if args.key?(:gcp_iam_policy)
+ end
+ end
+
#
class ResourceUpdate
include Google::Apis::Core::Hashable
+ # The access controls set on the resource.
+ # Corresponds to the JSON property `accessControl`
+ # @return [Google::Apis::DeploymentmanagerV2::ResourceAccessControl]
+ attr_accessor :access_control
+
# [Output Only] If errors are generated during update of the resource, this
# field will be populated.
# Corresponds to the JSON property `error`
@@ -925,6 +1199,7 @@ module Google
# Update properties of this object
def update!(**args)
+ @access_control = args[:access_control] if args.key?(:access_control)
@error = args[:error] if args.key?(:error)
@final_properties = args[:final_properties] if args.key?(:final_properties)
@intent = args[:intent] if args.key?(:intent)
@@ -1077,6 +1352,66 @@ module Google
end
end
+ # A rule to be applied in a Policy.
+ class Rule
+ include Google::Apis::Core::Hashable
+
+ # Required
+ # Corresponds to the JSON property `action`
+ # @return [String]
+ attr_accessor :action
+
+ # Additional restrictions that must be met
+ # Corresponds to the JSON property `conditions`
+ # @return [Array]
+ attr_accessor :conditions
+
+ # Human-readable description of the rule.
+ # Corresponds to the JSON property `description`
+ # @return [String]
+ attr_accessor :description
+
+ # If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/
+ # AUTHORITY_SELECTOR is in at least one of these entries.
+ # Corresponds to the JSON property `ins`
+ # @return [Array]
+ attr_accessor :ins
+
+ # The config returned to callers of tech.iam.IAM.CheckPolicy for any entries
+ # that match the LOG action.
+ # Corresponds to the JSON property `logConfigs`
+ # @return [Array]
+ attr_accessor :log_configs
+
+ # If one or more 'not_in' clauses are specified, the rule matches if the
+ # PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries.
+ # Corresponds to the JSON property `notIns`
+ # @return [Array]
+ attr_accessor :not_ins
+
+ # A permission is a string of form '..' (e.g., 'storage.buckets.list'). A value
+ # of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.
+ # *') matches all verbs.
+ # Corresponds to the JSON property `permissions`
+ # @return [Array]
+ attr_accessor :permissions
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @action = args[:action] if args.key?(:action)
+ @conditions = args[:conditions] if args.key?(:conditions)
+ @description = args[:description] if args.key?(:description)
+ @ins = args[:ins] if args.key?(:ins)
+ @log_configs = args[:log_configs] if args.key?(:log_configs)
+ @not_ins = args[:not_ins] if args.key?(:not_ins)
+ @permissions = args[:permissions] if args.key?(:permissions)
+ end
+ end
+
#
class TargetConfiguration
include Google::Apis::Core::Hashable
@@ -1104,6 +1439,45 @@ module Google
end
end
+ #
+ class TestPermissionsRequest
+ include Google::Apis::Core::Hashable
+
+ # The set of permissions to check for the 'resource'. Permissions with wildcards
+ # (such as '*' or 'storage.*') are not allowed.
+ # Corresponds to the JSON property `permissions`
+ # @return [Array]
+ attr_accessor :permissions
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @permissions = args[:permissions] if args.key?(:permissions)
+ end
+ end
+
+ #
+ class TestPermissionsResponse
+ include Google::Apis::Core::Hashable
+
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
+ # Corresponds to the JSON property `permissions`
+ # @return [Array]
+ attr_accessor :permissions
+
+ def initialize(**args)
+ update!(**args)
+ end
+
+ # Update properties of this object
+ def update!(**args)
+ @permissions = args[:permissions] if args.key?(:permissions)
+ end
+ end
+
# A resource type supported by Deployment Manager.
class Type
include Google::Apis::Core::Hashable
diff --git a/generated/google/apis/deploymentmanager_v2/representations.rb b/generated/google/apis/deploymentmanager_v2/representations.rb
index 76b3c76f3..ea286c1f4 100644
--- a/generated/google/apis/deploymentmanager_v2/representations.rb
+++ b/generated/google/apis/deploymentmanager_v2/representations.rb
@@ -22,6 +22,24 @@ module Google
module Apis
module DeploymentmanagerV2
+ class AuditConfig
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class Binding
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class Condition
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
class ConfigFile
class Representation < Google::Apis::Core::JsonRepresentation; end
@@ -76,6 +94,18 @@ module Google
include Google::Apis::Core::JsonObjectSupport
end
+ class LogConfig
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class LogConfigCounterOptions
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
class Manifest
class Representation < Google::Apis::Core::JsonRepresentation; end
@@ -124,6 +154,12 @@ module Google
include Google::Apis::Core::JsonObjectSupport
end
+ class Policy
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
class Resource
class Representation < Google::Apis::Core::JsonRepresentation; end
@@ -142,6 +178,12 @@ module Google
include Google::Apis::Core::JsonObjectSupport
end
+ class ResourceAccessControl
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
class ResourceUpdate
class Representation < Google::Apis::Core::JsonRepresentation; end
@@ -178,12 +220,30 @@ module Google
include Google::Apis::Core::JsonObjectSupport
end
+ class Rule
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
class TargetConfiguration
class Representation < Google::Apis::Core::JsonRepresentation; end
include Google::Apis::Core::JsonObjectSupport
end
+ class TestPermissionsRequest
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
+ class TestPermissionsResponse
+ class Representation < Google::Apis::Core::JsonRepresentation; end
+
+ include Google::Apis::Core::JsonObjectSupport
+ end
+
class Type
class Representation < Google::Apis::Core::JsonRepresentation; end
@@ -196,6 +256,34 @@ module Google
include Google::Apis::Core::JsonObjectSupport
end
+ class AuditConfig
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ collection :exempted_members, as: 'exemptedMembers'
+ property :service, as: 'service'
+ end
+ end
+
+ class Binding
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ collection :members, as: 'members'
+ property :role, as: 'role'
+ end
+ end
+
+ class Condition
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :iam, as: 'iam'
+ property :op, as: 'op'
+ property :svc, as: 'svc'
+ property :sys, as: 'sys'
+ property :value, as: 'value'
+ collection :values, as: 'values'
+ end
+ end
+
class ConfigFile
# @private
class Representation < Google::Apis::Core::JsonRepresentation
@@ -280,6 +368,22 @@ module Google
end
end
+ class LogConfig
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :counter, as: 'counter', class: Google::Apis::DeploymentmanagerV2::LogConfigCounterOptions, decorator: Google::Apis::DeploymentmanagerV2::LogConfigCounterOptions::Representation
+
+ end
+ end
+
+ class LogConfigCounterOptions
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :field, as: 'field'
+ property :metric, as: 'metric'
+ end
+ end
+
class Manifest
# @private
class Representation < Google::Apis::Core::JsonRepresentation
@@ -380,9 +484,26 @@ module Google
end
end
+ class Policy
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ collection :audit_configs, as: 'auditConfigs', class: Google::Apis::DeploymentmanagerV2::AuditConfig, decorator: Google::Apis::DeploymentmanagerV2::AuditConfig::Representation
+
+ collection :bindings, as: 'bindings', class: Google::Apis::DeploymentmanagerV2::Binding, decorator: Google::Apis::DeploymentmanagerV2::Binding::Representation
+
+ property :etag, :base64 => true, as: 'etag'
+ property :iam_owned, as: 'iamOwned'
+ collection :rules, as: 'rules', class: Google::Apis::DeploymentmanagerV2::Rule, decorator: Google::Apis::DeploymentmanagerV2::Rule::Representation
+
+ property :version, as: 'version'
+ end
+ end
+
class Resource
# @private
class Representation < Google::Apis::Core::JsonRepresentation
+ property :access_control, as: 'accessControl', class: Google::Apis::DeploymentmanagerV2::ResourceAccessControl, decorator: Google::Apis::DeploymentmanagerV2::ResourceAccessControl::Representation
+
property :final_properties, as: 'finalProperties'
property :id, as: 'id'
property :insert_time, as: 'insertTime'
@@ -417,9 +538,18 @@ module Google
end
end
+ class ResourceAccessControl
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :gcp_iam_policy, as: 'gcpIamPolicy'
+ end
+ end
+
class ResourceUpdate
# @private
class Representation < Google::Apis::Core::JsonRepresentation
+ property :access_control, as: 'accessControl', class: Google::Apis::DeploymentmanagerV2::ResourceAccessControl, decorator: Google::Apis::DeploymentmanagerV2::ResourceAccessControl::Representation
+
property :error, as: 'error', class: Google::Apis::DeploymentmanagerV2::ResourceUpdate::Error, decorator: Google::Apis::DeploymentmanagerV2::ResourceUpdate::Error::Representation
property :final_properties, as: 'finalProperties'
@@ -476,6 +606,21 @@ module Google
end
end
+ class Rule
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ property :action, as: 'action'
+ collection :conditions, as: 'conditions', class: Google::Apis::DeploymentmanagerV2::Condition, decorator: Google::Apis::DeploymentmanagerV2::Condition::Representation
+
+ property :description, as: 'description'
+ collection :ins, as: 'ins'
+ collection :log_configs, as: 'logConfigs', class: Google::Apis::DeploymentmanagerV2::LogConfig, decorator: Google::Apis::DeploymentmanagerV2::LogConfig::Representation
+
+ collection :not_ins, as: 'notIns'
+ collection :permissions, as: 'permissions'
+ end
+ end
+
class TargetConfiguration
# @private
class Representation < Google::Apis::Core::JsonRepresentation
@@ -486,6 +631,20 @@ module Google
end
end
+ class TestPermissionsRequest
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ collection :permissions, as: 'permissions'
+ end
+ end
+
+ class TestPermissionsResponse
+ # @private
+ class Representation < Google::Apis::Core::JsonRepresentation
+ collection :permissions, as: 'permissions'
+ end
+ end
+
class Type
# @private
class Representation < Google::Apis::Core::JsonRepresentation
diff --git a/generated/google/apis/deploymentmanager_v2/service.rb b/generated/google/apis/deploymentmanager_v2/service.rb
index f5993eb29..06cc85787 100644
--- a/generated/google/apis/deploymentmanager_v2/service.rb
+++ b/generated/google/apis/deploymentmanager_v2/service.rb
@@ -169,6 +169,45 @@ module Google
execute_or_queue_command(command, &block)
end
+ # Gets the access control policy for a resource. May be empty if no such policy
+ # or resource exists.
+ # @param [String] project
+ # Project ID for this request.
+ # @param [String] resource
+ # Name of the resource for this request.
+ # @param [String] fields
+ # Selector specifying which fields to include in a partial response.
+ # @param [String] quota_user
+ # Available to use for quota purposes for server-side applications. Can be any
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
+ # Overrides userIp if both are provided.
+ # @param [String] user_ip
+ # IP address of the site where the request originates. Use this if you want to
+ # enforce per-user limits.
+ # @param [Google::Apis::RequestOptions] options
+ # Request-specific options
+ #
+ # @yield [result, err] Result & error if block supplied
+ # @yieldparam result [Google::Apis::DeploymentmanagerV2::Policy] parsed result object
+ # @yieldparam err [StandardError] error object if request failed
+ #
+ # @return [Google::Apis::DeploymentmanagerV2::Policy]
+ #
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
+ def get_deployment_iam_policy(project, resource, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
+ command = make_simple_command(:get, '{project}/global/deployments/{resource}/getIamPolicy', options)
+ command.response_representation = Google::Apis::DeploymentmanagerV2::Policy::Representation
+ command.response_class = Google::Apis::DeploymentmanagerV2::Policy
+ command.params['project'] = project unless project.nil?
+ command.params['resource'] = resource unless resource.nil?
+ command.query['fields'] = fields unless fields.nil?
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
+ command.query['userIp'] = user_ip unless user_ip.nil?
+ execute_or_queue_command(command, &block)
+ end
+
# Creates a deployment and all of the resources described by the deployment
# manifest.
# @param [String] project
@@ -343,6 +382,48 @@ module Google
execute_or_queue_command(command, &block)
end
+ # Sets the access control policy on the specified resource. Replaces any
+ # existing policy.
+ # @param [String] project
+ # Project ID for this request.
+ # @param [String] resource
+ # Name of the resource for this request.
+ # @param [Google::Apis::DeploymentmanagerV2::Policy] policy_object
+ # @param [String] fields
+ # Selector specifying which fields to include in a partial response.
+ # @param [String] quota_user
+ # Available to use for quota purposes for server-side applications. Can be any
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
+ # Overrides userIp if both are provided.
+ # @param [String] user_ip
+ # IP address of the site where the request originates. Use this if you want to
+ # enforce per-user limits.
+ # @param [Google::Apis::RequestOptions] options
+ # Request-specific options
+ #
+ # @yield [result, err] Result & error if block supplied
+ # @yieldparam result [Google::Apis::DeploymentmanagerV2::Policy] parsed result object
+ # @yieldparam err [StandardError] error object if request failed
+ #
+ # @return [Google::Apis::DeploymentmanagerV2::Policy]
+ #
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
+ def set_deployment_iam_policy(project, resource, policy_object = nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
+ command = make_simple_command(:post, '{project}/global/deployments/{resource}/setIamPolicy', options)
+ command.request_representation = Google::Apis::DeploymentmanagerV2::Policy::Representation
+ command.request_object = policy_object
+ command.response_representation = Google::Apis::DeploymentmanagerV2::Policy::Representation
+ command.response_class = Google::Apis::DeploymentmanagerV2::Policy
+ command.params['project'] = project unless project.nil?
+ command.params['resource'] = resource unless resource.nil?
+ command.query['fields'] = fields unless fields.nil?
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
+ command.query['userIp'] = user_ip unless user_ip.nil?
+ execute_or_queue_command(command, &block)
+ end
+
# Stops an ongoing operation. This does not roll back any work that has already
# been completed, but prevents any new work from being started.
# @param [String] project
@@ -385,6 +466,47 @@ module Google
execute_or_queue_command(command, &block)
end
+ # Returns permissions that a caller has on the specified resource.
+ # @param [String] project
+ # Project ID for this request.
+ # @param [String] resource
+ # Name of the resource for this request.
+ # @param [Google::Apis::DeploymentmanagerV2::TestPermissionsRequest] test_permissions_request_object
+ # @param [String] fields
+ # Selector specifying which fields to include in a partial response.
+ # @param [String] quota_user
+ # Available to use for quota purposes for server-side applications. Can be any
+ # arbitrary string assigned to a user, but should not exceed 40 characters.
+ # Overrides userIp if both are provided.
+ # @param [String] user_ip
+ # IP address of the site where the request originates. Use this if you want to
+ # enforce per-user limits.
+ # @param [Google::Apis::RequestOptions] options
+ # Request-specific options
+ #
+ # @yield [result, err] Result & error if block supplied
+ # @yieldparam result [Google::Apis::DeploymentmanagerV2::TestPermissionsResponse] parsed result object
+ # @yieldparam err [StandardError] error object if request failed
+ #
+ # @return [Google::Apis::DeploymentmanagerV2::TestPermissionsResponse]
+ #
+ # @raise [Google::Apis::ServerError] An error occurred on the server and the request can be retried
+ # @raise [Google::Apis::ClientError] The request is invalid and should not be retried without modification
+ # @raise [Google::Apis::AuthorizationError] Authorization is required
+ def test_deployment_iam_permissions(project, resource, test_permissions_request_object = nil, fields: nil, quota_user: nil, user_ip: nil, options: nil, &block)
+ command = make_simple_command(:post, '{project}/global/deployments/{resource}/testIamPermissions', options)
+ command.request_representation = Google::Apis::DeploymentmanagerV2::TestPermissionsRequest::Representation
+ command.request_object = test_permissions_request_object
+ command.response_representation = Google::Apis::DeploymentmanagerV2::TestPermissionsResponse::Representation
+ command.response_class = Google::Apis::DeploymentmanagerV2::TestPermissionsResponse
+ command.params['project'] = project unless project.nil?
+ command.params['resource'] = resource unless resource.nil?
+ command.query['fields'] = fields unless fields.nil?
+ command.query['quotaUser'] = quota_user unless quota_user.nil?
+ command.query['userIp'] = user_ip unless user_ip.nil?
+ execute_or_queue_command(command, &block)
+ end
+
# Updates a deployment and all of the resources described by the deployment
# manifest.
# @param [String] project
diff --git a/generated/google/apis/plus_domains_v1.rb b/generated/google/apis/plus_domains_v1.rb
index 5c5d5bb3d..aa816f131 100644
--- a/generated/google/apis/plus_domains_v1.rb
+++ b/generated/google/apis/plus_domains_v1.rb
@@ -25,7 +25,7 @@ module Google
# @see https://developers.google.com/+/domains/
module PlusDomainsV1
VERSION = 'V1'
- REVISION = '20160914'
+ REVISION = '20160917'
# View your circles and the people and pages in them
AUTH_PLUS_CIRCLES_READ = 'https://www.googleapis.com/auth/plus.circles.read'
diff --git a/generated/google/apis/plus_v1.rb b/generated/google/apis/plus_v1.rb
index 69e95697f..9c734cfd2 100644
--- a/generated/google/apis/plus_v1.rb
+++ b/generated/google/apis/plus_v1.rb
@@ -25,7 +25,7 @@ module Google
# @see https://developers.google.com/+/api/
module PlusV1
VERSION = 'V1'
- REVISION = '20160914'
+ REVISION = '20160917'
# Know the list of people in your circles, your age range, and language
AUTH_PLUS_LOGIN = 'https://www.googleapis.com/auth/plus.login'
diff --git a/lib/google/apis/version.rb b/lib/google/apis/version.rb
index 4695180fd..0686a2bbf 100644
--- a/lib/google/apis/version.rb
+++ b/lib/google/apis/version.rb
@@ -15,7 +15,7 @@
module Google
module Apis
# Client library version
- VERSION = '0.9.14'
+ VERSION = '0.9.15'
# Current operating system
# @private
diff --git a/script/generate b/script/generate
index cabbe9ba2..255c6167b 100755
--- a/script/generate
+++ b/script/generate
@@ -41,7 +41,7 @@ API_IDS=(adexchangebuyer:v1.4 \
coordinate:v1 \
customsearch:v1 \
dataproc:v1 \
- datastore:v1beta3 \
+ datastore:v1 \
deploymentmanager:v2 \
dfareporting:v2.6 \
discovery:v1 \