googleapis
Version:
Google APIs Client Library for Node.js
1,458 lines • 113 kB
TypeScript
/**
* Copyright 2015 Google Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* 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.
*/
import { AxiosPromise } from 'axios';
import { GoogleApis } from '../..';
import { BodyResponseCallback, GlobalOptions, MethodOptions } from '../../lib/api';
/**
* Google Slides API
*
* An API for creating and editing Google Slides presentations.
*
* @example
* const google = require('googleapis');
* const slides = google.slides('v1');
*
* @namespace slides
* @type {Function}
* @version v1
* @variation v1
* @param {object=} options Options for Slides
*/
export declare class Slides {
_options: GlobalOptions;
google: GoogleApis;
root: this;
presentations: Resource$Presentations;
constructor(options: GlobalOptions, google: GoogleApis);
getRoot(): this;
}
/**
* AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ] to
* transform source coordinates (x,y) into destination coordinates (x',
* y') according to: x' x = shear_y scale_y translate_y 1
* [ 1 ] After transformation, x' = scale_x * x + shear_x * y +
* translate_x; y' = scale_y * y + shear_y * x + translate_y; This
* message is therefore composed of these six matrix elements.
*/
export interface Schema$AffineTransform {
/**
* The X coordinate scaling element.
*/
scaleX: number;
/**
* The Y coordinate scaling element.
*/
scaleY: number;
/**
* The X coordinate shearing element.
*/
shearX: number;
/**
* The Y coordinate shearing element.
*/
shearY: number;
/**
* The X coordinate translation element.
*/
translateX: number;
/**
* The Y coordinate translation element.
*/
translateY: number;
/**
* The units for translate elements.
*/
unit: string;
}
/**
* A TextElement kind that represents auto text.
*/
export interface Schema$AutoText {
/**
* The rendered content of this auto text, if available.
*/
content: string;
/**
* The styling applied to this auto text.
*/
style: Schema$TextStyle;
/**
* The type of this auto text.
*/
type: string;
}
/**
* Request message for PresentationsService.BatchUpdatePresentation.
*/
export interface Schema$BatchUpdatePresentationRequest {
/**
* A list of updates to apply to the presentation.
*/
requests: Schema$Request[];
/**
* Provides control over how write requests are executed.
*/
writeControl: Schema$WriteControl;
}
/**
* Response message from a batch update.
*/
export interface Schema$BatchUpdatePresentationResponse {
/**
* The presentation the updates were applied to.
*/
presentationId: string;
/**
* The reply of the updates. This maps 1:1 with the updates, although replies
* to some requests may be empty.
*/
replies: Schema$Response[];
/**
* The updated write control after applying the request.
*/
writeControl: Schema$WriteControl;
}
/**
* Describes the bullet of a paragraph.
*/
export interface Schema$Bullet {
/**
* The paragraph specific text style applied to this bullet.
*/
bulletStyle: Schema$TextStyle;
/**
* The rendered bullet glyph for this paragraph.
*/
glyph: string;
/**
* The ID of the list this paragraph belongs to.
*/
listId: string;
/**
* The nesting level of this paragraph in the list.
*/
nestingLevel: number;
}
/**
* The palette of predefined colors for a page.
*/
export interface Schema$ColorScheme {
/**
* The ThemeColorType and corresponding concrete color pairs.
*/
colors: Schema$ThemeColorPair[];
}
/**
* A color and position in a gradient band.
*/
export interface Schema$ColorStop {
/**
* The alpha value of this color in the gradient band. Defaults to 1.0, fully
* opaque.
*/
alpha: number;
/**
* The color of the gradient stop.
*/
color: Schema$OpaqueColor;
/**
* The relative position of the color stop in the gradient band measured in
* percentage. The value should be in the interval [0.0, 1.0].
*/
position: number;
}
/**
* Creates an image.
*/
export interface Schema$CreateImageRequest {
/**
* The element properties for the image. When the aspect ratio of the
* provided size does not match the image aspect ratio, the image is scaled
* and centered with respect to the size in order to maintain aspect ratio.
* The provided transform is applied after this operation. The
* PageElementProperties.size property is optional. If you don't specify
* the size, the default size of the image is used. The
* PageElementProperties.transform property is optional. If you don't
* specify a transform, the image will be placed at the top left corner of the
* page.
*/
elementProperties: Schema$PageElementProperties;
/**
* A user-supplied object ID. If you specify an ID, it must be unique among
* all pages and page elements in the presentation. The ID must start with an
* alphanumeric character or an underscore (matches regex `[a-zA-Z0-9_]`);
* remaining characters may include those as well as a hyphen or colon
* (matches regex `[a-zA-Z0-9_-:]`). The length of the ID must not be less
* than 5 or greater than 50. If you don't specify an ID, a unique one is
* generated.
*/
objectId: string;
/**
* The image URL. The image is fetched once at insertion time and a copy is
* stored for display inside the presentation. Images must be less than 50MB
* in size, cannot exceed 25 megapixels, and must be in one of PNG, JPEG, or
* GIF format. The provided URL can be at most 2 kB in length. The URL itself
* is saved with the image, and exposed via the Image.source_url field.
*/
url: string;
}
/**
* The result of creating an image.
*/
export interface Schema$CreateImageResponse {
/**
* The object ID of the created image.
*/
objectId: string;
}
/**
* Creates a line.
*/
export interface Schema$CreateLineRequest {
/**
* The element properties for the line.
*/
elementProperties: Schema$PageElementProperties;
/**
* The category of line to be created.
*/
lineCategory: string;
/**
* A user-supplied object ID. If you specify an ID, it must be unique among
* all pages and page elements in the presentation. The ID must start with an
* alphanumeric character or an underscore (matches regex `[a-zA-Z0-9_]`);
* remaining characters may include those as well as a hyphen or colon
* (matches regex `[a-zA-Z0-9_-:]`). The length of the ID must not be less
* than 5 or greater than 50. If you don't specify an ID, a unique one is
* generated.
*/
objectId: string;
}
/**
* The result of creating a line.
*/
export interface Schema$CreateLineResponse {
/**
* The object ID of the created line.
*/
objectId: string;
}
/**
* Creates bullets for all of the paragraphs that overlap with the given text
* index range. The nesting level of each paragraph will be determined by
* counting leading tabs in front of each paragraph. To avoid excess space
* between the bullet and the corresponding paragraph, these leading tabs are
* removed by this request. This may change the indices of parts of the text. If
* the paragraph immediately before paragraphs being updated is in a list with a
* matching preset, the paragraphs being updated are added to that preceding
* list.
*/
export interface Schema$CreateParagraphBulletsRequest {
/**
* The kinds of bullet glyphs to be used. Defaults to the
* `BULLET_DISC_CIRCLE_SQUARE` preset.
*/
bulletPreset: string;
/**
* The optional table cell location if the text to be modified is in a table
* cell. If present, the object_id must refer to a table.
*/
cellLocation: Schema$TableCellLocation;
/**
* The object ID of the shape or table containing the text to add bullets to.
*/
objectId: string;
/**
* The range of text to apply the bullet presets to, based on TextElement
* indexes.
*/
textRange: Schema$Range;
}
/**
* Creates a new shape.
*/
export interface Schema$CreateShapeRequest {
/**
* The element properties for the shape.
*/
elementProperties: Schema$PageElementProperties;
/**
* A user-supplied object ID. If you specify an ID, it must be unique among
* all pages and page elements in the presentation. The ID must start with an
* alphanumeric character or an underscore (matches regex `[a-zA-Z0-9_]`);
* remaining characters may include those as well as a hyphen or colon
* (matches regex `[a-zA-Z0-9_-:]`). The length of the ID must not be less
* than 5 or greater than 50. If empty, a unique identifier will be generated.
*/
objectId: string;
/**
* The shape type.
*/
shapeType: string;
}
/**
* The result of creating a shape.
*/
export interface Schema$CreateShapeResponse {
/**
* The object ID of the created shape.
*/
objectId: string;
}
/**
* Creates an embedded Google Sheets chart. NOTE: Chart creation requires at
* least one of the spreadsheets.readonly, spreadsheets, drive.readonly,
* drive.file, or drive OAuth scopes.
*/
export interface Schema$CreateSheetsChartRequest {
/**
* The ID of the specific chart in the Google Sheets spreadsheet.
*/
chartId: number;
/**
* The element properties for the chart. When the aspect ratio of the
* provided size does not match the chart aspect ratio, the chart is scaled
* and centered with respect to the size in order to maintain aspect ratio.
* The provided transform is applied after this operation.
*/
elementProperties: Schema$PageElementProperties;
/**
* The mode with which the chart is linked to the source spreadsheet. When not
* specified, the chart will be an image that is not linked.
*/
linkingMode: string;
/**
* A user-supplied object ID. If specified, the ID must be unique among all
* pages and page elements in the presentation. The ID should start with a
* word character [a-zA-Z0-9_] and then followed by any number of the
* following characters [a-zA-Z0-9_-:]. The length of the ID should not be
* less than 5 or greater than 50. If empty, a unique identifier will be
* generated.
*/
objectId: string;
/**
* The ID of the Google Sheets spreadsheet that contains the chart.
*/
spreadsheetId: string;
}
/**
* The result of creating an embedded Google Sheets chart.
*/
export interface Schema$CreateSheetsChartResponse {
/**
* The object ID of the created chart.
*/
objectId: string;
}
/**
* Creates a new slide.
*/
export interface Schema$CreateSlideRequest {
/**
* The optional zero-based index indicating where to insert the slides. If
* you don't specify an index, the new slide is created at the end.
*/
insertionIndex: number;
/**
* A user-supplied object ID. If you specify an ID, it must be unique among
* all pages and page elements in the presentation. The ID must start with an
* alphanumeric character or an underscore (matches regex `[a-zA-Z0-9_]`);
* remaining characters may include those as well as a hyphen or colon
* (matches regex `[a-zA-Z0-9_-:]`). The length of the ID must not be less
* than 5 or greater than 50. If you don't specify an ID, a unique one is
* generated.
*/
objectId: string;
/**
* An optional list of object ID mappings from the placeholder(s) on the
* layout to the placeholder(s) that will be created on the new slide from
* that specified layout. Can only be used when `slide_layout_reference` is
* specified.
*/
placeholderIdMappings: Schema$LayoutPlaceholderIdMapping[];
/**
* Layout reference of the slide to be inserted, based on the *current
* master*, which is one of the following: - The master of the previous slide
* index. - The master of the first slide, if the insertion_index is zero. -
* The first master in the presentation, if there are no slides. If the
* LayoutReference is not found in the current master, a 400 bad request error
* is returned. If you don't specify a layout reference, then the new
* slide will use the predefined layout `BLANK`.
*/
slideLayoutReference: Schema$LayoutReference;
}
/**
* The result of creating a slide.
*/
export interface Schema$CreateSlideResponse {
/**
* The object ID of the created slide.
*/
objectId: string;
}
/**
* Creates a new table.
*/
export interface Schema$CreateTableRequest {
/**
* Number of columns in the table.
*/
columns: number;
/**
* The element properties for the table. The table will be created at the
* provided size, subject to a minimum size. If no size is provided, the table
* will be automatically sized. Table transforms must have a scale of 1 and
* no shear components. If no transform is provided, the table will be
* centered on the page.
*/
elementProperties: Schema$PageElementProperties;
/**
* A user-supplied object ID. If you specify an ID, it must be unique among
* all pages and page elements in the presentation. The ID must start with an
* alphanumeric character or an underscore (matches regex `[a-zA-Z0-9_]`);
* remaining characters may include those as well as a hyphen or colon
* (matches regex `[a-zA-Z0-9_-:]`). The length of the ID must not be less
* than 5 or greater than 50. If you don't specify an ID, a unique one is
* generated.
*/
objectId: string;
/**
* Number of rows in the table.
*/
rows: number;
}
/**
* The result of creating a table.
*/
export interface Schema$CreateTableResponse {
/**
* The object ID of the created table.
*/
objectId: string;
}
/**
* Creates a video.
*/
export interface Schema$CreateVideoRequest {
/**
* The element properties for the video. The PageElementProperties.size
* property is optional. If you don't specify a size, a default size is
* chosen by the server. The PageElementProperties.transform property is
* optional. The transform must not have shear components. If you don't
* specify a transform, the video will be placed at the top left corner of the
* page.
*/
elementProperties: Schema$PageElementProperties;
/**
* The video source's unique identifier for this video. e.g. For YouTube
* video https://www.youtube.com/watch?v=7U3axjORYZ0, the ID is 7U3axjORYZ0.
*/
id: string;
/**
* A user-supplied object ID. If you specify an ID, it must be unique among
* all pages and page elements in the presentation. The ID must start with an
* alphanumeric character or an underscore (matches regex `[a-zA-Z0-9_]`);
* remaining characters may include those as well as a hyphen or colon
* (matches regex `[a-zA-Z0-9_-:]`). The length of the ID must not be less
* than 5 or greater than 50. If you don't specify an ID, a unique one is
* generated.
*/
objectId: string;
/**
* The video source.
*/
source: string;
}
/**
* The result of creating a video.
*/
export interface Schema$CreateVideoResponse {
/**
* The object ID of the created video.
*/
objectId: string;
}
/**
* The crop properties of an object enclosed in a container. For example, an
* Image. The crop properties is represented by the offsets of four edges which
* define a crop rectangle. The offsets are measured in percentage from the
* corresponding edges of the object's original bounding rectangle towards
* inside, relative to the object's original dimensions. - If the offset is
* in the interval (0, 1), the corresponding edge of crop rectangle is
* positioned inside of the object's original bounding rectangle. - If the
* offset is negative or greater than 1, the corresponding edge of crop
* rectangle is positioned outside of the object's original bounding
* rectangle. - If the left edge of the crop rectangle is on the right side of
* its right edge, the object will be flipped horizontally. - If the top edge of
* the crop rectangle is below its bottom edge, the object will be flipped
* vertically. - If all offsets and rotation angle is 0, the object is not
* cropped. After cropping, the content in the crop rectangle will be stretched
* to fit its container.
*/
export interface Schema$CropProperties {
/**
* The rotation angle of the crop window around its center, in radians.
* Rotation angle is applied after the offset.
*/
angle: number;
/**
* The offset specifies the bottom edge of the crop rectangle that is located
* above the original bounding rectangle bottom edge, relative to the
* object's original height.
*/
bottomOffset: number;
/**
* The offset specifies the left edge of the crop rectangle that is located to
* the right of the original bounding rectangle left edge, relative to the
* object's original width.
*/
leftOffset: number;
/**
* The offset specifies the right edge of the crop rectangle that is located
* to the left of the original bounding rectangle right edge, relative to the
* object's original width.
*/
rightOffset: number;
/**
* The offset specifies the top edge of the crop rectangle that is located
* below the original bounding rectangle top edge, relative to the
* object's original height.
*/
topOffset: number;
}
/**
* Deletes an object, either pages or page elements, from the presentation.
*/
export interface Schema$DeleteObjectRequest {
/**
* The object ID of the page or page element to delete. If after a delete
* operation a group contains only 1 or no page elements, the group is also
* deleted. If a placeholder is deleted on a layout, any empty inheriting
* shapes are also deleted.
*/
objectId: string;
}
/**
* Deletes bullets from all of the paragraphs that overlap with the given text
* index range. The nesting level of each paragraph will be visually preserved
* by adding indent to the start of the corresponding paragraph.
*/
export interface Schema$DeleteParagraphBulletsRequest {
/**
* The optional table cell location if the text to be modified is in a table
* cell. If present, the object_id must refer to a table.
*/
cellLocation: Schema$TableCellLocation;
/**
* The object ID of the shape or table containing the text to delete bullets
* from.
*/
objectId: string;
/**
* The range of text to delete bullets from, based on TextElement indexes.
*/
textRange: Schema$Range;
}
/**
* Deletes a column from a table.
*/
export interface Schema$DeleteTableColumnRequest {
/**
* The reference table cell location from which a column will be deleted. The
* column this cell spans will be deleted. If this is a merged cell, multiple
* columns will be deleted. If no columns remain in the table after this
* deletion, the whole table is deleted.
*/
cellLocation: Schema$TableCellLocation;
/**
* The table to delete columns from.
*/
tableObjectId: string;
}
/**
* Deletes a row from a table.
*/
export interface Schema$DeleteTableRowRequest {
/**
* The reference table cell location from which a row will be deleted. The
* row this cell spans will be deleted. If this is a merged cell, multiple
* rows will be deleted. If no rows remain in the table after this deletion,
* the whole table is deleted.
*/
cellLocation: Schema$TableCellLocation;
/**
* The table to delete rows from.
*/
tableObjectId: string;
}
/**
* Deletes text from a shape or a table cell.
*/
export interface Schema$DeleteTextRequest {
/**
* The optional table cell location if the text is to be deleted from a table
* cell. If present, the object_id must refer to a table.
*/
cellLocation: Schema$TableCellLocation;
/**
* The object ID of the shape or table from which the text will be deleted.
*/
objectId: string;
/**
* The range of text to delete, based on TextElement indexes. There is always
* an implicit newline character at the end of a shape's or table
* cell's text that cannot be deleted. `Range.Type.ALL` will use the
* correct bounds, but care must be taken when specifying explicit bounds for
* range types `FROM_START_INDEX` and `FIXED_RANGE`. For example, if the text
* is "ABC", followed by an implicit newline, then the maximum value
* is 2 for `text_range.start_index` and 3 for `text_range.end_index`.
* Deleting text that crosses a paragraph boundary may result in changes to
* paragraph styles and lists as the two paragraphs are merged. Ranges that
* include only one code unit of a surrogate pair are expanded to include both
* code units.
*/
textRange: Schema$Range;
}
/**
* A magnitude in a single direction in the specified units.
*/
export interface Schema$Dimension {
/**
* The magnitude.
*/
magnitude: number;
/**
* The units for magnitude.
*/
unit: string;
}
/**
* Duplicates a slide or page element. When duplicating a slide, the duplicate
* slide will be created immediately following the specified slide. When
* duplicating a page element, the duplicate will be placed on the same page at
* the same position as the original.
*/
export interface Schema$DuplicateObjectRequest {
/**
* The ID of the object to duplicate.
*/
objectId: string;
/**
* The object being duplicated may contain other objects, for example when
* duplicating a slide or a group page element. This map defines how the IDs
* of duplicated objects are generated: the keys are the IDs of the original
* objects and its values are the IDs that will be assigned to the
* corresponding duplicate object. The ID of the source object's duplicate
* may be specified in this map as well, using the same value of the
* `object_id` field as a key and the newly desired ID as the value. All keys
* must correspond to existing IDs in the presentation. All values must be
* unique in the presentation and must start with an alphanumeric character or
* an underscore (matches regex `[a-zA-Z0-9_]`); remaining characters may
* include those as well as a hyphen or colon (matches regex
* `[a-zA-Z0-9_-:]`). The length of the new ID must not be less than 5 or
* greater than 50. If any IDs of source objects are omitted from the map, a
* new random ID will be assigned. If the map is empty or unset, all duplicate
* objects will receive a new random ID.
*/
objectIds: any;
}
/**
* The response of duplicating an object.
*/
export interface Schema$DuplicateObjectResponse {
/**
* The ID of the new duplicate object.
*/
objectId: string;
}
/**
* A PageElement kind representing a joined collection of PageElements.
*/
export interface Schema$Group {
/**
* The collection of elements in the group. The minimum size of a group is 2.
*/
children: Schema$PageElement[];
}
/**
* Groups objects to create an object group. For example, groups PageElements to
* create a Group on the same page as all the children.
*/
export interface Schema$GroupObjectsRequest {
/**
* The object IDs of the objects to group. Only page elements can be grouped.
* There should be at least two page elements on the same page that are not
* already in another group. Some page elements, such as videos, tables and
* placeholder shapes cannot be grouped.
*/
childrenObjectIds: string[];
/**
* A user-supplied object ID for the group to be created. If you specify an
* ID, it must be unique among all pages and page elements in the
* presentation. The ID must start with an alphanumeric character or an
* underscore (matches regex `[a-zA-Z0-9_]`); remaining characters may include
* those as well as a hyphen or colon (matches regex `[a-zA-Z0-9_-:]`). The
* length of the ID must not be less than 5 or greater than 50. If you
* don't specify an ID, a unique one is generated.
*/
groupObjectId: string;
}
/**
* The result of grouping objects.
*/
export interface Schema$GroupObjectsResponse {
/**
* The object ID of the created group.
*/
objectId: string;
}
/**
* A PageElement kind representing an image.
*/
export interface Schema$Image {
/**
* An URL to an image with a default lifetime of 30 minutes. This URL is
* tagged with the account of the requester. Anyone with the URL effectively
* accesses the image as the original requester. Access to the image may be
* lost if the presentation's sharing settings change.
*/
contentUrl: string;
/**
* The properties of the image.
*/
imageProperties: Schema$ImageProperties;
/**
* The source URL is the URL used to insert the image. The source URL can be
* empty.
*/
sourceUrl: string;
}
/**
* The properties of the Image.
*/
export interface Schema$ImageProperties {
/**
* The brightness effect of the image. The value should be in the interval
* [-1.0, 1.0], where 0 means no effect. This property is read-only.
*/
brightness: number;
/**
* The contrast effect of the image. The value should be in the interval
* [-1.0, 1.0], where 0 means no effect. This property is read-only.
*/
contrast: number;
/**
* The crop properties of the image. If not set, the image is not cropped.
* This property is read-only.
*/
cropProperties: Schema$CropProperties;
/**
* The hyperlink destination of the image. If unset, there is no link.
*/
link: Schema$Link;
/**
* The outline of the image. If not set, the image has no outline.
*/
outline: Schema$Outline;
/**
* The recolor effect of the image. If not set, the image is not recolored.
* This property is read-only.
*/
recolor: Schema$Recolor;
/**
* The shadow of the image. If not set, the image has no shadow. This property
* is read-only.
*/
shadow: Schema$Shadow;
/**
* The transparency effect of the image. The value should be in the interval
* [0.0, 1.0], where 0 means no effect and 1 means completely transparent.
* This property is read-only.
*/
transparency: number;
}
/**
* Inserts columns into a table. Other columns in the table will be resized to
* fit the new column.
*/
export interface Schema$InsertTableColumnsRequest {
/**
* The reference table cell location from which columns will be inserted. A
* new column will be inserted to the left (or right) of the column where the
* reference cell is. If the reference cell is a merged cell, a new column
* will be inserted to the left (or right) of the merged cell.
*/
cellLocation: Schema$TableCellLocation;
/**
* Whether to insert new columns to the right of the reference cell location.
* - `True`: insert to the right. - `False`: insert to the left.
*/
insertRight: boolean;
/**
* The number of columns to be inserted. Maximum 20 per request.
*/
number: number;
/**
* The table to insert columns into.
*/
tableObjectId: string;
}
/**
* Inserts rows into a table.
*/
export interface Schema$InsertTableRowsRequest {
/**
* The reference table cell location from which rows will be inserted. A new
* row will be inserted above (or below) the row where the reference cell is.
* If the reference cell is a merged cell, a new row will be inserted above
* (or below) the merged cell.
*/
cellLocation: Schema$TableCellLocation;
/**
* Whether to insert new rows below the reference cell location. - `True`:
* insert below the cell. - `False`: insert above the cell.
*/
insertBelow: boolean;
/**
* The number of rows to be inserted. Maximum 20 per request.
*/
number: number;
/**
* The table to insert rows into.
*/
tableObjectId: string;
}
/**
* Inserts text into a shape or a table cell.
*/
export interface Schema$InsertTextRequest {
/**
* The optional table cell location if the text is to be inserted into a table
* cell. If present, the object_id must refer to a table.
*/
cellLocation: Schema$TableCellLocation;
/**
* The index where the text will be inserted, in Unicode code units, based on
* TextElement indexes. The index is zero-based and is computed from the
* start of the string. The index may be adjusted to prevent insertions inside
* Unicode grapheme clusters. In these cases, the text will be inserted
* immediately after the grapheme cluster.
*/
insertionIndex: number;
/**
* The object ID of the shape or table where the text will be inserted.
*/
objectId: string;
/**
* The text to be inserted. Inserting a newline character will implicitly
* create a new ParagraphMarker at that index. The paragraph style of the new
* paragraph will be copied from the paragraph at the current insertion index,
* including lists and bullets. Text styles for inserted text will be
* determined automatically, generally preserving the styling of neighboring
* text. In most cases, the text will be added to the TextRun that exists at
* the insertion index. Some control characters (U+0000-U+0008,
* U+000C-U+001F) and characters from the Unicode Basic Multilingual Plane
* Private Use Area (U+E000-U+F8FF) will be stripped out of the inserted text.
*/
text: string;
}
/**
* The user-specified ID mapping for a placeholder that will be created on a
* slide from a specified layout.
*/
export interface Schema$LayoutPlaceholderIdMapping {
/**
* The placeholder on a layout that will be applied to a slide. Only type and
* index are needed. For example, a predefined `TITLE_AND_BODY` layout may
* usually have a TITLE placeholder with index 0 and a BODY placeholder with
* index 0.
*/
layoutPlaceholder: Schema$Placeholder;
/**
* The object ID of the placeholder on a layout that will be applied to a
* slide.
*/
layoutPlaceholderObjectId: string;
/**
* A user-supplied object ID for the placeholder identified above that to be
* created onto a slide. If you specify an ID, it must be unique among all
* pages and page elements in the presentation. The ID must start with an
* alphanumeric character or an underscore (matches regex `[a-zA-Z0-9_]`);
* remaining characters may include those as well as a hyphen or colon
* (matches regex `[a-zA-Z0-9_-:]`). The length of the ID must not be less
* than 5 or greater than 50. If you don't specify an ID, a unique one is
* generated.
*/
objectId: string;
}
/**
* The properties of Page are only relevant for pages with page_type LAYOUT.
*/
export interface Schema$LayoutProperties {
/**
* The human-readable name of the layout.
*/
displayName: string;
/**
* The object ID of the master that this layout is based on.
*/
masterObjectId: string;
/**
* The name of the layout.
*/
name: string;
}
/**
* Slide layout reference. This may reference either: - A predefined layout -
* One of the layouts in the presentation.
*/
export interface Schema$LayoutReference {
/**
* Layout ID: the object ID of one of the layouts in the presentation.
*/
layoutId: string;
/**
* Predefined layout.
*/
predefinedLayout: string;
}
/**
* A PageElement kind representing a non-connector line, straight connector,
* curved connector or bent connector.
*/
export interface Schema$Line {
/**
* The properties of the line.
*/
lineProperties: Schema$LineProperties;
/**
* The type of the line.
*/
lineType: string;
}
/**
* The fill of the line.
*/
export interface Schema$LineFill {
/**
* Solid color fill.
*/
solidFill: Schema$SolidFill;
}
/**
* The properties of the Line. When unset, these fields default to values that
* match the appearance of new lines created in the Slides editor.
*/
export interface Schema$LineProperties {
/**
* The dash style of the line.
*/
dashStyle: string;
/**
* The style of the arrow at the end of the line.
*/
endArrow: string;
/**
* The fill of the line. The default line fill matches the defaults for new
* lines created in the Slides editor.
*/
lineFill: Schema$LineFill;
/**
* The hyperlink destination of the line. If unset, there is no link.
*/
link: Schema$Link;
/**
* The style of the arrow at the beginning of the line.
*/
startArrow: string;
/**
* The thickness of the line.
*/
weight: Schema$Dimension;
}
/**
* A hypertext link.
*/
export interface Schema$Link {
/**
* If set, indicates this is a link to the specific page in this presentation
* with this ID. A page with this ID may not exist.
*/
pageObjectId: string;
/**
* If set, indicates this is a link to a slide in this presentation, addressed
* by its position.
*/
relativeLink: string;
/**
* If set, indicates this is a link to the slide at this zero-based index in
* the presentation. There may not be a slide at this index.
*/
slideIndex: number;
/**
* If set, indicates this is a link to the external web page at this URL.
*/
url: string;
}
/**
* A List describes the look and feel of bullets belonging to paragraphs
* associated with a list. A paragraph that is part of a list has an implicit
* reference to that list's ID.
*/
export interface Schema$List {
/**
* The ID of the list.
*/
listId: string;
/**
* A map of nesting levels to the properties of bullets at the associated
* level. A list has at most nine levels of nesting, so the possible values
* for the keys of this map are 0 through 8, inclusive.
*/
nestingLevel: any;
}
/**
* The properties of Page that are only relevant for pages with page_type
* MASTER.
*/
export interface Schema$MasterProperties {
/**
* The human-readable name of the master.
*/
displayName: string;
}
/**
* Merges cells in a Table.
*/
export interface Schema$MergeTableCellsRequest {
/**
* The object ID of the table.
*/
objectId: string;
/**
* The table range specifying which cells of the table to merge. Any text in
* the cells being merged will be concatenated and stored in the upper-left
* ("head") cell of the range. If the range is non-rectangular
* (which can occur in some cases where the range covers cells that are
* already merged), a 400 bad request error is returned.
*/
tableRange: Schema$TableRange;
}
/**
* Contains properties describing the look and feel of a list bullet at a given
* level of nesting.
*/
export interface Schema$NestingLevel {
/**
* The style of a bullet at this level of nesting.
*/
bulletStyle: Schema$TextStyle;
}
/**
* The properties of Page that are only relevant for pages with page_type NOTES.
*/
export interface Schema$NotesProperties {
/**
* The object ID of the shape on this notes page that contains the speaker
* notes for the corresponding slide. The actual shape may not always exist on
* the notes page. Inserting text using this object ID will automatically
* create the shape. In this case, the actual shape may have different object
* ID. The `GetPresentation` or `GetPage` action will always return the latest
* object ID.
*/
speakerNotesObjectId: string;
}
/**
* A themeable solid color value.
*/
export interface Schema$OpaqueColor {
/**
* An opaque RGB color.
*/
rgbColor: Schema$RgbColor;
/**
* An opaque theme color.
*/
themeColor: string;
}
/**
* A color that can either be fully opaque or fully transparent.
*/
export interface Schema$OptionalColor {
/**
* If set, this will be used as an opaque color. If unset, this represents a
* transparent color.
*/
opaqueColor: Schema$OpaqueColor;
}
/**
* The outline of a PageElement. If these fields are unset, they may be
* inherited from a parent placeholder if it exists. If there is no parent, the
* fields will default to the value used for new page elements created in the
* Slides editor, which may depend on the page element kind.
*/
export interface Schema$Outline {
/**
* The dash style of the outline.
*/
dashStyle: string;
/**
* The fill of the outline.
*/
outlineFill: Schema$OutlineFill;
/**
* The outline property state. Updating the outline on a page element will
* implicitly update this field to `RENDERED`, unless another value is
* specified in the same request. To have no outline on a page element, set
* this field to `NOT_RENDERED`. In this case, any other outline fields set in
* the same request will be ignored.
*/
propertyState: string;
/**
* The thickness of the outline.
*/
weight: Schema$Dimension;
}
/**
* The fill of the outline.
*/
export interface Schema$OutlineFill {
/**
* Solid color fill.
*/
solidFill: Schema$SolidFill;
}
/**
* A page in a presentation.
*/
export interface Schema$Page {
/**
* Layout specific properties. Only set if page_type = LAYOUT.
*/
layoutProperties: Schema$LayoutProperties;
/**
* Master specific properties. Only set if page_type = MASTER.
*/
masterProperties: Schema$MasterProperties;
/**
* Notes specific properties. Only set if page_type = NOTES.
*/
notesProperties: Schema$NotesProperties;
/**
* The object ID for this page. Object IDs used by Page and PageElement share
* the same namespace.
*/
objectId: string;
/**
* The page elements rendered on the page.
*/
pageElements: Schema$PageElement[];
/**
* The properties of the page.
*/
pageProperties: Schema$PageProperties;
/**
* The type of the page.
*/
pageType: string;
/**
* The revision ID of the presentation containing this page. Can be used in
* update requests to assert that the presentation revision hasn't changed
* since the last read operation. Only populated if the user has edit access
* to the presentation. 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
* presentation has not changed. Conversely, a changed ID (for the same
* presentation and user) usually means the presentation has been updated;
* however, a changed ID can also be due to internal factors such as ID format
* changes.
*/
revisionId: string;
/**
* Slide specific properties. Only set if page_type = SLIDE.
*/
slideProperties: Schema$SlideProperties;
}
/**
* The page background fill.
*/
export interface Schema$PageBackgroundFill {
/**
* The background fill property state. Updating the fill on a page will
* implicitly update this field to `RENDERED`, unless another value is
* specified in the same request. To have no fill on a page, set this field to
* `NOT_RENDERED`. In this case, any other fill fields set in the same request
* will be ignored.
*/
propertyState: string;
/**
* Solid color fill.
*/
solidFill: Schema$SolidFill;
/**
* Stretched picture fill.
*/
stretchedPictureFill: Schema$StretchedPictureFill;
}
/**
* A visual element rendered on a page.
*/
export interface Schema$PageElement {
/**
* The description of the page element. Combined with title to display alt
* text.
*/
description: string;
/**
* A collection of page elements joined as a single unit.
*/
elementGroup: Schema$Group;
/**
* An image page element.
*/
image: Schema$Image;
/**
* A line page element.
*/
line: Schema$Line;
/**
* The object ID for this page element. Object IDs used by
* google.apps.slides.v1.Page and google.apps.slides.v1.PageElement share the
* same namespace.
*/
objectId: string;
/**
* A generic shape.
*/
shape: Schema$Shape;
/**
* A linked chart embedded from Google Sheets. Unlinked charts are represented
* as images.
*/
sheetsChart: Schema$SheetsChart;
/**
* The size of the page element.
*/
size: Schema$Size;
/**
* A table page element.
*/
table: Schema$Table;
/**
* The title of the page element. Combined with description to display alt
* text.
*/
title: string;
/**
* The transform of the page element. The visual appearance of the page
* element is determined by its absolute transform. To compute the absolute
* transform, preconcatenate a page element's transform with the
* transforms of all of its parent groups. If the page element is not in a
* group, its absolute transform is the same as the value in this field. The
* initial transform for the newly created Group is always the identity
* transform.
*/
transform: Schema$AffineTransform;
/**
* A video page element.
*/
video: Schema$Video;
/**
* A word art page element.
*/
wordArt: Schema$WordArt;
}
/**
* Common properties for a page element. Note: When you initially create a
* PageElement, the API may modify the values of both `size` and `transform`,
* but the visual size will be unchanged.
*/
export interface Schema$PageElementProperties {
/**
* The object ID of the page where the element is located.
*/
pageObjectId: string;
/**
* The size of the element.
*/
size: Schema$Size;
/**
* The transform for the element.
*/
transform: Schema$AffineTransform;
}
/**
* The properties of the Page. The page will inherit properties from the parent
* page. Depending on the page type the hierarchy is defined in either
* SlideProperties or LayoutProperties.
*/
export interface Schema$PageProperties {
/**
* The color scheme of the page. If unset, the color scheme is inherited from
* a parent page. If the page has no parent, the color scheme uses a default
* Slides color scheme. This field is read-only.
*/
colorScheme: Schema$ColorScheme;
/**
* The background fill of the page. If unset, the background fill is inherited
* from a parent page if it exists. If the page has no parent, then the
* background fill defaults to the corresponding fill in the Slides editor.
*/
pageBackgroundFill: Schema$PageBackgroundFill;
}
/**
* A TextElement kind that represents the beginning of a new paragraph.
*/
export interface Schema$ParagraphMarker {
/**
* The bullet for this paragraph. If not present, the paragraph does not
* belong to a list.
*/
bullet: Schema$Bullet;
/**
* The paragraph's style
*/
style: Schema$ParagraphStyle;
}
/**
* Styles that apply to a whole paragraph. If this text is contained in a shape
* with a parent placeholder, then these paragraph styles may be inherited from
* the parent. Which paragraph styles are inherited depend on the nesting level
* of lists: * A paragraph not in a list will inherit its paragraph style from
* the paragraph at the 0 nesting level of the list inside the parent
* placeholder. * A paragraph in a list will inherit its paragraph style from
* the paragraph at its corresponding nesting level of the list inside the
* parent placeholder. Inherited paragraph styles are represented as unset
* fields in this message.
*/
export interface Schema$ParagraphStyle {
/**
* The text alignment for this paragraph.
*/
alignment: string;
/**
* The text direction of this paragraph. If unset, the value defaults to
* LEFT_TO_RIGHT since text direction is not inherited.
*/
direction: string;
/**
* The amount indentation for the paragraph on the side that corresponds to
* the end of the text, based on the current text direction. If unset, the
* value is inherited from the parent.
*/
indentEnd: Schema$Dimension;
/**
* The amount of indentation for the start of the first line of the paragraph.
* If unset, the value is inherited from the parent.
*/
indentFirstLine: Schema$Dimension;
/**
* The amount indentation for the paragraph on the side that corresponds to
* the start of the text, based on the current text direction. If unset, the
* value is inherited from the parent.
*/
indentStart: Schema$Dimension;
/**
* The amount of space between lines, as a percentage of normal, where normal
* is represented as 100.0. If unset, the value is inherited from the parent.
*/
lineSpacing: number;
/**
* The amount of extra space above the paragraph. If unset, the value is
* inherited from the parent.
*/
spaceAbove: Schema$Dimension;
/**
* The amount of extra space above the paragraph. If unset, the value is
* inherited from the parent.
*/
spaceBelow: Schema$Dimension;
/**
* The spacing mode for the paragraph.
*/
spacingMode: string;
}
/**
* The placeholder information that uniquely identifies a placeholder shape.
*/
export interface Schema$Placeholder {
/**
* The index of the placeholder. If the same placeholder types are present in
* the same page, they would have different index values.
*/
index: number;
/**
* The object ID of this shape's parent placeholder. If unset, the parent
* placeholder shape does not exist, so the shape does not inherit properties
* from any other shape.
*/
parentObjectId: string;
/**
* The type of the placeholder.
*/
type: string;
}
/**
* A Google Slides presentation.
*/
export interface Schema$Presentation {
/**
* The layouts in the presentation. A layout is a template that determines how
* content is arranged and styled on the slides that inherit from that layout.
*/
layouts: Schema$Page[];
/**
* The locale of the presentation, as an IETF BCP 47 language tag.
*/
locale: string;
/**
* The slide masters in the presentation. A slide master contains all common
* page elements and the common properties for a set of layouts. They serve
* three purposes: - Placeholder shapes on a master contain the default text
* styles and shape properties of all placeholder shapes on pages that use
* that master. - The master page properties define the common page properties
* inherited by its layouts. - Any other shapes on the master slide will
* appear on all slides using that master, regardless of their layout.
*/
masters: Schema$Page[];
/**
* The notes master in the presentation. It serves three purposes: -
* Placeholder shapes on a notes master contain the default text styles and
* shape properties of all placeholder shapes on notes pages. Specifically, a
* `SLIDE_IMAGE` placeholder shape contains the slide thumbnail, and a `BODY`
* placeholder shape contains the speaker notes. - The notes master page
* properties define the common page properties inherited by all notes
* pages. - Any other shapes on the notes master will appear on all notes
* pages. The notes master is read-only.
*/
notesMaster: Schema$Page;
/**
* The size of pages in the presentation.
*/
pageSize: Schema$Size;
/**
* The ID of the presentation.
*/
presentationId: string;
/**
* The revision ID of the presentation. Can be used in update requests to
* assert that the presentation revision hasn't changed since the last
* read operation. Only populated if the user has edit access to the
* presentation. 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 revis