{"openapi":"3.1.0","info":{"title":"Google Forms API","version":"v1","description":"Reads and writes Google Forms and responses."},"servers":[{"url":"https://www.googleapis.com/"}],"paths":{"/v1/forms/{formId}:batchUpdate":{"post":{"operationId":"forms.forms.batchUpdate","x-executor-toolPath":"forms.forms.batchUpdate","x-executor-pathTemplate":"/v1/forms/{formId}:batchUpdate","tags":["Google Forms API"],"description":"Change the form with a batch of updates.","servers":[{"url":"https://forms.googleapis.com/"}],"parameters":[{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"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.","schema":{"description":"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.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"key","in":"query","required":false,"description":"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.","schema":{"description":"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.","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"formId","in":"path","required":true,"description":"Required. The form ID.","schema":{"description":"Required. The form ID.","type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/forms_v1_BatchUpdateFormRequest"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/forms_v1_BatchUpdateFormResponse"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/forms.body"]}],"x-google-scopes":["https://www.googleapis.com/auth/forms.body"]}},"/v1/forms/{formId}":{"get":{"operationId":"forms.forms.get","x-executor-toolPath":"forms.forms.get","x-executor-pathTemplate":"/v1/forms/{formId}","tags":["Google Forms API"],"description":"Get a form.","servers":[{"url":"https://forms.googleapis.com/"}],"parameters":[{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"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.","schema":{"description":"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.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"key","in":"query","required":false,"description":"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.","schema":{"description":"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.","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"formId","in":"path","required":true,"description":"Required. The form ID.","schema":{"description":"Required. The form ID.","type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/forms_v1_Form"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/forms.body"]}],"x-google-scopes":["https://www.googleapis.com/auth/forms.body"]}},"/v1/forms/{formId}:setPublishSettings":{"post":{"operationId":"forms.forms.setPublishSettings","x-executor-toolPath":"forms.forms.setPublishSettings","x-executor-pathTemplate":"/v1/forms/{formId}:setPublishSettings","tags":["Google Forms API"],"description":"Updates the publish settings of a form. Legacy forms aren't supported because they don't have the `publish_settings` field.","servers":[{"url":"https://forms.googleapis.com/"}],"parameters":[{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"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.","schema":{"description":"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.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"key","in":"query","required":false,"description":"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.","schema":{"description":"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.","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"formId","in":"path","required":true,"description":"Required. The ID of the form. You can get the id from Form.form_id field.","schema":{"description":"Required. The ID of the form. You can get the id from Form.form_id field.","type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/forms_v1_SetPublishSettingsRequest"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/forms_v1_SetPublishSettingsResponse"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/forms.body"]}],"x-google-scopes":["https://www.googleapis.com/auth/forms.body"]}},"/v1/forms":{"post":{"operationId":"forms.forms.create","x-executor-toolPath":"forms.forms.create","x-executor-pathTemplate":"/v1/forms","tags":["Google Forms API"],"description":"Create a new form using the title given in the provided form message in the request. *Important:* Only the form.info.title and form.info.document_title fields are copied to the new form. All other fields including the form description, items and settings are disallowed. To create a new form and add items, you must first call forms.create to create an empty form with a title and (optional) document title, and then call forms.update to add the items.","servers":[{"url":"https://forms.googleapis.com/"}],"parameters":[{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"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.","schema":{"description":"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.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"key","in":"query","required":false,"description":"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.","schema":{"description":"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.","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"unpublished","in":"query","required":false,"description":"Optional. Whether the form is unpublished. If set to `true`, the form doesn't accept responses. If set to `false` or unset, the form is published and accepts responses.","schema":{"description":"Optional. Whether the form is unpublished. If set to `true`, the form doesn't accept responses. If set to `false` or unset, the form is published and accepts responses.","type":"boolean"},"style":"form","explode":false}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/forms_v1_Form"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/forms_v1_Form"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/forms.body"]}],"x-google-scopes":["https://www.googleapis.com/auth/forms.body"]}},"/v1/forms/{formId}/responses/{responseId}":{"get":{"operationId":"forms.forms.responses.get","x-executor-toolPath":"forms.forms.responses.get","x-executor-pathTemplate":"/v1/forms/{formId}/responses/{responseId}","tags":["Google Forms API"],"description":"Get one response from the form.","servers":[{"url":"https://forms.googleapis.com/"}],"parameters":[{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"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.","schema":{"description":"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.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"key","in":"query","required":false,"description":"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.","schema":{"description":"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.","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"formId","in":"path","required":true,"description":"Required. The form ID.","schema":{"description":"Required. The form ID.","type":"string"}},{"name":"responseId","in":"path","required":true,"description":"Required. The response ID within the form.","schema":{"description":"Required. The response ID within the form.","type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/forms_v1_FormResponse"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/forms.responses.readonly"]}],"x-google-scopes":["https://www.googleapis.com/auth/forms.responses.readonly"]}},"/v1/forms/{formId}/responses":{"get":{"operationId":"forms.forms.responses.list","x-executor-toolPath":"forms.forms.responses.list","x-executor-pathTemplate":"/v1/forms/{formId}/responses","tags":["Google Forms API"],"description":"List a form's responses.","servers":[{"url":"https://forms.googleapis.com/"}],"parameters":[{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"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.","schema":{"description":"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.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"key","in":"query","required":false,"description":"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.","schema":{"description":"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.","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"filter","in":"query","required":false,"description":"Which form responses to return. Currently, the only supported filters are: * timestamp > *N* which means to get all form responses submitted after (but not at) timestamp *N*. * timestamp >= *N* which means to get all form responses submitted at and after timestamp *N*. For both supported filters, timestamp must be formatted in RFC3339 UTC \"Zulu\" format. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","schema":{"description":"Which form responses to return. Currently, the only supported filters are: * timestamp > *N* which means to get all form responses submitted after (but not at) timestamp *N*. * timestamp >= *N* which means to get all form responses submitted at and after timestamp *N*. For both supported filters, timestamp must be formatted in RFC3339 UTC \"Zulu\" format. Examples: \"2014-10-02T15:01:23Z\" and \"2014-10-02T15:01:23.045123456Z\".","type":"string"},"style":"form","explode":false},{"name":"pageToken","in":"query","required":false,"description":"A page token returned by a previous list response. If this field is set, the form and the values of the filter must be the same as for the original request.","schema":{"description":"A page token returned by a previous list response. If this field is set, the form and the values of the filter must be the same as for the original request.","type":"string"},"style":"form","explode":false},{"name":"pageSize","in":"query","required":false,"description":"The maximum number of responses to return. The service may return fewer than this value. If unspecified or zero, at most 5000 responses are returned.","schema":{"description":"The maximum number of responses to return. The service may return fewer than this value. If unspecified or zero, at most 5000 responses are returned.","format":"int32","type":"integer"},"style":"form","explode":false},{"name":"formId","in":"path","required":true,"description":"Required. ID of the Form whose responses to list.","schema":{"description":"Required. ID of the Form whose responses to list.","type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/forms_v1_ListFormResponsesResponse"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/forms.responses.readonly"]}],"x-google-scopes":["https://www.googleapis.com/auth/forms.responses.readonly"]}},"/v1/forms/{formId}/watches":{"get":{"operationId":"forms.forms.watches.list","x-executor-toolPath":"forms.forms.watches.list","x-executor-pathTemplate":"/v1/forms/{formId}/watches","tags":["Google Forms API"],"description":"Return a list of the watches owned by the invoking project. The maximum number of watches is two: For each invoker, the limit is one for each event type per form.","servers":[{"url":"https://forms.googleapis.com/"}],"parameters":[{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"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.","schema":{"description":"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.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"key","in":"query","required":false,"description":"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.","schema":{"description":"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.","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"formId","in":"path","required":true,"description":"Required. ID of the Form whose watches to list.","schema":{"description":"Required. ID of the Form whose watches to list.","type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/forms_v1_ListWatchesResponse"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/forms.body"]},{"googleOAuth2":["https://www.googleapis.com/auth/forms.responses.readonly"]}],"x-google-scopes":["https://www.googleapis.com/auth/forms.body","https://www.googleapis.com/auth/forms.responses.readonly"]},"post":{"operationId":"forms.forms.watches.create","x-executor-toolPath":"forms.forms.watches.create","x-executor-pathTemplate":"/v1/forms/{formId}/watches","tags":["Google Forms API"],"description":"Create a new watch. If a watch ID is provided, it must be unused. For each invoking project, the per form limit is one watch per Watch.EventType. A watch expires seven days after it is created (see Watch.expire_time).","servers":[{"url":"https://forms.googleapis.com/"}],"parameters":[{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"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.","schema":{"description":"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.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"key","in":"query","required":false,"description":"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.","schema":{"description":"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.","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"formId","in":"path","required":true,"description":"Required. ID of the Form to watch.","schema":{"description":"Required. ID of the Form to watch.","type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/forms_v1_CreateWatchRequest"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/forms_v1_Watch"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/forms.body"]},{"googleOAuth2":["https://www.googleapis.com/auth/forms.responses.readonly"]}],"x-google-scopes":["https://www.googleapis.com/auth/forms.body","https://www.googleapis.com/auth/forms.responses.readonly"]}},"/v1/forms/{formId}/watches/{watchId}":{"delete":{"operationId":"forms.forms.watches.delete","x-executor-toolPath":"forms.forms.watches.delete","x-executor-pathTemplate":"/v1/forms/{formId}/watches/{watchId}","tags":["Google Forms API"],"description":"Delete a watch.","servers":[{"url":"https://forms.googleapis.com/"}],"parameters":[{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"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.","schema":{"description":"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.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"key","in":"query","required":false,"description":"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.","schema":{"description":"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.","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"formId","in":"path","required":true,"description":"Required. The ID of the Form.","schema":{"description":"Required. The ID of the Form.","type":"string"}},{"name":"watchId","in":"path","required":true,"description":"Required. The ID of the Watch to delete.","schema":{"description":"Required. The ID of the Watch to delete.","type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/forms_v1_Empty"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/forms.body"]},{"googleOAuth2":["https://www.googleapis.com/auth/forms.responses.readonly"]}],"x-google-scopes":["https://www.googleapis.com/auth/forms.body","https://www.googleapis.com/auth/forms.responses.readonly"]}},"/v1/forms/{formId}/watches/{watchId}:renew":{"post":{"operationId":"forms.forms.watches.renew","x-executor-toolPath":"forms.forms.watches.renew","x-executor-pathTemplate":"/v1/forms/{formId}/watches/{watchId}:renew","tags":["Google Forms API"],"description":"Renew an existing watch for seven days. The state of the watch after renewal is `ACTIVE`, and the `expire_time` is seven days from the renewal. Renewing a watch in an error state (e.g. `SUSPENDED`) succeeds if the error is no longer present, but fail otherwise. After a watch has expired, RenewWatch returns `NOT_FOUND`.","servers":[{"url":"https://forms.googleapis.com/"}],"parameters":[{"name":"fields","in":"query","required":false,"description":"Selector specifying which fields to include in a partial response.","schema":{"description":"Selector specifying which fields to include in a partial response.","type":"string"},"style":"form","explode":false},{"name":"oauth_token","in":"query","required":false,"description":"OAuth 2.0 token for the current user.","schema":{"description":"OAuth 2.0 token for the current user.","type":"string"},"style":"form","explode":false},{"name":"uploadType","in":"query","required":false,"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","schema":{"description":"Legacy upload protocol for media (e.g. \"media\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"callback","in":"query","required":false,"description":"JSONP","schema":{"description":"JSONP","type":"string"},"style":"form","explode":false},{"name":"quotaUser","in":"query","required":false,"description":"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.","schema":{"description":"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.","type":"string"},"style":"form","explode":false},{"name":"alt","in":"query","required":false,"description":"Data format for response.","schema":{"description":"Data format for response.","default":"json","enum":["json","media","proto"],"type":"string"},"style":"form","explode":false},{"name":"access_token","in":"query","required":false,"description":"OAuth access token.","schema":{"description":"OAuth access token.","type":"string"},"style":"form","explode":false},{"name":"key","in":"query","required":false,"description":"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.","schema":{"description":"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.","type":"string"},"style":"form","explode":false},{"name":"prettyPrint","in":"query","required":false,"description":"Returns response with indentations and line breaks.","schema":{"description":"Returns response with indentations and line breaks.","default":"true","type":"boolean"},"style":"form","explode":false},{"name":"upload_protocol","in":"query","required":false,"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","schema":{"description":"Upload protocol for media (e.g. \"raw\", \"multipart\").","type":"string"},"style":"form","explode":false},{"name":"$.xgafv","in":"query","required":false,"description":"V1 error format.","schema":{"description":"V1 error format.","enum":["1","2"],"type":"string"},"style":"form","explode":false},{"name":"watchId","in":"path","required":true,"description":"Required. The ID of the Watch to renew.","schema":{"description":"Required. The ID of the Watch to renew.","type":"string"}},{"name":"formId","in":"path","required":true,"description":"Required. The ID of the Form.","schema":{"description":"Required. The ID of the Form.","type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/forms_v1_RenewWatchRequest"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/forms_v1_Watch"}}}}},"security":[{"googleOAuth2":["https://www.googleapis.com/auth/forms.body"]},{"googleOAuth2":["https://www.googleapis.com/auth/forms.responses.readonly"]}],"x-google-scopes":["https://www.googleapis.com/auth/forms.body","https://www.googleapis.com/auth/forms.responses.readonly"]}}},"components":{"schemas":{"forms_v1_PageBreakItem":{"description":"A page break. The title and description of this item are shown at the top of the new page.","type":"object"},"forms_v1_UpdateSettingsRequest":{"description":"Update Form's FormSettings.","type":"object","properties":{"updateMask":{"description":"Required. Only values named in this mask are changed. At least one field must be specified. The root `settings` is implied and should not be specified. A single `\"*\"` can be used as short-hand for updating every field.","format":"google-fieldmask","type":"string"},"settings":{"$ref":"#/components/schemas/forms_v1_FormSettings"}}},"forms_v1_ImageItem":{"description":"An item containing an image.","type":"object","properties":{"image":{"$ref":"#/components/schemas/forms_v1_Image"}}},"forms_v1_ExtraMaterial":{"description":"Supplementary material to the feedback.","type":"object","properties":{"link":{"$ref":"#/components/schemas/forms_v1_TextLink"},"video":{"$ref":"#/components/schemas/forms_v1_VideoLink"}}},"forms_v1_CorrectAnswers":{"description":"The answer key for a question.","type":"object","properties":{"answers":{"description":"A list of correct answers. A quiz response can be automatically graded based on these answers. For single-valued questions, a response is marked correct if it matches any value in this list (in other words, multiple correct answers are possible). For multiple-valued (`CHECKBOX`) questions, a response is marked correct if it contains exactly the values in this list.","type":"array","items":{"$ref":"#/components/schemas/forms_v1_CorrectAnswer"}}}},"forms_v1_CorrectAnswer":{"description":"A single correct answer for a question. For multiple-valued (`CHECKBOX`) questions, several `CorrectAnswer`s may be needed to represent a single correct response option.","type":"object","properties":{"value":{"description":"Required. The correct answer value. See the documentation for TextAnswer.value for details on how various value types are formatted.","type":"string"}}},"forms_v1_Video":{"description":"Data representing a video.","type":"object","properties":{"properties":{"$ref":"#/components/schemas/forms_v1_MediaProperties"},"youtubeUri":{"description":"Required. A YouTube URI.","type":"string"}}},"forms_v1_UpdateFormInfoRequest":{"description":"Update Form's Info.","type":"object","properties":{"updateMask":{"description":"Required. Only values named in this mask are changed. At least one field must be specified. The root `info` is implied and should not be specified. A single `\"*\"` can be used as short-hand for updating every field.","format":"google-fieldmask","type":"string"},"info":{"$ref":"#/components/schemas/forms_v1_Info"}}},"forms_v1_Image":{"description":"Data representing an image.","type":"object","properties":{"contentUri":{"description":"Output only. A URI from which you can download the image; this is valid only for a limited time.","readOnly":true,"type":"string"},"sourceUri":{"description":"Input only. The source URI is the URI used to insert the image. The source URI can be empty when fetched.","type":"string"},"altText":{"description":"A description of the image that is shown on hover and read by screenreaders.","type":"string"},"properties":{"$ref":"#/components/schemas/forms_v1_MediaProperties"}}},"forms_v1_PublishState":{"description":"The publishing state of a form.","type":"object","properties":{"isAcceptingResponses":{"description":"Required. Whether the form accepts responses. If `is_published` is set to `false`, this field is forced to `false`.","type":"boolean"},"isPublished":{"description":"Required. Whether the form is published and visible to others.","type":"boolean"}}},"forms_v1_QuizSettings":{"description":"Settings related to quiz forms and grading. These must be updated with the UpdateSettingsRequest.","type":"object","properties":{"isQuiz":{"description":"Whether this form is a quiz or not. When true, responses are graded based on question Grading. Upon setting to false, all question Grading is deleted.","type":"boolean"}}},"forms_v1_Answer":{"description":"The submitted answer for a question.","type":"object","properties":{"fileUploadAnswers":{"$ref":"#/components/schemas/forms_v1_FileUploadAnswers"},"grade":{"$ref":"#/components/schemas/forms_v1_Grade"},"textAnswers":{"$ref":"#/components/schemas/forms_v1_TextAnswers"},"questionId":{"description":"Output only. The question's ID. See also Question.question_id.","readOnly":true,"type":"string"}}},"forms_v1_CloudPubsubTopic":{"description":"A Pub/Sub topic.","type":"object","properties":{"topicName":{"description":"Required. A fully qualified Pub/Sub topic name to publish the events to. This topic must be owned by the calling project and already exist in Pub/Sub.","type":"string"}}},"forms_v1_Info":{"description":"The general information for a form.","type":"object","properties":{"documentTitle":{"description":"Output only. The title of the document which is visible in Drive. If Info.title is empty, `document_title` may appear in its place in the Google Forms UI and be visible to responders. `document_title` can be set on create, but cannot be modified by a batchUpdate request. Please use the [Google Drive API](https://developers.google.com/drive/api/v3/reference/files/update) if you need to programmatically update `document_title`.","readOnly":true,"type":"string"},"title":{"description":"Required. The title of the form which is visible to responders.","type":"string"},"description":{"description":"The description of the form.","type":"string"}}},"forms_v1_TimeQuestion":{"description":"A time question.","type":"object","properties":{"duration":{"description":"`true` if the question is about an elapsed time. Otherwise it is about a time of day.","type":"boolean"}}},"forms_v1_RowQuestion":{"description":"Configuration for a question that is part of a question group.","type":"object","properties":{"title":{"description":"Required. The title for the single row in the QuestionGroupItem.","type":"string"}}},"forms_v1_TextItem":{"description":"A text item.","type":"object"},"forms_v1_QuestionItem":{"description":"A form item containing a single question.","type":"object","properties":{"image":{"$ref":"#/components/schemas/forms_v1_Image"},"question":{"$ref":"#/components/schemas/forms_v1_Question"}}},"forms_v1_FormResponse":{"description":"A form response.","type":"object","properties":{"answers":{"description":"Output only. The actual answers to the questions, keyed by question_id.","readOnly":true,"type":"object","additionalProperties":{"$ref":"#/components/schemas/forms_v1_Answer"}},"respondentEmail":{"description":"Output only. The email address (if collected) for the respondent.","readOnly":true,"type":"string"},"lastSubmittedTime":{"description":"Output only. Timestamp for the most recent time the response was submitted. Does not track changes to grades.","format":"google-datetime","readOnly":true,"type":"string"},"responseId":{"description":"Output only. The response ID.","readOnly":true,"type":"string"},"totalScore":{"description":"Output only. The total number of points the respondent received for their submission Only set if the form was a quiz and the response was graded. This includes points automatically awarded via autograding adjusted by any manual corrections entered by the form owner.","format":"double","readOnly":true,"type":"number"},"formId":{"description":"Output only. The form ID.","readOnly":true,"type":"string"},"createTime":{"description":"Output only. Timestamp for the first time the response was submitted.","format":"google-datetime","readOnly":true,"type":"string"}}},"forms_v1_Option":{"description":"An option for a Choice question.","type":"object","properties":{"isOther":{"description":"Whether the option is \"other\". Currently only applies to `RADIO` and `CHECKBOX` choice types, but is not allowed in a QuestionGroupItem.","type":"boolean"},"goToAction":{"description":"Section navigation type.","enum":["GO_TO_ACTION_UNSPECIFIED","NEXT_SECTION","RESTART_FORM","SUBMIT_FORM"],"type":"string"},"image":{"$ref":"#/components/schemas/forms_v1_Image"},"goToSectionId":{"description":"Item ID of section header to go to.","type":"string"},"value":{"description":"Required. The choice as presented to the user.","type":"string"}}},"forms_v1_ChoiceQuestion":{"description":"A radio/checkbox/dropdown question.","type":"object","properties":{"shuffle":{"description":"Whether the options should be displayed in random order for different instances of the quiz. This is often used to prevent cheating by respondents who might be looking at another respondent's screen, or to address bias in a survey that might be introduced by always putting the same options first or last.","type":"boolean"},"type":{"description":"Required. The type of choice question.","enum":["CHOICE_TYPE_UNSPECIFIED","RADIO","CHECKBOX","DROP_DOWN"],"type":"string"},"options":{"description":"Required. List of options that a respondent must choose from.","type":"array","items":{"$ref":"#/components/schemas/forms_v1_Option"}}}},"forms_v1_WatchTarget":{"description":"The target for notification delivery.","type":"object","properties":{"topic":{"$ref":"#/components/schemas/forms_v1_CloudPubsubTopic"}}},"forms_v1_CreateItemRequest":{"description":"Create an item in a form.","type":"object","properties":{"location":{"$ref":"#/components/schemas/forms_v1_Location"},"item":{"$ref":"#/components/schemas/forms_v1_Item"}}},"forms_v1_Location":{"description":"A specific location in a form.","type":"object","properties":{"index":{"description":"The index of an item in the form. This must be in the range [0..*N*), where *N* is the number of items in the form.","format":"int32","type":"integer"}}},"forms_v1_SetPublishSettingsRequest":{"description":"Updates the publish settings of a Form.","type":"object","properties":{"publishSettings":{"$ref":"#/components/schemas/forms_v1_PublishSettings"},"updateMask":{"description":"Optional. The `publish_settings` fields to update. This field mask accepts the following values: * `publish_state`: Updates or replaces all `publish_state` settings. * `\"*\"`: Updates or replaces all `publish_settings` fields.","format":"google-fieldmask","type":"string"}}},"forms_v1_CreateItemResponse":{"description":"The result of creating an item.","type":"object","properties":{"itemId":{"description":"The ID of the created item.","type":"string"},"questionId":{"description":"The ID of the question created as part of this item, for a question group it lists IDs of all the questions created for this item.","type":"array","items":{"type":"string"}}}},"forms_v1_QuestionGroupItem":{"description":"Defines a question that comprises multiple questions grouped together.","type":"object","properties":{"grid":{"$ref":"#/components/schemas/forms_v1_Grid"},"questions":{"description":"Required. A list of questions that belong in this question group. A question must only belong to one group. The `kind` of the group may affect what types of questions are allowed.","type":"array","items":{"$ref":"#/components/schemas/forms_v1_Question"}},"image":{"$ref":"#/components/schemas/forms_v1_Image"}}},"forms_v1_Watch":{"description":"A watch for events for a form. When the designated event happens, a notification will be published to the specified target. The notification's attributes will include a `formId` key that has the ID of the watched form and an `eventType` key that has the string of the type. Messages are sent with at-least-once delivery and are only dropped in extraordinary circumstances. Typically all notifications should be reliably delivered within a few seconds; however, in some situations notifications may be delayed. A watch expires seven days after it is created unless it is renewed with watches.renew","type":"object","properties":{"state":{"description":"Output only. The current state of the watch. Additional details about suspended watches can be found by checking the `error_type`.","readOnly":true,"enum":["STATE_UNSPECIFIED","ACTIVE","SUSPENDED"],"type":"string"},"createTime":{"description":"Output only. Timestamp of when this was created.","format":"google-datetime","readOnly":true,"type":"string"},"target":{"$ref":"#/components/schemas/forms_v1_WatchTarget"},"id":{"description":"Output only. The ID of this watch. See notes on CreateWatchRequest.watch_id.","readOnly":true,"type":"string"},"expireTime":{"description":"Output only. Timestamp for when this will expire. Each watches.renew call resets this to seven days in the future.","format":"google-datetime","readOnly":true,"type":"string"},"eventType":{"description":"Required. Which event type to watch for.","enum":["EVENT_TYPE_UNSPECIFIED","SCHEMA","RESPONSES"],"type":"string"},"errorType":{"description":"Output only. The most recent error type for an attempted delivery. To begin watching the form again a call can be made to watches.renew which also clears this error information.","readOnly":true,"enum":["ERROR_TYPE_UNSPECIFIED","PROJECT_NOT_AUTHORIZED","NO_USER_ACCESS","OTHER_ERRORS"],"type":"string"}}},"forms_v1_RenewWatchRequest":{"description":"Renew an existing Watch for seven days.","type":"object"},"forms_v1_MoveItemRequest":{"description":"Move an item in a form.","type":"object","properties":{"newLocation":{"$ref":"#/components/schemas/forms_v1_Location"},"originalLocation":{"$ref":"#/components/schemas/forms_v1_Location"}}},"forms_v1_Response":{"description":"A single response from an update.","type":"object","properties":{"createItem":{"$ref":"#/components/schemas/forms_v1_CreateItemResponse"}}},"forms_v1_TextAnswers":{"description":"A question's answers as text.","type":"object","properties":{"answers":{"description":"Output only. Answers to a question. For multiple-value ChoiceQuestions, each answer is a separate value.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/forms_v1_TextAnswer"}}}},"forms_v1_FileUploadAnswer":{"description":"Info for a single file submitted to a file upload question.","type":"object","properties":{"fileName":{"description":"Output only. The file name, as stored in Google Drive on upload.","readOnly":true,"type":"string"},"mimeType":{"description":"Output only. The MIME type of the file, as stored in Google Drive on upload.","readOnly":true,"type":"string"},"fileId":{"description":"Output only. The ID of the Google Drive file.","readOnly":true,"type":"string"}}},"forms_v1_VideoItem":{"description":"An item containing a video.","type":"object","properties":{"video":{"$ref":"#/components/schemas/forms_v1_Video"},"caption":{"description":"The text displayed below the video.","type":"string"}}},"forms_v1_Grading":{"description":"Grading for a single question","type":"object","properties":{"correctAnswers":{"$ref":"#/components/schemas/forms_v1_CorrectAnswers"},"whenWrong":{"$ref":"#/components/schemas/forms_v1_Feedback"},"whenRight":{"$ref":"#/components/schemas/forms_v1_Feedback"},"pointValue":{"description":"Required. The maximum number of points a respondent can automatically get for a correct answer. This must not be negative.","format":"int32","type":"integer"},"generalFeedback":{"$ref":"#/components/schemas/forms_v1_Feedback"}}},"forms_v1_Question":{"description":"Any question. The specific type of question is known by its `kind`.","type":"object","properties":{"fileUploadQuestion":{"$ref":"#/components/schemas/forms_v1_FileUploadQuestion"},"required":{"description":"Whether the question must be answered in order for a respondent to submit their response.","type":"boolean"},"dateQuestion":{"$ref":"#/components/schemas/forms_v1_DateQuestion"},"scaleQuestion":{"$ref":"#/components/schemas/forms_v1_ScaleQuestion"},"grading":{"$ref":"#/components/schemas/forms_v1_Grading"},"rowQuestion":{"$ref":"#/components/schemas/forms_v1_RowQuestion"},"textQuestion":{"$ref":"#/components/schemas/forms_v1_TextQuestion"},"questionId":{"description":"Read only. The question ID. On creation, it can be provided but the ID must not be already used in the form. If not provided, a new ID is assigned.","type":"string"},"timeQuestion":{"$ref":"#/components/schemas/forms_v1_TimeQuestion"},"ratingQuestion":{"$ref":"#/components/schemas/forms_v1_RatingQuestion"},"choiceQuestion":{"$ref":"#/components/schemas/forms_v1_ChoiceQuestion"}}},"forms_v1_Form":{"description":"A Google Forms document. A form is created in Drive, and deleting a form or changing its access protections is done via the [Drive API](https://developers.google.com/drive/api/v3/about-sdk).","type":"object","properties":{"formId":{"description":"Output only. The form ID.","readOnly":true,"type":"string"},"responderUri":{"description":"Output only. The form URI to share with responders. This opens a page that allows the user to submit responses but not edit the questions. For forms that have publish_settings value set, this is the published form URI.","readOnly":true,"type":"string"},"settings":{"$ref":"#/components/schemas/forms_v1_FormSettings"},"revisionId":{"description":"Output only. The revision ID of the form. Used in the WriteControl in update requests to identify the revision on which the changes are based. The format of the revision ID may change over time, so it should be treated opaquely. A returned revision ID is only guaranteed to be valid for 24 hours after it has been returned and cannot be shared across users. If the revision ID is unchanged between calls, then the form *content* has not changed. Conversely, a changed ID (for the same form and user) usually means the form *content* has been updated; however, a changed ID can also be due to internal factors such as ID format changes. Form content excludes form metadata, including: * sharing settings (who has access to the form) * publish_settings (if the form supports publishing and if it is published)","readOnly":true,"type":"string"},"linkedSheetId":{"description":"Output only. The ID of the linked Google Sheet which is accumulating responses from this Form (if such a Sheet exists).","readOnly":true,"type":"string"},"info":{"$ref":"#/components/schemas/forms_v1_Info"},"publishSettings":{"$ref":"#/components/schemas/forms_v1_PublishSettings"},"items":{"description":"Required. A list of the form's items, which can include section headers, questions, embedded media, etc.","type":"array","items":{"$ref":"#/components/schemas/forms_v1_Item"}}}},"forms_v1_Feedback":{"description":"Feedback for a respondent about their response to a question.","type":"object","properties":{"material":{"description":"Additional information provided as part of the feedback, often used to point the respondent to more reading and resources.","type":"array","items":{"$ref":"#/components/schemas/forms_v1_ExtraMaterial"}},"text":{"description":"Required. The main text of the feedback.","type":"string"}}},"forms_v1_DateQuestion":{"description":"A date question. Date questions default to just month + day.","type":"object","properties":{"includeYear":{"description":"Whether to include the year as part of the question.","type":"boolean"},"includeTime":{"description":"Whether to include the time as part of the question.","type":"boolean"}}},"forms_v1_Grid":{"description":"A grid of choices (radio or check boxes) with each row constituting a separate question. Each row has the same choices, which are shown as the columns.","type":"object","properties":{"shuffleQuestions":{"description":"If `true`, the questions are randomly ordered. In other words, the rows appear in a different order for every respondent.","type":"boolean"},"columns":{"$ref":"#/components/schemas/forms_v1_ChoiceQuestion"}}},"forms_v1_BatchUpdateFormResponse":{"description":"Response to a BatchUpdateFormRequest.","type":"object","properties":{"form":{"$ref":"#/components/schemas/forms_v1_Form"},"replies":{"description":"The reply of the updates. This maps 1:1 with the update requests, although replies to some requests may be empty.","type":"array","items":{"$ref":"#/components/schemas/forms_v1_Response"}},"writeControl":{"$ref":"#/components/schemas/forms_v1_WriteControl"}}},"forms_v1_RatingQuestion":{"description":"A rating question. The user has a range of icons to choose from.","type":"object","properties":{"ratingScaleLevel":{"description":"Required. The rating scale level of the rating question.","format":"int32","type":"integer"},"iconType":{"description":"Required. The icon type to use for the rating.","enum":["RATING_ICON_TYPE_UNSPECIFIED","STAR","HEART","THUMB_UP"],"type":"string"}}},"forms_v1_MediaProperties":{"description":"Properties of the media.","type":"object","properties":{"alignment":{"description":"Position of the media.","enum":["ALIGNMENT_UNSPECIFIED","LEFT","RIGHT","CENTER"],"type":"string"},"width":{"description":"The width of the media in pixels. When the media is displayed, it is scaled to the smaller of this value or the width of the displayed form. The original aspect ratio of the media is preserved. If a width is not specified when the media is added to the form, it is set to the width of the media source. Width must be between 0 and 740, inclusive. Setting width to 0 or unspecified is only permitted when updating the media source.","format":"int32","type":"integer"}}},"forms_v1_VideoLink":{"description":"Link to a video.","type":"object","properties":{"displayText":{"description":"Required. The display text for the link.","type":"string"},"youtubeUri":{"description":"The URI of a YouTube video.","type":"string"}}},"forms_v1_UpdateItemRequest":{"description":"Update an item in a form.","type":"object","properties":{"updateMask":{"description":"Required. Only values named in this mask are changed.","format":"google-fieldmask","type":"string"},"item":{"$ref":"#/components/schemas/forms_v1_Item"},"location":{"$ref":"#/components/schemas/forms_v1_Location"}}},"forms_v1_Empty":{"description":"A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }","type":"object"},"forms_v1_ListFormResponsesResponse":{"description":"Response to a ListFormResponsesRequest.","type":"object","properties":{"responses":{"description":"The returned form responses. Note: The `formId` field is not returned in the `FormResponse` object for list requests.","type":"array","items":{"$ref":"#/components/schemas/forms_v1_FormResponse"}},"nextPageToken":{"description":"If set, there are more responses. To get the next page of responses, provide this as `page_token` in a future request.","type":"string"}}},"forms_v1_TextQuestion":{"description":"A text-based question.","type":"object","properties":{"paragraph":{"description":"Whether the question is a paragraph question or not. If not, the question is a short text question.","type":"boolean"}}},"forms_v1_WriteControl":{"description":"Provides control over how write requests are executed.","type":"object","properties":{"targetRevisionId":{"description":"The target revision ID of the form that the write request is applied to. If changes have occurred after this revision, the changes in this update request are transformed against those changes. This results in a new revision of the form that incorporates both the changes in the request and the intervening changes, with the server resolving conflicting changes. The target revision ID may only be used to write to recent versions of a form. If the target revision is too far behind the latest revision, the request is not processed and returns a 400 (Bad Request Error). The request may be retried after reading the latest version of the form. In most cases a target revision ID remains valid for several minutes after it is read, but for frequently-edited forms this window may be shorter.","type":"string"},"requiredRevisionId":{"description":"The revision ID of the form that the write request is applied to. If this is not the latest revision of the form, the request is not processed and returns a 400 bad request error.","type":"string"}}},"forms_v1_ListWatchesResponse":{"description":"The response of a ListWatchesRequest.","type":"object","properties":{"watches":{"description":"The returned watches.","type":"array","items":{"$ref":"#/components/schemas/forms_v1_Watch"}}}},"forms_v1_Request":{"description":"The kinds of update requests that can be made.","type":"object","properties":{"deleteItem":{"$ref":"#/components/schemas/forms_v1_DeleteItemRequest"},"updateSettings":{"$ref":"#/components/schemas/forms_v1_UpdateSettingsRequest"},"updateFormInfo":{"$ref":"#/components/schemas/forms_v1_UpdateFormInfoRequest"},"createItem":{"$ref":"#/components/schemas/forms_v1_CreateItemRequest"},"updateItem":{"$ref":"#/components/schemas/forms_v1_UpdateItemRequest"},"moveItem":{"$ref":"#/components/schemas/forms_v1_MoveItemRequest"}}},"forms_v1_ScaleQuestion":{"description":"A scale question. The user has a range of numeric values to choose from.","type":"object","properties":{"high":{"description":"Required. The highest possible value for the scale.","format":"int32","type":"integer"},"highLabel":{"description":"The label to display describing the highest point on the scale.","type":"string"},"lowLabel":{"description":"The label to display describing the lowest point on the scale.","type":"string"},"low":{"description":"Required. The lowest possible value for the scale.","format":"int32","type":"integer"}}},"forms_v1_PublishSettings":{"description":"The publishing settings of a form.","type":"object","properties":{"publishState":{"$ref":"#/components/schemas/forms_v1_PublishState"}}},"forms_v1_TextAnswer":{"description":"An answer to a question represented as text.","type":"object","properties":{"value":{"description":"Output only. The answer value. Formatting used for different kinds of question: * ChoiceQuestion * `RADIO` or `DROP_DOWN`: A single string corresponding to the option that was selected. * `CHECKBOX`: Multiple strings corresponding to each option that was selected. * TextQuestion: The text that the user entered. * ScaleQuestion: A string containing the number that was selected. * DateQuestion * Without time or year: MM-DD e.g. \"05-19\" * With year: YYYY-MM-DD e.g. \"1986-05-19\" * With time: MM-DD HH:MM e.g. \"05-19 14:51\" * With year and time: YYYY-MM-DD HH:MM e.g. \"1986-05-19 14:51\" * TimeQuestion: String with time or duration in HH:MM format e.g. \"14:51\" * RowQuestion within QuestionGroupItem: The answer for each row of a QuestionGroupItem is represented as a separate Answer. Each will contain one string for `RADIO`-type choices or multiple strings for `CHECKBOX` choices.","readOnly":true,"type":"string"}}},"forms_v1_TextLink":{"description":"Link for text.","type":"object","properties":{"displayText":{"description":"Required. Display text for the URI.","type":"string"},"uri":{"description":"Required. The URI.","type":"string"}}},"forms_v1_Grade":{"description":"Grade information associated with a respondent's answer to a question.","type":"object","properties":{"feedback":{"$ref":"#/components/schemas/forms_v1_Feedback"},"correct":{"description":"Output only. Whether the question was answered correctly or not. A zero-point score is not enough to infer incorrectness, since a correctly answered question could be worth zero points.","readOnly":true,"type":"boolean"},"score":{"description":"Output only. The numeric score awarded for the answer.","format":"double","readOnly":true,"type":"number"}}},"forms_v1_FileUploadQuestion":{"description":"A file upload question. The API currently does not support creating file upload questions.","type":"object","properties":{"maxFiles":{"description":"Maximum number of files that can be uploaded for this question in a single response.","format":"int32","type":"integer"},"maxFileSize":{"description":"Maximum number of bytes allowed for any single file uploaded to this question.","format":"int64","type":"string"},"types":{"description":"File types accepted by this question.","type":"array","items":{"enum":["FILE_TYPE_UNSPECIFIED","ANY","DOCUMENT","PRESENTATION","SPREADSHEET","DRAWING","PDF","IMAGE","VIDEO","AUDIO"],"type":"string"}},"folderId":{"description":"Required. The ID of the Drive folder where uploaded files are stored.","type":"string"}}},"forms_v1_CreateWatchRequest":{"description":"Create a new watch.","type":"object","properties":{"watch":{"$ref":"#/components/schemas/forms_v1_Watch"},"watchId":{"description":"The ID to use for the watch. If specified, the ID must not already be in use. If not specified, an ID is generated. This value should be 4-63 characters, and valid characters are /a-z-/.","type":"string"}}},"forms_v1_FormSettings":{"description":"A form's settings.","type":"object","properties":{"emailCollectionType":{"description":"Optional. The setting that determines whether the form collects email addresses from respondents.","enum":["EMAIL_COLLECTION_TYPE_UNSPECIFIED","DO_NOT_COLLECT","VERIFIED","RESPONDER_INPUT"],"type":"string"},"quizSettings":{"$ref":"#/components/schemas/forms_v1_QuizSettings"}}},"forms_v1_Item":{"description":"A single item of the form. `kind` defines which kind of item it is.","type":"object","properties":{"questionItem":{"$ref":"#/components/schemas/forms_v1_QuestionItem"},"textItem":{"$ref":"#/components/schemas/forms_v1_TextItem"},"questionGroupItem":{"$ref":"#/components/schemas/forms_v1_QuestionGroupItem"},"videoItem":{"$ref":"#/components/schemas/forms_v1_VideoItem"},"imageItem":{"$ref":"#/components/schemas/forms_v1_ImageItem"},"description":{"description":"The description of the item.","type":"string"},"title":{"description":"The title of the item.","type":"string"},"pageBreakItem":{"$ref":"#/components/schemas/forms_v1_PageBreakItem"},"itemId":{"description":"The item ID. On creation, it can be provided but the ID must not be already used in the form. If not provided, a new ID is assigned.","type":"string"}}},"forms_v1_SetPublishSettingsResponse":{"description":"The response of a SetPublishSettings request.","type":"object","properties":{"publishSettings":{"$ref":"#/components/schemas/forms_v1_PublishSettings"},"formId":{"description":"Required. The ID of the Form. This is same as the Form.form_id field.","type":"string"}}},"forms_v1_FileUploadAnswers":{"description":"All submitted files for a FileUpload question.","type":"object","properties":{"answers":{"description":"Output only. All submitted files for a FileUpload question.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/forms_v1_FileUploadAnswer"}}}},"forms_v1_DeleteItemRequest":{"description":"Delete an item in a form.","type":"object","properties":{"location":{"$ref":"#/components/schemas/forms_v1_Location"}}},"forms_v1_BatchUpdateFormRequest":{"description":"A batch of updates to perform on a form. All the specified updates are made or none of them are.","type":"object","properties":{"requests":{"description":"Required. The update requests of this batch.","type":"array","items":{"$ref":"#/components/schemas/forms_v1_Request"}},"writeControl":{"$ref":"#/components/schemas/forms_v1_WriteControl"},"includeFormInResponse":{"description":"Whether to return an updated version of the model in the response.","type":"boolean"}}}},"securitySchemes":{"googleOAuth2":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://accounts.google.com/o/oauth2/v2/auth","tokenUrl":"https://oauth2.googleapis.com/token","scopes":{"openid":"","email":"","profile":"","https://www.googleapis.com/auth/forms.body":"","https://www.googleapis.com/auth/forms.responses.readonly":""}}}}}},"security":[{"googleOAuth2":["openid","email","profile","https://www.googleapis.com/auth/forms.body","https://www.googleapis.com/auth/forms.responses.readonly"]}],"x-executor-origin":{"kind":"googleDiscoveryBundle","services":[{"discoveryUrl":"https://forms.googleapis.com/$discovery/rest?version=v1","service":"forms","version":"v1"}]}}