@@ -0,0 +1,7039 @@
1+{-# LANGUAGE DeriveDataTypeable #-}
2+{-# LANGUAGE DeriveGeneric #-}
3+{-# LANGUAGE NoImplicitPrelude #-}
4+{-# LANGUAGE OverloadedStrings #-}
5+{-# LANGUAGE RecordWildCards #-}
6+
7+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
8+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
9+
10+-- |
11+-- Module : Network.Google.Slides.Types.Product
12+-- Copyright : (c) 2015-2016 Brendan Hay
13+-- License : Mozilla Public License, v. 2.0.
14+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>
15+-- Stability : auto-generated
16+-- Portability : non-portable (GHC extensions)
17+--
18+module Network.Google.Slides.Types.Product where
19+
20+import Network.Google.Prelude
21+import Network.Google.Slides.Types.Sum
22+
23+-- | A TextElement kind that represents the beginning of a new paragraph.
24+--
25+-- /See:/ 'paragraphMarker' smart constructor.
26+data ParagraphMarker = ParagraphMarker'
27+ { _pmStyle :: !(Maybe ParagraphStyle)
28+ , _pmBullet :: !(Maybe Bullet)
29+ } deriving (Eq,Show,Data,Typeable,Generic)
30+
31+-- | Creates a value of 'ParagraphMarker' with the minimum fields required to make a request.
32+--
33+-- Use one of the following lenses to modify other fields as desired:
34+--
35+-- * 'pmStyle'
36+--
37+-- * 'pmBullet'
38+paragraphMarker
39+ :: ParagraphMarker
40+paragraphMarker =
41+ ParagraphMarker'
42+ { _pmStyle = Nothing
43+ , _pmBullet = Nothing
44+ }
45+
46+-- | The paragraph\'s style
47+pmStyle :: Lens' ParagraphMarker (Maybe ParagraphStyle)
48+pmStyle = lens _pmStyle (\ s a -> s{_pmStyle = a})
49+
50+-- | The bullet for this paragraph. If not present, the paragraph does not
51+-- belong to a list.
52+pmBullet :: Lens' ParagraphMarker (Maybe Bullet)
53+pmBullet = lens _pmBullet (\ s a -> s{_pmBullet = a})
54+
55+instance FromJSON ParagraphMarker where
56+ parseJSON
57+ = withObject "ParagraphMarker"
58+ (\ o ->
59+ ParagraphMarker' <$>
60+ (o .:? "style") <*> (o .:? "bullet"))
61+
62+instance ToJSON ParagraphMarker where
63+ toJSON ParagraphMarker'{..}
64+ = object
65+ (catMaybes
66+ [("style" .=) <$> _pmStyle,
67+ ("bullet" .=) <$> _pmBullet])
68+
69+-- | Deletes a row from a table.
70+--
71+-- /See:/ 'deleteTableRowRequest' smart constructor.
72+data DeleteTableRowRequest = DeleteTableRowRequest'
73+ { _dtrrCellLocation :: !(Maybe TableCellLocation)
74+ , _dtrrTableObjectId :: !(Maybe Text)
75+ } deriving (Eq,Show,Data,Typeable,Generic)
76+
77+-- | Creates a value of 'DeleteTableRowRequest' with the minimum fields required to make a request.
78+--
79+-- Use one of the following lenses to modify other fields as desired:
80+--
81+-- * 'dtrrCellLocation'
82+--
83+-- * 'dtrrTableObjectId'
84+deleteTableRowRequest
85+ :: DeleteTableRowRequest
86+deleteTableRowRequest =
87+ DeleteTableRowRequest'
88+ { _dtrrCellLocation = Nothing
89+ , _dtrrTableObjectId = Nothing
90+ }
91+
92+-- | The reference table cell location from which a row will be deleted. The
93+-- row this cell spans will be deleted. If this is a merged cell, multiple
94+-- rows will be deleted. If no rows remain in the table after this
95+-- deletion, the whole table is deleted.
96+dtrrCellLocation :: Lens' DeleteTableRowRequest (Maybe TableCellLocation)
97+dtrrCellLocation
98+ = lens _dtrrCellLocation
99+ (\ s a -> s{_dtrrCellLocation = a})
100+
101+-- | The table to delete rows from.
102+dtrrTableObjectId :: Lens' DeleteTableRowRequest (Maybe Text)
103+dtrrTableObjectId
104+ = lens _dtrrTableObjectId
105+ (\ s a -> s{_dtrrTableObjectId = a})
106+
107+instance FromJSON DeleteTableRowRequest where
108+ parseJSON
109+ = withObject "DeleteTableRowRequest"
110+ (\ o ->
111+ DeleteTableRowRequest' <$>
112+ (o .:? "cellLocation") <*> (o .:? "tableObjectId"))
113+
114+instance ToJSON DeleteTableRowRequest where
115+ toJSON DeleteTableRowRequest'{..}
116+ = object
117+ (catMaybes
118+ [("cellLocation" .=) <$> _dtrrCellLocation,
119+ ("tableObjectId" .=) <$> _dtrrTableObjectId])
120+
121+-- | Common properties for a page element. Note: When you initially create a
122+-- PageElement, the API may modify the values of both \`size\` and
123+-- \`transform\`, but the visual size will be unchanged.
124+--
125+-- /See:/ 'pageElementProperties' smart constructor.
126+data PageElementProperties = PageElementProperties'
127+ { _pepTransform :: !(Maybe AffineTransform)
128+ , _pepSize :: !(Maybe Size)
129+ , _pepPageObjectId :: !(Maybe Text)
130+ } deriving (Eq,Show,Data,Typeable,Generic)
131+
132+-- | Creates a value of 'PageElementProperties' with the minimum fields required to make a request.
133+--
134+-- Use one of the following lenses to modify other fields as desired:
135+--
136+-- * 'pepTransform'
137+--
138+-- * 'pepSize'
139+--
140+-- * 'pepPageObjectId'
141+pageElementProperties
142+ :: PageElementProperties
143+pageElementProperties =
144+ PageElementProperties'
145+ { _pepTransform = Nothing
146+ , _pepSize = Nothing
147+ , _pepPageObjectId = Nothing
148+ }
149+
150+-- | The transform for the element.
151+pepTransform :: Lens' PageElementProperties (Maybe AffineTransform)
152+pepTransform
153+ = lens _pepTransform (\ s a -> s{_pepTransform = a})
154+
155+-- | The size of the element.
156+pepSize :: Lens' PageElementProperties (Maybe Size)
157+pepSize = lens _pepSize (\ s a -> s{_pepSize = a})
158+
159+-- | The object ID of the page where the element is located.
160+pepPageObjectId :: Lens' PageElementProperties (Maybe Text)
161+pepPageObjectId
162+ = lens _pepPageObjectId
163+ (\ s a -> s{_pepPageObjectId = a})
164+
165+instance FromJSON PageElementProperties where
166+ parseJSON
167+ = withObject "PageElementProperties"
168+ (\ o ->
169+ PageElementProperties' <$>
170+ (o .:? "transform") <*> (o .:? "size") <*>
171+ (o .:? "pageObjectId"))
172+
173+instance ToJSON PageElementProperties where
174+ toJSON PageElementProperties'{..}
175+ = object
176+ (catMaybes
177+ [("transform" .=) <$> _pepTransform,
178+ ("size" .=) <$> _pepSize,
179+ ("pageObjectId" .=) <$> _pepPageObjectId])
180+
181+-- | The result of replacing shapes with an image.
182+--
183+-- /See:/ 'replaceAllShapesWithImageResponse' smart constructor.
184+newtype ReplaceAllShapesWithImageResponse = ReplaceAllShapesWithImageResponse'
185+ { _raswirOccurrencesChanged :: Maybe (Textual Int32)
186+ } deriving (Eq,Show,Data,Typeable,Generic)
187+
188+-- | Creates a value of 'ReplaceAllShapesWithImageResponse' with the minimum fields required to make a request.
189+--
190+-- Use one of the following lenses to modify other fields as desired:
191+--
192+-- * 'raswirOccurrencesChanged'
193+replaceAllShapesWithImageResponse
194+ :: ReplaceAllShapesWithImageResponse
195+replaceAllShapesWithImageResponse =
196+ ReplaceAllShapesWithImageResponse'
197+ { _raswirOccurrencesChanged = Nothing
198+ }
199+
200+-- | The number of shapes replaced with images.
201+raswirOccurrencesChanged :: Lens' ReplaceAllShapesWithImageResponse (Maybe Int32)
202+raswirOccurrencesChanged
203+ = lens _raswirOccurrencesChanged
204+ (\ s a -> s{_raswirOccurrencesChanged = a})
205+ . mapping _Coerce
206+
207+instance FromJSON ReplaceAllShapesWithImageResponse
208+ where
209+ parseJSON
210+ = withObject "ReplaceAllShapesWithImageResponse"
211+ (\ o ->
212+ ReplaceAllShapesWithImageResponse' <$>
213+ (o .:? "occurrencesChanged"))
214+
215+instance ToJSON ReplaceAllShapesWithImageResponse
216+ where
217+ toJSON ReplaceAllShapesWithImageResponse'{..}
218+ = object
219+ (catMaybes
220+ [("occurrencesChanged" .=) <$>
221+ _raswirOccurrencesChanged])
222+
223+-- | The fill of the outline.
224+--
225+-- /See:/ 'outlineFill' smart constructor.
226+newtype OutlineFill = OutlineFill'
227+ { _ofSolidFill :: Maybe SolidFill
228+ } deriving (Eq,Show,Data,Typeable,Generic)
229+
230+-- | Creates a value of 'OutlineFill' with the minimum fields required to make a request.
231+--
232+-- Use one of the following lenses to modify other fields as desired:
233+--
234+-- * 'ofSolidFill'
235+outlineFill
236+ :: OutlineFill
237+outlineFill =
238+ OutlineFill'
239+ { _ofSolidFill = Nothing
240+ }
241+
242+-- | Solid color fill.
243+ofSolidFill :: Lens' OutlineFill (Maybe SolidFill)
244+ofSolidFill
245+ = lens _ofSolidFill (\ s a -> s{_ofSolidFill = a})
246+
247+instance FromJSON OutlineFill where
248+ parseJSON
249+ = withObject "OutlineFill"
250+ (\ o -> OutlineFill' <$> (o .:? "solidFill"))
251+
252+instance ToJSON OutlineFill where
253+ toJSON OutlineFill'{..}
254+ = object
255+ (catMaybes [("solidFill" .=) <$> _ofSolidFill])
256+
257+-- | A PageElement kind representing an image.
258+--
259+-- /See:/ 'image' smart constructor.
260+data Image = Image'
261+ { _iImageProperties :: !(Maybe ImageProperties)
262+ , _iContentURL :: !(Maybe Text)
263+ } deriving (Eq,Show,Data,Typeable,Generic)
264+
265+-- | Creates a value of 'Image' with the minimum fields required to make a request.
266+--
267+-- Use one of the following lenses to modify other fields as desired:
268+--
269+-- * 'iImageProperties'
270+--
271+-- * 'iContentURL'
272+image
273+ :: Image
274+image =
275+ Image'
276+ { _iImageProperties = Nothing
277+ , _iContentURL = Nothing
278+ }
279+
280+-- | The properties of the image.
281+iImageProperties :: Lens' Image (Maybe ImageProperties)
282+iImageProperties
283+ = lens _iImageProperties
284+ (\ s a -> s{_iImageProperties = a})
285+
286+-- | An URL to an image with a default lifetime of 30 minutes. This URL is
287+-- tagged with the account of the requester. Anyone with the URL
288+-- effectively accesses the image as the original requester. Access to the
289+-- image may be lost if the presentation\'s sharing settings change.
290+iContentURL :: Lens' Image (Maybe Text)
291+iContentURL
292+ = lens _iContentURL (\ s a -> s{_iContentURL = a})
293+
294+instance FromJSON Image where
295+ parseJSON
296+ = withObject "Image"
297+ (\ o ->
298+ Image' <$>
299+ (o .:? "imageProperties") <*> (o .:? "contentUrl"))
300+
301+instance ToJSON Image where
302+ toJSON Image'{..}
303+ = object
304+ (catMaybes
305+ [("imageProperties" .=) <$> _iImageProperties,
306+ ("contentUrl" .=) <$> _iContentURL])
307+
308+-- | Updates the properties of a Line.
309+--
310+-- /See:/ 'updateLinePropertiesRequest' smart constructor.
311+data UpdateLinePropertiesRequest = UpdateLinePropertiesRequest'
312+ { _ulprLineProperties :: !(Maybe LineProperties)
313+ , _ulprObjectId :: !(Maybe Text)
314+ , _ulprFields :: !(Maybe FieldMask)
315+ } deriving (Eq,Show,Data,Typeable,Generic)
316+
317+-- | Creates a value of 'UpdateLinePropertiesRequest' with the minimum fields required to make a request.
318+--
319+-- Use one of the following lenses to modify other fields as desired:
320+--
321+-- * 'ulprLineProperties'
322+--
323+-- * 'ulprObjectId'
324+--
325+-- * 'ulprFields'
326+updateLinePropertiesRequest
327+ :: UpdateLinePropertiesRequest
328+updateLinePropertiesRequest =
329+ UpdateLinePropertiesRequest'
330+ { _ulprLineProperties = Nothing
331+ , _ulprObjectId = Nothing
332+ , _ulprFields = Nothing
333+ }
334+
335+-- | The line properties to update.
336+ulprLineProperties :: Lens' UpdateLinePropertiesRequest (Maybe LineProperties)
337+ulprLineProperties
338+ = lens _ulprLineProperties
339+ (\ s a -> s{_ulprLineProperties = a})
340+
341+-- | The object ID of the line the update is applied to.
342+ulprObjectId :: Lens' UpdateLinePropertiesRequest (Maybe Text)
343+ulprObjectId
344+ = lens _ulprObjectId (\ s a -> s{_ulprObjectId = a})
345+
346+-- | The fields that should be updated. At least one field must be specified.
347+-- The root \`lineProperties\` is implied and should not be specified. A
348+-- single \`\"*\"\` can be used as short-hand for listing every field. For
349+-- example to update the line solid fill color, set \`fields\` to
350+-- \`\"lineFill.solidFill.color\"\`. To reset a property to its default
351+-- value, include its field name in the field mask but leave the field
352+-- itself unset.
353+ulprFields :: Lens' UpdateLinePropertiesRequest (Maybe FieldMask)
354+ulprFields
355+ = lens _ulprFields (\ s a -> s{_ulprFields = a})
356+
357+instance FromJSON UpdateLinePropertiesRequest where
358+ parseJSON
359+ = withObject "UpdateLinePropertiesRequest"
360+ (\ o ->
361+ UpdateLinePropertiesRequest' <$>
362+ (o .:? "lineProperties") <*> (o .:? "objectId") <*>
363+ (o .:? "fields"))
364+
365+instance ToJSON UpdateLinePropertiesRequest where
366+ toJSON UpdateLinePropertiesRequest'{..}
367+ = object
368+ (catMaybes
369+ [("lineProperties" .=) <$> _ulprLineProperties,
370+ ("objectId" .=) <$> _ulprObjectId,
371+ ("fields" .=) <$> _ulprFields])
372+
373+-- | The crop properties of an object enclosed in a container. For example,
374+-- an Image. The crop properties is represented by the offsets of four
375+-- edges which define a crop rectangle. The offsets are measured in
376+-- percentage from the corresponding edges of the object\'s original
377+-- bounding rectangle towards inside, relative to the object\'s original
378+-- dimensions. - If the offset is in the interval (0, 1), the corresponding
379+-- edge of crop rectangle is positioned inside of the object\'s original
380+-- bounding rectangle. - If the offset is negative or greater than 1, the
381+-- corresponding edge of crop rectangle is positioned outside of the
382+-- object\'s original bounding rectangle. - If the left edge of the crop
383+-- rectangle is on the right side of its right edge, the object will be
384+-- flipped horizontally. - If the top edge of the crop rectangle is below
385+-- its bottom edge, the object will be flipped vertically. - If all offsets
386+-- and rotation angle is 0, the object is not cropped. After cropping, the
387+-- content in the crop rectangle will be stretched to fit its container.
388+--
389+-- /See:/ 'cropProperties' smart constructor.
390+data CropProperties = CropProperties'
391+ { _cpBottomOffSet :: !(Maybe (Textual Double))
392+ , _cpTopOffSet :: !(Maybe (Textual Double))
393+ , _cpAngle :: !(Maybe (Textual Double))
394+ , _cpRightOffSet :: !(Maybe (Textual Double))
395+ , _cpLeftOffSet :: !(Maybe (Textual Double))
396+ } deriving (Eq,Show,Data,Typeable,Generic)
397+
398+-- | Creates a value of 'CropProperties' with the minimum fields required to make a request.
399+--
400+-- Use one of the following lenses to modify other fields as desired:
401+--
402+-- * 'cpBottomOffSet'
403+--
404+-- * 'cpTopOffSet'
405+--
406+-- * 'cpAngle'
407+--
408+-- * 'cpRightOffSet'
409+--
410+-- * 'cpLeftOffSet'
411+cropProperties
412+ :: CropProperties
413+cropProperties =
414+ CropProperties'
415+ { _cpBottomOffSet = Nothing
416+ , _cpTopOffSet = Nothing
417+ , _cpAngle = Nothing
418+ , _cpRightOffSet = Nothing
419+ , _cpLeftOffSet = Nothing
420+ }
421+
422+-- | The offset specifies the bottom edge of the crop rectangle that is
423+-- located above the original bounding rectangle bottom edge, relative to
424+-- the object\'s original height.
425+cpBottomOffSet :: Lens' CropProperties (Maybe Double)
426+cpBottomOffSet
427+ = lens _cpBottomOffSet
428+ (\ s a -> s{_cpBottomOffSet = a})
429+ . mapping _Coerce
430+
431+-- | The offset specifies the top edge of the crop rectangle that is located
432+-- below the original bounding rectangle top edge, relative to the
433+-- object\'s original height.
434+cpTopOffSet :: Lens' CropProperties (Maybe Double)
435+cpTopOffSet
436+ = lens _cpTopOffSet (\ s a -> s{_cpTopOffSet = a}) .
437+ mapping _Coerce
438+
439+-- | The rotation angle of the crop window around its center, in radians.
440+-- Rotation angle is applied after the offset.
441+cpAngle :: Lens' CropProperties (Maybe Double)
442+cpAngle
443+ = lens _cpAngle (\ s a -> s{_cpAngle = a}) .
444+ mapping _Coerce
445+
446+-- | The offset specifies the right edge of the crop rectangle that is
447+-- located to the left of the original bounding rectangle right edge,
448+-- relative to the object\'s original width.
449+cpRightOffSet :: Lens' CropProperties (Maybe Double)
450+cpRightOffSet
451+ = lens _cpRightOffSet
452+ (\ s a -> s{_cpRightOffSet = a})
453+ . mapping _Coerce
454+
455+-- | The offset specifies the left edge of the crop rectangle that is located
456+-- to the right of the original bounding rectangle left edge, relative to
457+-- the object\'s original width.
458+cpLeftOffSet :: Lens' CropProperties (Maybe Double)
459+cpLeftOffSet
460+ = lens _cpLeftOffSet (\ s a -> s{_cpLeftOffSet = a})
461+ . mapping _Coerce
462+
463+instance FromJSON CropProperties where
464+ parseJSON
465+ = withObject "CropProperties"
466+ (\ o ->
467+ CropProperties' <$>
468+ (o .:? "bottomOffset") <*> (o .:? "topOffset") <*>
469+ (o .:? "angle")
470+ <*> (o .:? "rightOffset")
471+ <*> (o .:? "leftOffset"))
472+
473+instance ToJSON CropProperties where
474+ toJSON CropProperties'{..}
475+ = object
476+ (catMaybes
477+ [("bottomOffset" .=) <$> _cpBottomOffSet,
478+ ("topOffset" .=) <$> _cpTopOffSet,
479+ ("angle" .=) <$> _cpAngle,
480+ ("rightOffset" .=) <$> _cpRightOffSet,
481+ ("leftOffset" .=) <$> _cpLeftOffSet])
482+
483+-- | The properties of the Line. When unset, these fields default to values
484+-- that match the appearance of new lines created in the Slides editor.
485+--
486+-- /See:/ 'lineProperties' smart constructor.
487+data LineProperties = LineProperties'
488+ { _lpWeight :: !(Maybe Dimension)
489+ , _lpLink :: !(Maybe Link)
490+ , _lpDashStyle :: !(Maybe LinePropertiesDashStyle)
491+ , _lpStartArrow :: !(Maybe LinePropertiesStartArrow)
492+ , _lpLineFill :: !(Maybe LineFill)
493+ , _lpEndArrow :: !(Maybe LinePropertiesEndArrow)
494+ } deriving (Eq,Show,Data,Typeable,Generic)
495+
496+-- | Creates a value of 'LineProperties' with the minimum fields required to make a request.
497+--
498+-- Use one of the following lenses to modify other fields as desired:
499+--
500+-- * 'lpWeight'
501+--
502+-- * 'lpLink'
503+--
504+-- * 'lpDashStyle'
505+--
506+-- * 'lpStartArrow'
507+--
508+-- * 'lpLineFill'
509+--
510+-- * 'lpEndArrow'
511+lineProperties
512+ :: LineProperties
513+lineProperties =
514+ LineProperties'
515+ { _lpWeight = Nothing
516+ , _lpLink = Nothing
517+ , _lpDashStyle = Nothing
518+ , _lpStartArrow = Nothing
519+ , _lpLineFill = Nothing
520+ , _lpEndArrow = Nothing
521+ }
522+
523+-- | The thickness of the line.
524+lpWeight :: Lens' LineProperties (Maybe Dimension)
525+lpWeight = lens _lpWeight (\ s a -> s{_lpWeight = a})
526+
527+-- | The hyperlink destination of the line. If unset, there is no link.
528+lpLink :: Lens' LineProperties (Maybe Link)
529+lpLink = lens _lpLink (\ s a -> s{_lpLink = a})
530+
531+-- | The dash style of the line.
532+lpDashStyle :: Lens' LineProperties (Maybe LinePropertiesDashStyle)
533+lpDashStyle
534+ = lens _lpDashStyle (\ s a -> s{_lpDashStyle = a})
535+
536+-- | The style of the arrow at the beginning of the line.
537+lpStartArrow :: Lens' LineProperties (Maybe LinePropertiesStartArrow)
538+lpStartArrow
539+ = lens _lpStartArrow (\ s a -> s{_lpStartArrow = a})
540+
541+-- | The fill of the line. The default line fill matches the defaults for new
542+-- lines created in the Slides editor.
543+lpLineFill :: Lens' LineProperties (Maybe LineFill)
544+lpLineFill
545+ = lens _lpLineFill (\ s a -> s{_lpLineFill = a})
546+
547+-- | The style of the arrow at the end of the line.
548+lpEndArrow :: Lens' LineProperties (Maybe LinePropertiesEndArrow)
549+lpEndArrow
550+ = lens _lpEndArrow (\ s a -> s{_lpEndArrow = a})
551+
552+instance FromJSON LineProperties where
553+ parseJSON
554+ = withObject "LineProperties"
555+ (\ o ->
556+ LineProperties' <$>
557+ (o .:? "weight") <*> (o .:? "link") <*>
558+ (o .:? "dashStyle")
559+ <*> (o .:? "startArrow")
560+ <*> (o .:? "lineFill")
561+ <*> (o .:? "endArrow"))
562+
563+instance ToJSON LineProperties where
564+ toJSON LineProperties'{..}
565+ = object
566+ (catMaybes
567+ [("weight" .=) <$> _lpWeight,
568+ ("link" .=) <$> _lpLink,
569+ ("dashStyle" .=) <$> _lpDashStyle,
570+ ("startArrow" .=) <$> _lpStartArrow,
571+ ("lineFill" .=) <$> _lpLineFill,
572+ ("endArrow" .=) <$> _lpEndArrow])
573+
574+-- | A PageElement kind representing a joined collection of PageElements.
575+--
576+-- /See:/ 'group'' smart constructor.
577+newtype Group = Group'
578+ { _gChildren :: Maybe [PageElement]
579+ } deriving (Eq,Show,Data,Typeable,Generic)
580+
581+-- | Creates a value of 'Group' with the minimum fields required to make a request.
582+--
583+-- Use one of the following lenses to modify other fields as desired:
584+--
585+-- * 'gChildren'
586+group'
587+ :: Group
588+group' =
589+ Group'
590+ { _gChildren = Nothing
591+ }
592+
593+-- | The collection of elements in the group. The minimum size of a group is
594+-- 2.
595+gChildren :: Lens' Group [PageElement]
596+gChildren
597+ = lens _gChildren (\ s a -> s{_gChildren = a}) .
598+ _Default
599+ . _Coerce
600+
601+instance FromJSON Group where
602+ parseJSON
603+ = withObject "Group"
604+ (\ o -> Group' <$> (o .:? "children" .!= mempty))
605+
606+instance ToJSON Group where
607+ toJSON Group'{..}
608+ = object (catMaybes [("children" .=) <$> _gChildren])
609+
610+-- | Request message for PresentationsService.BatchUpdatePresentation.
611+--
612+-- /See:/ 'batchUpdatePresentationRequest' smart constructor.
613+newtype BatchUpdatePresentationRequest = BatchUpdatePresentationRequest'
614+ { _buprRequests :: Maybe [Request']
615+ } deriving (Eq,Show,Data,Typeable,Generic)
616+
617+-- | Creates a value of 'BatchUpdatePresentationRequest' with the minimum fields required to make a request.
618+--
619+-- Use one of the following lenses to modify other fields as desired:
620+--
621+-- * 'buprRequests'
622+batchUpdatePresentationRequest
623+ :: BatchUpdatePresentationRequest
624+batchUpdatePresentationRequest =
625+ BatchUpdatePresentationRequest'
626+ { _buprRequests = Nothing
627+ }
628+
629+-- | A list of updates to apply to the presentation.
630+buprRequests :: Lens' BatchUpdatePresentationRequest [Request']
631+buprRequests
632+ = lens _buprRequests (\ s a -> s{_buprRequests = a})
633+ . _Default
634+ . _Coerce
635+
636+instance FromJSON BatchUpdatePresentationRequest
637+ where
638+ parseJSON
639+ = withObject "BatchUpdatePresentationRequest"
640+ (\ o ->
641+ BatchUpdatePresentationRequest' <$>
642+ (o .:? "requests" .!= mempty))
643+
644+instance ToJSON BatchUpdatePresentationRequest where
645+ toJSON BatchUpdatePresentationRequest'{..}
646+ = object
647+ (catMaybes [("requests" .=) <$> _buprRequests])
648+
649+-- | Creates a new shape.
650+--
651+-- /See:/ 'createShapeRequest' smart constructor.
652+data CreateShapeRequest = CreateShapeRequest'
653+ { _csrShapeType :: !(Maybe CreateShapeRequestShapeType)
654+ , _csrObjectId :: !(Maybe Text)
655+ , _csrElementProperties :: !(Maybe PageElementProperties)
656+ } deriving (Eq,Show,Data,Typeable,Generic)
657+
658+-- | Creates a value of 'CreateShapeRequest' with the minimum fields required to make a request.
659+--
660+-- Use one of the following lenses to modify other fields as desired:
661+--
662+-- * 'csrShapeType'
663+--
664+-- * 'csrObjectId'
665+--
666+-- * 'csrElementProperties'
667+createShapeRequest
668+ :: CreateShapeRequest
669+createShapeRequest =
670+ CreateShapeRequest'
671+ { _csrShapeType = Nothing
672+ , _csrObjectId = Nothing
673+ , _csrElementProperties = Nothing
674+ }
675+
676+-- | The shape type.
677+csrShapeType :: Lens' CreateShapeRequest (Maybe CreateShapeRequestShapeType)
678+csrShapeType
679+ = lens _csrShapeType (\ s a -> s{_csrShapeType = a})
680+
681+-- | A user-supplied object ID. If you specify an ID, it must be unique among
682+-- all pages and page elements in the presentation. The ID must start with
683+-- an alphanumeric character or an underscore (matches regex
684+-- \`[a-zA-Z0-9_]\`); remaining characters may include those as well as a
685+-- hyphen or colon (matches regex \`[a-zA-Z0-9_-:]\`). The length of the ID
686+-- must not be less than 5 or greater than 50. If empty, a unique
687+-- identifier will be generated.
688+csrObjectId :: Lens' CreateShapeRequest (Maybe Text)
689+csrObjectId
690+ = lens _csrObjectId (\ s a -> s{_csrObjectId = a})
691+
692+-- | The element properties for the shape.
693+csrElementProperties :: Lens' CreateShapeRequest (Maybe PageElementProperties)
694+csrElementProperties
695+ = lens _csrElementProperties
696+ (\ s a -> s{_csrElementProperties = a})
697+
698+instance FromJSON CreateShapeRequest where
699+ parseJSON
700+ = withObject "CreateShapeRequest"
701+ (\ o ->
702+ CreateShapeRequest' <$>
703+ (o .:? "shapeType") <*> (o .:? "objectId") <*>
704+ (o .:? "elementProperties"))
705+
706+instance ToJSON CreateShapeRequest where
707+ toJSON CreateShapeRequest'{..}
708+ = object
709+ (catMaybes
710+ [("shapeType" .=) <$> _csrShapeType,
711+ ("objectId" .=) <$> _csrObjectId,
712+ ("elementProperties" .=) <$> _csrElementProperties])
713+
714+-- | A TextElement kind that represents auto text.
715+--
716+-- /See:/ 'autoText' smart constructor.
717+data AutoText = AutoText'
718+ { _atStyle :: !(Maybe TextStyle)
719+ , _atContent :: !(Maybe Text)
720+ , _atType :: !(Maybe AutoTextType)
721+ } deriving (Eq,Show,Data,Typeable,Generic)
722+
723+-- | Creates a value of 'AutoText' with the minimum fields required to make a request.
724+--
725+-- Use one of the following lenses to modify other fields as desired:
726+--
727+-- * 'atStyle'
728+--
729+-- * 'atContent'
730+--
731+-- * 'atType'
732+autoText
733+ :: AutoText
734+autoText =
735+ AutoText'
736+ { _atStyle = Nothing
737+ , _atContent = Nothing
738+ , _atType = Nothing
739+ }
740+
741+-- | The styling applied to this auto text.
742+atStyle :: Lens' AutoText (Maybe TextStyle)
743+atStyle = lens _atStyle (\ s a -> s{_atStyle = a})
744+
745+-- | The rendered content of this auto text, if available.
746+atContent :: Lens' AutoText (Maybe Text)
747+atContent
748+ = lens _atContent (\ s a -> s{_atContent = a})
749+
750+-- | The type of this auto text.
751+atType :: Lens' AutoText (Maybe AutoTextType)
752+atType = lens _atType (\ s a -> s{_atType = a})
753+
754+instance FromJSON AutoText where
755+ parseJSON
756+ = withObject "AutoText"
757+ (\ o ->
758+ AutoText' <$>
759+ (o .:? "style") <*> (o .:? "content") <*>
760+ (o .:? "type"))
761+
762+instance ToJSON AutoText where
763+ toJSON AutoText'{..}
764+ = object
765+ (catMaybes
766+ [("style" .=) <$> _atStyle,
767+ ("content" .=) <$> _atContent,
768+ ("type" .=) <$> _atType])
769+
770+-- | A List describes the look and feel of bullets belonging to paragraphs
771+-- associated with a list. A paragraph that is part of a list has an
772+-- implicit reference to that list\'s ID.
773+--
774+-- /See:/ 'list' smart constructor.
775+data List = List'
776+ { _lListId :: !(Maybe Text)
777+ , _lNestingLevel :: !(Maybe ListNestingLevel)
778+ } deriving (Eq,Show,Data,Typeable,Generic)
779+
780+-- | Creates a value of 'List' with the minimum fields required to make a request.
781+--
782+-- Use one of the following lenses to modify other fields as desired:
783+--
784+-- * 'lListId'
785+--
786+-- * 'lNestingLevel'
787+list
788+ :: List
789+list =
790+ List'
791+ { _lListId = Nothing
792+ , _lNestingLevel = Nothing
793+ }
794+
795+-- | The ID of the list.
796+lListId :: Lens' List (Maybe Text)
797+lListId = lens _lListId (\ s a -> s{_lListId = a})
798+
799+-- | A map of nesting levels to the properties of bullets at the associated
800+-- level. A list has at most nine levels of nesting, so the possible values
801+-- for the keys of this map are 0 through 8, inclusive.
802+lNestingLevel :: Lens' List (Maybe ListNestingLevel)
803+lNestingLevel
804+ = lens _lNestingLevel
805+ (\ s a -> s{_lNestingLevel = a})
806+
807+instance FromJSON List where
808+ parseJSON
809+ = withObject "List"
810+ (\ o ->
811+ List' <$>
812+ (o .:? "listId") <*> (o .:? "nestingLevel"))
813+
814+instance ToJSON List where
815+ toJSON List'{..}
816+ = object
817+ (catMaybes
818+ [("listId" .=) <$> _lListId,
819+ ("nestingLevel" .=) <$> _lNestingLevel])
820+
821+-- | An RGB color.
822+--
823+-- /See:/ 'rgbColor' smart constructor.
824+data RgbColor = RgbColor'
825+ { _rcRed :: !(Maybe (Textual Double))
826+ , _rcGreen :: !(Maybe (Textual Double))
827+ , _rcBlue :: !(Maybe (Textual Double))
828+ } deriving (Eq,Show,Data,Typeable,Generic)
829+
830+-- | Creates a value of 'RgbColor' with the minimum fields required to make a request.
831+--
832+-- Use one of the following lenses to modify other fields as desired:
833+--
834+-- * 'rcRed'
835+--
836+-- * 'rcGreen'
837+--
838+-- * 'rcBlue'
839+rgbColor
840+ :: RgbColor
841+rgbColor =
842+ RgbColor'
843+ { _rcRed = Nothing
844+ , _rcGreen = Nothing
845+ , _rcBlue = Nothing
846+ }
847+
848+-- | The red component of the color, from 0.0 to 1.0.
849+rcRed :: Lens' RgbColor (Maybe Double)
850+rcRed
851+ = lens _rcRed (\ s a -> s{_rcRed = a}) .
852+ mapping _Coerce
853+
854+-- | The green component of the color, from 0.0 to 1.0.
855+rcGreen :: Lens' RgbColor (Maybe Double)
856+rcGreen
857+ = lens _rcGreen (\ s a -> s{_rcGreen = a}) .
858+ mapping _Coerce
859+
860+-- | The blue component of the color, from 0.0 to 1.0.
861+rcBlue :: Lens' RgbColor (Maybe Double)
862+rcBlue
863+ = lens _rcBlue (\ s a -> s{_rcBlue = a}) .
864+ mapping _Coerce
865+
866+instance FromJSON RgbColor where
867+ parseJSON
868+ = withObject "RgbColor"
869+ (\ o ->
870+ RgbColor' <$>
871+ (o .:? "red") <*> (o .:? "green") <*> (o .:? "blue"))
872+
873+instance ToJSON RgbColor where
874+ toJSON RgbColor'{..}
875+ = object
876+ (catMaybes
877+ [("red" .=) <$> _rcRed, ("green" .=) <$> _rcGreen,
878+ ("blue" .=) <$> _rcBlue])
879+
880+-- | Updates the properties of a Page.
881+--
882+-- /See:/ 'updatePagePropertiesRequest' smart constructor.
883+data UpdatePagePropertiesRequest = UpdatePagePropertiesRequest'
884+ { _upprObjectId :: !(Maybe Text)
885+ , _upprPageProperties :: !(Maybe PageProperties)
886+ , _upprFields :: !(Maybe FieldMask)
887+ } deriving (Eq,Show,Data,Typeable,Generic)
888+
889+-- | Creates a value of 'UpdatePagePropertiesRequest' with the minimum fields required to make a request.
890+--
891+-- Use one of the following lenses to modify other fields as desired:
892+--
893+-- * 'upprObjectId'
894+--
895+-- * 'upprPageProperties'
896+--
897+-- * 'upprFields'
898+updatePagePropertiesRequest
899+ :: UpdatePagePropertiesRequest
900+updatePagePropertiesRequest =
901+ UpdatePagePropertiesRequest'
902+ { _upprObjectId = Nothing
903+ , _upprPageProperties = Nothing
904+ , _upprFields = Nothing
905+ }
906+
907+-- | The object ID of the page the update is applied to.
908+upprObjectId :: Lens' UpdatePagePropertiesRequest (Maybe Text)
909+upprObjectId
910+ = lens _upprObjectId (\ s a -> s{_upprObjectId = a})
911+
912+-- | The page properties to update.
913+upprPageProperties :: Lens' UpdatePagePropertiesRequest (Maybe PageProperties)
914+upprPageProperties
915+ = lens _upprPageProperties
916+ (\ s a -> s{_upprPageProperties = a})
917+
918+-- | The fields that should be updated. At least one field must be specified.
919+-- The root \`pageProperties\` is implied and should not be specified. A
920+-- single \`\"*\"\` can be used as short-hand for listing every field. For
921+-- example to update the page background solid fill color, set \`fields\`
922+-- to \`\"pageBackgroundFill.solidFill.color\"\`. To reset a property to
923+-- its default value, include its field name in the field mask but leave
924+-- the field itself unset.
925+upprFields :: Lens' UpdatePagePropertiesRequest (Maybe FieldMask)
926+upprFields
927+ = lens _upprFields (\ s a -> s{_upprFields = a})
928+
929+instance FromJSON UpdatePagePropertiesRequest where
930+ parseJSON
931+ = withObject "UpdatePagePropertiesRequest"
932+ (\ o ->
933+ UpdatePagePropertiesRequest' <$>
934+ (o .:? "objectId") <*> (o .:? "pageProperties") <*>
935+ (o .:? "fields"))
936+
937+instance ToJSON UpdatePagePropertiesRequest where
938+ toJSON UpdatePagePropertiesRequest'{..}
939+ = object
940+ (catMaybes
941+ [("objectId" .=) <$> _upprObjectId,
942+ ("pageProperties" .=) <$> _upprPageProperties,
943+ ("fields" .=) <$> _upprFields])
944+
945+-- | Creates an embedded Google Sheets chart. NOTE: Chart creation requires
946+-- at least one of the spreadsheets.readonly, spreadsheets, drive.readonly,
947+-- or drive OAuth scopes.
948+--
949+-- /See:/ 'createSheetsChartRequest' smart constructor.
950+data CreateSheetsChartRequest = CreateSheetsChartRequest'
951+ { _cscrObjectId :: !(Maybe Text)
952+ , _cscrSpreadsheetId :: !(Maybe Text)
953+ , _cscrLinkingMode :: !(Maybe CreateSheetsChartRequestLinkingMode)
954+ , _cscrElementProperties :: !(Maybe PageElementProperties)
955+ , _cscrChartId :: !(Maybe (Textual Int32))
956+ } deriving (Eq,Show,Data,Typeable,Generic)
957+
958+-- | Creates a value of 'CreateSheetsChartRequest' with the minimum fields required to make a request.
959+--
960+-- Use one of the following lenses to modify other fields as desired:
961+--
962+-- * 'cscrObjectId'
963+--
964+-- * 'cscrSpreadsheetId'
965+--
966+-- * 'cscrLinkingMode'
967+--
968+-- * 'cscrElementProperties'
969+--
970+-- * 'cscrChartId'
971+createSheetsChartRequest
972+ :: CreateSheetsChartRequest
973+createSheetsChartRequest =
974+ CreateSheetsChartRequest'
975+ { _cscrObjectId = Nothing
976+ , _cscrSpreadsheetId = Nothing
977+ , _cscrLinkingMode = Nothing
978+ , _cscrElementProperties = Nothing
979+ , _cscrChartId = Nothing
980+ }
981+
982+-- | A user-supplied object ID. If specified, the ID must be unique among all
983+-- pages and page elements in the presentation. The ID should start with a
984+-- word character [a-zA-Z0-9_] and then followed by any number of the
985+-- following characters [a-zA-Z0-9_-:]. The length of the ID should not be
986+-- less than 5 or greater than 50. If empty, a unique identifier will be
987+-- generated.
988+cscrObjectId :: Lens' CreateSheetsChartRequest (Maybe Text)
989+cscrObjectId
990+ = lens _cscrObjectId (\ s a -> s{_cscrObjectId = a})
991+
992+-- | The ID of the Google Sheets spreadsheet that contains the chart.
993+cscrSpreadsheetId :: Lens' CreateSheetsChartRequest (Maybe Text)
994+cscrSpreadsheetId
995+ = lens _cscrSpreadsheetId
996+ (\ s a -> s{_cscrSpreadsheetId = a})
997+
998+-- | The mode with which the chart is linked to the source spreadsheet. When
999+-- not specified, the chart will be an image that is not linked.
1000+cscrLinkingMode :: Lens' CreateSheetsChartRequest (Maybe CreateSheetsChartRequestLinkingMode)
1001+cscrLinkingMode
1002+ = lens _cscrLinkingMode
1003+ (\ s a -> s{_cscrLinkingMode = a})
1004+
1005+-- | The element properties for the chart. When the aspect ratio of the
1006+-- provided size does not match the chart aspect ratio, the chart is scaled
1007+-- and centered with respect to the size in order to maintain aspect ratio.
1008+-- The provided transform is applied after this operation.
1009+cscrElementProperties :: Lens' CreateSheetsChartRequest (Maybe PageElementProperties)
1010+cscrElementProperties
1011+ = lens _cscrElementProperties
1012+ (\ s a -> s{_cscrElementProperties = a})
1013+
1014+-- | The ID of the specific chart in the Google Sheets spreadsheet.
1015+cscrChartId :: Lens' CreateSheetsChartRequest (Maybe Int32)
1016+cscrChartId
1017+ = lens _cscrChartId (\ s a -> s{_cscrChartId = a}) .
1018+ mapping _Coerce
1019+
1020+instance FromJSON CreateSheetsChartRequest where
1021+ parseJSON
1022+ = withObject "CreateSheetsChartRequest"
1023+ (\ o ->
1024+ CreateSheetsChartRequest' <$>
1025+ (o .:? "objectId") <*> (o .:? "spreadsheetId") <*>
1026+ (o .:? "linkingMode")
1027+ <*> (o .:? "elementProperties")
1028+ <*> (o .:? "chartId"))
1029+
1030+instance ToJSON CreateSheetsChartRequest where
1031+ toJSON CreateSheetsChartRequest'{..}
1032+ = object
1033+ (catMaybes
1034+ [("objectId" .=) <$> _cscrObjectId,
1035+ ("spreadsheetId" .=) <$> _cscrSpreadsheetId,
1036+ ("linkingMode" .=) <$> _cscrLinkingMode,
1037+ ("elementProperties" .=) <$> _cscrElementProperties,
1038+ ("chartId" .=) <$> _cscrChartId])
1039+
1040+-- | Deletes text from a shape or a table cell.
1041+--
1042+-- /See:/ 'deleteTextRequest' smart constructor.
1043+data DeleteTextRequest = DeleteTextRequest'
1044+ { _dtrTextRange :: !(Maybe Range)
1045+ , _dtrObjectId :: !(Maybe Text)
1046+ , _dtrCellLocation :: !(Maybe TableCellLocation)
1047+ } deriving (Eq,Show,Data,Typeable,Generic)
1048+
1049+-- | Creates a value of 'DeleteTextRequest' with the minimum fields required to make a request.
1050+--
1051+-- Use one of the following lenses to modify other fields as desired:
1052+--
1053+-- * 'dtrTextRange'
1054+--
1055+-- * 'dtrObjectId'
1056+--
1057+-- * 'dtrCellLocation'
1058+deleteTextRequest
1059+ :: DeleteTextRequest
1060+deleteTextRequest =
1061+ DeleteTextRequest'
1062+ { _dtrTextRange = Nothing
1063+ , _dtrObjectId = Nothing
1064+ , _dtrCellLocation = Nothing
1065+ }
1066+
1067+-- | The range of text to delete, based on TextElement indexes. There is
1068+-- always an implicit newline character at the end of a shape\'s or table
1069+-- cell\'s text that cannot be deleted. \`Range.Type.ALL\` will use the
1070+-- correct bounds, but care must be taken when specifying explicit bounds
1071+-- for range types \`FROM_START_INDEX\` and \`FIXED_RANGE\`. For example,
1072+-- if the text is \"ABC\", followed by an implicit newline, then the
1073+-- maximum value is 2 for \`text_range.start_index\` and 3 for
1074+-- \`text_range.end_index\`. Deleting text that crosses a paragraph
1075+-- boundary may result in changes to paragraph styles and lists as the two
1076+-- paragraphs are merged. Ranges that include only one code unit of a
1077+-- surrogate pair are expanded to include both code units.
1078+dtrTextRange :: Lens' DeleteTextRequest (Maybe Range)
1079+dtrTextRange
1080+ = lens _dtrTextRange (\ s a -> s{_dtrTextRange = a})
1081+
1082+-- | The object ID of the shape or table from which the text will be deleted.
1083+dtrObjectId :: Lens' DeleteTextRequest (Maybe Text)
1084+dtrObjectId
1085+ = lens _dtrObjectId (\ s a -> s{_dtrObjectId = a})
1086+
1087+-- | The optional table cell location if the text is to be deleted from a
1088+-- table cell. If present, the object_id must refer to a table.
1089+dtrCellLocation :: Lens' DeleteTextRequest (Maybe TableCellLocation)
1090+dtrCellLocation
1091+ = lens _dtrCellLocation
1092+ (\ s a -> s{_dtrCellLocation = a})
1093+
1094+instance FromJSON DeleteTextRequest where
1095+ parseJSON
1096+ = withObject "DeleteTextRequest"
1097+ (\ o ->
1098+ DeleteTextRequest' <$>
1099+ (o .:? "textRange") <*> (o .:? "objectId") <*>
1100+ (o .:? "cellLocation"))
1101+
1102+instance ToJSON DeleteTextRequest where
1103+ toJSON DeleteTextRequest'{..}
1104+ = object
1105+ (catMaybes
1106+ [("textRange" .=) <$> _dtrTextRange,
1107+ ("objectId" .=) <$> _dtrObjectId,
1108+ ("cellLocation" .=) <$> _dtrCellLocation])
1109+
1110+-- | Inserts columns into a table. Other columns in the table will be resized
1111+-- to fit the new column.
1112+--
1113+-- /See:/ 'insertTableColumnsRequest' smart constructor.
1114+data InsertTableColumnsRequest = InsertTableColumnsRequest'
1115+ { _itcrInsertRight :: !(Maybe Bool)
1116+ , _itcrNumber :: !(Maybe (Textual Int32))
1117+ , _itcrCellLocation :: !(Maybe TableCellLocation)
1118+ , _itcrTableObjectId :: !(Maybe Text)
1119+ } deriving (Eq,Show,Data,Typeable,Generic)
1120+
1121+-- | Creates a value of 'InsertTableColumnsRequest' with the minimum fields required to make a request.
1122+--
1123+-- Use one of the following lenses to modify other fields as desired:
1124+--
1125+-- * 'itcrInsertRight'
1126+--
1127+-- * 'itcrNumber'
1128+--
1129+-- * 'itcrCellLocation'
1130+--
1131+-- * 'itcrTableObjectId'
1132+insertTableColumnsRequest
1133+ :: InsertTableColumnsRequest
1134+insertTableColumnsRequest =
1135+ InsertTableColumnsRequest'
1136+ { _itcrInsertRight = Nothing
1137+ , _itcrNumber = Nothing
1138+ , _itcrCellLocation = Nothing
1139+ , _itcrTableObjectId = Nothing
1140+ }
1141+
1142+-- | Whether to insert new columns to the right of the reference cell
1143+-- location. - \`True\`: insert to the right. - \`False\`: insert to the
1144+-- left.
1145+itcrInsertRight :: Lens' InsertTableColumnsRequest (Maybe Bool)
1146+itcrInsertRight
1147+ = lens _itcrInsertRight
1148+ (\ s a -> s{_itcrInsertRight = a})
1149+
1150+-- | The number of columns to be inserted. Maximum 20 per request.
1151+itcrNumber :: Lens' InsertTableColumnsRequest (Maybe Int32)
1152+itcrNumber
1153+ = lens _itcrNumber (\ s a -> s{_itcrNumber = a}) .
1154+ mapping _Coerce
1155+
1156+-- | The reference table cell location from which columns will be inserted. A
1157+-- new column will be inserted to the left (or right) of the column where
1158+-- the reference cell is. If the reference cell is a merged cell, a new
1159+-- column will be inserted to the left (or right) of the merged cell.
1160+itcrCellLocation :: Lens' InsertTableColumnsRequest (Maybe TableCellLocation)
1161+itcrCellLocation
1162+ = lens _itcrCellLocation
1163+ (\ s a -> s{_itcrCellLocation = a})
1164+
1165+-- | The table to insert columns into.
1166+itcrTableObjectId :: Lens' InsertTableColumnsRequest (Maybe Text)
1167+itcrTableObjectId
1168+ = lens _itcrTableObjectId
1169+ (\ s a -> s{_itcrTableObjectId = a})
1170+
1171+instance FromJSON InsertTableColumnsRequest where
1172+ parseJSON
1173+ = withObject "InsertTableColumnsRequest"
1174+ (\ o ->
1175+ InsertTableColumnsRequest' <$>
1176+ (o .:? "insertRight") <*> (o .:? "number") <*>
1177+ (o .:? "cellLocation")
1178+ <*> (o .:? "tableObjectId"))
1179+
1180+instance ToJSON InsertTableColumnsRequest where
1181+ toJSON InsertTableColumnsRequest'{..}
1182+ = object
1183+ (catMaybes
1184+ [("insertRight" .=) <$> _itcrInsertRight,
1185+ ("number" .=) <$> _itcrNumber,
1186+ ("cellLocation" .=) <$> _itcrCellLocation,
1187+ ("tableObjectId" .=) <$> _itcrTableObjectId])
1188+
1189+-- | The bulleted lists contained in this text, keyed by list ID.
1190+--
1191+-- /See:/ 'textContentLists' smart constructor.
1192+newtype TextContentLists = TextContentLists'
1193+ { _tclAddtional :: HashMap Text List
1194+ } deriving (Eq,Show,Data,Typeable,Generic)
1195+
1196+-- | Creates a value of 'TextContentLists' with the minimum fields required to make a request.
1197+--
1198+-- Use one of the following lenses to modify other fields as desired:
1199+--
1200+-- * 'tclAddtional'
1201+textContentLists
1202+ :: HashMap Text List -- ^ 'tclAddtional'
1203+ -> TextContentLists
1204+textContentLists pTclAddtional_ =
1205+ TextContentLists'
1206+ { _tclAddtional = _Coerce # pTclAddtional_
1207+ }
1208+
1209+tclAddtional :: Lens' TextContentLists (HashMap Text List)
1210+tclAddtional
1211+ = lens _tclAddtional (\ s a -> s{_tclAddtional = a})
1212+ . _Coerce
1213+
1214+instance FromJSON TextContentLists where
1215+ parseJSON
1216+ = withObject "TextContentLists"
1217+ (\ o -> TextContentLists' <$> (parseJSONObject o))
1218+
1219+instance ToJSON TextContentLists where
1220+ toJSON = toJSON . _tclAddtional
1221+
1222+-- | A width and height.
1223+--
1224+-- /See:/ 'size' smart constructor.
1225+data Size = Size'
1226+ { _sHeight :: !(Maybe Dimension)
1227+ , _sWidth :: !(Maybe Dimension)
1228+ } deriving (Eq,Show,Data,Typeable,Generic)
1229+
1230+-- | Creates a value of 'Size' with the minimum fields required to make a request.
1231+--
1232+-- Use one of the following lenses to modify other fields as desired:
1233+--
1234+-- * 'sHeight'
1235+--
1236+-- * 'sWidth'
1237+size
1238+ :: Size
1239+size =
1240+ Size'
1241+ { _sHeight = Nothing
1242+ , _sWidth = Nothing
1243+ }
1244+
1245+-- | The height of the object.
1246+sHeight :: Lens' Size (Maybe Dimension)
1247+sHeight = lens _sHeight (\ s a -> s{_sHeight = a})
1248+
1249+-- | The width of the object.
1250+sWidth :: Lens' Size (Maybe Dimension)
1251+sWidth = lens _sWidth (\ s a -> s{_sWidth = a})
1252+
1253+instance FromJSON Size where
1254+ parseJSON
1255+ = withObject "Size"
1256+ (\ o ->
1257+ Size' <$> (o .:? "height") <*> (o .:? "width"))
1258+
1259+instance ToJSON Size where
1260+ toJSON Size'{..}
1261+ = object
1262+ (catMaybes
1263+ [("height" .=) <$> _sHeight,
1264+ ("width" .=) <$> _sWidth])
1265+
1266+-- | The stretched picture fill. The page or page element is filled entirely
1267+-- with the specified picture. The picture is stretched to fit its
1268+-- container.
1269+--
1270+-- /See:/ 'stretchedPictureFill' smart constructor.
1271+data StretchedPictureFill = StretchedPictureFill'
1272+ { _spfSize :: !(Maybe Size)
1273+ , _spfContentURL :: !(Maybe Text)
1274+ } deriving (Eq,Show,Data,Typeable,Generic)
1275+
1276+-- | Creates a value of 'StretchedPictureFill' with the minimum fields required to make a request.
1277+--
1278+-- Use one of the following lenses to modify other fields as desired:
1279+--
1280+-- * 'spfSize'
1281+--
1282+-- * 'spfContentURL'
1283+stretchedPictureFill
1284+ :: StretchedPictureFill
1285+stretchedPictureFill =
1286+ StretchedPictureFill'
1287+ { _spfSize = Nothing
1288+ , _spfContentURL = Nothing
1289+ }
1290+
1291+-- | The original size of the picture fill. This field is read-only.
1292+spfSize :: Lens' StretchedPictureFill (Maybe Size)
1293+spfSize = lens _spfSize (\ s a -> s{_spfSize = a})
1294+
1295+-- | Reading the content_url: An URL to a picture with a default lifetime of
1296+-- 30 minutes. This URL is tagged with the account of the requester. Anyone
1297+-- with the URL effectively accesses the picture as the original requester.
1298+-- Access to the picture may be lost if the presentation\'s sharing
1299+-- settings change. Writing the content_url: The picture is fetched once at
1300+-- insertion time and a copy is stored for display inside the presentation.
1301+-- Pictures must be less than 50MB in size, cannot exceed 25 megapixels,
1302+-- and must be in either in PNG, JPEG, or GIF format.
1303+spfContentURL :: Lens' StretchedPictureFill (Maybe Text)
1304+spfContentURL
1305+ = lens _spfContentURL
1306+ (\ s a -> s{_spfContentURL = a})
1307+
1308+instance FromJSON StretchedPictureFill where
1309+ parseJSON
1310+ = withObject "StretchedPictureFill"
1311+ (\ o ->
1312+ StretchedPictureFill' <$>
1313+ (o .:? "size") <*> (o .:? "contentUrl"))
1314+
1315+instance ToJSON StretchedPictureFill where
1316+ toJSON StretchedPictureFill'{..}
1317+ = object
1318+ (catMaybes
1319+ [("size" .=) <$> _spfSize,
1320+ ("contentUrl" .=) <$> _spfContentURL])
1321+
1322+-- | A PageElement kind representing a linked chart embedded from Google
1323+-- Sheets.
1324+--
1325+-- /See:/ 'sheetsChart' smart constructor.
1326+data SheetsChart = SheetsChart'
1327+ { _scSpreadsheetId :: !(Maybe Text)
1328+ , _scContentURL :: !(Maybe Text)
1329+ , _scSheetsChartProperties :: !(Maybe SheetsChartProperties)
1330+ , _scChartId :: !(Maybe (Textual Int32))
1331+ } deriving (Eq,Show,Data,Typeable,Generic)
1332+
1333+-- | Creates a value of 'SheetsChart' with the minimum fields required to make a request.
1334+--
1335+-- Use one of the following lenses to modify other fields as desired:
1336+--
1337+-- * 'scSpreadsheetId'
1338+--
1339+-- * 'scContentURL'
1340+--
1341+-- * 'scSheetsChartProperties'
1342+--
1343+-- * 'scChartId'
1344+sheetsChart
1345+ :: SheetsChart
1346+sheetsChart =
1347+ SheetsChart'
1348+ { _scSpreadsheetId = Nothing
1349+ , _scContentURL = Nothing
1350+ , _scSheetsChartProperties = Nothing
1351+ , _scChartId = Nothing
1352+ }
1353+
1354+-- | The ID of the Google Sheets spreadsheet that contains the source chart.
1355+scSpreadsheetId :: Lens' SheetsChart (Maybe Text)
1356+scSpreadsheetId
1357+ = lens _scSpreadsheetId
1358+ (\ s a -> s{_scSpreadsheetId = a})
1359+
1360+-- | The URL of an image of the embedded chart, with a default lifetime of 30
1361+-- minutes. This URL is tagged with the account of the requester. Anyone
1362+-- with the URL effectively accesses the image as the original requester.
1363+-- Access to the image may be lost if the presentation\'s sharing settings
1364+-- change.
1365+scContentURL :: Lens' SheetsChart (Maybe Text)
1366+scContentURL
1367+ = lens _scContentURL (\ s a -> s{_scContentURL = a})
1368+
1369+-- | The properties of the Sheets chart.
1370+scSheetsChartProperties :: Lens' SheetsChart (Maybe SheetsChartProperties)
1371+scSheetsChartProperties
1372+ = lens _scSheetsChartProperties
1373+ (\ s a -> s{_scSheetsChartProperties = a})
1374+
1375+-- | The ID of the specific chart in the Google Sheets spreadsheet that is
1376+-- embedded.
1377+scChartId :: Lens' SheetsChart (Maybe Int32)
1378+scChartId
1379+ = lens _scChartId (\ s a -> s{_scChartId = a}) .
1380+ mapping _Coerce
1381+
1382+instance FromJSON SheetsChart where
1383+ parseJSON
1384+ = withObject "SheetsChart"
1385+ (\ o ->
1386+ SheetsChart' <$>
1387+ (o .:? "spreadsheetId") <*> (o .:? "contentUrl") <*>
1388+ (o .:? "sheetsChartProperties")
1389+ <*> (o .:? "chartId"))
1390+
1391+instance ToJSON SheetsChart where
1392+ toJSON SheetsChart'{..}
1393+ = object
1394+ (catMaybes
1395+ [("spreadsheetId" .=) <$> _scSpreadsheetId,
1396+ ("contentUrl" .=) <$> _scContentURL,
1397+ ("sheetsChartProperties" .=) <$>
1398+ _scSheetsChartProperties,
1399+ ("chartId" .=) <$> _scChartId])
1400+
1401+-- | The result of creating a shape.
1402+--
1403+-- /See:/ 'createShapeResponse' smart constructor.
1404+newtype CreateShapeResponse = CreateShapeResponse'
1405+ { _cObjectId :: Maybe Text
1406+ } deriving (Eq,Show,Data,Typeable,Generic)
1407+
1408+-- | Creates a value of 'CreateShapeResponse' with the minimum fields required to make a request.
1409+--
1410+-- Use one of the following lenses to modify other fields as desired:
1411+--
1412+-- * 'cObjectId'
1413+createShapeResponse
1414+ :: CreateShapeResponse
1415+createShapeResponse =
1416+ CreateShapeResponse'
1417+ { _cObjectId = Nothing
1418+ }
1419+
1420+-- | The object ID of the created shape.
1421+cObjectId :: Lens' CreateShapeResponse (Maybe Text)
1422+cObjectId
1423+ = lens _cObjectId (\ s a -> s{_cObjectId = a})
1424+
1425+instance FromJSON CreateShapeResponse where
1426+ parseJSON
1427+ = withObject "CreateShapeResponse"
1428+ (\ o -> CreateShapeResponse' <$> (o .:? "objectId"))
1429+
1430+instance ToJSON CreateShapeResponse where
1431+ toJSON CreateShapeResponse'{..}
1432+ = object (catMaybes [("objectId" .=) <$> _cObjectId])
1433+
1434+-- | Deletes a column from a table.
1435+--
1436+-- /See:/ 'deleteTableColumnRequest' smart constructor.
1437+data DeleteTableColumnRequest = DeleteTableColumnRequest'
1438+ { _dtcrCellLocation :: !(Maybe TableCellLocation)
1439+ , _dtcrTableObjectId :: !(Maybe Text)
1440+ } deriving (Eq,Show,Data,Typeable,Generic)
1441+
1442+-- | Creates a value of 'DeleteTableColumnRequest' with the minimum fields required to make a request.
1443+--
1444+-- Use one of the following lenses to modify other fields as desired:
1445+--
1446+-- * 'dtcrCellLocation'
1447+--
1448+-- * 'dtcrTableObjectId'
1449+deleteTableColumnRequest
1450+ :: DeleteTableColumnRequest
1451+deleteTableColumnRequest =
1452+ DeleteTableColumnRequest'
1453+ { _dtcrCellLocation = Nothing
1454+ , _dtcrTableObjectId = Nothing
1455+ }
1456+
1457+-- | The reference table cell location from which a column will be deleted.
1458+-- The column this cell spans will be deleted. If this is a merged cell,
1459+-- multiple columns will be deleted. If no columns remain in the table
1460+-- after this deletion, the whole table is deleted.
1461+dtcrCellLocation :: Lens' DeleteTableColumnRequest (Maybe TableCellLocation)
1462+dtcrCellLocation
1463+ = lens _dtcrCellLocation
1464+ (\ s a -> s{_dtcrCellLocation = a})
1465+
1466+-- | The table to delete columns from.
1467+dtcrTableObjectId :: Lens' DeleteTableColumnRequest (Maybe Text)
1468+dtcrTableObjectId
1469+ = lens _dtcrTableObjectId
1470+ (\ s a -> s{_dtcrTableObjectId = a})
1471+
1472+instance FromJSON DeleteTableColumnRequest where
1473+ parseJSON
1474+ = withObject "DeleteTableColumnRequest"
1475+ (\ o ->
1476+ DeleteTableColumnRequest' <$>
1477+ (o .:? "cellLocation") <*> (o .:? "tableObjectId"))
1478+
1479+instance ToJSON DeleteTableColumnRequest where
1480+ toJSON DeleteTableColumnRequest'{..}
1481+ = object
1482+ (catMaybes
1483+ [("cellLocation" .=) <$> _dtcrCellLocation,
1484+ ("tableObjectId" .=) <$> _dtcrTableObjectId])
1485+
1486+-- | A hypertext link.
1487+--
1488+-- /See:/ 'link' smart constructor.
1489+data Link = Link'
1490+ { _lURL :: !(Maybe Text)
1491+ , _lPageObjectId :: !(Maybe Text)
1492+ , _lRelativeLink :: !(Maybe LinkRelativeLink)
1493+ , _lSlideIndex :: !(Maybe (Textual Int32))
1494+ } deriving (Eq,Show,Data,Typeable,Generic)
1495+
1496+-- | Creates a value of 'Link' with the minimum fields required to make a request.
1497+--
1498+-- Use one of the following lenses to modify other fields as desired:
1499+--
1500+-- * 'lURL'
1501+--
1502+-- * 'lPageObjectId'
1503+--
1504+-- * 'lRelativeLink'
1505+--
1506+-- * 'lSlideIndex'
1507+link
1508+ :: Link
1509+link =
1510+ Link'
1511+ { _lURL = Nothing
1512+ , _lPageObjectId = Nothing
1513+ , _lRelativeLink = Nothing
1514+ , _lSlideIndex = Nothing
1515+ }
1516+
1517+-- | If set, indicates this is a link to the external web page at this URL.
1518+lURL :: Lens' Link (Maybe Text)
1519+lURL = lens _lURL (\ s a -> s{_lURL = a})
1520+
1521+-- | If set, indicates this is a link to the specific page in this
1522+-- presentation with this ID. A page with this ID may not exist.
1523+lPageObjectId :: Lens' Link (Maybe Text)
1524+lPageObjectId
1525+ = lens _lPageObjectId
1526+ (\ s a -> s{_lPageObjectId = a})
1527+
1528+-- | If set, indicates this is a link to a slide in this presentation,
1529+-- addressed by its position.
1530+lRelativeLink :: Lens' Link (Maybe LinkRelativeLink)
1531+lRelativeLink
1532+ = lens _lRelativeLink
1533+ (\ s a -> s{_lRelativeLink = a})
1534+
1535+-- | If set, indicates this is a link to the slide at this zero-based index
1536+-- in the presentation. There may not be a slide at this index.
1537+lSlideIndex :: Lens' Link (Maybe Int32)
1538+lSlideIndex
1539+ = lens _lSlideIndex (\ s a -> s{_lSlideIndex = a}) .
1540+ mapping _Coerce
1541+
1542+instance FromJSON Link where
1543+ parseJSON
1544+ = withObject "Link"
1545+ (\ o ->
1546+ Link' <$>
1547+ (o .:? "url") <*> (o .:? "pageObjectId") <*>
1548+ (o .:? "relativeLink")
1549+ <*> (o .:? "slideIndex"))
1550+
1551+instance ToJSON Link where
1552+ toJSON Link'{..}
1553+ = object
1554+ (catMaybes
1555+ [("url" .=) <$> _lURL,
1556+ ("pageObjectId" .=) <$> _lPageObjectId,
1557+ ("relativeLink" .=) <$> _lRelativeLink,
1558+ ("slideIndex" .=) <$> _lSlideIndex])
1559+
1560+-- | A magnitude in a single direction in the specified units.
1561+--
1562+-- /See:/ 'dimension' smart constructor.
1563+data Dimension = Dimension'
1564+ { _dMagnitude :: !(Maybe (Textual Double))
1565+ , _dUnit :: !(Maybe DimensionUnit)
1566+ } deriving (Eq,Show,Data,Typeable,Generic)
1567+
1568+-- | Creates a value of 'Dimension' with the minimum fields required to make a request.
1569+--
1570+-- Use one of the following lenses to modify other fields as desired:
1571+--
1572+-- * 'dMagnitude'
1573+--
1574+-- * 'dUnit'
1575+dimension
1576+ :: Dimension
1577+dimension =
1578+ Dimension'
1579+ { _dMagnitude = Nothing
1580+ , _dUnit = Nothing
1581+ }
1582+
1583+-- | The magnitude.
1584+dMagnitude :: Lens' Dimension (Maybe Double)
1585+dMagnitude
1586+ = lens _dMagnitude (\ s a -> s{_dMagnitude = a}) .
1587+ mapping _Coerce
1588+
1589+-- | The units for magnitude.
1590+dUnit :: Lens' Dimension (Maybe DimensionUnit)
1591+dUnit = lens _dUnit (\ s a -> s{_dUnit = a})
1592+
1593+instance FromJSON Dimension where
1594+ parseJSON
1595+ = withObject "Dimension"
1596+ (\ o ->
1597+ Dimension' <$>
1598+ (o .:? "magnitude") <*> (o .:? "unit"))
1599+
1600+instance ToJSON Dimension where
1601+ toJSON Dimension'{..}
1602+ = object
1603+ (catMaybes
1604+ [("magnitude" .=) <$> _dMagnitude,
1605+ ("unit" .=) <$> _dUnit])
1606+
1607+-- | Response message from a batch update.
1608+--
1609+-- /See:/ 'batchUpdatePresentationResponse' smart constructor.
1610+data BatchUpdatePresentationResponse = BatchUpdatePresentationResponse'
1611+ { _buprPresentationId :: !(Maybe Text)
1612+ , _buprReplies :: !(Maybe [Response])
1613+ } deriving (Eq,Show,Data,Typeable,Generic)
1614+
1615+-- | Creates a value of 'BatchUpdatePresentationResponse' with the minimum fields required to make a request.
1616+--
1617+-- Use one of the following lenses to modify other fields as desired:
1618+--
1619+-- * 'buprPresentationId'
1620+--
1621+-- * 'buprReplies'
1622+batchUpdatePresentationResponse
1623+ :: BatchUpdatePresentationResponse
1624+batchUpdatePresentationResponse =
1625+ BatchUpdatePresentationResponse'
1626+ { _buprPresentationId = Nothing
1627+ , _buprReplies = Nothing
1628+ }
1629+
1630+-- | The presentation the updates were applied to.
1631+buprPresentationId :: Lens' BatchUpdatePresentationResponse (Maybe Text)
1632+buprPresentationId
1633+ = lens _buprPresentationId
1634+ (\ s a -> s{_buprPresentationId = a})
1635+
1636+-- | The reply of the updates. This maps 1:1 with the updates, although
1637+-- replies to some requests may be empty.
1638+buprReplies :: Lens' BatchUpdatePresentationResponse [Response]
1639+buprReplies
1640+ = lens _buprReplies (\ s a -> s{_buprReplies = a}) .
1641+ _Default
1642+ . _Coerce
1643+
1644+instance FromJSON BatchUpdatePresentationResponse
1645+ where
1646+ parseJSON
1647+ = withObject "BatchUpdatePresentationResponse"
1648+ (\ o ->
1649+ BatchUpdatePresentationResponse' <$>
1650+ (o .:? "presentationId") <*>
1651+ (o .:? "replies" .!= mempty))
1652+
1653+instance ToJSON BatchUpdatePresentationResponse where
1654+ toJSON BatchUpdatePresentationResponse'{..}
1655+ = object
1656+ (catMaybes
1657+ [("presentationId" .=) <$> _buprPresentationId,
1658+ ("replies" .=) <$> _buprReplies])
1659+
1660+-- | The object being duplicated may contain other objects, for example when
1661+-- duplicating a slide or a group page element. This map defines how the
1662+-- IDs of duplicated objects are generated: the keys are the IDs of the
1663+-- original objects and its values are the IDs that will be assigned to the
1664+-- corresponding duplicate object. The ID of the source object\'s duplicate
1665+-- may be specified in this map as well, using the same value of the
1666+-- \`object_id\` field as a key and the newly desired ID as the value. All
1667+-- keys must correspond to existing IDs in the presentation. All values
1668+-- must be unique in the presentation and must start with an alphanumeric
1669+-- character or an underscore (matches regex \`[a-zA-Z0-9_]\`); remaining
1670+-- characters may include those as well as a hyphen or colon (matches regex
1671+-- \`[a-zA-Z0-9_-:]\`). The length of the new ID must not be less than 5 or
1672+-- greater than 50. If any IDs of source objects are omitted from the map,
1673+-- a new random ID will be assigned. If the map is empty or unset, all
1674+-- duplicate objects will receive a new random ID.
1675+--
1676+-- /See:/ 'duplicateObjectRequestObjectIds' smart constructor.
1677+newtype DuplicateObjectRequestObjectIds = DuplicateObjectRequestObjectIds'
1678+ { _doroiAddtional :: HashMap Text Text
1679+ } deriving (Eq,Show,Data,Typeable,Generic)
1680+
1681+-- | Creates a value of 'DuplicateObjectRequestObjectIds' with the minimum fields required to make a request.
1682+--
1683+-- Use one of the following lenses to modify other fields as desired:
1684+--
1685+-- * 'doroiAddtional'
1686+duplicateObjectRequestObjectIds
1687+ :: HashMap Text Text -- ^ 'doroiAddtional'
1688+ -> DuplicateObjectRequestObjectIds
1689+duplicateObjectRequestObjectIds pDoroiAddtional_ =
1690+ DuplicateObjectRequestObjectIds'
1691+ { _doroiAddtional = _Coerce # pDoroiAddtional_
1692+ }
1693+
1694+doroiAddtional :: Lens' DuplicateObjectRequestObjectIds (HashMap Text Text)
1695+doroiAddtional
1696+ = lens _doroiAddtional
1697+ (\ s a -> s{_doroiAddtional = a})
1698+ . _Coerce
1699+
1700+instance FromJSON DuplicateObjectRequestObjectIds
1701+ where
1702+ parseJSON
1703+ = withObject "DuplicateObjectRequestObjectIds"
1704+ (\ o ->
1705+ DuplicateObjectRequestObjectIds' <$>
1706+ (parseJSONObject o))
1707+
1708+instance ToJSON DuplicateObjectRequestObjectIds where
1709+ toJSON = toJSON . _doroiAddtional
1710+
1711+-- | Creates a new table.
1712+--
1713+-- /See:/ 'createTableRequest' smart constructor.
1714+data CreateTableRequest = CreateTableRequest'
1715+ { _ctrObjectId :: !(Maybe Text)
1716+ , _ctrRows :: !(Maybe (Textual Int32))
1717+ , _ctrElementProperties :: !(Maybe PageElementProperties)
1718+ , _ctrColumns :: !(Maybe (Textual Int32))
1719+ } deriving (Eq,Show,Data,Typeable,Generic)
1720+
1721+-- | Creates a value of 'CreateTableRequest' with the minimum fields required to make a request.
1722+--
1723+-- Use one of the following lenses to modify other fields as desired:
1724+--
1725+-- * 'ctrObjectId'
1726+--
1727+-- * 'ctrRows'
1728+--
1729+-- * 'ctrElementProperties'
1730+--
1731+-- * 'ctrColumns'
1732+createTableRequest
1733+ :: CreateTableRequest
1734+createTableRequest =
1735+ CreateTableRequest'
1736+ { _ctrObjectId = Nothing
1737+ , _ctrRows = Nothing
1738+ , _ctrElementProperties = Nothing
1739+ , _ctrColumns = Nothing
1740+ }
1741+
1742+-- | A user-supplied object ID. If you specify an ID, it must be unique among
1743+-- all pages and page elements in the presentation. The ID must start with
1744+-- an alphanumeric character or an underscore (matches regex
1745+-- \`[a-zA-Z0-9_]\`); remaining characters may include those as well as a
1746+-- hyphen or colon (matches regex \`[a-zA-Z0-9_-:]\`). The length of the ID
1747+-- must not be less than 5 or greater than 50. If you don\'t specify an ID,
1748+-- a unique one is generated.
1749+ctrObjectId :: Lens' CreateTableRequest (Maybe Text)
1750+ctrObjectId
1751+ = lens _ctrObjectId (\ s a -> s{_ctrObjectId = a})
1752+
1753+-- | Number of rows in the table.
1754+ctrRows :: Lens' CreateTableRequest (Maybe Int32)
1755+ctrRows
1756+ = lens _ctrRows (\ s a -> s{_ctrRows = a}) .
1757+ mapping _Coerce
1758+
1759+-- | The element properties for the table. The table will be created at the
1760+-- provided size, subject to a minimum size. If no size is provided, the
1761+-- table will be automatically sized. Table transforms must have a scale of
1762+-- 1 and no shear components. If no transform is provided, the table will
1763+-- be centered on the page.
1764+ctrElementProperties :: Lens' CreateTableRequest (Maybe PageElementProperties)
1765+ctrElementProperties
1766+ = lens _ctrElementProperties
1767+ (\ s a -> s{_ctrElementProperties = a})
1768+
1769+-- | Number of columns in the table.
1770+ctrColumns :: Lens' CreateTableRequest (Maybe Int32)
1771+ctrColumns
1772+ = lens _ctrColumns (\ s a -> s{_ctrColumns = a}) .
1773+ mapping _Coerce
1774+
1775+instance FromJSON CreateTableRequest where
1776+ parseJSON
1777+ = withObject "CreateTableRequest"
1778+ (\ o ->
1779+ CreateTableRequest' <$>
1780+ (o .:? "objectId") <*> (o .:? "rows") <*>
1781+ (o .:? "elementProperties")
1782+ <*> (o .:? "columns"))
1783+
1784+instance ToJSON CreateTableRequest where
1785+ toJSON CreateTableRequest'{..}
1786+ = object
1787+ (catMaybes
1788+ [("objectId" .=) <$> _ctrObjectId,
1789+ ("rows" .=) <$> _ctrRows,
1790+ ("elementProperties" .=) <$> _ctrElementProperties,
1791+ ("columns" .=) <$> _ctrColumns])
1792+
1793+-- | A single response from an update.
1794+--
1795+-- /See:/ 'response' smart constructor.
1796+data Response = Response'
1797+ { _rReplaceAllShapesWithImage :: !(Maybe ReplaceAllShapesWithImageResponse)
1798+ , _rCreateLine :: !(Maybe CreateLineResponse)
1799+ , _rReplaceAllText :: !(Maybe ReplaceAllTextResponse)
1800+ , _rCreateShape :: !(Maybe CreateShapeResponse)
1801+ , _rCreateSheetsChart :: !(Maybe CreateSheetsChartResponse)
1802+ , _rDuplicateObject :: !(Maybe DuplicateObjectResponse)
1803+ , _rCreateTable :: !(Maybe CreateTableResponse)
1804+ , _rCreateVideo :: !(Maybe CreateVideoResponse)
1805+ , _rCreateImage :: !(Maybe CreateImageResponse)
1806+ , _rCreateSlide :: !(Maybe CreateSlideResponse)
1807+ } deriving (Eq,Show,Data,Typeable,Generic)
1808+
1809+-- | Creates a value of 'Response' with the minimum fields required to make a request.
1810+--
1811+-- Use one of the following lenses to modify other fields as desired:
1812+--
1813+-- * 'rReplaceAllShapesWithImage'
1814+--
1815+-- * 'rCreateLine'
1816+--
1817+-- * 'rReplaceAllText'
1818+--
1819+-- * 'rCreateShape'
1820+--
1821+-- * 'rCreateSheetsChart'
1822+--
1823+-- * 'rDuplicateObject'
1824+--
1825+-- * 'rCreateTable'
1826+--
1827+-- * 'rCreateVideo'
1828+--
1829+-- * 'rCreateImage'
1830+--
1831+-- * 'rCreateSlide'
1832+response
1833+ :: Response
1834+response =
1835+ Response'
1836+ { _rReplaceAllShapesWithImage = Nothing
1837+ , _rCreateLine = Nothing
1838+ , _rReplaceAllText = Nothing
1839+ , _rCreateShape = Nothing
1840+ , _rCreateSheetsChart = Nothing
1841+ , _rDuplicateObject = Nothing
1842+ , _rCreateTable = Nothing
1843+ , _rCreateVideo = Nothing
1844+ , _rCreateImage = Nothing
1845+ , _rCreateSlide = Nothing
1846+ }
1847+
1848+-- | The result of replacing all shapes matching some criteria with an image.
1849+rReplaceAllShapesWithImage :: Lens' Response (Maybe ReplaceAllShapesWithImageResponse)
1850+rReplaceAllShapesWithImage
1851+ = lens _rReplaceAllShapesWithImage
1852+ (\ s a -> s{_rReplaceAllShapesWithImage = a})
1853+
1854+-- | The result of creating a line.
1855+rCreateLine :: Lens' Response (Maybe CreateLineResponse)
1856+rCreateLine
1857+ = lens _rCreateLine (\ s a -> s{_rCreateLine = a})
1858+
1859+-- | The result of replacing text.
1860+rReplaceAllText :: Lens' Response (Maybe ReplaceAllTextResponse)
1861+rReplaceAllText
1862+ = lens _rReplaceAllText
1863+ (\ s a -> s{_rReplaceAllText = a})
1864+
1865+-- | The result of creating a shape.
1866+rCreateShape :: Lens' Response (Maybe CreateShapeResponse)
1867+rCreateShape
1868+ = lens _rCreateShape (\ s a -> s{_rCreateShape = a})
1869+
1870+-- | The result of creating a Google Sheets chart.
1871+rCreateSheetsChart :: Lens' Response (Maybe CreateSheetsChartResponse)
1872+rCreateSheetsChart
1873+ = lens _rCreateSheetsChart
1874+ (\ s a -> s{_rCreateSheetsChart = a})
1875+
1876+-- | The result of duplicating an object.
1877+rDuplicateObject :: Lens' Response (Maybe DuplicateObjectResponse)
1878+rDuplicateObject
1879+ = lens _rDuplicateObject
1880+ (\ s a -> s{_rDuplicateObject = a})
1881+
1882+-- | The result of creating a table.
1883+rCreateTable :: Lens' Response (Maybe CreateTableResponse)
1884+rCreateTable
1885+ = lens _rCreateTable (\ s a -> s{_rCreateTable = a})
1886+
1887+-- | The result of creating a video.
1888+rCreateVideo :: Lens' Response (Maybe CreateVideoResponse)
1889+rCreateVideo
1890+ = lens _rCreateVideo (\ s a -> s{_rCreateVideo = a})
1891+
1892+-- | The result of creating an image.
1893+rCreateImage :: Lens' Response (Maybe CreateImageResponse)
1894+rCreateImage
1895+ = lens _rCreateImage (\ s a -> s{_rCreateImage = a})
1896+
1897+-- | The result of creating a slide.
1898+rCreateSlide :: Lens' Response (Maybe CreateSlideResponse)
1899+rCreateSlide
1900+ = lens _rCreateSlide (\ s a -> s{_rCreateSlide = a})
1901+
1902+instance FromJSON Response where
1903+ parseJSON
1904+ = withObject "Response"
1905+ (\ o ->
1906+ Response' <$>
1907+ (o .:? "replaceAllShapesWithImage") <*>
1908+ (o .:? "createLine")
1909+ <*> (o .:? "replaceAllText")
1910+ <*> (o .:? "createShape")
1911+ <*> (o .:? "createSheetsChart")
1912+ <*> (o .:? "duplicateObject")
1913+ <*> (o .:? "createTable")
1914+ <*> (o .:? "createVideo")
1915+ <*> (o .:? "createImage")
1916+ <*> (o .:? "createSlide"))
1917+
1918+instance ToJSON Response where
1919+ toJSON Response'{..}
1920+ = object
1921+ (catMaybes
1922+ [("replaceAllShapesWithImage" .=) <$>
1923+ _rReplaceAllShapesWithImage,
1924+ ("createLine" .=) <$> _rCreateLine,
1925+ ("replaceAllText" .=) <$> _rReplaceAllText,
1926+ ("createShape" .=) <$> _rCreateShape,
1927+ ("createSheetsChart" .=) <$> _rCreateSheetsChart,
1928+ ("duplicateObject" .=) <$> _rDuplicateObject,
1929+ ("createTable" .=) <$> _rCreateTable,
1930+ ("createVideo" .=) <$> _rCreateVideo,
1931+ ("createImage" .=) <$> _rCreateImage,
1932+ ("createSlide" .=) <$> _rCreateSlide])
1933+
1934+-- | A color that can either be fully opaque or fully transparent.
1935+--
1936+-- /See:/ 'optionalColor' smart constructor.
1937+newtype OptionalColor = OptionalColor'
1938+ { _ocOpaqueColor :: Maybe OpaqueColor
1939+ } deriving (Eq,Show,Data,Typeable,Generic)
1940+
1941+-- | Creates a value of 'OptionalColor' with the minimum fields required to make a request.
1942+--
1943+-- Use one of the following lenses to modify other fields as desired:
1944+--
1945+-- * 'ocOpaqueColor'
1946+optionalColor
1947+ :: OptionalColor
1948+optionalColor =
1949+ OptionalColor'
1950+ { _ocOpaqueColor = Nothing
1951+ }
1952+
1953+-- | If set, this will be used as an opaque color. If unset, this represents
1954+-- a transparent color.
1955+ocOpaqueColor :: Lens' OptionalColor (Maybe OpaqueColor)
1956+ocOpaqueColor
1957+ = lens _ocOpaqueColor
1958+ (\ s a -> s{_ocOpaqueColor = a})
1959+
1960+instance FromJSON OptionalColor where
1961+ parseJSON
1962+ = withObject "OptionalColor"
1963+ (\ o -> OptionalColor' <$> (o .:? "opaqueColor"))
1964+
1965+instance ToJSON OptionalColor where
1966+ toJSON OptionalColor'{..}
1967+ = object
1968+ (catMaybes [("opaqueColor" .=) <$> _ocOpaqueColor])
1969+
1970+-- | Duplicates a slide or page element. When duplicating a slide, the
1971+-- duplicate slide will be created immediately following the specified
1972+-- slide. When duplicating a page element, the duplicate will be placed on
1973+-- the same page at the same position as the original.
1974+--
1975+-- /See:/ 'duplicateObjectRequest' smart constructor.
1976+data DuplicateObjectRequest = DuplicateObjectRequest'
1977+ { _dorObjectId :: !(Maybe Text)
1978+ , _dorObjectIds :: !(Maybe DuplicateObjectRequestObjectIds)
1979+ } deriving (Eq,Show,Data,Typeable,Generic)
1980+
1981+-- | Creates a value of 'DuplicateObjectRequest' with the minimum fields required to make a request.
1982+--
1983+-- Use one of the following lenses to modify other fields as desired:
1984+--
1985+-- * 'dorObjectId'
1986+--
1987+-- * 'dorObjectIds'
1988+duplicateObjectRequest
1989+ :: DuplicateObjectRequest
1990+duplicateObjectRequest =
1991+ DuplicateObjectRequest'
1992+ { _dorObjectId = Nothing
1993+ , _dorObjectIds = Nothing
1994+ }
1995+
1996+-- | The ID of the object to duplicate.
1997+dorObjectId :: Lens' DuplicateObjectRequest (Maybe Text)
1998+dorObjectId
1999+ = lens _dorObjectId (\ s a -> s{_dorObjectId = a})
2000+
2001+-- | The object being duplicated may contain other objects, for example when
2002+-- duplicating a slide or a group page element. This map defines how the
2003+-- IDs of duplicated objects are generated: the keys are the IDs of the
2004+-- original objects and its values are the IDs that will be assigned to the
2005+-- corresponding duplicate object. The ID of the source object\'s duplicate
2006+-- may be specified in this map as well, using the same value of the
2007+-- \`object_id\` field as a key and the newly desired ID as the value. All
2008+-- keys must correspond to existing IDs in the presentation. All values
2009+-- must be unique in the presentation and must start with an alphanumeric
2010+-- character or an underscore (matches regex \`[a-zA-Z0-9_]\`); remaining
2011+-- characters may include those as well as a hyphen or colon (matches regex
2012+-- \`[a-zA-Z0-9_-:]\`). The length of the new ID must not be less than 5 or
2013+-- greater than 50. If any IDs of source objects are omitted from the map,
2014+-- a new random ID will be assigned. If the map is empty or unset, all
2015+-- duplicate objects will receive a new random ID.
2016+dorObjectIds :: Lens' DuplicateObjectRequest (Maybe DuplicateObjectRequestObjectIds)
2017+dorObjectIds
2018+ = lens _dorObjectIds (\ s a -> s{_dorObjectIds = a})
2019+
2020+instance FromJSON DuplicateObjectRequest where
2021+ parseJSON
2022+ = withObject "DuplicateObjectRequest"
2023+ (\ o ->
2024+ DuplicateObjectRequest' <$>
2025+ (o .:? "objectId") <*> (o .:? "objectIds"))
2026+
2027+instance ToJSON DuplicateObjectRequest where
2028+ toJSON DuplicateObjectRequest'{..}
2029+ = object
2030+ (catMaybes
2031+ [("objectId" .=) <$> _dorObjectId,
2032+ ("objectIds" .=) <$> _dorObjectIds])
2033+
2034+-- | A page in a presentation.
2035+--
2036+-- /See:/ 'page' smart constructor.
2037+data Page = Page'
2038+ { _pObjectId :: !(Maybe Text)
2039+ , _pPageElements :: !(Maybe [PageElement])
2040+ , _pSlideProperties :: !(Maybe SlideProperties)
2041+ , _pPageProperties :: !(Maybe PageProperties)
2042+ , _pLayoutProperties :: !(Maybe LayoutProperties)
2043+ , _pPageType :: !(Maybe PagePageType)
2044+ } deriving (Eq,Show,Data,Typeable,Generic)
2045+
2046+-- | Creates a value of 'Page' with the minimum fields required to make a request.
2047+--
2048+-- Use one of the following lenses to modify other fields as desired:
2049+--
2050+-- * 'pObjectId'
2051+--
2052+-- * 'pPageElements'
2053+--
2054+-- * 'pSlideProperties'
2055+--
2056+-- * 'pPageProperties'
2057+--
2058+-- * 'pLayoutProperties'
2059+--
2060+-- * 'pPageType'
2061+page
2062+ :: Page
2063+page =
2064+ Page'
2065+ { _pObjectId = Nothing
2066+ , _pPageElements = Nothing
2067+ , _pSlideProperties = Nothing
2068+ , _pPageProperties = Nothing
2069+ , _pLayoutProperties = Nothing
2070+ , _pPageType = Nothing
2071+ }
2072+
2073+-- | The object ID for this page. Object IDs used by Page and PageElement
2074+-- share the same namespace.
2075+pObjectId :: Lens' Page (Maybe Text)
2076+pObjectId
2077+ = lens _pObjectId (\ s a -> s{_pObjectId = a})
2078+
2079+-- | The page elements rendered on the page.
2080+pPageElements :: Lens' Page [PageElement]
2081+pPageElements
2082+ = lens _pPageElements
2083+ (\ s a -> s{_pPageElements = a})
2084+ . _Default
2085+ . _Coerce
2086+
2087+-- | Slide specific properties. Only set if page_type = SLIDE.
2088+pSlideProperties :: Lens' Page (Maybe SlideProperties)
2089+pSlideProperties
2090+ = lens _pSlideProperties
2091+ (\ s a -> s{_pSlideProperties = a})
2092+
2093+-- | The properties of the page.
2094+pPageProperties :: Lens' Page (Maybe PageProperties)
2095+pPageProperties
2096+ = lens _pPageProperties
2097+ (\ s a -> s{_pPageProperties = a})
2098+
2099+-- | Layout specific properties. Only set if page_type = LAYOUT.
2100+pLayoutProperties :: Lens' Page (Maybe LayoutProperties)
2101+pLayoutProperties
2102+ = lens _pLayoutProperties
2103+ (\ s a -> s{_pLayoutProperties = a})
2104+
2105+-- | The type of the page.
2106+pPageType :: Lens' Page (Maybe PagePageType)
2107+pPageType
2108+ = lens _pPageType (\ s a -> s{_pPageType = a})
2109+
2110+instance FromJSON Page where
2111+ parseJSON
2112+ = withObject "Page"
2113+ (\ o ->
2114+ Page' <$>
2115+ (o .:? "objectId") <*>
2116+ (o .:? "pageElements" .!= mempty)
2117+ <*> (o .:? "slideProperties")
2118+ <*> (o .:? "pageProperties")
2119+ <*> (o .:? "layoutProperties")
2120+ <*> (o .:? "pageType"))
2121+
2122+instance ToJSON Page where
2123+ toJSON Page'{..}
2124+ = object
2125+ (catMaybes
2126+ [("objectId" .=) <$> _pObjectId,
2127+ ("pageElements" .=) <$> _pPageElements,
2128+ ("slideProperties" .=) <$> _pSlideProperties,
2129+ ("pageProperties" .=) <$> _pPageProperties,
2130+ ("layoutProperties" .=) <$> _pLayoutProperties,
2131+ ("pageType" .=) <$> _pPageType])
2132+
2133+-- | The result of replacing text.
2134+--
2135+-- /See:/ 'replaceAllTextResponse' smart constructor.
2136+newtype ReplaceAllTextResponse = ReplaceAllTextResponse'
2137+ { _ratrOccurrencesChanged :: Maybe (Textual Int32)
2138+ } deriving (Eq,Show,Data,Typeable,Generic)
2139+
2140+-- | Creates a value of 'ReplaceAllTextResponse' with the minimum fields required to make a request.
2141+--
2142+-- Use one of the following lenses to modify other fields as desired:
2143+--
2144+-- * 'ratrOccurrencesChanged'
2145+replaceAllTextResponse
2146+ :: ReplaceAllTextResponse
2147+replaceAllTextResponse =
2148+ ReplaceAllTextResponse'
2149+ { _ratrOccurrencesChanged = Nothing
2150+ }
2151+
2152+-- | The number of occurrences changed by replacing all text.
2153+ratrOccurrencesChanged :: Lens' ReplaceAllTextResponse (Maybe Int32)
2154+ratrOccurrencesChanged
2155+ = lens _ratrOccurrencesChanged
2156+ (\ s a -> s{_ratrOccurrencesChanged = a})
2157+ . mapping _Coerce
2158+
2159+instance FromJSON ReplaceAllTextResponse where
2160+ parseJSON
2161+ = withObject "ReplaceAllTextResponse"
2162+ (\ o ->
2163+ ReplaceAllTextResponse' <$>
2164+ (o .:? "occurrencesChanged"))
2165+
2166+instance ToJSON ReplaceAllTextResponse where
2167+ toJSON ReplaceAllTextResponse'{..}
2168+ = object
2169+ (catMaybes
2170+ [("occurrencesChanged" .=) <$>
2171+ _ratrOccurrencesChanged])
2172+
2173+-- | Describes the bullet of a paragraph.
2174+--
2175+-- /See:/ 'bullet' smart constructor.
2176+data Bullet = Bullet'
2177+ { _bGlyph :: !(Maybe Text)
2178+ , _bListId :: !(Maybe Text)
2179+ , _bNestingLevel :: !(Maybe (Textual Int32))
2180+ , _bBulletStyle :: !(Maybe TextStyle)
2181+ } deriving (Eq,Show,Data,Typeable,Generic)
2182+
2183+-- | Creates a value of 'Bullet' with the minimum fields required to make a request.
2184+--
2185+-- Use one of the following lenses to modify other fields as desired:
2186+--
2187+-- * 'bGlyph'
2188+--
2189+-- * 'bListId'
2190+--
2191+-- * 'bNestingLevel'
2192+--
2193+-- * 'bBulletStyle'
2194+bullet
2195+ :: Bullet
2196+bullet =
2197+ Bullet'
2198+ { _bGlyph = Nothing
2199+ , _bListId = Nothing
2200+ , _bNestingLevel = Nothing
2201+ , _bBulletStyle = Nothing
2202+ }
2203+
2204+-- | The rendered bullet glyph for this paragraph.
2205+bGlyph :: Lens' Bullet (Maybe Text)
2206+bGlyph = lens _bGlyph (\ s a -> s{_bGlyph = a})
2207+
2208+-- | The ID of the list this paragraph belongs to.
2209+bListId :: Lens' Bullet (Maybe Text)
2210+bListId = lens _bListId (\ s a -> s{_bListId = a})
2211+
2212+-- | The nesting level of this paragraph in the list.
2213+bNestingLevel :: Lens' Bullet (Maybe Int32)
2214+bNestingLevel
2215+ = lens _bNestingLevel
2216+ (\ s a -> s{_bNestingLevel = a})
2217+ . mapping _Coerce
2218+
2219+-- | The paragraph specific text style applied to this bullet.
2220+bBulletStyle :: Lens' Bullet (Maybe TextStyle)
2221+bBulletStyle
2222+ = lens _bBulletStyle (\ s a -> s{_bBulletStyle = a})
2223+
2224+instance FromJSON Bullet where
2225+ parseJSON
2226+ = withObject "Bullet"
2227+ (\ o ->
2228+ Bullet' <$>
2229+ (o .:? "glyph") <*> (o .:? "listId") <*>
2230+ (o .:? "nestingLevel")
2231+ <*> (o .:? "bulletStyle"))
2232+
2233+instance ToJSON Bullet where
2234+ toJSON Bullet'{..}
2235+ = object
2236+ (catMaybes
2237+ [("glyph" .=) <$> _bGlyph,
2238+ ("listId" .=) <$> _bListId,
2239+ ("nestingLevel" .=) <$> _bNestingLevel,
2240+ ("bulletStyle" .=) <$> _bBulletStyle])
2241+
2242+-- | Update the properties of an Image.
2243+--
2244+-- /See:/ 'updateImagePropertiesRequest' smart constructor.
2245+data UpdateImagePropertiesRequest = UpdateImagePropertiesRequest'
2246+ { _uiprObjectId :: !(Maybe Text)
2247+ , _uiprImageProperties :: !(Maybe ImageProperties)
2248+ , _uiprFields :: !(Maybe FieldMask)
2249+ } deriving (Eq,Show,Data,Typeable,Generic)
2250+
2251+-- | Creates a value of 'UpdateImagePropertiesRequest' with the minimum fields required to make a request.
2252+--
2253+-- Use one of the following lenses to modify other fields as desired:
2254+--
2255+-- * 'uiprObjectId'
2256+--
2257+-- * 'uiprImageProperties'
2258+--
2259+-- * 'uiprFields'
2260+updateImagePropertiesRequest
2261+ :: UpdateImagePropertiesRequest
2262+updateImagePropertiesRequest =
2263+ UpdateImagePropertiesRequest'
2264+ { _uiprObjectId = Nothing
2265+ , _uiprImageProperties = Nothing
2266+ , _uiprFields = Nothing
2267+ }
2268+
2269+-- | The object ID of the image the updates are applied to.
2270+uiprObjectId :: Lens' UpdateImagePropertiesRequest (Maybe Text)
2271+uiprObjectId
2272+ = lens _uiprObjectId (\ s a -> s{_uiprObjectId = a})
2273+
2274+-- | The image properties to update.
2275+uiprImageProperties :: Lens' UpdateImagePropertiesRequest (Maybe ImageProperties)
2276+uiprImageProperties
2277+ = lens _uiprImageProperties
2278+ (\ s a -> s{_uiprImageProperties = a})
2279+
2280+-- | The fields that should be updated. At least one field must be specified.
2281+-- The root \`imageProperties\` is implied and should not be specified. A
2282+-- single \`\"*\"\` can be used as short-hand for listing every field. For
2283+-- example to update the image outline color, set \`fields\` to
2284+-- \`\"outline.outlineFill.solidFill.color\"\`. To reset a property to its
2285+-- default value, include its field name in the field mask but leave the
2286+-- field itself unset.
2287+uiprFields :: Lens' UpdateImagePropertiesRequest (Maybe FieldMask)
2288+uiprFields
2289+ = lens _uiprFields (\ s a -> s{_uiprFields = a})
2290+
2291+instance FromJSON UpdateImagePropertiesRequest where
2292+ parseJSON
2293+ = withObject "UpdateImagePropertiesRequest"
2294+ (\ o ->
2295+ UpdateImagePropertiesRequest' <$>
2296+ (o .:? "objectId") <*> (o .:? "imageProperties") <*>
2297+ (o .:? "fields"))
2298+
2299+instance ToJSON UpdateImagePropertiesRequest where
2300+ toJSON UpdateImagePropertiesRequest'{..}
2301+ = object
2302+ (catMaybes
2303+ [("objectId" .=) <$> _uiprObjectId,
2304+ ("imageProperties" .=) <$> _uiprImageProperties,
2305+ ("fields" .=) <$> _uiprFields])
2306+
2307+-- | The properties of Page that are only relevant for pages with page_type
2308+-- SLIDE.
2309+--
2310+-- /See:/ 'slideProperties' smart constructor.
2311+data SlideProperties = SlideProperties'
2312+ { _spLayoutObjectId :: !(Maybe Text)
2313+ , _spMasterObjectId :: !(Maybe Text)
2314+ } deriving (Eq,Show,Data,Typeable,Generic)
2315+
2316+-- | Creates a value of 'SlideProperties' with the minimum fields required to make a request.
2317+--
2318+-- Use one of the following lenses to modify other fields as desired:
2319+--
2320+-- * 'spLayoutObjectId'
2321+--
2322+-- * 'spMasterObjectId'
2323+slideProperties
2324+ :: SlideProperties
2325+slideProperties =
2326+ SlideProperties'
2327+ { _spLayoutObjectId = Nothing
2328+ , _spMasterObjectId = Nothing
2329+ }
2330+
2331+-- | The object ID of the layout that this slide is based on.
2332+spLayoutObjectId :: Lens' SlideProperties (Maybe Text)
2333+spLayoutObjectId
2334+ = lens _spLayoutObjectId
2335+ (\ s a -> s{_spLayoutObjectId = a})
2336+
2337+-- | The object ID of the master that this slide is based on.
2338+spMasterObjectId :: Lens' SlideProperties (Maybe Text)
2339+spMasterObjectId
2340+ = lens _spMasterObjectId
2341+ (\ s a -> s{_spMasterObjectId = a})
2342+
2343+instance FromJSON SlideProperties where
2344+ parseJSON
2345+ = withObject "SlideProperties"
2346+ (\ o ->
2347+ SlideProperties' <$>
2348+ (o .:? "layoutObjectId") <*>
2349+ (o .:? "masterObjectId"))
2350+
2351+instance ToJSON SlideProperties where
2352+ toJSON SlideProperties'{..}
2353+ = object
2354+ (catMaybes
2355+ [("layoutObjectId" .=) <$> _spLayoutObjectId,
2356+ ("masterObjectId" .=) <$> _spMasterObjectId])
2357+
2358+-- | A Google Slides presentation.
2359+--
2360+-- /See:/ 'presentation' smart constructor.
2361+data Presentation = Presentation'
2362+ { _pSlides :: !(Maybe [Page])
2363+ , _pMasters :: !(Maybe [Page])
2364+ , _pLocale :: !(Maybe Text)
2365+ , _pPresentationId :: !(Maybe Text)
2366+ , _pTitle :: !(Maybe Text)
2367+ , _pPageSize :: !(Maybe Size)
2368+ , _pLayouts :: !(Maybe [Page])
2369+ } deriving (Eq,Show,Data,Typeable,Generic)
2370+
2371+-- | Creates a value of 'Presentation' with the minimum fields required to make a request.
2372+--
2373+-- Use one of the following lenses to modify other fields as desired:
2374+--
2375+-- * 'pSlides'
2376+--
2377+-- * 'pMasters'
2378+--
2379+-- * 'pLocale'
2380+--
2381+-- * 'pPresentationId'
2382+--
2383+-- * 'pTitle'
2384+--
2385+-- * 'pPageSize'
2386+--
2387+-- * 'pLayouts'
2388+presentation
2389+ :: Presentation
2390+presentation =
2391+ Presentation'
2392+ { _pSlides = Nothing
2393+ , _pMasters = Nothing
2394+ , _pLocale = Nothing
2395+ , _pPresentationId = Nothing
2396+ , _pTitle = Nothing
2397+ , _pPageSize = Nothing
2398+ , _pLayouts = Nothing
2399+ }
2400+
2401+-- | The slides in the presentation. A slide inherits properties from a slide
2402+-- layout.
2403+pSlides :: Lens' Presentation [Page]
2404+pSlides
2405+ = lens _pSlides (\ s a -> s{_pSlides = a}) . _Default
2406+ . _Coerce
2407+
2408+-- | The slide masters in the presentation. A slide master contains all
2409+-- common page elements and the common properties for a set of layouts.
2410+-- They serve three purposes: - Placeholder shapes on a master contain the
2411+-- default text styles and shape properties of all placeholder shapes on
2412+-- pages that use that master. - The master page properties define the
2413+-- common page properties inherited by its layouts. - Any other shapes on
2414+-- the master slide will appear on all slides using that master, regardless
2415+-- of their layout.
2416+pMasters :: Lens' Presentation [Page]
2417+pMasters
2418+ = lens _pMasters (\ s a -> s{_pMasters = a}) .
2419+ _Default
2420+ . _Coerce
2421+
2422+-- | The locale of the presentation, as an IETF BCP 47 language tag.
2423+pLocale :: Lens' Presentation (Maybe Text)
2424+pLocale = lens _pLocale (\ s a -> s{_pLocale = a})
2425+
2426+-- | The ID of the presentation.
2427+pPresentationId :: Lens' Presentation (Maybe Text)
2428+pPresentationId
2429+ = lens _pPresentationId
2430+ (\ s a -> s{_pPresentationId = a})
2431+
2432+-- | The title of the presentation.
2433+pTitle :: Lens' Presentation (Maybe Text)
2434+pTitle = lens _pTitle (\ s a -> s{_pTitle = a})
2435+
2436+-- | The size of pages in the presentation.
2437+pPageSize :: Lens' Presentation (Maybe Size)
2438+pPageSize
2439+ = lens _pPageSize (\ s a -> s{_pPageSize = a})
2440+
2441+-- | The layouts in the presentation. A layout is a template that determines
2442+-- how content is arranged and styled on the slides that inherit from that
2443+-- layout.
2444+pLayouts :: Lens' Presentation [Page]
2445+pLayouts
2446+ = lens _pLayouts (\ s a -> s{_pLayouts = a}) .
2447+ _Default
2448+ . _Coerce
2449+
2450+instance FromJSON Presentation where
2451+ parseJSON
2452+ = withObject "Presentation"
2453+ (\ o ->
2454+ Presentation' <$>
2455+ (o .:? "slides" .!= mempty) <*>
2456+ (o .:? "masters" .!= mempty)
2457+ <*> (o .:? "locale")
2458+ <*> (o .:? "presentationId")
2459+ <*> (o .:? "title")
2460+ <*> (o .:? "pageSize")
2461+ <*> (o .:? "layouts" .!= mempty))
2462+
2463+instance ToJSON Presentation where
2464+ toJSON Presentation'{..}
2465+ = object
2466+ (catMaybes
2467+ [("slides" .=) <$> _pSlides,
2468+ ("masters" .=) <$> _pMasters,
2469+ ("locale" .=) <$> _pLocale,
2470+ ("presentationId" .=) <$> _pPresentationId,
2471+ ("title" .=) <$> _pTitle,
2472+ ("pageSize" .=) <$> _pPageSize,
2473+ ("layouts" .=) <$> _pLayouts])
2474+
2475+-- | A pair mapping a theme color type to the concrete color it represents.
2476+--
2477+-- /See:/ 'themeColorPair' smart constructor.
2478+data ThemeColorPair = ThemeColorPair'
2479+ { _tcpColor :: !(Maybe RgbColor)
2480+ , _tcpType :: !(Maybe ThemeColorPairType)
2481+ } deriving (Eq,Show,Data,Typeable,Generic)
2482+
2483+-- | Creates a value of 'ThemeColorPair' with the minimum fields required to make a request.
2484+--
2485+-- Use one of the following lenses to modify other fields as desired:
2486+--
2487+-- * 'tcpColor'
2488+--
2489+-- * 'tcpType'
2490+themeColorPair
2491+ :: ThemeColorPair
2492+themeColorPair =
2493+ ThemeColorPair'
2494+ { _tcpColor = Nothing
2495+ , _tcpType = Nothing
2496+ }
2497+
2498+-- | The concrete color corresponding to the theme color type above.
2499+tcpColor :: Lens' ThemeColorPair (Maybe RgbColor)
2500+tcpColor = lens _tcpColor (\ s a -> s{_tcpColor = a})
2501+
2502+-- | The type of the theme color.
2503+tcpType :: Lens' ThemeColorPair (Maybe ThemeColorPairType)
2504+tcpType = lens _tcpType (\ s a -> s{_tcpType = a})
2505+
2506+instance FromJSON ThemeColorPair where
2507+ parseJSON
2508+ = withObject "ThemeColorPair"
2509+ (\ o ->
2510+ ThemeColorPair' <$>
2511+ (o .:? "color") <*> (o .:? "type"))
2512+
2513+instance ToJSON ThemeColorPair where
2514+ toJSON ThemeColorPair'{..}
2515+ = object
2516+ (catMaybes
2517+ [("color" .=) <$> _tcpColor,
2518+ ("type" .=) <$> _tcpType])
2519+
2520+-- | The shadow properties of a page element. If these fields are unset, they
2521+-- may be inherited from a parent placeholder if it exists. If there is no
2522+-- parent, the fields will default to the value used for new page elements
2523+-- created in the Slides editor, which may depend on the page element kind.
2524+--
2525+-- /See:/ 'shadow' smart constructor.
2526+data Shadow = Shadow'
2527+ { _sTransform :: !(Maybe AffineTransform)
2528+ , _sColor :: !(Maybe OpaqueColor)
2529+ , _sBlurRadius :: !(Maybe Dimension)
2530+ , _sRotateWithShape :: !(Maybe Bool)
2531+ , _sAlpha :: !(Maybe (Textual Double))
2532+ , _sAlignment :: !(Maybe ShadowAlignment)
2533+ , _sPropertyState :: !(Maybe ShadowPropertyState)
2534+ , _sType :: !(Maybe ShadowType)
2535+ } deriving (Eq,Show,Data,Typeable,Generic)
2536+
2537+-- | Creates a value of 'Shadow' with the minimum fields required to make a request.
2538+--
2539+-- Use one of the following lenses to modify other fields as desired:
2540+--
2541+-- * 'sTransform'
2542+--
2543+-- * 'sColor'
2544+--
2545+-- * 'sBlurRadius'
2546+--
2547+-- * 'sRotateWithShape'
2548+--
2549+-- * 'sAlpha'
2550+--
2551+-- * 'sAlignment'
2552+--
2553+-- * 'sPropertyState'
2554+--
2555+-- * 'sType'
2556+shadow
2557+ :: Shadow
2558+shadow =
2559+ Shadow'
2560+ { _sTransform = Nothing
2561+ , _sColor = Nothing
2562+ , _sBlurRadius = Nothing
2563+ , _sRotateWithShape = Nothing
2564+ , _sAlpha = Nothing
2565+ , _sAlignment = Nothing
2566+ , _sPropertyState = Nothing
2567+ , _sType = Nothing
2568+ }
2569+
2570+-- | Transform that encodes the translate, scale, and skew of the shadow,
2571+-- relative to the alignment position.
2572+sTransform :: Lens' Shadow (Maybe AffineTransform)
2573+sTransform
2574+ = lens _sTransform (\ s a -> s{_sTransform = a})
2575+
2576+-- | The shadow color value.
2577+sColor :: Lens' Shadow (Maybe OpaqueColor)
2578+sColor = lens _sColor (\ s a -> s{_sColor = a})
2579+
2580+-- | The radius of the shadow blur. The larger the radius, the more diffuse
2581+-- the shadow becomes.
2582+sBlurRadius :: Lens' Shadow (Maybe Dimension)
2583+sBlurRadius
2584+ = lens _sBlurRadius (\ s a -> s{_sBlurRadius = a})
2585+
2586+-- | Whether the shadow should rotate with the shape.
2587+sRotateWithShape :: Lens' Shadow (Maybe Bool)
2588+sRotateWithShape
2589+ = lens _sRotateWithShape
2590+ (\ s a -> s{_sRotateWithShape = a})
2591+
2592+-- | The alpha of the shadow\'s color, from 0.0 to 1.0.
2593+sAlpha :: Lens' Shadow (Maybe Double)
2594+sAlpha
2595+ = lens _sAlpha (\ s a -> s{_sAlpha = a}) .
2596+ mapping _Coerce
2597+
2598+-- | The alignment point of the shadow, that sets the origin for translate,
2599+-- scale and skew of the shadow.
2600+sAlignment :: Lens' Shadow (Maybe ShadowAlignment)
2601+sAlignment
2602+ = lens _sAlignment (\ s a -> s{_sAlignment = a})
2603+
2604+-- | The shadow property state. Updating the the shadow on a page element
2605+-- will implicitly update this field to \`RENDERED\`, unless another value
2606+-- is specified in the same request. To have no shadow on a page element,
2607+-- set this field to \`NOT_RENDERED\`. In this case, any other shadow
2608+-- fields set in the same request will be ignored.
2609+sPropertyState :: Lens' Shadow (Maybe ShadowPropertyState)
2610+sPropertyState
2611+ = lens _sPropertyState
2612+ (\ s a -> s{_sPropertyState = a})
2613+
2614+-- | The type of the shadow.
2615+sType :: Lens' Shadow (Maybe ShadowType)
2616+sType = lens _sType (\ s a -> s{_sType = a})
2617+
2618+instance FromJSON Shadow where
2619+ parseJSON
2620+ = withObject "Shadow"
2621+ (\ o ->
2622+ Shadow' <$>
2623+ (o .:? "transform") <*> (o .:? "color") <*>
2624+ (o .:? "blurRadius")
2625+ <*> (o .:? "rotateWithShape")
2626+ <*> (o .:? "alpha")
2627+ <*> (o .:? "alignment")
2628+ <*> (o .:? "propertyState")
2629+ <*> (o .:? "type"))
2630+
2631+instance ToJSON Shadow where
2632+ toJSON Shadow'{..}
2633+ = object
2634+ (catMaybes
2635+ [("transform" .=) <$> _sTransform,
2636+ ("color" .=) <$> _sColor,
2637+ ("blurRadius" .=) <$> _sBlurRadius,
2638+ ("rotateWithShape" .=) <$> _sRotateWithShape,
2639+ ("alpha" .=) <$> _sAlpha,
2640+ ("alignment" .=) <$> _sAlignment,
2641+ ("propertyState" .=) <$> _sPropertyState,
2642+ ("type" .=) <$> _sType])
2643+
2644+-- | The properties of the Image.
2645+--
2646+-- /See:/ 'imageProperties' smart constructor.
2647+data ImageProperties = ImageProperties'
2648+ { _ipCropProperties :: !(Maybe CropProperties)
2649+ , _ipLink :: !(Maybe Link)
2650+ , _ipTransparency :: !(Maybe (Textual Double))
2651+ , _ipShadow :: !(Maybe Shadow)
2652+ , _ipContrast :: !(Maybe (Textual Double))
2653+ , _ipRecolor :: !(Maybe Recolor)
2654+ , _ipOutline :: !(Maybe Outline)
2655+ , _ipBrightness :: !(Maybe (Textual Double))
2656+ } deriving (Eq,Show,Data,Typeable,Generic)
2657+
2658+-- | Creates a value of 'ImageProperties' with the minimum fields required to make a request.
2659+--
2660+-- Use one of the following lenses to modify other fields as desired:
2661+--
2662+-- * 'ipCropProperties'
2663+--
2664+-- * 'ipLink'
2665+--
2666+-- * 'ipTransparency'
2667+--
2668+-- * 'ipShadow'
2669+--
2670+-- * 'ipContrast'
2671+--
2672+-- * 'ipRecolor'
2673+--
2674+-- * 'ipOutline'
2675+--
2676+-- * 'ipBrightness'
2677+imageProperties
2678+ :: ImageProperties
2679+imageProperties =
2680+ ImageProperties'
2681+ { _ipCropProperties = Nothing
2682+ , _ipLink = Nothing
2683+ , _ipTransparency = Nothing
2684+ , _ipShadow = Nothing
2685+ , _ipContrast = Nothing
2686+ , _ipRecolor = Nothing
2687+ , _ipOutline = Nothing
2688+ , _ipBrightness = Nothing
2689+ }
2690+
2691+-- | The crop properties of the image. If not set, the image is not cropped.
2692+-- This property is read-only.
2693+ipCropProperties :: Lens' ImageProperties (Maybe CropProperties)
2694+ipCropProperties
2695+ = lens _ipCropProperties
2696+ (\ s a -> s{_ipCropProperties = a})
2697+
2698+-- | The hyperlink destination of the image. If unset, there is no link.
2699+ipLink :: Lens' ImageProperties (Maybe Link)
2700+ipLink = lens _ipLink (\ s a -> s{_ipLink = a})
2701+
2702+-- | The transparency effect of the image. The value should be in the
2703+-- interval [0.0, 1.0], where 0 means no effect and 1 means completely
2704+-- transparent. This property is read-only.
2705+ipTransparency :: Lens' ImageProperties (Maybe Double)
2706+ipTransparency
2707+ = lens _ipTransparency
2708+ (\ s a -> s{_ipTransparency = a})
2709+ . mapping _Coerce
2710+
2711+-- | The shadow of the image. If not set, the image has no shadow. This
2712+-- property is read-only.
2713+ipShadow :: Lens' ImageProperties (Maybe Shadow)
2714+ipShadow = lens _ipShadow (\ s a -> s{_ipShadow = a})
2715+
2716+-- | The contrast effect of the image. The value should be in the interval
2717+-- [-1.0, 1.0], where 0 means no effect. This property is read-only.
2718+ipContrast :: Lens' ImageProperties (Maybe Double)
2719+ipContrast
2720+ = lens _ipContrast (\ s a -> s{_ipContrast = a}) .
2721+ mapping _Coerce
2722+
2723+-- | The recolor effect of the image. If not set, the image is not recolored.
2724+-- This property is read-only.
2725+ipRecolor :: Lens' ImageProperties (Maybe Recolor)
2726+ipRecolor
2727+ = lens _ipRecolor (\ s a -> s{_ipRecolor = a})
2728+
2729+-- | The outline of the image. If not set, the the image has no outline.
2730+ipOutline :: Lens' ImageProperties (Maybe Outline)
2731+ipOutline
2732+ = lens _ipOutline (\ s a -> s{_ipOutline = a})
2733+
2734+-- | The brightness effect of the image. The value should be in the interval
2735+-- [-1.0, 1.0], where 0 means no effect. This property is read-only.
2736+ipBrightness :: Lens' ImageProperties (Maybe Double)
2737+ipBrightness
2738+ = lens _ipBrightness (\ s a -> s{_ipBrightness = a})
2739+ . mapping _Coerce
2740+
2741+instance FromJSON ImageProperties where
2742+ parseJSON
2743+ = withObject "ImageProperties"
2744+ (\ o ->
2745+ ImageProperties' <$>
2746+ (o .:? "cropProperties") <*> (o .:? "link") <*>
2747+ (o .:? "transparency")
2748+ <*> (o .:? "shadow")
2749+ <*> (o .:? "contrast")
2750+ <*> (o .:? "recolor")
2751+ <*> (o .:? "outline")
2752+ <*> (o .:? "brightness"))
2753+
2754+instance ToJSON ImageProperties where
2755+ toJSON ImageProperties'{..}
2756+ = object
2757+ (catMaybes
2758+ [("cropProperties" .=) <$> _ipCropProperties,
2759+ ("link" .=) <$> _ipLink,
2760+ ("transparency" .=) <$> _ipTransparency,
2761+ ("shadow" .=) <$> _ipShadow,
2762+ ("contrast" .=) <$> _ipContrast,
2763+ ("recolor" .=) <$> _ipRecolor,
2764+ ("outline" .=) <$> _ipOutline,
2765+ ("brightness" .=) <$> _ipBrightness])
2766+
2767+-- | A PageElement kind representing a line, curved connector, or bent
2768+-- connector.
2769+--
2770+-- /See:/ 'line' smart constructor.
2771+data Line = Line'
2772+ { _lLineProperties :: !(Maybe LineProperties)
2773+ , _lLineType :: !(Maybe LineLineType)
2774+ } deriving (Eq,Show,Data,Typeable,Generic)
2775+
2776+-- | Creates a value of 'Line' with the minimum fields required to make a request.
2777+--
2778+-- Use one of the following lenses to modify other fields as desired:
2779+--
2780+-- * 'lLineProperties'
2781+--
2782+-- * 'lLineType'
2783+line
2784+ :: Line
2785+line =
2786+ Line'
2787+ { _lLineProperties = Nothing
2788+ , _lLineType = Nothing
2789+ }
2790+
2791+-- | The properties of the line.
2792+lLineProperties :: Lens' Line (Maybe LineProperties)
2793+lLineProperties
2794+ = lens _lLineProperties
2795+ (\ s a -> s{_lLineProperties = a})
2796+
2797+-- | The type of the line.
2798+lLineType :: Lens' Line (Maybe LineLineType)
2799+lLineType
2800+ = lens _lLineType (\ s a -> s{_lLineType = a})
2801+
2802+instance FromJSON Line where
2803+ parseJSON
2804+ = withObject "Line"
2805+ (\ o ->
2806+ Line' <$>
2807+ (o .:? "lineProperties") <*> (o .:? "lineType"))
2808+
2809+instance ToJSON Line where
2810+ toJSON Line'{..}
2811+ = object
2812+ (catMaybes
2813+ [("lineProperties" .=) <$> _lLineProperties,
2814+ ("lineType" .=) <$> _lLineType])
2815+
2816+-- | The result of creating a video.
2817+--
2818+-- /See:/ 'createVideoResponse' smart constructor.
2819+newtype CreateVideoResponse = CreateVideoResponse'
2820+ { _cvrObjectId :: Maybe Text
2821+ } deriving (Eq,Show,Data,Typeable,Generic)
2822+
2823+-- | Creates a value of 'CreateVideoResponse' with the minimum fields required to make a request.
2824+--
2825+-- Use one of the following lenses to modify other fields as desired:
2826+--
2827+-- * 'cvrObjectId'
2828+createVideoResponse
2829+ :: CreateVideoResponse
2830+createVideoResponse =
2831+ CreateVideoResponse'
2832+ { _cvrObjectId = Nothing
2833+ }
2834+
2835+-- | The object ID of the created video.
2836+cvrObjectId :: Lens' CreateVideoResponse (Maybe Text)
2837+cvrObjectId
2838+ = lens _cvrObjectId (\ s a -> s{_cvrObjectId = a})
2839+
2840+instance FromJSON CreateVideoResponse where
2841+ parseJSON
2842+ = withObject "CreateVideoResponse"
2843+ (\ o -> CreateVideoResponse' <$> (o .:? "objectId"))
2844+
2845+instance ToJSON CreateVideoResponse where
2846+ toJSON CreateVideoResponse'{..}
2847+ = object
2848+ (catMaybes [("objectId" .=) <$> _cvrObjectId])
2849+
2850+-- | Slide layout reference. This may reference either: - A predefined layout
2851+-- - One of the layouts in the presentation.
2852+--
2853+-- /See:/ 'layoutReference' smart constructor.
2854+data LayoutReference = LayoutReference'
2855+ { _lrPredefinedLayout :: !(Maybe LayoutReferencePredefinedLayout)
2856+ , _lrLayoutId :: !(Maybe Text)
2857+ } deriving (Eq,Show,Data,Typeable,Generic)
2858+
2859+-- | Creates a value of 'LayoutReference' with the minimum fields required to make a request.
2860+--
2861+-- Use one of the following lenses to modify other fields as desired:
2862+--
2863+-- * 'lrPredefinedLayout'
2864+--
2865+-- * 'lrLayoutId'
2866+layoutReference
2867+ :: LayoutReference
2868+layoutReference =
2869+ LayoutReference'
2870+ { _lrPredefinedLayout = Nothing
2871+ , _lrLayoutId = Nothing
2872+ }
2873+
2874+-- | Predefined layout.
2875+lrPredefinedLayout :: Lens' LayoutReference (Maybe LayoutReferencePredefinedLayout)
2876+lrPredefinedLayout
2877+ = lens _lrPredefinedLayout
2878+ (\ s a -> s{_lrPredefinedLayout = a})
2879+
2880+-- | Layout ID: the object ID of one of the layouts in the presentation.
2881+lrLayoutId :: Lens' LayoutReference (Maybe Text)
2882+lrLayoutId
2883+ = lens _lrLayoutId (\ s a -> s{_lrLayoutId = a})
2884+
2885+instance FromJSON LayoutReference where
2886+ parseJSON
2887+ = withObject "LayoutReference"
2888+ (\ o ->
2889+ LayoutReference' <$>
2890+ (o .:? "predefinedLayout") <*> (o .:? "layoutId"))
2891+
2892+instance ToJSON LayoutReference where
2893+ toJSON LayoutReference'{..}
2894+ = object
2895+ (catMaybes
2896+ [("predefinedLayout" .=) <$> _lrPredefinedLayout,
2897+ ("layoutId" .=) <$> _lrLayoutId])
2898+
2899+-- | The fill of the line.
2900+--
2901+-- /See:/ 'lineFill' smart constructor.
2902+newtype LineFill = LineFill'
2903+ { _lfSolidFill :: Maybe SolidFill
2904+ } deriving (Eq,Show,Data,Typeable,Generic)
2905+
2906+-- | Creates a value of 'LineFill' with the minimum fields required to make a request.
2907+--
2908+-- Use one of the following lenses to modify other fields as desired:
2909+--
2910+-- * 'lfSolidFill'
2911+lineFill
2912+ :: LineFill
2913+lineFill =
2914+ LineFill'
2915+ { _lfSolidFill = Nothing
2916+ }
2917+
2918+-- | Solid color fill.
2919+lfSolidFill :: Lens' LineFill (Maybe SolidFill)
2920+lfSolidFill
2921+ = lens _lfSolidFill (\ s a -> s{_lfSolidFill = a})
2922+
2923+instance FromJSON LineFill where
2924+ parseJSON
2925+ = withObject "LineFill"
2926+ (\ o -> LineFill' <$> (o .:? "solidFill"))
2927+
2928+instance ToJSON LineFill where
2929+ toJSON LineFill'{..}
2930+ = object
2931+ (catMaybes [("solidFill" .=) <$> _lfSolidFill])
2932+
2933+-- | Updates the transform of a page element.
2934+--
2935+-- /See:/ 'updatePageElementTransformRequest' smart constructor.
2936+data UpdatePageElementTransformRequest = UpdatePageElementTransformRequest'
2937+ { _upetrTransform :: !(Maybe AffineTransform)
2938+ , _upetrObjectId :: !(Maybe Text)
2939+ , _upetrApplyMode :: !(Maybe UpdatePageElementTransformRequestApplyMode)
2940+ } deriving (Eq,Show,Data,Typeable,Generic)
2941+
2942+-- | Creates a value of 'UpdatePageElementTransformRequest' with the minimum fields required to make a request.
2943+--
2944+-- Use one of the following lenses to modify other fields as desired:
2945+--
2946+-- * 'upetrTransform'
2947+--
2948+-- * 'upetrObjectId'
2949+--
2950+-- * 'upetrApplyMode'
2951+updatePageElementTransformRequest
2952+ :: UpdatePageElementTransformRequest
2953+updatePageElementTransformRequest =
2954+ UpdatePageElementTransformRequest'
2955+ { _upetrTransform = Nothing
2956+ , _upetrObjectId = Nothing
2957+ , _upetrApplyMode = Nothing
2958+ }
2959+
2960+-- | The input transform matrix used to update the page element.
2961+upetrTransform :: Lens' UpdatePageElementTransformRequest (Maybe AffineTransform)
2962+upetrTransform
2963+ = lens _upetrTransform
2964+ (\ s a -> s{_upetrTransform = a})
2965+
2966+-- | The object ID of the page element to update.
2967+upetrObjectId :: Lens' UpdatePageElementTransformRequest (Maybe Text)
2968+upetrObjectId
2969+ = lens _upetrObjectId
2970+ (\ s a -> s{_upetrObjectId = a})
2971+
2972+-- | The apply mode of the transform update.
2973+upetrApplyMode :: Lens' UpdatePageElementTransformRequest (Maybe UpdatePageElementTransformRequestApplyMode)
2974+upetrApplyMode
2975+ = lens _upetrApplyMode
2976+ (\ s a -> s{_upetrApplyMode = a})
2977+
2978+instance FromJSON UpdatePageElementTransformRequest
2979+ where
2980+ parseJSON
2981+ = withObject "UpdatePageElementTransformRequest"
2982+ (\ o ->
2983+ UpdatePageElementTransformRequest' <$>
2984+ (o .:? "transform") <*> (o .:? "objectId") <*>
2985+ (o .:? "applyMode"))
2986+
2987+instance ToJSON UpdatePageElementTransformRequest
2988+ where
2989+ toJSON UpdatePageElementTransformRequest'{..}
2990+ = object
2991+ (catMaybes
2992+ [("transform" .=) <$> _upetrTransform,
2993+ ("objectId" .=) <$> _upetrObjectId,
2994+ ("applyMode" .=) <$> _upetrApplyMode])
2995+
2996+-- | Inserts rows into a table.
2997+--
2998+-- /See:/ 'insertTableRowsRequest' smart constructor.
2999+data InsertTableRowsRequest = InsertTableRowsRequest'
3000+ { _itrrInsertBelow :: !(Maybe Bool)
3001+ , _itrrNumber :: !(Maybe (Textual Int32))
3002+ , _itrrCellLocation :: !(Maybe TableCellLocation)
3003+ , _itrrTableObjectId :: !(Maybe Text)
3004+ } deriving (Eq,Show,Data,Typeable,Generic)
3005+
3006+-- | Creates a value of 'InsertTableRowsRequest' with the minimum fields required to make a request.
3007+--
3008+-- Use one of the following lenses to modify other fields as desired:
3009+--
3010+-- * 'itrrInsertBelow'
3011+--
3012+-- * 'itrrNumber'
3013+--
3014+-- * 'itrrCellLocation'
3015+--
3016+-- * 'itrrTableObjectId'
3017+insertTableRowsRequest
3018+ :: InsertTableRowsRequest
3019+insertTableRowsRequest =
3020+ InsertTableRowsRequest'
3021+ { _itrrInsertBelow = Nothing
3022+ , _itrrNumber = Nothing
3023+ , _itrrCellLocation = Nothing
3024+ , _itrrTableObjectId = Nothing
3025+ }
3026+
3027+-- | Whether to insert new rows below the reference cell location. -
3028+-- \`True\`: insert below the cell. - \`False\`: insert above the cell.
3029+itrrInsertBelow :: Lens' InsertTableRowsRequest (Maybe Bool)
3030+itrrInsertBelow
3031+ = lens _itrrInsertBelow
3032+ (\ s a -> s{_itrrInsertBelow = a})
3033+
3034+-- | The number of rows to be inserted. Maximum 20 per request.
3035+itrrNumber :: Lens' InsertTableRowsRequest (Maybe Int32)
3036+itrrNumber
3037+ = lens _itrrNumber (\ s a -> s{_itrrNumber = a}) .
3038+ mapping _Coerce
3039+
3040+-- | The reference table cell location from which rows will be inserted. A
3041+-- new row will be inserted above (or below) the row where the reference
3042+-- cell is. If the reference cell is a merged cell, a new row will be
3043+-- inserted above (or below) the merged cell.
3044+itrrCellLocation :: Lens' InsertTableRowsRequest (Maybe TableCellLocation)
3045+itrrCellLocation
3046+ = lens _itrrCellLocation
3047+ (\ s a -> s{_itrrCellLocation = a})
3048+
3049+-- | The table to insert rows into.
3050+itrrTableObjectId :: Lens' InsertTableRowsRequest (Maybe Text)
3051+itrrTableObjectId
3052+ = lens _itrrTableObjectId
3053+ (\ s a -> s{_itrrTableObjectId = a})
3054+
3055+instance FromJSON InsertTableRowsRequest where
3056+ parseJSON
3057+ = withObject "InsertTableRowsRequest"
3058+ (\ o ->
3059+ InsertTableRowsRequest' <$>
3060+ (o .:? "insertBelow") <*> (o .:? "number") <*>
3061+ (o .:? "cellLocation")
3062+ <*> (o .:? "tableObjectId"))
3063+
3064+instance ToJSON InsertTableRowsRequest where
3065+ toJSON InsertTableRowsRequest'{..}
3066+ = object
3067+ (catMaybes
3068+ [("insertBelow" .=) <$> _itrrInsertBelow,
3069+ ("number" .=) <$> _itrrNumber,
3070+ ("cellLocation" .=) <$> _itrrCellLocation,
3071+ ("tableObjectId" .=) <$> _itrrTableObjectId])
3072+
3073+-- | A PageElement kind representing a video.
3074+--
3075+-- /See:/ 'video' smart constructor.
3076+data Video = Video'
3077+ { _vURL :: !(Maybe Text)
3078+ , _vSource :: !(Maybe VideoSource)
3079+ , _vId :: !(Maybe Text)
3080+ , _vVideoProperties :: !(Maybe VideoProperties)
3081+ } deriving (Eq,Show,Data,Typeable,Generic)
3082+
3083+-- | Creates a value of 'Video' with the minimum fields required to make a request.
3084+--
3085+-- Use one of the following lenses to modify other fields as desired:
3086+--
3087+-- * 'vURL'
3088+--
3089+-- * 'vSource'
3090+--
3091+-- * 'vId'
3092+--
3093+-- * 'vVideoProperties'
3094+video
3095+ :: Video
3096+video =
3097+ Video'
3098+ { _vURL = Nothing
3099+ , _vSource = Nothing
3100+ , _vId = Nothing
3101+ , _vVideoProperties = Nothing
3102+ }
3103+
3104+-- | An URL to a video. The URL is valid as long as the source video exists
3105+-- and sharing settings do not change.
3106+vURL :: Lens' Video (Maybe Text)
3107+vURL = lens _vURL (\ s a -> s{_vURL = a})
3108+
3109+-- | The video source.
3110+vSource :: Lens' Video (Maybe VideoSource)
3111+vSource = lens _vSource (\ s a -> s{_vSource = a})
3112+
3113+-- | The video source\'s unique identifier for this video.
3114+vId :: Lens' Video (Maybe Text)
3115+vId = lens _vId (\ s a -> s{_vId = a})
3116+
3117+-- | The properties of the video.
3118+vVideoProperties :: Lens' Video (Maybe VideoProperties)
3119+vVideoProperties
3120+ = lens _vVideoProperties
3121+ (\ s a -> s{_vVideoProperties = a})
3122+
3123+instance FromJSON Video where
3124+ parseJSON
3125+ = withObject "Video"
3126+ (\ o ->
3127+ Video' <$>
3128+ (o .:? "url") <*> (o .:? "source") <*> (o .:? "id")
3129+ <*> (o .:? "videoProperties"))
3130+
3131+instance ToJSON Video where
3132+ toJSON Video'{..}
3133+ = object
3134+ (catMaybes
3135+ [("url" .=) <$> _vURL, ("source" .=) <$> _vSource,
3136+ ("id" .=) <$> _vId,
3137+ ("videoProperties" .=) <$> _vVideoProperties])
3138+
3139+-- | The properties of the TableCell.
3140+--
3141+-- /See:/ 'tableCellProperties' smart constructor.
3142+newtype TableCellProperties = TableCellProperties'
3143+ { _tcpTableCellBackgRoundFill :: Maybe TableCellBackgRoundFill
3144+ } deriving (Eq,Show,Data,Typeable,Generic)
3145+
3146+-- | Creates a value of 'TableCellProperties' with the minimum fields required to make a request.
3147+--
3148+-- Use one of the following lenses to modify other fields as desired:
3149+--
3150+-- * 'tcpTableCellBackgRoundFill'
3151+tableCellProperties
3152+ :: TableCellProperties
3153+tableCellProperties =
3154+ TableCellProperties'
3155+ { _tcpTableCellBackgRoundFill = Nothing
3156+ }
3157+
3158+-- | The background fill of the table cell. The default fill matches the fill
3159+-- for newly created table cells in the Slides editor.
3160+tcpTableCellBackgRoundFill :: Lens' TableCellProperties (Maybe TableCellBackgRoundFill)
3161+tcpTableCellBackgRoundFill
3162+ = lens _tcpTableCellBackgRoundFill
3163+ (\ s a -> s{_tcpTableCellBackgRoundFill = a})
3164+
3165+instance FromJSON TableCellProperties where
3166+ parseJSON
3167+ = withObject "TableCellProperties"
3168+ (\ o ->
3169+ TableCellProperties' <$>
3170+ (o .:? "tableCellBackgroundFill"))
3171+
3172+instance ToJSON TableCellProperties where
3173+ toJSON TableCellProperties'{..}
3174+ = object
3175+ (catMaybes
3176+ [("tableCellBackgroundFill" .=) <$>
3177+ _tcpTableCellBackgRoundFill])
3178+
3179+-- | The result of creating a line.
3180+--
3181+-- /See:/ 'createLineResponse' smart constructor.
3182+newtype CreateLineResponse = CreateLineResponse'
3183+ { _clrObjectId :: Maybe Text
3184+ } deriving (Eq,Show,Data,Typeable,Generic)
3185+
3186+-- | Creates a value of 'CreateLineResponse' with the minimum fields required to make a request.
3187+--
3188+-- Use one of the following lenses to modify other fields as desired:
3189+--
3190+-- * 'clrObjectId'
3191+createLineResponse
3192+ :: CreateLineResponse
3193+createLineResponse =
3194+ CreateLineResponse'
3195+ { _clrObjectId = Nothing
3196+ }
3197+
3198+-- | The object ID of the created line.
3199+clrObjectId :: Lens' CreateLineResponse (Maybe Text)
3200+clrObjectId
3201+ = lens _clrObjectId (\ s a -> s{_clrObjectId = a})
3202+
3203+instance FromJSON CreateLineResponse where
3204+ parseJSON
3205+ = withObject "CreateLineResponse"
3206+ (\ o -> CreateLineResponse' <$> (o .:? "objectId"))
3207+
3208+instance ToJSON CreateLineResponse where
3209+ toJSON CreateLineResponse'{..}
3210+ = object
3211+ (catMaybes [("objectId" .=) <$> _clrObjectId])
3212+
3213+-- | A PageElement kind representing word art.
3214+--
3215+-- /See:/ 'wordArt' smart constructor.
3216+newtype WordArt = WordArt'
3217+ { _waRenderedText :: Maybe Text
3218+ } deriving (Eq,Show,Data,Typeable,Generic)
3219+
3220+-- | Creates a value of 'WordArt' with the minimum fields required to make a request.
3221+--
3222+-- Use one of the following lenses to modify other fields as desired:
3223+--
3224+-- * 'waRenderedText'
3225+wordArt
3226+ :: WordArt
3227+wordArt =
3228+ WordArt'
3229+ { _waRenderedText = Nothing
3230+ }
3231+
3232+-- | The text rendered as word art.
3233+waRenderedText :: Lens' WordArt (Maybe Text)
3234+waRenderedText
3235+ = lens _waRenderedText
3236+ (\ s a -> s{_waRenderedText = a})
3237+
3238+instance FromJSON WordArt where
3239+ parseJSON
3240+ = withObject "WordArt"
3241+ (\ o -> WordArt' <$> (o .:? "renderedText"))
3242+
3243+instance ToJSON WordArt where
3244+ toJSON WordArt'{..}
3245+ = object
3246+ (catMaybes [("renderedText" .=) <$> _waRenderedText])
3247+
3248+-- | The table cell background fill.
3249+--
3250+-- /See:/ 'tableCellBackgRoundFill' smart constructor.
3251+data TableCellBackgRoundFill = TableCellBackgRoundFill'
3252+ { _tcbrfSolidFill :: !(Maybe SolidFill)
3253+ , _tcbrfPropertyState :: !(Maybe TableCellBackgRoundFillPropertyState)
3254+ } deriving (Eq,Show,Data,Typeable,Generic)
3255+
3256+-- | Creates a value of 'TableCellBackgRoundFill' with the minimum fields required to make a request.
3257+--
3258+-- Use one of the following lenses to modify other fields as desired:
3259+--
3260+-- * 'tcbrfSolidFill'
3261+--
3262+-- * 'tcbrfPropertyState'
3263+tableCellBackgRoundFill
3264+ :: TableCellBackgRoundFill
3265+tableCellBackgRoundFill =
3266+ TableCellBackgRoundFill'
3267+ { _tcbrfSolidFill = Nothing
3268+ , _tcbrfPropertyState = Nothing
3269+ }
3270+
3271+-- | Solid color fill.
3272+tcbrfSolidFill :: Lens' TableCellBackgRoundFill (Maybe SolidFill)
3273+tcbrfSolidFill
3274+ = lens _tcbrfSolidFill
3275+ (\ s a -> s{_tcbrfSolidFill = a})
3276+
3277+-- | The background fill property state. Updating the the fill on a table
3278+-- cell will implicitly update this field to \`RENDERED\`, unless another
3279+-- value is specified in the same request. To have no fill on a table cell,
3280+-- set this field to \`NOT_RENDERED\`. In this case, any other fill fields
3281+-- set in the same request will be ignored.
3282+tcbrfPropertyState :: Lens' TableCellBackgRoundFill (Maybe TableCellBackgRoundFillPropertyState)
3283+tcbrfPropertyState
3284+ = lens _tcbrfPropertyState
3285+ (\ s a -> s{_tcbrfPropertyState = a})
3286+
3287+instance FromJSON TableCellBackgRoundFill where
3288+ parseJSON
3289+ = withObject "TableCellBackgRoundFill"
3290+ (\ o ->
3291+ TableCellBackgRoundFill' <$>
3292+ (o .:? "solidFill") <*> (o .:? "propertyState"))
3293+
3294+instance ToJSON TableCellBackgRoundFill where
3295+ toJSON TableCellBackgRoundFill'{..}
3296+ = object
3297+ (catMaybes
3298+ [("solidFill" .=) <$> _tcbrfSolidFill,
3299+ ("propertyState" .=) <$> _tcbrfPropertyState])
3300+
3301+-- | A TextElement kind that represents a run of text that all has the same
3302+-- styling.
3303+--
3304+-- /See:/ 'textRun' smart constructor.
3305+data TextRun = TextRun'
3306+ { _trStyle :: !(Maybe TextStyle)
3307+ , _trContent :: !(Maybe Text)
3308+ } deriving (Eq,Show,Data,Typeable,Generic)
3309+
3310+-- | Creates a value of 'TextRun' with the minimum fields required to make a request.
3311+--
3312+-- Use one of the following lenses to modify other fields as desired:
3313+--
3314+-- * 'trStyle'
3315+--
3316+-- * 'trContent'
3317+textRun
3318+ :: TextRun
3319+textRun =
3320+ TextRun'
3321+ { _trStyle = Nothing
3322+ , _trContent = Nothing
3323+ }
3324+
3325+-- | The styling applied to this run.
3326+trStyle :: Lens' TextRun (Maybe TextStyle)
3327+trStyle = lens _trStyle (\ s a -> s{_trStyle = a})
3328+
3329+-- | The text of this run.
3330+trContent :: Lens' TextRun (Maybe Text)
3331+trContent
3332+ = lens _trContent (\ s a -> s{_trContent = a})
3333+
3334+instance FromJSON TextRun where
3335+ parseJSON
3336+ = withObject "TextRun"
3337+ (\ o ->
3338+ TextRun' <$> (o .:? "style") <*> (o .:? "content"))
3339+
3340+instance ToJSON TextRun where
3341+ toJSON TextRun'{..}
3342+ = object
3343+ (catMaybes
3344+ [("style" .=) <$> _trStyle,
3345+ ("content" .=) <$> _trContent])
3346+
3347+-- | Refreshes an embedded Google Sheets chart by replacing it with the
3348+-- latest version of the chart from Google Sheets. NOTE: Refreshing charts
3349+-- requires at least one of the spreadsheets.readonly, spreadsheets,
3350+-- drive.readonly, or drive OAuth scopes.
3351+--
3352+-- /See:/ 'refreshSheetsChartRequest' smart constructor.
3353+newtype RefreshSheetsChartRequest = RefreshSheetsChartRequest'
3354+ { _rscrObjectId :: Maybe Text
3355+ } deriving (Eq,Show,Data,Typeable,Generic)
3356+
3357+-- | Creates a value of 'RefreshSheetsChartRequest' with the minimum fields required to make a request.
3358+--
3359+-- Use one of the following lenses to modify other fields as desired:
3360+--
3361+-- * 'rscrObjectId'
3362+refreshSheetsChartRequest
3363+ :: RefreshSheetsChartRequest
3364+refreshSheetsChartRequest =
3365+ RefreshSheetsChartRequest'
3366+ { _rscrObjectId = Nothing
3367+ }
3368+
3369+-- | The object ID of the chart to refresh.
3370+rscrObjectId :: Lens' RefreshSheetsChartRequest (Maybe Text)
3371+rscrObjectId
3372+ = lens _rscrObjectId (\ s a -> s{_rscrObjectId = a})
3373+
3374+instance FromJSON RefreshSheetsChartRequest where
3375+ parseJSON
3376+ = withObject "RefreshSheetsChartRequest"
3377+ (\ o ->
3378+ RefreshSheetsChartRequest' <$> (o .:? "objectId"))
3379+
3380+instance ToJSON RefreshSheetsChartRequest where
3381+ toJSON RefreshSheetsChartRequest'{..}
3382+ = object
3383+ (catMaybes [("objectId" .=) <$> _rscrObjectId])
3384+
3385+-- | Properties and contents of each row in a table.
3386+--
3387+-- /See:/ 'tableRow' smart constructor.
3388+data TableRow = TableRow'
3389+ { _trTableCells :: !(Maybe [TableCell])
3390+ , _trRowHeight :: !(Maybe Dimension)
3391+ } deriving (Eq,Show,Data,Typeable,Generic)
3392+
3393+-- | Creates a value of 'TableRow' with the minimum fields required to make a request.
3394+--
3395+-- Use one of the following lenses to modify other fields as desired:
3396+--
3397+-- * 'trTableCells'
3398+--
3399+-- * 'trRowHeight'
3400+tableRow
3401+ :: TableRow
3402+tableRow =
3403+ TableRow'
3404+ { _trTableCells = Nothing
3405+ , _trRowHeight = Nothing
3406+ }
3407+
3408+-- | Properties and contents of each cell. Cells that span multiple columns
3409+-- are represented only once with a column_span greater than 1. As a
3410+-- result, the length of this collection does not always match the number
3411+-- of columns of the entire table.
3412+trTableCells :: Lens' TableRow [TableCell]
3413+trTableCells
3414+ = lens _trTableCells (\ s a -> s{_trTableCells = a})
3415+ . _Default
3416+ . _Coerce
3417+
3418+-- | Height of a row.
3419+trRowHeight :: Lens' TableRow (Maybe Dimension)
3420+trRowHeight
3421+ = lens _trRowHeight (\ s a -> s{_trRowHeight = a})
3422+
3423+instance FromJSON TableRow where
3424+ parseJSON
3425+ = withObject "TableRow"
3426+ (\ o ->
3427+ TableRow' <$>
3428+ (o .:? "tableCells" .!= mempty) <*>
3429+ (o .:? "rowHeight"))
3430+
3431+instance ToJSON TableRow where
3432+ toJSON TableRow'{..}
3433+ = object
3434+ (catMaybes
3435+ [("tableCells" .=) <$> _trTableCells,
3436+ ("rowHeight" .=) <$> _trRowHeight])
3437+
3438+-- | Creates a video.
3439+--
3440+-- /See:/ 'createVideoRequest' smart constructor.
3441+data CreateVideoRequest = CreateVideoRequest'
3442+ { _creObjectId :: !(Maybe Text)
3443+ , _creElementProperties :: !(Maybe PageElementProperties)
3444+ , _creSource :: !(Maybe CreateVideoRequestSource)
3445+ , _creId :: !(Maybe Text)
3446+ } deriving (Eq,Show,Data,Typeable,Generic)
3447+
3448+-- | Creates a value of 'CreateVideoRequest' with the minimum fields required to make a request.
3449+--
3450+-- Use one of the following lenses to modify other fields as desired:
3451+--
3452+-- * 'creObjectId'
3453+--
3454+-- * 'creElementProperties'
3455+--
3456+-- * 'creSource'
3457+--
3458+-- * 'creId'
3459+createVideoRequest
3460+ :: CreateVideoRequest
3461+createVideoRequest =
3462+ CreateVideoRequest'
3463+ { _creObjectId = Nothing
3464+ , _creElementProperties = Nothing
3465+ , _creSource = Nothing
3466+ , _creId = Nothing
3467+ }
3468+
3469+-- | A user-supplied object ID. If you specify an ID, it must be unique among
3470+-- all pages and page elements in the presentation. The ID must start with
3471+-- an alphanumeric character or an underscore (matches regex
3472+-- \`[a-zA-Z0-9_]\`); remaining characters may include those as well as a
3473+-- hyphen or colon (matches regex \`[a-zA-Z0-9_-:]\`). The length of the ID
3474+-- must not be less than 5 or greater than 50. If you don\'t specify an ID,
3475+-- a unique one is generated.
3476+creObjectId :: Lens' CreateVideoRequest (Maybe Text)
3477+creObjectId
3478+ = lens _creObjectId (\ s a -> s{_creObjectId = a})
3479+
3480+-- | The element properties for the video.
3481+creElementProperties :: Lens' CreateVideoRequest (Maybe PageElementProperties)
3482+creElementProperties
3483+ = lens _creElementProperties
3484+ (\ s a -> s{_creElementProperties = a})
3485+
3486+-- | The video source.
3487+creSource :: Lens' CreateVideoRequest (Maybe CreateVideoRequestSource)
3488+creSource
3489+ = lens _creSource (\ s a -> s{_creSource = a})
3490+
3491+-- | The video source\'s unique identifier for this video. e.g. For YouTube
3492+-- video https:\/\/www.youtube.com\/watch?v=7U3axjORYZ0, the ID is
3493+-- 7U3axjORYZ0.
3494+creId :: Lens' CreateVideoRequest (Maybe Text)
3495+creId = lens _creId (\ s a -> s{_creId = a})
3496+
3497+instance FromJSON CreateVideoRequest where
3498+ parseJSON
3499+ = withObject "CreateVideoRequest"
3500+ (\ o ->
3501+ CreateVideoRequest' <$>
3502+ (o .:? "objectId") <*> (o .:? "elementProperties")
3503+ <*> (o .:? "source")
3504+ <*> (o .:? "id"))
3505+
3506+instance ToJSON CreateVideoRequest where
3507+ toJSON CreateVideoRequest'{..}
3508+ = object
3509+ (catMaybes
3510+ [("objectId" .=) <$> _creObjectId,
3511+ ("elementProperties" .=) <$> _creElementProperties,
3512+ ("source" .=) <$> _creSource, ("id" .=) <$> _creId])
3513+
3514+-- | The general text content. The text must reside in a compatible shape
3515+-- (e.g. text box or rectangle) or a table cell in a page.
3516+--
3517+-- /See:/ 'textContent' smart constructor.
3518+data TextContent = TextContent'
3519+ { _tcTextElements :: !(Maybe [TextElement])
3520+ , _tcLists :: !(Maybe TextContentLists)
3521+ } deriving (Eq,Show,Data,Typeable,Generic)
3522+
3523+-- | Creates a value of 'TextContent' with the minimum fields required to make a request.
3524+--
3525+-- Use one of the following lenses to modify other fields as desired:
3526+--
3527+-- * 'tcTextElements'
3528+--
3529+-- * 'tcLists'
3530+textContent
3531+ :: TextContent
3532+textContent =
3533+ TextContent'
3534+ { _tcTextElements = Nothing
3535+ , _tcLists = Nothing
3536+ }
3537+
3538+-- | The text contents broken down into its component parts, including
3539+-- styling information. This property is read-only.
3540+tcTextElements :: Lens' TextContent [TextElement]
3541+tcTextElements
3542+ = lens _tcTextElements
3543+ (\ s a -> s{_tcTextElements = a})
3544+ . _Default
3545+ . _Coerce
3546+
3547+-- | The bulleted lists contained in this text, keyed by list ID.
3548+tcLists :: Lens' TextContent (Maybe TextContentLists)
3549+tcLists = lens _tcLists (\ s a -> s{_tcLists = a})
3550+
3551+instance FromJSON TextContent where
3552+ parseJSON
3553+ = withObject "TextContent"
3554+ (\ o ->
3555+ TextContent' <$>
3556+ (o .:? "textElements" .!= mempty) <*>
3557+ (o .:? "lists"))
3558+
3559+instance ToJSON TextContent where
3560+ toJSON TextContent'{..}
3561+ = object
3562+ (catMaybes
3563+ [("textElements" .=) <$> _tcTextElements,
3564+ ("lists" .=) <$> _tcLists])
3565+
3566+-- | A PageElement kind representing a generic shape that does not have a
3567+-- more specific classification.
3568+--
3569+-- /See:/ 'shape' smart constructor.
3570+data Shape = Shape'
3571+ { _sShapeType :: !(Maybe ShapeShapeType)
3572+ , _sText :: !(Maybe TextContent)
3573+ , _sPlaceholder :: !(Maybe Placeholder)
3574+ , _sShapeProperties :: !(Maybe ShapeProperties)
3575+ } deriving (Eq,Show,Data,Typeable,Generic)
3576+
3577+-- | Creates a value of 'Shape' with the minimum fields required to make a request.
3578+--
3579+-- Use one of the following lenses to modify other fields as desired:
3580+--
3581+-- * 'sShapeType'
3582+--
3583+-- * 'sText'
3584+--
3585+-- * 'sPlaceholder'
3586+--
3587+-- * 'sShapeProperties'
3588+shape
3589+ :: Shape
3590+shape =
3591+ Shape'
3592+ { _sShapeType = Nothing
3593+ , _sText = Nothing
3594+ , _sPlaceholder = Nothing
3595+ , _sShapeProperties = Nothing
3596+ }
3597+
3598+-- | The type of the shape.
3599+sShapeType :: Lens' Shape (Maybe ShapeShapeType)
3600+sShapeType
3601+ = lens _sShapeType (\ s a -> s{_sShapeType = a})
3602+
3603+-- | The text content of the shape.
3604+sText :: Lens' Shape (Maybe TextContent)
3605+sText = lens _sText (\ s a -> s{_sText = a})
3606+
3607+-- | Placeholders are shapes that are inherit from corresponding placeholders
3608+-- on layouts and masters. If set, the shape is a placeholder shape and any
3609+-- inherited properties can be resolved by looking at the parent
3610+-- placeholder identified by the Placeholder.parent_object_id field.
3611+sPlaceholder :: Lens' Shape (Maybe Placeholder)
3612+sPlaceholder
3613+ = lens _sPlaceholder (\ s a -> s{_sPlaceholder = a})
3614+
3615+-- | The properties of the shape.
3616+sShapeProperties :: Lens' Shape (Maybe ShapeProperties)
3617+sShapeProperties
3618+ = lens _sShapeProperties
3619+ (\ s a -> s{_sShapeProperties = a})
3620+
3621+instance FromJSON Shape where
3622+ parseJSON
3623+ = withObject "Shape"
3624+ (\ o ->
3625+ Shape' <$>
3626+ (o .:? "shapeType") <*> (o .:? "text") <*>
3627+ (o .:? "placeholder")
3628+ <*> (o .:? "shapeProperties"))
3629+
3630+instance ToJSON Shape where
3631+ toJSON Shape'{..}
3632+ = object
3633+ (catMaybes
3634+ [("shapeType" .=) <$> _sShapeType,
3635+ ("text" .=) <$> _sText,
3636+ ("placeholder" .=) <$> _sPlaceholder,
3637+ ("shapeProperties" .=) <$> _sShapeProperties])
3638+
3639+-- | AffineTransform uses a 3x3 matrix with an implied last row of [ 0 0 1 ]
3640+-- to transform source coordinates (x,y) into destination coordinates (x\',
3641+-- y\') according to: x\' x = shear_y scale_y translate_y 1 [ 1 ] After
3642+-- transformation, x\' = scale_x * x + shear_x * y + translate_x; y\' =
3643+-- scale_y * y + shear_y * x + translate_y; This message is therefore
3644+-- composed of these six matrix elements.
3645+--
3646+-- /See:/ 'affineTransform' smart constructor.
3647+data AffineTransform = AffineTransform'
3648+ { _atTranslateX :: !(Maybe (Textual Double))
3649+ , _atShearY :: !(Maybe (Textual Double))
3650+ , _atTranslateY :: !(Maybe (Textual Double))
3651+ , _atShearX :: !(Maybe (Textual Double))
3652+ , _atScaleX :: !(Maybe (Textual Double))
3653+ , _atUnit :: !(Maybe AffineTransformUnit)
3654+ , _atScaleY :: !(Maybe (Textual Double))
3655+ } deriving (Eq,Show,Data,Typeable,Generic)
3656+
3657+-- | Creates a value of 'AffineTransform' with the minimum fields required to make a request.
3658+--
3659+-- Use one of the following lenses to modify other fields as desired:
3660+--
3661+-- * 'atTranslateX'
3662+--
3663+-- * 'atShearY'
3664+--
3665+-- * 'atTranslateY'
3666+--
3667+-- * 'atShearX'
3668+--
3669+-- * 'atScaleX'
3670+--
3671+-- * 'atUnit'
3672+--
3673+-- * 'atScaleY'
3674+affineTransform
3675+ :: AffineTransform
3676+affineTransform =
3677+ AffineTransform'
3678+ { _atTranslateX = Nothing
3679+ , _atShearY = Nothing
3680+ , _atTranslateY = Nothing
3681+ , _atShearX = Nothing
3682+ , _atScaleX = Nothing
3683+ , _atUnit = Nothing
3684+ , _atScaleY = Nothing
3685+ }
3686+
3687+-- | The X coordinate translation element.
3688+atTranslateX :: Lens' AffineTransform (Maybe Double)
3689+atTranslateX
3690+ = lens _atTranslateX (\ s a -> s{_atTranslateX = a})
3691+ . mapping _Coerce
3692+
3693+-- | The Y coordinate shearing element.
3694+atShearY :: Lens' AffineTransform (Maybe Double)
3695+atShearY
3696+ = lens _atShearY (\ s a -> s{_atShearY = a}) .
3697+ mapping _Coerce
3698+
3699+-- | The Y coordinate translation element.
3700+atTranslateY :: Lens' AffineTransform (Maybe Double)
3701+atTranslateY
3702+ = lens _atTranslateY (\ s a -> s{_atTranslateY = a})
3703+ . mapping _Coerce
3704+
3705+-- | The X coordinate shearing element.
3706+atShearX :: Lens' AffineTransform (Maybe Double)
3707+atShearX
3708+ = lens _atShearX (\ s a -> s{_atShearX = a}) .
3709+ mapping _Coerce
3710+
3711+-- | The X coordinate scaling element.
3712+atScaleX :: Lens' AffineTransform (Maybe Double)
3713+atScaleX
3714+ = lens _atScaleX (\ s a -> s{_atScaleX = a}) .
3715+ mapping _Coerce
3716+
3717+-- | The units for translate elements.
3718+atUnit :: Lens' AffineTransform (Maybe AffineTransformUnit)
3719+atUnit = lens _atUnit (\ s a -> s{_atUnit = a})
3720+
3721+-- | The Y coordinate scaling element.
3722+atScaleY :: Lens' AffineTransform (Maybe Double)
3723+atScaleY
3724+ = lens _atScaleY (\ s a -> s{_atScaleY = a}) .
3725+ mapping _Coerce
3726+
3727+instance FromJSON AffineTransform where
3728+ parseJSON
3729+ = withObject "AffineTransform"
3730+ (\ o ->
3731+ AffineTransform' <$>
3732+ (o .:? "translateX") <*> (o .:? "shearY") <*>
3733+ (o .:? "translateY")
3734+ <*> (o .:? "shearX")
3735+ <*> (o .:? "scaleX")
3736+ <*> (o .:? "unit")
3737+ <*> (o .:? "scaleY"))
3738+
3739+instance ToJSON AffineTransform where
3740+ toJSON AffineTransform'{..}
3741+ = object
3742+ (catMaybes
3743+ [("translateX" .=) <$> _atTranslateX,
3744+ ("shearY" .=) <$> _atShearY,
3745+ ("translateY" .=) <$> _atTranslateY,
3746+ ("shearX" .=) <$> _atShearX,
3747+ ("scaleX" .=) <$> _atScaleX, ("unit" .=) <$> _atUnit,
3748+ ("scaleY" .=) <$> _atScaleY])
3749+
3750+-- | The result of creating an embedded Google Sheets chart.
3751+--
3752+-- /See:/ 'createSheetsChartResponse' smart constructor.
3753+newtype CreateSheetsChartResponse = CreateSheetsChartResponse'
3754+ { _cscrsObjectId :: Maybe Text
3755+ } deriving (Eq,Show,Data,Typeable,Generic)
3756+
3757+-- | Creates a value of 'CreateSheetsChartResponse' with the minimum fields required to make a request.
3758+--
3759+-- Use one of the following lenses to modify other fields as desired:
3760+--
3761+-- * 'cscrsObjectId'
3762+createSheetsChartResponse
3763+ :: CreateSheetsChartResponse
3764+createSheetsChartResponse =
3765+ CreateSheetsChartResponse'
3766+ { _cscrsObjectId = Nothing
3767+ }
3768+
3769+-- | The object ID of the created chart.
3770+cscrsObjectId :: Lens' CreateSheetsChartResponse (Maybe Text)
3771+cscrsObjectId
3772+ = lens _cscrsObjectId
3773+ (\ s a -> s{_cscrsObjectId = a})
3774+
3775+instance FromJSON CreateSheetsChartResponse where
3776+ parseJSON
3777+ = withObject "CreateSheetsChartResponse"
3778+ (\ o ->
3779+ CreateSheetsChartResponse' <$> (o .:? "objectId"))
3780+
3781+instance ToJSON CreateSheetsChartResponse where
3782+ toJSON CreateSheetsChartResponse'{..}
3783+ = object
3784+ (catMaybes [("objectId" .=) <$> _cscrsObjectId])
3785+
3786+-- | Specifies a contiguous range of an indexed collection, such as
3787+-- characters in text.
3788+--
3789+-- /See:/ 'range' smart constructor.
3790+data Range = Range'
3791+ { _rEndIndex :: !(Maybe (Textual Int32))
3792+ , _rType :: !(Maybe RangeType)
3793+ , _rStartIndex :: !(Maybe (Textual Int32))
3794+ } deriving (Eq,Show,Data,Typeable,Generic)
3795+
3796+-- | Creates a value of 'Range' with the minimum fields required to make a request.
3797+--
3798+-- Use one of the following lenses to modify other fields as desired:
3799+--
3800+-- * 'rEndIndex'
3801+--
3802+-- * 'rType'
3803+--
3804+-- * 'rStartIndex'
3805+range
3806+ :: Range
3807+range =
3808+ Range'
3809+ { _rEndIndex = Nothing
3810+ , _rType = Nothing
3811+ , _rStartIndex = Nothing
3812+ }
3813+
3814+-- | The optional zero-based index of the end of the collection. Required for
3815+-- \`SPECIFIC_RANGE\` delete mode.
3816+rEndIndex :: Lens' Range (Maybe Int32)
3817+rEndIndex
3818+ = lens _rEndIndex (\ s a -> s{_rEndIndex = a}) .
3819+ mapping _Coerce
3820+
3821+-- | The type of range.
3822+rType :: Lens' Range (Maybe RangeType)
3823+rType = lens _rType (\ s a -> s{_rType = a})
3824+
3825+-- | The optional zero-based index of the beginning of the collection.
3826+-- Required for \`SPECIFIC_RANGE\` and \`FROM_START_INDEX\` ranges.
3827+rStartIndex :: Lens' Range (Maybe Int32)
3828+rStartIndex
3829+ = lens _rStartIndex (\ s a -> s{_rStartIndex = a}) .
3830+ mapping _Coerce
3831+
3832+instance FromJSON Range where
3833+ parseJSON
3834+ = withObject "Range"
3835+ (\ o ->
3836+ Range' <$>
3837+ (o .:? "endIndex") <*> (o .:? "type") <*>
3838+ (o .:? "startIndex"))
3839+
3840+instance ToJSON Range where
3841+ toJSON Range'{..}
3842+ = object
3843+ (catMaybes
3844+ [("endIndex" .=) <$> _rEndIndex,
3845+ ("type" .=) <$> _rType,
3846+ ("startIndex" .=) <$> _rStartIndex])
3847+
3848+-- | Creates an image.
3849+--
3850+-- /See:/ 'createImageRequest' smart constructor.
3851+data CreateImageRequest = CreateImageRequest'
3852+ { _cirObjectId :: !(Maybe Text)
3853+ , _cirURL :: !(Maybe Text)
3854+ , _cirElementProperties :: !(Maybe PageElementProperties)
3855+ } deriving (Eq,Show,Data,Typeable,Generic)
3856+
3857+-- | Creates a value of 'CreateImageRequest' with the minimum fields required to make a request.
3858+--
3859+-- Use one of the following lenses to modify other fields as desired:
3860+--
3861+-- * 'cirObjectId'
3862+--
3863+-- * 'cirURL'
3864+--
3865+-- * 'cirElementProperties'
3866+createImageRequest
3867+ :: CreateImageRequest
3868+createImageRequest =
3869+ CreateImageRequest'
3870+ { _cirObjectId = Nothing
3871+ , _cirURL = Nothing
3872+ , _cirElementProperties = Nothing
3873+ }
3874+
3875+-- | A user-supplied object ID. If you specify an ID, it must be unique among
3876+-- all pages and page elements in the presentation. The ID must start with
3877+-- an alphanumeric character or an underscore (matches regex
3878+-- \`[a-zA-Z0-9_]\`); remaining characters may include those as well as a
3879+-- hyphen or colon (matches regex \`[a-zA-Z0-9_-:]\`). The length of the ID
3880+-- must not be less than 5 or greater than 50. If you don\'t specify an ID,
3881+-- a unique one is generated.
3882+cirObjectId :: Lens' CreateImageRequest (Maybe Text)
3883+cirObjectId
3884+ = lens _cirObjectId (\ s a -> s{_cirObjectId = a})
3885+
3886+-- | The image URL. The image is fetched once at insertion time and a copy is
3887+-- stored for display inside the presentation. Images must be less than
3888+-- 50MB in size, cannot exceed 25 megapixels, and must be in either in PNG,
3889+-- JPEG, or GIF format.
3890+cirURL :: Lens' CreateImageRequest (Maybe Text)
3891+cirURL = lens _cirURL (\ s a -> s{_cirURL = a})
3892+
3893+-- | The element properties for the image. When the aspect ratio of the
3894+-- provided size does not match the image aspect ratio, the image is scaled
3895+-- and centered with respect to the size in order to maintain aspect ratio.
3896+-- The provided transform is applied after this operation.
3897+cirElementProperties :: Lens' CreateImageRequest (Maybe PageElementProperties)
3898+cirElementProperties
3899+ = lens _cirElementProperties
3900+ (\ s a -> s{_cirElementProperties = a})
3901+
3902+instance FromJSON CreateImageRequest where
3903+ parseJSON
3904+ = withObject "CreateImageRequest"
3905+ (\ o ->
3906+ CreateImageRequest' <$>
3907+ (o .:? "objectId") <*> (o .:? "url") <*>
3908+ (o .:? "elementProperties"))
3909+
3910+instance ToJSON CreateImageRequest where
3911+ toJSON CreateImageRequest'{..}
3912+ = object
3913+ (catMaybes
3914+ [("objectId" .=) <$> _cirObjectId,
3915+ ("url" .=) <$> _cirURL,
3916+ ("elementProperties" .=) <$> _cirElementProperties])
3917+
3918+-- | Represents the styling that can be applied to a TextRun. If this text is
3919+-- contained in a shape with a parent placeholder, then these text styles
3920+-- may be inherited from the parent. Which text styles are inherited depend
3921+-- on the nesting level of lists: * A text run in a paragraph that is not
3922+-- in a list will inherit its text style from the the newline character in
3923+-- the paragraph at the 0 nesting level of the list inside the parent
3924+-- placeholder. * A text run in a paragraph that is in a list will inherit
3925+-- its text style from the newline character in the paragraph at its
3926+-- corresponding nesting level of the list inside the parent placeholder.
3927+-- Inherited text styles are represented as unset fields in this message.
3928+-- If text is contained in a shape without a parent placeholder, unsetting
3929+-- these fields will revert the style to a value matching the defaults in
3930+-- the Slides editor.
3931+--
3932+-- /See:/ 'textStyle' smart constructor.
3933+data TextStyle = TextStyle'
3934+ { _tsFontFamily :: !(Maybe Text)
3935+ , _tsLink :: !(Maybe Link)
3936+ , _tsBackgRoundColor :: !(Maybe OptionalColor)
3937+ , _tsBaselineOffSet :: !(Maybe TextStyleBaselineOffSet)
3938+ , _tsForegRoundColor :: !(Maybe OptionalColor)
3939+ , _tsFontSize :: !(Maybe Dimension)
3940+ , _tsSmallCaps :: !(Maybe Bool)
3941+ , _tsUnderline :: !(Maybe Bool)
3942+ , _tsItalic :: !(Maybe Bool)
3943+ , _tsBold :: !(Maybe Bool)
3944+ , _tsStrikethrough :: !(Maybe Bool)
3945+ } deriving (Eq,Show,Data,Typeable,Generic)
3946+
3947+-- | Creates a value of 'TextStyle' with the minimum fields required to make a request.
3948+--
3949+-- Use one of the following lenses to modify other fields as desired:
3950+--
3951+-- * 'tsFontFamily'
3952+--
3953+-- * 'tsLink'
3954+--
3955+-- * 'tsBackgRoundColor'
3956+--
3957+-- * 'tsBaselineOffSet'
3958+--
3959+-- * 'tsForegRoundColor'
3960+--
3961+-- * 'tsFontSize'
3962+--
3963+-- * 'tsSmallCaps'
3964+--
3965+-- * 'tsUnderline'
3966+--
3967+-- * 'tsItalic'
3968+--
3969+-- * 'tsBold'
3970+--
3971+-- * 'tsStrikethrough'
3972+textStyle
3973+ :: TextStyle
3974+textStyle =
3975+ TextStyle'
3976+ { _tsFontFamily = Nothing
3977+ , _tsLink = Nothing
3978+ , _tsBackgRoundColor = Nothing
3979+ , _tsBaselineOffSet = Nothing
3980+ , _tsForegRoundColor = Nothing
3981+ , _tsFontSize = Nothing
3982+ , _tsSmallCaps = Nothing
3983+ , _tsUnderline = Nothing
3984+ , _tsItalic = Nothing
3985+ , _tsBold = Nothing
3986+ , _tsStrikethrough = Nothing
3987+ }
3988+
3989+-- | The font family of the text. The font family can be any font from the
3990+-- Font menu in Slides or from [Google Fonts]
3991+-- (https:\/\/fonts.google.com\/). If the font name is unrecognized, the
3992+-- text is rendered in \`Arial\`. Some fonts can affect the weight of the
3993+-- text. If an update request specifies values for both \`font_family\` and
3994+-- \`bold\`, the explicitly-set \`bold\` value is used.
3995+tsFontFamily :: Lens' TextStyle (Maybe Text)
3996+tsFontFamily
3997+ = lens _tsFontFamily (\ s a -> s{_tsFontFamily = a})
3998+
3999+-- | The hyperlink destination of the text. If unset, there is no link. Links
4000+-- are not inherited from parent text. Changing the link in an update
4001+-- request causes some other changes to the text style of the range: * When
4002+-- setting a link, the text foreground color will be set to
4003+-- ThemeColorType.HYPERLINK and the text will be underlined. If these
4004+-- fields are modified in the same request, those values will be used
4005+-- instead of the link defaults. * Setting a link on a text range that
4006+-- overlaps with an existing link will also update the existing link to
4007+-- point to the new URL. * Links are not settable on newline characters. As
4008+-- a result, setting a link on a text range that crosses a paragraph
4009+-- boundary, such as \`\"ABC\\n123\"\`, will separate the newline
4010+-- character(s) into their own text runs. The link will be applied
4011+-- separately to the runs before and after the newline. * Removing a link
4012+-- will update the text style of the range to match the style of the
4013+-- preceding text (or the default text styles if the preceding text is
4014+-- another link) unless different styles are being set in the same request.
4015+tsLink :: Lens' TextStyle (Maybe Link)
4016+tsLink = lens _tsLink (\ s a -> s{_tsLink = a})
4017+
4018+-- | The background color of the text. If set, the color is either opaque or
4019+-- transparent, depending on if the \`opaque_color\` field in it is set.
4020+tsBackgRoundColor :: Lens' TextStyle (Maybe OptionalColor)
4021+tsBackgRoundColor
4022+ = lens _tsBackgRoundColor
4023+ (\ s a -> s{_tsBackgRoundColor = a})
4024+
4025+-- | The text\'s vertical offset from its normal position. Text with
4026+-- \`SUPERSCRIPT\` or \`SUBSCRIPT\` baseline offsets is automatically
4027+-- rendered in a smaller font size, computed based on the \`font_size\`
4028+-- field. The \`font_size\` itself is not affected by changes in this
4029+-- field.
4030+tsBaselineOffSet :: Lens' TextStyle (Maybe TextStyleBaselineOffSet)
4031+tsBaselineOffSet
4032+ = lens _tsBaselineOffSet
4033+ (\ s a -> s{_tsBaselineOffSet = a})
4034+
4035+-- | The color of the text itself. If set, the color is either opaque or
4036+-- transparent, depending on if the \`opaque_color\` field in it is set.
4037+tsForegRoundColor :: Lens' TextStyle (Maybe OptionalColor)
4038+tsForegRoundColor
4039+ = lens _tsForegRoundColor
4040+ (\ s a -> s{_tsForegRoundColor = a})
4041+
4042+-- | The size of the text\'s font. When read, the \`font_size\` will
4043+-- specified in points.
4044+tsFontSize :: Lens' TextStyle (Maybe Dimension)
4045+tsFontSize
4046+ = lens _tsFontSize (\ s a -> s{_tsFontSize = a})
4047+
4048+-- | Whether or not the text is in small capital letters.
4049+tsSmallCaps :: Lens' TextStyle (Maybe Bool)
4050+tsSmallCaps
4051+ = lens _tsSmallCaps (\ s a -> s{_tsSmallCaps = a})
4052+
4053+-- | Whether or not the text is underlined.
4054+tsUnderline :: Lens' TextStyle (Maybe Bool)
4055+tsUnderline
4056+ = lens _tsUnderline (\ s a -> s{_tsUnderline = a})
4057+
4058+-- | Whether or not the text is italicized.
4059+tsItalic :: Lens' TextStyle (Maybe Bool)
4060+tsItalic = lens _tsItalic (\ s a -> s{_tsItalic = a})
4061+
4062+-- | Whether or not the text is bold.
4063+tsBold :: Lens' TextStyle (Maybe Bool)
4064+tsBold = lens _tsBold (\ s a -> s{_tsBold = a})
4065+
4066+-- | Whether or not the text is struck through.
4067+tsStrikethrough :: Lens' TextStyle (Maybe Bool)
4068+tsStrikethrough
4069+ = lens _tsStrikethrough
4070+ (\ s a -> s{_tsStrikethrough = a})
4071+
4072+instance FromJSON TextStyle where
4073+ parseJSON
4074+ = withObject "TextStyle"
4075+ (\ o ->
4076+ TextStyle' <$>
4077+ (o .:? "fontFamily") <*> (o .:? "link") <*>
4078+ (o .:? "backgroundColor")
4079+ <*> (o .:? "baselineOffset")
4080+ <*> (o .:? "foregroundColor")
4081+ <*> (o .:? "fontSize")
4082+ <*> (o .:? "smallCaps")
4083+ <*> (o .:? "underline")
4084+ <*> (o .:? "italic")
4085+ <*> (o .:? "bold")
4086+ <*> (o .:? "strikethrough"))
4087+
4088+instance ToJSON TextStyle where
4089+ toJSON TextStyle'{..}
4090+ = object
4091+ (catMaybes
4092+ [("fontFamily" .=) <$> _tsFontFamily,
4093+ ("link" .=) <$> _tsLink,
4094+ ("backgroundColor" .=) <$> _tsBackgRoundColor,
4095+ ("baselineOffset" .=) <$> _tsBaselineOffSet,
4096+ ("foregroundColor" .=) <$> _tsForegRoundColor,
4097+ ("fontSize" .=) <$> _tsFontSize,
4098+ ("smallCaps" .=) <$> _tsSmallCaps,
4099+ ("underline" .=) <$> _tsUnderline,
4100+ ("italic" .=) <$> _tsItalic, ("bold" .=) <$> _tsBold,
4101+ ("strikethrough" .=) <$> _tsStrikethrough])
4102+
4103+-- | A solid color fill. The page or page element is filled entirely with the
4104+-- specified color value. If any field is unset, its value may be inherited
4105+-- from a parent placeholder if it exists.
4106+--
4107+-- /See:/ 'solidFill' smart constructor.
4108+data SolidFill = SolidFill'
4109+ { _sfColor :: !(Maybe OpaqueColor)
4110+ , _sfAlpha :: !(Maybe (Textual Double))
4111+ } deriving (Eq,Show,Data,Typeable,Generic)
4112+
4113+-- | Creates a value of 'SolidFill' with the minimum fields required to make a request.
4114+--
4115+-- Use one of the following lenses to modify other fields as desired:
4116+--
4117+-- * 'sfColor'
4118+--
4119+-- * 'sfAlpha'
4120+solidFill
4121+ :: SolidFill
4122+solidFill =
4123+ SolidFill'
4124+ { _sfColor = Nothing
4125+ , _sfAlpha = Nothing
4126+ }
4127+
4128+-- | The color value of the solid fill.
4129+sfColor :: Lens' SolidFill (Maybe OpaqueColor)
4130+sfColor = lens _sfColor (\ s a -> s{_sfColor = a})
4131+
4132+-- | The fraction of this \`color\` that should be applied to the pixel. That
4133+-- is, the final pixel color is defined by the equation: pixel color =
4134+-- alpha * (color) + (1.0 - alpha) * (background color) This means that a
4135+-- value of 1.0 corresponds to a solid color, whereas a value of 0.0
4136+-- corresponds to a completely transparent color.
4137+sfAlpha :: Lens' SolidFill (Maybe Double)
4138+sfAlpha
4139+ = lens _sfAlpha (\ s a -> s{_sfAlpha = a}) .
4140+ mapping _Coerce
4141+
4142+instance FromJSON SolidFill where
4143+ parseJSON
4144+ = withObject "SolidFill"
4145+ (\ o ->
4146+ SolidFill' <$> (o .:? "color") <*> (o .:? "alpha"))
4147+
4148+instance ToJSON SolidFill where
4149+ toJSON SolidFill'{..}
4150+ = object
4151+ (catMaybes
4152+ [("color" .=) <$> _sfColor,
4153+ ("alpha" .=) <$> _sfAlpha])
4154+
4155+-- | Update the styling of text in a Shape or Table.
4156+--
4157+-- /See:/ 'updateTextStyleRequest' smart constructor.
4158+data UpdateTextStyleRequest = UpdateTextStyleRequest'
4159+ { _utsrStyle :: !(Maybe TextStyle)
4160+ , _utsrTextRange :: !(Maybe Range)
4161+ , _utsrObjectId :: !(Maybe Text)
4162+ , _utsrCellLocation :: !(Maybe TableCellLocation)
4163+ , _utsrFields :: !(Maybe FieldMask)
4164+ } deriving (Eq,Show,Data,Typeable,Generic)
4165+
4166+-- | Creates a value of 'UpdateTextStyleRequest' with the minimum fields required to make a request.
4167+--
4168+-- Use one of the following lenses to modify other fields as desired:
4169+--
4170+-- * 'utsrStyle'
4171+--
4172+-- * 'utsrTextRange'
4173+--
4174+-- * 'utsrObjectId'
4175+--
4176+-- * 'utsrCellLocation'
4177+--
4178+-- * 'utsrFields'
4179+updateTextStyleRequest
4180+ :: UpdateTextStyleRequest
4181+updateTextStyleRequest =
4182+ UpdateTextStyleRequest'
4183+ { _utsrStyle = Nothing
4184+ , _utsrTextRange = Nothing
4185+ , _utsrObjectId = Nothing
4186+ , _utsrCellLocation = Nothing
4187+ , _utsrFields = Nothing
4188+ }
4189+
4190+-- | The style(s) to set on the text. If the value for a particular style
4191+-- matches that of the parent, that style will be set to inherit. Certain
4192+-- text style changes may cause other changes meant to mirror the behavior
4193+-- of the Slides editor. See the documentation of TextStyle for more
4194+-- information.
4195+utsrStyle :: Lens' UpdateTextStyleRequest (Maybe TextStyle)
4196+utsrStyle
4197+ = lens _utsrStyle (\ s a -> s{_utsrStyle = a})
4198+
4199+-- | The range of text to style. The range may be extended to include
4200+-- adjacent newlines. If the range fully contains a paragraph belonging to
4201+-- a list, the paragraph\'s bullet is also updated with the matching text
4202+-- style.
4203+utsrTextRange :: Lens' UpdateTextStyleRequest (Maybe Range)
4204+utsrTextRange
4205+ = lens _utsrTextRange
4206+ (\ s a -> s{_utsrTextRange = a})
4207+
4208+-- | The object ID of the shape or table with the text to be styled.
4209+utsrObjectId :: Lens' UpdateTextStyleRequest (Maybe Text)
4210+utsrObjectId
4211+ = lens _utsrObjectId (\ s a -> s{_utsrObjectId = a})
4212+
4213+-- | The optional table cell location if the text to be styled is in a table
4214+-- cell. If present, the object_id must refer to a table.
4215+utsrCellLocation :: Lens' UpdateTextStyleRequest (Maybe TableCellLocation)
4216+utsrCellLocation
4217+ = lens _utsrCellLocation
4218+ (\ s a -> s{_utsrCellLocation = a})
4219+
4220+-- | The fields that should be updated. At least one field must be specified.
4221+-- The root \`style\` is implied and should not be specified. A single
4222+-- \`\"*\"\` can be used as short-hand for listing every field. For example
4223+-- to update the text style to bold, set \`fields\` to \`\"bold\"\`. To
4224+-- reset a property to its default value, include its field name in the
4225+-- field mask but leave the field itself unset.
4226+utsrFields :: Lens' UpdateTextStyleRequest (Maybe FieldMask)
4227+utsrFields
4228+ = lens _utsrFields (\ s a -> s{_utsrFields = a})
4229+
4230+instance FromJSON UpdateTextStyleRequest where
4231+ parseJSON
4232+ = withObject "UpdateTextStyleRequest"
4233+ (\ o ->
4234+ UpdateTextStyleRequest' <$>
4235+ (o .:? "style") <*> (o .:? "textRange") <*>
4236+ (o .:? "objectId")
4237+ <*> (o .:? "cellLocation")
4238+ <*> (o .:? "fields"))
4239+
4240+instance ToJSON UpdateTextStyleRequest where
4241+ toJSON UpdateTextStyleRequest'{..}
4242+ = object
4243+ (catMaybes
4244+ [("style" .=) <$> _utsrStyle,
4245+ ("textRange" .=) <$> _utsrTextRange,
4246+ ("objectId" .=) <$> _utsrObjectId,
4247+ ("cellLocation" .=) <$> _utsrCellLocation,
4248+ ("fields" .=) <$> _utsrFields])
4249+
4250+-- | A recolor effect applied on an image.
4251+--
4252+-- /See:/ 'recolor' smart constructor.
4253+newtype Recolor = Recolor'
4254+ { _rRecolorStops :: Maybe [ColorStop]
4255+ } deriving (Eq,Show,Data,Typeable,Generic)
4256+
4257+-- | Creates a value of 'Recolor' with the minimum fields required to make a request.
4258+--
4259+-- Use one of the following lenses to modify other fields as desired:
4260+--
4261+-- * 'rRecolorStops'
4262+recolor
4263+ :: Recolor
4264+recolor =
4265+ Recolor'
4266+ { _rRecolorStops = Nothing
4267+ }
4268+
4269+-- | The recolor effect is represented by a gradient, which is a list of
4270+-- color stops. This property is read-only.
4271+rRecolorStops :: Lens' Recolor [ColorStop]
4272+rRecolorStops
4273+ = lens _rRecolorStops
4274+ (\ s a -> s{_rRecolorStops = a})
4275+ . _Default
4276+ . _Coerce
4277+
4278+instance FromJSON Recolor where
4279+ parseJSON
4280+ = withObject "Recolor"
4281+ (\ o ->
4282+ Recolor' <$> (o .:? "recolorStops" .!= mempty))
4283+
4284+instance ToJSON Recolor where
4285+ toJSON Recolor'{..}
4286+ = object
4287+ (catMaybes [("recolorStops" .=) <$> _rRecolorStops])
4288+
4289+-- | The properties of the Page. The page will inherit properties from the
4290+-- parent page. Depending on the page type the hierarchy is defined in
4291+-- either SlideProperties or LayoutProperties.
4292+--
4293+-- /See:/ 'pageProperties' smart constructor.
4294+data PageProperties = PageProperties'
4295+ { _ppPageBackgRoundFill :: !(Maybe PageBackgRoundFill)
4296+ , _ppColorScheme :: !(Maybe ColorScheme)
4297+ } deriving (Eq,Show,Data,Typeable,Generic)
4298+
4299+-- | Creates a value of 'PageProperties' with the minimum fields required to make a request.
4300+--
4301+-- Use one of the following lenses to modify other fields as desired:
4302+--
4303+-- * 'ppPageBackgRoundFill'
4304+--
4305+-- * 'ppColorScheme'
4306+pageProperties
4307+ :: PageProperties
4308+pageProperties =
4309+ PageProperties'
4310+ { _ppPageBackgRoundFill = Nothing
4311+ , _ppColorScheme = Nothing
4312+ }
4313+
4314+-- | The background fill of the page. If unset, the background fill is
4315+-- inherited from a parent page if it exists. If the page has no parent,
4316+-- then the background fill defaults to the corresponding fill in the
4317+-- Slides editor.
4318+ppPageBackgRoundFill :: Lens' PageProperties (Maybe PageBackgRoundFill)
4319+ppPageBackgRoundFill
4320+ = lens _ppPageBackgRoundFill
4321+ (\ s a -> s{_ppPageBackgRoundFill = a})
4322+
4323+-- | The color scheme of the page. If unset, the color scheme is inherited
4324+-- from a parent page. If the page has no parent, the color scheme uses a
4325+-- default Slides color scheme. This field is read-only.
4326+ppColorScheme :: Lens' PageProperties (Maybe ColorScheme)
4327+ppColorScheme
4328+ = lens _ppColorScheme
4329+ (\ s a -> s{_ppColorScheme = a})
4330+
4331+instance FromJSON PageProperties where
4332+ parseJSON
4333+ = withObject "PageProperties"
4334+ (\ o ->
4335+ PageProperties' <$>
4336+ (o .:? "pageBackgroundFill") <*>
4337+ (o .:? "colorScheme"))
4338+
4339+instance ToJSON PageProperties where
4340+ toJSON PageProperties'{..}
4341+ = object
4342+ (catMaybes
4343+ [("pageBackgroundFill" .=) <$> _ppPageBackgRoundFill,
4344+ ("colorScheme" .=) <$> _ppColorScheme])
4345+
4346+-- | The page background fill.
4347+--
4348+-- /See:/ 'pageBackgRoundFill' smart constructor.
4349+data PageBackgRoundFill = PageBackgRoundFill'
4350+ { _pbrfStretchedPictureFill :: !(Maybe StretchedPictureFill)
4351+ , _pbrfSolidFill :: !(Maybe SolidFill)
4352+ , _pbrfPropertyState :: !(Maybe PageBackgRoundFillPropertyState)
4353+ } deriving (Eq,Show,Data,Typeable,Generic)
4354+
4355+-- | Creates a value of 'PageBackgRoundFill' with the minimum fields required to make a request.
4356+--
4357+-- Use one of the following lenses to modify other fields as desired:
4358+--
4359+-- * 'pbrfStretchedPictureFill'
4360+--
4361+-- * 'pbrfSolidFill'
4362+--
4363+-- * 'pbrfPropertyState'
4364+pageBackgRoundFill
4365+ :: PageBackgRoundFill
4366+pageBackgRoundFill =
4367+ PageBackgRoundFill'
4368+ { _pbrfStretchedPictureFill = Nothing
4369+ , _pbrfSolidFill = Nothing
4370+ , _pbrfPropertyState = Nothing
4371+ }
4372+
4373+-- | Stretched picture fill.
4374+pbrfStretchedPictureFill :: Lens' PageBackgRoundFill (Maybe StretchedPictureFill)
4375+pbrfStretchedPictureFill
4376+ = lens _pbrfStretchedPictureFill
4377+ (\ s a -> s{_pbrfStretchedPictureFill = a})
4378+
4379+-- | Solid color fill.
4380+pbrfSolidFill :: Lens' PageBackgRoundFill (Maybe SolidFill)
4381+pbrfSolidFill
4382+ = lens _pbrfSolidFill
4383+ (\ s a -> s{_pbrfSolidFill = a})
4384+
4385+-- | The background fill property state. Updating the the fill on a page will
4386+-- implicitly update this field to \`RENDERED\`, unless another value is
4387+-- specified in the same request. To have no fill on a page, set this field
4388+-- to \`NOT_RENDERED\`. In this case, any other fill fields set in the same
4389+-- request will be ignored.
4390+pbrfPropertyState :: Lens' PageBackgRoundFill (Maybe PageBackgRoundFillPropertyState)
4391+pbrfPropertyState
4392+ = lens _pbrfPropertyState
4393+ (\ s a -> s{_pbrfPropertyState = a})
4394+
4395+instance FromJSON PageBackgRoundFill where
4396+ parseJSON
4397+ = withObject "PageBackgRoundFill"
4398+ (\ o ->
4399+ PageBackgRoundFill' <$>
4400+ (o .:? "stretchedPictureFill") <*>
4401+ (o .:? "solidFill")
4402+ <*> (o .:? "propertyState"))
4403+
4404+instance ToJSON PageBackgRoundFill where
4405+ toJSON PageBackgRoundFill'{..}
4406+ = object
4407+ (catMaybes
4408+ [("stretchedPictureFill" .=) <$>
4409+ _pbrfStretchedPictureFill,
4410+ ("solidFill" .=) <$> _pbrfSolidFill,
4411+ ("propertyState" .=) <$> _pbrfPropertyState])
4412+
4413+-- | Contains properties describing the look and feel of a list bullet at a
4414+-- given level of nesting.
4415+--
4416+-- /See:/ 'nestingLevel' smart constructor.
4417+newtype NestingLevel = NestingLevel'
4418+ { _nlBulletStyle :: Maybe TextStyle
4419+ } deriving (Eq,Show,Data,Typeable,Generic)
4420+
4421+-- | Creates a value of 'NestingLevel' with the minimum fields required to make a request.
4422+--
4423+-- Use one of the following lenses to modify other fields as desired:
4424+--
4425+-- * 'nlBulletStyle'
4426+nestingLevel
4427+ :: NestingLevel
4428+nestingLevel =
4429+ NestingLevel'
4430+ { _nlBulletStyle = Nothing
4431+ }
4432+
4433+-- | The style of a bullet at this level of nesting.
4434+nlBulletStyle :: Lens' NestingLevel (Maybe TextStyle)
4435+nlBulletStyle
4436+ = lens _nlBulletStyle
4437+ (\ s a -> s{_nlBulletStyle = a})
4438+
4439+instance FromJSON NestingLevel where
4440+ parseJSON
4441+ = withObject "NestingLevel"
4442+ (\ o -> NestingLevel' <$> (o .:? "bulletStyle"))
4443+
4444+instance ToJSON NestingLevel where
4445+ toJSON NestingLevel'{..}
4446+ = object
4447+ (catMaybes [("bulletStyle" .=) <$> _nlBulletStyle])
4448+
4449+-- | A themeable solid color value.
4450+--
4451+-- /See:/ 'opaqueColor' smart constructor.
4452+data OpaqueColor = OpaqueColor'
4453+ { _ocThemeColor :: !(Maybe OpaqueColorThemeColor)
4454+ , _ocRgbColor :: !(Maybe RgbColor)
4455+ } deriving (Eq,Show,Data,Typeable,Generic)
4456+
4457+-- | Creates a value of 'OpaqueColor' with the minimum fields required to make a request.
4458+--
4459+-- Use one of the following lenses to modify other fields as desired:
4460+--
4461+-- * 'ocThemeColor'
4462+--
4463+-- * 'ocRgbColor'
4464+opaqueColor
4465+ :: OpaqueColor
4466+opaqueColor =
4467+ OpaqueColor'
4468+ { _ocThemeColor = Nothing
4469+ , _ocRgbColor = Nothing
4470+ }
4471+
4472+-- | An opaque theme color.
4473+ocThemeColor :: Lens' OpaqueColor (Maybe OpaqueColorThemeColor)
4474+ocThemeColor
4475+ = lens _ocThemeColor (\ s a -> s{_ocThemeColor = a})
4476+
4477+-- | An opaque RGB color.
4478+ocRgbColor :: Lens' OpaqueColor (Maybe RgbColor)
4479+ocRgbColor
4480+ = lens _ocRgbColor (\ s a -> s{_ocRgbColor = a})
4481+
4482+instance FromJSON OpaqueColor where
4483+ parseJSON
4484+ = withObject "OpaqueColor"
4485+ (\ o ->
4486+ OpaqueColor' <$>
4487+ (o .:? "themeColor") <*> (o .:? "rgbColor"))
4488+
4489+instance ToJSON OpaqueColor where
4490+ toJSON OpaqueColor'{..}
4491+ = object
4492+ (catMaybes
4493+ [("themeColor" .=) <$> _ocThemeColor,
4494+ ("rgbColor" .=) <$> _ocRgbColor])
4495+
4496+-- | Creates a new slide.
4497+--
4498+-- /See:/ 'createSlideRequest' smart constructor.
4499+data CreateSlideRequest = CreateSlideRequest'
4500+ { _csrsObjectId :: !(Maybe Text)
4501+ , _csrsSlideLayoutReference :: !(Maybe LayoutReference)
4502+ , _csrsInsertionIndex :: !(Maybe (Textual Int32))
4503+ } deriving (Eq,Show,Data,Typeable,Generic)
4504+
4505+-- | Creates a value of 'CreateSlideRequest' with the minimum fields required to make a request.
4506+--
4507+-- Use one of the following lenses to modify other fields as desired:
4508+--
4509+-- * 'csrsObjectId'
4510+--
4511+-- * 'csrsSlideLayoutReference'
4512+--
4513+-- * 'csrsInsertionIndex'
4514+createSlideRequest
4515+ :: CreateSlideRequest
4516+createSlideRequest =
4517+ CreateSlideRequest'
4518+ { _csrsObjectId = Nothing
4519+ , _csrsSlideLayoutReference = Nothing
4520+ , _csrsInsertionIndex = Nothing
4521+ }
4522+
4523+-- | A user-supplied object ID. If you specify an ID, it must be unique among
4524+-- all pages and page elements in the presentation. The ID must start with
4525+-- an alphanumeric character or an underscore (matches regex
4526+-- \`[a-zA-Z0-9_]\`); remaining characters may include those as well as a
4527+-- hyphen or colon (matches regex \`[a-zA-Z0-9_-:]\`). The length of the ID
4528+-- must not be less than 5 or greater than 50. If you don\'t specify an ID,
4529+-- a unique one is generated.
4530+csrsObjectId :: Lens' CreateSlideRequest (Maybe Text)
4531+csrsObjectId
4532+ = lens _csrsObjectId (\ s a -> s{_csrsObjectId = a})
4533+
4534+-- | Layout reference of the slide to be inserted, based on the *current
4535+-- master*, which is one of the following: - The master of the previous
4536+-- slide index. - The master of the first slide, if the insertion_index is
4537+-- zero. - The first master in the presentation, if there are no slides. If
4538+-- the LayoutReference is not found in the current master, a 400 bad
4539+-- request error is returned. If you don\'t specify a layout reference,
4540+-- then the new slide will use the predefined layout \`BLANK\`.
4541+csrsSlideLayoutReference :: Lens' CreateSlideRequest (Maybe LayoutReference)
4542+csrsSlideLayoutReference
4543+ = lens _csrsSlideLayoutReference
4544+ (\ s a -> s{_csrsSlideLayoutReference = a})
4545+
4546+-- | The optional zero-based index indicating where to insert the slides. If
4547+-- you don\'t specify an index, the new slide is created at the end.
4548+csrsInsertionIndex :: Lens' CreateSlideRequest (Maybe Int32)
4549+csrsInsertionIndex
4550+ = lens _csrsInsertionIndex
4551+ (\ s a -> s{_csrsInsertionIndex = a})
4552+ . mapping _Coerce
4553+
4554+instance FromJSON CreateSlideRequest where
4555+ parseJSON
4556+ = withObject "CreateSlideRequest"
4557+ (\ o ->
4558+ CreateSlideRequest' <$>
4559+ (o .:? "objectId") <*> (o .:? "slideLayoutReference")
4560+ <*> (o .:? "insertionIndex"))
4561+
4562+instance ToJSON CreateSlideRequest where
4563+ toJSON CreateSlideRequest'{..}
4564+ = object
4565+ (catMaybes
4566+ [("objectId" .=) <$> _csrsObjectId,
4567+ ("slideLayoutReference" .=) <$>
4568+ _csrsSlideLayoutReference,
4569+ ("insertionIndex" .=) <$> _csrsInsertionIndex])
4570+
4571+-- | A location of a single table cell within a table.
4572+--
4573+-- /See:/ 'tableCellLocation' smart constructor.
4574+data TableCellLocation = TableCellLocation'
4575+ { _tclColumnIndex :: !(Maybe (Textual Int32))
4576+ , _tclRowIndex :: !(Maybe (Textual Int32))
4577+ } deriving (Eq,Show,Data,Typeable,Generic)
4578+
4579+-- | Creates a value of 'TableCellLocation' with the minimum fields required to make a request.
4580+--
4581+-- Use one of the following lenses to modify other fields as desired:
4582+--
4583+-- * 'tclColumnIndex'
4584+--
4585+-- * 'tclRowIndex'
4586+tableCellLocation
4587+ :: TableCellLocation
4588+tableCellLocation =
4589+ TableCellLocation'
4590+ { _tclColumnIndex = Nothing
4591+ , _tclRowIndex = Nothing
4592+ }
4593+
4594+-- | The 0-based column index.
4595+tclColumnIndex :: Lens' TableCellLocation (Maybe Int32)
4596+tclColumnIndex
4597+ = lens _tclColumnIndex
4598+ (\ s a -> s{_tclColumnIndex = a})
4599+ . mapping _Coerce
4600+
4601+-- | The 0-based row index.
4602+tclRowIndex :: Lens' TableCellLocation (Maybe Int32)
4603+tclRowIndex
4604+ = lens _tclRowIndex (\ s a -> s{_tclRowIndex = a}) .
4605+ mapping _Coerce
4606+
4607+instance FromJSON TableCellLocation where
4608+ parseJSON
4609+ = withObject "TableCellLocation"
4610+ (\ o ->
4611+ TableCellLocation' <$>
4612+ (o .:? "columnIndex") <*> (o .:? "rowIndex"))
4613+
4614+instance ToJSON TableCellLocation where
4615+ toJSON TableCellLocation'{..}
4616+ = object
4617+ (catMaybes
4618+ [("columnIndex" .=) <$> _tclColumnIndex,
4619+ ("rowIndex" .=) <$> _tclRowIndex])
4620+
4621+-- | Updates the position of slides in the presentation.
4622+--
4623+-- /See:/ 'updateSlidesPositionRequest' smart constructor.
4624+data UpdateSlidesPositionRequest = UpdateSlidesPositionRequest'
4625+ { _usprSlideObjectIds :: !(Maybe [Text])
4626+ , _usprInsertionIndex :: !(Maybe (Textual Int32))
4627+ } deriving (Eq,Show,Data,Typeable,Generic)
4628+
4629+-- | Creates a value of 'UpdateSlidesPositionRequest' with the minimum fields required to make a request.
4630+--
4631+-- Use one of the following lenses to modify other fields as desired:
4632+--
4633+-- * 'usprSlideObjectIds'
4634+--
4635+-- * 'usprInsertionIndex'
4636+updateSlidesPositionRequest
4637+ :: UpdateSlidesPositionRequest
4638+updateSlidesPositionRequest =
4639+ UpdateSlidesPositionRequest'
4640+ { _usprSlideObjectIds = Nothing
4641+ , _usprInsertionIndex = Nothing
4642+ }
4643+
4644+-- | The IDs of the slides in the presentation that should be moved. The
4645+-- slides in this list must be in existing presentation order, without
4646+-- duplicates.
4647+usprSlideObjectIds :: Lens' UpdateSlidesPositionRequest [Text]
4648+usprSlideObjectIds
4649+ = lens _usprSlideObjectIds
4650+ (\ s a -> s{_usprSlideObjectIds = a})
4651+ . _Default
4652+ . _Coerce
4653+
4654+-- | The index where the slides should be inserted, based on the slide
4655+-- arrangement before the move takes place. Must be between zero and the
4656+-- number of slides in the presentation, inclusive.
4657+usprInsertionIndex :: Lens' UpdateSlidesPositionRequest (Maybe Int32)
4658+usprInsertionIndex
4659+ = lens _usprInsertionIndex
4660+ (\ s a -> s{_usprInsertionIndex = a})
4661+ . mapping _Coerce
4662+
4663+instance FromJSON UpdateSlidesPositionRequest where
4664+ parseJSON
4665+ = withObject "UpdateSlidesPositionRequest"
4666+ (\ o ->
4667+ UpdateSlidesPositionRequest' <$>
4668+ (o .:? "slideObjectIds" .!= mempty) <*>
4669+ (o .:? "insertionIndex"))
4670+
4671+instance ToJSON UpdateSlidesPositionRequest where
4672+ toJSON UpdateSlidesPositionRequest'{..}
4673+ = object
4674+ (catMaybes
4675+ [("slideObjectIds" .=) <$> _usprSlideObjectIds,
4676+ ("insertionIndex" .=) <$> _usprInsertionIndex])
4677+
4678+-- | Replaces all shapes that match the given criteria with the provided
4679+-- image.
4680+--
4681+-- /See:/ 'replaceAllShapesWithImageRequest' smart constructor.
4682+data ReplaceAllShapesWithImageRequest = ReplaceAllShapesWithImageRequest'
4683+ { _raswirContainsText :: !(Maybe SubstringMatchCriteria)
4684+ , _raswirImageURL :: !(Maybe Text)
4685+ , _raswirReplaceMethod :: !(Maybe ReplaceAllShapesWithImageRequestReplaceMethod)
4686+ } deriving (Eq,Show,Data,Typeable,Generic)
4687+
4688+-- | Creates a value of 'ReplaceAllShapesWithImageRequest' with the minimum fields required to make a request.
4689+--
4690+-- Use one of the following lenses to modify other fields as desired:
4691+--
4692+-- * 'raswirContainsText'
4693+--
4694+-- * 'raswirImageURL'
4695+--
4696+-- * 'raswirReplaceMethod'
4697+replaceAllShapesWithImageRequest
4698+ :: ReplaceAllShapesWithImageRequest
4699+replaceAllShapesWithImageRequest =
4700+ ReplaceAllShapesWithImageRequest'
4701+ { _raswirContainsText = Nothing
4702+ , _raswirImageURL = Nothing
4703+ , _raswirReplaceMethod = Nothing
4704+ }
4705+
4706+-- | If set, this request will replace all of the shapes that contain the
4707+-- given text.
4708+raswirContainsText :: Lens' ReplaceAllShapesWithImageRequest (Maybe SubstringMatchCriteria)
4709+raswirContainsText
4710+ = lens _raswirContainsText
4711+ (\ s a -> s{_raswirContainsText = a})
4712+
4713+-- | The image URL. The image is fetched once at insertion time and a copy is
4714+-- stored for display inside the presentation. Images must be less than
4715+-- 50MB in size, cannot exceed 25 megapixels, and must be in either in PNG,
4716+-- JPEG, or GIF format.
4717+raswirImageURL :: Lens' ReplaceAllShapesWithImageRequest (Maybe Text)
4718+raswirImageURL
4719+ = lens _raswirImageURL
4720+ (\ s a -> s{_raswirImageURL = a})
4721+
4722+-- | The replace method.
4723+raswirReplaceMethod :: Lens' ReplaceAllShapesWithImageRequest (Maybe ReplaceAllShapesWithImageRequestReplaceMethod)
4724+raswirReplaceMethod
4725+ = lens _raswirReplaceMethod
4726+ (\ s a -> s{_raswirReplaceMethod = a})
4727+
4728+instance FromJSON ReplaceAllShapesWithImageRequest
4729+ where
4730+ parseJSON
4731+ = withObject "ReplaceAllShapesWithImageRequest"
4732+ (\ o ->
4733+ ReplaceAllShapesWithImageRequest' <$>
4734+ (o .:? "containsText") <*> (o .:? "imageUrl") <*>
4735+ (o .:? "replaceMethod"))
4736+
4737+instance ToJSON ReplaceAllShapesWithImageRequest
4738+ where
4739+ toJSON ReplaceAllShapesWithImageRequest'{..}
4740+ = object
4741+ (catMaybes
4742+ [("containsText" .=) <$> _raswirContainsText,
4743+ ("imageUrl" .=) <$> _raswirImageURL,
4744+ ("replaceMethod" .=) <$> _raswirReplaceMethod])
4745+
4746+-- | A visual element rendered on a page.
4747+--
4748+-- /See:/ 'pageElement' smart constructor.
4749+data PageElement = PageElement'
4750+ { _peTransform :: !(Maybe AffineTransform)
4751+ , _peImage :: !(Maybe Image)
4752+ , _peSize :: !(Maybe Size)
4753+ , _peSheetsChart :: !(Maybe SheetsChart)
4754+ , _peObjectId :: !(Maybe Text)
4755+ , _peLine :: !(Maybe Line)
4756+ , _peElementGroup :: !(Maybe Group)
4757+ , _peVideo :: !(Maybe Video)
4758+ , _peWordArt :: !(Maybe WordArt)
4759+ , _peShape :: !(Maybe Shape)
4760+ , _peTitle :: !(Maybe Text)
4761+ , _peTable :: !(Maybe Table)
4762+ , _peDescription :: !(Maybe Text)
4763+ } deriving (Eq,Show,Data,Typeable,Generic)
4764+
4765+-- | Creates a value of 'PageElement' with the minimum fields required to make a request.
4766+--
4767+-- Use one of the following lenses to modify other fields as desired:
4768+--
4769+-- * 'peTransform'
4770+--
4771+-- * 'peImage'
4772+--
4773+-- * 'peSize'
4774+--
4775+-- * 'peSheetsChart'
4776+--
4777+-- * 'peObjectId'
4778+--
4779+-- * 'peLine'
4780+--
4781+-- * 'peElementGroup'
4782+--
4783+-- * 'peVideo'
4784+--
4785+-- * 'peWordArt'
4786+--
4787+-- * 'peShape'
4788+--
4789+-- * 'peTitle'
4790+--
4791+-- * 'peTable'
4792+--
4793+-- * 'peDescription'
4794+pageElement
4795+ :: PageElement
4796+pageElement =
4797+ PageElement'
4798+ { _peTransform = Nothing
4799+ , _peImage = Nothing
4800+ , _peSize = Nothing
4801+ , _peSheetsChart = Nothing
4802+ , _peObjectId = Nothing
4803+ , _peLine = Nothing
4804+ , _peElementGroup = Nothing
4805+ , _peVideo = Nothing
4806+ , _peWordArt = Nothing
4807+ , _peShape = Nothing
4808+ , _peTitle = Nothing
4809+ , _peTable = Nothing
4810+ , _peDescription = Nothing
4811+ }
4812+
4813+-- | The transform of the page element.
4814+peTransform :: Lens' PageElement (Maybe AffineTransform)
4815+peTransform
4816+ = lens _peTransform (\ s a -> s{_peTransform = a})
4817+
4818+-- | An image page element.
4819+peImage :: Lens' PageElement (Maybe Image)
4820+peImage = lens _peImage (\ s a -> s{_peImage = a})
4821+
4822+-- | The size of the page element.
4823+peSize :: Lens' PageElement (Maybe Size)
4824+peSize = lens _peSize (\ s a -> s{_peSize = a})
4825+
4826+-- | A linked chart embedded from Google Sheets. Unlinked charts are
4827+-- represented as images.
4828+peSheetsChart :: Lens' PageElement (Maybe SheetsChart)
4829+peSheetsChart
4830+ = lens _peSheetsChart
4831+ (\ s a -> s{_peSheetsChart = a})
4832+
4833+-- | The object ID for this page element. Object IDs used by
4834+-- google.apps.slides.v1.Page and google.apps.slides.v1.PageElement share
4835+-- the same namespace.
4836+peObjectId :: Lens' PageElement (Maybe Text)
4837+peObjectId
4838+ = lens _peObjectId (\ s a -> s{_peObjectId = a})
4839+
4840+-- | A line page element.
4841+peLine :: Lens' PageElement (Maybe Line)
4842+peLine = lens _peLine (\ s a -> s{_peLine = a})
4843+
4844+-- | A collection of page elements joined as a single unit.
4845+peElementGroup :: Lens' PageElement (Maybe Group)
4846+peElementGroup
4847+ = lens _peElementGroup
4848+ (\ s a -> s{_peElementGroup = a})
4849+
4850+-- | A video page element.
4851+peVideo :: Lens' PageElement (Maybe Video)
4852+peVideo = lens _peVideo (\ s a -> s{_peVideo = a})
4853+
4854+-- | A word art page element.
4855+peWordArt :: Lens' PageElement (Maybe WordArt)
4856+peWordArt
4857+ = lens _peWordArt (\ s a -> s{_peWordArt = a})
4858+
4859+-- | A generic shape.
4860+peShape :: Lens' PageElement (Maybe Shape)
4861+peShape = lens _peShape (\ s a -> s{_peShape = a})
4862+
4863+-- | The title of the page element. Combined with description to display alt
4864+-- text.
4865+peTitle :: Lens' PageElement (Maybe Text)
4866+peTitle = lens _peTitle (\ s a -> s{_peTitle = a})
4867+
4868+-- | A table page element.
4869+peTable :: Lens' PageElement (Maybe Table)
4870+peTable = lens _peTable (\ s a -> s{_peTable = a})
4871+
4872+-- | The description of the page element. Combined with title to display alt
4873+-- text.
4874+peDescription :: Lens' PageElement (Maybe Text)
4875+peDescription
4876+ = lens _peDescription
4877+ (\ s a -> s{_peDescription = a})
4878+
4879+instance FromJSON PageElement where
4880+ parseJSON
4881+ = withObject "PageElement"
4882+ (\ o ->
4883+ PageElement' <$>
4884+ (o .:? "transform") <*> (o .:? "image") <*>
4885+ (o .:? "size")
4886+ <*> (o .:? "sheetsChart")
4887+ <*> (o .:? "objectId")
4888+ <*> (o .:? "line")
4889+ <*> (o .:? "elementGroup")
4890+ <*> (o .:? "video")
4891+ <*> (o .:? "wordArt")
4892+ <*> (o .:? "shape")
4893+ <*> (o .:? "title")
4894+ <*> (o .:? "table")
4895+ <*> (o .:? "description"))
4896+
4897+instance ToJSON PageElement where
4898+ toJSON PageElement'{..}
4899+ = object
4900+ (catMaybes
4901+ [("transform" .=) <$> _peTransform,
4902+ ("image" .=) <$> _peImage, ("size" .=) <$> _peSize,
4903+ ("sheetsChart" .=) <$> _peSheetsChart,
4904+ ("objectId" .=) <$> _peObjectId,
4905+ ("line" .=) <$> _peLine,
4906+ ("elementGroup" .=) <$> _peElementGroup,
4907+ ("video" .=) <$> _peVideo,
4908+ ("wordArt" .=) <$> _peWordArt,
4909+ ("shape" .=) <$> _peShape, ("title" .=) <$> _peTitle,
4910+ ("table" .=) <$> _peTable,
4911+ ("description" .=) <$> _peDescription])
4912+
4913+-- | A color and position in a gradient band.
4914+--
4915+-- /See:/ 'colorStop' smart constructor.
4916+data ColorStop = ColorStop'
4917+ { _csColor :: !(Maybe OpaqueColor)
4918+ , _csAlpha :: !(Maybe (Textual Double))
4919+ , _csPosition :: !(Maybe (Textual Double))
4920+ } deriving (Eq,Show,Data,Typeable,Generic)
4921+
4922+-- | Creates a value of 'ColorStop' with the minimum fields required to make a request.
4923+--
4924+-- Use one of the following lenses to modify other fields as desired:
4925+--
4926+-- * 'csColor'
4927+--
4928+-- * 'csAlpha'
4929+--
4930+-- * 'csPosition'
4931+colorStop
4932+ :: ColorStop
4933+colorStop =
4934+ ColorStop'
4935+ { _csColor = Nothing
4936+ , _csAlpha = Nothing
4937+ , _csPosition = Nothing
4938+ }
4939+
4940+-- | The color of the gradient stop.
4941+csColor :: Lens' ColorStop (Maybe OpaqueColor)
4942+csColor = lens _csColor (\ s a -> s{_csColor = a})
4943+
4944+-- | The alpha value of this color in the gradient band. Defaults to 1.0,
4945+-- fully opaque.
4946+csAlpha :: Lens' ColorStop (Maybe Double)
4947+csAlpha
4948+ = lens _csAlpha (\ s a -> s{_csAlpha = a}) .
4949+ mapping _Coerce
4950+
4951+-- | The relative position of the color stop in the gradient band measured in
4952+-- percentage. The value should be in the interval [0.0, 1.0].
4953+csPosition :: Lens' ColorStop (Maybe Double)
4954+csPosition
4955+ = lens _csPosition (\ s a -> s{_csPosition = a}) .
4956+ mapping _Coerce
4957+
4958+instance FromJSON ColorStop where
4959+ parseJSON
4960+ = withObject "ColorStop"
4961+ (\ o ->
4962+ ColorStop' <$>
4963+ (o .:? "color") <*> (o .:? "alpha") <*>
4964+ (o .:? "position"))
4965+
4966+instance ToJSON ColorStop where
4967+ toJSON ColorStop'{..}
4968+ = object
4969+ (catMaybes
4970+ [("color" .=) <$> _csColor,
4971+ ("alpha" .=) <$> _csAlpha,
4972+ ("position" .=) <$> _csPosition])
4973+
4974+-- | Deletes an object, either pages or page elements, from the presentation.
4975+--
4976+-- /See:/ 'deleteObjectRequest' smart constructor.
4977+newtype DeleteObjectRequest = DeleteObjectRequest'
4978+ { _dObjectId :: Maybe Text
4979+ } deriving (Eq,Show,Data,Typeable,Generic)
4980+
4981+-- | Creates a value of 'DeleteObjectRequest' with the minimum fields required to make a request.
4982+--
4983+-- Use one of the following lenses to modify other fields as desired:
4984+--
4985+-- * 'dObjectId'
4986+deleteObjectRequest
4987+ :: DeleteObjectRequest
4988+deleteObjectRequest =
4989+ DeleteObjectRequest'
4990+ { _dObjectId = Nothing
4991+ }
4992+
4993+-- | The object ID of the page or page element to delete. If after a delete
4994+-- operation a group contains only 1 or no page elements, the group is also
4995+-- deleted. If a placeholder is deleted on a layout, any empty inheriting
4996+-- shapes are also deleted.
4997+dObjectId :: Lens' DeleteObjectRequest (Maybe Text)
4998+dObjectId
4999+ = lens _dObjectId (\ s a -> s{_dObjectId = a})
5000+
5001+instance FromJSON DeleteObjectRequest where
5002+ parseJSON
5003+ = withObject "DeleteObjectRequest"
5004+ (\ o -> DeleteObjectRequest' <$> (o .:? "objectId"))
5005+
5006+instance ToJSON DeleteObjectRequest where
5007+ toJSON DeleteObjectRequest'{..}
5008+ = object (catMaybes [("objectId" .=) <$> _dObjectId])
5009+
5010+-- | The result of creating a slide.
5011+--
5012+-- /See:/ 'createSlideResponse' smart constructor.
5013+newtype CreateSlideResponse = CreateSlideResponse'
5014+ { _ccObjectId :: Maybe Text
5015+ } deriving (Eq,Show,Data,Typeable,Generic)
5016+
5017+-- | Creates a value of 'CreateSlideResponse' with the minimum fields required to make a request.
5018+--
5019+-- Use one of the following lenses to modify other fields as desired:
5020+--
5021+-- * 'ccObjectId'
5022+createSlideResponse
5023+ :: CreateSlideResponse
5024+createSlideResponse =
5025+ CreateSlideResponse'
5026+ { _ccObjectId = Nothing
5027+ }
5028+
5029+-- | The object ID of the created slide.
5030+ccObjectId :: Lens' CreateSlideResponse (Maybe Text)
5031+ccObjectId
5032+ = lens _ccObjectId (\ s a -> s{_ccObjectId = a})
5033+
5034+instance FromJSON CreateSlideResponse where
5035+ parseJSON
5036+ = withObject "CreateSlideResponse"
5037+ (\ o -> CreateSlideResponse' <$> (o .:? "objectId"))
5038+
5039+instance ToJSON CreateSlideResponse where
5040+ toJSON CreateSlideResponse'{..}
5041+ = object
5042+ (catMaybes [("objectId" .=) <$> _ccObjectId])
5043+
5044+-- | The palette of predefined colors for a page.
5045+--
5046+-- /See:/ 'colorScheme' smart constructor.
5047+newtype ColorScheme = ColorScheme'
5048+ { _csColors :: Maybe [ThemeColorPair]
5049+ } deriving (Eq,Show,Data,Typeable,Generic)
5050+
5051+-- | Creates a value of 'ColorScheme' with the minimum fields required to make a request.
5052+--
5053+-- Use one of the following lenses to modify other fields as desired:
5054+--
5055+-- * 'csColors'
5056+colorScheme
5057+ :: ColorScheme
5058+colorScheme =
5059+ ColorScheme'
5060+ { _csColors = Nothing
5061+ }
5062+
5063+-- | The ThemeColorType and corresponding concrete color pairs.
5064+csColors :: Lens' ColorScheme [ThemeColorPair]
5065+csColors
5066+ = lens _csColors (\ s a -> s{_csColors = a}) .
5067+ _Default
5068+ . _Coerce
5069+
5070+instance FromJSON ColorScheme where
5071+ parseJSON
5072+ = withObject "ColorScheme"
5073+ (\ o -> ColorScheme' <$> (o .:? "colors" .!= mempty))
5074+
5075+instance ToJSON ColorScheme where
5076+ toJSON ColorScheme'{..}
5077+ = object (catMaybes [("colors" .=) <$> _csColors])
5078+
5079+-- | Properties and contents of each table cell.
5080+--
5081+-- /See:/ 'tableCell' smart constructor.
5082+data TableCell = TableCell'
5083+ { _tcColumnSpan :: !(Maybe (Textual Int32))
5084+ , _tcLocation :: !(Maybe TableCellLocation)
5085+ , _tcText :: !(Maybe TextContent)
5086+ , _tcRowSpan :: !(Maybe (Textual Int32))
5087+ , _tcTableCellProperties :: !(Maybe TableCellProperties)
5088+ } deriving (Eq,Show,Data,Typeable,Generic)
5089+
5090+-- | Creates a value of 'TableCell' with the minimum fields required to make a request.
5091+--
5092+-- Use one of the following lenses to modify other fields as desired:
5093+--
5094+-- * 'tcColumnSpan'
5095+--
5096+-- * 'tcLocation'
5097+--
5098+-- * 'tcText'
5099+--
5100+-- * 'tcRowSpan'
5101+--
5102+-- * 'tcTableCellProperties'
5103+tableCell
5104+ :: TableCell
5105+tableCell =
5106+ TableCell'
5107+ { _tcColumnSpan = Nothing
5108+ , _tcLocation = Nothing
5109+ , _tcText = Nothing
5110+ , _tcRowSpan = Nothing
5111+ , _tcTableCellProperties = Nothing
5112+ }
5113+
5114+-- | Column span of the cell.
5115+tcColumnSpan :: Lens' TableCell (Maybe Int32)
5116+tcColumnSpan
5117+ = lens _tcColumnSpan (\ s a -> s{_tcColumnSpan = a})
5118+ . mapping _Coerce
5119+
5120+-- | The location of the cell within the table.
5121+tcLocation :: Lens' TableCell (Maybe TableCellLocation)
5122+tcLocation
5123+ = lens _tcLocation (\ s a -> s{_tcLocation = a})
5124+
5125+-- | The text content of the cell.
5126+tcText :: Lens' TableCell (Maybe TextContent)
5127+tcText = lens _tcText (\ s a -> s{_tcText = a})
5128+
5129+-- | Row span of the cell.
5130+tcRowSpan :: Lens' TableCell (Maybe Int32)
5131+tcRowSpan
5132+ = lens _tcRowSpan (\ s a -> s{_tcRowSpan = a}) .
5133+ mapping _Coerce
5134+
5135+-- | The properties of the table cell.
5136+tcTableCellProperties :: Lens' TableCell (Maybe TableCellProperties)
5137+tcTableCellProperties
5138+ = lens _tcTableCellProperties
5139+ (\ s a -> s{_tcTableCellProperties = a})
5140+
5141+instance FromJSON TableCell where
5142+ parseJSON
5143+ = withObject "TableCell"
5144+ (\ o ->
5145+ TableCell' <$>
5146+ (o .:? "columnSpan") <*> (o .:? "location") <*>
5147+ (o .:? "text")
5148+ <*> (o .:? "rowSpan")
5149+ <*> (o .:? "tableCellProperties"))
5150+
5151+instance ToJSON TableCell where
5152+ toJSON TableCell'{..}
5153+ = object
5154+ (catMaybes
5155+ [("columnSpan" .=) <$> _tcColumnSpan,
5156+ ("location" .=) <$> _tcLocation,
5157+ ("text" .=) <$> _tcText,
5158+ ("rowSpan" .=) <$> _tcRowSpan,
5159+ ("tableCellProperties" .=) <$>
5160+ _tcTableCellProperties])
5161+
5162+-- | A map of nesting levels to the properties of bullets at the associated
5163+-- level. A list has at most nine levels of nesting, so the possible values
5164+-- for the keys of this map are 0 through 8, inclusive.
5165+--
5166+-- /See:/ 'listNestingLevel' smart constructor.
5167+newtype ListNestingLevel = ListNestingLevel'
5168+ { _lnlAddtional :: HashMap Text NestingLevel
5169+ } deriving (Eq,Show,Data,Typeable,Generic)
5170+
5171+-- | Creates a value of 'ListNestingLevel' with the minimum fields required to make a request.
5172+--
5173+-- Use one of the following lenses to modify other fields as desired:
5174+--
5175+-- * 'lnlAddtional'
5176+listNestingLevel
5177+ :: HashMap Text NestingLevel -- ^ 'lnlAddtional'
5178+ -> ListNestingLevel
5179+listNestingLevel pLnlAddtional_ =
5180+ ListNestingLevel'
5181+ { _lnlAddtional = _Coerce # pLnlAddtional_
5182+ }
5183+
5184+lnlAddtional :: Lens' ListNestingLevel (HashMap Text NestingLevel)
5185+lnlAddtional
5186+ = lens _lnlAddtional (\ s a -> s{_lnlAddtional = a})
5187+ . _Coerce
5188+
5189+instance FromJSON ListNestingLevel where
5190+ parseJSON
5191+ = withObject "ListNestingLevel"
5192+ (\ o -> ListNestingLevel' <$> (parseJSONObject o))
5193+
5194+instance ToJSON ListNestingLevel where
5195+ toJSON = toJSON . _lnlAddtional
5196+
5197+-- | The outline of a PageElement. If these fields are unset, they may be
5198+-- inherited from a parent placeholder if it exists. If there is no parent,
5199+-- the fields will default to the value used for new page elements created
5200+-- in the Slides editor, which may depend on the page element kind.
5201+--
5202+-- /See:/ 'outline' smart constructor.
5203+data Outline = Outline'
5204+ { _oOutlineFill :: !(Maybe OutlineFill)
5205+ , _oWeight :: !(Maybe Dimension)
5206+ , _oDashStyle :: !(Maybe OutlineDashStyle)
5207+ , _oPropertyState :: !(Maybe OutlinePropertyState)
5208+ } deriving (Eq,Show,Data,Typeable,Generic)
5209+
5210+-- | Creates a value of 'Outline' with the minimum fields required to make a request.
5211+--
5212+-- Use one of the following lenses to modify other fields as desired:
5213+--
5214+-- * 'oOutlineFill'
5215+--
5216+-- * 'oWeight'
5217+--
5218+-- * 'oDashStyle'
5219+--
5220+-- * 'oPropertyState'
5221+outline
5222+ :: Outline
5223+outline =
5224+ Outline'
5225+ { _oOutlineFill = Nothing
5226+ , _oWeight = Nothing
5227+ , _oDashStyle = Nothing
5228+ , _oPropertyState = Nothing
5229+ }
5230+
5231+-- | The fill of the outline.
5232+oOutlineFill :: Lens' Outline (Maybe OutlineFill)
5233+oOutlineFill
5234+ = lens _oOutlineFill (\ s a -> s{_oOutlineFill = a})
5235+
5236+-- | The thickness of the outline.
5237+oWeight :: Lens' Outline (Maybe Dimension)
5238+oWeight = lens _oWeight (\ s a -> s{_oWeight = a})
5239+
5240+-- | The dash style of the outline.
5241+oDashStyle :: Lens' Outline (Maybe OutlineDashStyle)
5242+oDashStyle
5243+ = lens _oDashStyle (\ s a -> s{_oDashStyle = a})
5244+
5245+-- | The outline property state. Updating the the outline on a page element
5246+-- will implicitly update this field to\`RENDERED\`, unless another value
5247+-- is specified in the same request. To have no outline on a page element,
5248+-- set this field to \`NOT_RENDERED\`. In this case, any other outline
5249+-- fields set in the same request will be ignored.
5250+oPropertyState :: Lens' Outline (Maybe OutlinePropertyState)
5251+oPropertyState
5252+ = lens _oPropertyState
5253+ (\ s a -> s{_oPropertyState = a})
5254+
5255+instance FromJSON Outline where
5256+ parseJSON
5257+ = withObject "Outline"
5258+ (\ o ->
5259+ Outline' <$>
5260+ (o .:? "outlineFill") <*> (o .:? "weight") <*>
5261+ (o .:? "dashStyle")
5262+ <*> (o .:? "propertyState"))
5263+
5264+instance ToJSON Outline where
5265+ toJSON Outline'{..}
5266+ = object
5267+ (catMaybes
5268+ [("outlineFill" .=) <$> _oOutlineFill,
5269+ ("weight" .=) <$> _oWeight,
5270+ ("dashStyle" .=) <$> _oDashStyle,
5271+ ("propertyState" .=) <$> _oPropertyState])
5272+
5273+-- | Update the properties of a Video.
5274+--
5275+-- /See:/ 'updateVideoPropertiesRequest' smart constructor.
5276+data UpdateVideoPropertiesRequest = UpdateVideoPropertiesRequest'
5277+ { _uvprObjectId :: !(Maybe Text)
5278+ , _uvprVideoProperties :: !(Maybe VideoProperties)
5279+ , _uvprFields :: !(Maybe FieldMask)
5280+ } deriving (Eq,Show,Data,Typeable,Generic)
5281+
5282+-- | Creates a value of 'UpdateVideoPropertiesRequest' with the minimum fields required to make a request.
5283+--
5284+-- Use one of the following lenses to modify other fields as desired:
5285+--
5286+-- * 'uvprObjectId'
5287+--
5288+-- * 'uvprVideoProperties'
5289+--
5290+-- * 'uvprFields'
5291+updateVideoPropertiesRequest
5292+ :: UpdateVideoPropertiesRequest
5293+updateVideoPropertiesRequest =
5294+ UpdateVideoPropertiesRequest'
5295+ { _uvprObjectId = Nothing
5296+ , _uvprVideoProperties = Nothing
5297+ , _uvprFields = Nothing
5298+ }
5299+
5300+-- | The object ID of the video the updates are applied to.
5301+uvprObjectId :: Lens' UpdateVideoPropertiesRequest (Maybe Text)
5302+uvprObjectId
5303+ = lens _uvprObjectId (\ s a -> s{_uvprObjectId = a})
5304+
5305+-- | The video properties to update.
5306+uvprVideoProperties :: Lens' UpdateVideoPropertiesRequest (Maybe VideoProperties)
5307+uvprVideoProperties
5308+ = lens _uvprVideoProperties
5309+ (\ s a -> s{_uvprVideoProperties = a})
5310+
5311+-- | The fields that should be updated. At least one field must be specified.
5312+-- The root \`videoProperties\` is implied and should not be specified. A
5313+-- single \`\"*\"\` can be used as short-hand for listing every field. For
5314+-- example to update the video outline color, set \`fields\` to
5315+-- \`\"outline.outlineFill.solidFill.color\"\`. To reset a property to its
5316+-- default value, include its field name in the field mask but leave the
5317+-- field itself unset.
5318+uvprFields :: Lens' UpdateVideoPropertiesRequest (Maybe FieldMask)
5319+uvprFields
5320+ = lens _uvprFields (\ s a -> s{_uvprFields = a})
5321+
5322+instance FromJSON UpdateVideoPropertiesRequest where
5323+ parseJSON
5324+ = withObject "UpdateVideoPropertiesRequest"
5325+ (\ o ->
5326+ UpdateVideoPropertiesRequest' <$>
5327+ (o .:? "objectId") <*> (o .:? "videoProperties") <*>
5328+ (o .:? "fields"))
5329+
5330+instance ToJSON UpdateVideoPropertiesRequest where
5331+ toJSON UpdateVideoPropertiesRequest'{..}
5332+ = object
5333+ (catMaybes
5334+ [("objectId" .=) <$> _uvprObjectId,
5335+ ("videoProperties" .=) <$> _uvprVideoProperties,
5336+ ("fields" .=) <$> _uvprFields])
5337+
5338+-- | The properties of the Video.
5339+--
5340+-- /See:/ 'videoProperties' smart constructor.
5341+newtype VideoProperties = VideoProperties'
5342+ { _vpOutline :: Maybe Outline
5343+ } deriving (Eq,Show,Data,Typeable,Generic)
5344+
5345+-- | Creates a value of 'VideoProperties' with the minimum fields required to make a request.
5346+--
5347+-- Use one of the following lenses to modify other fields as desired:
5348+--
5349+-- * 'vpOutline'
5350+videoProperties
5351+ :: VideoProperties
5352+videoProperties =
5353+ VideoProperties'
5354+ { _vpOutline = Nothing
5355+ }
5356+
5357+-- | The outline of the video. The default outline matches the defaults for
5358+-- new videos created in the Slides editor.
5359+vpOutline :: Lens' VideoProperties (Maybe Outline)
5360+vpOutline
5361+ = lens _vpOutline (\ s a -> s{_vpOutline = a})
5362+
5363+instance FromJSON VideoProperties where
5364+ parseJSON
5365+ = withObject "VideoProperties"
5366+ (\ o -> VideoProperties' <$> (o .:? "outline"))
5367+
5368+instance ToJSON VideoProperties where
5369+ toJSON VideoProperties'{..}
5370+ = object (catMaybes [("outline" .=) <$> _vpOutline])
5371+
5372+-- | The result of creating an image.
5373+--
5374+-- /See:/ 'createImageResponse' smart constructor.
5375+newtype CreateImageResponse = CreateImageResponse'
5376+ { _ciriObjectId :: Maybe Text
5377+ } deriving (Eq,Show,Data,Typeable,Generic)
5378+
5379+-- | Creates a value of 'CreateImageResponse' with the minimum fields required to make a request.
5380+--
5381+-- Use one of the following lenses to modify other fields as desired:
5382+--
5383+-- * 'ciriObjectId'
5384+createImageResponse
5385+ :: CreateImageResponse
5386+createImageResponse =
5387+ CreateImageResponse'
5388+ { _ciriObjectId = Nothing
5389+ }
5390+
5391+-- | The object ID of the created image.
5392+ciriObjectId :: Lens' CreateImageResponse (Maybe Text)
5393+ciriObjectId
5394+ = lens _ciriObjectId (\ s a -> s{_ciriObjectId = a})
5395+
5396+instance FromJSON CreateImageResponse where
5397+ parseJSON
5398+ = withObject "CreateImageResponse"
5399+ (\ o -> CreateImageResponse' <$> (o .:? "objectId"))
5400+
5401+instance ToJSON CreateImageResponse where
5402+ toJSON CreateImageResponse'{..}
5403+ = object
5404+ (catMaybes [("objectId" .=) <$> _ciriObjectId])
5405+
5406+-- | A TextElement describes the content of a range of indices in the text
5407+-- content of a Shape or TableCell.
5408+--
5409+-- /See:/ 'textElement' smart constructor.
5410+data TextElement = TextElement'
5411+ { _teParagraphMarker :: !(Maybe ParagraphMarker)
5412+ , _teAutoText :: !(Maybe AutoText)
5413+ , _teEndIndex :: !(Maybe (Textual Int32))
5414+ , _teTextRun :: !(Maybe TextRun)
5415+ , _teStartIndex :: !(Maybe (Textual Int32))
5416+ } deriving (Eq,Show,Data,Typeable,Generic)
5417+
5418+-- | Creates a value of 'TextElement' with the minimum fields required to make a request.
5419+--
5420+-- Use one of the following lenses to modify other fields as desired:
5421+--
5422+-- * 'teParagraphMarker'
5423+--
5424+-- * 'teAutoText'
5425+--
5426+-- * 'teEndIndex'
5427+--
5428+-- * 'teTextRun'
5429+--
5430+-- * 'teStartIndex'
5431+textElement
5432+ :: TextElement
5433+textElement =
5434+ TextElement'
5435+ { _teParagraphMarker = Nothing
5436+ , _teAutoText = Nothing
5437+ , _teEndIndex = Nothing
5438+ , _teTextRun = Nothing
5439+ , _teStartIndex = Nothing
5440+ }
5441+
5442+-- | A marker representing the beginning of a new paragraph. The
5443+-- \`start_index\` and \`end_index\` of this TextElement represent the
5444+-- range of the paragraph. Other TextElements with an index range contained
5445+-- inside this paragraph\'s range are considered to be part of this
5446+-- paragraph. The range of indices of two separate paragraphs will never
5447+-- overlap.
5448+teParagraphMarker :: Lens' TextElement (Maybe ParagraphMarker)
5449+teParagraphMarker
5450+ = lens _teParagraphMarker
5451+ (\ s a -> s{_teParagraphMarker = a})
5452+
5453+-- | A TextElement representing a spot in the text that is dynamically
5454+-- replaced with content that can change over time.
5455+teAutoText :: Lens' TextElement (Maybe AutoText)
5456+teAutoText
5457+ = lens _teAutoText (\ s a -> s{_teAutoText = a})
5458+
5459+-- | The zero-based end index of this text element, exclusive, in Unicode
5460+-- code units.
5461+teEndIndex :: Lens' TextElement (Maybe Int32)
5462+teEndIndex
5463+ = lens _teEndIndex (\ s a -> s{_teEndIndex = a}) .
5464+ mapping _Coerce
5465+
5466+-- | A TextElement representing a run of text where all of the characters in
5467+-- the run have the same TextStyle. The \`start_index\` and \`end_index\`
5468+-- of TextRuns will always be fully contained in the index range of a
5469+-- single \`paragraph_marker\` TextElement. In other words, a TextRun will
5470+-- never span multiple paragraphs.
5471+teTextRun :: Lens' TextElement (Maybe TextRun)
5472+teTextRun
5473+ = lens _teTextRun (\ s a -> s{_teTextRun = a})
5474+
5475+-- | The zero-based start index of this text element, in Unicode code units.
5476+teStartIndex :: Lens' TextElement (Maybe Int32)
5477+teStartIndex
5478+ = lens _teStartIndex (\ s a -> s{_teStartIndex = a})
5479+ . mapping _Coerce
5480+
5481+instance FromJSON TextElement where
5482+ parseJSON
5483+ = withObject "TextElement"
5484+ (\ o ->
5485+ TextElement' <$>
5486+ (o .:? "paragraphMarker") <*> (o .:? "autoText") <*>
5487+ (o .:? "endIndex")
5488+ <*> (o .:? "textRun")
5489+ <*> (o .:? "startIndex"))
5490+
5491+instance ToJSON TextElement where
5492+ toJSON TextElement'{..}
5493+ = object
5494+ (catMaybes
5495+ [("paragraphMarker" .=) <$> _teParagraphMarker,
5496+ ("autoText" .=) <$> _teAutoText,
5497+ ("endIndex" .=) <$> _teEndIndex,
5498+ ("textRun" .=) <$> _teTextRun,
5499+ ("startIndex" .=) <$> _teStartIndex])
5500+
5501+-- | Inserts text into a shape or a table cell.
5502+--
5503+-- /See:/ 'insertTextRequest' smart constructor.
5504+data InsertTextRequest = InsertTextRequest'
5505+ { _itrText :: !(Maybe Text)
5506+ , _itrObjectId :: !(Maybe Text)
5507+ , _itrInsertionIndex :: !(Maybe (Textual Int32))
5508+ , _itrCellLocation :: !(Maybe TableCellLocation)
5509+ } deriving (Eq,Show,Data,Typeable,Generic)
5510+
5511+-- | Creates a value of 'InsertTextRequest' with the minimum fields required to make a request.
5512+--
5513+-- Use one of the following lenses to modify other fields as desired:
5514+--
5515+-- * 'itrText'
5516+--
5517+-- * 'itrObjectId'
5518+--
5519+-- * 'itrInsertionIndex'
5520+--
5521+-- * 'itrCellLocation'
5522+insertTextRequest
5523+ :: InsertTextRequest
5524+insertTextRequest =
5525+ InsertTextRequest'
5526+ { _itrText = Nothing
5527+ , _itrObjectId = Nothing
5528+ , _itrInsertionIndex = Nothing
5529+ , _itrCellLocation = Nothing
5530+ }
5531+
5532+-- | The text to be inserted. Inserting a newline character will implicitly
5533+-- create a new ParagraphMarker at that index. The paragraph style of the
5534+-- new paragraph will be copied from the paragraph at the current insertion
5535+-- index, including lists and bullets. Text styles for inserted text will
5536+-- be determined automatically, generally preserving the styling of
5537+-- neighboring text. In most cases, the text will be added to the TextRun
5538+-- that exists at the insertion index. Some control characters
5539+-- (U+0000-U+0008, U+000C-U+001F) and characters from the Unicode Basic
5540+-- Multilingual Plane Private Use Area (U+E000-U+F8FF) will be stripped out
5541+-- of the inserted text.
5542+itrText :: Lens' InsertTextRequest (Maybe Text)
5543+itrText = lens _itrText (\ s a -> s{_itrText = a})
5544+
5545+-- | The object ID of the shape or table where the text will be inserted.
5546+itrObjectId :: Lens' InsertTextRequest (Maybe Text)
5547+itrObjectId
5548+ = lens _itrObjectId (\ s a -> s{_itrObjectId = a})
5549+
5550+-- | The index where the text will be inserted, in Unicode code units, based
5551+-- on TextElement indexes. The index is zero-based and is computed from the
5552+-- start of the string. The index may be adjusted to prevent insertions
5553+-- inside Unicode grapheme clusters. In these cases, the text will be
5554+-- inserted immediately after the grapheme cluster.
5555+itrInsertionIndex :: Lens' InsertTextRequest (Maybe Int32)
5556+itrInsertionIndex
5557+ = lens _itrInsertionIndex
5558+ (\ s a -> s{_itrInsertionIndex = a})
5559+ . mapping _Coerce
5560+
5561+-- | The optional table cell location if the text is to be inserted into a
5562+-- table cell. If present, the object_id must refer to a table.
5563+itrCellLocation :: Lens' InsertTextRequest (Maybe TableCellLocation)
5564+itrCellLocation
5565+ = lens _itrCellLocation
5566+ (\ s a -> s{_itrCellLocation = a})
5567+
5568+instance FromJSON InsertTextRequest where
5569+ parseJSON
5570+ = withObject "InsertTextRequest"
5571+ (\ o ->
5572+ InsertTextRequest' <$>
5573+ (o .:? "text") <*> (o .:? "objectId") <*>
5574+ (o .:? "insertionIndex")
5575+ <*> (o .:? "cellLocation"))
5576+
5577+instance ToJSON InsertTextRequest where
5578+ toJSON InsertTextRequest'{..}
5579+ = object
5580+ (catMaybes
5581+ [("text" .=) <$> _itrText,
5582+ ("objectId" .=) <$> _itrObjectId,
5583+ ("insertionIndex" .=) <$> _itrInsertionIndex,
5584+ ("cellLocation" .=) <$> _itrCellLocation])
5585+
5586+-- | Creates a line.
5587+--
5588+-- /See:/ 'createLineRequest' smart constructor.
5589+data CreateLineRequest = CreateLineRequest'
5590+ { _clrlObjectId :: !(Maybe Text)
5591+ , _clrlLineCategory :: !(Maybe CreateLineRequestLineCategory)
5592+ , _clrlElementProperties :: !(Maybe PageElementProperties)
5593+ } deriving (Eq,Show,Data,Typeable,Generic)
5594+
5595+-- | Creates a value of 'CreateLineRequest' with the minimum fields required to make a request.
5596+--
5597+-- Use one of the following lenses to modify other fields as desired:
5598+--
5599+-- * 'clrlObjectId'
5600+--
5601+-- * 'clrlLineCategory'
5602+--
5603+-- * 'clrlElementProperties'
5604+createLineRequest
5605+ :: CreateLineRequest
5606+createLineRequest =
5607+ CreateLineRequest'
5608+ { _clrlObjectId = Nothing
5609+ , _clrlLineCategory = Nothing
5610+ , _clrlElementProperties = Nothing
5611+ }
5612+
5613+-- | A user-supplied object ID. If you specify an ID, it must be unique among
5614+-- all pages and page elements in the presentation. The ID must start with
5615+-- an alphanumeric character or an underscore (matches regex
5616+-- \`[a-zA-Z0-9_]\`); remaining characters may include those as well as a
5617+-- hyphen or colon (matches regex \`[a-zA-Z0-9_-:]\`). The length of the ID
5618+-- must not be less than 5 or greater than 50. If you don\'t specify an ID,
5619+-- a unique one is generated.
5620+clrlObjectId :: Lens' CreateLineRequest (Maybe Text)
5621+clrlObjectId
5622+ = lens _clrlObjectId (\ s a -> s{_clrlObjectId = a})
5623+
5624+-- | The category of line to be created.
5625+clrlLineCategory :: Lens' CreateLineRequest (Maybe CreateLineRequestLineCategory)
5626+clrlLineCategory
5627+ = lens _clrlLineCategory
5628+ (\ s a -> s{_clrlLineCategory = a})
5629+
5630+-- | The element properties for the line.
5631+clrlElementProperties :: Lens' CreateLineRequest (Maybe PageElementProperties)
5632+clrlElementProperties
5633+ = lens _clrlElementProperties
5634+ (\ s a -> s{_clrlElementProperties = a})
5635+
5636+instance FromJSON CreateLineRequest where
5637+ parseJSON
5638+ = withObject "CreateLineRequest"
5639+ (\ o ->
5640+ CreateLineRequest' <$>
5641+ (o .:? "objectId") <*> (o .:? "lineCategory") <*>
5642+ (o .:? "elementProperties"))
5643+
5644+instance ToJSON CreateLineRequest where
5645+ toJSON CreateLineRequest'{..}
5646+ = object
5647+ (catMaybes
5648+ [("objectId" .=) <$> _clrlObjectId,
5649+ ("lineCategory" .=) <$> _clrlLineCategory,
5650+ ("elementProperties" .=) <$> _clrlElementProperties])
5651+
5652+-- | The placeholder information that uniquely identifies a placeholder
5653+-- shape.
5654+--
5655+-- /See:/ 'placeholder' smart constructor.
5656+data Placeholder = Placeholder'
5657+ { _pParentObjectId :: !(Maybe Text)
5658+ , _pType :: !(Maybe PlaceholderType)
5659+ , _pIndex :: !(Maybe (Textual Int32))
5660+ } deriving (Eq,Show,Data,Typeable,Generic)
5661+
5662+-- | Creates a value of 'Placeholder' with the minimum fields required to make a request.
5663+--
5664+-- Use one of the following lenses to modify other fields as desired:
5665+--
5666+-- * 'pParentObjectId'
5667+--
5668+-- * 'pType'
5669+--
5670+-- * 'pIndex'
5671+placeholder
5672+ :: Placeholder
5673+placeholder =
5674+ Placeholder'
5675+ { _pParentObjectId = Nothing
5676+ , _pType = Nothing
5677+ , _pIndex = Nothing
5678+ }
5679+
5680+-- | The object ID of this shape\'s parent placeholder. If unset, the parent
5681+-- placeholder shape does not exist, so the shape does not inherit
5682+-- properties from any other shape.
5683+pParentObjectId :: Lens' Placeholder (Maybe Text)
5684+pParentObjectId
5685+ = lens _pParentObjectId
5686+ (\ s a -> s{_pParentObjectId = a})
5687+
5688+-- | The type of the placeholder.
5689+pType :: Lens' Placeholder (Maybe PlaceholderType)
5690+pType = lens _pType (\ s a -> s{_pType = a})
5691+
5692+-- | The index of the placeholder. If the same placeholder types are the
5693+-- present in the same page, they would have different index values.
5694+pIndex :: Lens' Placeholder (Maybe Int32)
5695+pIndex
5696+ = lens _pIndex (\ s a -> s{_pIndex = a}) .
5697+ mapping _Coerce
5698+
5699+instance FromJSON Placeholder where
5700+ parseJSON
5701+ = withObject "Placeholder"
5702+ (\ o ->
5703+ Placeholder' <$>
5704+ (o .:? "parentObjectId") <*> (o .:? "type") <*>
5705+ (o .:? "index"))
5706+
5707+instance ToJSON Placeholder where
5708+ toJSON Placeholder'{..}
5709+ = object
5710+ (catMaybes
5711+ [("parentObjectId" .=) <$> _pParentObjectId,
5712+ ("type" .=) <$> _pType, ("index" .=) <$> _pIndex])
5713+
5714+-- | The properties of Page are only relevant for pages with page_type
5715+-- LAYOUT.
5716+--
5717+-- /See:/ 'layoutProperties' smart constructor.
5718+data LayoutProperties = LayoutProperties'
5719+ { _lpMasterObjectId :: !(Maybe Text)
5720+ , _lpName :: !(Maybe Text)
5721+ , _lpDisplayName :: !(Maybe Text)
5722+ } deriving (Eq,Show,Data,Typeable,Generic)
5723+
5724+-- | Creates a value of 'LayoutProperties' with the minimum fields required to make a request.
5725+--
5726+-- Use one of the following lenses to modify other fields as desired:
5727+--
5728+-- * 'lpMasterObjectId'
5729+--
5730+-- * 'lpName'
5731+--
5732+-- * 'lpDisplayName'
5733+layoutProperties
5734+ :: LayoutProperties
5735+layoutProperties =
5736+ LayoutProperties'
5737+ { _lpMasterObjectId = Nothing
5738+ , _lpName = Nothing
5739+ , _lpDisplayName = Nothing
5740+ }
5741+
5742+-- | The object ID of the master that this layout is based on.
5743+lpMasterObjectId :: Lens' LayoutProperties (Maybe Text)
5744+lpMasterObjectId
5745+ = lens _lpMasterObjectId
5746+ (\ s a -> s{_lpMasterObjectId = a})
5747+
5748+-- | The name of the layout.
5749+lpName :: Lens' LayoutProperties (Maybe Text)
5750+lpName = lens _lpName (\ s a -> s{_lpName = a})
5751+
5752+-- | The human readable name of the layout in the presentation\'s locale.
5753+lpDisplayName :: Lens' LayoutProperties (Maybe Text)
5754+lpDisplayName
5755+ = lens _lpDisplayName
5756+ (\ s a -> s{_lpDisplayName = a})
5757+
5758+instance FromJSON LayoutProperties where
5759+ parseJSON
5760+ = withObject "LayoutProperties"
5761+ (\ o ->
5762+ LayoutProperties' <$>
5763+ (o .:? "masterObjectId") <*> (o .:? "name") <*>
5764+ (o .:? "displayName"))
5765+
5766+instance ToJSON LayoutProperties where
5767+ toJSON LayoutProperties'{..}
5768+ = object
5769+ (catMaybes
5770+ [("masterObjectId" .=) <$> _lpMasterObjectId,
5771+ ("name" .=) <$> _lpName,
5772+ ("displayName" .=) <$> _lpDisplayName])
5773+
5774+-- | Update the properties of a Shape.
5775+--
5776+-- /See:/ 'updateShapePropertiesRequest' smart constructor.
5777+data UpdateShapePropertiesRequest = UpdateShapePropertiesRequest'
5778+ { _usprObjectId :: !(Maybe Text)
5779+ , _usprShapeProperties :: !(Maybe ShapeProperties)
5780+ , _usprFields :: !(Maybe FieldMask)
5781+ } deriving (Eq,Show,Data,Typeable,Generic)
5782+
5783+-- | Creates a value of 'UpdateShapePropertiesRequest' with the minimum fields required to make a request.
5784+--
5785+-- Use one of the following lenses to modify other fields as desired:
5786+--
5787+-- * 'usprObjectId'
5788+--
5789+-- * 'usprShapeProperties'
5790+--
5791+-- * 'usprFields'
5792+updateShapePropertiesRequest
5793+ :: UpdateShapePropertiesRequest
5794+updateShapePropertiesRequest =
5795+ UpdateShapePropertiesRequest'
5796+ { _usprObjectId = Nothing
5797+ , _usprShapeProperties = Nothing
5798+ , _usprFields = Nothing
5799+ }
5800+
5801+-- | The object ID of the shape the updates are applied to.
5802+usprObjectId :: Lens' UpdateShapePropertiesRequest (Maybe Text)
5803+usprObjectId
5804+ = lens _usprObjectId (\ s a -> s{_usprObjectId = a})
5805+
5806+-- | The shape properties to update.
5807+usprShapeProperties :: Lens' UpdateShapePropertiesRequest (Maybe ShapeProperties)
5808+usprShapeProperties
5809+ = lens _usprShapeProperties
5810+ (\ s a -> s{_usprShapeProperties = a})
5811+
5812+-- | The fields that should be updated. At least one field must be specified.
5813+-- The root \`shapeProperties\` is implied and should not be specified. A
5814+-- single \`\"*\"\` can be used as short-hand for listing every field. For
5815+-- example to update the shape background solid fill color, set \`fields\`
5816+-- to \`\"shapeBackgroundFill.solidFill.color\"\`. To reset a property to
5817+-- its default value, include its field name in the field mask but leave
5818+-- the field itself unset.
5819+usprFields :: Lens' UpdateShapePropertiesRequest (Maybe FieldMask)
5820+usprFields
5821+ = lens _usprFields (\ s a -> s{_usprFields = a})
5822+
5823+instance FromJSON UpdateShapePropertiesRequest where
5824+ parseJSON
5825+ = withObject "UpdateShapePropertiesRequest"
5826+ (\ o ->
5827+ UpdateShapePropertiesRequest' <$>
5828+ (o .:? "objectId") <*> (o .:? "shapeProperties") <*>
5829+ (o .:? "fields"))
5830+
5831+instance ToJSON UpdateShapePropertiesRequest where
5832+ toJSON UpdateShapePropertiesRequest'{..}
5833+ = object
5834+ (catMaybes
5835+ [("objectId" .=) <$> _usprObjectId,
5836+ ("shapeProperties" .=) <$> _usprShapeProperties,
5837+ ("fields" .=) <$> _usprFields])
5838+
5839+-- | A PageElement kind representing a table.
5840+--
5841+-- /See:/ 'table' smart constructor.
5842+data Table = Table'
5843+ { _tTableRows :: !(Maybe [TableRow])
5844+ , _tRows :: !(Maybe (Textual Int32))
5845+ , _tColumns :: !(Maybe (Textual Int32))
5846+ , _tTableColumns :: !(Maybe [TableColumnProperties])
5847+ } deriving (Eq,Show,Data,Typeable,Generic)
5848+
5849+-- | Creates a value of 'Table' with the minimum fields required to make a request.
5850+--
5851+-- Use one of the following lenses to modify other fields as desired:
5852+--
5853+-- * 'tTableRows'
5854+--
5855+-- * 'tRows'
5856+--
5857+-- * 'tColumns'
5858+--
5859+-- * 'tTableColumns'
5860+table
5861+ :: Table
5862+table =
5863+ Table'
5864+ { _tTableRows = Nothing
5865+ , _tRows = Nothing
5866+ , _tColumns = Nothing
5867+ , _tTableColumns = Nothing
5868+ }
5869+
5870+-- | Properties and contents of each row. Cells that span multiple rows are
5871+-- contained in only one of these rows and have a row_span greater than 1.
5872+tTableRows :: Lens' Table [TableRow]
5873+tTableRows
5874+ = lens _tTableRows (\ s a -> s{_tTableRows = a}) .
5875+ _Default
5876+ . _Coerce
5877+
5878+-- | Number of rows in the table.
5879+tRows :: Lens' Table (Maybe Int32)
5880+tRows
5881+ = lens _tRows (\ s a -> s{_tRows = a}) .
5882+ mapping _Coerce
5883+
5884+-- | Number of columns in the table.
5885+tColumns :: Lens' Table (Maybe Int32)
5886+tColumns
5887+ = lens _tColumns (\ s a -> s{_tColumns = a}) .
5888+ mapping _Coerce
5889+
5890+-- | Properties of each column.
5891+tTableColumns :: Lens' Table [TableColumnProperties]
5892+tTableColumns
5893+ = lens _tTableColumns
5894+ (\ s a -> s{_tTableColumns = a})
5895+ . _Default
5896+ . _Coerce
5897+
5898+instance FromJSON Table where
5899+ parseJSON
5900+ = withObject "Table"
5901+ (\ o ->
5902+ Table' <$>
5903+ (o .:? "tableRows" .!= mempty) <*> (o .:? "rows") <*>
5904+ (o .:? "columns")
5905+ <*> (o .:? "tableColumns" .!= mempty))
5906+
5907+instance ToJSON Table where
5908+ toJSON Table'{..}
5909+ = object
5910+ (catMaybes
5911+ [("tableRows" .=) <$> _tTableRows,
5912+ ("rows" .=) <$> _tRows, ("columns" .=) <$> _tColumns,
5913+ ("tableColumns" .=) <$> _tTableColumns])
5914+
5915+-- | The properties of a Shape. If the shape is a placeholder shape as
5916+-- determined by the placeholder field, then these properties may be
5917+-- inherited from a parent placeholder shape. Determining the rendered
5918+-- value of the property depends on the corresponding property_state field
5919+-- value.
5920+--
5921+-- /See:/ 'shapeProperties' smart constructor.
5922+data ShapeProperties = ShapeProperties'
5923+ { _spLink :: !(Maybe Link)
5924+ , _spShadow :: !(Maybe Shadow)
5925+ , _spOutline :: !(Maybe Outline)
5926+ , _spShapeBackgRoundFill :: !(Maybe ShapeBackgRoundFill)
5927+ } deriving (Eq,Show,Data,Typeable,Generic)
5928+
5929+-- | Creates a value of 'ShapeProperties' with the minimum fields required to make a request.
5930+--
5931+-- Use one of the following lenses to modify other fields as desired:
5932+--
5933+-- * 'spLink'
5934+--
5935+-- * 'spShadow'
5936+--
5937+-- * 'spOutline'
5938+--
5939+-- * 'spShapeBackgRoundFill'
5940+shapeProperties
5941+ :: ShapeProperties
5942+shapeProperties =
5943+ ShapeProperties'
5944+ { _spLink = Nothing
5945+ , _spShadow = Nothing
5946+ , _spOutline = Nothing
5947+ , _spShapeBackgRoundFill = Nothing
5948+ }
5949+
5950+-- | The hyperlink destination of the shape. If unset, there is no link.
5951+-- Links are not inherited from parent placeholders.
5952+spLink :: Lens' ShapeProperties (Maybe Link)
5953+spLink = lens _spLink (\ s a -> s{_spLink = a})
5954+
5955+-- | The shadow properties of the shape. If unset, the shadow is inherited
5956+-- from a parent placeholder if it exists. If the shape has no parent, then
5957+-- the default shadow matches the defaults for new shapes created in the
5958+-- Slides editor. This property is read-only.
5959+spShadow :: Lens' ShapeProperties (Maybe Shadow)
5960+spShadow = lens _spShadow (\ s a -> s{_spShadow = a})
5961+
5962+-- | The outline of the shape. If unset, the outline is inherited from a
5963+-- parent placeholder if it exists. If the shape has no parent, then the
5964+-- default outline depends on the shape type, matching the defaults for new
5965+-- shapes created in the Slides editor.
5966+spOutline :: Lens' ShapeProperties (Maybe Outline)
5967+spOutline
5968+ = lens _spOutline (\ s a -> s{_spOutline = a})
5969+
5970+-- | The background fill of the shape. If unset, the background fill is
5971+-- inherited from a parent placeholder if it exists. If the shape has no
5972+-- parent, then the default background fill depends on the shape type,
5973+-- matching the defaults for new shapes created in the Slides editor.
5974+spShapeBackgRoundFill :: Lens' ShapeProperties (Maybe ShapeBackgRoundFill)
5975+spShapeBackgRoundFill
5976+ = lens _spShapeBackgRoundFill
5977+ (\ s a -> s{_spShapeBackgRoundFill = a})
5978+
5979+instance FromJSON ShapeProperties where
5980+ parseJSON
5981+ = withObject "ShapeProperties"
5982+ (\ o ->
5983+ ShapeProperties' <$>
5984+ (o .:? "link") <*> (o .:? "shadow") <*>
5985+ (o .:? "outline")
5986+ <*> (o .:? "shapeBackgroundFill"))
5987+
5988+instance ToJSON ShapeProperties where
5989+ toJSON ShapeProperties'{..}
5990+ = object
5991+ (catMaybes
5992+ [("link" .=) <$> _spLink,
5993+ ("shadow" .=) <$> _spShadow,
5994+ ("outline" .=) <$> _spOutline,
5995+ ("shapeBackgroundFill" .=) <$>
5996+ _spShapeBackgRoundFill])
5997+
5998+-- | The shape background fill.
5999+--
6000+-- /See:/ 'shapeBackgRoundFill' smart constructor.
6001+data ShapeBackgRoundFill = ShapeBackgRoundFill'
6002+ { _sbrfSolidFill :: !(Maybe SolidFill)
6003+ , _sbrfPropertyState :: !(Maybe ShapeBackgRoundFillPropertyState)
6004+ } deriving (Eq,Show,Data,Typeable,Generic)
6005+
6006+-- | Creates a value of 'ShapeBackgRoundFill' with the minimum fields required to make a request.
6007+--
6008+-- Use one of the following lenses to modify other fields as desired:
6009+--
6010+-- * 'sbrfSolidFill'
6011+--
6012+-- * 'sbrfPropertyState'
6013+shapeBackgRoundFill
6014+ :: ShapeBackgRoundFill
6015+shapeBackgRoundFill =
6016+ ShapeBackgRoundFill'
6017+ { _sbrfSolidFill = Nothing
6018+ , _sbrfPropertyState = Nothing
6019+ }
6020+
6021+-- | Solid color fill.
6022+sbrfSolidFill :: Lens' ShapeBackgRoundFill (Maybe SolidFill)
6023+sbrfSolidFill
6024+ = lens _sbrfSolidFill
6025+ (\ s a -> s{_sbrfSolidFill = a})
6026+
6027+-- | The background fill property state. Updating the the fill on a shape
6028+-- will implicitly update this field to \`RENDERED\`, unless another value
6029+-- is specified in the same request. To have no fill on a shape, set this
6030+-- field to \`NOT_RENDERED\`. In this case, any other fill fields set in
6031+-- the same request will be ignored.
6032+sbrfPropertyState :: Lens' ShapeBackgRoundFill (Maybe ShapeBackgRoundFillPropertyState)
6033+sbrfPropertyState
6034+ = lens _sbrfPropertyState
6035+ (\ s a -> s{_sbrfPropertyState = a})
6036+
6037+instance FromJSON ShapeBackgRoundFill where
6038+ parseJSON
6039+ = withObject "ShapeBackgRoundFill"
6040+ (\ o ->
6041+ ShapeBackgRoundFill' <$>
6042+ (o .:? "solidFill") <*> (o .:? "propertyState"))
6043+
6044+instance ToJSON ShapeBackgRoundFill where
6045+ toJSON ShapeBackgRoundFill'{..}
6046+ = object
6047+ (catMaybes
6048+ [("solidFill" .=) <$> _sbrfSolidFill,
6049+ ("propertyState" .=) <$> _sbrfPropertyState])
6050+
6051+-- | Creates bullets for all of the paragraphs that overlap with the given
6052+-- text index range. The nesting level of each paragraph will be determined
6053+-- by counting leading tabs in front of each paragraph. To avoid excess
6054+-- space between the bullet and the corresponding paragraph, these leading
6055+-- tabs are removed by this request. This may change the indices of parts
6056+-- of the text. If the paragraph immediately before paragraphs being
6057+-- updated is in a list with a matching preset, the paragraphs being
6058+-- updated are added to that preceding list.
6059+--
6060+-- /See:/ 'createParagraphBulletsRequest' smart constructor.
6061+data CreateParagraphBulletsRequest = CreateParagraphBulletsRequest'
6062+ { _cpbrTextRange :: !(Maybe Range)
6063+ , _cpbrObjectId :: !(Maybe Text)
6064+ , _cpbrBulletPreset :: !(Maybe CreateParagraphBulletsRequestBulletPreset)
6065+ , _cpbrCellLocation :: !(Maybe TableCellLocation)
6066+ } deriving (Eq,Show,Data,Typeable,Generic)
6067+
6068+-- | Creates a value of 'CreateParagraphBulletsRequest' with the minimum fields required to make a request.
6069+--
6070+-- Use one of the following lenses to modify other fields as desired:
6071+--
6072+-- * 'cpbrTextRange'
6073+--
6074+-- * 'cpbrObjectId'
6075+--
6076+-- * 'cpbrBulletPreset'
6077+--
6078+-- * 'cpbrCellLocation'
6079+createParagraphBulletsRequest
6080+ :: CreateParagraphBulletsRequest
6081+createParagraphBulletsRequest =
6082+ CreateParagraphBulletsRequest'
6083+ { _cpbrTextRange = Nothing
6084+ , _cpbrObjectId = Nothing
6085+ , _cpbrBulletPreset = Nothing
6086+ , _cpbrCellLocation = Nothing
6087+ }
6088+
6089+-- | The range of text to apply the bullet presets to, based on TextElement
6090+-- indexes.
6091+cpbrTextRange :: Lens' CreateParagraphBulletsRequest (Maybe Range)
6092+cpbrTextRange
6093+ = lens _cpbrTextRange
6094+ (\ s a -> s{_cpbrTextRange = a})
6095+
6096+-- | The object ID of the shape or table containing the text to add bullets
6097+-- to.
6098+cpbrObjectId :: Lens' CreateParagraphBulletsRequest (Maybe Text)
6099+cpbrObjectId
6100+ = lens _cpbrObjectId (\ s a -> s{_cpbrObjectId = a})
6101+
6102+-- | The kinds of bullet glyphs to be used. Defaults to the
6103+-- \`BULLET_DISC_CIRCLE_SQUARE\` preset.
6104+cpbrBulletPreset :: Lens' CreateParagraphBulletsRequest (Maybe CreateParagraphBulletsRequestBulletPreset)
6105+cpbrBulletPreset
6106+ = lens _cpbrBulletPreset
6107+ (\ s a -> s{_cpbrBulletPreset = a})
6108+
6109+-- | The optional table cell location if the text to be modified is in a
6110+-- table cell. If present, the object_id must refer to a table.
6111+cpbrCellLocation :: Lens' CreateParagraphBulletsRequest (Maybe TableCellLocation)
6112+cpbrCellLocation
6113+ = lens _cpbrCellLocation
6114+ (\ s a -> s{_cpbrCellLocation = a})
6115+
6116+instance FromJSON CreateParagraphBulletsRequest where
6117+ parseJSON
6118+ = withObject "CreateParagraphBulletsRequest"
6119+ (\ o ->
6120+ CreateParagraphBulletsRequest' <$>
6121+ (o .:? "textRange") <*> (o .:? "objectId") <*>
6122+ (o .:? "bulletPreset")
6123+ <*> (o .:? "cellLocation"))
6124+
6125+instance ToJSON CreateParagraphBulletsRequest where
6126+ toJSON CreateParagraphBulletsRequest'{..}
6127+ = object
6128+ (catMaybes
6129+ [("textRange" .=) <$> _cpbrTextRange,
6130+ ("objectId" .=) <$> _cpbrObjectId,
6131+ ("bulletPreset" .=) <$> _cpbrBulletPreset,
6132+ ("cellLocation" .=) <$> _cpbrCellLocation])
6133+
6134+-- | Update the properties of a TableCell.
6135+--
6136+-- /See:/ 'updateTableCellPropertiesRequest' smart constructor.
6137+data UpdateTableCellPropertiesRequest = UpdateTableCellPropertiesRequest'
6138+ { _utcprObjectId :: !(Maybe Text)
6139+ , _utcprTableCellProperties :: !(Maybe TableCellProperties)
6140+ , _utcprTableRange :: !(Maybe TableRange)
6141+ , _utcprFields :: !(Maybe FieldMask)
6142+ } deriving (Eq,Show,Data,Typeable,Generic)
6143+
6144+-- | Creates a value of 'UpdateTableCellPropertiesRequest' with the minimum fields required to make a request.
6145+--
6146+-- Use one of the following lenses to modify other fields as desired:
6147+--
6148+-- * 'utcprObjectId'
6149+--
6150+-- * 'utcprTableCellProperties'
6151+--
6152+-- * 'utcprTableRange'
6153+--
6154+-- * 'utcprFields'
6155+updateTableCellPropertiesRequest
6156+ :: UpdateTableCellPropertiesRequest
6157+updateTableCellPropertiesRequest =
6158+ UpdateTableCellPropertiesRequest'
6159+ { _utcprObjectId = Nothing
6160+ , _utcprTableCellProperties = Nothing
6161+ , _utcprTableRange = Nothing
6162+ , _utcprFields = Nothing
6163+ }
6164+
6165+-- | The object ID of the table.
6166+utcprObjectId :: Lens' UpdateTableCellPropertiesRequest (Maybe Text)
6167+utcprObjectId
6168+ = lens _utcprObjectId
6169+ (\ s a -> s{_utcprObjectId = a})
6170+
6171+-- | The table cell properties to update.
6172+utcprTableCellProperties :: Lens' UpdateTableCellPropertiesRequest (Maybe TableCellProperties)
6173+utcprTableCellProperties
6174+ = lens _utcprTableCellProperties
6175+ (\ s a -> s{_utcprTableCellProperties = a})
6176+
6177+-- | The table range representing the subset of the table to which the
6178+-- updates are applied. If a table range is not specified, the updates will
6179+-- apply to the entire table.
6180+utcprTableRange :: Lens' UpdateTableCellPropertiesRequest (Maybe TableRange)
6181+utcprTableRange
6182+ = lens _utcprTableRange
6183+ (\ s a -> s{_utcprTableRange = a})
6184+
6185+-- | The fields that should be updated. At least one field must be specified.
6186+-- The root \`tableCellProperties\` is implied and should not be specified.
6187+-- A single \`\"*\"\` can be used as short-hand for listing every field.
6188+-- For example to update the table cell background solid fill color, set
6189+-- \`fields\` to \`\"tableCellBackgroundFill.solidFill.color\"\`. To reset
6190+-- a property to its default value, include its field name in the field
6191+-- mask but leave the field itself unset.
6192+utcprFields :: Lens' UpdateTableCellPropertiesRequest (Maybe FieldMask)
6193+utcprFields
6194+ = lens _utcprFields (\ s a -> s{_utcprFields = a})
6195+
6196+instance FromJSON UpdateTableCellPropertiesRequest
6197+ where
6198+ parseJSON
6199+ = withObject "UpdateTableCellPropertiesRequest"
6200+ (\ o ->
6201+ UpdateTableCellPropertiesRequest' <$>
6202+ (o .:? "objectId") <*> (o .:? "tableCellProperties")
6203+ <*> (o .:? "tableRange")
6204+ <*> (o .:? "fields"))
6205+
6206+instance ToJSON UpdateTableCellPropertiesRequest
6207+ where
6208+ toJSON UpdateTableCellPropertiesRequest'{..}
6209+ = object
6210+ (catMaybes
6211+ [("objectId" .=) <$> _utcprObjectId,
6212+ ("tableCellProperties" .=) <$>
6213+ _utcprTableCellProperties,
6214+ ("tableRange" .=) <$> _utcprTableRange,
6215+ ("fields" .=) <$> _utcprFields])
6216+
6217+-- | The properties of the SheetsChart.
6218+--
6219+-- /See:/ 'sheetsChartProperties' smart constructor.
6220+newtype SheetsChartProperties = SheetsChartProperties'
6221+ { _scpChartImageProperties :: Maybe ImageProperties
6222+ } deriving (Eq,Show,Data,Typeable,Generic)
6223+
6224+-- | Creates a value of 'SheetsChartProperties' with the minimum fields required to make a request.
6225+--
6226+-- Use one of the following lenses to modify other fields as desired:
6227+--
6228+-- * 'scpChartImageProperties'
6229+sheetsChartProperties
6230+ :: SheetsChartProperties
6231+sheetsChartProperties =
6232+ SheetsChartProperties'
6233+ { _scpChartImageProperties = Nothing
6234+ }
6235+
6236+-- | The properties of the embedded chart image.
6237+scpChartImageProperties :: Lens' SheetsChartProperties (Maybe ImageProperties)
6238+scpChartImageProperties
6239+ = lens _scpChartImageProperties
6240+ (\ s a -> s{_scpChartImageProperties = a})
6241+
6242+instance FromJSON SheetsChartProperties where
6243+ parseJSON
6244+ = withObject "SheetsChartProperties"
6245+ (\ o ->
6246+ SheetsChartProperties' <$>
6247+ (o .:? "chartImageProperties"))
6248+
6249+instance ToJSON SheetsChartProperties where
6250+ toJSON SheetsChartProperties'{..}
6251+ = object
6252+ (catMaybes
6253+ [("chartImageProperties" .=) <$>
6254+ _scpChartImageProperties])
6255+
6256+-- | Styles that apply to a whole paragraph. If this text is contained in a
6257+-- shape with a parent placeholder, then these paragraph styles may be
6258+-- inherited from the parent. Which paragraph styles are inherited depend
6259+-- on the nesting level of lists: * A paragraph not in a list will inherit
6260+-- its paragraph style from the paragraph at the 0 nesting level of the
6261+-- list inside the parent placeholder. * A paragraph in a list will inherit
6262+-- its paragraph style from the paragraph at its corresponding nesting
6263+-- level of the list inside the parent placeholder. Inherited paragraph
6264+-- styles are represented as unset fields in this message.
6265+--
6266+-- /See:/ 'paragraphStyle' smart constructor.
6267+data ParagraphStyle = ParagraphStyle'
6268+ { _psLineSpacing :: !(Maybe (Textual Double))
6269+ , _psDirection :: !(Maybe ParagraphStyleDirection)
6270+ , _psIndentFirstLine :: !(Maybe Dimension)
6271+ , _psIndentEnd :: !(Maybe Dimension)
6272+ , _psIndentStart :: !(Maybe Dimension)
6273+ , _psAlignment :: !(Maybe ParagraphStyleAlignment)
6274+ , _psSpaceBelow :: !(Maybe Dimension)
6275+ , _psSpacingMode :: !(Maybe ParagraphStyleSpacingMode)
6276+ , _psSpaceAbove :: !(Maybe Dimension)
6277+ } deriving (Eq,Show,Data,Typeable,Generic)
6278+
6279+-- | Creates a value of 'ParagraphStyle' with the minimum fields required to make a request.
6280+--
6281+-- Use one of the following lenses to modify other fields as desired:
6282+--
6283+-- * 'psLineSpacing'
6284+--
6285+-- * 'psDirection'
6286+--
6287+-- * 'psIndentFirstLine'
6288+--
6289+-- * 'psIndentEnd'
6290+--
6291+-- * 'psIndentStart'
6292+--
6293+-- * 'psAlignment'
6294+--
6295+-- * 'psSpaceBelow'
6296+--
6297+-- * 'psSpacingMode'
6298+--
6299+-- * 'psSpaceAbove'
6300+paragraphStyle
6301+ :: ParagraphStyle
6302+paragraphStyle =
6303+ ParagraphStyle'
6304+ { _psLineSpacing = Nothing
6305+ , _psDirection = Nothing
6306+ , _psIndentFirstLine = Nothing
6307+ , _psIndentEnd = Nothing
6308+ , _psIndentStart = Nothing
6309+ , _psAlignment = Nothing
6310+ , _psSpaceBelow = Nothing
6311+ , _psSpacingMode = Nothing
6312+ , _psSpaceAbove = Nothing
6313+ }
6314+
6315+-- | The amount of space between lines, as a percentage of normal, where
6316+-- normal is represented as 100.0. If unset, the value is inherited from
6317+-- the parent. This property is read-only.
6318+psLineSpacing :: Lens' ParagraphStyle (Maybe Double)
6319+psLineSpacing
6320+ = lens _psLineSpacing
6321+ (\ s a -> s{_psLineSpacing = a})
6322+ . mapping _Coerce
6323+
6324+-- | The text direction of this paragraph. This property is read-only.
6325+psDirection :: Lens' ParagraphStyle (Maybe ParagraphStyleDirection)
6326+psDirection
6327+ = lens _psDirection (\ s a -> s{_psDirection = a})
6328+
6329+-- | The amount of indentation for the start of the first line of the
6330+-- paragraph. If unset, the value is inherited from the parent. This
6331+-- property is read-only.
6332+psIndentFirstLine :: Lens' ParagraphStyle (Maybe Dimension)
6333+psIndentFirstLine
6334+ = lens _psIndentFirstLine
6335+ (\ s a -> s{_psIndentFirstLine = a})
6336+
6337+-- | The amount indentation for the paragraph on the side that corresponds to
6338+-- the end of the text, based on the current text direction. If unset, the
6339+-- value is inherited from the parent. This property is read-only.
6340+psIndentEnd :: Lens' ParagraphStyle (Maybe Dimension)
6341+psIndentEnd
6342+ = lens _psIndentEnd (\ s a -> s{_psIndentEnd = a})
6343+
6344+-- | The amount indentation for the paragraph on the side that corresponds to
6345+-- the start of the text, based on the current text direction. If unset,
6346+-- the value is inherited from the parent. This property is read-only.
6347+psIndentStart :: Lens' ParagraphStyle (Maybe Dimension)
6348+psIndentStart
6349+ = lens _psIndentStart
6350+ (\ s a -> s{_psIndentStart = a})
6351+
6352+-- | The text alignment for this paragraph. This property is read-only.
6353+psAlignment :: Lens' ParagraphStyle (Maybe ParagraphStyleAlignment)
6354+psAlignment
6355+ = lens _psAlignment (\ s a -> s{_psAlignment = a})
6356+
6357+-- | The amount of extra space above the paragraph. If unset, the value is
6358+-- inherited from the parent. This property is read-only.
6359+psSpaceBelow :: Lens' ParagraphStyle (Maybe Dimension)
6360+psSpaceBelow
6361+ = lens _psSpaceBelow (\ s a -> s{_psSpaceBelow = a})
6362+
6363+-- | The spacing mode for the paragraph. This property is read-only.
6364+psSpacingMode :: Lens' ParagraphStyle (Maybe ParagraphStyleSpacingMode)
6365+psSpacingMode
6366+ = lens _psSpacingMode
6367+ (\ s a -> s{_psSpacingMode = a})
6368+
6369+-- | The amount of extra space above the paragraph. If unset, the value is
6370+-- inherited from the parent. This property is read-only.
6371+psSpaceAbove :: Lens' ParagraphStyle (Maybe Dimension)
6372+psSpaceAbove
6373+ = lens _psSpaceAbove (\ s a -> s{_psSpaceAbove = a})
6374+
6375+instance FromJSON ParagraphStyle where
6376+ parseJSON
6377+ = withObject "ParagraphStyle"
6378+ (\ o ->
6379+ ParagraphStyle' <$>
6380+ (o .:? "lineSpacing") <*> (o .:? "direction") <*>
6381+ (o .:? "indentFirstLine")
6382+ <*> (o .:? "indentEnd")
6383+ <*> (o .:? "indentStart")
6384+ <*> (o .:? "alignment")
6385+ <*> (o .:? "spaceBelow")
6386+ <*> (o .:? "spacingMode")
6387+ <*> (o .:? "spaceAbove"))
6388+
6389+instance ToJSON ParagraphStyle where
6390+ toJSON ParagraphStyle'{..}
6391+ = object
6392+ (catMaybes
6393+ [("lineSpacing" .=) <$> _psLineSpacing,
6394+ ("direction" .=) <$> _psDirection,
6395+ ("indentFirstLine" .=) <$> _psIndentFirstLine,
6396+ ("indentEnd" .=) <$> _psIndentEnd,
6397+ ("indentStart" .=) <$> _psIndentStart,
6398+ ("alignment" .=) <$> _psAlignment,
6399+ ("spaceBelow" .=) <$> _psSpaceBelow,
6400+ ("spacingMode" .=) <$> _psSpacingMode,
6401+ ("spaceAbove" .=) <$> _psSpaceAbove])
6402+
6403+-- | The result of creating a table.
6404+--
6405+-- /See:/ 'createTableResponse' smart constructor.
6406+newtype CreateTableResponse = CreateTableResponse'
6407+ { _ctrtObjectId :: Maybe Text
6408+ } deriving (Eq,Show,Data,Typeable,Generic)
6409+
6410+-- | Creates a value of 'CreateTableResponse' with the minimum fields required to make a request.
6411+--
6412+-- Use one of the following lenses to modify other fields as desired:
6413+--
6414+-- * 'ctrtObjectId'
6415+createTableResponse
6416+ :: CreateTableResponse
6417+createTableResponse =
6418+ CreateTableResponse'
6419+ { _ctrtObjectId = Nothing
6420+ }
6421+
6422+-- | The object ID of the created table.
6423+ctrtObjectId :: Lens' CreateTableResponse (Maybe Text)
6424+ctrtObjectId
6425+ = lens _ctrtObjectId (\ s a -> s{_ctrtObjectId = a})
6426+
6427+instance FromJSON CreateTableResponse where
6428+ parseJSON
6429+ = withObject "CreateTableResponse"
6430+ (\ o -> CreateTableResponse' <$> (o .:? "objectId"))
6431+
6432+instance ToJSON CreateTableResponse where
6433+ toJSON CreateTableResponse'{..}
6434+ = object
6435+ (catMaybes [("objectId" .=) <$> _ctrtObjectId])
6436+
6437+-- | Properties of each column in a table.
6438+--
6439+-- /See:/ 'tableColumnProperties' smart constructor.
6440+newtype TableColumnProperties = TableColumnProperties'
6441+ { _tcpColumnWidth :: Maybe Dimension
6442+ } deriving (Eq,Show,Data,Typeable,Generic)
6443+
6444+-- | Creates a value of 'TableColumnProperties' with the minimum fields required to make a request.
6445+--
6446+-- Use one of the following lenses to modify other fields as desired:
6447+--
6448+-- * 'tcpColumnWidth'
6449+tableColumnProperties
6450+ :: TableColumnProperties
6451+tableColumnProperties =
6452+ TableColumnProperties'
6453+ { _tcpColumnWidth = Nothing
6454+ }
6455+
6456+-- | Width of a column.
6457+tcpColumnWidth :: Lens' TableColumnProperties (Maybe Dimension)
6458+tcpColumnWidth
6459+ = lens _tcpColumnWidth
6460+ (\ s a -> s{_tcpColumnWidth = a})
6461+
6462+instance FromJSON TableColumnProperties where
6463+ parseJSON
6464+ = withObject "TableColumnProperties"
6465+ (\ o ->
6466+ TableColumnProperties' <$> (o .:? "columnWidth"))
6467+
6468+instance ToJSON TableColumnProperties where
6469+ toJSON TableColumnProperties'{..}
6470+ = object
6471+ (catMaybes [("columnWidth" .=) <$> _tcpColumnWidth])
6472+
6473+-- | The response of duplicating an object.
6474+--
6475+-- /See:/ 'duplicateObjectResponse' smart constructor.
6476+newtype DuplicateObjectResponse = DuplicateObjectResponse'
6477+ { _dupObjectId :: Maybe Text
6478+ } deriving (Eq,Show,Data,Typeable,Generic)
6479+
6480+-- | Creates a value of 'DuplicateObjectResponse' with the minimum fields required to make a request.
6481+--
6482+-- Use one of the following lenses to modify other fields as desired:
6483+--
6484+-- * 'dupObjectId'
6485+duplicateObjectResponse
6486+ :: DuplicateObjectResponse
6487+duplicateObjectResponse =
6488+ DuplicateObjectResponse'
6489+ { _dupObjectId = Nothing
6490+ }
6491+
6492+-- | The ID of the new duplicate object.
6493+dupObjectId :: Lens' DuplicateObjectResponse (Maybe Text)
6494+dupObjectId
6495+ = lens _dupObjectId (\ s a -> s{_dupObjectId = a})
6496+
6497+instance FromJSON DuplicateObjectResponse where
6498+ parseJSON
6499+ = withObject "DuplicateObjectResponse"
6500+ (\ o ->
6501+ DuplicateObjectResponse' <$> (o .:? "objectId"))
6502+
6503+instance ToJSON DuplicateObjectResponse where
6504+ toJSON DuplicateObjectResponse'{..}
6505+ = object
6506+ (catMaybes [("objectId" .=) <$> _dupObjectId])
6507+
6508+-- | Replaces all instances of text matching a criteria with replace text.
6509+--
6510+-- /See:/ 'replaceAllTextRequest' smart constructor.
6511+data ReplaceAllTextRequest = ReplaceAllTextRequest'
6512+ { _ratrContainsText :: !(Maybe SubstringMatchCriteria)
6513+ , _ratrReplaceText :: !(Maybe Text)
6514+ } deriving (Eq,Show,Data,Typeable,Generic)
6515+
6516+-- | Creates a value of 'ReplaceAllTextRequest' with the minimum fields required to make a request.
6517+--
6518+-- Use one of the following lenses to modify other fields as desired:
6519+--
6520+-- * 'ratrContainsText'
6521+--
6522+-- * 'ratrReplaceText'
6523+replaceAllTextRequest
6524+ :: ReplaceAllTextRequest
6525+replaceAllTextRequest =
6526+ ReplaceAllTextRequest'
6527+ { _ratrContainsText = Nothing
6528+ , _ratrReplaceText = Nothing
6529+ }
6530+
6531+-- | Finds text in a shape matching this substring.
6532+ratrContainsText :: Lens' ReplaceAllTextRequest (Maybe SubstringMatchCriteria)
6533+ratrContainsText
6534+ = lens _ratrContainsText
6535+ (\ s a -> s{_ratrContainsText = a})
6536+
6537+-- | The text that will replace the matched text.
6538+ratrReplaceText :: Lens' ReplaceAllTextRequest (Maybe Text)
6539+ratrReplaceText
6540+ = lens _ratrReplaceText
6541+ (\ s a -> s{_ratrReplaceText = a})
6542+
6543+instance FromJSON ReplaceAllTextRequest where
6544+ parseJSON
6545+ = withObject "ReplaceAllTextRequest"
6546+ (\ o ->
6547+ ReplaceAllTextRequest' <$>
6548+ (o .:? "containsText") <*> (o .:? "replaceText"))
6549+
6550+instance ToJSON ReplaceAllTextRequest where
6551+ toJSON ReplaceAllTextRequest'{..}
6552+ = object
6553+ (catMaybes
6554+ [("containsText" .=) <$> _ratrContainsText,
6555+ ("replaceText" .=) <$> _ratrReplaceText])
6556+
6557+-- | A table range represents a reference to a subset of a table. It\'s
6558+-- important to note that the cells specified by a table range do not
6559+-- necessarily form a rectangle. For example, let\'s say we have a 3 x 3
6560+-- table where all the cells of the last row are merged together. The table
6561+-- looks like this: [ ] A table range with location = (0, 0), row span = 3
6562+-- and column span = 2 specifies the following cells: x x [ x ]
6563+--
6564+-- /See:/ 'tableRange' smart constructor.
6565+data TableRange = TableRange'
6566+ { _trColumnSpan :: !(Maybe (Textual Int32))
6567+ , _trLocation :: !(Maybe TableCellLocation)
6568+ , _trRowSpan :: !(Maybe (Textual Int32))
6569+ } deriving (Eq,Show,Data,Typeable,Generic)
6570+
6571+-- | Creates a value of 'TableRange' with the minimum fields required to make a request.
6572+--
6573+-- Use one of the following lenses to modify other fields as desired:
6574+--
6575+-- * 'trColumnSpan'
6576+--
6577+-- * 'trLocation'
6578+--
6579+-- * 'trRowSpan'
6580+tableRange
6581+ :: TableRange
6582+tableRange =
6583+ TableRange'
6584+ { _trColumnSpan = Nothing
6585+ , _trLocation = Nothing
6586+ , _trRowSpan = Nothing
6587+ }
6588+
6589+-- | The column span of the table range.
6590+trColumnSpan :: Lens' TableRange (Maybe Int32)
6591+trColumnSpan
6592+ = lens _trColumnSpan (\ s a -> s{_trColumnSpan = a})
6593+ . mapping _Coerce
6594+
6595+-- | The starting location of the table range.
6596+trLocation :: Lens' TableRange (Maybe TableCellLocation)
6597+trLocation
6598+ = lens _trLocation (\ s a -> s{_trLocation = a})
6599+
6600+-- | The row span of the table range.
6601+trRowSpan :: Lens' TableRange (Maybe Int32)
6602+trRowSpan
6603+ = lens _trRowSpan (\ s a -> s{_trRowSpan = a}) .
6604+ mapping _Coerce
6605+
6606+instance FromJSON TableRange where
6607+ parseJSON
6608+ = withObject "TableRange"
6609+ (\ o ->
6610+ TableRange' <$>
6611+ (o .:? "columnSpan") <*> (o .:? "location") <*>
6612+ (o .:? "rowSpan"))
6613+
6614+instance ToJSON TableRange where
6615+ toJSON TableRange'{..}
6616+ = object
6617+ (catMaybes
6618+ [("columnSpan" .=) <$> _trColumnSpan,
6619+ ("location" .=) <$> _trLocation,
6620+ ("rowSpan" .=) <$> _trRowSpan])
6621+
6622+-- | A single kind of update to apply to a presentation.
6623+--
6624+-- /See:/ 'request'' smart constructor.
6625+data Request' = Request''
6626+ { _reqReplaceAllShapesWithImage :: !(Maybe ReplaceAllShapesWithImageRequest)
6627+ , _reqDeleteObject :: !(Maybe DeleteObjectRequest)
6628+ , _reqUpdateSlidesPosition :: !(Maybe UpdateSlidesPositionRequest)
6629+ , _reqUpdateShapeProperties :: !(Maybe UpdateShapePropertiesRequest)
6630+ , _reqCreateParagraphBullets :: !(Maybe CreateParagraphBulletsRequest)
6631+ , _reqCreateLine :: !(Maybe CreateLineRequest)
6632+ , _reqInsertText :: !(Maybe InsertTextRequest)
6633+ , _reqDeleteTableRow :: !(Maybe DeleteTableRowRequest)
6634+ , _reqUpdateTableCellProperties :: !(Maybe UpdateTableCellPropertiesRequest)
6635+ , _reqReplaceAllText :: !(Maybe ReplaceAllTextRequest)
6636+ , _reqCreateShape :: !(Maybe CreateShapeRequest)
6637+ , _reqUpdatePageProperties :: !(Maybe UpdatePagePropertiesRequest)
6638+ , _reqUpdateLineProperties :: !(Maybe UpdateLinePropertiesRequest)
6639+ , _reqDeleteTableColumn :: !(Maybe DeleteTableColumnRequest)
6640+ , _reqDeleteText :: !(Maybe DeleteTextRequest)
6641+ , _reqCreateSheetsChart :: !(Maybe CreateSheetsChartRequest)
6642+ , _reqInsertTableColumns :: !(Maybe InsertTableColumnsRequest)
6643+ , _reqUpdateImageProperties :: !(Maybe UpdateImagePropertiesRequest)
6644+ , _reqDuplicateObject :: !(Maybe DuplicateObjectRequest)
6645+ , _reqCreateTable :: !(Maybe CreateTableRequest)
6646+ , _reqCreateVideo :: !(Maybe CreateVideoRequest)
6647+ , _reqRefreshSheetsChart :: !(Maybe RefreshSheetsChartRequest)
6648+ , _reqUpdatePageElementTransform :: !(Maybe UpdatePageElementTransformRequest)
6649+ , _reqInsertTableRows :: !(Maybe InsertTableRowsRequest)
6650+ , _reqCreateImage :: !(Maybe CreateImageRequest)
6651+ , _reqCreateSlide :: !(Maybe CreateSlideRequest)
6652+ , _reqUpdateTextStyle :: !(Maybe UpdateTextStyleRequest)
6653+ , _reqUpdateVideoProperties :: !(Maybe UpdateVideoPropertiesRequest)
6654+ } deriving (Eq,Show,Data,Typeable,Generic)
6655+
6656+-- | Creates a value of 'Request' with the minimum fields required to make a request.
6657+--
6658+-- Use one of the following lenses to modify other fields as desired:
6659+--
6660+-- * 'reqReplaceAllShapesWithImage'
6661+--
6662+-- * 'reqDeleteObject'
6663+--
6664+-- * 'reqUpdateSlidesPosition'
6665+--
6666+-- * 'reqUpdateShapeProperties'
6667+--
6668+-- * 'reqCreateParagraphBullets'
6669+--
6670+-- * 'reqCreateLine'
6671+--
6672+-- * 'reqInsertText'
6673+--
6674+-- * 'reqDeleteTableRow'
6675+--
6676+-- * 'reqUpdateTableCellProperties'
6677+--
6678+-- * 'reqReplaceAllText'
6679+--
6680+-- * 'reqCreateShape'
6681+--
6682+-- * 'reqUpdatePageProperties'
6683+--
6684+-- * 'reqUpdateLineProperties'
6685+--
6686+-- * 'reqDeleteTableColumn'
6687+--
6688+-- * 'reqDeleteText'
6689+--
6690+-- * 'reqCreateSheetsChart'
6691+--
6692+-- * 'reqInsertTableColumns'
6693+--
6694+-- * 'reqUpdateImageProperties'
6695+--
6696+-- * 'reqDuplicateObject'
6697+--
6698+-- * 'reqCreateTable'
6699+--
6700+-- * 'reqCreateVideo'
6701+--
6702+-- * 'reqRefreshSheetsChart'
6703+--
6704+-- * 'reqUpdatePageElementTransform'
6705+--
6706+-- * 'reqInsertTableRows'
6707+--
6708+-- * 'reqCreateImage'
6709+--
6710+-- * 'reqCreateSlide'
6711+--
6712+-- * 'reqUpdateTextStyle'
6713+--
6714+-- * 'reqUpdateVideoProperties'
6715+request'
6716+ :: Request'
6717+request' =
6718+ Request''
6719+ { _reqReplaceAllShapesWithImage = Nothing
6720+ , _reqDeleteObject = Nothing
6721+ , _reqUpdateSlidesPosition = Nothing
6722+ , _reqUpdateShapeProperties = Nothing
6723+ , _reqCreateParagraphBullets = Nothing
6724+ , _reqCreateLine = Nothing
6725+ , _reqInsertText = Nothing
6726+ , _reqDeleteTableRow = Nothing
6727+ , _reqUpdateTableCellProperties = Nothing
6728+ , _reqReplaceAllText = Nothing
6729+ , _reqCreateShape = Nothing
6730+ , _reqUpdatePageProperties = Nothing
6731+ , _reqUpdateLineProperties = Nothing
6732+ , _reqDeleteTableColumn = Nothing
6733+ , _reqDeleteText = Nothing
6734+ , _reqCreateSheetsChart = Nothing
6735+ , _reqInsertTableColumns = Nothing
6736+ , _reqUpdateImageProperties = Nothing
6737+ , _reqDuplicateObject = Nothing
6738+ , _reqCreateTable = Nothing
6739+ , _reqCreateVideo = Nothing
6740+ , _reqRefreshSheetsChart = Nothing
6741+ , _reqUpdatePageElementTransform = Nothing
6742+ , _reqInsertTableRows = Nothing
6743+ , _reqCreateImage = Nothing
6744+ , _reqCreateSlide = Nothing
6745+ , _reqUpdateTextStyle = Nothing
6746+ , _reqUpdateVideoProperties = Nothing
6747+ }
6748+
6749+-- | Replaces all shapes matching some criteria with an image.
6750+reqReplaceAllShapesWithImage :: Lens' Request' (Maybe ReplaceAllShapesWithImageRequest)
6751+reqReplaceAllShapesWithImage
6752+ = lens _reqReplaceAllShapesWithImage
6753+ (\ s a -> s{_reqReplaceAllShapesWithImage = a})
6754+
6755+-- | Deletes a page or page element from the presentation.
6756+reqDeleteObject :: Lens' Request' (Maybe DeleteObjectRequest)
6757+reqDeleteObject
6758+ = lens _reqDeleteObject
6759+ (\ s a -> s{_reqDeleteObject = a})
6760+
6761+-- | Updates the position of a set of slides in the presentation.
6762+reqUpdateSlidesPosition :: Lens' Request' (Maybe UpdateSlidesPositionRequest)
6763+reqUpdateSlidesPosition
6764+ = lens _reqUpdateSlidesPosition
6765+ (\ s a -> s{_reqUpdateSlidesPosition = a})
6766+
6767+-- | Updates the properties of a Shape.
6768+reqUpdateShapeProperties :: Lens' Request' (Maybe UpdateShapePropertiesRequest)
6769+reqUpdateShapeProperties
6770+ = lens _reqUpdateShapeProperties
6771+ (\ s a -> s{_reqUpdateShapeProperties = a})
6772+
6773+-- | Creates bullets for paragraphs.
6774+reqCreateParagraphBullets :: Lens' Request' (Maybe CreateParagraphBulletsRequest)
6775+reqCreateParagraphBullets
6776+ = lens _reqCreateParagraphBullets
6777+ (\ s a -> s{_reqCreateParagraphBullets = a})
6778+
6779+-- | Creates a line.
6780+reqCreateLine :: Lens' Request' (Maybe CreateLineRequest)
6781+reqCreateLine
6782+ = lens _reqCreateLine
6783+ (\ s a -> s{_reqCreateLine = a})
6784+
6785+-- | Inserts text into a shape or table cell.
6786+reqInsertText :: Lens' Request' (Maybe InsertTextRequest)
6787+reqInsertText
6788+ = lens _reqInsertText
6789+ (\ s a -> s{_reqInsertText = a})
6790+
6791+-- | Deletes a row from a table.
6792+reqDeleteTableRow :: Lens' Request' (Maybe DeleteTableRowRequest)
6793+reqDeleteTableRow
6794+ = lens _reqDeleteTableRow
6795+ (\ s a -> s{_reqDeleteTableRow = a})
6796+
6797+-- | Updates the properties of a TableCell.
6798+reqUpdateTableCellProperties :: Lens' Request' (Maybe UpdateTableCellPropertiesRequest)
6799+reqUpdateTableCellProperties
6800+ = lens _reqUpdateTableCellProperties
6801+ (\ s a -> s{_reqUpdateTableCellProperties = a})
6802+
6803+-- | Replaces all instances of specified text.
6804+reqReplaceAllText :: Lens' Request' (Maybe ReplaceAllTextRequest)
6805+reqReplaceAllText
6806+ = lens _reqReplaceAllText
6807+ (\ s a -> s{_reqReplaceAllText = a})
6808+
6809+-- | Creates a new shape.
6810+reqCreateShape :: Lens' Request' (Maybe CreateShapeRequest)
6811+reqCreateShape
6812+ = lens _reqCreateShape
6813+ (\ s a -> s{_reqCreateShape = a})
6814+
6815+-- | Updates the properties of a Page.
6816+reqUpdatePageProperties :: Lens' Request' (Maybe UpdatePagePropertiesRequest)
6817+reqUpdatePageProperties
6818+ = lens _reqUpdatePageProperties
6819+ (\ s a -> s{_reqUpdatePageProperties = a})
6820+
6821+-- | Updates the properties of a Line.
6822+reqUpdateLineProperties :: Lens' Request' (Maybe UpdateLinePropertiesRequest)
6823+reqUpdateLineProperties
6824+ = lens _reqUpdateLineProperties
6825+ (\ s a -> s{_reqUpdateLineProperties = a})
6826+
6827+-- | Deletes a column from a table.
6828+reqDeleteTableColumn :: Lens' Request' (Maybe DeleteTableColumnRequest)
6829+reqDeleteTableColumn
6830+ = lens _reqDeleteTableColumn
6831+ (\ s a -> s{_reqDeleteTableColumn = a})
6832+
6833+-- | Deletes text from a shape or a table cell.
6834+reqDeleteText :: Lens' Request' (Maybe DeleteTextRequest)
6835+reqDeleteText
6836+ = lens _reqDeleteText
6837+ (\ s a -> s{_reqDeleteText = a})
6838+
6839+-- | Creates an embedded Google Sheets chart.
6840+reqCreateSheetsChart :: Lens' Request' (Maybe CreateSheetsChartRequest)
6841+reqCreateSheetsChart
6842+ = lens _reqCreateSheetsChart
6843+ (\ s a -> s{_reqCreateSheetsChart = a})
6844+
6845+-- | Inserts columns into a table.
6846+reqInsertTableColumns :: Lens' Request' (Maybe InsertTableColumnsRequest)
6847+reqInsertTableColumns
6848+ = lens _reqInsertTableColumns
6849+ (\ s a -> s{_reqInsertTableColumns = a})
6850+
6851+-- | Updates the properties of an Image.
6852+reqUpdateImageProperties :: Lens' Request' (Maybe UpdateImagePropertiesRequest)
6853+reqUpdateImageProperties
6854+ = lens _reqUpdateImageProperties
6855+ (\ s a -> s{_reqUpdateImageProperties = a})
6856+
6857+-- | Duplicates a slide or page element.
6858+reqDuplicateObject :: Lens' Request' (Maybe DuplicateObjectRequest)
6859+reqDuplicateObject
6860+ = lens _reqDuplicateObject
6861+ (\ s a -> s{_reqDuplicateObject = a})
6862+
6863+-- | Creates a new table.
6864+reqCreateTable :: Lens' Request' (Maybe CreateTableRequest)
6865+reqCreateTable
6866+ = lens _reqCreateTable
6867+ (\ s a -> s{_reqCreateTable = a})
6868+
6869+-- | Creates a video.
6870+reqCreateVideo :: Lens' Request' (Maybe CreateVideoRequest)
6871+reqCreateVideo
6872+ = lens _reqCreateVideo
6873+ (\ s a -> s{_reqCreateVideo = a})
6874+
6875+-- | Refreshes a Google Sheets chart.
6876+reqRefreshSheetsChart :: Lens' Request' (Maybe RefreshSheetsChartRequest)
6877+reqRefreshSheetsChart
6878+ = lens _reqRefreshSheetsChart
6879+ (\ s a -> s{_reqRefreshSheetsChart = a})
6880+
6881+-- | Updates the transform of a page element.
6882+reqUpdatePageElementTransform :: Lens' Request' (Maybe UpdatePageElementTransformRequest)
6883+reqUpdatePageElementTransform
6884+ = lens _reqUpdatePageElementTransform
6885+ (\ s a -> s{_reqUpdatePageElementTransform = a})
6886+
6887+-- | Inserts rows into a table.
6888+reqInsertTableRows :: Lens' Request' (Maybe InsertTableRowsRequest)
6889+reqInsertTableRows
6890+ = lens _reqInsertTableRows
6891+ (\ s a -> s{_reqInsertTableRows = a})
6892+
6893+-- | Creates an image.
6894+reqCreateImage :: Lens' Request' (Maybe CreateImageRequest)
6895+reqCreateImage
6896+ = lens _reqCreateImage
6897+ (\ s a -> s{_reqCreateImage = a})
6898+
6899+-- | Creates a new slide.
6900+reqCreateSlide :: Lens' Request' (Maybe CreateSlideRequest)
6901+reqCreateSlide
6902+ = lens _reqCreateSlide
6903+ (\ s a -> s{_reqCreateSlide = a})
6904+
6905+-- | Updates the styling of text within a Shape or Table.
6906+reqUpdateTextStyle :: Lens' Request' (Maybe UpdateTextStyleRequest)
6907+reqUpdateTextStyle
6908+ = lens _reqUpdateTextStyle
6909+ (\ s a -> s{_reqUpdateTextStyle = a})
6910+
6911+-- | Updates the properties of a Video.
6912+reqUpdateVideoProperties :: Lens' Request' (Maybe UpdateVideoPropertiesRequest)
6913+reqUpdateVideoProperties
6914+ = lens _reqUpdateVideoProperties
6915+ (\ s a -> s{_reqUpdateVideoProperties = a})
6916+
6917+instance FromJSON Request' where
6918+ parseJSON
6919+ = withObject "Request"
6920+ (\ o ->
6921+ Request'' <$>
6922+ (o .:? "replaceAllShapesWithImage") <*>
6923+ (o .:? "deleteObject")
6924+ <*> (o .:? "updateSlidesPosition")
6925+ <*> (o .:? "updateShapeProperties")
6926+ <*> (o .:? "createParagraphBullets")
6927+ <*> (o .:? "createLine")
6928+ <*> (o .:? "insertText")
6929+ <*> (o .:? "deleteTableRow")
6930+ <*> (o .:? "updateTableCellProperties")
6931+ <*> (o .:? "replaceAllText")
6932+ <*> (o .:? "createShape")
6933+ <*> (o .:? "updatePageProperties")
6934+ <*> (o .:? "updateLineProperties")
6935+ <*> (o .:? "deleteTableColumn")
6936+ <*> (o .:? "deleteText")
6937+ <*> (o .:? "createSheetsChart")
6938+ <*> (o .:? "insertTableColumns")
6939+ <*> (o .:? "updateImageProperties")
6940+ <*> (o .:? "duplicateObject")
6941+ <*> (o .:? "createTable")
6942+ <*> (o .:? "createVideo")
6943+ <*> (o .:? "refreshSheetsChart")
6944+ <*> (o .:? "updatePageElementTransform")
6945+ <*> (o .:? "insertTableRows")
6946+ <*> (o .:? "createImage")
6947+ <*> (o .:? "createSlide")
6948+ <*> (o .:? "updateTextStyle")
6949+ <*> (o .:? "updateVideoProperties"))
6950+
6951+instance ToJSON Request' where
6952+ toJSON Request''{..}
6953+ = object
6954+ (catMaybes
6955+ [("replaceAllShapesWithImage" .=) <$>
6956+ _reqReplaceAllShapesWithImage,
6957+ ("deleteObject" .=) <$> _reqDeleteObject,
6958+ ("updateSlidesPosition" .=) <$>
6959+ _reqUpdateSlidesPosition,
6960+ ("updateShapeProperties" .=) <$>
6961+ _reqUpdateShapeProperties,
6962+ ("createParagraphBullets" .=) <$>
6963+ _reqCreateParagraphBullets,
6964+ ("createLine" .=) <$> _reqCreateLine,
6965+ ("insertText" .=) <$> _reqInsertText,
6966+ ("deleteTableRow" .=) <$> _reqDeleteTableRow,
6967+ ("updateTableCellProperties" .=) <$>
6968+ _reqUpdateTableCellProperties,
6969+ ("replaceAllText" .=) <$> _reqReplaceAllText,
6970+ ("createShape" .=) <$> _reqCreateShape,
6971+ ("updatePageProperties" .=) <$>
6972+ _reqUpdatePageProperties,
6973+ ("updateLineProperties" .=) <$>
6974+ _reqUpdateLineProperties,
6975+ ("deleteTableColumn" .=) <$> _reqDeleteTableColumn,
6976+ ("deleteText" .=) <$> _reqDeleteText,
6977+ ("createSheetsChart" .=) <$> _reqCreateSheetsChart,
6978+ ("insertTableColumns" .=) <$> _reqInsertTableColumns,
6979+ ("updateImageProperties" .=) <$>
6980+ _reqUpdateImageProperties,
6981+ ("duplicateObject" .=) <$> _reqDuplicateObject,
6982+ ("createTable" .=) <$> _reqCreateTable,
6983+ ("createVideo" .=) <$> _reqCreateVideo,
6984+ ("refreshSheetsChart" .=) <$> _reqRefreshSheetsChart,
6985+ ("updatePageElementTransform" .=) <$>
6986+ _reqUpdatePageElementTransform,
6987+ ("insertTableRows" .=) <$> _reqInsertTableRows,
6988+ ("createImage" .=) <$> _reqCreateImage,
6989+ ("createSlide" .=) <$> _reqCreateSlide,
6990+ ("updateTextStyle" .=) <$> _reqUpdateTextStyle,
6991+ ("updateVideoProperties" .=) <$>
6992+ _reqUpdateVideoProperties])
6993+
6994+-- | A criteria that matches a specific string of text in a shape or table.
6995+--
6996+-- /See:/ 'substringMatchCriteria' smart constructor.
6997+data SubstringMatchCriteria = SubstringMatchCriteria'
6998+ { _smcMatchCase :: !(Maybe Bool)
6999+ , _smcText :: !(Maybe Text)
7000+ } deriving (Eq,Show,Data,Typeable,Generic)
7001+
7002+-- | Creates a value of 'SubstringMatchCriteria' with the minimum fields required to make a request.
7003+--
7004+-- Use one of the following lenses to modify other fields as desired:
7005+--
7006+-- * 'smcMatchCase'
7007+--
7008+-- * 'smcText'
7009+substringMatchCriteria
7010+ :: SubstringMatchCriteria
7011+substringMatchCriteria =
7012+ SubstringMatchCriteria'
7013+ { _smcMatchCase = Nothing
7014+ , _smcText = Nothing
7015+ }
7016+
7017+-- | Indicates whether the search should respect case: - \`True\`: the search
7018+-- is case sensitive. - \`False\`: the search is case insensitive.
7019+smcMatchCase :: Lens' SubstringMatchCriteria (Maybe Bool)
7020+smcMatchCase
7021+ = lens _smcMatchCase (\ s a -> s{_smcMatchCase = a})
7022+
7023+-- | The text to search for in the shape or table.
7024+smcText :: Lens' SubstringMatchCriteria (Maybe Text)
7025+smcText = lens _smcText (\ s a -> s{_smcText = a})
7026+
7027+instance FromJSON SubstringMatchCriteria where
7028+ parseJSON
7029+ = withObject "SubstringMatchCriteria"
7030+ (\ o ->
7031+ SubstringMatchCriteria' <$>
7032+ (o .:? "matchCase") <*> (o .:? "text"))
7033+
7034+instance ToJSON SubstringMatchCriteria where
7035+ toJSON SubstringMatchCriteria'{..}
7036+ = object
7037+ (catMaybes
7038+ [("matchCase" .=) <$> _smcMatchCase,
7039+ ("text" .=) <$> _smcText])