DefinitelyTyped/types/gapi.client.slides/index.d.ts
Nathan Shively-Sanders 608c146d89 Mark non-npm packages
2019-02-13 15:44:35 -08:00

2146 lines
97 KiB
TypeScript

// Type definitions for non-npm package Google Google Slides API v1 1.0
// Project: https://developers.google.com/slides/
// Definitions by: Bolisov Alexey <https://github.com/Bolisov>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
// IMPORTANT
// This file was generated by https://github.com/Bolisov/google-api-typings-generator. Please do not edit it manually.
// In case of any problems please post issue to https://github.com/Bolisov/google-api-typings-generator
// Generated from: https://slides.googleapis.com/$discovery/rest?version=v1
/// <reference types="gapi.client" />
declare namespace gapi.client {
/** Load Google Slides API v1 */
function load(name: "slides", version: "v1"): PromiseLike<void>;
function load(name: "slides", version: "v1", callback: () => any): void;
const presentations: slides.PresentationsResource;
namespace slides {
interface 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;
}
interface AutoText {
/** The rendered content of this auto text, if available. */
content?: string;
/** The styling applied to this auto text. */
style?: TextStyle;
/** The type of this auto text. */
type?: string;
}
interface BatchUpdatePresentationRequest {
/** A list of updates to apply to the presentation. */
requests?: Request[];
/** Provides control over how write requests are executed. */
writeControl?: WriteControl;
}
interface 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?: Response[];
}
interface Bullet {
/** The paragraph specific text style applied to this bullet. */
bulletStyle?: 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;
}
interface ColorScheme {
/** The ThemeColorType and corresponding concrete color pairs. */
colors?: ThemeColorPair[];
}
interface 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?: 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;
}
interface 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.
*/
elementProperties?: 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 either in PNG, JPEG, or GIF
* format.
*
* The provided URL can be at maximum 2K bytes large.
*/
url?: string;
}
interface CreateImageResponse {
/** The object ID of the created image. */
objectId?: string;
}
interface CreateLineRequest {
/** The element properties for the line. */
elementProperties?: 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;
}
interface CreateLineResponse {
/** The object ID of the created line. */
objectId?: string;
}
interface 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?: 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?: Range;
}
interface CreateShapeRequest {
/** The element properties for the shape. */
elementProperties?: 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;
}
interface CreateShapeResponse {
/** The object ID of the created shape. */
objectId?: string;
}
interface 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?: 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;
}
interface CreateSheetsChartResponse {
/** The object ID of the created chart. */
objectId?: string;
}
interface 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?: LayoutPlaceholderIdMapping[];
/**
* Layout reference of the slide to be inserted, based on the &#42;current
* master&#42;, 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?: LayoutReference;
}
interface CreateSlideResponse {
/** The object ID of the created slide. */
objectId?: string;
}
interface 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?: 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;
}
interface CreateTableResponse {
/** The object ID of the created table. */
objectId?: string;
}
interface CreateVideoRequest {
/** The element properties for the video. */
elementProperties?: 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;
}
interface CreateVideoResponse {
/** The object ID of the created video. */
objectId?: string;
}
interface 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;
}
interface 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;
}
interface 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?: 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?: Range;
}
interface 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?: TableCellLocation;
/** The table to delete columns from. */
tableObjectId?: string;
}
interface 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?: TableCellLocation;
/** The table to delete rows from. */
tableObjectId?: string;
}
interface 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?: 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?: Range;
}
interface Dimension {
/** The magnitude. */
magnitude?: number;
/** The units for magnitude. */
unit?: string;
}
interface 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?: Record<string, string>;
}
interface DuplicateObjectResponse {
/** The ID of the new duplicate object. */
objectId?: string;
}
interface Group {
/** The collection of elements in the group. The minimum size of a group is 2. */
children?: PageElement[];
}
interface 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?: ImageProperties;
}
interface 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?: CropProperties;
/** The hyperlink destination of the image. If unset, there is no link. */
link?: Link;
/** The outline of the image. If not set, the the image has no outline. */
outline?: Outline;
/**
* The recolor effect of the image. If not set, the image is not recolored.
* This property is read-only.
*/
recolor?: Recolor;
/**
* The shadow of the image. If not set, the image has no shadow. This property
* is read-only.
*/
shadow?: 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;
}
interface 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?: 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;
}
interface 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?: 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;
}
interface 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?: 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;
}
interface 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?: 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;
}
interface 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;
}
interface LayoutReference {
/** Layout ID: the object ID of one of the layouts in the presentation. */
layoutId?: string;
/** Predefined layout. */
predefinedLayout?: string;
}
interface Line {
/** The properties of the line. */
lineProperties?: LineProperties;
/** The type of the line. */
lineType?: string;
}
interface LineFill {
/** Solid color fill. */
solidFill?: SolidFill;
}
interface 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?: LineFill;
/** The hyperlink destination of the line. If unset, there is no link. */
link?: Link;
/** The style of the arrow at the beginning of the line. */
startArrow?: string;
/** The thickness of the line. */
weight?: Dimension;
}
interface 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;
}
interface 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?: Record<string, NestingLevel>;
}
interface MasterProperties {
/** The human-readable name of the master. */
displayName?: string;
}
interface NestingLevel {
/** The style of a bullet at this level of nesting. */
bulletStyle?: TextStyle;
}
interface 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;
}
interface OpaqueColor {
/** An opaque RGB color. */
rgbColor?: RgbColor;
/** An opaque theme color. */
themeColor?: string;
}
interface OptionalColor {
/**
* If set, this will be used as an opaque color. If unset, this represents
* a transparent color.
*/
opaqueColor?: OpaqueColor;
}
interface Outline {
/** The dash style of the outline. */
dashStyle?: string;
/** The fill of the outline. */
outlineFill?: OutlineFill;
/**
* The outline property state.
*
* Updating the 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?: Dimension;
}
interface OutlineFill {
/** Solid color fill. */
solidFill?: SolidFill;
}
interface Page {
/** Layout specific properties. Only set if page_type = LAYOUT. */
layoutProperties?: LayoutProperties;
/** Master specific properties. Only set if page_type = MASTER. */
masterProperties?: MasterProperties;
/** Notes specific properties. Only set if page_type = NOTES. */
notesProperties?: 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?: PageElement[];
/** The properties of the page. */
pageProperties?: 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?: SlideProperties;
}
interface 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?: SolidFill;
/** Stretched picture fill. */
stretchedPictureFill?: StretchedPictureFill;
}
interface 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?: Group;
/** An image page element. */
image?: Image;
/** A line page element. */
line?: 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?: Shape;
/**
* A linked chart embedded from Google Sheets. Unlinked charts are
* represented as images.
*/
sheetsChart?: SheetsChart;
/** The size of the page element. */
size?: Size;
/** A table page element. */
table?: 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?: AffineTransform;
/** A video page element. */
video?: Video;
/** A word art page element. */
wordArt?: WordArt;
}
interface PageElementProperties {
/** The object ID of the page where the element is located. */
pageObjectId?: string;
/** The size of the element. */
size?: Size;
/** The transform for the element. */
transform?: AffineTransform;
}
interface 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?: 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?: PageBackgroundFill;
}
interface ParagraphMarker {
/**
* The bullet for this paragraph. If not present, the paragraph does not
* belong to a list.
*/
bullet?: Bullet;
/** The paragraph's style */
style?: ParagraphStyle;
}
interface 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?: 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?: 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?: 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?: Dimension;
/**
* The amount of extra space above the paragraph. If unset, the value is
* inherited from the parent.
*/
spaceBelow?: Dimension;
/** The spacing mode for the paragraph. */
spacingMode?: string;
}
interface 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;
}
interface 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?: 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?: 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?: Page;
/** The size of pages in the presentation. */
pageSize?: 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
* 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;
/**
* The slides in the presentation.
* A slide inherits properties from a slide layout.
*/
slides?: Page[];
/** The title of the presentation. */
title?: string;
}
interface Range {
/**
* The optional zero-based index of the end of the collection.
* Required for `FIXED_RANGE` ranges.
*/
endIndex?: number;
/**
* The optional zero-based index of the beginning of the collection.
* Required for `FIXED_RANGE` and `FROM_START_INDEX` ranges.
*/
startIndex?: number;
/** The type of range. */
type?: string;
}
interface Recolor {
/**
* The name of the recolor effect.
*
* The name is determined from the `recolor_stops` by matching the gradient
* against the colors in the page's current color scheme. This property is
* read-only.
*/
name?: string;
/**
* The recolor effect is represented by a gradient, which is a list of color
* stops.
*
* The colors in the gradient will replace the corresponding colors at
* the same position in the color palette and apply to the image. This
* property is read-only.
*/
recolorStops?: ColorStop[];
}
interface RefreshSheetsChartRequest {
/** The object ID of the chart to refresh. */
objectId?: string;
}
interface ReplaceAllShapesWithImageRequest {
/**
* If set, this request will replace all of the shapes that contain the
* given text.
*/
containsText?: SubstringMatchCriteria;
/**
* 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 either in PNG, JPEG, or GIF
* format.
*
* The provided URL can be at maximum 2K bytes large.
*/
imageUrl?: string;
/**
* If non-empty, limits the matches to page elements only on the given pages.
*
* Returns a 400 bad request error if given the page object ID of a
* notes page or a
* notes master, or if a
* page with that object ID doesn't exist in the presentation.
*/
pageObjectIds?: string[];
/** The replace method. */
replaceMethod?: string;
}
interface ReplaceAllShapesWithImageResponse {
/** The number of shapes replaced with images. */
occurrencesChanged?: number;
}
interface ReplaceAllShapesWithSheetsChartRequest {
/** The ID of the specific chart in the Google Sheets spreadsheet. */
chartId?: number;
/**
* The criteria that the shapes must match in order to be replaced. The
* request will replace all of the shapes that contain the given text.
*/
containsText?: SubstringMatchCriteria;
/**
* 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;
/**
* If non-empty, limits the matches to page elements only on the given pages.
*
* Returns a 400 bad request error if given the page object ID of a
* notes page or a
* notes master, or if a
* page with that object ID doesn't exist in the presentation.
*/
pageObjectIds?: string[];
/** The ID of the Google Sheets spreadsheet that contains the chart. */
spreadsheetId?: string;
}
interface ReplaceAllShapesWithSheetsChartResponse {
/** The number of shapes replaced with charts. */
occurrencesChanged?: number;
}
interface ReplaceAllTextRequest {
/** Finds text in a shape matching this substring. */
containsText?: SubstringMatchCriteria;
/**
* If non-empty, limits the matches to page elements only on the given pages.
*
* Returns a 400 bad request error if given the page object ID of a
* notes master,
* or if a page with that object ID doesn't exist in the presentation.
*/
pageObjectIds?: string[];
/** The text that will replace the matched text. */
replaceText?: string;
}
interface ReplaceAllTextResponse {
/** The number of occurrences changed by replacing all text. */
occurrencesChanged?: number;
}
interface Request {
/** Creates an image. */
createImage?: CreateImageRequest;
/** Creates a line. */
createLine?: CreateLineRequest;
/** Creates bullets for paragraphs. */
createParagraphBullets?: CreateParagraphBulletsRequest;
/** Creates a new shape. */
createShape?: CreateShapeRequest;
/** Creates an embedded Google Sheets chart. */
createSheetsChart?: CreateSheetsChartRequest;
/** Creates a new slide. */
createSlide?: CreateSlideRequest;
/** Creates a new table. */
createTable?: CreateTableRequest;
/** Creates a video. */
createVideo?: CreateVideoRequest;
/** Deletes a page or page element from the presentation. */
deleteObject?: DeleteObjectRequest;
/** Deletes bullets from paragraphs. */
deleteParagraphBullets?: DeleteParagraphBulletsRequest;
/** Deletes a column from a table. */
deleteTableColumn?: DeleteTableColumnRequest;
/** Deletes a row from a table. */
deleteTableRow?: DeleteTableRowRequest;
/** Deletes text from a shape or a table cell. */
deleteText?: DeleteTextRequest;
/** Duplicates a slide or page element. */
duplicateObject?: DuplicateObjectRequest;
/** Inserts columns into a table. */
insertTableColumns?: InsertTableColumnsRequest;
/** Inserts rows into a table. */
insertTableRows?: InsertTableRowsRequest;
/** Inserts text into a shape or table cell. */
insertText?: InsertTextRequest;
/** Refreshes a Google Sheets chart. */
refreshSheetsChart?: RefreshSheetsChartRequest;
/** Replaces all shapes matching some criteria with an image. */
replaceAllShapesWithImage?: ReplaceAllShapesWithImageRequest;
/** Replaces all shapes matching some criteria with a Google Sheets chart. */
replaceAllShapesWithSheetsChart?: ReplaceAllShapesWithSheetsChartRequest;
/** Replaces all instances of specified text. */
replaceAllText?: ReplaceAllTextRequest;
/** Updates the properties of an Image. */
updateImageProperties?: UpdateImagePropertiesRequest;
/** Updates the properties of a Line. */
updateLineProperties?: UpdateLinePropertiesRequest;
/** Updates the transform of a page element. */
updatePageElementTransform?: UpdatePageElementTransformRequest;
/** Updates the properties of a Page. */
updatePageProperties?: UpdatePagePropertiesRequest;
/** Updates the styling of paragraphs within a Shape or Table. */
updateParagraphStyle?: UpdateParagraphStyleRequest;
/** Updates the properties of a Shape. */
updateShapeProperties?: UpdateShapePropertiesRequest;
/** Updates the position of a set of slides in the presentation. */
updateSlidesPosition?: UpdateSlidesPositionRequest;
/** Updates the properties of a TableCell. */
updateTableCellProperties?: UpdateTableCellPropertiesRequest;
/** Updates the styling of text within a Shape or Table. */
updateTextStyle?: UpdateTextStyleRequest;
/** Updates the properties of a Video. */
updateVideoProperties?: UpdateVideoPropertiesRequest;
}
interface Response {
/** The result of creating an image. */
createImage?: CreateImageResponse;
/** The result of creating a line. */
createLine?: CreateLineResponse;
/** The result of creating a shape. */
createShape?: CreateShapeResponse;
/** The result of creating a Google Sheets chart. */
createSheetsChart?: CreateSheetsChartResponse;
/** The result of creating a slide. */
createSlide?: CreateSlideResponse;
/** The result of creating a table. */
createTable?: CreateTableResponse;
/** The result of creating a video. */
createVideo?: CreateVideoResponse;
/** The result of duplicating an object. */
duplicateObject?: DuplicateObjectResponse;
/**
* The result of replacing all shapes matching some criteria with an
* image.
*/
replaceAllShapesWithImage?: ReplaceAllShapesWithImageResponse;
/**
* The result of replacing all shapes matching some criteria with a Google
* Sheets chart.
*/
replaceAllShapesWithSheetsChart?: ReplaceAllShapesWithSheetsChartResponse;
/** The result of replacing text. */
replaceAllText?: ReplaceAllTextResponse;
}
interface RgbColor {
/** The blue component of the color, from 0.0 to 1.0. */
blue?: number;
/** The green component of the color, from 0.0 to 1.0. */
green?: number;
/** The red component of the color, from 0.0 to 1.0. */
red?: number;
}
interface Shadow {
/**
* The alignment point of the shadow, that sets the origin for translate,
* scale and skew of the shadow.
*/
alignment?: string;
/** The alpha of the shadow's color, from 0.0 to 1.0. */
alpha?: number;
/**
* The radius of the shadow blur. The larger the radius, the more diffuse the
* shadow becomes.
*/
blurRadius?: Dimension;
/** The shadow color value. */
color?: OpaqueColor;
/**
* The shadow property state.
*
* Updating the the shadow on a page element will implicitly update this field
* to `RENDERED`, unless another value is specified in the same request. To
* have no shadow on a page element, set this field to `NOT_RENDERED`. In this
* case, any other shadow fields set in the same request will be ignored.
*/
propertyState?: string;
/** Whether the shadow should rotate with the shape. */
rotateWithShape?: boolean;
/**
* Transform that encodes the translate, scale, and skew of the shadow,
* relative to the alignment position.
*/
transform?: AffineTransform;
/** The type of the shadow. */
type?: string;
}
interface Shape {
/**
* Placeholders are shapes that are inherit from corresponding placeholders on
* layouts and masters.
*
* If set, the shape is a placeholder shape and any inherited properties
* can be resolved by looking at the parent placeholder identified by the
* Placeholder.parent_object_id field.
*/
placeholder?: Placeholder;
/** The properties of the shape. */
shapeProperties?: ShapeProperties;
/** The type of the shape. */
shapeType?: string;
/** The text content of the shape. */
text?: TextContent;
}
interface ShapeBackgroundFill {
/**
* The background fill property state.
*
* Updating the the fill on a shape will implicitly update this field to
* `RENDERED`, unless another value is specified in the same request. To
* have no fill on a shape, 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?: SolidFill;
}
interface ShapeProperties {
/**
* The hyperlink destination of the shape. If unset, there is no link. Links
* are not inherited from parent placeholders.
*/
link?: Link;
/**
* The outline of the shape. If unset, the outline is inherited from a
* parent placeholder if it exists. If the shape has no parent, then the
* default outline depends on the shape type, matching the defaults for
* new shapes created in the Slides editor.
*/
outline?: Outline;
/**
* The shadow properties of the shape. If unset, the shadow is inherited from
* a parent placeholder if it exists. If the shape has no parent, then the
* default shadow matches the defaults for new shapes created in the Slides
* editor. This property is read-only.
*/
shadow?: Shadow;
/**
* The background fill of the shape. If unset, the background fill is
* inherited from a parent placeholder if it exists. If the shape has no
* parent, then the default background fill depends on the shape type,
* matching the defaults for new shapes created in the Slides editor.
*/
shapeBackgroundFill?: ShapeBackgroundFill;
}
interface SheetsChart {
/**
* The ID of the specific chart in the Google Sheets spreadsheet that is
* embedded.
*/
chartId?: number;
/**
* The URL of an image of the embedded chart, 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 Sheets chart. */
sheetsChartProperties?: SheetsChartProperties;
/** The ID of the Google Sheets spreadsheet that contains the source chart. */
spreadsheetId?: string;
}
interface SheetsChartProperties {
/** The properties of the embedded chart image. */
chartImageProperties?: ImageProperties;
}
interface Size {
/** The height of the object. */
height?: Dimension;
/** The width of the object. */
width?: Dimension;
}
interface SlideProperties {
/** The object ID of the layout that this slide is based on. */
layoutObjectId?: string;
/** The object ID of the master that this slide is based on. */
masterObjectId?: string;
/**
* The notes page that this slide is associated with. It defines the visual
* appearance of a notes page when printing or exporting slides with speaker
* notes. A notes page inherits properties from the
* notes master.
* The placeholder shape with type BODY on the notes page contains the speaker
* notes for this slide. The ID of this shape is identified by the
* speakerNotesObjectId field.
* The notes page is read-only except for the text content and styles of the
* speaker notes shape.
*/
notesPage?: Page;
}
interface SolidFill {
/**
* The fraction of this `color` that should be applied to the pixel.
* That is, the final pixel color is defined by the equation:
*
* pixel color = alpha &#42; (color) + (1.0 - alpha) &#42; (background color)
*
* This means that a value of 1.0 corresponds to a solid color, whereas
* a value of 0.0 corresponds to a completely transparent color.
*/
alpha?: number;
/** The color value of the solid fill. */
color?: OpaqueColor;
}
interface StretchedPictureFill {
/**
* Reading the content_url:
*
* An URL to a picture with a default lifetime of 30 minutes.
* This URL is tagged with the account of the requester. Anyone with the URL
* effectively accesses the picture as the original requester. Access to the
* picture may be lost if the presentation's sharing settings change.
*
* Writing the content_url:
*
* The picture is fetched once at insertion time and a copy is stored for
* display inside the presentation. Pictures must be less than 50MB in size,
* cannot exceed 25 megapixels, and must be in either in PNG, JPEG, or GIF
* format.
*
* The provided URL can be at maximum 2K bytes large.
*/
contentUrl?: string;
/** The original size of the picture fill. This field is read-only. */
size?: Size;
}
interface SubstringMatchCriteria {
/**
* Indicates whether the search should respect case:
*
* - `True`: the search is case sensitive.
* - `False`: the search is case insensitive.
*/
matchCase?: boolean;
/** The text to search for in the shape or table. */
text?: string;
}
interface Table {
/** Number of columns in the table. */
columns?: number;
/** Number of rows in the table. */
rows?: number;
/** Properties of each column. */
tableColumns?: TableColumnProperties[];
/**
* Properties and contents of each row.
*
* Cells that span multiple rows are contained in only one of these rows and
* have a row_span greater
* than 1.
*/
tableRows?: TableRow[];
}
interface TableCell {
/** Column span of the cell. */
columnSpan?: number;
/** The location of the cell within the table. */
location?: TableCellLocation;
/** Row span of the cell. */
rowSpan?: number;
/** The properties of the table cell. */
tableCellProperties?: TableCellProperties;
/** The text content of the cell. */
text?: TextContent;
}
interface TableCellBackgroundFill {
/**
* The background fill property state.
*
* Updating the the fill on a table cell will implicitly update this field
* to `RENDERED`, unless another value is specified in the same request. To
* have no fill on a table cell, 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?: SolidFill;
}
interface TableCellLocation {
/** The 0-based column index. */
columnIndex?: number;
/** The 0-based row index. */
rowIndex?: number;
}
interface TableCellProperties {
/**
* The background fill of the table cell. The default fill matches the fill
* for newly created table cells in the Slides editor.
*/
tableCellBackgroundFill?: TableCellBackgroundFill;
}
interface TableColumnProperties {
/** Width of a column. */
columnWidth?: Dimension;
}
interface TableRange {
/** The column span of the table range. */
columnSpan?: number;
/** The starting location of the table range. */
location?: TableCellLocation;
/** The row span of the table range. */
rowSpan?: number;
}
interface TableRow {
/** Height of a row. */
rowHeight?: Dimension;
/**
* Properties and contents of each cell.
*
* Cells that span multiple columns are represented only once with a
* column_span greater
* than 1. As a result, the length of this collection does not always match
* the number of columns of the entire table.
*/
tableCells?: TableCell[];
}
interface TextContent {
/** The bulleted lists contained in this text, keyed by list ID. */
lists?: Record<string, List>;
/**
* The text contents broken down into its component parts, including styling
* information. This property is read-only.
*/
textElements?: TextElement[];
}
interface TextElement {
/**
* A TextElement representing a spot in the text that is dynamically
* replaced with content that can change over time.
*/
autoText?: AutoText;
/**
* The zero-based end index of this text element, exclusive, in Unicode code
* units.
*/
endIndex?: number;
/**
* A marker representing the beginning of a new paragraph.
*
* The `start_index` and `end_index` of this TextElement represent the
* range of the paragraph. Other TextElements with an index range contained
* inside this paragraph's range are considered to be part of this
* paragraph. The range of indices of two separate paragraphs will never
* overlap.
*/
paragraphMarker?: ParagraphMarker;
/** The zero-based start index of this text element, in Unicode code units. */
startIndex?: number;
/**
* A TextElement representing a run of text where all of the characters
* in the run have the same TextStyle.
*
* The `start_index` and `end_index` of TextRuns will always be fully
* contained in the index range of a single `paragraph_marker` TextElement.
* In other words, a TextRun will never span multiple paragraphs.
*/
textRun?: TextRun;
}
interface TextRun {
/** The text of this run. */
content?: string;
/** The styling applied to this run. */
style?: TextStyle;
}
interface TextStyle {
/**
* The background color of the text. If set, the color is either opaque or
* transparent, depending on if the `opaque_color` field in it is set.
*/
backgroundColor?: OptionalColor;
/**
* The text's vertical offset from its normal position.
*
* Text with `SUPERSCRIPT` or `SUBSCRIPT` baseline offsets is automatically
* rendered in a smaller font size, computed based on the `font_size` field.
* The `font_size` itself is not affected by changes in this field.
*/
baselineOffset?: string;
/** Whether or not the text is rendered as bold. */
bold?: boolean;
/**
* The font family of the text.
*
* The font family can be any font from the Font menu in Slides or from
* [Google Fonts] (https://fonts.google.com/). If the font name is
* unrecognized, the text is rendered in `Arial`.
*
* Some fonts can affect the weight of the text. If an update request
* specifies values for both `font_family` and `bold`, the explicitly-set
* `bold` value is used.
*/
fontFamily?: string;
/**
* The size of the text's font. When read, the `font_size` will specified in
* points.
*/
fontSize?: Dimension;
/**
* The color of the text itself. If set, the color is either opaque or
* transparent, depending on if the `opaque_color` field in it is set.
*/
foregroundColor?: OptionalColor;
/** Whether or not the text is italicized. */
italic?: boolean;
/**
* The hyperlink destination of the text. If unset, there is no link. Links
* are not inherited from parent text.
*
* Changing the link in an update request causes some other changes to the
* text style of the range:
*
* &#42; When setting a link, the text foreground color will be set to
* ThemeColorType.HYPERLINK and the text will
* be underlined. If these fields are modified in the same
* request, those values will be used instead of the link defaults.
* &#42; Setting a link on a text range that overlaps with an existing link will
* also update the existing link to point to the new URL.
* &#42; Links are not settable on newline characters. As a result, setting a link
* on a text range that crosses a paragraph boundary, such as `"ABC\n123"`,
* will separate the newline character(s) into their own text runs. The
* link will be applied separately to the runs before and after the newline.
* &#42; Removing a link will update the text style of the range to match the
* style of the preceding text (or the default text styles if the preceding
* text is another link) unless different styles are being set in the same
* request.
*/
link?: Link;
/** Whether or not the text is in small capital letters. */
smallCaps?: boolean;
/** Whether or not the text is struck through. */
strikethrough?: boolean;
/** Whether or not the text is underlined. */
underline?: boolean;
/**
* The font family and rendered weight of the text.
*
* This field is an extension of `font_family` meant to support explicit font
* weights without breaking backwards compatibility. As such, when reading the
* style of a range of text, the value of `weighted_font_family#font_family`
* will always be equal to that of `font_family`. However, when writing, if
* both fields are included in the field mask (either explicitly or through
* the wildcard `"&#42;"`), their values are reconciled as follows:
*
* &#42; If `font_family` is set and `weighted_font_family` is not, the value of
* `font_family` is applied with weight `400` ("normal").
* &#42; If both fields are set, the value of `font_family` must match that of
* `weighted_font_family#font_family`. If so, the font family and weight of
* `weighted_font_family` is applied. Otherwise, a 400 bad request error is
* returned.
* &#42; If `weighted_font_family` is set and `font_family` is not, the font
* family and weight of `weighted_font_family` is applied.
* &#42; If neither field is set, the font family and weight of the text inherit
* from the parent. Note that these properties cannot inherit separately
* from each other.
*
* If an update request specifies values for both `weighted_font_family` and
* `bold`, the `weighted_font_family` is applied first, then `bold`.
*
* If `weighted_font_family#weight` is not set, it defaults to `400`.
*
* If `weighted_font_family` is set, then `weighted_font_family#font_family`
* must also be set with a non-empty value. Otherwise, a 400 bad request error
* is returned.
*/
weightedFontFamily?: WeightedFontFamily;
}
interface ThemeColorPair {
/** The concrete color corresponding to the theme color type above. */
color?: RgbColor;
/** The type of the theme color. */
type?: string;
}
interface Thumbnail {
/**
* The content URL of the thumbnail image.
*
* The URL to the image has 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.
* The mime type of the thumbnail image is the same as specified in the
* `GetPageThumbnailRequest`.
*/
contentUrl?: string;
/** The positive height in pixels of the thumbnail image. */
height?: number;
/** The positive width in pixels of the thumbnail image. */
width?: number;
}
interface UpdateImagePropertiesRequest {
/**
* The fields that should be updated.
*
* At least one field must be specified. The root `imageProperties` is
* implied and should not be specified. A single `"&#42;"` can be used as
* short-hand for listing every field.
*
* For example to update the image outline color, set `fields` to
* `"outline.outlineFill.solidFill.color"`.
*
* To reset a property to its default value, include its field name in the
* field mask but leave the field itself unset.
*/
fields?: string;
/** The image properties to update. */
imageProperties?: ImageProperties;
/** The object ID of the image the updates are applied to. */
objectId?: string;
}
interface UpdateLinePropertiesRequest {
/**
* The fields that should be updated.
*
* At least one field must be specified. The root `lineProperties` is
* implied and should not be specified. A single `"&#42;"` can be used as
* short-hand for listing every field.
*
* For example to update the line solid fill color, set `fields` to
* `"lineFill.solidFill.color"`.
*
* To reset a property to its default value, include its field name in the
* field mask but leave the field itself unset.
*/
fields?: string;
/** The line properties to update. */
lineProperties?: LineProperties;
/** The object ID of the line the update is applied to. */
objectId?: string;
}
interface UpdatePageElementTransformRequest {
/** The apply mode of the transform update. */
applyMode?: string;
/** The object ID of the page element to update. */
objectId?: string;
/** The input transform matrix used to update the page element. */
transform?: AffineTransform;
}
interface UpdatePagePropertiesRequest {
/**
* The fields that should be updated.
*
* At least one field must be specified. The root `pageProperties` is
* implied and should not be specified. A single `"&#42;"` can be used as
* short-hand for listing every field.
*
* For example to update the page background solid fill color, set `fields`
* to `"pageBackgroundFill.solidFill.color"`.
*
* To reset a property to its default value, include its field name in the
* field mask but leave the field itself unset.
*/
fields?: string;
/** The object ID of the page the update is applied to. */
objectId?: string;
/** The page properties to update. */
pageProperties?: PageProperties;
}
interface UpdateParagraphStyleRequest {
/**
* The location of the cell in the table containing the paragraph(s) to
* style. If `object_id` refers to a table, `cell_location` must have a value.
* Otherwise, it must not.
*/
cellLocation?: TableCellLocation;
/**
* The fields that should be updated.
*
* At least one field must be specified. The root `style` is implied and
* should not be specified. A single `"&#42;"` can be used as short-hand for
* listing every field.
*
* For example, to update the paragraph alignment, set `fields` to
* `"alignment"`.
*
* To reset a property to its default value, include its field name in the
* field mask but leave the field itself unset.
*/
fields?: string;
/** The object ID of the shape or table with the text to be styled. */
objectId?: string;
/** The paragraph's style. */
style?: ParagraphStyle;
/** The range of text containing the paragraph(s) to style. */
textRange?: Range;
}
interface UpdateShapePropertiesRequest {
/**
* The fields that should be updated.
*
* At least one field must be specified. The root `shapeProperties` is
* implied and should not be specified. A single `"&#42;"` can be used as
* short-hand for listing every field.
*
* For example to update the shape background solid fill color, set `fields`
* to `"shapeBackgroundFill.solidFill.color"`.
*
* To reset a property to its default value, include its field name in the
* field mask but leave the field itself unset.
*/
fields?: string;
/** The object ID of the shape the updates are applied to. */
objectId?: string;
/** The shape properties to update. */
shapeProperties?: ShapeProperties;
}
interface UpdateSlidesPositionRequest {
/**
* The index where the slides should be inserted, based on the slide
* arrangement before the move takes place. Must be between zero and the
* number of slides in the presentation, inclusive.
*/
insertionIndex?: number;
/**
* The IDs of the slides in the presentation that should be moved.
* The slides in this list must be in existing presentation order, without
* duplicates.
*/
slideObjectIds?: string[];
}
interface UpdateTableCellPropertiesRequest {
/**
* The fields that should be updated.
*
* At least one field must be specified. The root `tableCellProperties` is
* implied and should not be specified. A single `"&#42;"` can be used as
* short-hand for listing every field.
*
* For example to update the table cell background solid fill color, set
* `fields` to `"tableCellBackgroundFill.solidFill.color"`.
*
* To reset a property to its default value, include its field name in the
* field mask but leave the field itself unset.
*/
fields?: string;
/** The object ID of the table. */
objectId?: string;
/** The table cell properties to update. */
tableCellProperties?: TableCellProperties;
/**
* The table range representing the subset of the table to which the updates
* are applied. If a table range is not specified, the updates will apply to
* the entire table.
*/
tableRange?: TableRange;
}
interface UpdateTextStyleRequest {
/**
* The location of the cell in the table containing the text to style. If
* `object_id` refers to a table, `cell_location` must have a value.
* Otherwise, it must not.
*/
cellLocation?: TableCellLocation;
/**
* The fields that should be updated.
*
* At least one field must be specified. The root `style` is implied and
* should not be specified. A single `"&#42;"` can be used as short-hand for
* listing every field.
*
* For example, to update the text style to bold, set `fields` to `"bold"`.
*
* To reset a property to its default value, include its field name in the
* field mask but leave the field itself unset.
*/
fields?: string;
/** The object ID of the shape or table with the text to be styled. */
objectId?: string;
/**
* The style(s) to set on the text.
*
* If the value for a particular style matches that of the parent, that style
* will be set to inherit.
*
* Certain text style changes may cause other changes meant to mirror the
* behavior of the Slides editor. See the documentation of
* TextStyle for more information.
*/
style?: TextStyle;
/**
* The range of text to style.
*
* The range may be extended to include adjacent newlines.
*
* If the range fully contains a paragraph belonging to a list, the
* paragraph's bullet is also updated with the matching text style.
*/
textRange?: Range;
}
interface UpdateVideoPropertiesRequest {
/**
* The fields that should be updated.
*
* At least one field must be specified. The root `videoProperties` is
* implied and should not be specified. A single `"&#42;"` can be used as
* short-hand for listing every field.
*
* For example to update the video outline color, set `fields` to
* `"outline.outlineFill.solidFill.color"`.
*
* To reset a property to its default value, include its field name in the
* field mask but leave the field itself unset.
*/
fields?: string;
/** The object ID of the video the updates are applied to. */
objectId?: string;
/** The video properties to update. */
videoProperties?: VideoProperties;
}
interface Video {
/** The video source's unique identifier for this video. */
id?: string;
/** The video source. */
source?: string;
/**
* An URL to a video. The URL is valid as long as the source video
* exists and sharing settings do not change.
*/
url?: string;
/** The properties of the video. */
videoProperties?: VideoProperties;
}
interface VideoProperties {
/**
* The outline of the video. The default outline matches the defaults for new
* videos created in the Slides editor.
*/
outline?: Outline;
}
interface WeightedFontFamily {
/**
* The font family of the text.
*
* The font family can be any font from the Font menu in Slides or from
* [Google Fonts] (https://fonts.google.com/). If the font name is
* unrecognized, the text is rendered in `Arial`.
*/
fontFamily?: string;
/**
* The rendered weight of the text. This field can have any value that is a
* multiple of `100` between `100` and `900`, inclusive. This range
* corresponds to the numerical values described in the CSS 2.1
* Specification, [section 15.6](https://www.w3.org/TR/CSS21/fonts.html#font-boldness),
* with non-numerical values disallowed. Weights greater than or equal to
* `700` are considered bold, and weights less than `700`are not bold. The
* default value is `400` ("normal").
*/
weight?: number;
}
interface WordArt {
/** The text rendered as word art. */
renderedText?: string;
}
interface WriteControl {
/**
* The revision ID of the presentation required for the write request. If
* specified and the `required_revision_id` doesn't exactly match the
* presentation's current `revision_id`, the request will not be processed and
* will return a 400 bad request error.
*/
requiredRevisionId?: string;
}
interface PagesResource {
/** Gets the latest version of the specified page in the presentation. */
get(request: {
/** V1 error format. */
"$.xgafv"?: string;
/** OAuth access token. */
access_token?: string;
/** Data format for response. */
alt?: string;
/** OAuth bearer token. */
bearer_token?: string;
/** JSONP */
callback?: string;
/** Selector specifying which fields to include in a partial response. */
fields?: string;
/** API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token. */
key?: string;
/** OAuth 2.0 token for the current user. */
oauth_token?: string;
/** The object ID of the page to retrieve. */
pageObjectId: string;
/** Pretty-print response. */
pp?: boolean;
/** The ID of the presentation to retrieve. */
presentationId: string;
/** Returns response with indentations and line breaks. */
prettyPrint?: boolean;
/** 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. */
quotaUser?: string;
/** Legacy upload protocol for media (e.g. "media", "multipart"). */
uploadType?: string;
/** Upload protocol for media (e.g. "raw", "multipart"). */
upload_protocol?: string;
}): client.Request<Page>;
/**
* Generates a thumbnail of the latest version of the specified page in the
* presentation and returns a URL to the thumbnail image.
*/
getThumbnail(request: {
/** V1 error format. */
"$.xgafv"?: string;
/** OAuth access token. */
access_token?: string;
/** Data format for response. */
alt?: string;
/** OAuth bearer token. */
bearer_token?: string;
/** JSONP */
callback?: string;
/** Selector specifying which fields to include in a partial response. */
fields?: string;
/** API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token. */
key?: string;
/** OAuth 2.0 token for the current user. */
oauth_token?: string;
/** The object ID of the page whose thumbnail to retrieve. */
pageObjectId: string;
/** Pretty-print response. */
pp?: boolean;
/** The ID of the presentation to retrieve. */
presentationId: string;
/** Returns response with indentations and line breaks. */
prettyPrint?: boolean;
/** 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. */
quotaUser?: string;
/**
* The optional mime type of the thumbnail image.
*
* If you don't specify the mime type, the default mime type will be PNG.
*/
"thumbnailProperties.mimeType"?: string;
/**
* The optional thumbnail image size.
*
* If you don't specify the size, the server chooses a default size of the
* image.
*/
"thumbnailProperties.thumbnailSize"?: string;
/** Legacy upload protocol for media (e.g. "media", "multipart"). */
uploadType?: string;
/** Upload protocol for media (e.g. "raw", "multipart"). */
upload_protocol?: string;
}): client.Request<Thumbnail>;
}
interface PresentationsResource {
/**
* Applies one or more updates to the presentation.
*
* Each request is validated before
* being applied. If any request is not valid, then the entire request will
* fail and nothing will be applied.
*
* Some requests have replies to
* give you some information about how they are applied. Other requests do
* not need to return information; these each return an empty reply.
* The order of replies matches that of the requests.
*
* For example, suppose you call batchUpdate with four updates, and only the
* third one returns information. The response would have two empty replies:
* the reply to the third request, and another empty reply, in that order.
*
* Because other users may be editing the presentation, the presentation
* might not exactly reflect your changes: your changes may
* be altered with respect to collaborator changes. If there are no
* collaborators, the presentation should reflect your changes. In any case,
* the updates in your request are guaranteed to be applied together
* atomically.
*/
batchUpdate(request: {
/** V1 error format. */
"$.xgafv"?: string;
/** OAuth access token. */
access_token?: string;
/** Data format for response. */
alt?: string;
/** OAuth bearer token. */
bearer_token?: string;
/** JSONP */
callback?: string;
/** Selector specifying which fields to include in a partial response. */
fields?: string;
/** API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token. */
key?: string;
/** OAuth 2.0 token for the current user. */
oauth_token?: string;
/** Pretty-print response. */
pp?: boolean;
/** The presentation to apply the updates to. */
presentationId: string;
/** Returns response with indentations and line breaks. */
prettyPrint?: boolean;
/** 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. */
quotaUser?: string;
/** Legacy upload protocol for media (e.g. "media", "multipart"). */
uploadType?: string;
/** Upload protocol for media (e.g. "raw", "multipart"). */
upload_protocol?: string;
}): client.Request<BatchUpdatePresentationResponse>;
/**
* Creates a new presentation using the title given in the request. Other
* fields in the request are ignored.
* Returns the created presentation.
*/
create(request: {
/** V1 error format. */
"$.xgafv"?: string;
/** OAuth access token. */
access_token?: string;
/** Data format for response. */
alt?: string;
/** OAuth bearer token. */
bearer_token?: string;
/** JSONP */
callback?: string;
/** Selector specifying which fields to include in a partial response. */
fields?: string;
/** API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token. */
key?: string;
/** OAuth 2.0 token for the current user. */
oauth_token?: string;
/** Pretty-print response. */
pp?: boolean;
/** Returns response with indentations and line breaks. */
prettyPrint?: boolean;
/** 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. */
quotaUser?: string;
/** Legacy upload protocol for media (e.g. "media", "multipart"). */
uploadType?: string;
/** Upload protocol for media (e.g. "raw", "multipart"). */
upload_protocol?: string;
}): client.Request<Presentation>;
/** Gets the latest version of the specified presentation. */
get(request: {
/** V1 error format. */
"$.xgafv"?: string;
/** OAuth access token. */
access_token?: string;
/** Data format for response. */
alt?: string;
/** OAuth bearer token. */
bearer_token?: string;
/** JSONP */
callback?: string;
/** Selector specifying which fields to include in a partial response. */
fields?: string;
/** API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token. */
key?: string;
/** OAuth 2.0 token for the current user. */
oauth_token?: string;
/** Pretty-print response. */
pp?: boolean;
/** The ID of the presentation to retrieve. */
presentationId: string;
/** Returns response with indentations and line breaks. */
prettyPrint?: boolean;
/** 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. */
quotaUser?: string;
/** Legacy upload protocol for media (e.g. "media", "multipart"). */
uploadType?: string;
/** Upload protocol for media (e.g. "raw", "multipart"). */
upload_protocol?: string;
}): client.Request<Presentation>;
pages: PagesResource;
}
}
}