gogol-chat 0.5.0 → 1.0.0
raw patch · 52 files changed
+15755/−4260 lines, 52 filesdep −basedep ~gogol-coresetup-changed
Dependencies removed: base
Dependency ranges changed: gogol-core
Files
- README.md +2/−2
- Setup.hs +2/−1
- gen/Gogol/Chat.hs +1022/−0
- gen/Gogol/Chat/Internal/Product.hs +6935/−0
- gen/Gogol/Chat/Internal/Sum.hs +2706/−0
- gen/Gogol/Chat/Media/Download.hs +141/−0
- gen/Gogol/Chat/Media/Upload.hs +156/−0
- gen/Gogol/Chat/Spaces/CompleteImport.hs +114/−0
- gen/Gogol/Chat/Spaces/Create.hs +122/−0
- gen/Gogol/Chat/Spaces/Delete.hs +114/−0
- gen/Gogol/Chat/Spaces/FindDirectMessage.hs +108/−0
- gen/Gogol/Chat/Spaces/Get.hs +120/−0
- gen/Gogol/Chat/Spaces/List.hs +118/−0
- gen/Gogol/Chat/Spaces/Members/Create.hs +129/−0
- gen/Gogol/Chat/Spaces/Members/Delete.hs +119/−0
- gen/Gogol/Chat/Spaces/Members/Get.hs +119/−0
- gen/Gogol/Chat/Spaces/Members/List.hs +149/−0
- gen/Gogol/Chat/Spaces/Members/Patch.hs +130/−0
- gen/Gogol/Chat/Spaces/Messages/Attachments/Get.hs +107/−0
- gen/Gogol/Chat/Spaces/Messages/Create.hs +141/−0
- gen/Gogol/Chat/Spaces/Messages/Delete.hs +114/−0
- gen/Gogol/Chat/Spaces/Messages/Get.hs +109/−0
- gen/Gogol/Chat/Spaces/Messages/List.hs +136/−0
- gen/Gogol/Chat/Spaces/Messages/Patch.hs +126/−0
- gen/Gogol/Chat/Spaces/Messages/Reactions/Create.hs +123/−0
- gen/Gogol/Chat/Spaces/Messages/Reactions/Delete.hs +111/−0
- gen/Gogol/Chat/Spaces/Messages/Reactions/List.hs +130/−0
- gen/Gogol/Chat/Spaces/Messages/Update.hs +126/−0
- gen/Gogol/Chat/Spaces/Patch.hs +128/−0
- gen/Gogol/Chat/Spaces/Search.hs +130/−0
- gen/Gogol/Chat/Spaces/Setup.hs +112/−0
- gen/Gogol/Chat/Spaces/SpaceEvents/Get.hs +117/−0
- gen/Gogol/Chat/Spaces/SpaceEvents/List.hs +134/−0
- gen/Gogol/Chat/Types.hs +931/−0
- gen/Gogol/Chat/Users/Spaces/GetSpaceReadState.hs +109/−0
- gen/Gogol/Chat/Users/Spaces/SpaceNotificationSetting/Get.hs +116/−0
- gen/Gogol/Chat/Users/Spaces/SpaceNotificationSetting/Patch.hs +129/−0
- gen/Gogol/Chat/Users/Spaces/Threads/GetThreadReadState.hs +114/−0
- gen/Gogol/Chat/Users/Spaces/UpdateSpaceReadState.hs +123/−0
- gen/Network/Google/Chat.hs +0/−308
- gen/Network/Google/Chat/Types.hs +0/−259
- gen/Network/Google/Chat/Types/Product.hs +0/−1732
- gen/Network/Google/Chat/Types/Sum.hs +0/−625
- gen/Network/Google/Resource/Chat/Spaces/Get.hs +0/−146
- gen/Network/Google/Resource/Chat/Spaces/List.hs +0/−162
- gen/Network/Google/Resource/Chat/Spaces/Members/Get.hs +0/−149
- gen/Network/Google/Resource/Chat/Spaces/Members/List.hs +0/−178
- gen/Network/Google/Resource/Chat/Spaces/Messages/Create.hs +0/−182
- gen/Network/Google/Resource/Chat/Spaces/Messages/Delete.hs +0/−149
- gen/Network/Google/Resource/Chat/Spaces/Messages/Get.hs +0/−149
- gen/Network/Google/Resource/Chat/Spaces/Messages/Update.hs +0/−175
- gogol-chat.cabal +83/−43
README.md view
@@ -8,12 +8,12 @@ ## Version -`0.5.0`+`1.0.0` ## Description -A client library for the Google Hangouts Chat.+A client library for the Google Chat. ## Contribute
Setup.hs view
@@ -1,2 +1,3 @@-import Distribution.Simple+import Distribution.Simple+ main = defaultMain
+ gen/Gogol/Chat.hs view
@@ -0,0 +1,1022 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- The Google Chat API lets you build Chat apps to integrate your services with Google Chat and manage Chat resources such as spaces, members, and messages.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference>+module Gogol.Chat+ ( -- * Configuration+ chatService,++ -- * OAuth Scopes+ Chat'Admin'Delete,+ Chat'Admin'Memberships,+ Chat'Admin'Memberships'Readonly,+ Chat'Admin'Spaces,+ Chat'Admin'Spaces'Readonly,+ Chat'App'Delete,+ Chat'App'Memberships,+ Chat'App'Spaces,+ Chat'App'Spaces'Create,+ Chat'Bot,+ Chat'Delete,+ Chat'Import,+ Chat'Memberships,+ Chat'Memberships'App,+ Chat'Memberships'Readonly,+ Chat'Messages,+ Chat'Messages'Create,+ Chat'Messages'Reactions,+ Chat'Messages'Reactions'Create,+ Chat'Messages'Reactions'Readonly,+ Chat'Messages'Readonly,+ Chat'Spaces,+ Chat'Spaces'Create,+ Chat'Spaces'Readonly,+ Chat'Users'Readstate,+ Chat'Users'Readstate'Readonly,+ Chat'Users'Spacesettings,++ -- * Resources++ -- ** chat.media.download+ ChatMediaDownloadResource,+ ChatMediaDownload (..),+ newChatMediaDownload,++ -- ** chat.media.upload+ ChatMediaUploadResource,+ ChatMediaUpload (..),+ newChatMediaUpload,++ -- ** chat.spaces.completeImport+ ChatSpacesCompleteImportResource,+ ChatSpacesCompleteImport (..),+ newChatSpacesCompleteImport,++ -- ** chat.spaces.create+ ChatSpacesCreateResource,+ ChatSpacesCreate (..),+ newChatSpacesCreate,++ -- ** chat.spaces.delete+ ChatSpacesDeleteResource,+ ChatSpacesDelete (..),+ newChatSpacesDelete,++ -- ** chat.spaces.findDirectMessage+ ChatSpacesFindDirectMessageResource,+ ChatSpacesFindDirectMessage (..),+ newChatSpacesFindDirectMessage,++ -- ** chat.spaces.get+ ChatSpacesGetResource,+ ChatSpacesGet (..),+ newChatSpacesGet,++ -- ** chat.spaces.list+ ChatSpacesListResource,+ ChatSpacesList (..),+ newChatSpacesList,++ -- ** chat.spaces.members.create+ ChatSpacesMembersCreateResource,+ ChatSpacesMembersCreate (..),+ newChatSpacesMembersCreate,++ -- ** chat.spaces.members.delete+ ChatSpacesMembersDeleteResource,+ ChatSpacesMembersDelete (..),+ newChatSpacesMembersDelete,++ -- ** chat.spaces.members.get+ ChatSpacesMembersGetResource,+ ChatSpacesMembersGet (..),+ newChatSpacesMembersGet,++ -- ** chat.spaces.members.list+ ChatSpacesMembersListResource,+ ChatSpacesMembersList (..),+ newChatSpacesMembersList,++ -- ** chat.spaces.members.patch+ ChatSpacesMembersPatchResource,+ ChatSpacesMembersPatch (..),+ newChatSpacesMembersPatch,++ -- ** chat.spaces.messages.attachments.get+ ChatSpacesMessagesAttachmentsGetResource,+ ChatSpacesMessagesAttachmentsGet (..),+ newChatSpacesMessagesAttachmentsGet,++ -- ** chat.spaces.messages.create+ ChatSpacesMessagesCreateResource,+ ChatSpacesMessagesCreate (..),+ newChatSpacesMessagesCreate,++ -- ** chat.spaces.messages.delete+ ChatSpacesMessagesDeleteResource,+ ChatSpacesMessagesDelete (..),+ newChatSpacesMessagesDelete,++ -- ** chat.spaces.messages.get+ ChatSpacesMessagesGetResource,+ ChatSpacesMessagesGet (..),+ newChatSpacesMessagesGet,++ -- ** chat.spaces.messages.list+ ChatSpacesMessagesListResource,+ ChatSpacesMessagesList (..),+ newChatSpacesMessagesList,++ -- ** chat.spaces.messages.patch+ ChatSpacesMessagesPatchResource,+ ChatSpacesMessagesPatch (..),+ newChatSpacesMessagesPatch,++ -- ** chat.spaces.messages.reactions.create+ ChatSpacesMessagesReactionsCreateResource,+ ChatSpacesMessagesReactionsCreate (..),+ newChatSpacesMessagesReactionsCreate,++ -- ** chat.spaces.messages.reactions.delete+ ChatSpacesMessagesReactionsDeleteResource,+ ChatSpacesMessagesReactionsDelete (..),+ newChatSpacesMessagesReactionsDelete,++ -- ** chat.spaces.messages.reactions.list+ ChatSpacesMessagesReactionsListResource,+ ChatSpacesMessagesReactionsList (..),+ newChatSpacesMessagesReactionsList,++ -- ** chat.spaces.messages.update+ ChatSpacesMessagesUpdateResource,+ ChatSpacesMessagesUpdate (..),+ newChatSpacesMessagesUpdate,++ -- ** chat.spaces.patch+ ChatSpacesPatchResource,+ ChatSpacesPatch (..),+ newChatSpacesPatch,++ -- ** chat.spaces.search+ ChatSpacesSearchResource,+ ChatSpacesSearch (..),+ newChatSpacesSearch,++ -- ** chat.spaces.setup+ ChatSpacesSetupResource,+ ChatSpacesSetup (..),+ newChatSpacesSetup,++ -- ** chat.spaces.spaceEvents.get+ ChatSpacesSpaceEventsGetResource,+ ChatSpacesSpaceEventsGet (..),+ newChatSpacesSpaceEventsGet,++ -- ** chat.spaces.spaceEvents.list+ ChatSpacesSpaceEventsListResource,+ ChatSpacesSpaceEventsList (..),+ newChatSpacesSpaceEventsList,++ -- ** chat.users.spaces.getSpaceReadState+ ChatUsersSpacesGetSpaceReadStateResource,+ ChatUsersSpacesGetSpaceReadState (..),+ newChatUsersSpacesGetSpaceReadState,++ -- ** chat.users.spaces.spaceNotificationSetting.get+ ChatUsersSpacesSpaceNotificationSettingGetResource,+ ChatUsersSpacesSpaceNotificationSettingGet (..),+ newChatUsersSpacesSpaceNotificationSettingGet,++ -- ** chat.users.spaces.spaceNotificationSetting.patch+ ChatUsersSpacesSpaceNotificationSettingPatchResource,+ ChatUsersSpacesSpaceNotificationSettingPatch (..),+ newChatUsersSpacesSpaceNotificationSettingPatch,++ -- ** chat.users.spaces.threads.getThreadReadState+ ChatUsersSpacesThreadsGetThreadReadStateResource,+ ChatUsersSpacesThreadsGetThreadReadState (..),+ newChatUsersSpacesThreadsGetThreadReadState,++ -- ** chat.users.spaces.updateSpaceReadState+ ChatUsersSpacesUpdateSpaceReadStateResource,+ ChatUsersSpacesUpdateSpaceReadState (..),+ newChatUsersSpacesUpdateSpaceReadState,++ -- * Types++ -- ** Xgafv+ Xgafv (..),++ -- ** AccessSettings+ AccessSettings (..),+ newAccessSettings,++ -- ** AccessSettings_AccessState+ AccessSettings_AccessState (..),++ -- ** AccessoryWidget+ AccessoryWidget (..),+ newAccessoryWidget,++ -- ** ActionParameter+ ActionParameter (..),+ newActionParameter,++ -- ** ActionResponse+ ActionResponse (..),+ newActionResponse,++ -- ** ActionResponse_Type+ ActionResponse_Type (..),++ -- ** ActionStatus+ ActionStatus (..),+ newActionStatus,++ -- ** ActionStatus_StatusCode+ ActionStatus_StatusCode (..),++ -- ** Annotation+ Annotation (..),+ newAnnotation,++ -- ** Annotation_Type+ Annotation_Type (..),++ -- ** AppCommandMetadata+ AppCommandMetadata (..),+ newAppCommandMetadata,++ -- ** AppCommandMetadata_AppCommandType+ AppCommandMetadata_AppCommandType (..),++ -- ** AttachedGif+ AttachedGif (..),+ newAttachedGif,++ -- ** Attachment+ Attachment (..),+ newAttachment,++ -- ** Attachment_Source+ Attachment_Source (..),++ -- ** AttachmentDataRef+ AttachmentDataRef (..),+ newAttachmentDataRef,++ -- ** Button+ Button (..),+ newButton,++ -- ** Card+ Card (..),+ newCard,++ -- ** CardAction+ CardAction (..),+ newCardAction,++ -- ** CardHeader+ CardHeader (..),+ newCardHeader,++ -- ** CardHeader_ImageStyle+ CardHeader_ImageStyle (..),++ -- ** CardWithId+ CardWithId (..),+ newCardWithId,++ -- ** ChatAppLogEntry+ ChatAppLogEntry (..),+ newChatAppLogEntry,++ -- ** ChatClientDataSourceMarkup+ ChatClientDataSourceMarkup (..),+ newChatClientDataSourceMarkup,++ -- ** ChatSpaceLinkData+ ChatSpaceLinkData (..),+ newChatSpaceLinkData,++ -- ** Color+ Color (..),+ newColor,++ -- ** CommonEventObject+ CommonEventObject (..),+ newCommonEventObject,++ -- ** CommonEventObject_FormInputs+ CommonEventObject_FormInputs (..),+ newCommonEventObject_FormInputs,++ -- ** CommonEventObject_HostApp+ CommonEventObject_HostApp (..),++ -- ** CommonEventObject_Parameters+ CommonEventObject_Parameters (..),+ newCommonEventObject_Parameters,++ -- ** CommonEventObject_Platform+ CommonEventObject_Platform (..),++ -- ** CompleteImportSpaceRequest+ CompleteImportSpaceRequest (..),+ newCompleteImportSpaceRequest,++ -- ** CompleteImportSpaceResponse+ CompleteImportSpaceResponse (..),+ newCompleteImportSpaceResponse,++ -- ** CustomEmoji+ CustomEmoji (..),+ newCustomEmoji,++ -- ** CustomEmojiMetadata+ CustomEmojiMetadata (..),+ newCustomEmojiMetadata,++ -- ** DateInput+ DateInput (..),+ newDateInput,++ -- ** DateTimeInput+ DateTimeInput (..),+ newDateTimeInput,++ -- ** DeletionMetadata+ DeletionMetadata (..),+ newDeletionMetadata,++ -- ** DeletionMetadata_DeletionType+ DeletionMetadata_DeletionType (..),++ -- ** DeprecatedEvent+ DeprecatedEvent (..),+ newDeprecatedEvent,++ -- ** DeprecatedEvent_DialogEventType+ DeprecatedEvent_DialogEventType (..),++ -- ** DeprecatedEvent_Type+ DeprecatedEvent_Type (..),++ -- ** Dialog+ Dialog (..),+ newDialog,++ -- ** DialogAction+ DialogAction (..),+ newDialogAction,++ -- ** DriveDataRef+ DriveDataRef (..),+ newDriveDataRef,++ -- ** DriveLinkData+ DriveLinkData (..),+ newDriveLinkData,++ -- ** Emoji+ Emoji (..),+ newEmoji,++ -- ** EmojiReactionSummary+ EmojiReactionSummary (..),+ newEmojiReactionSummary,++ -- ** Empty+ Empty (..),+ newEmpty,++ -- ** FormAction+ FormAction (..),+ newFormAction,++ -- ** GoogleAppsCardV1Action+ GoogleAppsCardV1Action (..),+ newGoogleAppsCardV1Action,++ -- ** GoogleAppsCardV1Action_Interaction+ GoogleAppsCardV1Action_Interaction (..),++ -- ** GoogleAppsCardV1Action_LoadIndicator+ GoogleAppsCardV1Action_LoadIndicator (..),++ -- ** GoogleAppsCardV1ActionParameter+ GoogleAppsCardV1ActionParameter (..),+ newGoogleAppsCardV1ActionParameter,++ -- ** GoogleAppsCardV1BorderStyle+ GoogleAppsCardV1BorderStyle (..),+ newGoogleAppsCardV1BorderStyle,++ -- ** GoogleAppsCardV1BorderStyle_Type+ GoogleAppsCardV1BorderStyle_Type (..),++ -- ** GoogleAppsCardV1Button+ GoogleAppsCardV1Button (..),+ newGoogleAppsCardV1Button,++ -- ** GoogleAppsCardV1Button_Type+ GoogleAppsCardV1Button_Type (..),++ -- ** GoogleAppsCardV1ButtonList+ GoogleAppsCardV1ButtonList (..),+ newGoogleAppsCardV1ButtonList,++ -- ** GoogleAppsCardV1Card+ GoogleAppsCardV1Card (..),+ newGoogleAppsCardV1Card,++ -- ** GoogleAppsCardV1Card_DisplayStyle+ GoogleAppsCardV1Card_DisplayStyle (..),++ -- ** GoogleAppsCardV1Card_SectionDividerStyle+ GoogleAppsCardV1Card_SectionDividerStyle (..),++ -- ** GoogleAppsCardV1CardAction+ GoogleAppsCardV1CardAction (..),+ newGoogleAppsCardV1CardAction,++ -- ** GoogleAppsCardV1CardFixedFooter+ GoogleAppsCardV1CardFixedFooter (..),+ newGoogleAppsCardV1CardFixedFooter,++ -- ** GoogleAppsCardV1CardHeader+ GoogleAppsCardV1CardHeader (..),+ newGoogleAppsCardV1CardHeader,++ -- ** GoogleAppsCardV1CardHeader_ImageType+ GoogleAppsCardV1CardHeader_ImageType (..),++ -- ** GoogleAppsCardV1Carousel+ GoogleAppsCardV1Carousel (..),+ newGoogleAppsCardV1Carousel,++ -- ** GoogleAppsCardV1CarouselCard+ GoogleAppsCardV1CarouselCard (..),+ newGoogleAppsCardV1CarouselCard,++ -- ** GoogleAppsCardV1Chip+ GoogleAppsCardV1Chip (..),+ newGoogleAppsCardV1Chip,++ -- ** GoogleAppsCardV1ChipList+ GoogleAppsCardV1ChipList (..),+ newGoogleAppsCardV1ChipList,++ -- ** GoogleAppsCardV1ChipList_Layout+ GoogleAppsCardV1ChipList_Layout (..),++ -- ** GoogleAppsCardV1CollapseControl+ GoogleAppsCardV1CollapseControl (..),+ newGoogleAppsCardV1CollapseControl,++ -- ** GoogleAppsCardV1CollapseControl_HorizontalAlignment+ GoogleAppsCardV1CollapseControl_HorizontalAlignment (..),++ -- ** GoogleAppsCardV1Column+ GoogleAppsCardV1Column (..),+ newGoogleAppsCardV1Column,++ -- ** GoogleAppsCardV1Column_HorizontalAlignment+ GoogleAppsCardV1Column_HorizontalAlignment (..),++ -- ** GoogleAppsCardV1Column_HorizontalSizeStyle+ GoogleAppsCardV1Column_HorizontalSizeStyle (..),++ -- ** GoogleAppsCardV1Column_VerticalAlignment+ GoogleAppsCardV1Column_VerticalAlignment (..),++ -- ** GoogleAppsCardV1Columns+ GoogleAppsCardV1Columns (..),+ newGoogleAppsCardV1Columns,++ -- ** GoogleAppsCardV1DateTimePicker+ GoogleAppsCardV1DateTimePicker (..),+ newGoogleAppsCardV1DateTimePicker,++ -- ** GoogleAppsCardV1DateTimePicker_Type+ GoogleAppsCardV1DateTimePicker_Type (..),++ -- ** GoogleAppsCardV1DecoratedText+ GoogleAppsCardV1DecoratedText (..),+ newGoogleAppsCardV1DecoratedText,++ -- ** GoogleAppsCardV1Divider+ GoogleAppsCardV1Divider (..),+ newGoogleAppsCardV1Divider,++ -- ** GoogleAppsCardV1Grid+ GoogleAppsCardV1Grid (..),+ newGoogleAppsCardV1Grid,++ -- ** GoogleAppsCardV1GridItem+ GoogleAppsCardV1GridItem (..),+ newGoogleAppsCardV1GridItem,++ -- ** GoogleAppsCardV1GridItem_Layout+ GoogleAppsCardV1GridItem_Layout (..),++ -- ** GoogleAppsCardV1Icon+ GoogleAppsCardV1Icon (..),+ newGoogleAppsCardV1Icon,++ -- ** GoogleAppsCardV1Icon_ImageType+ GoogleAppsCardV1Icon_ImageType (..),++ -- ** GoogleAppsCardV1Image+ GoogleAppsCardV1Image (..),+ newGoogleAppsCardV1Image,++ -- ** GoogleAppsCardV1ImageComponent+ GoogleAppsCardV1ImageComponent (..),+ newGoogleAppsCardV1ImageComponent,++ -- ** GoogleAppsCardV1ImageCropStyle+ GoogleAppsCardV1ImageCropStyle (..),+ newGoogleAppsCardV1ImageCropStyle,++ -- ** GoogleAppsCardV1ImageCropStyle_Type+ GoogleAppsCardV1ImageCropStyle_Type (..),++ -- ** GoogleAppsCardV1MaterialIcon+ GoogleAppsCardV1MaterialIcon (..),+ newGoogleAppsCardV1MaterialIcon,++ -- ** GoogleAppsCardV1NestedWidget+ GoogleAppsCardV1NestedWidget (..),+ newGoogleAppsCardV1NestedWidget,++ -- ** GoogleAppsCardV1OnClick+ GoogleAppsCardV1OnClick (..),+ newGoogleAppsCardV1OnClick,++ -- ** GoogleAppsCardV1OpenLink+ GoogleAppsCardV1OpenLink (..),+ newGoogleAppsCardV1OpenLink,++ -- ** GoogleAppsCardV1OpenLink_OnClose+ GoogleAppsCardV1OpenLink_OnClose (..),++ -- ** GoogleAppsCardV1OpenLink_OpenAs+ GoogleAppsCardV1OpenLink_OpenAs (..),++ -- ** GoogleAppsCardV1OverflowMenu+ GoogleAppsCardV1OverflowMenu (..),+ newGoogleAppsCardV1OverflowMenu,++ -- ** GoogleAppsCardV1OverflowMenuItem+ GoogleAppsCardV1OverflowMenuItem (..),+ newGoogleAppsCardV1OverflowMenuItem,++ -- ** GoogleAppsCardV1PlatformDataSource+ GoogleAppsCardV1PlatformDataSource (..),+ newGoogleAppsCardV1PlatformDataSource,++ -- ** GoogleAppsCardV1PlatformDataSource_CommonDataSource+ GoogleAppsCardV1PlatformDataSource_CommonDataSource (..),++ -- ** GoogleAppsCardV1Section+ GoogleAppsCardV1Section (..),+ newGoogleAppsCardV1Section,++ -- ** GoogleAppsCardV1SelectionInput+ GoogleAppsCardV1SelectionInput (..),+ newGoogleAppsCardV1SelectionInput,++ -- ** GoogleAppsCardV1SelectionInput_Type+ GoogleAppsCardV1SelectionInput_Type (..),++ -- ** GoogleAppsCardV1SelectionItem+ GoogleAppsCardV1SelectionItem (..),+ newGoogleAppsCardV1SelectionItem,++ -- ** GoogleAppsCardV1SuggestionItem+ GoogleAppsCardV1SuggestionItem (..),+ newGoogleAppsCardV1SuggestionItem,++ -- ** GoogleAppsCardV1Suggestions+ GoogleAppsCardV1Suggestions (..),+ newGoogleAppsCardV1Suggestions,++ -- ** GoogleAppsCardV1SwitchControl+ GoogleAppsCardV1SwitchControl (..),+ newGoogleAppsCardV1SwitchControl,++ -- ** GoogleAppsCardV1SwitchControl_ControlType+ GoogleAppsCardV1SwitchControl_ControlType (..),++ -- ** GoogleAppsCardV1TextInput+ GoogleAppsCardV1TextInput (..),+ newGoogleAppsCardV1TextInput,++ -- ** GoogleAppsCardV1TextInput_Type+ GoogleAppsCardV1TextInput_Type (..),++ -- ** GoogleAppsCardV1TextParagraph+ GoogleAppsCardV1TextParagraph (..),+ newGoogleAppsCardV1TextParagraph,++ -- ** GoogleAppsCardV1Validation+ GoogleAppsCardV1Validation (..),+ newGoogleAppsCardV1Validation,++ -- ** GoogleAppsCardV1Validation_InputType+ GoogleAppsCardV1Validation_InputType (..),++ -- ** GoogleAppsCardV1Widget+ GoogleAppsCardV1Widget (..),+ newGoogleAppsCardV1Widget,++ -- ** GoogleAppsCardV1Widget_HorizontalAlignment+ GoogleAppsCardV1Widget_HorizontalAlignment (..),++ -- ** GoogleAppsCardV1Widgets+ GoogleAppsCardV1Widgets (..),+ newGoogleAppsCardV1Widgets,++ -- ** Group+ Group (..),+ newGroup,++ -- ** HostAppDataSourceMarkup+ HostAppDataSourceMarkup (..),+ newHostAppDataSourceMarkup,++ -- ** Image+ Image (..),+ newImage,++ -- ** ImageButton+ ImageButton (..),+ newImageButton,++ -- ** ImageButton_Icon+ ImageButton_Icon (..),++ -- ** Inputs+ Inputs (..),+ newInputs,++ -- ** KeyValue+ KeyValue (..),+ newKeyValue,++ -- ** KeyValue_Icon+ KeyValue_Icon (..),++ -- ** ListMembershipsResponse+ ListMembershipsResponse (..),+ newListMembershipsResponse,++ -- ** ListMessagesResponse+ ListMessagesResponse (..),+ newListMessagesResponse,++ -- ** ListReactionsResponse+ ListReactionsResponse (..),+ newListReactionsResponse,++ -- ** ListSpaceEventsResponse+ ListSpaceEventsResponse (..),+ newListSpaceEventsResponse,++ -- ** ListSpacesResponse+ ListSpacesResponse (..),+ newListSpacesResponse,++ -- ** MatchedUrl+ MatchedUrl (..),+ newMatchedUrl,++ -- ** Media+ Media (..),+ newMedia,++ -- ** Membership+ Membership (..),+ newMembership,++ -- ** Membership_Role+ Membership_Role (..),++ -- ** Membership_State+ Membership_State (..),++ -- ** MembershipBatchCreatedEventData+ MembershipBatchCreatedEventData (..),+ newMembershipBatchCreatedEventData,++ -- ** MembershipBatchDeletedEventData+ MembershipBatchDeletedEventData (..),+ newMembershipBatchDeletedEventData,++ -- ** MembershipBatchUpdatedEventData+ MembershipBatchUpdatedEventData (..),+ newMembershipBatchUpdatedEventData,++ -- ** MembershipCount+ MembershipCount (..),+ newMembershipCount,++ -- ** MembershipCreatedEventData+ MembershipCreatedEventData (..),+ newMembershipCreatedEventData,++ -- ** MembershipDeletedEventData+ MembershipDeletedEventData (..),+ newMembershipDeletedEventData,++ -- ** MembershipUpdatedEventData+ MembershipUpdatedEventData (..),+ newMembershipUpdatedEventData,++ -- ** Message+ Message (..),+ newMessage,++ -- ** MessageBatchCreatedEventData+ MessageBatchCreatedEventData (..),+ newMessageBatchCreatedEventData,++ -- ** MessageBatchDeletedEventData+ MessageBatchDeletedEventData (..),+ newMessageBatchDeletedEventData,++ -- ** MessageBatchUpdatedEventData+ MessageBatchUpdatedEventData (..),+ newMessageBatchUpdatedEventData,++ -- ** MessageCreatedEventData+ MessageCreatedEventData (..),+ newMessageCreatedEventData,++ -- ** MessageDeletedEventData+ MessageDeletedEventData (..),+ newMessageDeletedEventData,++ -- ** MessageUpdatedEventData+ MessageUpdatedEventData (..),+ newMessageUpdatedEventData,++ -- ** OnClick+ OnClick (..),+ newOnClick,++ -- ** OpenLink+ OpenLink (..),+ newOpenLink,++ -- ** PermissionSetting+ PermissionSetting (..),+ newPermissionSetting,++ -- ** PermissionSettings+ PermissionSettings (..),+ newPermissionSettings,++ -- ** QuotedMessageMetadata+ QuotedMessageMetadata (..),+ newQuotedMessageMetadata,++ -- ** Reaction+ Reaction (..),+ newReaction,++ -- ** ReactionBatchCreatedEventData+ ReactionBatchCreatedEventData (..),+ newReactionBatchCreatedEventData,++ -- ** ReactionBatchDeletedEventData+ ReactionBatchDeletedEventData (..),+ newReactionBatchDeletedEventData,++ -- ** ReactionCreatedEventData+ ReactionCreatedEventData (..),+ newReactionCreatedEventData,++ -- ** ReactionDeletedEventData+ ReactionDeletedEventData (..),+ newReactionDeletedEventData,++ -- ** RichLinkMetadata+ RichLinkMetadata (..),+ newRichLinkMetadata,++ -- ** RichLinkMetadata_RichLinkType+ RichLinkMetadata_RichLinkType (..),++ -- ** SearchSpacesResponse+ SearchSpacesResponse (..),+ newSearchSpacesResponse,++ -- ** Section+ Section (..),+ newSection,++ -- ** SelectionItems+ SelectionItems (..),+ newSelectionItems,++ -- ** SetUpSpaceRequest+ SetUpSpaceRequest (..),+ newSetUpSpaceRequest,++ -- ** SlashCommand+ SlashCommand (..),+ newSlashCommand,++ -- ** SlashCommandMetadata+ SlashCommandMetadata (..),+ newSlashCommandMetadata,++ -- ** SlashCommandMetadata_Type+ SlashCommandMetadata_Type (..),++ -- ** Space+ Space (..),+ newSpace,++ -- ** Space_PredefinedPermissionSettings+ Space_PredefinedPermissionSettings (..),++ -- ** Space_SpaceHistoryState+ Space_SpaceHistoryState (..),++ -- ** Space_SpaceThreadingState+ Space_SpaceThreadingState (..),++ -- ** Space_SpaceType+ Space_SpaceType (..),++ -- ** Space_Type+ Space_Type (..),++ -- ** SpaceBatchUpdatedEventData+ SpaceBatchUpdatedEventData (..),+ newSpaceBatchUpdatedEventData,++ -- ** SpaceDataSource+ SpaceDataSource (..),+ newSpaceDataSource,++ -- ** SpaceDetails+ SpaceDetails (..),+ newSpaceDetails,++ -- ** SpaceEvent+ SpaceEvent (..),+ newSpaceEvent,++ -- ** SpaceNotificationSetting+ SpaceNotificationSetting (..),+ newSpaceNotificationSetting,++ -- ** SpaceNotificationSetting_MuteSetting+ SpaceNotificationSetting_MuteSetting (..),++ -- ** SpaceNotificationSetting_NotificationSetting+ SpaceNotificationSetting_NotificationSetting (..),++ -- ** SpaceReadState+ SpaceReadState (..),+ newSpaceReadState,++ -- ** SpaceUpdatedEventData+ SpaceUpdatedEventData (..),+ newSpaceUpdatedEventData,++ -- ** Status+ Status (..),+ newStatus,++ -- ** Status_DetailsItem+ Status_DetailsItem (..),+ newStatus_DetailsItem,++ -- ** StringInputs+ StringInputs (..),+ newStringInputs,++ -- ** TextButton+ TextButton (..),+ newTextButton,++ -- ** TextParagraph+ TextParagraph (..),+ newTextParagraph,++ -- ** Thread+ Thread (..),+ newThread,++ -- ** ThreadReadState+ ThreadReadState (..),+ newThreadReadState,++ -- ** TimeInput+ TimeInput (..),+ newTimeInput,++ -- ** TimeZone+ TimeZone (..),+ newTimeZone,++ -- ** UpdatedWidget+ UpdatedWidget (..),+ newUpdatedWidget,++ -- ** UploadAttachmentRequest+ UploadAttachmentRequest (..),+ newUploadAttachmentRequest,++ -- ** UploadAttachmentResponse+ UploadAttachmentResponse (..),+ newUploadAttachmentResponse,++ -- ** User+ User (..),+ newUser,++ -- ** User_Type+ User_Type (..),++ -- ** UserMentionMetadata+ UserMentionMetadata (..),+ newUserMentionMetadata,++ -- ** UserMentionMetadata_Type+ UserMentionMetadata_Type (..),++ -- ** WidgetMarkup+ WidgetMarkup (..),+ newWidgetMarkup,++ -- ** SpacesMessagesCreateMessageReplyOption+ SpacesMessagesCreateMessageReplyOption (..),+ )+where++import Gogol.Chat.Media.Download+import Gogol.Chat.Media.Upload+import Gogol.Chat.Spaces.CompleteImport+import Gogol.Chat.Spaces.Create+import Gogol.Chat.Spaces.Delete+import Gogol.Chat.Spaces.FindDirectMessage+import Gogol.Chat.Spaces.Get+import Gogol.Chat.Spaces.List+import Gogol.Chat.Spaces.Members.Create+import Gogol.Chat.Spaces.Members.Delete+import Gogol.Chat.Spaces.Members.Get+import Gogol.Chat.Spaces.Members.List+import Gogol.Chat.Spaces.Members.Patch+import Gogol.Chat.Spaces.Messages.Attachments.Get+import Gogol.Chat.Spaces.Messages.Create+import Gogol.Chat.Spaces.Messages.Delete+import Gogol.Chat.Spaces.Messages.Get+import Gogol.Chat.Spaces.Messages.List+import Gogol.Chat.Spaces.Messages.Patch+import Gogol.Chat.Spaces.Messages.Reactions.Create+import Gogol.Chat.Spaces.Messages.Reactions.Delete+import Gogol.Chat.Spaces.Messages.Reactions.List+import Gogol.Chat.Spaces.Messages.Update+import Gogol.Chat.Spaces.Patch+import Gogol.Chat.Spaces.Search+import Gogol.Chat.Spaces.Setup+import Gogol.Chat.Spaces.SpaceEvents.Get+import Gogol.Chat.Spaces.SpaceEvents.List+import Gogol.Chat.Types+import Gogol.Chat.Users.Spaces.GetSpaceReadState+import Gogol.Chat.Users.Spaces.SpaceNotificationSetting.Get+import Gogol.Chat.Users.Spaces.SpaceNotificationSetting.Patch+import Gogol.Chat.Users.Spaces.Threads.GetThreadReadState+import Gogol.Chat.Users.Spaces.UpdateSpaceReadState
+ gen/Gogol/Chat/Internal/Product.hs view
@@ -0,0 +1,6935 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Internal.Product+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Gogol.Chat.Internal.Product+ ( -- * AccessSettings+ AccessSettings (..),+ newAccessSettings,++ -- * AccessoryWidget+ AccessoryWidget (..),+ newAccessoryWidget,++ -- * ActionParameter+ ActionParameter (..),+ newActionParameter,++ -- * ActionResponse+ ActionResponse (..),+ newActionResponse,++ -- * ActionStatus+ ActionStatus (..),+ newActionStatus,++ -- * Annotation+ Annotation (..),+ newAnnotation,++ -- * AppCommandMetadata+ AppCommandMetadata (..),+ newAppCommandMetadata,++ -- * AttachedGif+ AttachedGif (..),+ newAttachedGif,++ -- * Attachment+ Attachment (..),+ newAttachment,++ -- * AttachmentDataRef+ AttachmentDataRef (..),+ newAttachmentDataRef,++ -- * Button+ Button (..),+ newButton,++ -- * Card+ Card (..),+ newCard,++ -- * CardAction+ CardAction (..),+ newCardAction,++ -- * CardHeader+ CardHeader (..),+ newCardHeader,++ -- * CardWithId+ CardWithId (..),+ newCardWithId,++ -- * ChatAppLogEntry+ ChatAppLogEntry (..),+ newChatAppLogEntry,++ -- * ChatClientDataSourceMarkup+ ChatClientDataSourceMarkup (..),+ newChatClientDataSourceMarkup,++ -- * ChatSpaceLinkData+ ChatSpaceLinkData (..),+ newChatSpaceLinkData,++ -- * Color+ Color (..),+ newColor,++ -- * CommonEventObject+ CommonEventObject (..),+ newCommonEventObject,++ -- * CommonEventObject_FormInputs+ CommonEventObject_FormInputs (..),+ newCommonEventObject_FormInputs,++ -- * CommonEventObject_Parameters+ CommonEventObject_Parameters (..),+ newCommonEventObject_Parameters,++ -- * CompleteImportSpaceRequest+ CompleteImportSpaceRequest (..),+ newCompleteImportSpaceRequest,++ -- * CompleteImportSpaceResponse+ CompleteImportSpaceResponse (..),+ newCompleteImportSpaceResponse,++ -- * CustomEmoji+ CustomEmoji (..),+ newCustomEmoji,++ -- * CustomEmojiMetadata+ CustomEmojiMetadata (..),+ newCustomEmojiMetadata,++ -- * DateInput+ DateInput (..),+ newDateInput,++ -- * DateTimeInput+ DateTimeInput (..),+ newDateTimeInput,++ -- * DeletionMetadata+ DeletionMetadata (..),+ newDeletionMetadata,++ -- * DeprecatedEvent+ DeprecatedEvent (..),+ newDeprecatedEvent,++ -- * Dialog+ Dialog (..),+ newDialog,++ -- * DialogAction+ DialogAction (..),+ newDialogAction,++ -- * DriveDataRef+ DriveDataRef (..),+ newDriveDataRef,++ -- * DriveLinkData+ DriveLinkData (..),+ newDriveLinkData,++ -- * Emoji+ Emoji (..),+ newEmoji,++ -- * EmojiReactionSummary+ EmojiReactionSummary (..),+ newEmojiReactionSummary,++ -- * Empty+ Empty (..),+ newEmpty,++ -- * FormAction+ FormAction (..),+ newFormAction,++ -- * GoogleAppsCardV1Action+ GoogleAppsCardV1Action (..),+ newGoogleAppsCardV1Action,++ -- * GoogleAppsCardV1ActionParameter+ GoogleAppsCardV1ActionParameter (..),+ newGoogleAppsCardV1ActionParameter,++ -- * GoogleAppsCardV1BorderStyle+ GoogleAppsCardV1BorderStyle (..),+ newGoogleAppsCardV1BorderStyle,++ -- * GoogleAppsCardV1Button+ GoogleAppsCardV1Button (..),+ newGoogleAppsCardV1Button,++ -- * GoogleAppsCardV1ButtonList+ GoogleAppsCardV1ButtonList (..),+ newGoogleAppsCardV1ButtonList,++ -- * GoogleAppsCardV1Card+ GoogleAppsCardV1Card (..),+ newGoogleAppsCardV1Card,++ -- * GoogleAppsCardV1CardAction+ GoogleAppsCardV1CardAction (..),+ newGoogleAppsCardV1CardAction,++ -- * GoogleAppsCardV1CardFixedFooter+ GoogleAppsCardV1CardFixedFooter (..),+ newGoogleAppsCardV1CardFixedFooter,++ -- * GoogleAppsCardV1CardHeader+ GoogleAppsCardV1CardHeader (..),+ newGoogleAppsCardV1CardHeader,++ -- * GoogleAppsCardV1Carousel+ GoogleAppsCardV1Carousel (..),+ newGoogleAppsCardV1Carousel,++ -- * GoogleAppsCardV1CarouselCard+ GoogleAppsCardV1CarouselCard (..),+ newGoogleAppsCardV1CarouselCard,++ -- * GoogleAppsCardV1Chip+ GoogleAppsCardV1Chip (..),+ newGoogleAppsCardV1Chip,++ -- * GoogleAppsCardV1ChipList+ GoogleAppsCardV1ChipList (..),+ newGoogleAppsCardV1ChipList,++ -- * GoogleAppsCardV1CollapseControl+ GoogleAppsCardV1CollapseControl (..),+ newGoogleAppsCardV1CollapseControl,++ -- * GoogleAppsCardV1Column+ GoogleAppsCardV1Column (..),+ newGoogleAppsCardV1Column,++ -- * GoogleAppsCardV1Columns+ GoogleAppsCardV1Columns (..),+ newGoogleAppsCardV1Columns,++ -- * GoogleAppsCardV1DateTimePicker+ GoogleAppsCardV1DateTimePicker (..),+ newGoogleAppsCardV1DateTimePicker,++ -- * GoogleAppsCardV1DecoratedText+ GoogleAppsCardV1DecoratedText (..),+ newGoogleAppsCardV1DecoratedText,++ -- * GoogleAppsCardV1Divider+ GoogleAppsCardV1Divider (..),+ newGoogleAppsCardV1Divider,++ -- * GoogleAppsCardV1Grid+ GoogleAppsCardV1Grid (..),+ newGoogleAppsCardV1Grid,++ -- * GoogleAppsCardV1GridItem+ GoogleAppsCardV1GridItem (..),+ newGoogleAppsCardV1GridItem,++ -- * GoogleAppsCardV1Icon+ GoogleAppsCardV1Icon (..),+ newGoogleAppsCardV1Icon,++ -- * GoogleAppsCardV1Image+ GoogleAppsCardV1Image (..),+ newGoogleAppsCardV1Image,++ -- * GoogleAppsCardV1ImageComponent+ GoogleAppsCardV1ImageComponent (..),+ newGoogleAppsCardV1ImageComponent,++ -- * GoogleAppsCardV1ImageCropStyle+ GoogleAppsCardV1ImageCropStyle (..),+ newGoogleAppsCardV1ImageCropStyle,++ -- * GoogleAppsCardV1MaterialIcon+ GoogleAppsCardV1MaterialIcon (..),+ newGoogleAppsCardV1MaterialIcon,++ -- * GoogleAppsCardV1NestedWidget+ GoogleAppsCardV1NestedWidget (..),+ newGoogleAppsCardV1NestedWidget,++ -- * GoogleAppsCardV1OnClick+ GoogleAppsCardV1OnClick (..),+ newGoogleAppsCardV1OnClick,++ -- * GoogleAppsCardV1OpenLink+ GoogleAppsCardV1OpenLink (..),+ newGoogleAppsCardV1OpenLink,++ -- * GoogleAppsCardV1OverflowMenu+ GoogleAppsCardV1OverflowMenu (..),+ newGoogleAppsCardV1OverflowMenu,++ -- * GoogleAppsCardV1OverflowMenuItem+ GoogleAppsCardV1OverflowMenuItem (..),+ newGoogleAppsCardV1OverflowMenuItem,++ -- * GoogleAppsCardV1PlatformDataSource+ GoogleAppsCardV1PlatformDataSource (..),+ newGoogleAppsCardV1PlatformDataSource,++ -- * GoogleAppsCardV1Section+ GoogleAppsCardV1Section (..),+ newGoogleAppsCardV1Section,++ -- * GoogleAppsCardV1SelectionInput+ GoogleAppsCardV1SelectionInput (..),+ newGoogleAppsCardV1SelectionInput,++ -- * GoogleAppsCardV1SelectionItem+ GoogleAppsCardV1SelectionItem (..),+ newGoogleAppsCardV1SelectionItem,++ -- * GoogleAppsCardV1SuggestionItem+ GoogleAppsCardV1SuggestionItem (..),+ newGoogleAppsCardV1SuggestionItem,++ -- * GoogleAppsCardV1Suggestions+ GoogleAppsCardV1Suggestions (..),+ newGoogleAppsCardV1Suggestions,++ -- * GoogleAppsCardV1SwitchControl+ GoogleAppsCardV1SwitchControl (..),+ newGoogleAppsCardV1SwitchControl,++ -- * GoogleAppsCardV1TextInput+ GoogleAppsCardV1TextInput (..),+ newGoogleAppsCardV1TextInput,++ -- * GoogleAppsCardV1TextParagraph+ GoogleAppsCardV1TextParagraph (..),+ newGoogleAppsCardV1TextParagraph,++ -- * GoogleAppsCardV1Validation+ GoogleAppsCardV1Validation (..),+ newGoogleAppsCardV1Validation,++ -- * GoogleAppsCardV1Widget+ GoogleAppsCardV1Widget (..),+ newGoogleAppsCardV1Widget,++ -- * GoogleAppsCardV1Widgets+ GoogleAppsCardV1Widgets (..),+ newGoogleAppsCardV1Widgets,++ -- * Group+ Group (..),+ newGroup,++ -- * HostAppDataSourceMarkup+ HostAppDataSourceMarkup (..),+ newHostAppDataSourceMarkup,++ -- * Image+ Image (..),+ newImage,++ -- * ImageButton+ ImageButton (..),+ newImageButton,++ -- * Inputs+ Inputs (..),+ newInputs,++ -- * KeyValue+ KeyValue (..),+ newKeyValue,++ -- * ListMembershipsResponse+ ListMembershipsResponse (..),+ newListMembershipsResponse,++ -- * ListMessagesResponse+ ListMessagesResponse (..),+ newListMessagesResponse,++ -- * ListReactionsResponse+ ListReactionsResponse (..),+ newListReactionsResponse,++ -- * ListSpaceEventsResponse+ ListSpaceEventsResponse (..),+ newListSpaceEventsResponse,++ -- * ListSpacesResponse+ ListSpacesResponse (..),+ newListSpacesResponse,++ -- * MatchedUrl+ MatchedUrl (..),+ newMatchedUrl,++ -- * Media+ Media (..),+ newMedia,++ -- * Membership+ Membership (..),+ newMembership,++ -- * MembershipBatchCreatedEventData+ MembershipBatchCreatedEventData (..),+ newMembershipBatchCreatedEventData,++ -- * MembershipBatchDeletedEventData+ MembershipBatchDeletedEventData (..),+ newMembershipBatchDeletedEventData,++ -- * MembershipBatchUpdatedEventData+ MembershipBatchUpdatedEventData (..),+ newMembershipBatchUpdatedEventData,++ -- * MembershipCount+ MembershipCount (..),+ newMembershipCount,++ -- * MembershipCreatedEventData+ MembershipCreatedEventData (..),+ newMembershipCreatedEventData,++ -- * MembershipDeletedEventData+ MembershipDeletedEventData (..),+ newMembershipDeletedEventData,++ -- * MembershipUpdatedEventData+ MembershipUpdatedEventData (..),+ newMembershipUpdatedEventData,++ -- * Message+ Message (..),+ newMessage,++ -- * MessageBatchCreatedEventData+ MessageBatchCreatedEventData (..),+ newMessageBatchCreatedEventData,++ -- * MessageBatchDeletedEventData+ MessageBatchDeletedEventData (..),+ newMessageBatchDeletedEventData,++ -- * MessageBatchUpdatedEventData+ MessageBatchUpdatedEventData (..),+ newMessageBatchUpdatedEventData,++ -- * MessageCreatedEventData+ MessageCreatedEventData (..),+ newMessageCreatedEventData,++ -- * MessageDeletedEventData+ MessageDeletedEventData (..),+ newMessageDeletedEventData,++ -- * MessageUpdatedEventData+ MessageUpdatedEventData (..),+ newMessageUpdatedEventData,++ -- * OnClick+ OnClick (..),+ newOnClick,++ -- * OpenLink+ OpenLink (..),+ newOpenLink,++ -- * PermissionSetting+ PermissionSetting (..),+ newPermissionSetting,++ -- * PermissionSettings+ PermissionSettings (..),+ newPermissionSettings,++ -- * QuotedMessageMetadata+ QuotedMessageMetadata (..),+ newQuotedMessageMetadata,++ -- * Reaction+ Reaction (..),+ newReaction,++ -- * ReactionBatchCreatedEventData+ ReactionBatchCreatedEventData (..),+ newReactionBatchCreatedEventData,++ -- * ReactionBatchDeletedEventData+ ReactionBatchDeletedEventData (..),+ newReactionBatchDeletedEventData,++ -- * ReactionCreatedEventData+ ReactionCreatedEventData (..),+ newReactionCreatedEventData,++ -- * ReactionDeletedEventData+ ReactionDeletedEventData (..),+ newReactionDeletedEventData,++ -- * RichLinkMetadata+ RichLinkMetadata (..),+ newRichLinkMetadata,++ -- * SearchSpacesResponse+ SearchSpacesResponse (..),+ newSearchSpacesResponse,++ -- * Section+ Section (..),+ newSection,++ -- * SelectionItems+ SelectionItems (..),+ newSelectionItems,++ -- * SetUpSpaceRequest+ SetUpSpaceRequest (..),+ newSetUpSpaceRequest,++ -- * SlashCommand+ SlashCommand (..),+ newSlashCommand,++ -- * SlashCommandMetadata+ SlashCommandMetadata (..),+ newSlashCommandMetadata,++ -- * Space+ Space (..),+ newSpace,++ -- * SpaceBatchUpdatedEventData+ SpaceBatchUpdatedEventData (..),+ newSpaceBatchUpdatedEventData,++ -- * SpaceDataSource+ SpaceDataSource (..),+ newSpaceDataSource,++ -- * SpaceDetails+ SpaceDetails (..),+ newSpaceDetails,++ -- * SpaceEvent+ SpaceEvent (..),+ newSpaceEvent,++ -- * SpaceNotificationSetting+ SpaceNotificationSetting (..),+ newSpaceNotificationSetting,++ -- * SpaceReadState+ SpaceReadState (..),+ newSpaceReadState,++ -- * SpaceUpdatedEventData+ SpaceUpdatedEventData (..),+ newSpaceUpdatedEventData,++ -- * Status+ Status (..),+ newStatus,++ -- * Status_DetailsItem+ Status_DetailsItem (..),+ newStatus_DetailsItem,++ -- * StringInputs+ StringInputs (..),+ newStringInputs,++ -- * TextButton+ TextButton (..),+ newTextButton,++ -- * TextParagraph+ TextParagraph (..),+ newTextParagraph,++ -- * Thread+ Thread (..),+ newThread,++ -- * ThreadReadState+ ThreadReadState (..),+ newThreadReadState,++ -- * TimeInput+ TimeInput (..),+ newTimeInput,++ -- * TimeZone+ TimeZone (..),+ newTimeZone,++ -- * UpdatedWidget+ UpdatedWidget (..),+ newUpdatedWidget,++ -- * UploadAttachmentRequest+ UploadAttachmentRequest (..),+ newUploadAttachmentRequest,++ -- * UploadAttachmentResponse+ UploadAttachmentResponse (..),+ newUploadAttachmentResponse,++ -- * User+ User (..),+ newUser,++ -- * UserMentionMetadata+ UserMentionMetadata (..),+ newUserMentionMetadata,++ -- * WidgetMarkup+ WidgetMarkup (..),+ newWidgetMarkup,+ )+where++import Gogol.Chat.Internal.Sum+import Gogol.Prelude qualified as Core++-- | Represents the <https://support.google.com/chat/answer/11971020 access setting> of the space.+--+-- /See:/ 'newAccessSettings' smart constructor.+data AccessSettings = AccessSettings+ { -- | Output only. Indicates the access state of the space.+ accessState :: (Core.Maybe AccessSettings_AccessState),+ -- | Optional. The resource name of the <https://support.google.com/a/answer/9934697 target audience> who can discover the space, join the space, and preview the messages in the space. If unset, only users or Google Groups who have been individually invited or added to the space can access it. For details, see <https://developers.google.com/workspace/chat/space-target-audience Make a space discoverable to a target audience>. Format: @audiences\/{audience}@ To use the default target audience for the Google Workspace organization, set to @audiences\/default@. Reading the target audience supports: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> with <https://support.google.com/a?p=chat-app-auth administrator approval> with the @chat.app.spaces@ scope in <https://developers.google.com/workspace/preview Developer Preview>. This field is not populated when using the+ -- @chat.bot@ scope with <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app app authentication>. Setting the target audience requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+ audience :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'AccessSettings' with the minimum fields required to make a request.+newAccessSettings ::+ AccessSettings+newAccessSettings =+ AccessSettings+ { accessState = Core.Nothing,+ audience = Core.Nothing+ }++instance Core.FromJSON AccessSettings where+ parseJSON =+ Core.withObject+ "AccessSettings"+ ( \o ->+ AccessSettings+ Core.<$> (o Core..:? "accessState")+ Core.<*> (o Core..:? "audience")+ )++instance Core.ToJSON AccessSettings where+ toJSON AccessSettings {..} =+ Core.object+ ( Core.catMaybes+ [ ("accessState" Core..=) Core.<$> accessState,+ ("audience" Core..=) Core.<$> audience+ ]+ )++-- | One or more interactive widgets that appear at the bottom of a message. For details, see <https://developers.google.com/workspace/chat/create-messages#add-accessory-widgets Add interactive widgets at the bottom of a message>.+--+-- /See:/ 'newAccessoryWidget' smart constructor.+newtype AccessoryWidget = AccessoryWidget+ { -- | A list of buttons.+ buttonList :: (Core.Maybe GoogleAppsCardV1ButtonList)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'AccessoryWidget' with the minimum fields required to make a request.+newAccessoryWidget ::+ AccessoryWidget+newAccessoryWidget = AccessoryWidget {buttonList = Core.Nothing}++instance Core.FromJSON AccessoryWidget where+ parseJSON =+ Core.withObject+ "AccessoryWidget"+ (\o -> AccessoryWidget Core.<$> (o Core..:? "buttonList"))++instance Core.ToJSON AccessoryWidget where+ toJSON AccessoryWidget {..} =+ Core.object+ (Core.catMaybes [("buttonList" Core..=) Core.<$> buttonList])++-- | List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze one day, snooze next week. You might use @action method = snooze()@, passing the snooze type and snooze time in the list of string parameters.+--+-- /See:/ 'newActionParameter' smart constructor.+data ActionParameter = ActionParameter+ { -- | The name of the parameter for the action script.+ key :: (Core.Maybe Core.Text),+ -- | The value of the parameter.+ value :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ActionParameter' with the minimum fields required to make a request.+newActionParameter ::+ ActionParameter+newActionParameter =+ ActionParameter {key = Core.Nothing, value = Core.Nothing}++instance Core.FromJSON ActionParameter where+ parseJSON =+ Core.withObject+ "ActionParameter"+ ( \o ->+ ActionParameter+ Core.<$> (o Core..:? "key")+ Core.<*> (o Core..:? "value")+ )++instance Core.ToJSON ActionParameter where+ toJSON ActionParameter {..} =+ Core.object+ ( Core.catMaybes+ [("key" Core..=) Core.<$> key, ("value" Core..=) Core.<$> value]+ )++-- | Parameters that a Chat app can use to configure how its response is posted.+--+-- /See:/ 'newActionResponse' smart constructor.+data ActionResponse = ActionResponse+ { -- | Input only. A response to an interaction event related to a <https://developers.google.com/workspace/chat/dialogs dialog>. Must be accompanied by @ResponseType.Dialog@.+ dialogAction :: (Core.Maybe DialogAction),+ -- | Input only. The type of Chat app response.+ type' :: (Core.Maybe ActionResponse_Type),+ -- | Input only. The response of the updated widget.+ updatedWidget :: (Core.Maybe UpdatedWidget),+ -- | Input only. URL for users to authenticate or configure. (Only for @REQUEST_CONFIG@ response types.)+ url :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ActionResponse' with the minimum fields required to make a request.+newActionResponse ::+ ActionResponse+newActionResponse =+ ActionResponse+ { dialogAction = Core.Nothing,+ type' = Core.Nothing,+ updatedWidget = Core.Nothing,+ url = Core.Nothing+ }++instance Core.FromJSON ActionResponse where+ parseJSON =+ Core.withObject+ "ActionResponse"+ ( \o ->+ ActionResponse+ Core.<$> (o Core..:? "dialogAction")+ Core.<*> (o Core..:? "type")+ Core.<*> (o Core..:? "updatedWidget")+ Core.<*> (o Core..:? "url")+ )++instance Core.ToJSON ActionResponse where+ toJSON ActionResponse {..} =+ Core.object+ ( Core.catMaybes+ [ ("dialogAction" Core..=) Core.<$> dialogAction,+ ("type" Core..=) Core.<$> type',+ ("updatedWidget" Core..=) Core.<$> updatedWidget,+ ("url" Core..=) Core.<$> url+ ]+ )++-- | Represents the status for a request to either invoke or submit a <https://developers.google.com/workspace/chat/dialogs dialog>.+--+-- /See:/ 'newActionStatus' smart constructor.+data ActionStatus = ActionStatus+ { -- | The status code.+ statusCode :: (Core.Maybe ActionStatus_StatusCode),+ -- | The message to send users about the status of their request. If unset, a generic message based on the @status_code@ is sent.+ userFacingMessage :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ActionStatus' with the minimum fields required to make a request.+newActionStatus ::+ ActionStatus+newActionStatus =+ ActionStatus+ { statusCode = Core.Nothing,+ userFacingMessage = Core.Nothing+ }++instance Core.FromJSON ActionStatus where+ parseJSON =+ Core.withObject+ "ActionStatus"+ ( \o ->+ ActionStatus+ Core.<$> (o Core..:? "statusCode")+ Core.<*> (o Core..:? "userFacingMessage")+ )++instance Core.ToJSON ActionStatus where+ toJSON ActionStatus {..} =+ Core.object+ ( Core.catMaybes+ [ ("statusCode" Core..=) Core.<$> statusCode,+ ("userFacingMessage" Core..=) Core.<$> userFacingMessage+ ]+ )++-- | Output only. Annotations associated with the plain-text body of the message. To add basic formatting to a text message, see <https://developers.google.com/workspace/chat/format-messages Format text messages>. Example plain-text message body: @Hello \@FooBot how are you!\"@ The corresponding annotations metadata: @\"annotations\":[{ \"type\":\"USER_MENTION\", \"startIndex\":6, \"length\":7, \"userMention\": { \"user\": { \"name\":\"users\/{user}\", \"displayName\":\"FooBot\", \"avatarUrl\":\"https:\/\/goo.gl\/aeDtrS\", \"type\":\"BOT\" }, \"type\":\"MENTION\" } }]@+--+-- /See:/ 'newAnnotation' smart constructor.+data Annotation = Annotation+ { -- | The metadata for a custom emoji.+ customEmojiMetadata :: (Core.Maybe CustomEmojiMetadata),+ -- | Length of the substring in the plain-text message body this annotation corresponds to.+ length :: (Core.Maybe Core.Int32),+ -- | The metadata for a rich link.+ richLinkMetadata :: (Core.Maybe RichLinkMetadata),+ -- | The metadata for a slash command.+ slashCommand :: (Core.Maybe SlashCommandMetadata),+ -- | Start index (0-based, inclusive) in the plain-text message body this annotation corresponds to.+ startIndex :: (Core.Maybe Core.Int32),+ -- | The type of this annotation.+ type' :: (Core.Maybe Annotation_Type),+ -- | The metadata of user mention.+ userMention :: (Core.Maybe UserMentionMetadata)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Annotation' with the minimum fields required to make a request.+newAnnotation ::+ Annotation+newAnnotation =+ Annotation+ { customEmojiMetadata = Core.Nothing,+ length = Core.Nothing,+ richLinkMetadata = Core.Nothing,+ slashCommand = Core.Nothing,+ startIndex = Core.Nothing,+ type' = Core.Nothing,+ userMention = Core.Nothing+ }++instance Core.FromJSON Annotation where+ parseJSON =+ Core.withObject+ "Annotation"+ ( \o ->+ Annotation+ Core.<$> (o Core..:? "customEmojiMetadata")+ Core.<*> (o Core..:? "length")+ Core.<*> (o Core..:? "richLinkMetadata")+ Core.<*> (o Core..:? "slashCommand")+ Core.<*> (o Core..:? "startIndex")+ Core.<*> (o Core..:? "type")+ Core.<*> (o Core..:? "userMention")+ )++instance Core.ToJSON Annotation where+ toJSON Annotation {..} =+ Core.object+ ( Core.catMaybes+ [ ("customEmojiMetadata" Core..=) Core.<$> customEmojiMetadata,+ ("length" Core..=) Core.<$> length,+ ("richLinkMetadata" Core..=) Core.<$> richLinkMetadata,+ ("slashCommand" Core..=) Core.<$> slashCommand,+ ("startIndex" Core..=) Core.<$> startIndex,+ ("type" Core..=) Core.<$> type',+ ("userMention" Core..=) Core.<$> userMention+ ]+ )++-- | Metadata about a <https://developers.google.com/workspace/chat/commands Chat app command>.+--+-- /See:/ 'newAppCommandMetadata' smart constructor.+data AppCommandMetadata = AppCommandMetadata+ { -- | The ID for the command specified in the Chat API configuration.+ appCommandId :: (Core.Maybe Core.Int32),+ -- | The type of Chat app command.+ appCommandType :: (Core.Maybe AppCommandMetadata_AppCommandType)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'AppCommandMetadata' with the minimum fields required to make a request.+newAppCommandMetadata ::+ AppCommandMetadata+newAppCommandMetadata =+ AppCommandMetadata+ { appCommandId = Core.Nothing,+ appCommandType = Core.Nothing+ }++instance Core.FromJSON AppCommandMetadata where+ parseJSON =+ Core.withObject+ "AppCommandMetadata"+ ( \o ->+ AppCommandMetadata+ Core.<$> (o Core..:? "appCommandId")+ Core.<*> (o Core..:? "appCommandType")+ )++instance Core.ToJSON AppCommandMetadata where+ toJSON AppCommandMetadata {..} =+ Core.object+ ( Core.catMaybes+ [ ("appCommandId" Core..=) Core.<$> appCommandId,+ ("appCommandType" Core..=) Core.<$> appCommandType+ ]+ )++-- | A GIF image that\'s specified by a URL.+--+-- /See:/ 'newAttachedGif' smart constructor.+newtype AttachedGif = AttachedGif+ { -- | Output only. The URL that hosts the GIF image.+ uri :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'AttachedGif' with the minimum fields required to make a request.+newAttachedGif ::+ AttachedGif+newAttachedGif = AttachedGif {uri = Core.Nothing}++instance Core.FromJSON AttachedGif where+ parseJSON =+ Core.withObject+ "AttachedGif"+ (\o -> AttachedGif Core.<$> (o Core..:? "uri"))++instance Core.ToJSON AttachedGif where+ toJSON AttachedGif {..} =+ Core.object (Core.catMaybes [("uri" Core..=) Core.<$> uri])++-- | An attachment in Google Chat.+--+-- /See:/ 'newAttachment' smart constructor.+data Attachment = Attachment+ { -- | Optional. A reference to the attachment data. This field is used to create or update messages with attachments, or with the media API to download the attachment data.+ attachmentDataRef :: (Core.Maybe AttachmentDataRef),+ -- | Output only. The original file name for the content, not the full path.+ contentName :: (Core.Maybe Core.Text),+ -- | Output only. The content type (MIME type) of the file.+ contentType :: (Core.Maybe Core.Text),+ -- | Output only. The download URL which should be used to allow a human user to download the attachment. Chat apps shouldn\'t use this URL to download attachment content.+ downloadUri :: (Core.Maybe Core.Text),+ -- | Output only. A reference to the Google Drive attachment. This field is used with the Google Drive API.+ driveDataRef :: (Core.Maybe DriveDataRef),+ -- | Optional. Resource name of the attachment, in the form @spaces\/{space}\/messages\/{message}\/attachments\/{attachment}@.+ name :: (Core.Maybe Core.Text),+ -- | Output only. The source of the attachment.+ source :: (Core.Maybe Attachment_Source),+ -- | Output only. The thumbnail URL which should be used to preview the attachment to a human user. Chat apps shouldn\'t use this URL to download attachment content.+ thumbnailUri :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Attachment' with the minimum fields required to make a request.+newAttachment ::+ Attachment+newAttachment =+ Attachment+ { attachmentDataRef = Core.Nothing,+ contentName = Core.Nothing,+ contentType = Core.Nothing,+ downloadUri = Core.Nothing,+ driveDataRef = Core.Nothing,+ name = Core.Nothing,+ source = Core.Nothing,+ thumbnailUri = Core.Nothing+ }++instance Core.FromJSON Attachment where+ parseJSON =+ Core.withObject+ "Attachment"+ ( \o ->+ Attachment+ Core.<$> (o Core..:? "attachmentDataRef")+ Core.<*> (o Core..:? "contentName")+ Core.<*> (o Core..:? "contentType")+ Core.<*> (o Core..:? "downloadUri")+ Core.<*> (o Core..:? "driveDataRef")+ Core.<*> (o Core..:? "name")+ Core.<*> (o Core..:? "source")+ Core.<*> (o Core..:? "thumbnailUri")+ )++instance Core.ToJSON Attachment where+ toJSON Attachment {..} =+ Core.object+ ( Core.catMaybes+ [ ("attachmentDataRef" Core..=) Core.<$> attachmentDataRef,+ ("contentName" Core..=) Core.<$> contentName,+ ("contentType" Core..=) Core.<$> contentType,+ ("downloadUri" Core..=) Core.<$> downloadUri,+ ("driveDataRef" Core..=) Core.<$> driveDataRef,+ ("name" Core..=) Core.<$> name,+ ("source" Core..=) Core.<$> source,+ ("thumbnailUri" Core..=) Core.<$> thumbnailUri+ ]+ )++-- | A reference to the attachment data.+--+-- /See:/ 'newAttachmentDataRef' smart constructor.+data AttachmentDataRef = AttachmentDataRef+ { -- | Optional. Opaque token containing a reference to an uploaded attachment. Treated by clients as an opaque string and used to create or update Chat messages with attachments.+ attachmentUploadToken :: (Core.Maybe Core.Text),+ -- | Optional. The resource name of the attachment data. This field is used with the media API to download the attachment data.+ resourceName :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'AttachmentDataRef' with the minimum fields required to make a request.+newAttachmentDataRef ::+ AttachmentDataRef+newAttachmentDataRef =+ AttachmentDataRef+ { attachmentUploadToken = Core.Nothing,+ resourceName = Core.Nothing+ }++instance Core.FromJSON AttachmentDataRef where+ parseJSON =+ Core.withObject+ "AttachmentDataRef"+ ( \o ->+ AttachmentDataRef+ Core.<$> (o Core..:? "attachmentUploadToken")+ Core.<*> (o Core..:? "resourceName")+ )++instance Core.ToJSON AttachmentDataRef where+ toJSON AttachmentDataRef {..} =+ Core.object+ ( Core.catMaybes+ [ ("attachmentUploadToken" Core..=) Core.<$> attachmentUploadToken,+ ("resourceName" Core..=) Core.<$> resourceName+ ]+ )++-- | A button. Can be a text button or an image button.+--+-- /See:/ 'newButton' smart constructor.+data Button = Button+ { -- | A button with image and @onclick@ action.+ imageButton :: (Core.Maybe ImageButton),+ -- | A button with text and @onclick@ action.+ textButton :: (Core.Maybe TextButton)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Button' with the minimum fields required to make a request.+newButton ::+ Button+newButton =+ Button {imageButton = Core.Nothing, textButton = Core.Nothing}++instance Core.FromJSON Button where+ parseJSON =+ Core.withObject+ "Button"+ ( \o ->+ Button+ Core.<$> (o Core..:? "imageButton")+ Core.<*> (o Core..:? "textButton")+ )++instance Core.ToJSON Button where+ toJSON Button {..} =+ Core.object+ ( Core.catMaybes+ [ ("imageButton" Core..=) Core.<$> imageButton,+ ("textButton" Core..=) Core.<$> textButton+ ]+ )++-- | A card is a UI element that can contain UI widgets such as text and images.+--+-- /See:/ 'newCard' smart constructor.+data Card = Card+ { -- | The actions of this card.+ cardActions :: (Core.Maybe [CardAction]),+ -- | The header of the card. A header usually contains a title and an image.+ header :: (Core.Maybe CardHeader),+ -- | Name of the card.+ name :: (Core.Maybe Core.Text),+ -- | Sections are separated by a line divider.+ sections :: (Core.Maybe [Section])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Card' with the minimum fields required to make a request.+newCard ::+ Card+newCard =+ Card+ { cardActions = Core.Nothing,+ header = Core.Nothing,+ name = Core.Nothing,+ sections = Core.Nothing+ }++instance Core.FromJSON Card where+ parseJSON =+ Core.withObject+ "Card"+ ( \o ->+ Card+ Core.<$> (o Core..:? "cardActions")+ Core.<*> (o Core..:? "header")+ Core.<*> (o Core..:? "name")+ Core.<*> (o Core..:? "sections")+ )++instance Core.ToJSON Card where+ toJSON Card {..} =+ Core.object+ ( Core.catMaybes+ [ ("cardActions" Core..=) Core.<$> cardActions,+ ("header" Core..=) Core.<$> header,+ ("name" Core..=) Core.<$> name,+ ("sections" Core..=) Core.<$> sections+ ]+ )++-- | A card action is the action associated with the card. For an invoice card, a typical action would be: delete invoice, email invoice or open the invoice in browser. Not supported by Google Chat apps.+--+-- /See:/ 'newCardAction' smart constructor.+data CardAction = CardAction+ { -- | The label used to be displayed in the action menu item.+ actionLabel :: (Core.Maybe Core.Text),+ -- | The onclick action for this action item.+ onClick :: (Core.Maybe OnClick)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CardAction' with the minimum fields required to make a request.+newCardAction ::+ CardAction+newCardAction =+ CardAction {actionLabel = Core.Nothing, onClick = Core.Nothing}++instance Core.FromJSON CardAction where+ parseJSON =+ Core.withObject+ "CardAction"+ ( \o ->+ CardAction+ Core.<$> (o Core..:? "actionLabel")+ Core.<*> (o Core..:? "onClick")+ )++instance Core.ToJSON CardAction where+ toJSON CardAction {..} =+ Core.object+ ( Core.catMaybes+ [ ("actionLabel" Core..=) Core.<$> actionLabel,+ ("onClick" Core..=) Core.<$> onClick+ ]+ )++--+-- /See:/ 'newCardHeader' smart constructor.+data CardHeader = CardHeader+ { -- | The image\'s type (for example, square border or circular border).+ imageStyle :: (Core.Maybe CardHeader_ImageStyle),+ -- | The URL of the image in the card header.+ imageUrl :: (Core.Maybe Core.Text),+ -- | The subtitle of the card header.+ subtitle :: (Core.Maybe Core.Text),+ -- | The title must be specified. The header has a fixed height: if both a title and subtitle is specified, each takes up one line. If only the title is specified, it takes up both lines.+ title :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CardHeader' with the minimum fields required to make a request.+newCardHeader ::+ CardHeader+newCardHeader =+ CardHeader+ { imageStyle = Core.Nothing,+ imageUrl = Core.Nothing,+ subtitle = Core.Nothing,+ title = Core.Nothing+ }++instance Core.FromJSON CardHeader where+ parseJSON =+ Core.withObject+ "CardHeader"+ ( \o ->+ CardHeader+ Core.<$> (o Core..:? "imageStyle")+ Core.<*> (o Core..:? "imageUrl")+ Core.<*> (o Core..:? "subtitle")+ Core.<*> (o Core..:? "title")+ )++instance Core.ToJSON CardHeader where+ toJSON CardHeader {..} =+ Core.object+ ( Core.catMaybes+ [ ("imageStyle" Core..=) Core.<$> imageStyle,+ ("imageUrl" Core..=) Core.<$> imageUrl,+ ("subtitle" Core..=) Core.<$> subtitle,+ ("title" Core..=) Core.<$> title+ ]+ )++-- | A <https://developers.google.com/workspace/chat/api/reference/rest/v1/cards card> in a Google Chat message. Only Chat apps can create cards. If your Chat app <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user authenticates as a user>, the message can\'t contain cards. <https://addons.gsuite.google.com/uikit/builder Card builder>+--+-- /See:/ 'newCardWithId' smart constructor.+data CardWithId = CardWithId+ { -- | A card. Maximum size is 32 KB.+ card :: (Core.Maybe GoogleAppsCardV1Card),+ -- | Required if the message contains multiple cards. A unique identifier for a card in a message.+ cardId :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CardWithId' with the minimum fields required to make a request.+newCardWithId ::+ CardWithId+newCardWithId =+ CardWithId {card = Core.Nothing, cardId = Core.Nothing}++instance Core.FromJSON CardWithId where+ parseJSON =+ Core.withObject+ "CardWithId"+ ( \o ->+ CardWithId+ Core.<$> (o Core..:? "card")+ Core.<*> (o Core..:? "cardId")+ )++instance Core.ToJSON CardWithId where+ toJSON CardWithId {..} =+ Core.object+ ( Core.catMaybes+ [ ("card" Core..=) Core.<$> card,+ ("cardId" Core..=) Core.<$> cardId+ ]+ )++-- | JSON payload of error messages. If the Cloud Logging API is enabled, these error messages are logged to <https://cloud.google.com/logging/docs Google Cloud Logging>.+--+-- /See:/ 'newChatAppLogEntry' smart constructor.+data ChatAppLogEntry = ChatAppLogEntry+ { -- | The deployment that caused the error. For Chat apps built in Apps Script, this is the deployment ID defined by Apps Script.+ deployment :: (Core.Maybe Core.Text),+ -- | The unencrypted @callback_method@ name that was running when the error was encountered.+ deploymentFunction :: (Core.Maybe Core.Text),+ -- | The error code and message.+ error :: (Core.Maybe Status)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatAppLogEntry' with the minimum fields required to make a request.+newChatAppLogEntry ::+ ChatAppLogEntry+newChatAppLogEntry =+ ChatAppLogEntry+ { deployment = Core.Nothing,+ deploymentFunction = Core.Nothing,+ error = Core.Nothing+ }++instance Core.FromJSON ChatAppLogEntry where+ parseJSON =+ Core.withObject+ "ChatAppLogEntry"+ ( \o ->+ ChatAppLogEntry+ Core.<$> (o Core..:? "deployment")+ Core.<*> (o Core..:? "deploymentFunction")+ Core.<*> (o Core..:? "error")+ )++instance Core.ToJSON ChatAppLogEntry where+ toJSON ChatAppLogEntry {..} =+ Core.object+ ( Core.catMaybes+ [ ("deployment" Core..=) Core.<$> deployment,+ ("deploymentFunction" Core..=) Core.<$> deploymentFunction,+ ("error" Core..=) Core.<$> error+ ]+ )++-- | For a @SelectionInput@ widget that uses a multiselect menu, a data source from Google Chat. The data source populates selection items for the multiselect menu. For example, a user can select Google Chat spaces that they\'re a member of. <https://developers.google.com/workspace/chat Google Chat apps>:+--+-- /See:/ 'newChatClientDataSourceMarkup' smart constructor.+newtype ChatClientDataSourceMarkup = ChatClientDataSourceMarkup+ { -- | Google Chat spaces that the user is a member of.+ spaceDataSource :: (Core.Maybe SpaceDataSource)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatClientDataSourceMarkup' with the minimum fields required to make a request.+newChatClientDataSourceMarkup ::+ ChatClientDataSourceMarkup+newChatClientDataSourceMarkup =+ ChatClientDataSourceMarkup {spaceDataSource = Core.Nothing}++instance Core.FromJSON ChatClientDataSourceMarkup where+ parseJSON =+ Core.withObject+ "ChatClientDataSourceMarkup"+ ( \o ->+ ChatClientDataSourceMarkup Core.<$> (o Core..:? "spaceDataSource")+ )++instance Core.ToJSON ChatClientDataSourceMarkup where+ toJSON ChatClientDataSourceMarkup {..} =+ Core.object+ ( Core.catMaybes+ [("spaceDataSource" Core..=) Core.<$> spaceDataSource]+ )++-- | Data for Chat space links.+--+-- /See:/ 'newChatSpaceLinkData' smart constructor.+data ChatSpaceLinkData = ChatSpaceLinkData+ { -- | The message of the linked Chat space resource. Format: @spaces\/{space}\/messages\/{message}@+ message :: (Core.Maybe Core.Text),+ -- | The space of the linked Chat space resource. Format: @spaces\/{space}@+ space :: (Core.Maybe Core.Text),+ -- | The thread of the linked Chat space resource. Format: @spaces\/{space}\/threads\/{thread}@+ thread :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpaceLinkData' with the minimum fields required to make a request.+newChatSpaceLinkData ::+ ChatSpaceLinkData+newChatSpaceLinkData =+ ChatSpaceLinkData+ { message = Core.Nothing,+ space = Core.Nothing,+ thread = Core.Nothing+ }++instance Core.FromJSON ChatSpaceLinkData where+ parseJSON =+ Core.withObject+ "ChatSpaceLinkData"+ ( \o ->+ ChatSpaceLinkData+ Core.<$> (o Core..:? "message")+ Core.<*> (o Core..:? "space")+ Core.<*> (o Core..:? "thread")+ )++instance Core.ToJSON ChatSpaceLinkData where+ toJSON ChatSpaceLinkData {..} =+ Core.object+ ( Core.catMaybes+ [ ("message" Core..=) Core.<$> message,+ ("space" Core..=) Core.<$> space,+ ("thread" Core..=) Core.<$> thread+ ]+ )++-- | Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to and from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of @java.awt.Color@ in Java; it can also be trivially provided to UIColor\'s @+colorWithRed:green:blue:alpha@ method in iOS; and, with just a little work, it can be easily formatted into a CSS @rgba()@ string in JavaScript. This reference page doesn\'t have information about the absolute color space that should be used to interpret the RGB value—for example, sRGB, Adobe RGB, DCI-P3, and BT.2020. By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most @1e-5@. Example (Java): import com.google.type.Color; \/\/ ... public static java.awt.Color fromProto(Color+-- protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red \/ denominator) .setGreen(green \/ denominator) .setBlue(blue \/ denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) \/ denominator) .build()); } return resultBuilder.build(); } \/\/ ... Example (iOS \/ Obj-C): \/\/ ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha/wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha/wrapper != nil) { alpha = [alpha/wrapper value]; }+-- return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha \<= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } \/\/ ... Example (JavaScript): \/\/ ... var protoToCssColor = function(rgb/color) { var redFrac = rgb/color.red || 0.0; var greenFrac = rgb/color.green || 0.0; var blueFrac = rgb/color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!(\'alpha\' in rgb/color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(\',\'); return [\'rgba(\', rgbParams, \',\', alphaFrac, \')\'].join(\'\'); }; var rgbToCssColor =+-- function(red, green, blue) { var rgbNumber = new Number((red \<\< 16) | (green \<\< 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = [\'#\']; for (var i = 0; i \< missingZeros; i++) { resultBuilder.push(\'0\'); } resultBuilder.push(hexString); return resultBuilder.join(\'\'); }; \/\/ ...+--+-- /See:/ 'newColor' smart constructor.+data Color = Color+ { -- | The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: @pixel color = alpha * (this color) + (1.0 - alpha) * (background color)@ This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).+ alpha :: (Core.Maybe Core.Double),+ -- | The amount of blue in the color as a value in the interval [0, 1].+ blue :: (Core.Maybe Core.Double),+ -- | The amount of green in the color as a value in the interval [0, 1].+ green :: (Core.Maybe Core.Double),+ -- | The amount of red in the color as a value in the interval [0, 1].+ red :: (Core.Maybe Core.Double)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Color' with the minimum fields required to make a request.+newColor ::+ Color+newColor =+ Color+ { alpha = Core.Nothing,+ blue = Core.Nothing,+ green = Core.Nothing,+ red = Core.Nothing+ }++instance Core.FromJSON Color where+ parseJSON =+ Core.withObject+ "Color"+ ( \o ->+ Color+ Core.<$> (o Core..:? "alpha")+ Core.<*> (o Core..:? "blue")+ Core.<*> (o Core..:? "green")+ Core.<*> (o Core..:? "red")+ )++instance Core.ToJSON Color where+ toJSON Color {..} =+ Core.object+ ( Core.catMaybes+ [ ("alpha" Core..=) Core.<$> alpha,+ ("blue" Core..=) Core.<$> blue,+ ("green" Core..=) Core.<$> green,+ ("red" Core..=) Core.<$> red+ ]+ )++-- | Represents information about the user\'s client, such as locale, host app, and platform. For Chat apps, @CommonEventObject@ includes data submitted by users interacting with cards, like data entered in <https://developers.google.com/chat/how-tos/dialogs dialogs>.+--+-- /See:/ 'newCommonEventObject' smart constructor.+data CommonEventObject = CommonEventObject+ { -- | A map containing the values that a user inputs in a widget from a card or dialog. The map keys are the string IDs assigned to each widget, and the values represent inputs to the widget. For details, see <https://developers.google.com/chat/ui/read-form-data Process information inputted by users>.+ formInputs :: (Core.Maybe CommonEventObject_FormInputs),+ -- | The hostApp enum which indicates the app the add-on is invoked from. Always @CHAT@ for Chat apps.+ hostApp :: (Core.Maybe CommonEventObject_HostApp),+ -- | Name of the invoked function associated with the widget. Only set for Chat apps.+ invokedFunction :: (Core.Maybe Core.Text),+ -- | Custom </chat/api/reference/rest/v1/cards#ActionParameter parameters> passed to the invoked function. Both keys and values must be strings.+ parameters :: (Core.Maybe CommonEventObject_Parameters),+ -- | The platform enum which indicates the platform where the event originates (@WEB@, @IOS@, or @ANDROID@). Not supported by Chat apps.+ platform :: (Core.Maybe CommonEventObject_Platform),+ -- | The timezone ID and offset from Coordinated Universal Time (UTC). Only supported for the event types <https://developers.google.com/chat/api/reference/rest/v1/EventType#ENUM_VALUES.CARD_CLICKED CARD_CLICKED> and <https://developers.google.com/chat/api/reference/rest/v1/DialogEventType#ENUM_VALUES.SUBMIT_DIALOG SUBMIT_DIALOG>.+ timeZone :: (Core.Maybe TimeZone),+ -- | The full @locale.displayName@ in the format of [ISO 639 language code]-[ISO 3166 country\/region code] such as \"en-US\".+ userLocale :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CommonEventObject' with the minimum fields required to make a request.+newCommonEventObject ::+ CommonEventObject+newCommonEventObject =+ CommonEventObject+ { formInputs = Core.Nothing,+ hostApp = Core.Nothing,+ invokedFunction = Core.Nothing,+ parameters = Core.Nothing,+ platform = Core.Nothing,+ timeZone = Core.Nothing,+ userLocale = Core.Nothing+ }++instance Core.FromJSON CommonEventObject where+ parseJSON =+ Core.withObject+ "CommonEventObject"+ ( \o ->+ CommonEventObject+ Core.<$> (o Core..:? "formInputs")+ Core.<*> (o Core..:? "hostApp")+ Core.<*> (o Core..:? "invokedFunction")+ Core.<*> (o Core..:? "parameters")+ Core.<*> (o Core..:? "platform")+ Core.<*> (o Core..:? "timeZone")+ Core.<*> (o Core..:? "userLocale")+ )++instance Core.ToJSON CommonEventObject where+ toJSON CommonEventObject {..} =+ Core.object+ ( Core.catMaybes+ [ ("formInputs" Core..=) Core.<$> formInputs,+ ("hostApp" Core..=) Core.<$> hostApp,+ ("invokedFunction" Core..=) Core.<$> invokedFunction,+ ("parameters" Core..=) Core.<$> parameters,+ ("platform" Core..=) Core.<$> platform,+ ("timeZone" Core..=) Core.<$> timeZone,+ ("userLocale" Core..=) Core.<$> userLocale+ ]+ )++-- | A map containing the values that a user inputs in a widget from a card or dialog. The map keys are the string IDs assigned to each widget, and the values represent inputs to the widget. For details, see <https://developers.google.com/chat/ui/read-form-data Process information inputted by users>.+--+-- /See:/ 'newCommonEventObject_FormInputs' smart constructor.+newtype CommonEventObject_FormInputs = CommonEventObject_FormInputs+ { additional :: (Core.HashMap Core.Text Inputs)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CommonEventObject_FormInputs' with the minimum fields required to make a request.+newCommonEventObject_FormInputs ::+ -- | See 'additional'.+ Core.HashMap Core.Text Inputs ->+ CommonEventObject_FormInputs+newCommonEventObject_FormInputs additional =+ CommonEventObject_FormInputs {additional = additional}++instance Core.FromJSON CommonEventObject_FormInputs where+ parseJSON =+ Core.withObject+ "CommonEventObject_FormInputs"+ ( \o ->+ CommonEventObject_FormInputs Core.<$> (Core.parseJSONObject o)+ )++instance Core.ToJSON CommonEventObject_FormInputs where+ toJSON CommonEventObject_FormInputs {..} = Core.toJSON additional++-- | Custom </chat/api/reference/rest/v1/cards#ActionParameter parameters> passed to the invoked function. Both keys and values must be strings.+--+-- /See:/ 'newCommonEventObject_Parameters' smart constructor.+newtype CommonEventObject_Parameters = CommonEventObject_Parameters+ { additional :: (Core.HashMap Core.Text Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CommonEventObject_Parameters' with the minimum fields required to make a request.+newCommonEventObject_Parameters ::+ -- | See 'additional'.+ Core.HashMap Core.Text Core.Text ->+ CommonEventObject_Parameters+newCommonEventObject_Parameters additional =+ CommonEventObject_Parameters {additional = additional}++instance Core.FromJSON CommonEventObject_Parameters where+ parseJSON =+ Core.withObject+ "CommonEventObject_Parameters"+ ( \o ->+ CommonEventObject_Parameters Core.<$> (Core.parseJSONObject o)+ )++instance Core.ToJSON CommonEventObject_Parameters where+ toJSON CommonEventObject_Parameters {..} = Core.toJSON additional++-- | Request message for completing the import process for a space.+--+-- /See:/ 'newCompleteImportSpaceRequest' smart constructor.+data CompleteImportSpaceRequest = CompleteImportSpaceRequest+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CompleteImportSpaceRequest' with the minimum fields required to make a request.+newCompleteImportSpaceRequest ::+ CompleteImportSpaceRequest+newCompleteImportSpaceRequest = CompleteImportSpaceRequest++instance Core.FromJSON CompleteImportSpaceRequest where+ parseJSON =+ Core.withObject+ "CompleteImportSpaceRequest"+ (\o -> Core.pure CompleteImportSpaceRequest)++instance Core.ToJSON CompleteImportSpaceRequest where+ toJSON = Core.const Core.emptyObject++-- | Response message for completing the import process for a space.+--+-- /See:/ 'newCompleteImportSpaceResponse' smart constructor.+newtype CompleteImportSpaceResponse = CompleteImportSpaceResponse+ { -- | The import mode space.+ space :: (Core.Maybe Space)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CompleteImportSpaceResponse' with the minimum fields required to make a request.+newCompleteImportSpaceResponse ::+ CompleteImportSpaceResponse+newCompleteImportSpaceResponse =+ CompleteImportSpaceResponse {space = Core.Nothing}++instance Core.FromJSON CompleteImportSpaceResponse where+ parseJSON =+ Core.withObject+ "CompleteImportSpaceResponse"+ (\o -> CompleteImportSpaceResponse Core.<$> (o Core..:? "space"))++instance Core.ToJSON CompleteImportSpaceResponse where+ toJSON CompleteImportSpaceResponse {..} =+ Core.object (Core.catMaybes [("space" Core..=) Core.<$> space])++-- | Represents a custom emoji.+--+-- /See:/ 'newCustomEmoji' smart constructor.+newtype CustomEmoji = CustomEmoji+ { -- | Output only. Unique key for the custom emoji resource.+ uid :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CustomEmoji' with the minimum fields required to make a request.+newCustomEmoji ::+ CustomEmoji+newCustomEmoji = CustomEmoji {uid = Core.Nothing}++instance Core.FromJSON CustomEmoji where+ parseJSON =+ Core.withObject+ "CustomEmoji"+ (\o -> CustomEmoji Core.<$> (o Core..:? "uid"))++instance Core.ToJSON CustomEmoji where+ toJSON CustomEmoji {..} =+ Core.object (Core.catMaybes [("uid" Core..=) Core.<$> uid])++-- | Annotation metadata for custom emoji.+--+-- /See:/ 'newCustomEmojiMetadata' smart constructor.+newtype CustomEmojiMetadata = CustomEmojiMetadata+ { -- | The custom emoji.+ customEmoji :: (Core.Maybe CustomEmoji)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'CustomEmojiMetadata' with the minimum fields required to make a request.+newCustomEmojiMetadata ::+ CustomEmojiMetadata+newCustomEmojiMetadata =+ CustomEmojiMetadata {customEmoji = Core.Nothing}++instance Core.FromJSON CustomEmojiMetadata where+ parseJSON =+ Core.withObject+ "CustomEmojiMetadata"+ (\o -> CustomEmojiMetadata Core.<$> (o Core..:? "customEmoji"))++instance Core.ToJSON CustomEmojiMetadata where+ toJSON CustomEmojiMetadata {..} =+ Core.object+ (Core.catMaybes [("customEmoji" Core..=) Core.<$> customEmoji])++-- | Date input values.+--+-- /See:/ 'newDateInput' smart constructor.+newtype DateInput = DateInput+ { -- | Time since epoch time, in milliseconds.+ msSinceEpoch :: (Core.Maybe Core.Int64)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'DateInput' with the minimum fields required to make a request.+newDateInput ::+ DateInput+newDateInput = DateInput {msSinceEpoch = Core.Nothing}++instance Core.FromJSON DateInput where+ parseJSON =+ Core.withObject+ "DateInput"+ ( \o ->+ DateInput+ Core.<$> (o Core..:? "msSinceEpoch" Core.<&> Core.fmap Core.fromAsText)+ )++instance Core.ToJSON DateInput where+ toJSON DateInput {..} =+ Core.object+ ( Core.catMaybes+ [ ("msSinceEpoch" Core..=)+ Core.. Core.AsText+ Core.<$> msSinceEpoch+ ]+ )++-- | Date and time input values.+--+-- /See:/ 'newDateTimeInput' smart constructor.+data DateTimeInput = DateTimeInput+ { -- | Whether the @datetime@ input includes a calendar date.+ hasDate :: (Core.Maybe Core.Bool),+ -- | Whether the @datetime@ input includes a timestamp.+ hasTime :: (Core.Maybe Core.Bool),+ -- | Time since epoch time, in milliseconds.+ msSinceEpoch :: (Core.Maybe Core.Int64)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'DateTimeInput' with the minimum fields required to make a request.+newDateTimeInput ::+ DateTimeInput+newDateTimeInput =+ DateTimeInput+ { hasDate = Core.Nothing,+ hasTime = Core.Nothing,+ msSinceEpoch = Core.Nothing+ }++instance Core.FromJSON DateTimeInput where+ parseJSON =+ Core.withObject+ "DateTimeInput"+ ( \o ->+ DateTimeInput+ Core.<$> (o Core..:? "hasDate")+ Core.<*> (o Core..:? "hasTime")+ Core.<*> (o Core..:? "msSinceEpoch" Core.<&> Core.fmap Core.fromAsText)+ )++instance Core.ToJSON DateTimeInput where+ toJSON DateTimeInput {..} =+ Core.object+ ( Core.catMaybes+ [ ("hasDate" Core..=) Core.<$> hasDate,+ ("hasTime" Core..=) Core.<$> hasTime,+ ("msSinceEpoch" Core..=) Core.. Core.AsText Core.<$> msSinceEpoch+ ]+ )++-- | Information about a deleted message. A message is deleted when @delete_time@ is set.+--+-- /See:/ 'newDeletionMetadata' smart constructor.+newtype DeletionMetadata = DeletionMetadata+ { -- | Indicates who deleted the message.+ deletionType :: (Core.Maybe DeletionMetadata_DeletionType)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'DeletionMetadata' with the minimum fields required to make a request.+newDeletionMetadata ::+ DeletionMetadata+newDeletionMetadata = DeletionMetadata {deletionType = Core.Nothing}++instance Core.FromJSON DeletionMetadata where+ parseJSON =+ Core.withObject+ "DeletionMetadata"+ (\o -> DeletionMetadata Core.<$> (o Core..:? "deletionType"))++instance Core.ToJSON DeletionMetadata where+ toJSON DeletionMetadata {..} =+ Core.object+ (Core.catMaybes [("deletionType" Core..=) Core.<$> deletionType])++-- | A Google Chat app interaction event that represents and contains data about a user\'s interaction with a Chat app. To configure your Chat app to receive interaction events, see <https://developers.google.com/workspace/chat/receive-respond-interactions Receive and respond to user interactions>. In addition to receiving events from user interactions, Chat apps can receive events about changes to spaces, such as when a new member is added to a space. To learn about space events, see <https://developers.google.com/workspace/chat/events-overview Work with events from Google Chat>.+--+-- /See:/ 'newDeprecatedEvent' smart constructor.+data DeprecatedEvent = DeprecatedEvent+ { -- | For @CARD_CLICKED@ interaction events, the form action data associated when a user clicks a card or dialog. To learn more, see <https://developers.google.com/workspace/chat/read-form-data Read form data input by users on cards>.+ action :: (Core.Maybe FormAction),+ -- | Metadata about a Chat app command.+ appCommandMetadata :: (Core.Maybe AppCommandMetadata),+ -- | Represents information about the user\'s client, such as locale, host app, and platform. For Chat apps, @CommonEventObject@ includes information submitted by users interacting with <https://developers.google.com/workspace/chat/dialogs dialogs>, like data entered on a card.+ common :: (Core.Maybe CommonEventObject),+ -- | This URL is populated for @MESSAGE@, @ADDED_TO_SPACE@, and @APP_COMMAND@ interaction events. After completing an authorization or configuration flow outside of Google Chat, users must be redirected to this URL to signal to Google Chat that the authorization or configuration flow was successful. For more information, see <https://developers.google.com/workspace/chat/connect-web-services-tools Connect a Chat app with other services and tools>.+ configCompleteRedirectUrl :: (Core.Maybe Core.Text),+ -- | The type of <https://developers.google.com/workspace/chat/dialogs dialog> interaction event received.+ dialogEventType :: (Core.Maybe DeprecatedEvent_DialogEventType),+ -- | The timestamp indicating when the interaction event occurred.+ eventTime :: (Core.Maybe Core.DateTime),+ -- | For @CARD_CLICKED@ and @MESSAGE@ interaction events, whether the user is interacting with or about to interact with a <https://developers.google.com/workspace/chat/dialogs dialog>.+ isDialogEvent :: (Core.Maybe Core.Bool),+ -- | For @ADDED_TO_SPACE@, @CARD_CLICKED@, and @MESSAGE@ interaction events, the message that triggered the interaction event, if applicable.+ message :: (Core.Maybe Message),+ -- | The space in which the user interacted with the Chat app.+ space :: (Core.Maybe Space),+ -- | The thread in which the user interacted with the Chat app. This could be in a new thread created by a newly sent message. This field is populated if the interaction event is associated with a specific message or thread.+ thread :: (Core.Maybe Thread),+ -- | The Chat app-defined key for the thread related to the interaction event. See </chat/api/reference/rest/v1/spaces.messages#Thread.FIELDS.thread_key spaces.messages.thread.threadKey> for more information.+ threadKey :: (Core.Maybe Core.Text),+ -- | A secret value that legacy Chat apps can use to verify if a request is from Google. Google randomly generates the token, and its value remains static. You can obtain, revoke, or regenerate the token from the <https://console.cloud.google.com/apis/api/chat.googleapis.com/hangouts-chat Chat API configuration page> in the Google Cloud Console. Modern Chat apps don\'t use this field. It is absent from API responses and the <https://console.cloud.google.com/apis/api/chat.googleapis.com/hangouts-chat Chat API configuration page>.+ token :: (Core.Maybe Core.Text),+ -- | The </workspace/chat/api/reference/rest/v1/EventType type> of user interaction with the Chat app, such as @MESSAGE@ or @ADDED_TO_SPACE@.+ type' :: (Core.Maybe DeprecatedEvent_Type),+ -- | The user that interacted with the Chat app.+ user :: (Core.Maybe User)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'DeprecatedEvent' with the minimum fields required to make a request.+newDeprecatedEvent ::+ DeprecatedEvent+newDeprecatedEvent =+ DeprecatedEvent+ { action = Core.Nothing,+ appCommandMetadata = Core.Nothing,+ common = Core.Nothing,+ configCompleteRedirectUrl = Core.Nothing,+ dialogEventType = Core.Nothing,+ eventTime = Core.Nothing,+ isDialogEvent = Core.Nothing,+ message = Core.Nothing,+ space = Core.Nothing,+ thread = Core.Nothing,+ threadKey = Core.Nothing,+ token = Core.Nothing,+ type' = Core.Nothing,+ user = Core.Nothing+ }++instance Core.FromJSON DeprecatedEvent where+ parseJSON =+ Core.withObject+ "DeprecatedEvent"+ ( \o ->+ DeprecatedEvent+ Core.<$> (o Core..:? "action")+ Core.<*> (o Core..:? "appCommandMetadata")+ Core.<*> (o Core..:? "common")+ Core.<*> (o Core..:? "configCompleteRedirectUrl")+ Core.<*> (o Core..:? "dialogEventType")+ Core.<*> (o Core..:? "eventTime")+ Core.<*> (o Core..:? "isDialogEvent")+ Core.<*> (o Core..:? "message")+ Core.<*> (o Core..:? "space")+ Core.<*> (o Core..:? "thread")+ Core.<*> (o Core..:? "threadKey")+ Core.<*> (o Core..:? "token")+ Core.<*> (o Core..:? "type")+ Core.<*> (o Core..:? "user")+ )++instance Core.ToJSON DeprecatedEvent where+ toJSON DeprecatedEvent {..} =+ Core.object+ ( Core.catMaybes+ [ ("action" Core..=) Core.<$> action,+ ("appCommandMetadata" Core..=) Core.<$> appCommandMetadata,+ ("common" Core..=) Core.<$> common,+ ("configCompleteRedirectUrl" Core..=)+ Core.<$> configCompleteRedirectUrl,+ ("dialogEventType" Core..=) Core.<$> dialogEventType,+ ("eventTime" Core..=) Core.<$> eventTime,+ ("isDialogEvent" Core..=) Core.<$> isDialogEvent,+ ("message" Core..=) Core.<$> message,+ ("space" Core..=) Core.<$> space,+ ("thread" Core..=) Core.<$> thread,+ ("threadKey" Core..=) Core.<$> threadKey,+ ("token" Core..=) Core.<$> token,+ ("type" Core..=) Core.<$> type',+ ("user" Core..=) Core.<$> user+ ]+ )++-- | Wrapper around the card body of the dialog.+--+-- /See:/ 'newDialog' smart constructor.+newtype Dialog = Dialog+ { -- | Input only. Body of the dialog, which is rendered in a modal. Google Chat apps don\'t support the following card entities: @DateTimePicker@, @OnChangeAction@.+ body :: (Core.Maybe GoogleAppsCardV1Card)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Dialog' with the minimum fields required to make a request.+newDialog ::+ Dialog+newDialog = Dialog {body = Core.Nothing}++instance Core.FromJSON Dialog where+ parseJSON =+ Core.withObject+ "Dialog"+ (\o -> Dialog Core.<$> (o Core..:? "body"))++instance Core.ToJSON Dialog where+ toJSON Dialog {..} =+ Core.object (Core.catMaybes [("body" Core..=) Core.<$> body])++-- | Contains a <https://developers.google.com/workspace/chat/dialogs dialog> and request status code.+--+-- /See:/ 'newDialogAction' smart constructor.+data DialogAction = DialogAction+ { -- | Input only. Status for a request to either invoke or submit a <https://developers.google.com/workspace/chat/dialogs dialog>. Displays a status and message to users, if necessary. For example, in case of an error or success.+ actionStatus :: (Core.Maybe ActionStatus),+ -- | Input only. <https://developers.google.com/workspace/chat/dialogs Dialog> for the request.+ dialog :: (Core.Maybe Dialog)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'DialogAction' with the minimum fields required to make a request.+newDialogAction ::+ DialogAction+newDialogAction =+ DialogAction {actionStatus = Core.Nothing, dialog = Core.Nothing}++instance Core.FromJSON DialogAction where+ parseJSON =+ Core.withObject+ "DialogAction"+ ( \o ->+ DialogAction+ Core.<$> (o Core..:? "actionStatus")+ Core.<*> (o Core..:? "dialog")+ )++instance Core.ToJSON DialogAction where+ toJSON DialogAction {..} =+ Core.object+ ( Core.catMaybes+ [ ("actionStatus" Core..=) Core.<$> actionStatus,+ ("dialog" Core..=) Core.<$> dialog+ ]+ )++-- | A reference to the data of a drive attachment.+--+-- /See:/ 'newDriveDataRef' smart constructor.+newtype DriveDataRef = DriveDataRef+ { -- | The ID for the drive file. Use with the Drive API.+ driveFileId :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'DriveDataRef' with the minimum fields required to make a request.+newDriveDataRef ::+ DriveDataRef+newDriveDataRef = DriveDataRef {driveFileId = Core.Nothing}++instance Core.FromJSON DriveDataRef where+ parseJSON =+ Core.withObject+ "DriveDataRef"+ (\o -> DriveDataRef Core.<$> (o Core..:? "driveFileId"))++instance Core.ToJSON DriveDataRef where+ toJSON DriveDataRef {..} =+ Core.object+ (Core.catMaybes [("driveFileId" Core..=) Core.<$> driveFileId])++-- | Data for Google Drive links.+--+-- /See:/ 'newDriveLinkData' smart constructor.+data DriveLinkData = DriveLinkData+ { -- | A <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages.attachments#drivedataref DriveDataRef> which references a Google Drive file.+ driveDataRef :: (Core.Maybe DriveDataRef),+ -- | The mime type of the linked Google Drive resource.+ mimeType :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'DriveLinkData' with the minimum fields required to make a request.+newDriveLinkData ::+ DriveLinkData+newDriveLinkData =+ DriveLinkData+ { driveDataRef = Core.Nothing,+ mimeType = Core.Nothing+ }++instance Core.FromJSON DriveLinkData where+ parseJSON =+ Core.withObject+ "DriveLinkData"+ ( \o ->+ DriveLinkData+ Core.<$> (o Core..:? "driveDataRef")+ Core.<*> (o Core..:? "mimeType")+ )++instance Core.ToJSON DriveLinkData where+ toJSON DriveLinkData {..} =+ Core.object+ ( Core.catMaybes+ [ ("driveDataRef" Core..=) Core.<$> driveDataRef,+ ("mimeType" Core..=) Core.<$> mimeType+ ]+ )++-- | An emoji that is used as a reaction to a message.+--+-- /See:/ 'newEmoji' smart constructor.+data Emoji = Emoji+ { -- | A custom emoji.+ customEmoji :: (Core.Maybe CustomEmoji),+ -- | Optional. A basic emoji represented by a unicode string.+ unicode :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Emoji' with the minimum fields required to make a request.+newEmoji ::+ Emoji+newEmoji =+ Emoji {customEmoji = Core.Nothing, unicode = Core.Nothing}++instance Core.FromJSON Emoji where+ parseJSON =+ Core.withObject+ "Emoji"+ ( \o ->+ Emoji+ Core.<$> (o Core..:? "customEmoji")+ Core.<*> (o Core..:? "unicode")+ )++instance Core.ToJSON Emoji where+ toJSON Emoji {..} =+ Core.object+ ( Core.catMaybes+ [ ("customEmoji" Core..=) Core.<$> customEmoji,+ ("unicode" Core..=) Core.<$> unicode+ ]+ )++-- | The number of people who reacted to a message with a specific emoji.+--+-- /See:/ 'newEmojiReactionSummary' smart constructor.+data EmojiReactionSummary = EmojiReactionSummary+ { -- | Output only. Emoji associated with the reactions.+ emoji :: (Core.Maybe Emoji),+ -- | Output only. The total number of reactions using the associated emoji.+ reactionCount :: (Core.Maybe Core.Int32)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'EmojiReactionSummary' with the minimum fields required to make a request.+newEmojiReactionSummary ::+ EmojiReactionSummary+newEmojiReactionSummary =+ EmojiReactionSummary+ { emoji = Core.Nothing,+ reactionCount = Core.Nothing+ }++instance Core.FromJSON EmojiReactionSummary where+ parseJSON =+ Core.withObject+ "EmojiReactionSummary"+ ( \o ->+ EmojiReactionSummary+ Core.<$> (o Core..:? "emoji")+ Core.<*> (o Core..:? "reactionCount")+ )++instance Core.ToJSON EmojiReactionSummary where+ toJSON EmojiReactionSummary {..} =+ Core.object+ ( Core.catMaybes+ [ ("emoji" Core..=) Core.<$> emoji,+ ("reactionCount" Core..=) Core.<$> reactionCount+ ]+ )++-- | A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }+--+-- /See:/ 'newEmpty' smart constructor.+data Empty = Empty+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Empty' with the minimum fields required to make a request.+newEmpty ::+ Empty+newEmpty = Empty++instance Core.FromJSON Empty where+ parseJSON = Core.withObject "Empty" (\o -> Core.pure Empty)++instance Core.ToJSON Empty where+ toJSON = Core.const Core.emptyObject++-- | A form action describes the behavior when the form is submitted. For example, you can invoke Apps Script to handle the form.+--+-- /See:/ 'newFormAction' smart constructor.+data FormAction = FormAction+ { -- | The method name is used to identify which part of the form triggered the form submission. This information is echoed back to the Chat app as part of the card click event. You can use the same method name for several elements that trigger a common behavior.+ actionMethodName :: (Core.Maybe Core.Text),+ -- | List of action parameters.+ parameters :: (Core.Maybe [ActionParameter])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'FormAction' with the minimum fields required to make a request.+newFormAction ::+ FormAction+newFormAction =+ FormAction+ { actionMethodName = Core.Nothing,+ parameters = Core.Nothing+ }++instance Core.FromJSON FormAction where+ parseJSON =+ Core.withObject+ "FormAction"+ ( \o ->+ FormAction+ Core.<$> (o Core..:? "actionMethodName")+ Core.<*> (o Core..:? "parameters")+ )++instance Core.ToJSON FormAction where+ toJSON FormAction {..} =+ Core.object+ ( Core.catMaybes+ [ ("actionMethodName" Core..=) Core.<$> actionMethodName,+ ("parameters" Core..=) Core.<$> parameters+ ]+ )++-- | An action that describes the behavior when the form is submitted. For example, you can invoke an Apps Script script to handle the form. If the action is triggered, the form values are sent to the server. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1Action' smart constructor.+data GoogleAppsCardV1Action = GoogleAppsCardV1Action+ { -- | Optional. If this is true, then all widgets are considered required by this action. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+ allWidgetsAreRequired :: (Core.Maybe Core.Bool),+ -- | A custom function to invoke when the containing element is clicked or otherwise activated. For example usage, see <https://developers.google.com/workspace/chat/read-form-data Read form data>.+ function :: (Core.Maybe Core.Text),+ -- | Optional. Required when opening a <https://developers.google.com/workspace/chat/dialogs dialog>. What to do in response to an interaction with a user, such as a user clicking a button in a card message. If unspecified, the app responds by executing an @action@—like opening a link or running a function—as normal. By specifying an @interaction@, the app can respond in special interactive ways. For example, by setting @interaction@ to @OPEN_DIALOG@, the app can open a <https://developers.google.com/workspace/chat/dialogs dialog>. When specified, a loading indicator isn\'t shown. If specified for an add-on, the entire card is stripped and nothing is shown in the client. <https://developers.google.com/workspace/chat Google Chat apps>:+ interaction :: (Core.Maybe GoogleAppsCardV1Action_Interaction),+ -- | Specifies the loading indicator that the action displays while making the call to the action.+ loadIndicator :: (Core.Maybe GoogleAppsCardV1Action_LoadIndicator),+ -- | List of action parameters.+ parameters :: (Core.Maybe [GoogleAppsCardV1ActionParameter]),+ -- | Indicates whether form values persist after the action. The default value is @false@. If @true@, form values remain after the action is triggered. To let the user make changes while the action is being processed, set <https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator LoadIndicator> to @NONE@. For <https://developers.google.com/workspace/chat/api/guides/v1/messages/create#create card messages> in Chat apps, you must also set the action\'s <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages#responsetype ResponseType> to @UPDATE_MESSAGE@ and use the same <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages#CardWithId card_id> from the card that contained the action. If @false@, the form values are cleared when the action is triggered. To prevent the user from making changes while the action is being processed, set+ -- <https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator LoadIndicator> to @SPINNER@.+ persistValues :: (Core.Maybe Core.Bool),+ -- | Optional. Fill this list with the names of widgets that this Action needs for a valid submission. If the widgets listed here don\'t have a value when this Action is invoked, the form submission is aborted. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+ requiredWidgets :: (Core.Maybe [Core.Text])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1Action' with the minimum fields required to make a request.+newGoogleAppsCardV1Action ::+ GoogleAppsCardV1Action+newGoogleAppsCardV1Action =+ GoogleAppsCardV1Action+ { allWidgetsAreRequired = Core.Nothing,+ function = Core.Nothing,+ interaction = Core.Nothing,+ loadIndicator = Core.Nothing,+ parameters = Core.Nothing,+ persistValues = Core.Nothing,+ requiredWidgets = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1Action where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1Action"+ ( \o ->+ GoogleAppsCardV1Action+ Core.<$> (o Core..:? "allWidgetsAreRequired")+ Core.<*> (o Core..:? "function")+ Core.<*> (o Core..:? "interaction")+ Core.<*> (o Core..:? "loadIndicator")+ Core.<*> (o Core..:? "parameters")+ Core.<*> (o Core..:? "persistValues")+ Core.<*> (o Core..:? "requiredWidgets")+ )++instance Core.ToJSON GoogleAppsCardV1Action where+ toJSON GoogleAppsCardV1Action {..} =+ Core.object+ ( Core.catMaybes+ [ ("allWidgetsAreRequired" Core..=) Core.<$> allWidgetsAreRequired,+ ("function" Core..=) Core.<$> function,+ ("interaction" Core..=) Core.<$> interaction,+ ("loadIndicator" Core..=) Core.<$> loadIndicator,+ ("parameters" Core..=) Core.<$> parameters,+ ("persistValues" Core..=) Core.<$> persistValues,+ ("requiredWidgets" Core..=) Core.<$> requiredWidgets+ ]+ )++-- | List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze one day, or snooze next week. You might use @action method = snooze()@, passing the snooze type and snooze time in the list of string parameters. To learn more, see <https://developers.google.com/workspace/chat/api/reference/rest/v1/Event#commoneventobject CommonEventObject>. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1ActionParameter' smart constructor.+data GoogleAppsCardV1ActionParameter = GoogleAppsCardV1ActionParameter+ { -- | The name of the parameter for the action script.+ key :: (Core.Maybe Core.Text),+ -- | The value of the parameter.+ value :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1ActionParameter' with the minimum fields required to make a request.+newGoogleAppsCardV1ActionParameter ::+ GoogleAppsCardV1ActionParameter+newGoogleAppsCardV1ActionParameter =+ GoogleAppsCardV1ActionParameter+ { key = Core.Nothing,+ value = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1ActionParameter where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1ActionParameter"+ ( \o ->+ GoogleAppsCardV1ActionParameter+ Core.<$> (o Core..:? "key")+ Core.<*> (o Core..:? "value")+ )++instance Core.ToJSON GoogleAppsCardV1ActionParameter where+ toJSON GoogleAppsCardV1ActionParameter {..} =+ Core.object+ ( Core.catMaybes+ [("key" Core..=) Core.<$> key, ("value" Core..=) Core.<$> value]+ )++-- | The style options for the border of a card or widget, including the border type and color. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1BorderStyle' smart constructor.+data GoogleAppsCardV1BorderStyle = GoogleAppsCardV1BorderStyle+ { -- | The corner radius for the border.+ cornerRadius :: (Core.Maybe Core.Int32),+ -- | The colors to use when the type is @BORDER_TYPE_STROKE@. To set the stroke color, specify a value for the @red@, @green@, and @blue@ fields. The value must be a float number between 0 and 1 based on the RGB color value, where @0@ (0\/255) represents the absence of color and @1@ (255\/255) represents the maximum intensity of the color. For example, the following sets the color to red at its maximum intensity: @\"color\": { \"red\": 1, \"green\": 0, \"blue\": 0, }@ The @alpha@ field is unavailable for stroke color. If specified, this field is ignored.+ strokeColor :: (Core.Maybe Color),+ -- | The border type.+ type' :: (Core.Maybe GoogleAppsCardV1BorderStyle_Type)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1BorderStyle' with the minimum fields required to make a request.+newGoogleAppsCardV1BorderStyle ::+ GoogleAppsCardV1BorderStyle+newGoogleAppsCardV1BorderStyle =+ GoogleAppsCardV1BorderStyle+ { cornerRadius = Core.Nothing,+ strokeColor = Core.Nothing,+ type' = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1BorderStyle where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1BorderStyle"+ ( \o ->+ GoogleAppsCardV1BorderStyle+ Core.<$> (o Core..:? "cornerRadius")+ Core.<*> (o Core..:? "strokeColor")+ Core.<*> (o Core..:? "type")+ )++instance Core.ToJSON GoogleAppsCardV1BorderStyle where+ toJSON GoogleAppsCardV1BorderStyle {..} =+ Core.object+ ( Core.catMaybes+ [ ("cornerRadius" Core..=) Core.<$> cornerRadius,+ ("strokeColor" Core..=) Core.<$> strokeColor,+ ("type" Core..=) Core.<$> type'+ ]+ )++-- | A text, icon, or text and icon button that users can click. For an example in Google Chat apps, see <https://developers.google.com/workspace/chat/design-interactive-card-dialog#add_a_button Add a button>. To make an image a clickable button, specify an @Image@ (not an @ImageComponent@) and set an @onClick@ action. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1Button' smart constructor.+data GoogleAppsCardV1Button = GoogleAppsCardV1Button+ { -- | The alternative text that\'s used for accessibility. Set descriptive text that lets users know what the button does. For example, if a button opens a hyperlink, you might write: \"Opens a new browser tab and navigates to the Google Chat developer documentation at https:\/\/developers.google.com\/workspace\/chat\".+ altText :: (Core.Maybe Core.Text),+ -- | Optional. The color of the button. If set, the button @type@ is set to @FILLED@ and the color of @text@ and @icon@ fields are set to a contrasting color for readability. For example, if the button color is set to blue, any text or icons in the button are set to white. To set the button color, specify a value for the @red@, @green@, and @blue@ fields. The value must be a float number between 0 and 1 based on the RGB color value, where @0@ (0\/255) represents the absence of color and @1@ (255\/255) represents the maximum intensity of the color. For example, the following sets the color to red at its maximum intensity: @\"color\": { \"red\": 1, \"green\": 0, \"blue\": 0, }@ The @alpha@ field is unavailable for button color. If specified, this field is ignored.+ color :: (Core.Maybe Color),+ -- | If @true@, the button is displayed in an inactive state and doesn\'t respond to user actions.+ disabled :: (Core.Maybe Core.Bool),+ -- | An icon displayed inside the button. If both @icon@ and @text@ are set, then the icon appears before the text.+ icon :: (Core.Maybe GoogleAppsCardV1Icon),+ -- | Required. The action to perform when a user clicks the button, such as opening a hyperlink or running a custom function.+ onClick :: (Core.Maybe GoogleAppsCardV1OnClick),+ -- | The text displayed inside the button.+ text :: (Core.Maybe Core.Text),+ -- | Optional. The type of a button. If unset, button type defaults to @OUTLINED@. If the @color@ field is set, the button type is forced to @FILLED@ and any value set for this field is ignored.+ type' :: (Core.Maybe GoogleAppsCardV1Button_Type)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1Button' with the minimum fields required to make a request.+newGoogleAppsCardV1Button ::+ GoogleAppsCardV1Button+newGoogleAppsCardV1Button =+ GoogleAppsCardV1Button+ { altText = Core.Nothing,+ color = Core.Nothing,+ disabled = Core.Nothing,+ icon = Core.Nothing,+ onClick = Core.Nothing,+ text = Core.Nothing,+ type' = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1Button where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1Button"+ ( \o ->+ GoogleAppsCardV1Button+ Core.<$> (o Core..:? "altText")+ Core.<*> (o Core..:? "color")+ Core.<*> (o Core..:? "disabled")+ Core.<*> (o Core..:? "icon")+ Core.<*> (o Core..:? "onClick")+ Core.<*> (o Core..:? "text")+ Core.<*> (o Core..:? "type")+ )++instance Core.ToJSON GoogleAppsCardV1Button where+ toJSON GoogleAppsCardV1Button {..} =+ Core.object+ ( Core.catMaybes+ [ ("altText" Core..=) Core.<$> altText,+ ("color" Core..=) Core.<$> color,+ ("disabled" Core..=) Core.<$> disabled,+ ("icon" Core..=) Core.<$> icon,+ ("onClick" Core..=) Core.<$> onClick,+ ("text" Core..=) Core.<$> text,+ ("type" Core..=) Core.<$> type'+ ]+ )++-- | A list of buttons layed out horizontally. For an example in Google Chat apps, see <https://developers.google.com/workspace/chat/design-interactive-card-dialog#add_a_button Add a button>. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1ButtonList' smart constructor.+newtype GoogleAppsCardV1ButtonList = GoogleAppsCardV1ButtonList+ { -- | An array of buttons.+ buttons :: (Core.Maybe [GoogleAppsCardV1Button])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1ButtonList' with the minimum fields required to make a request.+newGoogleAppsCardV1ButtonList ::+ GoogleAppsCardV1ButtonList+newGoogleAppsCardV1ButtonList =+ GoogleAppsCardV1ButtonList {buttons = Core.Nothing}++instance Core.FromJSON GoogleAppsCardV1ButtonList where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1ButtonList"+ (\o -> GoogleAppsCardV1ButtonList Core.<$> (o Core..:? "buttons"))++instance Core.ToJSON GoogleAppsCardV1ButtonList where+ toJSON GoogleAppsCardV1ButtonList {..} =+ Core.object+ (Core.catMaybes [("buttons" Core..=) Core.<$> buttons])++-- | A card interface displayed in a Google Chat message or Google Workspace add-on. Cards support a defined layout, interactive UI elements like buttons, and rich media like images. Use cards to present detailed information, gather information from users, and guide users to take a next step. <https://addons.gsuite.google.com/uikit/builder Card builder> To learn how to build cards, see the following documentation: * For Google Chat apps, see <https://developers.google.com/workspace/chat/design-components-card-dialog Design the components of a card or dialog>. * For Google Workspace add-ons, see <https://developers.google.com/apps-script/add-ons/concepts/cards Card-based interfaces>. Note: You can add up to 100 widgets per card. Any widgets beyond this limit are ignored. This limit applies to both card messages and dialogs in Google Chat apps, and to cards in Google Workspace add-ons. __Example: Card message for a Google Chat app__+-- <<https://developers.google.com/workspace/chat/images/card_api_reference.png Example contact card>> To create the sample card message in Google Chat, use the following JSON:+-- @{ \"cardsV2\": [ { \"cardId\": \"unique-card-id\", \"card\": { \"header\": { \"title\": \"Sasha\", \"subtitle\": \"Software Engineer\", \"imageUrl\": \"https:\/\/developers.google.com\/workspace\/chat\/images\/quickstart-app-avatar.png\", \"imageType\": \"CIRCLE\", \"imageAltText\": \"Avatar for Sasha\" }, \"sections\": [ { \"header\": \"Contact Info\", \"collapsible\": true, \"uncollapsibleWidgetsCount\": 1, \"widgets\": [ { \"decoratedText\": { \"startIcon\": { \"knownIcon\": \"EMAIL\" }, \"text\": \"sasha\@example.com\" } }, { \"decoratedText\": { \"startIcon\": { \"knownIcon\": \"PERSON\" }, \"text\": \"Online\" } }, { \"decoratedText\": { \"startIcon\": { \"knownIcon\": \"PHONE\" }, \"text\": \"+1 (555) 555-1234\" } }, { \"buttonList\": { \"buttons\": [ { \"text\": \"Share\", \"onClick\": { \"openLink\": { \"url\": \"https:\/\/example.com\/share\" } } }, { \"text\": \"Edit\", \"onClick\": { \"action\": { \"function\": \"goToView\", \"parameters\": [ { \"key\": \"viewType\", \"value\": \"EDIT\" } ] } } } ] } } ] } ] } } ] }@+--+-- /See:/ 'newGoogleAppsCardV1Card' smart constructor.+data GoogleAppsCardV1Card = GoogleAppsCardV1Card+ { -- | The card\'s actions. Actions are added to the card\'s toolbar menu. <https://developers.google.com/workspace/add-ons Google Workspace add-ons>: For example, the following JSON constructs a card action menu with @Settings@ and @Send Feedback@ options: @\"card_actions\": [ { \"actionLabel\": \"Settings\", \"onClick\": { \"action\": { \"functionName\": \"goToView\", \"parameters\": [ { \"key\": \"viewType\", \"value\": \"SETTING\" } ], \"loadIndicator\": \"LoadIndicator.SPINNER\" } } }, { \"actionLabel\": \"Send Feedback\", \"onClick\": { \"openLink\": { \"url\": \"https:\/\/example.com\/feedback\" } } } ]@+ cardActions :: (Core.Maybe [GoogleAppsCardV1CardAction]),+ -- | In Google Workspace add-ons, sets the display properties of the @peekCardHeader@. <https://developers.google.com/workspace/add-ons Google Workspace add-ons>:+ displayStyle :: (Core.Maybe GoogleAppsCardV1Card_DisplayStyle),+ -- | The fixed footer shown at the bottom of this card. Setting @fixedFooter@ without specifying a @primaryButton@ or a @secondaryButton@ causes an error. For Chat apps, you can use fixed footers in <https://developers.google.com/workspace/chat/dialogs dialogs>, but not <https://developers.google.com/workspace/chat/create-messages#create card messages>. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+ fixedFooter :: (Core.Maybe GoogleAppsCardV1CardFixedFooter),+ -- | The header of the card. A header usually contains a leading image and a title. Headers always appear at the top of a card.+ header :: (Core.Maybe GoogleAppsCardV1CardHeader),+ -- | Name of the card. Used as a card identifier in card navigation. <https://developers.google.com/workspace/add-ons Google Workspace add-ons>:+ name :: (Core.Maybe Core.Text),+ -- | When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards. <https://developers.google.com/workspace/add-ons Google Workspace add-ons>:+ peekCardHeader :: (Core.Maybe GoogleAppsCardV1CardHeader),+ -- | The divider style between the header, sections and footer.+ sectionDividerStyle :: (Core.Maybe GoogleAppsCardV1Card_SectionDividerStyle),+ -- | Contains a collection of widgets. Each section has its own, optional header. Sections are visually separated by a line divider. For an example in Google Chat apps, see <https://developers.google.com/workspace/chat/design-components-card-dialog#define_a_section_of_a_card Define a section of a card>.+ sections :: (Core.Maybe [GoogleAppsCardV1Section])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1Card' with the minimum fields required to make a request.+newGoogleAppsCardV1Card ::+ GoogleAppsCardV1Card+newGoogleAppsCardV1Card =+ GoogleAppsCardV1Card+ { cardActions = Core.Nothing,+ displayStyle = Core.Nothing,+ fixedFooter = Core.Nothing,+ header = Core.Nothing,+ name = Core.Nothing,+ peekCardHeader = Core.Nothing,+ sectionDividerStyle = Core.Nothing,+ sections = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1Card where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1Card"+ ( \o ->+ GoogleAppsCardV1Card+ Core.<$> (o Core..:? "cardActions")+ Core.<*> (o Core..:? "displayStyle")+ Core.<*> (o Core..:? "fixedFooter")+ Core.<*> (o Core..:? "header")+ Core.<*> (o Core..:? "name")+ Core.<*> (o Core..:? "peekCardHeader")+ Core.<*> (o Core..:? "sectionDividerStyle")+ Core.<*> (o Core..:? "sections")+ )++instance Core.ToJSON GoogleAppsCardV1Card where+ toJSON GoogleAppsCardV1Card {..} =+ Core.object+ ( Core.catMaybes+ [ ("cardActions" Core..=) Core.<$> cardActions,+ ("displayStyle" Core..=) Core.<$> displayStyle,+ ("fixedFooter" Core..=) Core.<$> fixedFooter,+ ("header" Core..=) Core.<$> header,+ ("name" Core..=) Core.<$> name,+ ("peekCardHeader" Core..=) Core.<$> peekCardHeader,+ ("sectionDividerStyle" Core..=) Core.<$> sectionDividerStyle,+ ("sections" Core..=) Core.<$> sections+ ]+ )++-- | A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser. <https://developers.google.com/workspace/add-ons Google Workspace add-ons>:+--+-- /See:/ 'newGoogleAppsCardV1CardAction' smart constructor.+data GoogleAppsCardV1CardAction = GoogleAppsCardV1CardAction+ { -- | The label that displays as the action menu item.+ actionLabel :: (Core.Maybe Core.Text),+ -- | The @onClick@ action for this action item.+ onClick :: (Core.Maybe GoogleAppsCardV1OnClick)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1CardAction' with the minimum fields required to make a request.+newGoogleAppsCardV1CardAction ::+ GoogleAppsCardV1CardAction+newGoogleAppsCardV1CardAction =+ GoogleAppsCardV1CardAction+ { actionLabel = Core.Nothing,+ onClick = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1CardAction where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1CardAction"+ ( \o ->+ GoogleAppsCardV1CardAction+ Core.<$> (o Core..:? "actionLabel")+ Core.<*> (o Core..:? "onClick")+ )++instance Core.ToJSON GoogleAppsCardV1CardAction where+ toJSON GoogleAppsCardV1CardAction {..} =+ Core.object+ ( Core.catMaybes+ [ ("actionLabel" Core..=) Core.<$> actionLabel,+ ("onClick" Core..=) Core.<$> onClick+ ]+ )++-- | A persistent (sticky) footer that that appears at the bottom of the card. Setting @fixedFooter@ without specifying a @primaryButton@ or a @secondaryButton@ causes an error. For Chat apps, you can use fixed footers in <https://developers.google.com/workspace/chat/dialogs dialogs>, but not <https://developers.google.com/workspace/chat/create-messages#create card messages>. For an example in Google Chat apps, see <https://developers.google.com/workspace/chat/design-components-card-dialog#add_a_persistent_footer Add a persistent footer>. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1CardFixedFooter' smart constructor.+data GoogleAppsCardV1CardFixedFooter = GoogleAppsCardV1CardFixedFooter+ { -- | The primary button of the fixed footer. The button must be a text button with text and color set.+ primaryButton :: (Core.Maybe GoogleAppsCardV1Button),+ -- | The secondary button of the fixed footer. The button must be a text button with text and color set. If @secondaryButton@ is set, you must also set @primaryButton@.+ secondaryButton :: (Core.Maybe GoogleAppsCardV1Button)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1CardFixedFooter' with the minimum fields required to make a request.+newGoogleAppsCardV1CardFixedFooter ::+ GoogleAppsCardV1CardFixedFooter+newGoogleAppsCardV1CardFixedFooter =+ GoogleAppsCardV1CardFixedFooter+ { primaryButton = Core.Nothing,+ secondaryButton = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1CardFixedFooter where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1CardFixedFooter"+ ( \o ->+ GoogleAppsCardV1CardFixedFooter+ Core.<$> (o Core..:? "primaryButton")+ Core.<*> (o Core..:? "secondaryButton")+ )++instance Core.ToJSON GoogleAppsCardV1CardFixedFooter where+ toJSON GoogleAppsCardV1CardFixedFooter {..} =+ Core.object+ ( Core.catMaybes+ [ ("primaryButton" Core..=) Core.<$> primaryButton,+ ("secondaryButton" Core..=) Core.<$> secondaryButton+ ]+ )++-- | Represents a card header. For an example in Google Chat apps, see <https://developers.google.com/workspace/chat/design-components-card-dialog#add_a_header Add a header>. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1CardHeader' smart constructor.+data GoogleAppsCardV1CardHeader = GoogleAppsCardV1CardHeader+ { -- | The alternative text of this image that\'s used for accessibility.+ imageAltText :: (Core.Maybe Core.Text),+ -- | The shape used to crop the image. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+ imageType :: (Core.Maybe GoogleAppsCardV1CardHeader_ImageType),+ -- | The HTTPS URL of the image in the card header.+ imageUrl :: (Core.Maybe Core.Text),+ -- | The subtitle of the card header. If specified, appears on its own line below the @title@.+ subtitle :: (Core.Maybe Core.Text),+ -- | Required. The title of the card header. The header has a fixed height: if both a title and subtitle are specified, each takes up one line. If only the title is specified, it takes up both lines.+ title :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1CardHeader' with the minimum fields required to make a request.+newGoogleAppsCardV1CardHeader ::+ GoogleAppsCardV1CardHeader+newGoogleAppsCardV1CardHeader =+ GoogleAppsCardV1CardHeader+ { imageAltText = Core.Nothing,+ imageType = Core.Nothing,+ imageUrl = Core.Nothing,+ subtitle = Core.Nothing,+ title = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1CardHeader where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1CardHeader"+ ( \o ->+ GoogleAppsCardV1CardHeader+ Core.<$> (o Core..:? "imageAltText")+ Core.<*> (o Core..:? "imageType")+ Core.<*> (o Core..:? "imageUrl")+ Core.<*> (o Core..:? "subtitle")+ Core.<*> (o Core..:? "title")+ )++instance Core.ToJSON GoogleAppsCardV1CardHeader where+ toJSON GoogleAppsCardV1CardHeader {..} =+ Core.object+ ( Core.catMaybes+ [ ("imageAltText" Core..=) Core.<$> imageAltText,+ ("imageType" Core..=) Core.<$> imageType,+ ("imageUrl" Core..=) Core.<$> imageUrl,+ ("subtitle" Core..=) Core.<$> subtitle,+ ("title" Core..=) Core.<$> title+ ]+ )++-- | <https://developers.google.com/workspace/preview Developer Preview>: A carousel, also known as a slider, rotates and displays a list of widgets in a slideshow format, with buttons navigating to the previous or next widget. For example, this is a JSON representation of a carousel that contains three text paragraph widgets. @{ \"carouselCards\": [ { \"widgets\": [ { \"textParagraph\": { \"text\": \"First text paragraph in carousel\", } } ] }, { \"widgets\": [ { \"textParagraph\": { \"text\": \"Second text paragraph in carousel\", } } ] }, { \"widgets\": [ { \"textParagraph\": { \"text\": \"Third text paragraph in carousel\", } } ] } ] }@ <https://developers.google.com/workspace/chat Google Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1Carousel' smart constructor.+newtype GoogleAppsCardV1Carousel = GoogleAppsCardV1Carousel+ { -- | A list of cards included in the carousel.+ carouselCards :: (Core.Maybe [GoogleAppsCardV1CarouselCard])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1Carousel' with the minimum fields required to make a request.+newGoogleAppsCardV1Carousel ::+ GoogleAppsCardV1Carousel+newGoogleAppsCardV1Carousel =+ GoogleAppsCardV1Carousel {carouselCards = Core.Nothing}++instance Core.FromJSON GoogleAppsCardV1Carousel where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1Carousel"+ ( \o ->+ GoogleAppsCardV1Carousel Core.<$> (o Core..:? "carouselCards")+ )++instance Core.ToJSON GoogleAppsCardV1Carousel where+ toJSON GoogleAppsCardV1Carousel {..} =+ Core.object+ (Core.catMaybes [("carouselCards" Core..=) Core.<$> carouselCards])++-- | <https://developers.google.com/workspace/preview Developer Preview>: A card that can be displayed as a carousel item. <https://developers.google.com/workspace/chat Google Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1CarouselCard' smart constructor.+data GoogleAppsCardV1CarouselCard = GoogleAppsCardV1CarouselCard+ { -- | A list of widgets displayed at the bottom of the carousel card. The widgets are displayed in the order that they are specified.+ footerWidgets :: (Core.Maybe [GoogleAppsCardV1NestedWidget]),+ -- | A list of widgets displayed in the carousel card. The widgets are displayed in the order that they are specified.+ widgets :: (Core.Maybe [GoogleAppsCardV1NestedWidget])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1CarouselCard' with the minimum fields required to make a request.+newGoogleAppsCardV1CarouselCard ::+ GoogleAppsCardV1CarouselCard+newGoogleAppsCardV1CarouselCard =+ GoogleAppsCardV1CarouselCard+ { footerWidgets = Core.Nothing,+ widgets = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1CarouselCard where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1CarouselCard"+ ( \o ->+ GoogleAppsCardV1CarouselCard+ Core.<$> (o Core..:? "footerWidgets")+ Core.<*> (o Core..:? "widgets")+ )++instance Core.ToJSON GoogleAppsCardV1CarouselCard where+ toJSON GoogleAppsCardV1CarouselCard {..} =+ Core.object+ ( Core.catMaybes+ [ ("footerWidgets" Core..=) Core.<$> footerWidgets,+ ("widgets" Core..=) Core.<$> widgets+ ]+ )++-- | A text, icon, or text and icon chip that users can click. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1Chip' smart constructor.+data GoogleAppsCardV1Chip = GoogleAppsCardV1Chip+ { -- | The alternative text that\'s used for accessibility. Set descriptive text that lets users know what the chip does. For example, if a chip opens a hyperlink, write: \"Opens a new browser tab and navigates to the Google Chat developer documentation at https:\/\/developers.google.com\/workspace\/chat\".+ altText :: (Core.Maybe Core.Text),+ -- | Whether the chip is in an inactive state and ignores user actions. Defaults to @false@.+ disabled :: (Core.Maybe Core.Bool),+ -- | Whether the chip is in an active state and responds to user actions. Defaults to @true@. Deprecated. Use @disabled@ instead.+ enabled :: (Core.Maybe Core.Bool),+ -- | The icon image. If both @icon@ and @text@ are set, then the icon appears before the text.+ icon :: (Core.Maybe GoogleAppsCardV1Icon),+ -- | The text displayed inside the chip.+ label :: (Core.Maybe Core.Text),+ -- | Optional. The action to perform when a user clicks the chip, such as opening a hyperlink or running a custom function.+ onClick :: (Core.Maybe GoogleAppsCardV1OnClick)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1Chip' with the minimum fields required to make a request.+newGoogleAppsCardV1Chip ::+ GoogleAppsCardV1Chip+newGoogleAppsCardV1Chip =+ GoogleAppsCardV1Chip+ { altText = Core.Nothing,+ disabled = Core.Nothing,+ enabled = Core.Nothing,+ icon = Core.Nothing,+ label = Core.Nothing,+ onClick = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1Chip where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1Chip"+ ( \o ->+ GoogleAppsCardV1Chip+ Core.<$> (o Core..:? "altText")+ Core.<*> (o Core..:? "disabled")+ Core.<*> (o Core..:? "enabled")+ Core.<*> (o Core..:? "icon")+ Core.<*> (o Core..:? "label")+ Core.<*> (o Core..:? "onClick")+ )++instance Core.ToJSON GoogleAppsCardV1Chip where+ toJSON GoogleAppsCardV1Chip {..} =+ Core.object+ ( Core.catMaybes+ [ ("altText" Core..=) Core.<$> altText,+ ("disabled" Core..=) Core.<$> disabled,+ ("enabled" Core..=) Core.<$> enabled,+ ("icon" Core..=) Core.<$> icon,+ ("label" Core..=) Core.<$> label,+ ("onClick" Core..=) Core.<$> onClick+ ]+ )++-- | A list of chips layed out horizontally, which can either scroll horizontally or wrap to the next line. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1ChipList' smart constructor.+data GoogleAppsCardV1ChipList = GoogleAppsCardV1ChipList+ { -- | An array of chips.+ chips :: (Core.Maybe [GoogleAppsCardV1Chip]),+ -- | Specified chip list layout.+ layout :: (Core.Maybe GoogleAppsCardV1ChipList_Layout)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1ChipList' with the minimum fields required to make a request.+newGoogleAppsCardV1ChipList ::+ GoogleAppsCardV1ChipList+newGoogleAppsCardV1ChipList =+ GoogleAppsCardV1ChipList+ { chips = Core.Nothing,+ layout = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1ChipList where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1ChipList"+ ( \o ->+ GoogleAppsCardV1ChipList+ Core.<$> (o Core..:? "chips")+ Core.<*> (o Core..:? "layout")+ )++instance Core.ToJSON GoogleAppsCardV1ChipList where+ toJSON GoogleAppsCardV1ChipList {..} =+ Core.object+ ( Core.catMaybes+ [ ("chips" Core..=) Core.<$> chips,+ ("layout" Core..=) Core.<$> layout+ ]+ )++-- | Represent an expand and collapse control. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1CollapseControl' smart constructor.+data GoogleAppsCardV1CollapseControl = GoogleAppsCardV1CollapseControl+ { -- | Optional. Define a customizable button to collapse the section. Both expand/button and collapse/button field must be set. Only one field set will not take into effect. If this field isn\'t set, the default button is used.+ collapseButton :: (Core.Maybe GoogleAppsCardV1Button),+ -- | Optional. Define a customizable button to expand the section. Both expand/button and collapse/button field must be set. Only one field set will not take into effect. If this field isn\'t set, the default button is used.+ expandButton :: (Core.Maybe GoogleAppsCardV1Button),+ -- | The horizontal alignment of the expand and collapse button.+ horizontalAlignment :: (Core.Maybe GoogleAppsCardV1CollapseControl_HorizontalAlignment)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1CollapseControl' with the minimum fields required to make a request.+newGoogleAppsCardV1CollapseControl ::+ GoogleAppsCardV1CollapseControl+newGoogleAppsCardV1CollapseControl =+ GoogleAppsCardV1CollapseControl+ { collapseButton = Core.Nothing,+ expandButton = Core.Nothing,+ horizontalAlignment = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1CollapseControl where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1CollapseControl"+ ( \o ->+ GoogleAppsCardV1CollapseControl+ Core.<$> (o Core..:? "collapseButton")+ Core.<*> (o Core..:? "expandButton")+ Core.<*> (o Core..:? "horizontalAlignment")+ )++instance Core.ToJSON GoogleAppsCardV1CollapseControl where+ toJSON GoogleAppsCardV1CollapseControl {..} =+ Core.object+ ( Core.catMaybes+ [ ("collapseButton" Core..=) Core.<$> collapseButton,+ ("expandButton" Core..=) Core.<$> expandButton,+ ("horizontalAlignment" Core..=) Core.<$> horizontalAlignment+ ]+ )++-- | A column. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>+--+-- /See:/ 'newGoogleAppsCardV1Column' smart constructor.+data GoogleAppsCardV1Column = GoogleAppsCardV1Column+ { -- | Specifies whether widgets align to the left, right, or center of a column.+ horizontalAlignment :: (Core.Maybe GoogleAppsCardV1Column_HorizontalAlignment),+ -- | Specifies how a column fills the width of the card.+ horizontalSizeStyle :: (Core.Maybe GoogleAppsCardV1Column_HorizontalSizeStyle),+ -- | Specifies whether widgets align to the top, bottom, or center of a column.+ verticalAlignment :: (Core.Maybe GoogleAppsCardV1Column_VerticalAlignment),+ -- | An array of widgets included in a column. Widgets appear in the order that they are specified.+ widgets :: (Core.Maybe [GoogleAppsCardV1Widgets])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1Column' with the minimum fields required to make a request.+newGoogleAppsCardV1Column ::+ GoogleAppsCardV1Column+newGoogleAppsCardV1Column =+ GoogleAppsCardV1Column+ { horizontalAlignment = Core.Nothing,+ horizontalSizeStyle = Core.Nothing,+ verticalAlignment = Core.Nothing,+ widgets = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1Column where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1Column"+ ( \o ->+ GoogleAppsCardV1Column+ Core.<$> (o Core..:? "horizontalAlignment")+ Core.<*> (o Core..:? "horizontalSizeStyle")+ Core.<*> (o Core..:? "verticalAlignment")+ Core.<*> (o Core..:? "widgets")+ )++instance Core.ToJSON GoogleAppsCardV1Column where+ toJSON GoogleAppsCardV1Column {..} =+ Core.object+ ( Core.catMaybes+ [ ("horizontalAlignment" Core..=) Core.<$> horizontalAlignment,+ ("horizontalSizeStyle" Core..=) Core.<$> horizontalSizeStyle,+ ("verticalAlignment" Core..=) Core.<$> verticalAlignment,+ ("widgets" Core..=) Core.<$> widgets+ ]+ )++-- | The @Columns@ widget displays up to 2 columns in a card or dialog. You can add widgets to each column; the widgets appear in the order that they are specified. For an example in Google Chat apps, see <https://developers.google.com/workspace/chat/format-structure-card-dialog#display_cards_and_dialogs_in_columns Display cards and dialogs in columns>. The height of each column is determined by the taller column. For example, if the first column is taller than the second column, both columns have the height of the first column. Because each column can contain a different number of widgets, you can\'t define rows or align widgets between the columns. Columns are displayed side-by-side. You can customize the width of each column using the @HorizontalSizeStyle@ field. If the user\'s screen width is too narrow, the second column wraps below the first: * On web, the second column wraps if the screen width is less than or equal to 480 pixels. * On iOS devices, the second column wraps if the screen width is less than or+-- equal to 300 pt. * On Android devices, the second column wraps if the screen width is less than or equal to 320 dp. To include more than two columns, or to use rows, use the @Grid@ widget. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>: The add-on UIs that support columns include: * The dialog displayed when users open the add-on from an email draft. * The dialog displayed when users open the add-on from the __Add attachment__ menu in a Google Calendar event.+--+-- /See:/ 'newGoogleAppsCardV1Columns' smart constructor.+newtype GoogleAppsCardV1Columns = GoogleAppsCardV1Columns+ { -- | An array of columns. You can include up to 2 columns in a card or dialog.+ columnItems :: (Core.Maybe [GoogleAppsCardV1Column])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1Columns' with the minimum fields required to make a request.+newGoogleAppsCardV1Columns ::+ GoogleAppsCardV1Columns+newGoogleAppsCardV1Columns =+ GoogleAppsCardV1Columns {columnItems = Core.Nothing}++instance Core.FromJSON GoogleAppsCardV1Columns where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1Columns"+ ( \o ->+ GoogleAppsCardV1Columns Core.<$> (o Core..:? "columnItems")+ )++instance Core.ToJSON GoogleAppsCardV1Columns where+ toJSON GoogleAppsCardV1Columns {..} =+ Core.object+ (Core.catMaybes [("columnItems" Core..=) Core.<$> columnItems])++-- | Lets users input a date, a time, or both a date and a time. Supports form submission validation. When @Action.all_widgets_are_required@ is set to @true@ or this widget is specified in @Action.required_widgets@, the submission action is blocked unless a value is selected. For an example in Google Chat apps, see <https://developers.google.com/workspace/chat/design-interactive-card-dialog#let_a_user_pick_a_date_and_time Let a user pick a date and time>. Users can input text or use the picker to select dates and times. If users input an invalid date or time, the picker shows an error that prompts users to input the information correctly. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1DateTimePicker' smart constructor.+data GoogleAppsCardV1DateTimePicker = GoogleAppsCardV1DateTimePicker+ { -- | The text that prompts users to input a date, a time, or a date and time. For example, if users are scheduling an appointment, use a label such as @Appointment date@ or @Appointment date and time@.+ label :: (Core.Maybe Core.Text),+ -- | The name by which the @DateTimePicker@ is identified in a form input event. For details about working with form inputs, see <https://developers.google.com/workspace/chat/read-form-data Receive form data>.+ name :: (Core.Maybe Core.Text),+ -- | Triggered when the user clicks __Save__ or __Clear__ from the @DateTimePicker@ interface.+ onChangeAction :: (Core.Maybe GoogleAppsCardV1Action),+ -- | The number representing the time zone offset from UTC, in minutes. If set, the @value_ms_epoch@ is displayed in the specified time zone. If unset, the value defaults to the user\'s time zone setting.+ timezoneOffsetDate :: (Core.Maybe Core.Int32),+ -- | Whether the widget supports inputting a date, a time, or the date and time.+ type' :: (Core.Maybe GoogleAppsCardV1DateTimePicker_Type),+ -- | The default value displayed in the widget, in milliseconds since <https://en.wikipedia.org/wiki/Unix_time Unix epoch time>. Specify the value based on the type of picker (@DateTimePickerType@): * @DATE_AND_TIME@: a calendar date and time in UTC. For example, to represent January 1, 2023 at 12:00 PM UTC, use @1672574400000@. * @DATE_ONLY@: a calendar date at 00:00:00 UTC. For example, to represent January 1, 2023, use @1672531200000@. * @TIME_ONLY@: a time in UTC. For example, to represent 12:00 PM, use @43200000@ (or @12 * 60 * 60 * 1000@).+ valueMsEpoch :: (Core.Maybe Core.Int64)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1DateTimePicker' with the minimum fields required to make a request.+newGoogleAppsCardV1DateTimePicker ::+ GoogleAppsCardV1DateTimePicker+newGoogleAppsCardV1DateTimePicker =+ GoogleAppsCardV1DateTimePicker+ { label = Core.Nothing,+ name = Core.Nothing,+ onChangeAction = Core.Nothing,+ timezoneOffsetDate = Core.Nothing,+ type' = Core.Nothing,+ valueMsEpoch = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1DateTimePicker where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1DateTimePicker"+ ( \o ->+ GoogleAppsCardV1DateTimePicker+ Core.<$> (o Core..:? "label")+ Core.<*> (o Core..:? "name")+ Core.<*> (o Core..:? "onChangeAction")+ Core.<*> (o Core..:? "timezoneOffsetDate")+ Core.<*> (o Core..:? "type")+ Core.<*> (o Core..:? "valueMsEpoch" Core.<&> Core.fmap Core.fromAsText)+ )++instance Core.ToJSON GoogleAppsCardV1DateTimePicker where+ toJSON GoogleAppsCardV1DateTimePicker {..} =+ Core.object+ ( Core.catMaybes+ [ ("label" Core..=) Core.<$> label,+ ("name" Core..=) Core.<$> name,+ ("onChangeAction" Core..=) Core.<$> onChangeAction,+ ("timezoneOffsetDate" Core..=) Core.<$> timezoneOffsetDate,+ ("type" Core..=) Core.<$> type',+ ("valueMsEpoch" Core..=) Core.. Core.AsText Core.<$> valueMsEpoch+ ]+ )++-- | A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget, or a button after the text. For an example in Google Chat apps, see <https://developers.google.com/workspace/chat/add-text-image-card-dialog#display_text_with_decorative_elements Display text with decorative text>. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1DecoratedText' smart constructor.+data GoogleAppsCardV1DecoratedText = GoogleAppsCardV1DecoratedText+ { -- | The text that appears below @text@. Always wraps.+ bottomLabel :: (Core.Maybe Core.Text),+ -- | A button that a user can click to trigger an action.+ button :: (Core.Maybe GoogleAppsCardV1Button),+ -- | An icon displayed after the text. Supports <https://developers.google.com/workspace/chat/format-messages#builtinicons built-in> and <https://developers.google.com/workspace/chat/format-messages#customicons custom> icons.+ endIcon :: (Core.Maybe GoogleAppsCardV1Icon),+ -- | Deprecated in favor of @startIcon@.+ icon :: (Core.Maybe GoogleAppsCardV1Icon),+ -- | This action is triggered when users click @topLabel@ or @bottomLabel@.+ onClick :: (Core.Maybe GoogleAppsCardV1OnClick),+ -- | The icon displayed in front of the text.+ startIcon :: (Core.Maybe GoogleAppsCardV1Icon),+ -- | A switch widget that a user can click to change its state and trigger an action.+ switchControl :: (Core.Maybe GoogleAppsCardV1SwitchControl),+ -- | Required. The primary text. Supports simple formatting. For more information about formatting text, see <https://developers.google.com/workspace/chat/format-messages#card-formatting Formatting text in Google Chat apps> and <https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting Formatting text in Google Workspace add-ons>.+ text :: (Core.Maybe Core.Text),+ -- | The text that appears above @text@. Always truncates.+ topLabel :: (Core.Maybe Core.Text),+ -- | The wrap text setting. If @true@, the text wraps and displays on multiple lines. Otherwise, the text is truncated. Only applies to @text@, not @topLabel@ and @bottomLabel@.+ wrapText :: (Core.Maybe Core.Bool)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1DecoratedText' with the minimum fields required to make a request.+newGoogleAppsCardV1DecoratedText ::+ GoogleAppsCardV1DecoratedText+newGoogleAppsCardV1DecoratedText =+ GoogleAppsCardV1DecoratedText+ { bottomLabel = Core.Nothing,+ button = Core.Nothing,+ endIcon = Core.Nothing,+ icon = Core.Nothing,+ onClick = Core.Nothing,+ startIcon = Core.Nothing,+ switchControl = Core.Nothing,+ text = Core.Nothing,+ topLabel = Core.Nothing,+ wrapText = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1DecoratedText where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1DecoratedText"+ ( \o ->+ GoogleAppsCardV1DecoratedText+ Core.<$> (o Core..:? "bottomLabel")+ Core.<*> (o Core..:? "button")+ Core.<*> (o Core..:? "endIcon")+ Core.<*> (o Core..:? "icon")+ Core.<*> (o Core..:? "onClick")+ Core.<*> (o Core..:? "startIcon")+ Core.<*> (o Core..:? "switchControl")+ Core.<*> (o Core..:? "text")+ Core.<*> (o Core..:? "topLabel")+ Core.<*> (o Core..:? "wrapText")+ )++instance Core.ToJSON GoogleAppsCardV1DecoratedText where+ toJSON GoogleAppsCardV1DecoratedText {..} =+ Core.object+ ( Core.catMaybes+ [ ("bottomLabel" Core..=) Core.<$> bottomLabel,+ ("button" Core..=) Core.<$> button,+ ("endIcon" Core..=) Core.<$> endIcon,+ ("icon" Core..=) Core.<$> icon,+ ("onClick" Core..=) Core.<$> onClick,+ ("startIcon" Core..=) Core.<$> startIcon,+ ("switchControl" Core..=) Core.<$> switchControl,+ ("text" Core..=) Core.<$> text,+ ("topLabel" Core..=) Core.<$> topLabel,+ ("wrapText" Core..=) Core.<$> wrapText+ ]+ )++-- | Displays a divider between widgets as a horizontal line. For an example in Google Chat apps, see <https://developers.google.com/workspace/chat/format-structure-card-dialog#add_a_horizontal_divider_between_widgets Add a horizontal divider between widgets>. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>: For example, the following JSON creates a divider: @\"divider\": {}@+--+-- /See:/ 'newGoogleAppsCardV1Divider' smart constructor.+data GoogleAppsCardV1Divider = GoogleAppsCardV1Divider+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1Divider' with the minimum fields required to make a request.+newGoogleAppsCardV1Divider ::+ GoogleAppsCardV1Divider+newGoogleAppsCardV1Divider = GoogleAppsCardV1Divider++instance Core.FromJSON GoogleAppsCardV1Divider where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1Divider"+ (\o -> Core.pure GoogleAppsCardV1Divider)++instance Core.ToJSON GoogleAppsCardV1Divider where+ toJSON = Core.const Core.emptyObject++-- | Displays a grid with a collection of items. Items can only include text or images. For responsive columns, or to include more than text or images, use @Columns@. For an example in Google Chat apps, see <https://developers.google.com/workspace/chat/format-structure-card-dialog#display_a_grid_with_a_collection_of_items Display a Grid with a collection of items>. A grid supports any number of columns and items. The number of rows is determined by items divided by columns. A grid with 10 items and 2 columns has 5 rows. A grid with 11 items and 2 columns has 6 rows. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>: For example, the following JSON creates a 2 column grid with a single item:+-- @\"grid\": { \"title\": \"A fine collection of items\", \"columnCount\": 2, \"borderStyle\": { \"type\": \"STROKE\", \"cornerRadius\": 4 }, \"items\": [ { \"image\": { \"imageUri\": \"https:\/\/www.example.com\/image.png\", \"cropStyle\": { \"type\": \"SQUARE\" }, \"borderStyle\": { \"type\": \"STROKE\" } }, \"title\": \"An item\", \"textAlignment\": \"CENTER\" } ], \"onClick\": { \"openLink\": { \"url\": \"https:\/\/www.example.com\" } } }@+--+-- /See:/ 'newGoogleAppsCardV1Grid' smart constructor.+data GoogleAppsCardV1Grid = GoogleAppsCardV1Grid+ { -- | The border style to apply to each grid item.+ borderStyle :: (Core.Maybe GoogleAppsCardV1BorderStyle),+ -- | The number of columns to display in the grid. A default value is used if this field isn\'t specified, and that default value is different depending on where the grid is shown (dialog versus companion).+ columnCount :: (Core.Maybe Core.Int32),+ -- | The items to display in the grid.+ items :: (Core.Maybe [GoogleAppsCardV1GridItem]),+ -- | This callback is reused by each individual grid item, but with the item\'s identifier and index in the items list added to the callback\'s parameters.+ onClick :: (Core.Maybe GoogleAppsCardV1OnClick),+ -- | The text that displays in the grid header.+ title :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1Grid' with the minimum fields required to make a request.+newGoogleAppsCardV1Grid ::+ GoogleAppsCardV1Grid+newGoogleAppsCardV1Grid =+ GoogleAppsCardV1Grid+ { borderStyle = Core.Nothing,+ columnCount = Core.Nothing,+ items = Core.Nothing,+ onClick = Core.Nothing,+ title = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1Grid where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1Grid"+ ( \o ->+ GoogleAppsCardV1Grid+ Core.<$> (o Core..:? "borderStyle")+ Core.<*> (o Core..:? "columnCount")+ Core.<*> (o Core..:? "items")+ Core.<*> (o Core..:? "onClick")+ Core.<*> (o Core..:? "title")+ )++instance Core.ToJSON GoogleAppsCardV1Grid where+ toJSON GoogleAppsCardV1Grid {..} =+ Core.object+ ( Core.catMaybes+ [ ("borderStyle" Core..=) Core.<$> borderStyle,+ ("columnCount" Core..=) Core.<$> columnCount,+ ("items" Core..=) Core.<$> items,+ ("onClick" Core..=) Core.<$> onClick,+ ("title" Core..=) Core.<$> title+ ]+ )++-- | Represents an item in a grid layout. Items can contain text, an image, or both text and an image. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1GridItem' smart constructor.+data GoogleAppsCardV1GridItem = GoogleAppsCardV1GridItem+ { -- | A user-specified identifier for this grid item. This identifier is returned in the parent grid\'s @onClick@ callback parameters.+ id :: (Core.Maybe Core.Text),+ -- | The image that displays in the grid item.+ image :: (Core.Maybe GoogleAppsCardV1ImageComponent),+ -- | The layout to use for the grid item.+ layout :: (Core.Maybe GoogleAppsCardV1GridItem_Layout),+ -- | The grid item\'s subtitle.+ subtitle :: (Core.Maybe Core.Text),+ -- | The grid item\'s title.+ title :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1GridItem' with the minimum fields required to make a request.+newGoogleAppsCardV1GridItem ::+ GoogleAppsCardV1GridItem+newGoogleAppsCardV1GridItem =+ GoogleAppsCardV1GridItem+ { id = Core.Nothing,+ image = Core.Nothing,+ layout = Core.Nothing,+ subtitle = Core.Nothing,+ title = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1GridItem where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1GridItem"+ ( \o ->+ GoogleAppsCardV1GridItem+ Core.<$> (o Core..:? "id")+ Core.<*> (o Core..:? "image")+ Core.<*> (o Core..:? "layout")+ Core.<*> (o Core..:? "subtitle")+ Core.<*> (o Core..:? "title")+ )++instance Core.ToJSON GoogleAppsCardV1GridItem where+ toJSON GoogleAppsCardV1GridItem {..} =+ Core.object+ ( Core.catMaybes+ [ ("id" Core..=) Core.<$> id,+ ("image" Core..=) Core.<$> image,+ ("layout" Core..=) Core.<$> layout,+ ("subtitle" Core..=) Core.<$> subtitle,+ ("title" Core..=) Core.<$> title+ ]+ )++-- | An icon displayed in a widget on a card. For an example in Google Chat apps, see <https://developers.google.com/workspace/chat/add-text-image-card-dialog#add_an_icon Add an icon>. Supports <https://developers.google.com/workspace/chat/format-messages#builtinicons built-in> and <https://developers.google.com/workspace/chat/format-messages#customicons custom> icons. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1Icon' smart constructor.+data GoogleAppsCardV1Icon = GoogleAppsCardV1Icon+ { -- | Optional. A description of the icon used for accessibility. If unspecified, the default value @Button@ is provided. As a best practice, you should set a helpful description for what the icon displays, and if applicable, what it does. For example, @A user\'s account portrait@, or @Opens a new browser tab and navigates to the Google Chat developer documentation at https:\/\/developers.google.com\/workspace\/chat@. If the icon is set in a @Button@, the @altText@ appears as helper text when the user hovers over the button. However, if the button also sets @text@, the icon\'s @altText@ is ignored.+ altText :: (Core.Maybe Core.Text),+ -- | Display a custom icon hosted at an HTTPS URL. For example: @\"iconUrl\": \"https:\/\/developers.google.com\/workspace\/chat\/images\/quickstart-app-avatar.png\"@ Supported file types include @.png@ and @.jpg@.+ iconUrl :: (Core.Maybe Core.Text),+ -- | The crop style applied to the image. In some cases, applying a @CIRCLE@ crop causes the image to be drawn larger than a built-in icon.+ imageType :: (Core.Maybe GoogleAppsCardV1Icon_ImageType),+ -- | Display one of the built-in icons provided by Google Workspace. For example, to display an airplane icon, specify @AIRPLANE@. For a bus, specify @BUS@. For a full list of supported icons, see <https://developers.google.com/workspace/chat/format-messages#builtinicons built-in icons>.+ knownIcon :: (Core.Maybe Core.Text),+ -- | Display one of the <https://fonts.google.com/icons Google Material Icons>. For example, to display a <https://fonts.google.com/icons?selected=Material%20Symbols%20Outlined%3Acheck_box%3AFILL%400%3Bwght%40400%3BGRAD%400%3Bopsz%4048 checkbox icon>, use @\"material_icon\": { \"name\": \"check_box\" }@ <https://developers.google.com/workspace/chat Google Chat apps>:+ materialIcon :: (Core.Maybe GoogleAppsCardV1MaterialIcon)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1Icon' with the minimum fields required to make a request.+newGoogleAppsCardV1Icon ::+ GoogleAppsCardV1Icon+newGoogleAppsCardV1Icon =+ GoogleAppsCardV1Icon+ { altText = Core.Nothing,+ iconUrl = Core.Nothing,+ imageType = Core.Nothing,+ knownIcon = Core.Nothing,+ materialIcon = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1Icon where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1Icon"+ ( \o ->+ GoogleAppsCardV1Icon+ Core.<$> (o Core..:? "altText")+ Core.<*> (o Core..:? "iconUrl")+ Core.<*> (o Core..:? "imageType")+ Core.<*> (o Core..:? "knownIcon")+ Core.<*> (o Core..:? "materialIcon")+ )++instance Core.ToJSON GoogleAppsCardV1Icon where+ toJSON GoogleAppsCardV1Icon {..} =+ Core.object+ ( Core.catMaybes+ [ ("altText" Core..=) Core.<$> altText,+ ("iconUrl" Core..=) Core.<$> iconUrl,+ ("imageType" Core..=) Core.<$> imageType,+ ("knownIcon" Core..=) Core.<$> knownIcon,+ ("materialIcon" Core..=) Core.<$> materialIcon+ ]+ )++-- | An image that is specified by a URL and can have an @onClick@ action. For an example, see <https://developers.google.com/workspace/chat/add-text-image-card-dialog#add_an_image Add an image>. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1Image' smart constructor.+data GoogleAppsCardV1Image = GoogleAppsCardV1Image+ { -- | The alternative text of this image that\'s used for accessibility.+ altText :: (Core.Maybe Core.Text),+ -- | The HTTPS URL that hosts the image. For example: @https:\/\/developers.google.com\/workspace\/chat\/images\/quickstart-app-avatar.png@+ imageUrl :: (Core.Maybe Core.Text),+ -- | When a user clicks the image, the click triggers this action.+ onClick :: (Core.Maybe GoogleAppsCardV1OnClick)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1Image' with the minimum fields required to make a request.+newGoogleAppsCardV1Image ::+ GoogleAppsCardV1Image+newGoogleAppsCardV1Image =+ GoogleAppsCardV1Image+ { altText = Core.Nothing,+ imageUrl = Core.Nothing,+ onClick = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1Image where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1Image"+ ( \o ->+ GoogleAppsCardV1Image+ Core.<$> (o Core..:? "altText")+ Core.<*> (o Core..:? "imageUrl")+ Core.<*> (o Core..:? "onClick")+ )++instance Core.ToJSON GoogleAppsCardV1Image where+ toJSON GoogleAppsCardV1Image {..} =+ Core.object+ ( Core.catMaybes+ [ ("altText" Core..=) Core.<$> altText,+ ("imageUrl" Core..=) Core.<$> imageUrl,+ ("onClick" Core..=) Core.<$> onClick+ ]+ )++-- | Represents an image. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1ImageComponent' smart constructor.+data GoogleAppsCardV1ImageComponent = GoogleAppsCardV1ImageComponent+ { -- | The accessibility label for the image.+ altText :: (Core.Maybe Core.Text),+ -- | The border style to apply to the image.+ borderStyle :: (Core.Maybe GoogleAppsCardV1BorderStyle),+ -- | The crop style to apply to the image.+ cropStyle :: (Core.Maybe GoogleAppsCardV1ImageCropStyle),+ -- | The image URL.+ imageUri :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1ImageComponent' with the minimum fields required to make a request.+newGoogleAppsCardV1ImageComponent ::+ GoogleAppsCardV1ImageComponent+newGoogleAppsCardV1ImageComponent =+ GoogleAppsCardV1ImageComponent+ { altText = Core.Nothing,+ borderStyle = Core.Nothing,+ cropStyle = Core.Nothing,+ imageUri = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1ImageComponent where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1ImageComponent"+ ( \o ->+ GoogleAppsCardV1ImageComponent+ Core.<$> (o Core..:? "altText")+ Core.<*> (o Core..:? "borderStyle")+ Core.<*> (o Core..:? "cropStyle")+ Core.<*> (o Core..:? "imageUri")+ )++instance Core.ToJSON GoogleAppsCardV1ImageComponent where+ toJSON GoogleAppsCardV1ImageComponent {..} =+ Core.object+ ( Core.catMaybes+ [ ("altText" Core..=) Core.<$> altText,+ ("borderStyle" Core..=) Core.<$> borderStyle,+ ("cropStyle" Core..=) Core.<$> cropStyle,+ ("imageUri" Core..=) Core.<$> imageUri+ ]+ )++-- | Represents the crop style applied to an image. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>: For example, here\'s how to apply a 16:9 aspect ratio: @cropStyle { \"type\": \"RECTANGLE_CUSTOM\", \"aspectRatio\": 16\/9 }@+--+-- /See:/ 'newGoogleAppsCardV1ImageCropStyle' smart constructor.+data GoogleAppsCardV1ImageCropStyle = GoogleAppsCardV1ImageCropStyle+ { -- | The aspect ratio to use if the crop type is @RECTANGLE_CUSTOM@. For example, here\'s how to apply a 16:9 aspect ratio: @cropStyle { \"type\": \"RECTANGLE_CUSTOM\", \"aspectRatio\": 16\/9 }@+ aspectRatio :: (Core.Maybe Core.Double),+ -- | The crop type.+ type' :: (Core.Maybe GoogleAppsCardV1ImageCropStyle_Type)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1ImageCropStyle' with the minimum fields required to make a request.+newGoogleAppsCardV1ImageCropStyle ::+ GoogleAppsCardV1ImageCropStyle+newGoogleAppsCardV1ImageCropStyle =+ GoogleAppsCardV1ImageCropStyle+ { aspectRatio = Core.Nothing,+ type' = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1ImageCropStyle where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1ImageCropStyle"+ ( \o ->+ GoogleAppsCardV1ImageCropStyle+ Core.<$> (o Core..:? "aspectRatio")+ Core.<*> (o Core..:? "type")+ )++instance Core.ToJSON GoogleAppsCardV1ImageCropStyle where+ toJSON GoogleAppsCardV1ImageCropStyle {..} =+ Core.object+ ( Core.catMaybes+ [ ("aspectRatio" Core..=) Core.<$> aspectRatio,+ ("type" Core..=) Core.<$> type'+ ]+ )++-- | A <https://fonts.google.com/icons Google Material Icon>, which includes over 2500+ options. For example, to display a <https://fonts.google.com/icons?selected=Material%20Symbols%20Outlined%3Acheck_box%3AFILL%400%3Bwght%40400%3BGRAD%400%3Bopsz%4048 checkbox icon> with customized weight and grade, write the following: @{ \"name\": \"check_box\", \"fill\": true, \"weight\": 300, \"grade\": -25 }@ <https://developers.google.com/workspace/chat Google Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1MaterialIcon' smart constructor.+data GoogleAppsCardV1MaterialIcon = GoogleAppsCardV1MaterialIcon+ { -- | Whether the icon renders as filled. Default value is false. To preview different icon settings, go to <https://fonts.google.com/icons Google Font Icons> and adjust the settings under __Customize__.+ fill :: (Core.Maybe Core.Bool),+ -- | Weight and grade affect a symbol’s thickness. Adjustments to grade are more granular than adjustments to weight and have a small impact on the size of the symbol. Choose from {-25, 0, 200}. If absent, default value is 0. If any other value is specified, the default value is used. To preview different icon settings, go to <https://fonts.google.com/icons Google Font Icons> and adjust the settings under __Customize__.+ grade :: (Core.Maybe Core.Int32),+ -- | The icon name defined in the <https://fonts.google.com/icons Google Material Icon>, for example, @check_box@. Any invalid names are abandoned and replaced with empty string and results in the icon failing to render.+ name :: (Core.Maybe Core.Text),+ -- | The stroke weight of the icon. Choose from {100, 200, 300, 400, 500, 600, 700}. If absent, default value is 400. If any other value is specified, the default value is used. To preview different icon settings, go to <https://fonts.google.com/icons Google Font Icons> and adjust the settings under __Customize__.+ weight :: (Core.Maybe Core.Int32)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1MaterialIcon' with the minimum fields required to make a request.+newGoogleAppsCardV1MaterialIcon ::+ GoogleAppsCardV1MaterialIcon+newGoogleAppsCardV1MaterialIcon =+ GoogleAppsCardV1MaterialIcon+ { fill = Core.Nothing,+ grade = Core.Nothing,+ name = Core.Nothing,+ weight = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1MaterialIcon where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1MaterialIcon"+ ( \o ->+ GoogleAppsCardV1MaterialIcon+ Core.<$> (o Core..:? "fill")+ Core.<*> (o Core..:? "grade")+ Core.<*> (o Core..:? "name")+ Core.<*> (o Core..:? "weight")+ )++instance Core.ToJSON GoogleAppsCardV1MaterialIcon where+ toJSON GoogleAppsCardV1MaterialIcon {..} =+ Core.object+ ( Core.catMaybes+ [ ("fill" Core..=) Core.<$> fill,+ ("grade" Core..=) Core.<$> grade,+ ("name" Core..=) Core.<$> name,+ ("weight" Core..=) Core.<$> weight+ ]+ )++-- | <https://developers.google.com/workspace/preview Developer Preview>: A list of widgets that can be displayed in a containing layout, such as a @CarouselCard@. <https://developers.google.com/workspace/chat Google Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1NestedWidget' smart constructor.+data GoogleAppsCardV1NestedWidget = GoogleAppsCardV1NestedWidget+ { -- | A button list widget.+ buttonList :: (Core.Maybe GoogleAppsCardV1ButtonList),+ -- | An image widget.+ image :: (Core.Maybe GoogleAppsCardV1Image),+ -- | A text paragraph widget.+ textParagraph :: (Core.Maybe GoogleAppsCardV1TextParagraph)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1NestedWidget' with the minimum fields required to make a request.+newGoogleAppsCardV1NestedWidget ::+ GoogleAppsCardV1NestedWidget+newGoogleAppsCardV1NestedWidget =+ GoogleAppsCardV1NestedWidget+ { buttonList = Core.Nothing,+ image = Core.Nothing,+ textParagraph = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1NestedWidget where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1NestedWidget"+ ( \o ->+ GoogleAppsCardV1NestedWidget+ Core.<$> (o Core..:? "buttonList")+ Core.<*> (o Core..:? "image")+ Core.<*> (o Core..:? "textParagraph")+ )++instance Core.ToJSON GoogleAppsCardV1NestedWidget where+ toJSON GoogleAppsCardV1NestedWidget {..} =+ Core.object+ ( Core.catMaybes+ [ ("buttonList" Core..=) Core.<$> buttonList,+ ("image" Core..=) Core.<$> image,+ ("textParagraph" Core..=) Core.<$> textParagraph+ ]+ )++-- | Represents how to respond when users click an interactive element on a card, such as a button. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1OnClick' smart constructor.+data GoogleAppsCardV1OnClick = GoogleAppsCardV1OnClick+ { -- | If specified, an action is triggered by this @onClick@.+ action :: (Core.Maybe GoogleAppsCardV1Action),+ -- | A new card is pushed to the card stack after clicking if specified. <https://developers.google.com/workspace/add-ons Google Workspace add-ons>:+ card :: (Core.Maybe GoogleAppsCardV1Card),+ -- | An add-on triggers this action when the action needs to open a link. This differs from the @open_link@ above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. <https://developers.google.com/workspace/add-ons Google Workspace add-ons>:+ openDynamicLinkAction :: (Core.Maybe GoogleAppsCardV1Action),+ -- | If specified, this @onClick@ triggers an open link action.+ openLink :: (Core.Maybe GoogleAppsCardV1OpenLink),+ -- | If specified, this @onClick@ opens an overflow menu.+ overflowMenu :: (Core.Maybe GoogleAppsCardV1OverflowMenu)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1OnClick' with the minimum fields required to make a request.+newGoogleAppsCardV1OnClick ::+ GoogleAppsCardV1OnClick+newGoogleAppsCardV1OnClick =+ GoogleAppsCardV1OnClick+ { action = Core.Nothing,+ card = Core.Nothing,+ openDynamicLinkAction = Core.Nothing,+ openLink = Core.Nothing,+ overflowMenu = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1OnClick where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1OnClick"+ ( \o ->+ GoogleAppsCardV1OnClick+ Core.<$> (o Core..:? "action")+ Core.<*> (o Core..:? "card")+ Core.<*> (o Core..:? "openDynamicLinkAction")+ Core.<*> (o Core..:? "openLink")+ Core.<*> (o Core..:? "overflowMenu")+ )++instance Core.ToJSON GoogleAppsCardV1OnClick where+ toJSON GoogleAppsCardV1OnClick {..} =+ Core.object+ ( Core.catMaybes+ [ ("action" Core..=) Core.<$> action,+ ("card" Core..=) Core.<$> card,+ ("openDynamicLinkAction" Core..=) Core.<$> openDynamicLinkAction,+ ("openLink" Core..=) Core.<$> openLink,+ ("overflowMenu" Core..=) Core.<$> overflowMenu+ ]+ )++-- | Represents an @onClick@ event that opens a hyperlink. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1OpenLink' smart constructor.+data GoogleAppsCardV1OpenLink = GoogleAppsCardV1OpenLink+ { -- | Whether the client forgets about a link after opening it, or observes it until the window closes. <https://developers.google.com/workspace/add-ons Google Workspace add-ons>:+ onClose :: (Core.Maybe GoogleAppsCardV1OpenLink_OnClose),+ -- | How to open a link. <https://developers.google.com/workspace/add-ons Google Workspace add-ons>:+ openAs :: (Core.Maybe GoogleAppsCardV1OpenLink_OpenAs),+ -- | The URL to open.+ url :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1OpenLink' with the minimum fields required to make a request.+newGoogleAppsCardV1OpenLink ::+ GoogleAppsCardV1OpenLink+newGoogleAppsCardV1OpenLink =+ GoogleAppsCardV1OpenLink+ { onClose = Core.Nothing,+ openAs = Core.Nothing,+ url = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1OpenLink where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1OpenLink"+ ( \o ->+ GoogleAppsCardV1OpenLink+ Core.<$> (o Core..:? "onClose")+ Core.<*> (o Core..:? "openAs")+ Core.<*> (o Core..:? "url")+ )++instance Core.ToJSON GoogleAppsCardV1OpenLink where+ toJSON GoogleAppsCardV1OpenLink {..} =+ Core.object+ ( Core.catMaybes+ [ ("onClose" Core..=) Core.<$> onClose,+ ("openAs" Core..=) Core.<$> openAs,+ ("url" Core..=) Core.<$> url+ ]+ )++-- | A widget that presents a pop-up menu with one or more actions that users can invoke. For example, showing non-primary actions in a card. You can use this widget when actions don\'t fit in the available space. To use, specify this widget in the @OnClick@ action of widgets that support it. For example, in a @Button@. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1OverflowMenu' smart constructor.+newtype GoogleAppsCardV1OverflowMenu = GoogleAppsCardV1OverflowMenu+ { -- | Required. The list of menu options.+ items :: (Core.Maybe [GoogleAppsCardV1OverflowMenuItem])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1OverflowMenu' with the minimum fields required to make a request.+newGoogleAppsCardV1OverflowMenu ::+ GoogleAppsCardV1OverflowMenu+newGoogleAppsCardV1OverflowMenu =+ GoogleAppsCardV1OverflowMenu {items = Core.Nothing}++instance Core.FromJSON GoogleAppsCardV1OverflowMenu where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1OverflowMenu"+ (\o -> GoogleAppsCardV1OverflowMenu Core.<$> (o Core..:? "items"))++instance Core.ToJSON GoogleAppsCardV1OverflowMenu where+ toJSON GoogleAppsCardV1OverflowMenu {..} =+ Core.object (Core.catMaybes [("items" Core..=) Core.<$> items])++-- | An option that users can invoke in an overflow menu. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1OverflowMenuItem' smart constructor.+data GoogleAppsCardV1OverflowMenuItem = GoogleAppsCardV1OverflowMenuItem+ { -- | Whether the menu option is disabled. Defaults to false.+ disabled :: (Core.Maybe Core.Bool),+ -- | Required. The action invoked when a menu option is selected. This @OnClick@ cannot contain an @OverflowMenu@, any specified @OverflowMenu@ is dropped and the menu item disabled.+ onClick :: (Core.Maybe GoogleAppsCardV1OnClick),+ -- | The icon displayed in front of the text.+ startIcon :: (Core.Maybe GoogleAppsCardV1Icon),+ -- | Required. The text that identifies or describes the item to users.+ text :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1OverflowMenuItem' with the minimum fields required to make a request.+newGoogleAppsCardV1OverflowMenuItem ::+ GoogleAppsCardV1OverflowMenuItem+newGoogleAppsCardV1OverflowMenuItem =+ GoogleAppsCardV1OverflowMenuItem+ { disabled = Core.Nothing,+ onClick = Core.Nothing,+ startIcon = Core.Nothing,+ text = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1OverflowMenuItem where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1OverflowMenuItem"+ ( \o ->+ GoogleAppsCardV1OverflowMenuItem+ Core.<$> (o Core..:? "disabled")+ Core.<*> (o Core..:? "onClick")+ Core.<*> (o Core..:? "startIcon")+ Core.<*> (o Core..:? "text")+ )++instance Core.ToJSON GoogleAppsCardV1OverflowMenuItem where+ toJSON GoogleAppsCardV1OverflowMenuItem {..} =+ Core.object+ ( Core.catMaybes+ [ ("disabled" Core..=) Core.<$> disabled,+ ("onClick" Core..=) Core.<$> onClick,+ ("startIcon" Core..=) Core.<$> startIcon,+ ("text" Core..=) Core.<$> text+ ]+ )++-- | For a @SelectionInput@ widget that uses a multiselect menu, a data source from Google Workspace. Used to populate items in a multiselect menu. <https://developers.google.com/workspace/chat Google Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1PlatformDataSource' smart constructor.+data GoogleAppsCardV1PlatformDataSource = GoogleAppsCardV1PlatformDataSource+ { -- | A data source shared by all Google Workspace applications, such as users in a Google Workspace organization.+ commonDataSource :: (Core.Maybe GoogleAppsCardV1PlatformDataSource_CommonDataSource),+ -- | A data source that\'s unique to a Google Workspace host application, such spaces in Google Chat. This field supports the Google API Client Libraries but isn\'t available in the Cloud Client Libraries. To learn more, see <https://developers.google.com/workspace/chat/libraries Install the client libraries>.+ hostAppDataSource :: (Core.Maybe HostAppDataSourceMarkup)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1PlatformDataSource' with the minimum fields required to make a request.+newGoogleAppsCardV1PlatformDataSource ::+ GoogleAppsCardV1PlatformDataSource+newGoogleAppsCardV1PlatformDataSource =+ GoogleAppsCardV1PlatformDataSource+ { commonDataSource =+ Core.Nothing,+ hostAppDataSource = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1PlatformDataSource where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1PlatformDataSource"+ ( \o ->+ GoogleAppsCardV1PlatformDataSource+ Core.<$> (o Core..:? "commonDataSource")+ Core.<*> (o Core..:? "hostAppDataSource")+ )++instance Core.ToJSON GoogleAppsCardV1PlatformDataSource where+ toJSON GoogleAppsCardV1PlatformDataSource {..} =+ Core.object+ ( Core.catMaybes+ [ ("commonDataSource" Core..=) Core.<$> commonDataSource,+ ("hostAppDataSource" Core..=) Core.<$> hostAppDataSource+ ]+ )++-- | A section contains a collection of widgets that are rendered vertically in the order that they\'re specified. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1Section' smart constructor.+data GoogleAppsCardV1Section = GoogleAppsCardV1Section+ { -- | Optional. Define the expand and collapse button of the section. This button will be shown only if the section is collapsible. If this field isn\'t set, the default button is used.+ collapseControl :: (Core.Maybe GoogleAppsCardV1CollapseControl),+ -- | Indicates whether this section is collapsible. Collapsible sections hide some or all widgets, but users can expand the section to reveal the hidden widgets by clicking __Show more__. Users can hide the widgets again by clicking __Show less__. To determine which widgets are hidden, specify @uncollapsibleWidgetsCount@.+ collapsible :: (Core.Maybe Core.Bool),+ -- | Text that appears at the top of a section. Supports simple HTML formatted text. For more information about formatting text, see <https://developers.google.com/workspace/chat/format-messages#card-formatting Formatting text in Google Chat apps> and <https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting Formatting text in Google Workspace add-ons>.+ header :: (Core.Maybe Core.Text),+ -- | The number of uncollapsible widgets which remain visible even when a section is collapsed. For example, when a section contains five widgets and the @uncollapsibleWidgetsCount@ is set to @2@, the first two widgets are always shown and the last three are collapsed by default. The @uncollapsibleWidgetsCount@ is taken into account only when @collapsible@ is @true@.+ uncollapsibleWidgetsCount :: (Core.Maybe Core.Int32),+ -- | All the widgets in the section. Must contain at least one widget.+ widgets :: (Core.Maybe [GoogleAppsCardV1Widget])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1Section' with the minimum fields required to make a request.+newGoogleAppsCardV1Section ::+ GoogleAppsCardV1Section+newGoogleAppsCardV1Section =+ GoogleAppsCardV1Section+ { collapseControl = Core.Nothing,+ collapsible = Core.Nothing,+ header = Core.Nothing,+ uncollapsibleWidgetsCount = Core.Nothing,+ widgets = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1Section where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1Section"+ ( \o ->+ GoogleAppsCardV1Section+ Core.<$> (o Core..:? "collapseControl")+ Core.<*> (o Core..:? "collapsible")+ Core.<*> (o Core..:? "header")+ Core.<*> (o Core..:? "uncollapsibleWidgetsCount")+ Core.<*> (o Core..:? "widgets")+ )++instance Core.ToJSON GoogleAppsCardV1Section where+ toJSON GoogleAppsCardV1Section {..} =+ Core.object+ ( Core.catMaybes+ [ ("collapseControl" Core..=) Core.<$> collapseControl,+ ("collapsible" Core..=) Core.<$> collapsible,+ ("header" Core..=) Core.<$> header,+ ("uncollapsibleWidgetsCount" Core..=)+ Core.<$> uncollapsibleWidgetsCount,+ ("widgets" Core..=) Core.<$> widgets+ ]+ )++-- | A widget that creates one or more UI items that users can select. Supports form submission validation for @dropdown@ and @multiselect@ menus only. When @Action.all_widgets_are_required@ is set to @true@ or this widget is specified in @Action.required_widgets@, the submission action is blocked unless a value is selected. For example, a dropdown menu or checkboxes. You can use this widget to collect data that can be predicted or enumerated. For an example in Google Chat apps, see </workspace/chat/design-interactive-card-dialog#add_selectable_ui_elements Add selectable UI elements>. Chat apps can process the value of items that users select or input. For details about working with form inputs, see <https://developers.google.com/workspace/chat/read-form-data Receive form data>. To collect undefined or abstract data from users, use the TextInput widget. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1SelectionInput' smart constructor.+data GoogleAppsCardV1SelectionInput = GoogleAppsCardV1SelectionInput+ { -- | An external data source, such as a relational database.+ externalDataSource :: (Core.Maybe GoogleAppsCardV1Action),+ -- | An array of selectable items. For example, an array of radio buttons or checkboxes. Supports up to 100 items.+ items :: (Core.Maybe [GoogleAppsCardV1SelectionItem]),+ -- | The text that appears above the selection input field in the user interface. Specify text that helps the user enter the information your app needs. For example, if users are selecting the urgency of a work ticket from a drop-down menu, the label might be \"Urgency\" or \"Select urgency\".+ label :: (Core.Maybe Core.Text),+ -- | For multiselect menus, the maximum number of items that a user can select. Minimum value is 1 item. If unspecified, defaults to 3 items.+ multiSelectMaxSelectedItems :: (Core.Maybe Core.Int32),+ -- | For multiselect menus, the number of text characters that a user inputs before the menu returns suggested selection items. If unset, the multiselect menu uses the following default values: * If the menu uses a static array of @SelectionInput@ items, defaults to 0 characters and immediately populates items from the array. * If the menu uses a dynamic data source (@multi_select_data_source@), defaults to 3 characters before querying the data source to return suggested items.+ multiSelectMinQueryLength :: (Core.Maybe Core.Int32),+ -- | Required. The name that identifies the selection input in a form input event. For details about working with form inputs, see <https://developers.google.com/workspace/chat/read-form-data Receive form data>.+ name :: (Core.Maybe Core.Text),+ -- | If specified, the form is submitted when the selection changes. If not specified, you must specify a separate button that submits the form. For details about working with form inputs, see <https://developers.google.com/workspace/chat/read-form-data Receive form data>.+ onChangeAction :: (Core.Maybe GoogleAppsCardV1Action),+ -- | A data source from Google Workspace.+ platformDataSource :: (Core.Maybe GoogleAppsCardV1PlatformDataSource),+ -- | The type of items that are displayed to users in a @SelectionInput@ widget. Selection types support different types of interactions. For example, users can select one or more checkboxes, but they can only select one value from a dropdown menu.+ type' :: (Core.Maybe GoogleAppsCardV1SelectionInput_Type)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1SelectionInput' with the minimum fields required to make a request.+newGoogleAppsCardV1SelectionInput ::+ GoogleAppsCardV1SelectionInput+newGoogleAppsCardV1SelectionInput =+ GoogleAppsCardV1SelectionInput+ { externalDataSource = Core.Nothing,+ items = Core.Nothing,+ label = Core.Nothing,+ multiSelectMaxSelectedItems = Core.Nothing,+ multiSelectMinQueryLength = Core.Nothing,+ name = Core.Nothing,+ onChangeAction = Core.Nothing,+ platformDataSource = Core.Nothing,+ type' = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1SelectionInput where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1SelectionInput"+ ( \o ->+ GoogleAppsCardV1SelectionInput+ Core.<$> (o Core..:? "externalDataSource")+ Core.<*> (o Core..:? "items")+ Core.<*> (o Core..:? "label")+ Core.<*> (o Core..:? "multiSelectMaxSelectedItems")+ Core.<*> (o Core..:? "multiSelectMinQueryLength")+ Core.<*> (o Core..:? "name")+ Core.<*> (o Core..:? "onChangeAction")+ Core.<*> (o Core..:? "platformDataSource")+ Core.<*> (o Core..:? "type")+ )++instance Core.ToJSON GoogleAppsCardV1SelectionInput where+ toJSON GoogleAppsCardV1SelectionInput {..} =+ Core.object+ ( Core.catMaybes+ [ ("externalDataSource" Core..=) Core.<$> externalDataSource,+ ("items" Core..=) Core.<$> items,+ ("label" Core..=) Core.<$> label,+ ("multiSelectMaxSelectedItems" Core..=)+ Core.<$> multiSelectMaxSelectedItems,+ ("multiSelectMinQueryLength" Core..=)+ Core.<$> multiSelectMinQueryLength,+ ("name" Core..=) Core.<$> name,+ ("onChangeAction" Core..=) Core.<$> onChangeAction,+ ("platformDataSource" Core..=) Core.<$> platformDataSource,+ ("type" Core..=) Core.<$> type'+ ]+ )++-- | An item that users can select in a selection input, such as a checkbox or switch. Supports up to 100 items. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1SelectionItem' smart constructor.+data GoogleAppsCardV1SelectionItem = GoogleAppsCardV1SelectionItem+ { -- | For multiselect menus, a text description or label that\'s displayed below the item\'s @text@ field.+ bottomText :: (Core.Maybe Core.Text),+ -- | Whether the item is selected by default. If the selection input only accepts one value (such as for radio buttons or a dropdown menu), only set this field for one item.+ selected :: (Core.Maybe Core.Bool),+ -- | For multiselect menus, the URL for the icon displayed next to the item\'s @text@ field. Supports PNG and JPEG files. Must be an @HTTPS@ URL. For example, @https:\/\/developers.google.com\/workspace\/chat\/images\/quickstart-app-avatar.png@.+ startIconUri :: (Core.Maybe Core.Text),+ -- | The text that identifies or describes the item to users.+ text :: (Core.Maybe Core.Text),+ -- | The value associated with this item. The client should use this as a form input value. For details about working with form inputs, see <https://developers.google.com/workspace/chat/read-form-data Receive form data>.+ value :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1SelectionItem' with the minimum fields required to make a request.+newGoogleAppsCardV1SelectionItem ::+ GoogleAppsCardV1SelectionItem+newGoogleAppsCardV1SelectionItem =+ GoogleAppsCardV1SelectionItem+ { bottomText = Core.Nothing,+ selected = Core.Nothing,+ startIconUri = Core.Nothing,+ text = Core.Nothing,+ value = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1SelectionItem where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1SelectionItem"+ ( \o ->+ GoogleAppsCardV1SelectionItem+ Core.<$> (o Core..:? "bottomText")+ Core.<*> (o Core..:? "selected")+ Core.<*> (o Core..:? "startIconUri")+ Core.<*> (o Core..:? "text")+ Core.<*> (o Core..:? "value")+ )++instance Core.ToJSON GoogleAppsCardV1SelectionItem where+ toJSON GoogleAppsCardV1SelectionItem {..} =+ Core.object+ ( Core.catMaybes+ [ ("bottomText" Core..=) Core.<$> bottomText,+ ("selected" Core..=) Core.<$> selected,+ ("startIconUri" Core..=) Core.<$> startIconUri,+ ("text" Core..=) Core.<$> text,+ ("value" Core..=) Core.<$> value+ ]+ )++-- | One suggested value that users can enter in a text input field. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1SuggestionItem' smart constructor.+newtype GoogleAppsCardV1SuggestionItem = GoogleAppsCardV1SuggestionItem+ { -- | The value of a suggested input to a text input field. This is equivalent to what users enter themselves.+ text :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1SuggestionItem' with the minimum fields required to make a request.+newGoogleAppsCardV1SuggestionItem ::+ GoogleAppsCardV1SuggestionItem+newGoogleAppsCardV1SuggestionItem =+ GoogleAppsCardV1SuggestionItem {text = Core.Nothing}++instance Core.FromJSON GoogleAppsCardV1SuggestionItem where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1SuggestionItem"+ ( \o ->+ GoogleAppsCardV1SuggestionItem Core.<$> (o Core..:? "text")+ )++instance Core.ToJSON GoogleAppsCardV1SuggestionItem where+ toJSON GoogleAppsCardV1SuggestionItem {..} =+ Core.object (Core.catMaybes [("text" Core..=) Core.<$> text])++-- | Suggested values that users can enter. These values appear when users click inside the text input field. As users type, the suggested values dynamically filter to match what the users have typed. For example, a text input field for programming language might suggest Java, JavaScript, Python, and C++. When users start typing @Jav@, the list of suggestions filters to show @Java@ and @JavaScript@. Suggested values help guide users to enter values that your app can make sense of. When referring to JavaScript, some users might enter @javascript@ and others @java script@. Suggesting @JavaScript@ can standardize how users interact with your app. When specified, @TextInput.type@ is always @SINGLE_LINE@, even if it\'s set to @MULTIPLE_LINE@. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1Suggestions' smart constructor.+newtype GoogleAppsCardV1Suggestions = GoogleAppsCardV1Suggestions+ { -- | A list of suggestions used for autocomplete recommendations in text input fields.+ items :: (Core.Maybe [GoogleAppsCardV1SuggestionItem])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1Suggestions' with the minimum fields required to make a request.+newGoogleAppsCardV1Suggestions ::+ GoogleAppsCardV1Suggestions+newGoogleAppsCardV1Suggestions =+ GoogleAppsCardV1Suggestions {items = Core.Nothing}++instance Core.FromJSON GoogleAppsCardV1Suggestions where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1Suggestions"+ (\o -> GoogleAppsCardV1Suggestions Core.<$> (o Core..:? "items"))++instance Core.ToJSON GoogleAppsCardV1Suggestions where+ toJSON GoogleAppsCardV1Suggestions {..} =+ Core.object (Core.catMaybes [("items" Core..=) Core.<$> items])++-- | Either a toggle-style switch or a checkbox inside a @decoratedText@ widget. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>: Only supported in the @decoratedText@ widget.+--+-- /See:/ 'newGoogleAppsCardV1SwitchControl' smart constructor.+data GoogleAppsCardV1SwitchControl = GoogleAppsCardV1SwitchControl+ { -- | How the switch appears in the user interface. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+ controlType :: (Core.Maybe GoogleAppsCardV1SwitchControl_ControlType),+ -- | The name by which the switch widget is identified in a form input event. For details about working with form inputs, see <https://developers.google.com/workspace/chat/read-form-data Receive form data>.+ name :: (Core.Maybe Core.Text),+ -- | The action to perform when the switch state is changed, such as what function to run.+ onChangeAction :: (Core.Maybe GoogleAppsCardV1Action),+ -- | When @true@, the switch is selected.+ selected :: (Core.Maybe Core.Bool),+ -- | The value entered by a user, returned as part of a form input event. For details about working with form inputs, see <https://developers.google.com/workspace/chat/read-form-data Receive form data>.+ value :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1SwitchControl' with the minimum fields required to make a request.+newGoogleAppsCardV1SwitchControl ::+ GoogleAppsCardV1SwitchControl+newGoogleAppsCardV1SwitchControl =+ GoogleAppsCardV1SwitchControl+ { controlType = Core.Nothing,+ name = Core.Nothing,+ onChangeAction = Core.Nothing,+ selected = Core.Nothing,+ value = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1SwitchControl where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1SwitchControl"+ ( \o ->+ GoogleAppsCardV1SwitchControl+ Core.<$> (o Core..:? "controlType")+ Core.<*> (o Core..:? "name")+ Core.<*> (o Core..:? "onChangeAction")+ Core.<*> (o Core..:? "selected")+ Core.<*> (o Core..:? "value")+ )++instance Core.ToJSON GoogleAppsCardV1SwitchControl where+ toJSON GoogleAppsCardV1SwitchControl {..} =+ Core.object+ ( Core.catMaybes+ [ ("controlType" Core..=) Core.<$> controlType,+ ("name" Core..=) Core.<$> name,+ ("onChangeAction" Core..=) Core.<$> onChangeAction,+ ("selected" Core..=) Core.<$> selected,+ ("value" Core..=) Core.<$> value+ ]+ )++-- | A field in which users can enter text. Supports suggestions and on-change actions. Supports form submission validation. When @Action.all_widgets_are_required@ is set to @true@ or this widget is specified in @Action.required_widgets@, the submission action is blocked unless a value is entered. For an example in Google Chat apps, see <https://developers.google.com/workspace/chat/design-interactive-card-dialog#add_a_field_in_which_a_user_can_enter_text Add a field in which a user can enter text>. Chat apps receive and can process the value of entered text during form input events. For details about working with form inputs, see <https://developers.google.com/workspace/chat/read-form-data Receive form data>. When you need to collect undefined or abstract data from users, use a text input. To collect defined or enumerated data from users, use the SelectionInput widget. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1TextInput' smart constructor.+data GoogleAppsCardV1TextInput = GoogleAppsCardV1TextInput+ { -- | Optional. Specify what action to take when the text input field provides suggestions to users who interact with it. If unspecified, the suggestions are set by @initialSuggestions@ and are processed by the client. If specified, the app takes the action specified here, such as running a custom function. <https://developers.google.com/workspace/add-ons Google Workspace add-ons>:+ autoCompleteAction :: (Core.Maybe GoogleAppsCardV1Action),+ -- | Text that appears below the text input field meant to assist users by prompting them to enter a certain value. This text is always visible. Required if @label@ is unspecified. Otherwise, optional.+ hintText :: (Core.Maybe Core.Text),+ -- | Suggested values that users can enter. These values appear when users click inside the text input field. As users type, the suggested values dynamically filter to match what the users have typed. For example, a text input field for programming language might suggest Java, JavaScript, Python, and C++. When users start typing @Jav@, the list of suggestions filters to show just @Java@ and @JavaScript@. Suggested values help guide users to enter values that your app can make sense of. When referring to JavaScript, some users might enter @javascript@ and others @java script@. Suggesting @JavaScript@ can standardize how users interact with your app. When specified, @TextInput.type@ is always @SINGLE_LINE@, even if it\'s set to @MULTIPLE_LINE@. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+ initialSuggestions :: (Core.Maybe GoogleAppsCardV1Suggestions),+ -- | The text that appears above the text input field in the user interface. Specify text that helps the user enter the information your app needs. For example, if you are asking someone\'s name, but specifically need their surname, write @surname@ instead of @name@. Required if @hintText@ is unspecified. Otherwise, optional.+ label :: (Core.Maybe Core.Text),+ -- | The name by which the text input is identified in a form input event. For details about working with form inputs, see <https://developers.google.com/workspace/chat/read-form-data Receive form data>.+ name :: (Core.Maybe Core.Text),+ -- | What to do when a change occurs in the text input field. For example, a user adding to the field or deleting text. Examples of actions to take include running a custom function or opening a <https://developers.google.com/workspace/chat/dialogs dialog> in Google Chat.+ onChangeAction :: (Core.Maybe GoogleAppsCardV1Action),+ -- | Text that appears in the text input field when the field is empty. Use this text to prompt users to enter a value. For example, @Enter a number from 0 to 100@. <https://developers.google.com/workspace/chat Google Chat apps>:+ placeholderText :: (Core.Maybe Core.Text),+ -- | How a text input field appears in the user interface. For example, whether the field is single or multi-line.+ type' :: (Core.Maybe GoogleAppsCardV1TextInput_Type),+ -- | Specify the input format validation necessary for this text field. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+ validation :: (Core.Maybe GoogleAppsCardV1Validation),+ -- | The value entered by a user, returned as part of a form input event. For details about working with form inputs, see <https://developers.google.com/workspace/chat/read-form-data Receive form data>.+ value :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1TextInput' with the minimum fields required to make a request.+newGoogleAppsCardV1TextInput ::+ GoogleAppsCardV1TextInput+newGoogleAppsCardV1TextInput =+ GoogleAppsCardV1TextInput+ { autoCompleteAction = Core.Nothing,+ hintText = Core.Nothing,+ initialSuggestions = Core.Nothing,+ label = Core.Nothing,+ name = Core.Nothing,+ onChangeAction = Core.Nothing,+ placeholderText = Core.Nothing,+ type' = Core.Nothing,+ validation = Core.Nothing,+ value = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1TextInput where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1TextInput"+ ( \o ->+ GoogleAppsCardV1TextInput+ Core.<$> (o Core..:? "autoCompleteAction")+ Core.<*> (o Core..:? "hintText")+ Core.<*> (o Core..:? "initialSuggestions")+ Core.<*> (o Core..:? "label")+ Core.<*> (o Core..:? "name")+ Core.<*> (o Core..:? "onChangeAction")+ Core.<*> (o Core..:? "placeholderText")+ Core.<*> (o Core..:? "type")+ Core.<*> (o Core..:? "validation")+ Core.<*> (o Core..:? "value")+ )++instance Core.ToJSON GoogleAppsCardV1TextInput where+ toJSON GoogleAppsCardV1TextInput {..} =+ Core.object+ ( Core.catMaybes+ [ ("autoCompleteAction" Core..=) Core.<$> autoCompleteAction,+ ("hintText" Core..=) Core.<$> hintText,+ ("initialSuggestions" Core..=) Core.<$> initialSuggestions,+ ("label" Core..=) Core.<$> label,+ ("name" Core..=) Core.<$> name,+ ("onChangeAction" Core..=) Core.<$> onChangeAction,+ ("placeholderText" Core..=) Core.<$> placeholderText,+ ("type" Core..=) Core.<$> type',+ ("validation" Core..=) Core.<$> validation,+ ("value" Core..=) Core.<$> value+ ]+ )++-- | A paragraph of text that supports formatting. For an example in Google Chat apps, see <https://developers.google.com/workspace/chat/add-text-image-card-dialog#add_a_paragraph_of_formatted_text Add a paragraph of formatted text>. For more information about formatting text, see <https://developers.google.com/workspace/chat/format-messages#card-formatting Formatting text in Google Chat apps> and <https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting Formatting text in Google Workspace add-ons>. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1TextParagraph' smart constructor.+data GoogleAppsCardV1TextParagraph = GoogleAppsCardV1TextParagraph+ { -- | The maximum number of lines of text that are displayed in the widget. If the text exceeds the specified maximum number of lines, the excess content is concealed behind a __show more__ button. If the text is equal or shorter than the specified maximum number of lines, a __show more__ button isn\'t displayed. The default value is 0, in which case all context is displayed. Negative values are ignored.+ maxLines :: (Core.Maybe Core.Int32),+ -- | The text that\'s shown in the widget.+ text :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1TextParagraph' with the minimum fields required to make a request.+newGoogleAppsCardV1TextParagraph ::+ GoogleAppsCardV1TextParagraph+newGoogleAppsCardV1TextParagraph =+ GoogleAppsCardV1TextParagraph+ { maxLines = Core.Nothing,+ text = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1TextParagraph where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1TextParagraph"+ ( \o ->+ GoogleAppsCardV1TextParagraph+ Core.<$> (o Core..:? "maxLines")+ Core.<*> (o Core..:? "text")+ )++instance Core.ToJSON GoogleAppsCardV1TextParagraph where+ toJSON GoogleAppsCardV1TextParagraph {..} =+ Core.object+ ( Core.catMaybes+ [ ("maxLines" Core..=) Core.<$> maxLines,+ ("text" Core..=) Core.<$> text+ ]+ )++-- | Represents the necessary data for validating the widget it\'s attached to. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+--+-- /See:/ 'newGoogleAppsCardV1Validation' smart constructor.+data GoogleAppsCardV1Validation = GoogleAppsCardV1Validation+ { -- | Specify the character limit for text input widgets. Note that this is only used for text input and is ignored for other widgets. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+ characterLimit :: (Core.Maybe Core.Int32),+ -- | Specify the type of the input widgets. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+ inputType :: (Core.Maybe GoogleAppsCardV1Validation_InputType)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1Validation' with the minimum fields required to make a request.+newGoogleAppsCardV1Validation ::+ GoogleAppsCardV1Validation+newGoogleAppsCardV1Validation =+ GoogleAppsCardV1Validation+ { characterLimit = Core.Nothing,+ inputType = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1Validation where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1Validation"+ ( \o ->+ GoogleAppsCardV1Validation+ Core.<$> (o Core..:? "characterLimit")+ Core.<*> (o Core..:? "inputType")+ )++instance Core.ToJSON GoogleAppsCardV1Validation where+ toJSON GoogleAppsCardV1Validation {..} =+ Core.object+ ( Core.catMaybes+ [ ("characterLimit" Core..=) Core.<$> characterLimit,+ ("inputType" Core..=) Core.<$> inputType+ ]+ )++-- | Each card is made up of widgets. A widget is a composite object that can represent one of text, images, buttons, and other object types.+--+-- /See:/ 'newGoogleAppsCardV1Widget' smart constructor.+data GoogleAppsCardV1Widget = GoogleAppsCardV1Widget+ { -- | A list of buttons. For example, the following JSON creates two buttons. The first is a blue text button and the second is an image button that opens a link: @\"buttonList\": { \"buttons\": [ { \"text\": \"Edit\", \"color\": { \"red\": 0, \"green\": 0, \"blue\": 1, }, \"disabled\": true, }, { \"icon\": { \"knownIcon\": \"INVITE\", \"altText\": \"check calendar\" }, \"onClick\": { \"openLink\": { \"url\": \"https:\/\/example.com\/calendar\" } } } ] }@+ buttonList :: (Core.Maybe GoogleAppsCardV1ButtonList),+ -- | A carousel contains a collection of nested widgets. For example, this is a JSON representation of a carousel that contains two text paragraphs. @{ \"widgets\": [ { \"textParagraph\": { \"text\": \"First text paragraph in the carousel.\" } }, { \"textParagraph\": { \"text\": \"Second text paragraph in the carousel.\" } } ] }@+ carousel :: (Core.Maybe GoogleAppsCardV1Carousel),+ -- | A list of chips. For example, the following JSON creates two chips. The first is a text chip and the second is an icon chip that opens a link: @\"chipList\": { \"chips\": [ { \"text\": \"Edit\", \"disabled\": true, }, { \"icon\": { \"knownIcon\": \"INVITE\", \"altText\": \"check calendar\" }, \"onClick\": { \"openLink\": { \"url\": \"https:\/\/example.com\/calendar\" } } } ] }@+ chipList :: (Core.Maybe GoogleAppsCardV1ChipList),+ -- | Displays up to 2 columns. To include more than 2 columns, or to use rows, use the @Grid@ widget. For example, the following JSON creates 2 columns that each contain text paragraphs: @\"columns\": { \"columnItems\": [ { \"horizontalSizeStyle\": \"FILL_AVAILABLE_SPACE\", \"horizontalAlignment\": \"CENTER\", \"verticalAlignment\": \"CENTER\", \"widgets\": [ { \"textParagraph\": { \"text\": \"First column text paragraph\" } } ] }, { \"horizontalSizeStyle\": \"FILL_AVAILABLE_SPACE\", \"horizontalAlignment\": \"CENTER\", \"verticalAlignment\": \"CENTER\", \"widgets\": [ { \"textParagraph\": { \"text\": \"Second column text paragraph\" } } ] } ] }@+ columns :: (Core.Maybe GoogleAppsCardV1Columns),+ -- | Displays a widget that lets users input a date, time, or date and time. For example, the following JSON creates a date time picker to schedule an appointment: @\"dateTimePicker\": { \"name\": \"appointment_time\", \"label\": \"Book your appointment at:\", \"type\": \"DATE_AND_TIME\", \"valueMsEpoch\": \"796435200000\" }@+ dateTimePicker :: (Core.Maybe GoogleAppsCardV1DateTimePicker),+ -- | Displays a decorated text item. For example, the following JSON creates a decorated text widget showing email address: @\"decoratedText\": { \"icon\": { \"knownIcon\": \"EMAIL\" }, \"topLabel\": \"Email Address\", \"text\": \"sasha\@example.com\", \"bottomLabel\": \"This is a new Email address!\", \"switchControl\": { \"name\": \"has_send_welcome_email_to_sasha\", \"selected\": false, \"controlType\": \"CHECKBOX\" } }@+ decoratedText :: (Core.Maybe GoogleAppsCardV1DecoratedText),+ -- | Displays a horizontal line divider between widgets. For example, the following JSON creates a divider: @\"divider\": { }@+ divider :: (Core.Maybe GoogleAppsCardV1Divider),+ -- | Displays a grid with a collection of items. A grid supports any number of columns and items. The number of rows is determined by the upper bounds of the number items divided by the number of columns. A grid with 10 items and 2 columns has 5 rows. A grid with 11 items and 2 columns has 6 rows. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>: For example, the following JSON creates a 2 column grid with a single item: @\"grid\": { \"title\": \"A fine collection of items\", \"columnCount\": 2, \"borderStyle\": { \"type\": \"STROKE\", \"cornerRadius\": 4 }, \"items\": [ { \"image\": { \"imageUri\": \"https:\/\/www.example.com\/image.png\", \"cropStyle\": { \"type\": \"SQUARE\" }, \"borderStyle\": { \"type\": \"STROKE\" } }, \"title\": \"An item\", \"textAlignment\": \"CENTER\" } ], \"onClick\": { \"openLink\": { \"url\": \"https:\/\/www.example.com\" } } }@+ grid :: (Core.Maybe GoogleAppsCardV1Grid),+ -- | Specifies whether widgets align to the left, right, or center of a column.+ horizontalAlignment :: (Core.Maybe GoogleAppsCardV1Widget_HorizontalAlignment),+ -- | Displays an image. For example, the following JSON creates an image with alternative text: @\"image\": { \"imageUrl\": \"https:\/\/developers.google.com\/workspace\/chat\/images\/quickstart-app-avatar.png\", \"altText\": \"Chat app avatar\" }@+ image :: (Core.Maybe GoogleAppsCardV1Image),+ -- | Displays a selection control that lets users select items. Selection controls can be checkboxes, radio buttons, switches, or dropdown menus. For example, the following JSON creates a dropdown menu that lets users choose a size: @\"selectionInput\": { \"name\": \"size\", \"label\": \"Size\" \"type\": \"DROPDOWN\", \"items\": [ { \"text\": \"S\", \"value\": \"small\", \"selected\": false }, { \"text\": \"M\", \"value\": \"medium\", \"selected\": true }, { \"text\": \"L\", \"value\": \"large\", \"selected\": false }, { \"text\": \"XL\", \"value\": \"extra_large\", \"selected\": false } ] }@+ selectionInput :: (Core.Maybe GoogleAppsCardV1SelectionInput),+ -- | Displays a text box that users can type into. For example, the following JSON creates a text input for an email address: @\"textInput\": { \"name\": \"mailing_address\", \"label\": \"Mailing Address\" }@ As another example, the following JSON creates a text input for a programming language with static suggestions: @\"textInput\": { \"name\": \"preferred_programing_language\", \"label\": \"Preferred Language\", \"initialSuggestions\": { \"items\": [ { \"text\": \"C++\" }, { \"text\": \"Java\" }, { \"text\": \"JavaScript\" }, { \"text\": \"Python\" } ] } }@+ textInput :: (Core.Maybe GoogleAppsCardV1TextInput),+ -- | Displays a text paragraph. Supports simple HTML formatted text. For more information about formatting text, see <https://developers.google.com/workspace/chat/format-messages#card-formatting Formatting text in Google Chat apps> and <https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting Formatting text in Google Workspace add-ons>. For example, the following JSON creates a bolded text: @\"textParagraph\": { \"text\": \" *bold text*\" }@+ textParagraph :: (Core.Maybe GoogleAppsCardV1TextParagraph)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1Widget' with the minimum fields required to make a request.+newGoogleAppsCardV1Widget ::+ GoogleAppsCardV1Widget+newGoogleAppsCardV1Widget =+ GoogleAppsCardV1Widget+ { buttonList = Core.Nothing,+ carousel = Core.Nothing,+ chipList = Core.Nothing,+ columns = Core.Nothing,+ dateTimePicker = Core.Nothing,+ decoratedText = Core.Nothing,+ divider = Core.Nothing,+ grid = Core.Nothing,+ horizontalAlignment = Core.Nothing,+ image = Core.Nothing,+ selectionInput = Core.Nothing,+ textInput = Core.Nothing,+ textParagraph = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1Widget where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1Widget"+ ( \o ->+ GoogleAppsCardV1Widget+ Core.<$> (o Core..:? "buttonList")+ Core.<*> (o Core..:? "carousel")+ Core.<*> (o Core..:? "chipList")+ Core.<*> (o Core..:? "columns")+ Core.<*> (o Core..:? "dateTimePicker")+ Core.<*> (o Core..:? "decoratedText")+ Core.<*> (o Core..:? "divider")+ Core.<*> (o Core..:? "grid")+ Core.<*> (o Core..:? "horizontalAlignment")+ Core.<*> (o Core..:? "image")+ Core.<*> (o Core..:? "selectionInput")+ Core.<*> (o Core..:? "textInput")+ Core.<*> (o Core..:? "textParagraph")+ )++instance Core.ToJSON GoogleAppsCardV1Widget where+ toJSON GoogleAppsCardV1Widget {..} =+ Core.object+ ( Core.catMaybes+ [ ("buttonList" Core..=) Core.<$> buttonList,+ ("carousel" Core..=) Core.<$> carousel,+ ("chipList" Core..=) Core.<$> chipList,+ ("columns" Core..=) Core.<$> columns,+ ("dateTimePicker" Core..=) Core.<$> dateTimePicker,+ ("decoratedText" Core..=) Core.<$> decoratedText,+ ("divider" Core..=) Core.<$> divider,+ ("grid" Core..=) Core.<$> grid,+ ("horizontalAlignment" Core..=) Core.<$> horizontalAlignment,+ ("image" Core..=) Core.<$> image,+ ("selectionInput" Core..=) Core.<$> selectionInput,+ ("textInput" Core..=) Core.<$> textInput,+ ("textParagraph" Core..=) Core.<$> textParagraph+ ]+ )++-- | The supported widgets that you can include in a column. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>+--+-- /See:/ 'newGoogleAppsCardV1Widgets' smart constructor.+data GoogleAppsCardV1Widgets = GoogleAppsCardV1Widgets+ { -- | ButtonList widget.+ buttonList :: (Core.Maybe GoogleAppsCardV1ButtonList),+ -- | ChipList widget.+ chipList :: (Core.Maybe GoogleAppsCardV1ChipList),+ -- | DateTimePicker widget.+ dateTimePicker :: (Core.Maybe GoogleAppsCardV1DateTimePicker),+ -- | DecoratedText widget.+ decoratedText :: (Core.Maybe GoogleAppsCardV1DecoratedText),+ -- | Image widget.+ image :: (Core.Maybe GoogleAppsCardV1Image),+ -- | SelectionInput widget.+ selectionInput :: (Core.Maybe GoogleAppsCardV1SelectionInput),+ -- | TextInput widget.+ textInput :: (Core.Maybe GoogleAppsCardV1TextInput),+ -- | TextParagraph widget.+ textParagraph :: (Core.Maybe GoogleAppsCardV1TextParagraph)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'GoogleAppsCardV1Widgets' with the minimum fields required to make a request.+newGoogleAppsCardV1Widgets ::+ GoogleAppsCardV1Widgets+newGoogleAppsCardV1Widgets =+ GoogleAppsCardV1Widgets+ { buttonList = Core.Nothing,+ chipList = Core.Nothing,+ dateTimePicker = Core.Nothing,+ decoratedText = Core.Nothing,+ image = Core.Nothing,+ selectionInput = Core.Nothing,+ textInput = Core.Nothing,+ textParagraph = Core.Nothing+ }++instance Core.FromJSON GoogleAppsCardV1Widgets where+ parseJSON =+ Core.withObject+ "GoogleAppsCardV1Widgets"+ ( \o ->+ GoogleAppsCardV1Widgets+ Core.<$> (o Core..:? "buttonList")+ Core.<*> (o Core..:? "chipList")+ Core.<*> (o Core..:? "dateTimePicker")+ Core.<*> (o Core..:? "decoratedText")+ Core.<*> (o Core..:? "image")+ Core.<*> (o Core..:? "selectionInput")+ Core.<*> (o Core..:? "textInput")+ Core.<*> (o Core..:? "textParagraph")+ )++instance Core.ToJSON GoogleAppsCardV1Widgets where+ toJSON GoogleAppsCardV1Widgets {..} =+ Core.object+ ( Core.catMaybes+ [ ("buttonList" Core..=) Core.<$> buttonList,+ ("chipList" Core..=) Core.<$> chipList,+ ("dateTimePicker" Core..=) Core.<$> dateTimePicker,+ ("decoratedText" Core..=) Core.<$> decoratedText,+ ("image" Core..=) Core.<$> image,+ ("selectionInput" Core..=) Core.<$> selectionInput,+ ("textInput" Core..=) Core.<$> textInput,+ ("textParagraph" Core..=) Core.<$> textParagraph+ ]+ )++-- | A Google Group in Google Chat.+--+-- /See:/ 'newGroup' smart constructor.+newtype Group = Group+ { -- | Resource name for a Google Group. Represents a <https://cloud.google.com/identity/docs/reference/rest/v1/groups group> in Cloud Identity Groups API. Format: groups\/{group}+ name :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Group' with the minimum fields required to make a request.+newGroup ::+ Group+newGroup = Group {name = Core.Nothing}++instance Core.FromJSON Group where+ parseJSON =+ Core.withObject+ "Group"+ (\o -> Group Core.<$> (o Core..:? "name"))++instance Core.ToJSON Group where+ toJSON Group {..} =+ Core.object (Core.catMaybes [("name" Core..=) Core.<$> name])++-- | For a @SelectionInput@ widget that uses a multiselect menu, a data source from a Google Workspace application. The data source populates selection items for the multiselect menu. <https://developers.google.com/workspace/chat Google Chat apps>:+--+-- /See:/ 'newHostAppDataSourceMarkup' smart constructor.+newtype HostAppDataSourceMarkup = HostAppDataSourceMarkup+ { -- | A data source from Google Chat.+ chatDataSource :: (Core.Maybe ChatClientDataSourceMarkup)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'HostAppDataSourceMarkup' with the minimum fields required to make a request.+newHostAppDataSourceMarkup ::+ HostAppDataSourceMarkup+newHostAppDataSourceMarkup =+ HostAppDataSourceMarkup {chatDataSource = Core.Nothing}++instance Core.FromJSON HostAppDataSourceMarkup where+ parseJSON =+ Core.withObject+ "HostAppDataSourceMarkup"+ ( \o ->+ HostAppDataSourceMarkup Core.<$> (o Core..:? "chatDataSource")+ )++instance Core.ToJSON HostAppDataSourceMarkup where+ toJSON HostAppDataSourceMarkup {..} =+ Core.object+ ( Core.catMaybes+ [("chatDataSource" Core..=) Core.<$> chatDataSource]+ )++-- | An image that\'s specified by a URL and can have an @onclick@ action.+--+-- /See:/ 'newImage' smart constructor.+data Image = Image+ { -- | The aspect ratio of this image (width and height). This field lets you reserve the right height for the image while waiting for it to load. It\'s not meant to override the built-in aspect ratio of the image. If unset, the server fills it by prefetching the image.+ aspectRatio :: (Core.Maybe Core.Double),+ -- | The URL of the image.+ imageUrl :: (Core.Maybe Core.Text),+ -- | The @onclick@ action.+ onClick :: (Core.Maybe OnClick)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Image' with the minimum fields required to make a request.+newImage ::+ Image+newImage =+ Image+ { aspectRatio = Core.Nothing,+ imageUrl = Core.Nothing,+ onClick = Core.Nothing+ }++instance Core.FromJSON Image where+ parseJSON =+ Core.withObject+ "Image"+ ( \o ->+ Image+ Core.<$> (o Core..:? "aspectRatio")+ Core.<*> (o Core..:? "imageUrl")+ Core.<*> (o Core..:? "onClick")+ )++instance Core.ToJSON Image where+ toJSON Image {..} =+ Core.object+ ( Core.catMaybes+ [ ("aspectRatio" Core..=) Core.<$> aspectRatio,+ ("imageUrl" Core..=) Core.<$> imageUrl,+ ("onClick" Core..=) Core.<$> onClick+ ]+ )++-- | An image button with an @onclick@ action.+--+-- /See:/ 'newImageButton' smart constructor.+data ImageButton = ImageButton+ { -- | The icon specified by an @enum@ that indices to an icon provided by Chat API.+ icon :: (Core.Maybe ImageButton_Icon),+ -- | The icon specified by a URL.+ iconUrl :: (Core.Maybe Core.Text),+ -- | The name of this @image_button@ that\'s used for accessibility. Default value is provided if this name isn\'t specified.+ name :: (Core.Maybe Core.Text),+ -- | The @onclick@ action.+ onClick :: (Core.Maybe OnClick)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ImageButton' with the minimum fields required to make a request.+newImageButton ::+ ImageButton+newImageButton =+ ImageButton+ { icon = Core.Nothing,+ iconUrl = Core.Nothing,+ name = Core.Nothing,+ onClick = Core.Nothing+ }++instance Core.FromJSON ImageButton where+ parseJSON =+ Core.withObject+ "ImageButton"+ ( \o ->+ ImageButton+ Core.<$> (o Core..:? "icon")+ Core.<*> (o Core..:? "iconUrl")+ Core.<*> (o Core..:? "name")+ Core.<*> (o Core..:? "onClick")+ )++instance Core.ToJSON ImageButton where+ toJSON ImageButton {..} =+ Core.object+ ( Core.catMaybes+ [ ("icon" Core..=) Core.<$> icon,+ ("iconUrl" Core..=) Core.<$> iconUrl,+ ("name" Core..=) Core.<$> name,+ ("onClick" Core..=) Core.<$> onClick+ ]+ )++-- | Types of data that users can <https://developers.google.com/chat/ui/read-form-data input on cards or dialogs>. The input type depends on the type of values that the widget accepts.+--+-- /See:/ 'newInputs' smart constructor.+data Inputs = Inputs+ { -- | Date input values from a <https://developers.google.com/chat/api/reference/rest/v1/cards#DateTimePicker DateTimePicker> widget that only accepts date values.+ dateInput :: (Core.Maybe DateInput),+ -- | Date and time input values from a <https://developers.google.com/chat/api/reference/rest/v1/cards#DateTimePicker DateTimePicker> widget that accepts both a date and time.+ dateTimeInput :: (Core.Maybe DateTimeInput),+ -- | A list of strings that represent the values that the user inputs in a widget. If the widget only accepts one value, such as a <https://developers.google.com/chat/api/reference/rest/v1/cards#TextInput TextInput> widget, the list contains one string object. If the widget accepts multiple values, such as a <https://developers.google.com/chat/api/reference/rest/v1/cards#selectioninput SelectionInput> widget of checkboxes, the list contains a string object for each value that the user inputs or selects.+ stringInputs :: (Core.Maybe StringInputs),+ -- | Time input values from a <https://developers.google.com/chat/api/reference/rest/v1/cards#DateTimePicker DateTimePicker> widget that only accepts time values.+ timeInput :: (Core.Maybe TimeInput)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Inputs' with the minimum fields required to make a request.+newInputs ::+ Inputs+newInputs =+ Inputs+ { dateInput = Core.Nothing,+ dateTimeInput = Core.Nothing,+ stringInputs = Core.Nothing,+ timeInput = Core.Nothing+ }++instance Core.FromJSON Inputs where+ parseJSON =+ Core.withObject+ "Inputs"+ ( \o ->+ Inputs+ Core.<$> (o Core..:? "dateInput")+ Core.<*> (o Core..:? "dateTimeInput")+ Core.<*> (o Core..:? "stringInputs")+ Core.<*> (o Core..:? "timeInput")+ )++instance Core.ToJSON Inputs where+ toJSON Inputs {..} =+ Core.object+ ( Core.catMaybes+ [ ("dateInput" Core..=) Core.<$> dateInput,+ ("dateTimeInput" Core..=) Core.<$> dateTimeInput,+ ("stringInputs" Core..=) Core.<$> stringInputs,+ ("timeInput" Core..=) Core.<$> timeInput+ ]+ )++-- | A UI element contains a key (label) and a value (content). This element can also contain some actions such as @onclick@ button.+--+-- /See:/ 'newKeyValue' smart constructor.+data KeyValue = KeyValue+ { -- | The text of the bottom label. Formatted text supported. For more information about formatting text, see <https://developers.google.com/workspace/chat/format-messages#card-formatting Formatting text in Google Chat apps> and <https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting Formatting text in Google Workspace Add-ons>.+ bottomLabel :: (Core.Maybe Core.Text),+ -- | A button that can be clicked to trigger an action.+ button :: (Core.Maybe Button),+ -- | The text of the content. Formatted text supported and always required. For more information about formatting text, see <https://developers.google.com/workspace/chat/format-messages#card-formatting Formatting text in Google Chat apps> and <https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting Formatting text in Google Workspace Add-ons>.+ content :: (Core.Maybe Core.Text),+ -- | If the content should be multiline.+ contentMultiline :: (Core.Maybe Core.Bool),+ -- | An enum value that\'s replaced by the Chat API with the corresponding icon image.+ icon :: (Core.Maybe KeyValue_Icon),+ -- | The icon specified by a URL.+ iconUrl :: (Core.Maybe Core.Text),+ -- | The @onclick@ action. Only the top label, bottom label, and content region are clickable.+ onClick :: (Core.Maybe OnClick),+ -- | The text of the top label. Formatted text supported. For more information about formatting text, see <https://developers.google.com/workspace/chat/format-messages#card-formatting Formatting text in Google Chat apps> and <https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting Formatting text in Google Workspace Add-ons>.+ topLabel :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'KeyValue' with the minimum fields required to make a request.+newKeyValue ::+ KeyValue+newKeyValue =+ KeyValue+ { bottomLabel = Core.Nothing,+ button = Core.Nothing,+ content = Core.Nothing,+ contentMultiline = Core.Nothing,+ icon = Core.Nothing,+ iconUrl = Core.Nothing,+ onClick = Core.Nothing,+ topLabel = Core.Nothing+ }++instance Core.FromJSON KeyValue where+ parseJSON =+ Core.withObject+ "KeyValue"+ ( \o ->+ KeyValue+ Core.<$> (o Core..:? "bottomLabel")+ Core.<*> (o Core..:? "button")+ Core.<*> (o Core..:? "content")+ Core.<*> (o Core..:? "contentMultiline")+ Core.<*> (o Core..:? "icon")+ Core.<*> (o Core..:? "iconUrl")+ Core.<*> (o Core..:? "onClick")+ Core.<*> (o Core..:? "topLabel")+ )++instance Core.ToJSON KeyValue where+ toJSON KeyValue {..} =+ Core.object+ ( Core.catMaybes+ [ ("bottomLabel" Core..=) Core.<$> bottomLabel,+ ("button" Core..=) Core.<$> button,+ ("content" Core..=) Core.<$> content,+ ("contentMultiline" Core..=) Core.<$> contentMultiline,+ ("icon" Core..=) Core.<$> icon,+ ("iconUrl" Core..=) Core.<$> iconUrl,+ ("onClick" Core..=) Core.<$> onClick,+ ("topLabel" Core..=) Core.<$> topLabel+ ]+ )++-- | Response to list memberships of the space.+--+-- /See:/ 'newListMembershipsResponse' smart constructor.+data ListMembershipsResponse = ListMembershipsResponse+ { -- | Unordered list. List of memberships in the requested (or first) page.+ memberships :: (Core.Maybe [Membership]),+ -- | A token that you can send as @pageToken@ to retrieve the next page of results. If empty, there are no subsequent pages.+ nextPageToken :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ListMembershipsResponse' with the minimum fields required to make a request.+newListMembershipsResponse ::+ ListMembershipsResponse+newListMembershipsResponse =+ ListMembershipsResponse+ { memberships = Core.Nothing,+ nextPageToken = Core.Nothing+ }++instance Core.FromJSON ListMembershipsResponse where+ parseJSON =+ Core.withObject+ "ListMembershipsResponse"+ ( \o ->+ ListMembershipsResponse+ Core.<$> (o Core..:? "memberships")+ Core.<*> (o Core..:? "nextPageToken")+ )++instance Core.ToJSON ListMembershipsResponse where+ toJSON ListMembershipsResponse {..} =+ Core.object+ ( Core.catMaybes+ [ ("memberships" Core..=) Core.<$> memberships,+ ("nextPageToken" Core..=) Core.<$> nextPageToken+ ]+ )++-- | Response message for listing messages.+--+-- /See:/ 'newListMessagesResponse' smart constructor.+data ListMessagesResponse = ListMessagesResponse+ { -- | List of messages.+ messages :: (Core.Maybe [Message]),+ -- | You can send a token as @pageToken@ to retrieve the next page of results. If empty, there are no subsequent pages.+ nextPageToken :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ListMessagesResponse' with the minimum fields required to make a request.+newListMessagesResponse ::+ ListMessagesResponse+newListMessagesResponse =+ ListMessagesResponse+ { messages = Core.Nothing,+ nextPageToken = Core.Nothing+ }++instance Core.FromJSON ListMessagesResponse where+ parseJSON =+ Core.withObject+ "ListMessagesResponse"+ ( \o ->+ ListMessagesResponse+ Core.<$> (o Core..:? "messages")+ Core.<*> (o Core..:? "nextPageToken")+ )++instance Core.ToJSON ListMessagesResponse where+ toJSON ListMessagesResponse {..} =+ Core.object+ ( Core.catMaybes+ [ ("messages" Core..=) Core.<$> messages,+ ("nextPageToken" Core..=) Core.<$> nextPageToken+ ]+ )++-- | Response to a list reactions request.+--+-- /See:/ 'newListReactionsResponse' smart constructor.+data ListReactionsResponse = ListReactionsResponse+ { -- | Continuation token to retrieve the next page of results. It\'s empty for the last page of results.+ nextPageToken :: (Core.Maybe Core.Text),+ -- | List of reactions in the requested (or first) page.+ reactions :: (Core.Maybe [Reaction])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ListReactionsResponse' with the minimum fields required to make a request.+newListReactionsResponse ::+ ListReactionsResponse+newListReactionsResponse =+ ListReactionsResponse+ { nextPageToken = Core.Nothing,+ reactions = Core.Nothing+ }++instance Core.FromJSON ListReactionsResponse where+ parseJSON =+ Core.withObject+ "ListReactionsResponse"+ ( \o ->+ ListReactionsResponse+ Core.<$> (o Core..:? "nextPageToken")+ Core.<*> (o Core..:? "reactions")+ )++instance Core.ToJSON ListReactionsResponse where+ toJSON ListReactionsResponse {..} =+ Core.object+ ( Core.catMaybes+ [ ("nextPageToken" Core..=) Core.<$> nextPageToken,+ ("reactions" Core..=) Core.<$> reactions+ ]+ )++-- | Response message for listing space events.+--+-- /See:/ 'newListSpaceEventsResponse' smart constructor.+data ListSpaceEventsResponse = ListSpaceEventsResponse+ { -- | Continuation token used to fetch more events. If this field is omitted, there are no subsequent pages.+ nextPageToken :: (Core.Maybe Core.Text),+ -- | Results are returned in chronological order (oldest event first). Note: The @permissionSettings@ field is not returned in the Space object for list requests.+ spaceEvents :: (Core.Maybe [SpaceEvent])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ListSpaceEventsResponse' with the minimum fields required to make a request.+newListSpaceEventsResponse ::+ ListSpaceEventsResponse+newListSpaceEventsResponse =+ ListSpaceEventsResponse+ { nextPageToken = Core.Nothing,+ spaceEvents = Core.Nothing+ }++instance Core.FromJSON ListSpaceEventsResponse where+ parseJSON =+ Core.withObject+ "ListSpaceEventsResponse"+ ( \o ->+ ListSpaceEventsResponse+ Core.<$> (o Core..:? "nextPageToken")+ Core.<*> (o Core..:? "spaceEvents")+ )++instance Core.ToJSON ListSpaceEventsResponse where+ toJSON ListSpaceEventsResponse {..} =+ Core.object+ ( Core.catMaybes+ [ ("nextPageToken" Core..=) Core.<$> nextPageToken,+ ("spaceEvents" Core..=) Core.<$> spaceEvents+ ]+ )++-- | The response for a list spaces request.+--+-- /See:/ 'newListSpacesResponse' smart constructor.+data ListSpacesResponse = ListSpacesResponse+ { -- | You can send a token as @pageToken@ to retrieve the next page of results. If empty, there are no subsequent pages.+ nextPageToken :: (Core.Maybe Core.Text),+ -- | List of spaces in the requested (or first) page. Note: The @permissionSettings@ field is not returned in the Space object for list requests.+ spaces :: (Core.Maybe [Space])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ListSpacesResponse' with the minimum fields required to make a request.+newListSpacesResponse ::+ ListSpacesResponse+newListSpacesResponse =+ ListSpacesResponse+ { nextPageToken = Core.Nothing,+ spaces = Core.Nothing+ }++instance Core.FromJSON ListSpacesResponse where+ parseJSON =+ Core.withObject+ "ListSpacesResponse"+ ( \o ->+ ListSpacesResponse+ Core.<$> (o Core..:? "nextPageToken")+ Core.<*> (o Core..:? "spaces")+ )++instance Core.ToJSON ListSpacesResponse where+ toJSON ListSpacesResponse {..} =+ Core.object+ ( Core.catMaybes+ [ ("nextPageToken" Core..=) Core.<$> nextPageToken,+ ("spaces" Core..=) Core.<$> spaces+ ]+ )++-- | A matched URL in a Chat message. Chat apps can preview matched URLs. For more information, see <https://developers.google.com/chat/how-tos/preview-links Preview links>.+--+-- /See:/ 'newMatchedUrl' smart constructor.+newtype MatchedUrl = MatchedUrl+ { -- | Output only. The URL that was matched.+ url :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'MatchedUrl' with the minimum fields required to make a request.+newMatchedUrl ::+ MatchedUrl+newMatchedUrl = MatchedUrl {url = Core.Nothing}++instance Core.FromJSON MatchedUrl where+ parseJSON =+ Core.withObject+ "MatchedUrl"+ (\o -> MatchedUrl Core.<$> (o Core..:? "url"))++instance Core.ToJSON MatchedUrl where+ toJSON MatchedUrl {..} =+ Core.object (Core.catMaybes [("url" Core..=) Core.<$> url])++-- | Media resource.+--+-- /See:/ 'newMedia' smart constructor.+newtype Media = Media+ { -- | Name of the media resource.+ resourceName :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Media' with the minimum fields required to make a request.+newMedia ::+ Media+newMedia = Media {resourceName = Core.Nothing}++instance Core.FromJSON Media where+ parseJSON =+ Core.withObject+ "Media"+ (\o -> Media Core.<$> (o Core..:? "resourceName"))++instance Core.ToJSON Media where+ toJSON Media {..} =+ Core.object+ (Core.catMaybes [("resourceName" Core..=) Core.<$> resourceName])++-- | Represents a membership relation in Google Chat, such as whether a user or Chat app is invited to, part of, or absent from a space.+--+-- /See:/ 'newMembership' smart constructor.+data Membership = Membership+ { -- | Optional. Immutable. The creation time of the membership, such as when a member joined or was invited to join a space. This field is output only, except when used to import historical memberships in import mode spaces.+ createTime :: (Core.Maybe Core.DateTime),+ -- | Optional. Immutable. The deletion time of the membership, such as when a member left or was removed from a space. This field is output only, except when used to import historical memberships in import mode spaces.+ deleteTime :: (Core.Maybe Core.DateTime),+ -- | Optional. The Google Group the membership corresponds to. Reading or mutating memberships for Google Groups requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+ groupMember :: (Core.Maybe Group),+ -- | Optional. The Google Chat user or app the membership corresponds to. If your Chat app <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user authenticates as a user>, the output populates the <https://developers.google.com/workspace/chat/api/reference/rest/v1/User user> @name@ and @type@.+ member :: (Core.Maybe User),+ -- | Identifier. Resource name of the membership, assigned by the server. Format: @spaces\/{space}\/members\/{member}@+ name :: (Core.Maybe Core.Text),+ -- | Optional. User\'s role within a Chat space, which determines their permitted actions in the space. This field can only be used as input in @UpdateMembership@.+ role' :: (Core.Maybe Membership_Role),+ -- | Output only. State of the membership.+ state :: (Core.Maybe Membership_State)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Membership' with the minimum fields required to make a request.+newMembership ::+ Membership+newMembership =+ Membership+ { createTime = Core.Nothing,+ deleteTime = Core.Nothing,+ groupMember = Core.Nothing,+ member = Core.Nothing,+ name = Core.Nothing,+ role' = Core.Nothing,+ state = Core.Nothing+ }++instance Core.FromJSON Membership where+ parseJSON =+ Core.withObject+ "Membership"+ ( \o ->+ Membership+ Core.<$> (o Core..:? "createTime")+ Core.<*> (o Core..:? "deleteTime")+ Core.<*> (o Core..:? "groupMember")+ Core.<*> (o Core..:? "member")+ Core.<*> (o Core..:? "name")+ Core.<*> (o Core..:? "role")+ Core.<*> (o Core..:? "state")+ )++instance Core.ToJSON Membership where+ toJSON Membership {..} =+ Core.object+ ( Core.catMaybes+ [ ("createTime" Core..=) Core.<$> createTime,+ ("deleteTime" Core..=) Core.<$> deleteTime,+ ("groupMember" Core..=) Core.<$> groupMember,+ ("member" Core..=) Core.<$> member,+ ("name" Core..=) Core.<$> name,+ ("role" Core..=) Core.<$> role',+ ("state" Core..=) Core.<$> state+ ]+ )++-- | Event payload for multiple new memberships. Event type: @google.workspace.chat.membership.v1.batchCreated@+--+-- /See:/ 'newMembershipBatchCreatedEventData' smart constructor.+newtype MembershipBatchCreatedEventData = MembershipBatchCreatedEventData+ { -- | A list of new memberships.+ memberships :: (Core.Maybe [MembershipCreatedEventData])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'MembershipBatchCreatedEventData' with the minimum fields required to make a request.+newMembershipBatchCreatedEventData ::+ MembershipBatchCreatedEventData+newMembershipBatchCreatedEventData =+ MembershipBatchCreatedEventData {memberships = Core.Nothing}++instance Core.FromJSON MembershipBatchCreatedEventData where+ parseJSON =+ Core.withObject+ "MembershipBatchCreatedEventData"+ ( \o ->+ MembershipBatchCreatedEventData+ Core.<$> (o Core..:? "memberships")+ )++instance Core.ToJSON MembershipBatchCreatedEventData where+ toJSON MembershipBatchCreatedEventData {..} =+ Core.object+ (Core.catMaybes [("memberships" Core..=) Core.<$> memberships])++-- | Event payload for multiple deleted memberships. Event type: @google.workspace.chat.membership.v1.batchDeleted@+--+-- /See:/ 'newMembershipBatchDeletedEventData' smart constructor.+newtype MembershipBatchDeletedEventData = MembershipBatchDeletedEventData+ { -- | A list of deleted memberships.+ memberships :: (Core.Maybe [MembershipDeletedEventData])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'MembershipBatchDeletedEventData' with the minimum fields required to make a request.+newMembershipBatchDeletedEventData ::+ MembershipBatchDeletedEventData+newMembershipBatchDeletedEventData =+ MembershipBatchDeletedEventData {memberships = Core.Nothing}++instance Core.FromJSON MembershipBatchDeletedEventData where+ parseJSON =+ Core.withObject+ "MembershipBatchDeletedEventData"+ ( \o ->+ MembershipBatchDeletedEventData+ Core.<$> (o Core..:? "memberships")+ )++instance Core.ToJSON MembershipBatchDeletedEventData where+ toJSON MembershipBatchDeletedEventData {..} =+ Core.object+ (Core.catMaybes [("memberships" Core..=) Core.<$> memberships])++-- | Event payload for multiple updated memberships. Event type: @google.workspace.chat.membership.v1.batchUpdated@+--+-- /See:/ 'newMembershipBatchUpdatedEventData' smart constructor.+newtype MembershipBatchUpdatedEventData = MembershipBatchUpdatedEventData+ { -- | A list of updated memberships.+ memberships :: (Core.Maybe [MembershipUpdatedEventData])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'MembershipBatchUpdatedEventData' with the minimum fields required to make a request.+newMembershipBatchUpdatedEventData ::+ MembershipBatchUpdatedEventData+newMembershipBatchUpdatedEventData =+ MembershipBatchUpdatedEventData {memberships = Core.Nothing}++instance Core.FromJSON MembershipBatchUpdatedEventData where+ parseJSON =+ Core.withObject+ "MembershipBatchUpdatedEventData"+ ( \o ->+ MembershipBatchUpdatedEventData+ Core.<$> (o Core..:? "memberships")+ )++instance Core.ToJSON MembershipBatchUpdatedEventData where+ toJSON MembershipBatchUpdatedEventData {..} =+ Core.object+ (Core.catMaybes [("memberships" Core..=) Core.<$> memberships])++-- | Represents the count of memberships of a space, grouped into categories.+--+-- /See:/ 'newMembershipCount' smart constructor.+data MembershipCount = MembershipCount+ { -- | Output only. Count of human users that have directly joined the space, not counting users joined by having membership in a joined group.+ joinedDirectHumanUserCount :: (Core.Maybe Core.Int32),+ -- | Output only. Count of all groups that have directly joined the space.+ joinedGroupCount :: (Core.Maybe Core.Int32)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'MembershipCount' with the minimum fields required to make a request.+newMembershipCount ::+ MembershipCount+newMembershipCount =+ MembershipCount+ { joinedDirectHumanUserCount = Core.Nothing,+ joinedGroupCount = Core.Nothing+ }++instance Core.FromJSON MembershipCount where+ parseJSON =+ Core.withObject+ "MembershipCount"+ ( \o ->+ MembershipCount+ Core.<$> (o Core..:? "joinedDirectHumanUserCount")+ Core.<*> (o Core..:? "joinedGroupCount")+ )++instance Core.ToJSON MembershipCount where+ toJSON MembershipCount {..} =+ Core.object+ ( Core.catMaybes+ [ ("joinedDirectHumanUserCount" Core..=)+ Core.<$> joinedDirectHumanUserCount,+ ("joinedGroupCount" Core..=) Core.<$> joinedGroupCount+ ]+ )++-- | Event payload for a new membership. Event type: @google.workspace.chat.membership.v1.created@.+--+-- /See:/ 'newMembershipCreatedEventData' smart constructor.+newtype MembershipCreatedEventData = MembershipCreatedEventData+ { -- | The new membership.+ membership :: (Core.Maybe Membership)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'MembershipCreatedEventData' with the minimum fields required to make a request.+newMembershipCreatedEventData ::+ MembershipCreatedEventData+newMembershipCreatedEventData =+ MembershipCreatedEventData {membership = Core.Nothing}++instance Core.FromJSON MembershipCreatedEventData where+ parseJSON =+ Core.withObject+ "MembershipCreatedEventData"+ ( \o ->+ MembershipCreatedEventData Core.<$> (o Core..:? "membership")+ )++instance Core.ToJSON MembershipCreatedEventData where+ toJSON MembershipCreatedEventData {..} =+ Core.object+ (Core.catMaybes [("membership" Core..=) Core.<$> membership])++-- | Event payload for a deleted membership. Event type: @google.workspace.chat.membership.v1.deleted@+--+-- /See:/ 'newMembershipDeletedEventData' smart constructor.+newtype MembershipDeletedEventData = MembershipDeletedEventData+ { -- | The deleted membership. Only the @name@ and @state@ fields are populated.+ membership :: (Core.Maybe Membership)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'MembershipDeletedEventData' with the minimum fields required to make a request.+newMembershipDeletedEventData ::+ MembershipDeletedEventData+newMembershipDeletedEventData =+ MembershipDeletedEventData {membership = Core.Nothing}++instance Core.FromJSON MembershipDeletedEventData where+ parseJSON =+ Core.withObject+ "MembershipDeletedEventData"+ ( \o ->+ MembershipDeletedEventData Core.<$> (o Core..:? "membership")+ )++instance Core.ToJSON MembershipDeletedEventData where+ toJSON MembershipDeletedEventData {..} =+ Core.object+ (Core.catMaybes [("membership" Core..=) Core.<$> membership])++-- | Event payload for an updated membership. Event type: @google.workspace.chat.membership.v1.updated@+--+-- /See:/ 'newMembershipUpdatedEventData' smart constructor.+newtype MembershipUpdatedEventData = MembershipUpdatedEventData+ { -- | The updated membership.+ membership :: (Core.Maybe Membership)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'MembershipUpdatedEventData' with the minimum fields required to make a request.+newMembershipUpdatedEventData ::+ MembershipUpdatedEventData+newMembershipUpdatedEventData =+ MembershipUpdatedEventData {membership = Core.Nothing}++instance Core.FromJSON MembershipUpdatedEventData where+ parseJSON =+ Core.withObject+ "MembershipUpdatedEventData"+ ( \o ->+ MembershipUpdatedEventData Core.<$> (o Core..:? "membership")+ )++instance Core.ToJSON MembershipUpdatedEventData where+ toJSON MembershipUpdatedEventData {..} =+ Core.object+ (Core.catMaybes [("membership" Core..=) Core.<$> membership])++-- | A message in a Google Chat space.+--+-- /See:/ 'newMessage' smart constructor.+data Message = Message+ { -- | Optional. One or more interactive widgets that appear at the bottom of a message. You can add accessory widgets to messages that contain text, cards, or both text and cards. Not supported for messages that contain dialogs. For details, see <https://developers.google.com/workspace/chat/create-messages#add-accessory-widgets Add interactive widgets at the bottom of a message>. Creating a message with accessory widgets requires [app authentication] (https:\/\/developers.google.com\/workspace\/chat\/authenticate-authorize-chat-app).+ accessoryWidgets :: (Core.Maybe [AccessoryWidget]),+ -- | Input only. Parameters that a Chat app can use to configure how its response is posted.+ actionResponse :: (Core.Maybe ActionResponse),+ -- | Output only. Annotations associated with the @text@ in this message.+ annotations :: (Core.Maybe [Annotation]),+ -- | Output only. Plain-text body of the message with all Chat app mentions stripped out.+ argumentText :: (Core.Maybe Core.Text),+ -- | Output only. GIF images that are attached to the message.+ attachedGifs :: (Core.Maybe [AttachedGif]),+ -- | Optional. User-uploaded attachment.+ attachment :: (Core.Maybe [Attachment]),+ -- | Deprecated: Use @cards_v2@ instead. Rich, formatted, and interactive cards that you can use to display UI elements such as: formatted texts, buttons, and clickable images. Cards are normally displayed below the plain-text body of the message. @cards@ and @cards_v2@ can have a maximum size of 32 KB.+ cards :: (Core.Maybe [Card]),+ -- | Optional. An array of <https://developers.google.com/workspace/chat/api/reference/rest/v1/cards cards>. Only Chat apps can create cards. If your Chat app <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user authenticates as a user>, the messages can\'t contain cards. To learn how to create a message that contains cards, see <https://developers.google.com/workspace/chat/create-messages Send a message>. <https://addons.gsuite.google.com/uikit/builder Card builder>+ cardsV2 :: (Core.Maybe [CardWithId]),+ -- | Optional. A custom ID for the message. You can use field to identify a message, or to get, delete, or update a message. To set a custom ID, specify the <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages/create#body.QUERY_PARAMETERS.message_id messageId> field when you create the message. For details, see <https://developers.google.com/workspace/chat/create-messages#name_a_created_message Name a message>.+ clientAssignedMessageId :: (Core.Maybe Core.Text),+ -- | Optional. Immutable. For spaces created in Chat, the time at which the message was created. This field is output only, except when used in import mode spaces. For import mode spaces, set this field to the historical timestamp at which the message was created in the source in order to preserve the original creation time.+ createTime :: (Core.Maybe Core.DateTime),+ -- | Output only. The time at which the message was deleted in Google Chat. If the message is never deleted, this field is empty.+ deleteTime :: (Core.Maybe Core.DateTime),+ -- | Output only. Information about a deleted message. A message is deleted when @delete_time@ is set.+ deletionMetadata :: (Core.Maybe DeletionMetadata),+ -- | Output only. The list of emoji reaction summaries on the message.+ emojiReactionSummaries :: (Core.Maybe [EmojiReactionSummary]),+ -- | Optional. A plain-text description of the message\'s cards, used when the actual cards can\'t be displayed—for example, mobile notifications.+ fallbackText :: (Core.Maybe Core.Text),+ -- | Output only. Contains the message @text@ with markups added to communicate formatting. This field might not capture all formatting visible in the UI, but includes the following: * <https://developers.google.com/workspace/chat/format-messages Markup syntax> for bold, italic, strikethrough, monospace, monospace block, and bulleted list. * <https://developers.google.com/workspace/chat/format-messages#messages-@mention User mentions> using the format @. * Custom hyperlinks using the format \`\<{url}|{rendered_text}>\` where the first string is the URL and the second is the rendered text—for example,@. * Custom emoji using the format @:{emoji_name}:@—for example, @:smile:@. This doesn\'t apply to Unicode emoji, such as @U+1F600@ for a grinning face emoji. For more information, see <https://developers.google.com/workspace/chat/format-messages#view_text_formatting_sent_in_a_message View text formatting sent in a message>+ formattedText :: (Core.Maybe Core.Text),+ -- | Output only. The time at which the message was last edited by a user. If the message has never been edited, this field is empty.+ lastUpdateTime :: (Core.Maybe Core.DateTime),+ -- | Output only. A URL in @spaces.messages.text@ that matches a link preview pattern. For more information, see <https://developers.google.com/workspace/chat/preview-links Preview links>.+ matchedUrl :: (Core.Maybe MatchedUrl),+ -- | Identifier. Resource name of the message. Format: @spaces\/{space}\/messages\/{message}@ Where @{space}@ is the ID of the space where the message is posted and @{message}@ is a system-assigned ID for the message. For example, @spaces\/AAAAAAAAAAA\/messages\/BBBBBBBBBBB.BBBBBBBBBBB@. If you set a custom ID when you create a message, you can use this ID to specify the message in a request by replacing @{message}@ with the value from the @clientAssignedMessageId@ field. For example, @spaces\/AAAAAAAAAAA\/messages\/client-custom-name@. For details, see <https://developers.google.com/workspace/chat/create-messages#name_a_created_message Name a message>.+ name :: (Core.Maybe Core.Text),+ -- | Optional. Immutable. Input for creating a message, otherwise output only. The user that can view the message. When set, the message is private and only visible to the specified user and the Chat app. To include this field in your request, you must call the Chat API using <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app app authentication> and omit the following: * <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages.attachments Attachments> * <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages#Message.AccessoryWidget Accessory widgets> For details, see <https://developers.google.com/workspace/chat/create-messages#private Send a message privately>.+ privateMessageViewer :: (Core.Maybe User),+ -- | Output only. Information about a message that\'s quoted by a Google Chat user in a space. Google Chat users can quote a message to reply to it.+ quotedMessageMetadata :: (Core.Maybe QuotedMessageMetadata),+ -- | Output only. The user who created the message. If your Chat app <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user authenticates as a user>, the output populates the <https://developers.google.com/workspace/chat/api/reference/rest/v1/User user> @name@ and @type@.+ sender :: (Core.Maybe User),+ -- | Output only. Slash command information, if applicable.+ slashCommand :: (Core.Maybe SlashCommand),+ -- | Output only. If your Chat app <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user authenticates as a user>, the output only populates the <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces space> @name@.+ space :: (Core.Maybe Space),+ -- | Optional. Plain-text body of the message. The first link to an image, video, or web page generates a <https://developers.google.com/workspace/chat/preview-links preview chip>. You can also <https://developers.google.com/workspace/chat/format-messages#messages-@mention \@mention a Google Chat user>, or everyone in the space. To learn about creating text messages, see <https://developers.google.com/workspace/chat/create-messages Send a message>.+ text :: (Core.Maybe Core.Text),+ -- | The thread the message belongs to. For example usage, see <https://developers.google.com/workspace/chat/create-messages#create-message-thread Start or reply to a message thread>.+ thread :: (Core.Maybe Thread),+ -- | Output only. When @true@, the message is a response in a reply thread. When @false@, the message is visible in the space\'s top-level conversation as either the first message of a thread or a message with no threaded replies. If the space doesn\'t support reply in threads, this field is always @false@.+ threadReply :: (Core.Maybe Core.Bool)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Message' with the minimum fields required to make a request.+newMessage ::+ Message+newMessage =+ Message+ { accessoryWidgets = Core.Nothing,+ actionResponse = Core.Nothing,+ annotations = Core.Nothing,+ argumentText = Core.Nothing,+ attachedGifs = Core.Nothing,+ attachment = Core.Nothing,+ cards = Core.Nothing,+ cardsV2 = Core.Nothing,+ clientAssignedMessageId = Core.Nothing,+ createTime = Core.Nothing,+ deleteTime = Core.Nothing,+ deletionMetadata = Core.Nothing,+ emojiReactionSummaries = Core.Nothing,+ fallbackText = Core.Nothing,+ formattedText = Core.Nothing,+ lastUpdateTime = Core.Nothing,+ matchedUrl = Core.Nothing,+ name = Core.Nothing,+ privateMessageViewer = Core.Nothing,+ quotedMessageMetadata = Core.Nothing,+ sender = Core.Nothing,+ slashCommand = Core.Nothing,+ space = Core.Nothing,+ text = Core.Nothing,+ thread = Core.Nothing,+ threadReply = Core.Nothing+ }++instance Core.FromJSON Message where+ parseJSON =+ Core.withObject+ "Message"+ ( \o ->+ Message+ Core.<$> (o Core..:? "accessoryWidgets")+ Core.<*> (o Core..:? "actionResponse")+ Core.<*> (o Core..:? "annotations")+ Core.<*> (o Core..:? "argumentText")+ Core.<*> (o Core..:? "attachedGifs")+ Core.<*> (o Core..:? "attachment")+ Core.<*> (o Core..:? "cards")+ Core.<*> (o Core..:? "cardsV2")+ Core.<*> (o Core..:? "clientAssignedMessageId")+ Core.<*> (o Core..:? "createTime")+ Core.<*> (o Core..:? "deleteTime")+ Core.<*> (o Core..:? "deletionMetadata")+ Core.<*> (o Core..:? "emojiReactionSummaries")+ Core.<*> (o Core..:? "fallbackText")+ Core.<*> (o Core..:? "formattedText")+ Core.<*> (o Core..:? "lastUpdateTime")+ Core.<*> (o Core..:? "matchedUrl")+ Core.<*> (o Core..:? "name")+ Core.<*> (o Core..:? "privateMessageViewer")+ Core.<*> (o Core..:? "quotedMessageMetadata")+ Core.<*> (o Core..:? "sender")+ Core.<*> (o Core..:? "slashCommand")+ Core.<*> (o Core..:? "space")+ Core.<*> (o Core..:? "text")+ Core.<*> (o Core..:? "thread")+ Core.<*> (o Core..:? "threadReply")+ )++instance Core.ToJSON Message where+ toJSON Message {..} =+ Core.object+ ( Core.catMaybes+ [ ("accessoryWidgets" Core..=) Core.<$> accessoryWidgets,+ ("actionResponse" Core..=) Core.<$> actionResponse,+ ("annotations" Core..=) Core.<$> annotations,+ ("argumentText" Core..=) Core.<$> argumentText,+ ("attachedGifs" Core..=) Core.<$> attachedGifs,+ ("attachment" Core..=) Core.<$> attachment,+ ("cards" Core..=) Core.<$> cards,+ ("cardsV2" Core..=) Core.<$> cardsV2,+ ("clientAssignedMessageId" Core..=)+ Core.<$> clientAssignedMessageId,+ ("createTime" Core..=) Core.<$> createTime,+ ("deleteTime" Core..=) Core.<$> deleteTime,+ ("deletionMetadata" Core..=) Core.<$> deletionMetadata,+ ("emojiReactionSummaries" Core..=) Core.<$> emojiReactionSummaries,+ ("fallbackText" Core..=) Core.<$> fallbackText,+ ("formattedText" Core..=) Core.<$> formattedText,+ ("lastUpdateTime" Core..=) Core.<$> lastUpdateTime,+ ("matchedUrl" Core..=) Core.<$> matchedUrl,+ ("name" Core..=) Core.<$> name,+ ("privateMessageViewer" Core..=) Core.<$> privateMessageViewer,+ ("quotedMessageMetadata" Core..=) Core.<$> quotedMessageMetadata,+ ("sender" Core..=) Core.<$> sender,+ ("slashCommand" Core..=) Core.<$> slashCommand,+ ("space" Core..=) Core.<$> space,+ ("text" Core..=) Core.<$> text,+ ("thread" Core..=) Core.<$> thread,+ ("threadReply" Core..=) Core.<$> threadReply+ ]+ )++-- | Event payload for multiple new messages. Event type: @google.workspace.chat.message.v1.batchCreated@+--+-- /See:/ 'newMessageBatchCreatedEventData' smart constructor.+newtype MessageBatchCreatedEventData = MessageBatchCreatedEventData+ { -- | A list of new messages.+ messages :: (Core.Maybe [MessageCreatedEventData])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'MessageBatchCreatedEventData' with the minimum fields required to make a request.+newMessageBatchCreatedEventData ::+ MessageBatchCreatedEventData+newMessageBatchCreatedEventData =+ MessageBatchCreatedEventData {messages = Core.Nothing}++instance Core.FromJSON MessageBatchCreatedEventData where+ parseJSON =+ Core.withObject+ "MessageBatchCreatedEventData"+ ( \o ->+ MessageBatchCreatedEventData Core.<$> (o Core..:? "messages")+ )++instance Core.ToJSON MessageBatchCreatedEventData where+ toJSON MessageBatchCreatedEventData {..} =+ Core.object+ (Core.catMaybes [("messages" Core..=) Core.<$> messages])++-- | Event payload for multiple deleted messages. Event type: @google.workspace.chat.message.v1.batchDeleted@+--+-- /See:/ 'newMessageBatchDeletedEventData' smart constructor.+newtype MessageBatchDeletedEventData = MessageBatchDeletedEventData+ { -- | A list of deleted messages.+ messages :: (Core.Maybe [MessageDeletedEventData])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'MessageBatchDeletedEventData' with the minimum fields required to make a request.+newMessageBatchDeletedEventData ::+ MessageBatchDeletedEventData+newMessageBatchDeletedEventData =+ MessageBatchDeletedEventData {messages = Core.Nothing}++instance Core.FromJSON MessageBatchDeletedEventData where+ parseJSON =+ Core.withObject+ "MessageBatchDeletedEventData"+ ( \o ->+ MessageBatchDeletedEventData Core.<$> (o Core..:? "messages")+ )++instance Core.ToJSON MessageBatchDeletedEventData where+ toJSON MessageBatchDeletedEventData {..} =+ Core.object+ (Core.catMaybes [("messages" Core..=) Core.<$> messages])++-- | Event payload for multiple updated messages. Event type: @google.workspace.chat.message.v1.batchUpdated@+--+-- /See:/ 'newMessageBatchUpdatedEventData' smart constructor.+newtype MessageBatchUpdatedEventData = MessageBatchUpdatedEventData+ { -- | A list of updated messages.+ messages :: (Core.Maybe [MessageUpdatedEventData])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'MessageBatchUpdatedEventData' with the minimum fields required to make a request.+newMessageBatchUpdatedEventData ::+ MessageBatchUpdatedEventData+newMessageBatchUpdatedEventData =+ MessageBatchUpdatedEventData {messages = Core.Nothing}++instance Core.FromJSON MessageBatchUpdatedEventData where+ parseJSON =+ Core.withObject+ "MessageBatchUpdatedEventData"+ ( \o ->+ MessageBatchUpdatedEventData Core.<$> (o Core..:? "messages")+ )++instance Core.ToJSON MessageBatchUpdatedEventData where+ toJSON MessageBatchUpdatedEventData {..} =+ Core.object+ (Core.catMaybes [("messages" Core..=) Core.<$> messages])++-- | Event payload for a new message. Event type: @google.workspace.chat.message.v1.created@+--+-- /See:/ 'newMessageCreatedEventData' smart constructor.+newtype MessageCreatedEventData = MessageCreatedEventData+ { -- | The new message.+ message :: (Core.Maybe Message)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'MessageCreatedEventData' with the minimum fields required to make a request.+newMessageCreatedEventData ::+ MessageCreatedEventData+newMessageCreatedEventData =+ MessageCreatedEventData {message = Core.Nothing}++instance Core.FromJSON MessageCreatedEventData where+ parseJSON =+ Core.withObject+ "MessageCreatedEventData"+ (\o -> MessageCreatedEventData Core.<$> (o Core..:? "message"))++instance Core.ToJSON MessageCreatedEventData where+ toJSON MessageCreatedEventData {..} =+ Core.object+ (Core.catMaybes [("message" Core..=) Core.<$> message])++-- | Event payload for a deleted message. Event type: @google.workspace.chat.message.v1.deleted@+--+-- /See:/ 'newMessageDeletedEventData' smart constructor.+newtype MessageDeletedEventData = MessageDeletedEventData+ { -- | The deleted message. Only the @name@, @createTime@, @deleteTime@, and @deletionMetadata@ fields are populated.+ message :: (Core.Maybe Message)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'MessageDeletedEventData' with the minimum fields required to make a request.+newMessageDeletedEventData ::+ MessageDeletedEventData+newMessageDeletedEventData =+ MessageDeletedEventData {message = Core.Nothing}++instance Core.FromJSON MessageDeletedEventData where+ parseJSON =+ Core.withObject+ "MessageDeletedEventData"+ (\o -> MessageDeletedEventData Core.<$> (o Core..:? "message"))++instance Core.ToJSON MessageDeletedEventData where+ toJSON MessageDeletedEventData {..} =+ Core.object+ (Core.catMaybes [("message" Core..=) Core.<$> message])++-- | Event payload for an updated message. Event type: @google.workspace.chat.message.v1.updated@+--+-- /See:/ 'newMessageUpdatedEventData' smart constructor.+newtype MessageUpdatedEventData = MessageUpdatedEventData+ { -- | The updated message.+ message :: (Core.Maybe Message)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'MessageUpdatedEventData' with the minimum fields required to make a request.+newMessageUpdatedEventData ::+ MessageUpdatedEventData+newMessageUpdatedEventData =+ MessageUpdatedEventData {message = Core.Nothing}++instance Core.FromJSON MessageUpdatedEventData where+ parseJSON =+ Core.withObject+ "MessageUpdatedEventData"+ (\o -> MessageUpdatedEventData Core.<$> (o Core..:? "message"))++instance Core.ToJSON MessageUpdatedEventData where+ toJSON MessageUpdatedEventData {..} =+ Core.object+ (Core.catMaybes [("message" Core..=) Core.<$> message])++-- | An @onclick@ action (for example, open a link).+--+-- /See:/ 'newOnClick' smart constructor.+data OnClick = OnClick+ { -- | A form action is triggered by this @onclick@ action if specified.+ action :: (Core.Maybe FormAction),+ -- | This @onclick@ action triggers an open link action if specified.+ openLink :: (Core.Maybe OpenLink)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'OnClick' with the minimum fields required to make a request.+newOnClick ::+ OnClick+newOnClick =+ OnClick {action = Core.Nothing, openLink = Core.Nothing}++instance Core.FromJSON OnClick where+ parseJSON =+ Core.withObject+ "OnClick"+ ( \o ->+ OnClick+ Core.<$> (o Core..:? "action")+ Core.<*> (o Core..:? "openLink")+ )++instance Core.ToJSON OnClick where+ toJSON OnClick {..} =+ Core.object+ ( Core.catMaybes+ [ ("action" Core..=) Core.<$> action,+ ("openLink" Core..=) Core.<$> openLink+ ]+ )++-- | A link that opens a new window.+--+-- /See:/ 'newOpenLink' smart constructor.+newtype OpenLink = OpenLink+ { -- | The URL to open.+ url :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'OpenLink' with the minimum fields required to make a request.+newOpenLink ::+ OpenLink+newOpenLink = OpenLink {url = Core.Nothing}++instance Core.FromJSON OpenLink where+ parseJSON =+ Core.withObject+ "OpenLink"+ (\o -> OpenLink Core.<$> (o Core..:? "url"))++instance Core.ToJSON OpenLink where+ toJSON OpenLink {..} =+ Core.object (Core.catMaybes [("url" Core..=) Core.<$> url])++-- | Represents a space permission setting.+--+-- /See:/ 'newPermissionSetting' smart constructor.+data PermissionSetting = PermissionSetting+ { -- | Optional. Whether spaces managers have this permission.+ managersAllowed :: (Core.Maybe Core.Bool),+ -- | Optional. Whether non-manager members have this permission.+ membersAllowed :: (Core.Maybe Core.Bool)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'PermissionSetting' with the minimum fields required to make a request.+newPermissionSetting ::+ PermissionSetting+newPermissionSetting =+ PermissionSetting+ { managersAllowed = Core.Nothing,+ membersAllowed = Core.Nothing+ }++instance Core.FromJSON PermissionSetting where+ parseJSON =+ Core.withObject+ "PermissionSetting"+ ( \o ->+ PermissionSetting+ Core.<$> (o Core..:? "managersAllowed")+ Core.<*> (o Core..:? "membersAllowed")+ )++instance Core.ToJSON PermissionSetting where+ toJSON PermissionSetting {..} =+ Core.object+ ( Core.catMaybes+ [ ("managersAllowed" Core..=) Core.<$> managersAllowed,+ ("membersAllowed" Core..=) Core.<$> membersAllowed+ ]+ )++-- | <https://support.google.com/chat/answer/13340792 Permission settings> that you can specify when updating an existing named space. To set permission settings when creating a space, specify the @PredefinedPermissionSettings@ field in your request.+--+-- /See:/ 'newPermissionSettings' smart constructor.+data PermissionSettings = PermissionSettings+ { -- | Optional. Setting for managing apps in a space.+ manageApps :: (Core.Maybe PermissionSetting),+ -- | Optional. Setting for managing members and groups in a space.+ manageMembersAndGroups :: (Core.Maybe PermissionSetting),+ -- | Optional. Setting for managing webhooks in a space.+ manageWebhooks :: (Core.Maybe PermissionSetting),+ -- | Optional. Setting for updating space name, avatar, description and guidelines.+ modifySpaceDetails :: (Core.Maybe PermissionSetting),+ -- | Output only. Setting for posting messages in a space.+ postMessages :: (Core.Maybe PermissionSetting),+ -- | Optional. Setting for replying to messages in a space.+ replyMessages :: (Core.Maybe PermissionSetting),+ -- | Optional. Setting for toggling space history on and off.+ toggleHistory :: (Core.Maybe PermissionSetting),+ -- | Optional. Setting for using \@all in a space.+ useAtMentionAll :: (Core.Maybe PermissionSetting)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'PermissionSettings' with the minimum fields required to make a request.+newPermissionSettings ::+ PermissionSettings+newPermissionSettings =+ PermissionSettings+ { manageApps = Core.Nothing,+ manageMembersAndGroups = Core.Nothing,+ manageWebhooks = Core.Nothing,+ modifySpaceDetails = Core.Nothing,+ postMessages = Core.Nothing,+ replyMessages = Core.Nothing,+ toggleHistory = Core.Nothing,+ useAtMentionAll = Core.Nothing+ }++instance Core.FromJSON PermissionSettings where+ parseJSON =+ Core.withObject+ "PermissionSettings"+ ( \o ->+ PermissionSettings+ Core.<$> (o Core..:? "manageApps")+ Core.<*> (o Core..:? "manageMembersAndGroups")+ Core.<*> (o Core..:? "manageWebhooks")+ Core.<*> (o Core..:? "modifySpaceDetails")+ Core.<*> (o Core..:? "postMessages")+ Core.<*> (o Core..:? "replyMessages")+ Core.<*> (o Core..:? "toggleHistory")+ Core.<*> (o Core..:? "useAtMentionAll")+ )++instance Core.ToJSON PermissionSettings where+ toJSON PermissionSettings {..} =+ Core.object+ ( Core.catMaybes+ [ ("manageApps" Core..=) Core.<$> manageApps,+ ("manageMembersAndGroups" Core..=) Core.<$> manageMembersAndGroups,+ ("manageWebhooks" Core..=) Core.<$> manageWebhooks,+ ("modifySpaceDetails" Core..=) Core.<$> modifySpaceDetails,+ ("postMessages" Core..=) Core.<$> postMessages,+ ("replyMessages" Core..=) Core.<$> replyMessages,+ ("toggleHistory" Core..=) Core.<$> toggleHistory,+ ("useAtMentionAll" Core..=) Core.<$> useAtMentionAll+ ]+ )++-- | Information about a quoted message.+--+-- /See:/ 'newQuotedMessageMetadata' smart constructor.+data QuotedMessageMetadata = QuotedMessageMetadata+ { -- | Output only. The timestamp when the quoted message was created or when the quoted message was last updated.+ lastUpdateTime :: (Core.Maybe Core.DateTime),+ -- | Output only. Resource name of the quoted message. Format: @spaces\/{space}\/messages\/{message}@+ name :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'QuotedMessageMetadata' with the minimum fields required to make a request.+newQuotedMessageMetadata ::+ QuotedMessageMetadata+newQuotedMessageMetadata =+ QuotedMessageMetadata+ { lastUpdateTime = Core.Nothing,+ name = Core.Nothing+ }++instance Core.FromJSON QuotedMessageMetadata where+ parseJSON =+ Core.withObject+ "QuotedMessageMetadata"+ ( \o ->+ QuotedMessageMetadata+ Core.<$> (o Core..:? "lastUpdateTime")+ Core.<*> (o Core..:? "name")+ )++instance Core.ToJSON QuotedMessageMetadata where+ toJSON QuotedMessageMetadata {..} =+ Core.object+ ( Core.catMaybes+ [ ("lastUpdateTime" Core..=) Core.<$> lastUpdateTime,+ ("name" Core..=) Core.<$> name+ ]+ )++-- | A reaction to a message.+--+-- /See:/ 'newReaction' smart constructor.+data Reaction = Reaction+ { -- | Required. The emoji used in the reaction.+ emoji :: (Core.Maybe Emoji),+ -- | Identifier. The resource name of the reaction. Format: @spaces\/{space}\/messages\/{message}\/reactions\/{reaction}@+ name :: (Core.Maybe Core.Text),+ -- | Output only. The user who created the reaction.+ user :: (Core.Maybe User)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Reaction' with the minimum fields required to make a request.+newReaction ::+ Reaction+newReaction =+ Reaction+ { emoji = Core.Nothing,+ name = Core.Nothing,+ user = Core.Nothing+ }++instance Core.FromJSON Reaction where+ parseJSON =+ Core.withObject+ "Reaction"+ ( \o ->+ Reaction+ Core.<$> (o Core..:? "emoji")+ Core.<*> (o Core..:? "name")+ Core.<*> (o Core..:? "user")+ )++instance Core.ToJSON Reaction where+ toJSON Reaction {..} =+ Core.object+ ( Core.catMaybes+ [ ("emoji" Core..=) Core.<$> emoji,+ ("name" Core..=) Core.<$> name,+ ("user" Core..=) Core.<$> user+ ]+ )++-- | Event payload for multiple new reactions. Event type: @google.workspace.chat.reaction.v1.batchCreated@+--+-- /See:/ 'newReactionBatchCreatedEventData' smart constructor.+newtype ReactionBatchCreatedEventData = ReactionBatchCreatedEventData+ { -- | A list of new reactions.+ reactions :: (Core.Maybe [ReactionCreatedEventData])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ReactionBatchCreatedEventData' with the minimum fields required to make a request.+newReactionBatchCreatedEventData ::+ ReactionBatchCreatedEventData+newReactionBatchCreatedEventData =+ ReactionBatchCreatedEventData {reactions = Core.Nothing}++instance Core.FromJSON ReactionBatchCreatedEventData where+ parseJSON =+ Core.withObject+ "ReactionBatchCreatedEventData"+ ( \o ->+ ReactionBatchCreatedEventData Core.<$> (o Core..:? "reactions")+ )++instance Core.ToJSON ReactionBatchCreatedEventData where+ toJSON ReactionBatchCreatedEventData {..} =+ Core.object+ (Core.catMaybes [("reactions" Core..=) Core.<$> reactions])++-- | Event payload for multiple deleted reactions. Event type: @google.workspace.chat.reaction.v1.batchDeleted@+--+-- /See:/ 'newReactionBatchDeletedEventData' smart constructor.+newtype ReactionBatchDeletedEventData = ReactionBatchDeletedEventData+ { -- | A list of deleted reactions.+ reactions :: (Core.Maybe [ReactionDeletedEventData])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ReactionBatchDeletedEventData' with the minimum fields required to make a request.+newReactionBatchDeletedEventData ::+ ReactionBatchDeletedEventData+newReactionBatchDeletedEventData =+ ReactionBatchDeletedEventData {reactions = Core.Nothing}++instance Core.FromJSON ReactionBatchDeletedEventData where+ parseJSON =+ Core.withObject+ "ReactionBatchDeletedEventData"+ ( \o ->+ ReactionBatchDeletedEventData Core.<$> (o Core..:? "reactions")+ )++instance Core.ToJSON ReactionBatchDeletedEventData where+ toJSON ReactionBatchDeletedEventData {..} =+ Core.object+ (Core.catMaybes [("reactions" Core..=) Core.<$> reactions])++-- | Event payload for a new reaction. Event type: @google.workspace.chat.reaction.v1.created@+--+-- /See:/ 'newReactionCreatedEventData' smart constructor.+newtype ReactionCreatedEventData = ReactionCreatedEventData+ { -- | The new reaction.+ reaction :: (Core.Maybe Reaction)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ReactionCreatedEventData' with the minimum fields required to make a request.+newReactionCreatedEventData ::+ ReactionCreatedEventData+newReactionCreatedEventData =+ ReactionCreatedEventData {reaction = Core.Nothing}++instance Core.FromJSON ReactionCreatedEventData where+ parseJSON =+ Core.withObject+ "ReactionCreatedEventData"+ (\o -> ReactionCreatedEventData Core.<$> (o Core..:? "reaction"))++instance Core.ToJSON ReactionCreatedEventData where+ toJSON ReactionCreatedEventData {..} =+ Core.object+ (Core.catMaybes [("reaction" Core..=) Core.<$> reaction])++-- | Event payload for a deleted reaction. Type: @google.workspace.chat.reaction.v1.deleted@+--+-- /See:/ 'newReactionDeletedEventData' smart constructor.+newtype ReactionDeletedEventData = ReactionDeletedEventData+ { -- | The deleted reaction.+ reaction :: (Core.Maybe Reaction)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ReactionDeletedEventData' with the minimum fields required to make a request.+newReactionDeletedEventData ::+ ReactionDeletedEventData+newReactionDeletedEventData =+ ReactionDeletedEventData {reaction = Core.Nothing}++instance Core.FromJSON ReactionDeletedEventData where+ parseJSON =+ Core.withObject+ "ReactionDeletedEventData"+ (\o -> ReactionDeletedEventData Core.<$> (o Core..:? "reaction"))++instance Core.ToJSON ReactionDeletedEventData where+ toJSON ReactionDeletedEventData {..} =+ Core.object+ (Core.catMaybes [("reaction" Core..=) Core.<$> reaction])++-- | A rich link to a resource.+--+-- /See:/ 'newRichLinkMetadata' smart constructor.+data RichLinkMetadata = RichLinkMetadata+ { -- | Data for a chat space link.+ chatSpaceLinkData :: (Core.Maybe ChatSpaceLinkData),+ -- | Data for a drive link.+ driveLinkData :: (Core.Maybe DriveLinkData),+ -- | The rich link type.+ richLinkType :: (Core.Maybe RichLinkMetadata_RichLinkType),+ -- | The URI of this link.+ uri :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'RichLinkMetadata' with the minimum fields required to make a request.+newRichLinkMetadata ::+ RichLinkMetadata+newRichLinkMetadata =+ RichLinkMetadata+ { chatSpaceLinkData = Core.Nothing,+ driveLinkData = Core.Nothing,+ richLinkType = Core.Nothing,+ uri = Core.Nothing+ }++instance Core.FromJSON RichLinkMetadata where+ parseJSON =+ Core.withObject+ "RichLinkMetadata"+ ( \o ->+ RichLinkMetadata+ Core.<$> (o Core..:? "chatSpaceLinkData")+ Core.<*> (o Core..:? "driveLinkData")+ Core.<*> (o Core..:? "richLinkType")+ Core.<*> (o Core..:? "uri")+ )++instance Core.ToJSON RichLinkMetadata where+ toJSON RichLinkMetadata {..} =+ Core.object+ ( Core.catMaybes+ [ ("chatSpaceLinkData" Core..=) Core.<$> chatSpaceLinkData,+ ("driveLinkData" Core..=) Core.<$> driveLinkData,+ ("richLinkType" Core..=) Core.<$> richLinkType,+ ("uri" Core..=) Core.<$> uri+ ]+ )++-- | Response with a list of spaces corresponding to the search spaces request.+--+-- /See:/ 'newSearchSpacesResponse' smart constructor.+data SearchSpacesResponse = SearchSpacesResponse+ { -- | A token that can be used to retrieve the next page. If this field is empty, there are no subsequent pages.+ nextPageToken :: (Core.Maybe Core.Text),+ -- | A page of the requested spaces.+ spaces :: (Core.Maybe [Space]),+ -- | The total number of spaces that match the query, across all pages. If the result is over 10,000 spaces, this value is an estimate.+ totalSize :: (Core.Maybe Core.Int32)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'SearchSpacesResponse' with the minimum fields required to make a request.+newSearchSpacesResponse ::+ SearchSpacesResponse+newSearchSpacesResponse =+ SearchSpacesResponse+ { nextPageToken = Core.Nothing,+ spaces = Core.Nothing,+ totalSize = Core.Nothing+ }++instance Core.FromJSON SearchSpacesResponse where+ parseJSON =+ Core.withObject+ "SearchSpacesResponse"+ ( \o ->+ SearchSpacesResponse+ Core.<$> (o Core..:? "nextPageToken")+ Core.<*> (o Core..:? "spaces")+ Core.<*> (o Core..:? "totalSize")+ )++instance Core.ToJSON SearchSpacesResponse where+ toJSON SearchSpacesResponse {..} =+ Core.object+ ( Core.catMaybes+ [ ("nextPageToken" Core..=) Core.<$> nextPageToken,+ ("spaces" Core..=) Core.<$> spaces,+ ("totalSize" Core..=) Core.<$> totalSize+ ]+ )++-- | A section contains a collection of widgets that are rendered (vertically) in the order that they are specified. Across all platforms, cards have a narrow fixed width, so there\'s currently no need for layout properties (for example, float).+--+-- /See:/ 'newSection' smart constructor.+data Section = Section+ { -- | The header of the section. Formatted text is supported. For more information about formatting text, see <https://developers.google.com/workspace/chat/format-messages#card-formatting Formatting text in Google Chat apps> and <https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting Formatting text in Google Workspace Add-ons>.+ header :: (Core.Maybe Core.Text),+ -- | A section must contain at least one widget.+ widgets :: (Core.Maybe [WidgetMarkup])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Section' with the minimum fields required to make a request.+newSection ::+ Section+newSection = Section {header = Core.Nothing, widgets = Core.Nothing}++instance Core.FromJSON Section where+ parseJSON =+ Core.withObject+ "Section"+ ( \o ->+ Section+ Core.<$> (o Core..:? "header")+ Core.<*> (o Core..:? "widgets")+ )++instance Core.ToJSON Section where+ toJSON Section {..} =+ Core.object+ ( Core.catMaybes+ [ ("header" Core..=) Core.<$> header,+ ("widgets" Core..=) Core.<$> widgets+ ]+ )++-- | List of widget autocomplete results.+--+-- /See:/ 'newSelectionItems' smart constructor.+newtype SelectionItems = SelectionItems+ { -- | An array of the SelectionItem objects.+ items :: (Core.Maybe [GoogleAppsCardV1SelectionItem])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'SelectionItems' with the minimum fields required to make a request.+newSelectionItems ::+ SelectionItems+newSelectionItems = SelectionItems {items = Core.Nothing}++instance Core.FromJSON SelectionItems where+ parseJSON =+ Core.withObject+ "SelectionItems"+ (\o -> SelectionItems Core.<$> (o Core..:? "items"))++instance Core.ToJSON SelectionItems where+ toJSON SelectionItems {..} =+ Core.object (Core.catMaybes [("items" Core..=) Core.<$> items])++-- | Request to create a space and add specified users to it.+--+-- /See:/ 'newSetUpSpaceRequest' smart constructor.+data SetUpSpaceRequest = SetUpSpaceRequest+ { -- | Optional. The Google Chat users or groups to invite to join the space. Omit the calling user, as they are added automatically. The set currently allows up to 49 memberships (in addition to the caller). For human membership, the @Membership.member@ field must contain a @user@ with @name@ populated (format: @users\/{user}@) and @type@ set to @User.Type.HUMAN@. You can only add human users when setting up a space (adding Chat apps is only supported for direct message setup with the calling app). You can also add members using the user\'s email as an alias for {user}. For example, the @user.name@ can be @users\/example\@gmail.com@. To invite Gmail users or users from external Google Workspace domains, user\'s email must be used for @{user}@. For Google group membership, the @Membership.group_member@ field must contain a @group@ with @name@ populated (format @groups\/{group}@). You can only add Google groups when setting @Space.spaceType@ to @SPACE@. Optional when setting @Space.spaceType@ to @SPACE@. Required+ -- when setting @Space.spaceType@ to @GROUP_CHAT@, along with at least two memberships. Required when setting @Space.spaceType@ to @DIRECT_MESSAGE@ with a human user, along with exactly one membership. Must be empty when creating a 1:1 conversation between a human and the calling Chat app (when setting @Space.spaceType@ to @DIRECT_MESSAGE@ and @Space.singleUserBotDm@ to @true@).+ memberships :: (Core.Maybe [Membership]),+ -- | Optional. A unique identifier for this request. A random UUID is recommended. Specifying an existing request ID returns the space created with that ID instead of creating a new space. Specifying an existing request ID from the same Chat app with a different authenticated user returns an error.+ requestId :: (Core.Maybe Core.Text),+ -- | Required. The @Space.spaceType@ field is required. To create a space, set @Space.spaceType@ to @SPACE@ and set @Space.displayName@. If you receive the error message @ALREADY_EXISTS@ when setting up a space, try a different @displayName@. An existing space within the Google Workspace organization might already use this display name. To create a group chat, set @Space.spaceType@ to @GROUP_CHAT@. Don\'t set @Space.displayName@. To create a 1:1 conversation between humans, set @Space.spaceType@ to @DIRECT_MESSAGE@ and set @Space.singleUserBotDm@ to @false@. Don\'t set @Space.displayName@ or @Space.spaceDetails@. To create an 1:1 conversation between a human and the calling Chat app, set @Space.spaceType@ to @DIRECT_MESSAGE@ and @Space.singleUserBotDm@ to @true@. Don\'t set @Space.displayName@ or @Space.spaceDetails@. If a @DIRECT_MESSAGE@ space already exists, that space is returned instead of creating a new space.+ space :: (Core.Maybe Space)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'SetUpSpaceRequest' with the minimum fields required to make a request.+newSetUpSpaceRequest ::+ SetUpSpaceRequest+newSetUpSpaceRequest =+ SetUpSpaceRequest+ { memberships = Core.Nothing,+ requestId = Core.Nothing,+ space = Core.Nothing+ }++instance Core.FromJSON SetUpSpaceRequest where+ parseJSON =+ Core.withObject+ "SetUpSpaceRequest"+ ( \o ->+ SetUpSpaceRequest+ Core.<$> (o Core..:? "memberships")+ Core.<*> (o Core..:? "requestId")+ Core.<*> (o Core..:? "space")+ )++instance Core.ToJSON SetUpSpaceRequest where+ toJSON SetUpSpaceRequest {..} =+ Core.object+ ( Core.catMaybes+ [ ("memberships" Core..=) Core.<$> memberships,+ ("requestId" Core..=) Core.<$> requestId,+ ("space" Core..=) Core.<$> space+ ]+ )++-- | Metadata about a <https://developers.google.com/workspace/chat/commands slash command> in Google Chat.+--+-- /See:/ 'newSlashCommand' smart constructor.+newtype SlashCommand = SlashCommand+ { -- | The ID of the slash command.+ commandId :: (Core.Maybe Core.Int64)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'SlashCommand' with the minimum fields required to make a request.+newSlashCommand ::+ SlashCommand+newSlashCommand = SlashCommand {commandId = Core.Nothing}++instance Core.FromJSON SlashCommand where+ parseJSON =+ Core.withObject+ "SlashCommand"+ ( \o ->+ SlashCommand+ Core.<$> (o Core..:? "commandId" Core.<&> Core.fmap Core.fromAsText)+ )++instance Core.ToJSON SlashCommand where+ toJSON SlashCommand {..} =+ Core.object+ ( Core.catMaybes+ [("commandId" Core..=) Core.. Core.AsText Core.<$> commandId]+ )++-- | Annotation metadata for slash commands (\/).+--+-- /See:/ 'newSlashCommandMetadata' smart constructor.+data SlashCommandMetadata = SlashCommandMetadata+ { -- | The Chat app whose command was invoked.+ bot :: (Core.Maybe User),+ -- | The command ID of the invoked slash command.+ commandId :: (Core.Maybe Core.Int64),+ -- | The name of the invoked slash command.+ commandName :: (Core.Maybe Core.Text),+ -- | Indicates whether the slash command is for a dialog.+ triggersDialog :: (Core.Maybe Core.Bool),+ -- | The type of slash command.+ type' :: (Core.Maybe SlashCommandMetadata_Type)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'SlashCommandMetadata' with the minimum fields required to make a request.+newSlashCommandMetadata ::+ SlashCommandMetadata+newSlashCommandMetadata =+ SlashCommandMetadata+ { bot = Core.Nothing,+ commandId = Core.Nothing,+ commandName = Core.Nothing,+ triggersDialog = Core.Nothing,+ type' = Core.Nothing+ }++instance Core.FromJSON SlashCommandMetadata where+ parseJSON =+ Core.withObject+ "SlashCommandMetadata"+ ( \o ->+ SlashCommandMetadata+ Core.<$> (o Core..:? "bot")+ Core.<*> (o Core..:? "commandId" Core.<&> Core.fmap Core.fromAsText)+ Core.<*> (o Core..:? "commandName")+ Core.<*> (o Core..:? "triggersDialog")+ Core.<*> (o Core..:? "type")+ )++instance Core.ToJSON SlashCommandMetadata where+ toJSON SlashCommandMetadata {..} =+ Core.object+ ( Core.catMaybes+ [ ("bot" Core..=) Core.<$> bot,+ ("commandId" Core..=) Core.. Core.AsText Core.<$> commandId,+ ("commandName" Core..=) Core.<$> commandName,+ ("triggersDialog" Core..=) Core.<$> triggersDialog,+ ("type" Core..=) Core.<$> type'+ ]+ )++-- | A space in Google Chat. Spaces are conversations between two or more users or 1:1 messages between a user and a Chat app.+--+-- /See:/ 'newSpace' smart constructor.+data Space = Space+ { -- | Optional. Specifies the <https://support.google.com/chat/answer/11971020 access setting> of the space. Only populated when the @space_type@ is @SPACE@.+ accessSettings :: (Core.Maybe AccessSettings),+ -- | Output only. For direct message (DM) spaces with a Chat app, whether the space was created by a Google Workspace administrator. Administrators can install and set up a direct message with a Chat app on behalf of users in their organization. To support admin install, your Chat app must feature direct messaging.+ adminInstalled :: (Core.Maybe Core.Bool),+ -- | Optional. Immutable. For spaces created in Chat, the time the space was created. This field is output only, except when used in import mode spaces. For import mode spaces, set this field to the historical timestamp at which the space was created in the source in order to preserve the original creation time. Only populated in the output when @spaceType@ is @GROUP_CHAT@ or @SPACE@.+ createTime :: (Core.Maybe Core.DateTime),+ -- | Optional. The space\'s display name. Required when <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/create creating a space> with a @spaceType@ of @SPACE@. If you receive the error message @ALREADY_EXISTS@ when creating a space or updating the @displayName@, try a different @displayName@. An existing space within the Google Workspace organization might already use this display name. For direct messages, this field might be empty. Supports up to 128 characters.+ displayName :: (Core.Maybe Core.Text),+ -- | Optional. Immutable. Whether this space permits any Google Chat user as a member. Input when creating a space in a Google Workspace organization. Omit this field when creating spaces in the following conditions: * The authenticated user uses a consumer account (unmanaged user account). By default, a space created by a consumer account permits any Google Chat user. For existing spaces, this field is output only.+ externalUserAllowed :: (Core.Maybe Core.Bool),+ -- | Optional. Whether this space is created in @Import Mode@ as part of a data migration into Google Workspace. While spaces are being imported, they aren\'t visible to users until the import is complete. Creating a space in @Import Mode@requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+ importMode :: (Core.Maybe Core.Bool),+ -- | Output only. The time when the space will be automatically deleted by the system if it remains in import mode. Each space created in import mode must exit this mode before this expire time using @spaces.completeImport@. This field is only populated for spaces that were created with import mode.+ importModeExpireTime :: (Core.Maybe Core.DateTime),+ -- | Output only. Timestamp of the last message in the space.+ lastActiveTime :: (Core.Maybe Core.DateTime),+ -- | Output only. The count of joined memberships grouped by member type. Populated when the @space_type@ is @SPACE@, @DIRECT_MESSAGE@ or @GROUP_CHAT@.+ membershipCount :: (Core.Maybe MembershipCount),+ -- | Identifier. Resource name of the space. Format: @spaces\/{space}@ Where @{space}@ represents the system-assigned ID for the space. You can obtain the space ID by calling the <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/list spaces.list()> method or from the space URL. For example, if the space URL is @https:\/\/mail.google.com\/mail\/u\/0\/#chat\/space\/AAAAAAAAA@, the space ID is @AAAAAAAAA@.+ name :: (Core.Maybe Core.Text),+ -- | Optional. Space permission settings for existing spaces. Input for updating exact space permission settings, where existing permission settings are replaced. Output lists current permission settings. Reading and updating permission settings supports: - In <https://developers.google.com/workspace/preview Developer Preview>, <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> with <https://support.google.com/a?p=chat-app-auth administrator approval> with the @chat.app.spaces@ scope. Only populated and settable when the Chat app created the space. - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication>+ permissionSettings :: (Core.Maybe PermissionSettings),+ -- | Optional. Input only. Predefined space permission settings, input only when creating a space. If the field is not set, a collaboration space is created. After you create the space, settings are populated in the @PermissionSettings@ field. Setting predefined permission settings supports: - In <https://developers.google.com/workspace/preview Developer Preview>, <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> with <https://support.google.com/a?p=chat-app-auth administrator approval> with the @chat.app.spaces@ or @chat.app.spaces.create@ scopes. - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication>+ predefinedPermissionSettings :: (Core.Maybe Space_PredefinedPermissionSettings),+ -- | Optional. Whether the space is a DM between a Chat app and a single human.+ singleUserBotDm :: (Core.Maybe Core.Bool),+ -- | Optional. Details about the space including description and rules.+ spaceDetails :: (Core.Maybe SpaceDetails),+ -- | Optional. The message history state for messages and threads in this space.+ spaceHistoryState :: (Core.Maybe Space_SpaceHistoryState),+ -- | Output only. The threading state in the Chat space.+ spaceThreadingState :: (Core.Maybe Space_SpaceThreadingState),+ -- | Optional. The type of space. Required when creating a space or updating the space type of a space. Output only for other usage.+ spaceType :: (Core.Maybe Space_SpaceType),+ -- | Output only. The URI for a user to access the space.+ spaceUri :: (Core.Maybe Core.Text),+ -- | Output only. Deprecated: Use @spaceThreadingState@ instead. Whether messages are threaded in this space.+ threaded :: (Core.Maybe Core.Bool),+ -- | Output only. Deprecated: Use @space_type@ instead. The type of a space.+ type' :: (Core.Maybe Space_Type)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Space' with the minimum fields required to make a request.+newSpace ::+ Space+newSpace =+ Space+ { accessSettings = Core.Nothing,+ adminInstalled = Core.Nothing,+ createTime = Core.Nothing,+ displayName = Core.Nothing,+ externalUserAllowed = Core.Nothing,+ importMode = Core.Nothing,+ importModeExpireTime = Core.Nothing,+ lastActiveTime = Core.Nothing,+ membershipCount = Core.Nothing,+ name = Core.Nothing,+ permissionSettings = Core.Nothing,+ predefinedPermissionSettings = Core.Nothing,+ singleUserBotDm = Core.Nothing,+ spaceDetails = Core.Nothing,+ spaceHistoryState = Core.Nothing,+ spaceThreadingState = Core.Nothing,+ spaceType = Core.Nothing,+ spaceUri = Core.Nothing,+ threaded = Core.Nothing,+ type' = Core.Nothing+ }++instance Core.FromJSON Space where+ parseJSON =+ Core.withObject+ "Space"+ ( \o ->+ Space+ Core.<$> (o Core..:? "accessSettings")+ Core.<*> (o Core..:? "adminInstalled")+ Core.<*> (o Core..:? "createTime")+ Core.<*> (o Core..:? "displayName")+ Core.<*> (o Core..:? "externalUserAllowed")+ Core.<*> (o Core..:? "importMode")+ Core.<*> (o Core..:? "importModeExpireTime")+ Core.<*> (o Core..:? "lastActiveTime")+ Core.<*> (o Core..:? "membershipCount")+ Core.<*> (o Core..:? "name")+ Core.<*> (o Core..:? "permissionSettings")+ Core.<*> (o Core..:? "predefinedPermissionSettings")+ Core.<*> (o Core..:? "singleUserBotDm")+ Core.<*> (o Core..:? "spaceDetails")+ Core.<*> (o Core..:? "spaceHistoryState")+ Core.<*> (o Core..:? "spaceThreadingState")+ Core.<*> (o Core..:? "spaceType")+ Core.<*> (o Core..:? "spaceUri")+ Core.<*> (o Core..:? "threaded")+ Core.<*> (o Core..:? "type")+ )++instance Core.ToJSON Space where+ toJSON Space {..} =+ Core.object+ ( Core.catMaybes+ [ ("accessSettings" Core..=) Core.<$> accessSettings,+ ("adminInstalled" Core..=) Core.<$> adminInstalled,+ ("createTime" Core..=) Core.<$> createTime,+ ("displayName" Core..=) Core.<$> displayName,+ ("externalUserAllowed" Core..=) Core.<$> externalUserAllowed,+ ("importMode" Core..=) Core.<$> importMode,+ ("importModeExpireTime" Core..=) Core.<$> importModeExpireTime,+ ("lastActiveTime" Core..=) Core.<$> lastActiveTime,+ ("membershipCount" Core..=) Core.<$> membershipCount,+ ("name" Core..=) Core.<$> name,+ ("permissionSettings" Core..=) Core.<$> permissionSettings,+ ("predefinedPermissionSettings" Core..=)+ Core.<$> predefinedPermissionSettings,+ ("singleUserBotDm" Core..=) Core.<$> singleUserBotDm,+ ("spaceDetails" Core..=) Core.<$> spaceDetails,+ ("spaceHistoryState" Core..=) Core.<$> spaceHistoryState,+ ("spaceThreadingState" Core..=) Core.<$> spaceThreadingState,+ ("spaceType" Core..=) Core.<$> spaceType,+ ("spaceUri" Core..=) Core.<$> spaceUri,+ ("threaded" Core..=) Core.<$> threaded,+ ("type" Core..=) Core.<$> type'+ ]+ )++-- | Event payload for multiple updates to a space. Event type: @google.workspace.chat.space.v1.batchUpdated@+--+-- /See:/ 'newSpaceBatchUpdatedEventData' smart constructor.+newtype SpaceBatchUpdatedEventData = SpaceBatchUpdatedEventData+ { -- | A list of updated spaces.+ spaces :: (Core.Maybe [SpaceUpdatedEventData])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'SpaceBatchUpdatedEventData' with the minimum fields required to make a request.+newSpaceBatchUpdatedEventData ::+ SpaceBatchUpdatedEventData+newSpaceBatchUpdatedEventData =+ SpaceBatchUpdatedEventData {spaces = Core.Nothing}++instance Core.FromJSON SpaceBatchUpdatedEventData where+ parseJSON =+ Core.withObject+ "SpaceBatchUpdatedEventData"+ (\o -> SpaceBatchUpdatedEventData Core.<$> (o Core..:? "spaces"))++instance Core.ToJSON SpaceBatchUpdatedEventData where+ toJSON SpaceBatchUpdatedEventData {..} =+ Core.object (Core.catMaybes [("spaces" Core..=) Core.<$> spaces])++-- | A data source that populates Google Chat spaces as selection items for a multiselect menu. Only populates spaces that the user is a member of. <https://developers.google.com/workspace/chat Google Chat apps>:+--+-- /See:/ 'newSpaceDataSource' smart constructor.+newtype SpaceDataSource = SpaceDataSource+ { -- | If set to @true@, the multiselect menu selects the current Google Chat space as an item by default.+ defaultToCurrentSpace :: (Core.Maybe Core.Bool)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'SpaceDataSource' with the minimum fields required to make a request.+newSpaceDataSource ::+ SpaceDataSource+newSpaceDataSource =+ SpaceDataSource {defaultToCurrentSpace = Core.Nothing}++instance Core.FromJSON SpaceDataSource where+ parseJSON =+ Core.withObject+ "SpaceDataSource"+ ( \o ->+ SpaceDataSource Core.<$> (o Core..:? "defaultToCurrentSpace")+ )++instance Core.ToJSON SpaceDataSource where+ toJSON SpaceDataSource {..} =+ Core.object+ ( Core.catMaybes+ [("defaultToCurrentSpace" Core..=) Core.<$> defaultToCurrentSpace]+ )++-- | Details about the space including description and rules.+--+-- /See:/ 'newSpaceDetails' smart constructor.+data SpaceDetails = SpaceDetails+ { -- | Optional. A description of the space. For example, describe the space\'s discussion topic, functional purpose, or participants. Supports up to 150 characters.+ description :: (Core.Maybe Core.Text),+ -- | Optional. The space\'s rules, expectations, and etiquette. Supports up to 5,000 characters.+ guidelines :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'SpaceDetails' with the minimum fields required to make a request.+newSpaceDetails ::+ SpaceDetails+newSpaceDetails =+ SpaceDetails+ { description = Core.Nothing,+ guidelines = Core.Nothing+ }++instance Core.FromJSON SpaceDetails where+ parseJSON =+ Core.withObject+ "SpaceDetails"+ ( \o ->+ SpaceDetails+ Core.<$> (o Core..:? "description")+ Core.<*> (o Core..:? "guidelines")+ )++instance Core.ToJSON SpaceDetails where+ toJSON SpaceDetails {..} =+ Core.object+ ( Core.catMaybes+ [ ("description" Core..=) Core.<$> description,+ ("guidelines" Core..=) Core.<$> guidelines+ ]+ )++-- | An event that represents a change or activity in a Google Chat space. To learn more, see <https://developers.google.com/workspace/chat/events-overview Work with events from Google Chat>.+--+-- /See:/ 'newSpaceEvent' smart constructor.+data SpaceEvent = SpaceEvent+ { -- | Time when the event occurred.+ eventTime :: (Core.Maybe Core.DateTime),+ -- | Type of space event. Each event type has a batch version, which represents multiple instances of the event type that occur in a short period of time. For @spaceEvents.list()@ requests, omit batch event types in your query filter. By default, the server returns both event type and its batch version. Supported event types for <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages messages>: * New message: @google.workspace.chat.message.v1.created@ * Updated message: @google.workspace.chat.message.v1.updated@ * Deleted message: @google.workspace.chat.message.v1.deleted@ * Multiple new messages: @google.workspace.chat.message.v1.batchCreated@ * Multiple updated messages: @google.workspace.chat.message.v1.batchUpdated@ * Multiple deleted messages: @google.workspace.chat.message.v1.batchDeleted@ Supported event types for <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.members memberships>: * New membership: @google.workspace.chat.membership.v1.created@ *+ -- Updated membership: @google.workspace.chat.membership.v1.updated@ * Deleted membership: @google.workspace.chat.membership.v1.deleted@ * Multiple new memberships: @google.workspace.chat.membership.v1.batchCreated@ * Multiple updated memberships: @google.workspace.chat.membership.v1.batchUpdated@ * Multiple deleted memberships: @google.workspace.chat.membership.v1.batchDeleted@ Supported event types for <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages.reactions reactions>: * New reaction: @google.workspace.chat.reaction.v1.created@ * Deleted reaction: @google.workspace.chat.reaction.v1.deleted@ * Multiple new reactions: @google.workspace.chat.reaction.v1.batchCreated@ * Multiple deleted reactions: @google.workspace.chat.reaction.v1.batchDeleted@ Supported event types about the <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces space>: * Updated space: @google.workspace.chat.space.v1.updated@ * Multiple space updates:+ -- @google.workspace.chat.space.v1.batchUpdated@+ eventType :: (Core.Maybe Core.Text),+ -- | Event payload for multiple new memberships. Event type: @google.workspace.chat.membership.v1.batchCreated@+ membershipBatchCreatedEventData :: (Core.Maybe MembershipBatchCreatedEventData),+ -- | Event payload for multiple deleted memberships. Event type: @google.workspace.chat.membership.v1.batchDeleted@+ membershipBatchDeletedEventData :: (Core.Maybe MembershipBatchDeletedEventData),+ -- | Event payload for multiple updated memberships. Event type: @google.workspace.chat.membership.v1.batchUpdated@+ membershipBatchUpdatedEventData :: (Core.Maybe MembershipBatchUpdatedEventData),+ -- | Event payload for a new membership. Event type: @google.workspace.chat.membership.v1.created@+ membershipCreatedEventData :: (Core.Maybe MembershipCreatedEventData),+ -- | Event payload for a deleted membership. Event type: @google.workspace.chat.membership.v1.deleted@+ membershipDeletedEventData :: (Core.Maybe MembershipDeletedEventData),+ -- | Event payload for an updated membership. Event type: @google.workspace.chat.membership.v1.updated@+ membershipUpdatedEventData :: (Core.Maybe MembershipUpdatedEventData),+ -- | Event payload for multiple new messages. Event type: @google.workspace.chat.message.v1.batchCreated@+ messageBatchCreatedEventData :: (Core.Maybe MessageBatchCreatedEventData),+ -- | Event payload for multiple deleted messages. Event type: @google.workspace.chat.message.v1.batchDeleted@+ messageBatchDeletedEventData :: (Core.Maybe MessageBatchDeletedEventData),+ -- | Event payload for multiple updated messages. Event type: @google.workspace.chat.message.v1.batchUpdated@+ messageBatchUpdatedEventData :: (Core.Maybe MessageBatchUpdatedEventData),+ -- | Event payload for a new message. Event type: @google.workspace.chat.message.v1.created@+ messageCreatedEventData :: (Core.Maybe MessageCreatedEventData),+ -- | Event payload for a deleted message. Event type: @google.workspace.chat.message.v1.deleted@+ messageDeletedEventData :: (Core.Maybe MessageDeletedEventData),+ -- | Event payload for an updated message. Event type: @google.workspace.chat.message.v1.updated@+ messageUpdatedEventData :: (Core.Maybe MessageUpdatedEventData),+ -- | Resource name of the space event. Format: @spaces\/{space}\/spaceEvents\/{spaceEvent}@+ name :: (Core.Maybe Core.Text),+ -- | Event payload for multiple new reactions. Event type: @google.workspace.chat.reaction.v1.batchCreated@+ reactionBatchCreatedEventData :: (Core.Maybe ReactionBatchCreatedEventData),+ -- | Event payload for multiple deleted reactions. Event type: @google.workspace.chat.reaction.v1.batchDeleted@+ reactionBatchDeletedEventData :: (Core.Maybe ReactionBatchDeletedEventData),+ -- | Event payload for a new reaction. Event type: @google.workspace.chat.reaction.v1.created@+ reactionCreatedEventData :: (Core.Maybe ReactionCreatedEventData),+ -- | Event payload for a deleted reaction. Event type: @google.workspace.chat.reaction.v1.deleted@+ reactionDeletedEventData :: (Core.Maybe ReactionDeletedEventData),+ -- | Event payload for multiple updates to a space. Event type: @google.workspace.chat.space.v1.batchUpdated@+ spaceBatchUpdatedEventData :: (Core.Maybe SpaceBatchUpdatedEventData),+ -- | Event payload for a space update. Event type: @google.workspace.chat.space.v1.updated@+ spaceUpdatedEventData :: (Core.Maybe SpaceUpdatedEventData)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'SpaceEvent' with the minimum fields required to make a request.+newSpaceEvent ::+ SpaceEvent+newSpaceEvent =+ SpaceEvent+ { eventTime = Core.Nothing,+ eventType = Core.Nothing,+ membershipBatchCreatedEventData = Core.Nothing,+ membershipBatchDeletedEventData = Core.Nothing,+ membershipBatchUpdatedEventData = Core.Nothing,+ membershipCreatedEventData = Core.Nothing,+ membershipDeletedEventData = Core.Nothing,+ membershipUpdatedEventData = Core.Nothing,+ messageBatchCreatedEventData = Core.Nothing,+ messageBatchDeletedEventData = Core.Nothing,+ messageBatchUpdatedEventData = Core.Nothing,+ messageCreatedEventData = Core.Nothing,+ messageDeletedEventData = Core.Nothing,+ messageUpdatedEventData = Core.Nothing,+ name = Core.Nothing,+ reactionBatchCreatedEventData = Core.Nothing,+ reactionBatchDeletedEventData = Core.Nothing,+ reactionCreatedEventData = Core.Nothing,+ reactionDeletedEventData = Core.Nothing,+ spaceBatchUpdatedEventData = Core.Nothing,+ spaceUpdatedEventData = Core.Nothing+ }++instance Core.FromJSON SpaceEvent where+ parseJSON =+ Core.withObject+ "SpaceEvent"+ ( \o ->+ SpaceEvent+ Core.<$> (o Core..:? "eventTime")+ Core.<*> (o Core..:? "eventType")+ Core.<*> (o Core..:? "membershipBatchCreatedEventData")+ Core.<*> (o Core..:? "membershipBatchDeletedEventData")+ Core.<*> (o Core..:? "membershipBatchUpdatedEventData")+ Core.<*> (o Core..:? "membershipCreatedEventData")+ Core.<*> (o Core..:? "membershipDeletedEventData")+ Core.<*> (o Core..:? "membershipUpdatedEventData")+ Core.<*> (o Core..:? "messageBatchCreatedEventData")+ Core.<*> (o Core..:? "messageBatchDeletedEventData")+ Core.<*> (o Core..:? "messageBatchUpdatedEventData")+ Core.<*> (o Core..:? "messageCreatedEventData")+ Core.<*> (o Core..:? "messageDeletedEventData")+ Core.<*> (o Core..:? "messageUpdatedEventData")+ Core.<*> (o Core..:? "name")+ Core.<*> (o Core..:? "reactionBatchCreatedEventData")+ Core.<*> (o Core..:? "reactionBatchDeletedEventData")+ Core.<*> (o Core..:? "reactionCreatedEventData")+ Core.<*> (o Core..:? "reactionDeletedEventData")+ Core.<*> (o Core..:? "spaceBatchUpdatedEventData")+ Core.<*> (o Core..:? "spaceUpdatedEventData")+ )++instance Core.ToJSON SpaceEvent where+ toJSON SpaceEvent {..} =+ Core.object+ ( Core.catMaybes+ [ ("eventTime" Core..=) Core.<$> eventTime,+ ("eventType" Core..=) Core.<$> eventType,+ ("membershipBatchCreatedEventData" Core..=)+ Core.<$> membershipBatchCreatedEventData,+ ("membershipBatchDeletedEventData" Core..=)+ Core.<$> membershipBatchDeletedEventData,+ ("membershipBatchUpdatedEventData" Core..=)+ Core.<$> membershipBatchUpdatedEventData,+ ("membershipCreatedEventData" Core..=)+ Core.<$> membershipCreatedEventData,+ ("membershipDeletedEventData" Core..=)+ Core.<$> membershipDeletedEventData,+ ("membershipUpdatedEventData" Core..=)+ Core.<$> membershipUpdatedEventData,+ ("messageBatchCreatedEventData" Core..=)+ Core.<$> messageBatchCreatedEventData,+ ("messageBatchDeletedEventData" Core..=)+ Core.<$> messageBatchDeletedEventData,+ ("messageBatchUpdatedEventData" Core..=)+ Core.<$> messageBatchUpdatedEventData,+ ("messageCreatedEventData" Core..=)+ Core.<$> messageCreatedEventData,+ ("messageDeletedEventData" Core..=)+ Core.<$> messageDeletedEventData,+ ("messageUpdatedEventData" Core..=)+ Core.<$> messageUpdatedEventData,+ ("name" Core..=) Core.<$> name,+ ("reactionBatchCreatedEventData" Core..=)+ Core.<$> reactionBatchCreatedEventData,+ ("reactionBatchDeletedEventData" Core..=)+ Core.<$> reactionBatchDeletedEventData,+ ("reactionCreatedEventData" Core..=)+ Core.<$> reactionCreatedEventData,+ ("reactionDeletedEventData" Core..=)+ Core.<$> reactionDeletedEventData,+ ("spaceBatchUpdatedEventData" Core..=)+ Core.<$> spaceBatchUpdatedEventData,+ ("spaceUpdatedEventData" Core..=) Core.<$> spaceUpdatedEventData+ ]+ )++-- | The notification setting of a user in a space.+--+-- /See:/ 'newSpaceNotificationSetting' smart constructor.+data SpaceNotificationSetting = SpaceNotificationSetting+ { -- | The space notification mute setting.+ muteSetting :: (Core.Maybe SpaceNotificationSetting_MuteSetting),+ -- | Identifier. The resource name of the space notification setting. Format: @users\/{user}\/spaces\/{space}\/spaceNotificationSetting@.+ name :: (Core.Maybe Core.Text),+ -- | The notification setting.+ notificationSetting :: (Core.Maybe SpaceNotificationSetting_NotificationSetting)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'SpaceNotificationSetting' with the minimum fields required to make a request.+newSpaceNotificationSetting ::+ SpaceNotificationSetting+newSpaceNotificationSetting =+ SpaceNotificationSetting+ { muteSetting = Core.Nothing,+ name = Core.Nothing,+ notificationSetting = Core.Nothing+ }++instance Core.FromJSON SpaceNotificationSetting where+ parseJSON =+ Core.withObject+ "SpaceNotificationSetting"+ ( \o ->+ SpaceNotificationSetting+ Core.<$> (o Core..:? "muteSetting")+ Core.<*> (o Core..:? "name")+ Core.<*> (o Core..:? "notificationSetting")+ )++instance Core.ToJSON SpaceNotificationSetting where+ toJSON SpaceNotificationSetting {..} =+ Core.object+ ( Core.catMaybes+ [ ("muteSetting" Core..=) Core.<$> muteSetting,+ ("name" Core..=) Core.<$> name,+ ("notificationSetting" Core..=) Core.<$> notificationSetting+ ]+ )++-- | A user\'s read state within a space, used to identify read and unread messages.+--+-- /See:/ 'newSpaceReadState' smart constructor.+data SpaceReadState = SpaceReadState+ { -- | Optional. The time when the user\'s space read state was updated. Usually this corresponds with either the timestamp of the last read message, or a timestamp specified by the user to mark the last read position in a space.+ lastReadTime :: (Core.Maybe Core.DateTime),+ -- | Resource name of the space read state. Format: @users\/{user}\/spaces\/{space}\/spaceReadState@+ name :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'SpaceReadState' with the minimum fields required to make a request.+newSpaceReadState ::+ SpaceReadState+newSpaceReadState =+ SpaceReadState {lastReadTime = Core.Nothing, name = Core.Nothing}++instance Core.FromJSON SpaceReadState where+ parseJSON =+ Core.withObject+ "SpaceReadState"+ ( \o ->+ SpaceReadState+ Core.<$> (o Core..:? "lastReadTime")+ Core.<*> (o Core..:? "name")+ )++instance Core.ToJSON SpaceReadState where+ toJSON SpaceReadState {..} =+ Core.object+ ( Core.catMaybes+ [ ("lastReadTime" Core..=) Core.<$> lastReadTime,+ ("name" Core..=) Core.<$> name+ ]+ )++-- | Event payload for an updated space. Event type: @google.workspace.chat.space.v1.updated@+--+-- /See:/ 'newSpaceUpdatedEventData' smart constructor.+newtype SpaceUpdatedEventData = SpaceUpdatedEventData+ { -- | The updated space.+ space :: (Core.Maybe Space)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'SpaceUpdatedEventData' with the minimum fields required to make a request.+newSpaceUpdatedEventData ::+ SpaceUpdatedEventData+newSpaceUpdatedEventData =+ SpaceUpdatedEventData {space = Core.Nothing}++instance Core.FromJSON SpaceUpdatedEventData where+ parseJSON =+ Core.withObject+ "SpaceUpdatedEventData"+ (\o -> SpaceUpdatedEventData Core.<$> (o Core..:? "space"))++instance Core.ToJSON SpaceUpdatedEventData where+ toJSON SpaceUpdatedEventData {..} =+ Core.object (Core.catMaybes [("space" Core..=) Core.<$> space])++-- | The @Status@ type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by <https://github.com/grpc gRPC>. Each @Status@ message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the <https://cloud.google.com/apis/design/errors API Design Guide>.+--+-- /See:/ 'newStatus' smart constructor.+data Status = Status+ { -- | The status code, which should be an enum value of google.rpc.Code.+ code :: (Core.Maybe Core.Int32),+ -- | A list of messages that carry the error details. There is a common set of message types for APIs to use.+ details :: (Core.Maybe [Status_DetailsItem]),+ -- | A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.+ message :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Status' with the minimum fields required to make a request.+newStatus ::+ Status+newStatus =+ Status+ { code = Core.Nothing,+ details = Core.Nothing,+ message = Core.Nothing+ }++instance Core.FromJSON Status where+ parseJSON =+ Core.withObject+ "Status"+ ( \o ->+ Status+ Core.<$> (o Core..:? "code")+ Core.<*> (o Core..:? "details")+ Core.<*> (o Core..:? "message")+ )++instance Core.ToJSON Status where+ toJSON Status {..} =+ Core.object+ ( Core.catMaybes+ [ ("code" Core..=) Core.<$> code,+ ("details" Core..=) Core.<$> details,+ ("message" Core..=) Core.<$> message+ ]+ )++--+-- /See:/ 'newStatus_DetailsItem' smart constructor.+newtype Status_DetailsItem = Status_DetailsItem+ { -- | Properties of the object. Contains field \@type with type URL.+ additional :: (Core.HashMap Core.Text Core.Value)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Status_DetailsItem' with the minimum fields required to make a request.+newStatus_DetailsItem ::+ -- | Properties of the object. Contains field \@type with type URL. See 'additional'.+ Core.HashMap Core.Text Core.Value ->+ Status_DetailsItem+newStatus_DetailsItem additional =+ Status_DetailsItem {additional = additional}++instance Core.FromJSON Status_DetailsItem where+ parseJSON =+ Core.withObject+ "Status_DetailsItem"+ (\o -> Status_DetailsItem Core.<$> (Core.parseJSONObject o))++instance Core.ToJSON Status_DetailsItem where+ toJSON Status_DetailsItem {..} = Core.toJSON additional++-- | Input parameter for regular widgets. For single-valued widgets, it is a single value list. For multi-valued widgets, such as checkbox, all the values are presented.+--+-- /See:/ 'newStringInputs' smart constructor.+newtype StringInputs = StringInputs+ { -- | An list of strings entered by the user.+ value :: (Core.Maybe [Core.Text])+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'StringInputs' with the minimum fields required to make a request.+newStringInputs ::+ StringInputs+newStringInputs = StringInputs {value = Core.Nothing}++instance Core.FromJSON StringInputs where+ parseJSON =+ Core.withObject+ "StringInputs"+ (\o -> StringInputs Core.<$> (o Core..:? "value"))++instance Core.ToJSON StringInputs where+ toJSON StringInputs {..} =+ Core.object (Core.catMaybes [("value" Core..=) Core.<$> value])++-- | A button with text and @onclick@ action.+--+-- /See:/ 'newTextButton' smart constructor.+data TextButton = TextButton+ { -- | The @onclick@ action of the button.+ onClick :: (Core.Maybe OnClick),+ -- | The text of the button.+ text :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'TextButton' with the minimum fields required to make a request.+newTextButton ::+ TextButton+newTextButton =+ TextButton {onClick = Core.Nothing, text = Core.Nothing}++instance Core.FromJSON TextButton where+ parseJSON =+ Core.withObject+ "TextButton"+ ( \o ->+ TextButton+ Core.<$> (o Core..:? "onClick")+ Core.<*> (o Core..:? "text")+ )++instance Core.ToJSON TextButton where+ toJSON TextButton {..} =+ Core.object+ ( Core.catMaybes+ [ ("onClick" Core..=) Core.<$> onClick,+ ("text" Core..=) Core.<$> text+ ]+ )++-- | A paragraph of text. Formatted text supported. For more information about formatting text, see <https://developers.google.com/workspace/chat/format-messages#card-formatting Formatting text in Google Chat apps> and <https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting Formatting text in Google Workspace Add-ons>.+--+-- /See:/ 'newTextParagraph' smart constructor.+newtype TextParagraph = TextParagraph+ { text :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'TextParagraph' with the minimum fields required to make a request.+newTextParagraph ::+ TextParagraph+newTextParagraph = TextParagraph {text = Core.Nothing}++instance Core.FromJSON TextParagraph where+ parseJSON =+ Core.withObject+ "TextParagraph"+ (\o -> TextParagraph Core.<$> (o Core..:? "text"))++instance Core.ToJSON TextParagraph where+ toJSON TextParagraph {..} =+ Core.object (Core.catMaybes [("text" Core..=) Core.<$> text])++-- | A thread in a Google Chat space. For example usage, see <https://developers.google.com/workspace/chat/create-messages#create-message-thread Start or reply to a message thread>. If you specify a thread when creating a message, you can set the <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages/create#messagereplyoption messageReplyOption> field to determine what happens if no matching thread is found.+--+-- /See:/ 'newThread' smart constructor.+data Thread = Thread+ { -- | Identifier. Resource name of the thread. Example: @spaces\/{space}\/threads\/{thread}@+ name :: (Core.Maybe Core.Text),+ -- | Optional. Input for creating or updating a thread. Otherwise, output only. ID for the thread. Supports up to 4000 characters. This ID is unique to the Chat app that sets it. For example, if multiple Chat apps create a message using the same thread key, the messages are posted in different threads. To reply in a thread created by a person or another Chat app, specify the thread @name@ field instead.+ threadKey :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'Thread' with the minimum fields required to make a request.+newThread ::+ Thread+newThread = Thread {name = Core.Nothing, threadKey = Core.Nothing}++instance Core.FromJSON Thread where+ parseJSON =+ Core.withObject+ "Thread"+ ( \o ->+ Thread+ Core.<$> (o Core..:? "name")+ Core.<*> (o Core..:? "threadKey")+ )++instance Core.ToJSON Thread where+ toJSON Thread {..} =+ Core.object+ ( Core.catMaybes+ [ ("name" Core..=) Core.<$> name,+ ("threadKey" Core..=) Core.<$> threadKey+ ]+ )++-- | A user\'s read state within a thread, used to identify read and unread messages.+--+-- /See:/ 'newThreadReadState' smart constructor.+data ThreadReadState = ThreadReadState+ { -- | The time when the user\'s thread read state was updated. Usually this corresponds with the timestamp of the last read message in a thread.+ lastReadTime :: (Core.Maybe Core.DateTime),+ -- | Resource name of the thread read state. Format: @users\/{user}\/spaces\/{space}\/threads\/{thread}\/threadReadState@+ name :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ThreadReadState' with the minimum fields required to make a request.+newThreadReadState ::+ ThreadReadState+newThreadReadState =+ ThreadReadState {lastReadTime = Core.Nothing, name = Core.Nothing}++instance Core.FromJSON ThreadReadState where+ parseJSON =+ Core.withObject+ "ThreadReadState"+ ( \o ->+ ThreadReadState+ Core.<$> (o Core..:? "lastReadTime")+ Core.<*> (o Core..:? "name")+ )++instance Core.ToJSON ThreadReadState where+ toJSON ThreadReadState {..} =+ Core.object+ ( Core.catMaybes+ [ ("lastReadTime" Core..=) Core.<$> lastReadTime,+ ("name" Core..=) Core.<$> name+ ]+ )++-- | Time input values.+--+-- /See:/ 'newTimeInput' smart constructor.+data TimeInput = TimeInput+ { -- | The hour on a 24-hour clock.+ hours :: (Core.Maybe Core.Int32),+ -- | The number of minutes past the hour. Valid values are 0 to 59.+ minutes :: (Core.Maybe Core.Int32)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'TimeInput' with the minimum fields required to make a request.+newTimeInput ::+ TimeInput+newTimeInput =+ TimeInput {hours = Core.Nothing, minutes = Core.Nothing}++instance Core.FromJSON TimeInput where+ parseJSON =+ Core.withObject+ "TimeInput"+ ( \o ->+ TimeInput+ Core.<$> (o Core..:? "hours")+ Core.<*> (o Core..:? "minutes")+ )++instance Core.ToJSON TimeInput where+ toJSON TimeInput {..} =+ Core.object+ ( Core.catMaybes+ [ ("hours" Core..=) Core.<$> hours,+ ("minutes" Core..=) Core.<$> minutes+ ]+ )++-- | The timezone ID and offset from Coordinated Universal Time (UTC). Only supported for the event types <https://developers.google.com/chat/api/reference/rest/v1/EventType#ENUM_VALUES.CARD_CLICKED CARD_CLICKED> and <https://developers.google.com/chat/api/reference/rest/v1/DialogEventType#ENUM_VALUES.SUBMIT_DIALOG SUBMIT_DIALOG>.+--+-- /See:/ 'newTimeZone' smart constructor.+data TimeZone = TimeZone+ { -- | The <https://www.iana.org/time-zones IANA TZ> time zone database code, such as \"America\/Toronto\".+ id :: (Core.Maybe Core.Text),+ -- | The user timezone offset, in milliseconds, from Coordinated Universal Time (UTC).+ offset :: (Core.Maybe Core.Int32)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'TimeZone' with the minimum fields required to make a request.+newTimeZone ::+ TimeZone+newTimeZone = TimeZone {id = Core.Nothing, offset = Core.Nothing}++instance Core.FromJSON TimeZone where+ parseJSON =+ Core.withObject+ "TimeZone"+ ( \o ->+ TimeZone Core.<$> (o Core..:? "id") Core.<*> (o Core..:? "offset")+ )++instance Core.ToJSON TimeZone where+ toJSON TimeZone {..} =+ Core.object+ ( Core.catMaybes+ [("id" Core..=) Core.<$> id, ("offset" Core..=) Core.<$> offset]+ )++-- | For @selectionInput@ widgets, returns autocomplete suggestions for a multiselect menu.+--+-- /See:/ 'newUpdatedWidget' smart constructor.+data UpdatedWidget = UpdatedWidget+ { -- | List of widget autocomplete results+ suggestions :: (Core.Maybe SelectionItems),+ -- | The ID of the updated widget. The ID must match the one for the widget that triggered the update request.+ widget :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'UpdatedWidget' with the minimum fields required to make a request.+newUpdatedWidget ::+ UpdatedWidget+newUpdatedWidget =+ UpdatedWidget {suggestions = Core.Nothing, widget = Core.Nothing}++instance Core.FromJSON UpdatedWidget where+ parseJSON =+ Core.withObject+ "UpdatedWidget"+ ( \o ->+ UpdatedWidget+ Core.<$> (o Core..:? "suggestions")+ Core.<*> (o Core..:? "widget")+ )++instance Core.ToJSON UpdatedWidget where+ toJSON UpdatedWidget {..} =+ Core.object+ ( Core.catMaybes+ [ ("suggestions" Core..=) Core.<$> suggestions,+ ("widget" Core..=) Core.<$> widget+ ]+ )++-- | Request to upload an attachment.+--+-- /See:/ 'newUploadAttachmentRequest' smart constructor.+newtype UploadAttachmentRequest = UploadAttachmentRequest+ { -- | Required. The filename of the attachment, including the file extension.+ filename :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'UploadAttachmentRequest' with the minimum fields required to make a request.+newUploadAttachmentRequest ::+ UploadAttachmentRequest+newUploadAttachmentRequest =+ UploadAttachmentRequest {filename = Core.Nothing}++instance Core.FromJSON UploadAttachmentRequest where+ parseJSON =+ Core.withObject+ "UploadAttachmentRequest"+ (\o -> UploadAttachmentRequest Core.<$> (o Core..:? "filename"))++instance Core.ToJSON UploadAttachmentRequest where+ toJSON UploadAttachmentRequest {..} =+ Core.object+ (Core.catMaybes [("filename" Core..=) Core.<$> filename])++-- | Response of uploading an attachment.+--+-- /See:/ 'newUploadAttachmentResponse' smart constructor.+newtype UploadAttachmentResponse = UploadAttachmentResponse+ { -- | Reference to the uploaded attachment.+ attachmentDataRef :: (Core.Maybe AttachmentDataRef)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'UploadAttachmentResponse' with the minimum fields required to make a request.+newUploadAttachmentResponse ::+ UploadAttachmentResponse+newUploadAttachmentResponse =+ UploadAttachmentResponse {attachmentDataRef = Core.Nothing}++instance Core.FromJSON UploadAttachmentResponse where+ parseJSON =+ Core.withObject+ "UploadAttachmentResponse"+ ( \o ->+ UploadAttachmentResponse Core.<$> (o Core..:? "attachmentDataRef")+ )++instance Core.ToJSON UploadAttachmentResponse where+ toJSON UploadAttachmentResponse {..} =+ Core.object+ ( Core.catMaybes+ [("attachmentDataRef" Core..=) Core.<$> attachmentDataRef]+ )++-- | A user in Google Chat. When returned as an output from a request, if your Chat app <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user authenticates as a user>, the output for a @User@ resource only populates the user\'s @name@ and @type@.+--+-- /See:/ 'newUser' smart constructor.+data User = User+ { -- | Output only. The user\'s display name.+ displayName :: (Core.Maybe Core.Text),+ -- | Unique identifier of the user\'s Google Workspace domain.+ domainId :: (Core.Maybe Core.Text),+ -- | Output only. When @true@, the user is deleted or their profile is not visible.+ isAnonymous :: (Core.Maybe Core.Bool),+ -- | Resource name for a Google Chat user. Format: @users\/{user}@. @users\/app@ can be used as an alias for the calling app bot user. For human users, @{user}@ is the same user identifier as: - the @id@ for the <https://developers.google.com/people/api/rest/v1/people Person> in the People API. For example, @users\/123456789@ in Chat API represents the same person as the @123456789@ Person profile ID in People API. - the @id@ for a <https://developers.google.com/admin-sdk/directory/reference/rest/v1/users user> in the Admin SDK Directory API. - the user\'s email address can be used as an alias for @{user}@ in API requests. For example, if the People API Person profile ID for @user\@example.com@ is @123456789@, you can use @users\/user\@example.com@ as an alias to reference @users\/123456789@. Only the canonical resource name (for example @users\/123456789@) will be returned from the API.+ name :: (Core.Maybe Core.Text),+ -- | User type.+ type' :: (Core.Maybe User_Type)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'User' with the minimum fields required to make a request.+newUser ::+ User+newUser =+ User+ { displayName = Core.Nothing,+ domainId = Core.Nothing,+ isAnonymous = Core.Nothing,+ name = Core.Nothing,+ type' = Core.Nothing+ }++instance Core.FromJSON User where+ parseJSON =+ Core.withObject+ "User"+ ( \o ->+ User+ Core.<$> (o Core..:? "displayName")+ Core.<*> (o Core..:? "domainId")+ Core.<*> (o Core..:? "isAnonymous")+ Core.<*> (o Core..:? "name")+ Core.<*> (o Core..:? "type")+ )++instance Core.ToJSON User where+ toJSON User {..} =+ Core.object+ ( Core.catMaybes+ [ ("displayName" Core..=) Core.<$> displayName,+ ("domainId" Core..=) Core.<$> domainId,+ ("isAnonymous" Core..=) Core.<$> isAnonymous,+ ("name" Core..=) Core.<$> name,+ ("type" Core..=) Core.<$> type'+ ]+ )++-- | Annotation metadata for user mentions (\@).+--+-- /See:/ 'newUserMentionMetadata' smart constructor.+data UserMentionMetadata = UserMentionMetadata+ { -- | The type of user mention.+ type' :: (Core.Maybe UserMentionMetadata_Type),+ -- | The user mentioned.+ user :: (Core.Maybe User)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'UserMentionMetadata' with the minimum fields required to make a request.+newUserMentionMetadata ::+ UserMentionMetadata+newUserMentionMetadata =+ UserMentionMetadata {type' = Core.Nothing, user = Core.Nothing}++instance Core.FromJSON UserMentionMetadata where+ parseJSON =+ Core.withObject+ "UserMentionMetadata"+ ( \o ->+ UserMentionMetadata+ Core.<$> (o Core..:? "type")+ Core.<*> (o Core..:? "user")+ )++instance Core.ToJSON UserMentionMetadata where+ toJSON UserMentionMetadata {..} =+ Core.object+ ( Core.catMaybes+ [("type" Core..=) Core.<$> type', ("user" Core..=) Core.<$> user]+ )++-- | A widget is a UI element that presents text and images.+--+-- /See:/ 'newWidgetMarkup' smart constructor.+data WidgetMarkup = WidgetMarkup+ { -- | A list of buttons. Buttons is also @oneof data@ and only one of these fields should be set.+ buttons :: (Core.Maybe [Button]),+ -- | Display an image in this widget.+ image :: (Core.Maybe Image),+ -- | Display a key value item in this widget.+ keyValue :: (Core.Maybe KeyValue),+ -- | Display a text paragraph in this widget.+ textParagraph :: (Core.Maybe TextParagraph)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'WidgetMarkup' with the minimum fields required to make a request.+newWidgetMarkup ::+ WidgetMarkup+newWidgetMarkup =+ WidgetMarkup+ { buttons = Core.Nothing,+ image = Core.Nothing,+ keyValue = Core.Nothing,+ textParagraph = Core.Nothing+ }++instance Core.FromJSON WidgetMarkup where+ parseJSON =+ Core.withObject+ "WidgetMarkup"+ ( \o ->+ WidgetMarkup+ Core.<$> (o Core..:? "buttons")+ Core.<*> (o Core..:? "image")+ Core.<*> (o Core..:? "keyValue")+ Core.<*> (o Core..:? "textParagraph")+ )++instance Core.ToJSON WidgetMarkup where+ toJSON WidgetMarkup {..} =+ Core.object+ ( Core.catMaybes+ [ ("buttons" Core..=) Core.<$> buttons,+ ("image" Core..=) Core.<$> image,+ ("keyValue" Core..=) Core.<$> keyValue,+ ("textParagraph" Core..=) Core.<$> textParagraph+ ]+ )
+ gen/Gogol/Chat/Internal/Sum.hs view
@@ -0,0 +1,2706 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Internal.Sum+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Gogol.Chat.Internal.Sum+ ( -- * Xgafv+ Xgafv+ ( Xgafv_1,+ Xgafv_2,+ ..+ ),++ -- * AccessSettings_AccessState+ AccessSettings_AccessState+ ( AccessSettings_AccessState_ACCESSSTATEUNSPECIFIED,+ AccessSettings_AccessState_Private,+ AccessSettings_AccessState_Discoverable,+ ..+ ),++ -- * ActionResponse_Type+ ActionResponse_Type+ ( ActionResponse_Type_TYPEUNSPECIFIED,+ ActionResponse_Type_NEWMESSAGE,+ ActionResponse_Type_UPDATEMESSAGE,+ ActionResponse_Type_UPDATEUSERMESSAGECARDS,+ ActionResponse_Type_REQUESTCONFIG,+ ActionResponse_Type_Dialog,+ ActionResponse_Type_UPDATEWIDGET,+ ..+ ),++ -- * ActionStatus_StatusCode+ ActionStatus_StatusCode+ ( ActionStatus_StatusCode_OK,+ ActionStatus_StatusCode_Cancelled,+ ActionStatus_StatusCode_Unknown,+ ActionStatus_StatusCode_INVALIDARGUMENT,+ ActionStatus_StatusCode_DEADLINEEXCEEDED,+ ActionStatus_StatusCode_NOTFOUND,+ ActionStatus_StatusCode_ALREADYEXISTS,+ ActionStatus_StatusCode_PERMISSIONDENIED,+ ActionStatus_StatusCode_Unauthenticated,+ ActionStatus_StatusCode_RESOURCEEXHAUSTED,+ ActionStatus_StatusCode_FAILEDPRECONDITION,+ ActionStatus_StatusCode_Aborted,+ ActionStatus_StatusCode_OUTOFRANGE,+ ActionStatus_StatusCode_Unimplemented,+ ActionStatus_StatusCode_Internal,+ ActionStatus_StatusCode_Unavailable,+ ActionStatus_StatusCode_DATALOSS,+ ..+ ),++ -- * Annotation_Type+ Annotation_Type+ ( Annotation_Type_ANNOTATIONTYPEUNSPECIFIED,+ Annotation_Type_USERMENTION,+ Annotation_Type_SLASHCOMMAND,+ Annotation_Type_RICHLINK,+ Annotation_Type_CUSTOMEMOJI,+ ..+ ),++ -- * AppCommandMetadata_AppCommandType+ AppCommandMetadata_AppCommandType+ ( AppCommandMetadata_AppCommandType_APPCOMMANDTYPEUNSPECIFIED,+ AppCommandMetadata_AppCommandType_SLASHCOMMAND,+ AppCommandMetadata_AppCommandType_QUICKCOMMAND,+ ..+ ),++ -- * Attachment_Source+ Attachment_Source+ ( Attachment_Source_SOURCEUNSPECIFIED,+ Attachment_Source_DRIVEFILE,+ Attachment_Source_UPLOADEDCONTENT,+ ..+ ),++ -- * CardHeader_ImageStyle+ CardHeader_ImageStyle+ ( CardHeader_ImageStyle_IMAGESTYLEUNSPECIFIED,+ CardHeader_ImageStyle_Image,+ CardHeader_ImageStyle_Avatar,+ ..+ ),++ -- * CommonEventObject_HostApp+ CommonEventObject_HostApp+ ( CommonEventObject_HostApp_UNSPECIFIEDHOSTAPP,+ CommonEventObject_HostApp_Gmail,+ CommonEventObject_HostApp_Calendar,+ CommonEventObject_HostApp_Drive,+ CommonEventObject_HostApp_Demo,+ CommonEventObject_HostApp_Docs,+ CommonEventObject_HostApp_Meet,+ CommonEventObject_HostApp_Sheets,+ CommonEventObject_HostApp_Slides,+ CommonEventObject_HostApp_Drawings,+ CommonEventObject_HostApp_Chat,+ ..+ ),++ -- * CommonEventObject_Platform+ CommonEventObject_Platform+ ( CommonEventObject_Platform_UNKNOWNPLATFORM,+ CommonEventObject_Platform_Web,+ CommonEventObject_Platform_Ios,+ CommonEventObject_Platform_Android,+ ..+ ),++ -- * DeletionMetadata_DeletionType+ DeletionMetadata_DeletionType+ ( DeletionMetadata_DeletionType_DELETIONTYPEUNSPECIFIED,+ DeletionMetadata_DeletionType_Creator,+ DeletionMetadata_DeletionType_SPACEOWNER,+ DeletionMetadata_DeletionType_Admin,+ DeletionMetadata_DeletionType_APPMESSAGEEXPIRY,+ DeletionMetadata_DeletionType_CREATORVIAAPP,+ DeletionMetadata_DeletionType_SPACEOWNERVIAAPP,+ DeletionMetadata_DeletionType_SPACEMEMBER,+ ..+ ),++ -- * DeprecatedEvent_DialogEventType+ DeprecatedEvent_DialogEventType+ ( DeprecatedEvent_DialogEventType_TYPEUNSPECIFIED,+ DeprecatedEvent_DialogEventType_REQUESTDIALOG,+ DeprecatedEvent_DialogEventType_SUBMITDIALOG,+ DeprecatedEvent_DialogEventType_CANCELDIALOG,+ ..+ ),++ -- * DeprecatedEvent_Type+ DeprecatedEvent_Type+ ( DeprecatedEvent_Type_Unspecified,+ DeprecatedEvent_Type_Message,+ DeprecatedEvent_Type_ADDEDTOSPACE,+ DeprecatedEvent_Type_REMOVEDFROMSPACE,+ DeprecatedEvent_Type_CARDCLICKED,+ DeprecatedEvent_Type_WIDGETUPDATED,+ DeprecatedEvent_Type_APPCOMMAND,+ ..+ ),++ -- * GoogleAppsCardV1Action_Interaction+ GoogleAppsCardV1Action_Interaction+ ( GoogleAppsCardV1Action_Interaction_INTERACTIONUNSPECIFIED,+ GoogleAppsCardV1Action_Interaction_OPENDIALOG,+ ..+ ),++ -- * GoogleAppsCardV1Action_LoadIndicator+ GoogleAppsCardV1Action_LoadIndicator+ ( GoogleAppsCardV1Action_LoadIndicator_Spinner,+ GoogleAppsCardV1Action_LoadIndicator_None,+ ..+ ),++ -- * GoogleAppsCardV1BorderStyle_Type+ GoogleAppsCardV1BorderStyle_Type+ ( GoogleAppsCardV1BorderStyle_Type_BORDERTYPEUNSPECIFIED,+ GoogleAppsCardV1BorderStyle_Type_NOBORDER,+ GoogleAppsCardV1BorderStyle_Type_Stroke,+ ..+ ),++ -- * GoogleAppsCardV1Button_Type+ GoogleAppsCardV1Button_Type+ ( GoogleAppsCardV1Button_Type_TYPEUNSPECIFIED,+ GoogleAppsCardV1Button_Type_Outlined,+ GoogleAppsCardV1Button_Type_Filled,+ GoogleAppsCardV1Button_Type_FILLEDTONAL,+ GoogleAppsCardV1Button_Type_Borderless,+ ..+ ),++ -- * GoogleAppsCardV1Card_DisplayStyle+ GoogleAppsCardV1Card_DisplayStyle+ ( GoogleAppsCardV1Card_DisplayStyle_DISPLAYSTYLEUNSPECIFIED,+ GoogleAppsCardV1Card_DisplayStyle_Peek,+ GoogleAppsCardV1Card_DisplayStyle_Replace,+ ..+ ),++ -- * GoogleAppsCardV1Card_SectionDividerStyle+ GoogleAppsCardV1Card_SectionDividerStyle+ ( GoogleAppsCardV1Card_SectionDividerStyle_DIVIDERSTYLEUNSPECIFIED,+ GoogleAppsCardV1Card_SectionDividerStyle_SOLIDDIVIDER,+ GoogleAppsCardV1Card_SectionDividerStyle_NODIVIDER,+ ..+ ),++ -- * GoogleAppsCardV1CardHeader_ImageType+ GoogleAppsCardV1CardHeader_ImageType+ ( GoogleAppsCardV1CardHeader_ImageType_Square,+ GoogleAppsCardV1CardHeader_ImageType_Circle,+ ..+ ),++ -- * GoogleAppsCardV1ChipList_Layout+ GoogleAppsCardV1ChipList_Layout+ ( GoogleAppsCardV1ChipList_Layout_LAYOUTUNSPECIFIED,+ GoogleAppsCardV1ChipList_Layout_Wrapped,+ GoogleAppsCardV1ChipList_Layout_HORIZONTALSCROLLABLE,+ ..+ ),++ -- * GoogleAppsCardV1CollapseControl_HorizontalAlignment+ GoogleAppsCardV1CollapseControl_HorizontalAlignment+ ( GoogleAppsCardV1CollapseControl_HorizontalAlignment_HORIZONTALALIGNMENTUNSPECIFIED,+ GoogleAppsCardV1CollapseControl_HorizontalAlignment_Start,+ GoogleAppsCardV1CollapseControl_HorizontalAlignment_Center,+ GoogleAppsCardV1CollapseControl_HorizontalAlignment_End,+ ..+ ),++ -- * GoogleAppsCardV1Column_HorizontalAlignment+ GoogleAppsCardV1Column_HorizontalAlignment+ ( GoogleAppsCardV1Column_HorizontalAlignment_HORIZONTALALIGNMENTUNSPECIFIED,+ GoogleAppsCardV1Column_HorizontalAlignment_Start,+ GoogleAppsCardV1Column_HorizontalAlignment_Center,+ GoogleAppsCardV1Column_HorizontalAlignment_End,+ ..+ ),++ -- * GoogleAppsCardV1Column_HorizontalSizeStyle+ GoogleAppsCardV1Column_HorizontalSizeStyle+ ( GoogleAppsCardV1Column_HorizontalSizeStyle_HORIZONTALSIZESTYLEUNSPECIFIED,+ GoogleAppsCardV1Column_HorizontalSizeStyle_FILLAVAILABLESPACE,+ GoogleAppsCardV1Column_HorizontalSizeStyle_FILLMINIMUMSPACE,+ ..+ ),++ -- * GoogleAppsCardV1Column_VerticalAlignment+ GoogleAppsCardV1Column_VerticalAlignment+ ( GoogleAppsCardV1Column_VerticalAlignment_VERTICALALIGNMENTUNSPECIFIED,+ GoogleAppsCardV1Column_VerticalAlignment_Center,+ GoogleAppsCardV1Column_VerticalAlignment_Top,+ GoogleAppsCardV1Column_VerticalAlignment_Bottom,+ ..+ ),++ -- * GoogleAppsCardV1DateTimePicker_Type+ GoogleAppsCardV1DateTimePicker_Type+ ( GoogleAppsCardV1DateTimePicker_Type_DATEANDTIME,+ GoogleAppsCardV1DateTimePicker_Type_DATEONLY,+ GoogleAppsCardV1DateTimePicker_Type_TIMEONLY,+ ..+ ),++ -- * GoogleAppsCardV1GridItem_Layout+ GoogleAppsCardV1GridItem_Layout+ ( GoogleAppsCardV1GridItem_Layout_GRIDITEMLAYOUTUNSPECIFIED,+ GoogleAppsCardV1GridItem_Layout_TEXTBELOW,+ GoogleAppsCardV1GridItem_Layout_TEXTABOVE,+ ..+ ),++ -- * GoogleAppsCardV1Icon_ImageType+ GoogleAppsCardV1Icon_ImageType+ ( GoogleAppsCardV1Icon_ImageType_Square,+ GoogleAppsCardV1Icon_ImageType_Circle,+ ..+ ),++ -- * GoogleAppsCardV1ImageCropStyle_Type+ GoogleAppsCardV1ImageCropStyle_Type+ ( GoogleAppsCardV1ImageCropStyle_Type_IMAGECROPTYPEUNSPECIFIED,+ GoogleAppsCardV1ImageCropStyle_Type_Square,+ GoogleAppsCardV1ImageCropStyle_Type_Circle,+ GoogleAppsCardV1ImageCropStyle_Type_RECTANGLECUSTOM,+ GoogleAppsCardV1ImageCropStyle_Type_RECTANGLE_4_3,+ ..+ ),++ -- * GoogleAppsCardV1OpenLink_OnClose+ GoogleAppsCardV1OpenLink_OnClose+ ( GoogleAppsCardV1OpenLink_OnClose_Nothing',+ GoogleAppsCardV1OpenLink_OnClose_Reload,+ ..+ ),++ -- * GoogleAppsCardV1OpenLink_OpenAs+ GoogleAppsCardV1OpenLink_OpenAs+ ( GoogleAppsCardV1OpenLink_OpenAs_FULLSIZE,+ GoogleAppsCardV1OpenLink_OpenAs_Overlay,+ ..+ ),++ -- * GoogleAppsCardV1PlatformDataSource_CommonDataSource+ GoogleAppsCardV1PlatformDataSource_CommonDataSource+ ( GoogleAppsCardV1PlatformDataSource_CommonDataSource_Unknown,+ GoogleAppsCardV1PlatformDataSource_CommonDataSource_User,+ ..+ ),++ -- * GoogleAppsCardV1SelectionInput_Type+ GoogleAppsCardV1SelectionInput_Type+ ( GoogleAppsCardV1SelectionInput_Type_CHECKBOX,+ GoogleAppsCardV1SelectionInput_Type_RADIOBUTTON,+ GoogleAppsCardV1SelectionInput_Type_Switch,+ GoogleAppsCardV1SelectionInput_Type_Dropdown,+ GoogleAppsCardV1SelectionInput_Type_MULTISELECT,+ ..+ ),++ -- * GoogleAppsCardV1SwitchControl_ControlType+ GoogleAppsCardV1SwitchControl_ControlType+ ( GoogleAppsCardV1SwitchControl_ControlType_Switch,+ GoogleAppsCardV1SwitchControl_ControlType_Checkbox,+ GoogleAppsCardV1SwitchControl_ControlType_CHECKBOX,+ ..+ ),++ -- * GoogleAppsCardV1TextInput_Type+ GoogleAppsCardV1TextInput_Type+ ( GoogleAppsCardV1TextInput_Type_SINGLELINE,+ GoogleAppsCardV1TextInput_Type_MULTIPLELINE,+ ..+ ),++ -- * GoogleAppsCardV1Validation_InputType+ GoogleAppsCardV1Validation_InputType+ ( GoogleAppsCardV1Validation_InputType_INPUTTYPEUNSPECIFIED,+ GoogleAppsCardV1Validation_InputType_Text,+ GoogleAppsCardV1Validation_InputType_Integer,+ GoogleAppsCardV1Validation_InputType_Float,+ GoogleAppsCardV1Validation_InputType_Email,+ GoogleAppsCardV1Validation_InputType_EMOJIPICKER,+ ..+ ),++ -- * GoogleAppsCardV1Widget_HorizontalAlignment+ GoogleAppsCardV1Widget_HorizontalAlignment+ ( GoogleAppsCardV1Widget_HorizontalAlignment_HORIZONTALALIGNMENTUNSPECIFIED,+ GoogleAppsCardV1Widget_HorizontalAlignment_Start,+ GoogleAppsCardV1Widget_HorizontalAlignment_Center,+ GoogleAppsCardV1Widget_HorizontalAlignment_End,+ ..+ ),++ -- * ImageButton_Icon+ ImageButton_Icon+ ( ImageButton_Icon_ICONUNSPECIFIED,+ ImageButton_Icon_Airplane,+ ImageButton_Icon_Bookmark,+ ImageButton_Icon_Bus,+ ImageButton_Icon_Car,+ ImageButton_Icon_Clock,+ ImageButton_Icon_CONFIRMATIONNUMBERICON,+ ImageButton_Icon_Dollar,+ ImageButton_Icon_Description,+ ImageButton_Icon_Email,+ ImageButton_Icon_EVENTPERFORMER,+ ImageButton_Icon_EVENTSEAT,+ ImageButton_Icon_FLIGHTARRIVAL,+ ImageButton_Icon_FLIGHTDEPARTURE,+ ImageButton_Icon_Hotel,+ ImageButton_Icon_HOTELROOMTYPE,+ ImageButton_Icon_Invite,+ ImageButton_Icon_MAPPIN,+ ImageButton_Icon_Membership,+ ImageButton_Icon_MULTIPLEPEOPLE,+ ImageButton_Icon_Offer,+ ImageButton_Icon_Person,+ ImageButton_Icon_Phone,+ ImageButton_Icon_RESTAURANTICON,+ ImageButton_Icon_SHOPPINGCART,+ ImageButton_Icon_Star,+ ImageButton_Icon_Store,+ ImageButton_Icon_Ticket,+ ImageButton_Icon_Train,+ ImageButton_Icon_VIDEOCAMERA,+ ImageButton_Icon_VIDEOPLAY,+ ..+ ),++ -- * KeyValue_Icon+ KeyValue_Icon+ ( KeyValue_Icon_ICONUNSPECIFIED,+ KeyValue_Icon_Airplane,+ KeyValue_Icon_Bookmark,+ KeyValue_Icon_Bus,+ KeyValue_Icon_Car,+ KeyValue_Icon_Clock,+ KeyValue_Icon_CONFIRMATIONNUMBERICON,+ KeyValue_Icon_Dollar,+ KeyValue_Icon_Description,+ KeyValue_Icon_Email,+ KeyValue_Icon_EVENTPERFORMER,+ KeyValue_Icon_EVENTSEAT,+ KeyValue_Icon_FLIGHTARRIVAL,+ KeyValue_Icon_FLIGHTDEPARTURE,+ KeyValue_Icon_Hotel,+ KeyValue_Icon_HOTELROOMTYPE,+ KeyValue_Icon_Invite,+ KeyValue_Icon_MAPPIN,+ KeyValue_Icon_Membership,+ KeyValue_Icon_MULTIPLEPEOPLE,+ KeyValue_Icon_Offer,+ KeyValue_Icon_Person,+ KeyValue_Icon_Phone,+ KeyValue_Icon_RESTAURANTICON,+ KeyValue_Icon_SHOPPINGCART,+ KeyValue_Icon_Star,+ KeyValue_Icon_Store,+ KeyValue_Icon_Ticket,+ KeyValue_Icon_Train,+ KeyValue_Icon_VIDEOCAMERA,+ KeyValue_Icon_VIDEOPLAY,+ ..+ ),++ -- * Membership_Role+ Membership_Role+ ( Membership_Role_MEMBERSHIPROLEUNSPECIFIED,+ Membership_Role_ROLEMEMBER,+ Membership_Role_ROLEMANAGER,+ ..+ ),++ -- * Membership_State+ Membership_State+ ( Membership_State_MEMBERSHIPSTATEUNSPECIFIED,+ Membership_State_Joined,+ Membership_State_Invited,+ Membership_State_NOTAMEMBER,+ ..+ ),++ -- * RichLinkMetadata_RichLinkType+ RichLinkMetadata_RichLinkType+ ( RichLinkMetadata_RichLinkType_RICHLINKTYPEUNSPECIFIED,+ RichLinkMetadata_RichLinkType_DRIVEFILE,+ RichLinkMetadata_RichLinkType_CHATSPACE,+ ..+ ),++ -- * SlashCommandMetadata_Type+ SlashCommandMetadata_Type+ ( SlashCommandMetadata_Type_TYPEUNSPECIFIED,+ SlashCommandMetadata_Type_Add,+ SlashCommandMetadata_Type_Invoke,+ ..+ ),++ -- * Space_PredefinedPermissionSettings+ Space_PredefinedPermissionSettings+ ( Space_PredefinedPermissionSettings_PREDEFINEDPERMISSIONSETTINGSUNSPECIFIED,+ Space_PredefinedPermissionSettings_COLLABORATIONSPACE,+ Space_PredefinedPermissionSettings_ANNOUNCEMENTSPACE,+ ..+ ),++ -- * Space_SpaceHistoryState+ Space_SpaceHistoryState+ ( Space_SpaceHistoryState_HISTORYSTATEUNSPECIFIED,+ Space_SpaceHistoryState_HISTORYOFF,+ Space_SpaceHistoryState_HISTORYON,+ ..+ ),++ -- * Space_SpaceThreadingState+ Space_SpaceThreadingState+ ( Space_SpaceThreadingState_SPACETHREADINGSTATEUNSPECIFIED,+ Space_SpaceThreadingState_THREADEDMESSAGES,+ Space_SpaceThreadingState_GROUPEDMESSAGES,+ Space_SpaceThreadingState_UNTHREADEDMESSAGES,+ ..+ ),++ -- * Space_SpaceType+ Space_SpaceType+ ( Space_SpaceType_SPACETYPEUNSPECIFIED,+ Space_SpaceType_Space,+ Space_SpaceType_GROUPCHAT,+ Space_SpaceType_DIRECTMESSAGE,+ ..+ ),++ -- * Space_Type+ Space_Type+ ( Space_Type_TYPEUNSPECIFIED,+ Space_Type_Room,+ Space_Type_DM,+ ..+ ),++ -- * SpaceNotificationSetting_MuteSetting+ SpaceNotificationSetting_MuteSetting+ ( SpaceNotificationSetting_MuteSetting_MUTESETTINGUNSPECIFIED,+ SpaceNotificationSetting_MuteSetting_Unmuted,+ SpaceNotificationSetting_MuteSetting_Muted,+ ..+ ),++ -- * SpaceNotificationSetting_NotificationSetting+ SpaceNotificationSetting_NotificationSetting+ ( SpaceNotificationSetting_NotificationSetting_NOTIFICATIONSETTINGUNSPECIFIED,+ SpaceNotificationSetting_NotificationSetting_All,+ SpaceNotificationSetting_NotificationSetting_MAINCONVERSATIONS,+ SpaceNotificationSetting_NotificationSetting_FORYOU,+ SpaceNotificationSetting_NotificationSetting_Off,+ ..+ ),++ -- * User_Type+ User_Type+ ( User_Type_TYPEUNSPECIFIED,+ User_Type_Human,+ User_Type_Bot,+ ..+ ),++ -- * UserMentionMetadata_Type+ UserMentionMetadata_Type+ ( UserMentionMetadata_Type_TYPEUNSPECIFIED,+ UserMentionMetadata_Type_Add,+ UserMentionMetadata_Type_Mention,+ ..+ ),++ -- * SpacesMessagesCreateMessageReplyOption+ SpacesMessagesCreateMessageReplyOption+ ( SpacesMessagesCreateMessageReplyOption_MESSAGEREPLYOPTIONUNSPECIFIED,+ SpacesMessagesCreateMessageReplyOption_REPLYMESSAGEFALLBACKTONEWTHREAD,+ SpacesMessagesCreateMessageReplyOption_REPLYMESSAGEORFAIL,+ ..+ ),+ )+where++import Gogol.Prelude qualified as Core++-- | V1 error format.+newtype Xgafv = Xgafv {fromXgafv :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | v1 error format+pattern Xgafv_1 :: Xgafv+pattern Xgafv_1 = Xgafv "1"++-- | v2 error format+pattern Xgafv_2 :: Xgafv+pattern Xgafv_2 = Xgafv "2"++{-# COMPLETE+ Xgafv_1,+ Xgafv_2,+ Xgafv+ #-}++-- | Output only. Indicates the access state of the space.+newtype AccessSettings_AccessState = AccessSettings_AccessState {fromAccessSettings_AccessState :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Access state is unknown or not supported in this API.+pattern AccessSettings_AccessState_ACCESSSTATEUNSPECIFIED :: AccessSettings_AccessState+pattern AccessSettings_AccessState_ACCESSSTATEUNSPECIFIED = AccessSettings_AccessState "ACCESS_STATE_UNSPECIFIED"++-- | Only users or Google Groups that have been individually added or invited by other users or Google Workspace administrators can discover and access the space.+pattern AccessSettings_AccessState_Private :: AccessSettings_AccessState+pattern AccessSettings_AccessState_Private = AccessSettings_AccessState "PRIVATE"++-- | A space manager has granted a target audience access to the space. Users or Google Groups that have been individually added or invited to the space can also discover and access the space. To learn more, see <https://developers.google.com/workspace/chat/space-target-audience Make a space discoverable to specific users>. Creating discoverable spaces requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+pattern AccessSettings_AccessState_Discoverable :: AccessSettings_AccessState+pattern AccessSettings_AccessState_Discoverable = AccessSettings_AccessState "DISCOVERABLE"++{-# COMPLETE+ AccessSettings_AccessState_ACCESSSTATEUNSPECIFIED,+ AccessSettings_AccessState_Private,+ AccessSettings_AccessState_Discoverable,+ AccessSettings_AccessState+ #-}++-- | Input only. The type of Chat app response.+newtype ActionResponse_Type = ActionResponse_Type {fromActionResponse_Type :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Default type that\'s handled as @NEW_MESSAGE@.+pattern ActionResponse_Type_TYPEUNSPECIFIED :: ActionResponse_Type+pattern ActionResponse_Type_TYPEUNSPECIFIED = ActionResponse_Type "TYPE_UNSPECIFIED"++-- | Post as a new message in the topic.+pattern ActionResponse_Type_NEWMESSAGE :: ActionResponse_Type+pattern ActionResponse_Type_NEWMESSAGE = ActionResponse_Type "NEW_MESSAGE"++-- | Update the Chat app\'s message. This is only permitted on a @CARD_CLICKED@ event where the message sender type is @BOT@.+pattern ActionResponse_Type_UPDATEMESSAGE :: ActionResponse_Type+pattern ActionResponse_Type_UPDATEMESSAGE = ActionResponse_Type "UPDATE_MESSAGE"++-- | Update the cards on a user\'s message. This is only permitted as a response to a @MESSAGE@ event with a matched url, or a @CARD_CLICKED@ event where the message sender type is @HUMAN@. Text is ignored.+pattern ActionResponse_Type_UPDATEUSERMESSAGECARDS :: ActionResponse_Type+pattern ActionResponse_Type_UPDATEUSERMESSAGECARDS = ActionResponse_Type "UPDATE_USER_MESSAGE_CARDS"++-- | Privately ask the user for additional authentication or configuration.+pattern ActionResponse_Type_REQUESTCONFIG :: ActionResponse_Type+pattern ActionResponse_Type_REQUESTCONFIG = ActionResponse_Type "REQUEST_CONFIG"++-- | Presents a <https://developers.google.com/workspace/chat/dialogs dialog>.+pattern ActionResponse_Type_Dialog :: ActionResponse_Type+pattern ActionResponse_Type_Dialog = ActionResponse_Type "DIALOG"++-- | Widget text autocomplete options query.+pattern ActionResponse_Type_UPDATEWIDGET :: ActionResponse_Type+pattern ActionResponse_Type_UPDATEWIDGET = ActionResponse_Type "UPDATE_WIDGET"++{-# COMPLETE+ ActionResponse_Type_TYPEUNSPECIFIED,+ ActionResponse_Type_NEWMESSAGE,+ ActionResponse_Type_UPDATEMESSAGE,+ ActionResponse_Type_UPDATEUSERMESSAGECARDS,+ ActionResponse_Type_REQUESTCONFIG,+ ActionResponse_Type_Dialog,+ ActionResponse_Type_UPDATEWIDGET,+ ActionResponse_Type+ #-}++-- | The status code.+newtype ActionStatus_StatusCode = ActionStatus_StatusCode {fromActionStatus_StatusCode :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Not an error; returned on success. HTTP Mapping: 200 OK+pattern ActionStatus_StatusCode_OK :: ActionStatus_StatusCode+pattern ActionStatus_StatusCode_OK = ActionStatus_StatusCode "OK"++-- | The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request+pattern ActionStatus_StatusCode_Cancelled :: ActionStatus_StatusCode+pattern ActionStatus_StatusCode_Cancelled = ActionStatus_StatusCode "CANCELLED"++-- | Unknown error. For example, this error may be returned when a @Status@ value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. HTTP Mapping: 500 Internal Server Error+pattern ActionStatus_StatusCode_Unknown :: ActionStatus_StatusCode+pattern ActionStatus_StatusCode_Unknown = ActionStatus_StatusCode "UNKNOWN"++-- | The client specified an invalid argument. Note that this differs from @FAILED_PRECONDITION@. @INVALID_ARGUMENT@ indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). HTTP Mapping: 400 Bad Request+pattern ActionStatus_StatusCode_INVALIDARGUMENT :: ActionStatus_StatusCode+pattern ActionStatus_StatusCode_INVALIDARGUMENT = ActionStatus_StatusCode "INVALID_ARGUMENT"++-- | The deadline expired before the operation could complete. For operations that change the state of the system, this error may be returned even if the operation has completed successfully. For example, a successful response from a server could have been delayed long enough for the deadline to expire. HTTP Mapping: 504 Gateway Timeout+pattern ActionStatus_StatusCode_DEADLINEEXCEEDED :: ActionStatus_StatusCode+pattern ActionStatus_StatusCode_DEADLINEEXCEEDED = ActionStatus_StatusCode "DEADLINE_EXCEEDED"++-- | Some requested entity (e.g., file or directory) was not found. Note to server developers: if a request is denied for an entire class of users, such as gradual feature rollout or undocumented allowlist, @NOT_FOUND@ may be used. If a request is denied for some users within a class of users, such as user-based access control, @PERMISSION_DENIED@ must be used. HTTP Mapping: 404 Not Found+pattern ActionStatus_StatusCode_NOTFOUND :: ActionStatus_StatusCode+pattern ActionStatus_StatusCode_NOTFOUND = ActionStatus_StatusCode "NOT_FOUND"++-- | The entity that a client attempted to create (e.g., file or directory) already exists. HTTP Mapping: 409 Conflict+pattern ActionStatus_StatusCode_ALREADYEXISTS :: ActionStatus_StatusCode+pattern ActionStatus_StatusCode_ALREADYEXISTS = ActionStatus_StatusCode "ALREADY_EXISTS"++-- | The caller does not have permission to execute the specified operation. @PERMISSION_DENIED@ must not be used for rejections caused by exhausting some resource (use @RESOURCE_EXHAUSTED@ instead for those errors). @PERMISSION_DENIED@ must not be used if the caller can not be identified (use @UNAUTHENTICATED@ instead for those errors). This error code does not imply the request is valid or the requested entity exists or satisfies other pre-conditions. HTTP Mapping: 403 Forbidden+pattern ActionStatus_StatusCode_PERMISSIONDENIED :: ActionStatus_StatusCode+pattern ActionStatus_StatusCode_PERMISSIONDENIED = ActionStatus_StatusCode "PERMISSION_DENIED"++-- | The request does not have valid authentication credentials for the operation. HTTP Mapping: 401 Unauthorized+pattern ActionStatus_StatusCode_Unauthenticated :: ActionStatus_StatusCode+pattern ActionStatus_StatusCode_Unauthenticated = ActionStatus_StatusCode "UNAUTHENTICATED"++-- | Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space. HTTP Mapping: 429 Too Many Requests+pattern ActionStatus_StatusCode_RESOURCEEXHAUSTED :: ActionStatus_StatusCode+pattern ActionStatus_StatusCode_RESOURCEEXHAUSTED = ActionStatus_StatusCode "RESOURCE_EXHAUSTED"++-- | The operation was rejected because the system is not in a state required for the operation\'s execution. For example, the directory to be deleted is non-empty, an rmdir operation is applied to a non-directory, etc. Service implementors can use the following guidelines to decide between @FAILED_PRECONDITION@, @ABORTED@, and @UNAVAILABLE@: (a) Use @UNAVAILABLE@ if the client can retry just the failing call. (b) Use @ABORTED@ if the client should retry at a higher level. For example, when a client-specified test-and-set fails, indicating the client should restart a read-modify-write sequence. (c) Use @FAILED_PRECONDITION@ if the client should not retry until the system state has been explicitly fixed. For example, if an \"rmdir\" fails because the directory is non-empty, @FAILED_PRECONDITION@ should be returned since the client should not retry unless the files are deleted from the directory. HTTP Mapping: 400 Bad Request+pattern ActionStatus_StatusCode_FAILEDPRECONDITION :: ActionStatus_StatusCode+pattern ActionStatus_StatusCode_FAILEDPRECONDITION = ActionStatus_StatusCode "FAILED_PRECONDITION"++-- | The operation was aborted, typically due to a concurrency issue such as a sequencer check failure or transaction abort. See the guidelines above for deciding between @FAILED_PRECONDITION@, @ABORTED@, and @UNAVAILABLE@. HTTP Mapping: 409 Conflict+pattern ActionStatus_StatusCode_Aborted :: ActionStatus_StatusCode+pattern ActionStatus_StatusCode_Aborted = ActionStatus_StatusCode "ABORTED"++-- | The operation was attempted past the valid range. E.g., seeking or reading past end-of-file. Unlike @INVALID_ARGUMENT@, this error indicates a problem that may be fixed if the system state changes. For example, a 32-bit file system will generate @INVALID_ARGUMENT@ if asked to read at an offset that is not in the range [0,2^32-1], but it will generate @OUT_OF_RANGE@ if asked to read from an offset past the current file size. There is a fair bit of overlap between @FAILED_PRECONDITION@ and @OUT_OF_RANGE@. We recommend using @OUT_OF_RANGE@ (the more specific error) when it applies so that callers who are iterating through a space can easily look for an @OUT_OF_RANGE@ error to detect when they are done. HTTP Mapping: 400 Bad Request+pattern ActionStatus_StatusCode_OUTOFRANGE :: ActionStatus_StatusCode+pattern ActionStatus_StatusCode_OUTOFRANGE = ActionStatus_StatusCode "OUT_OF_RANGE"++-- | The operation is not implemented or is not supported\/enabled in this service. HTTP Mapping: 501 Not Implemented+pattern ActionStatus_StatusCode_Unimplemented :: ActionStatus_StatusCode+pattern ActionStatus_StatusCode_Unimplemented = ActionStatus_StatusCode "UNIMPLEMENTED"++-- | Internal errors. This means that some invariants expected by the underlying system have been broken. This error code is reserved for serious errors. HTTP Mapping: 500 Internal Server Error+pattern ActionStatus_StatusCode_Internal :: ActionStatus_StatusCode+pattern ActionStatus_StatusCode_Internal = ActionStatus_StatusCode "INTERNAL"++-- | The service is currently unavailable. This is most likely a transient condition, which can be corrected by retrying with a backoff. Note that it is not always safe to retry non-idempotent operations. See the guidelines above for deciding between @FAILED_PRECONDITION@, @ABORTED@, and @UNAVAILABLE@. HTTP Mapping: 503 Service Unavailable+pattern ActionStatus_StatusCode_Unavailable :: ActionStatus_StatusCode+pattern ActionStatus_StatusCode_Unavailable = ActionStatus_StatusCode "UNAVAILABLE"++-- | Unrecoverable data loss or corruption. HTTP Mapping: 500 Internal Server Error+pattern ActionStatus_StatusCode_DATALOSS :: ActionStatus_StatusCode+pattern ActionStatus_StatusCode_DATALOSS = ActionStatus_StatusCode "DATA_LOSS"++{-# COMPLETE+ ActionStatus_StatusCode_OK,+ ActionStatus_StatusCode_Cancelled,+ ActionStatus_StatusCode_Unknown,+ ActionStatus_StatusCode_INVALIDARGUMENT,+ ActionStatus_StatusCode_DEADLINEEXCEEDED,+ ActionStatus_StatusCode_NOTFOUND,+ ActionStatus_StatusCode_ALREADYEXISTS,+ ActionStatus_StatusCode_PERMISSIONDENIED,+ ActionStatus_StatusCode_Unauthenticated,+ ActionStatus_StatusCode_RESOURCEEXHAUSTED,+ ActionStatus_StatusCode_FAILEDPRECONDITION,+ ActionStatus_StatusCode_Aborted,+ ActionStatus_StatusCode_OUTOFRANGE,+ ActionStatus_StatusCode_Unimplemented,+ ActionStatus_StatusCode_Internal,+ ActionStatus_StatusCode_Unavailable,+ ActionStatus_StatusCode_DATALOSS,+ ActionStatus_StatusCode+ #-}++-- | The type of this annotation.+newtype Annotation_Type = Annotation_Type {fromAnnotation_Type :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Default value for the enum. Don\'t use.+pattern Annotation_Type_ANNOTATIONTYPEUNSPECIFIED :: Annotation_Type+pattern Annotation_Type_ANNOTATIONTYPEUNSPECIFIED = Annotation_Type "ANNOTATION_TYPE_UNSPECIFIED"++-- | A user is mentioned.+pattern Annotation_Type_USERMENTION :: Annotation_Type+pattern Annotation_Type_USERMENTION = Annotation_Type "USER_MENTION"++-- | A slash command is invoked.+pattern Annotation_Type_SLASHCOMMAND :: Annotation_Type+pattern Annotation_Type_SLASHCOMMAND = Annotation_Type "SLASH_COMMAND"++-- | A rich link annotation.+pattern Annotation_Type_RICHLINK :: Annotation_Type+pattern Annotation_Type_RICHLINK = Annotation_Type "RICH_LINK"++-- | A custom emoji annotation.+pattern Annotation_Type_CUSTOMEMOJI :: Annotation_Type+pattern Annotation_Type_CUSTOMEMOJI = Annotation_Type "CUSTOM_EMOJI"++{-# COMPLETE+ Annotation_Type_ANNOTATIONTYPEUNSPECIFIED,+ Annotation_Type_USERMENTION,+ Annotation_Type_SLASHCOMMAND,+ Annotation_Type_RICHLINK,+ Annotation_Type_CUSTOMEMOJI,+ Annotation_Type+ #-}++-- | The type of Chat app command.+newtype AppCommandMetadata_AppCommandType = AppCommandMetadata_AppCommandType {fromAppCommandMetadata_AppCommandType :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Default value. Unspecified.+pattern AppCommandMetadata_AppCommandType_APPCOMMANDTYPEUNSPECIFIED :: AppCommandMetadata_AppCommandType+pattern AppCommandMetadata_AppCommandType_APPCOMMANDTYPEUNSPECIFIED = AppCommandMetadata_AppCommandType "APP_COMMAND_TYPE_UNSPECIFIED"++-- | A slash command. The user sends the command in a Chat message.+pattern AppCommandMetadata_AppCommandType_SLASHCOMMAND :: AppCommandMetadata_AppCommandType+pattern AppCommandMetadata_AppCommandType_SLASHCOMMAND = AppCommandMetadata_AppCommandType "SLASH_COMMAND"++-- | A quick command. The user selects the command from the Chat menu in the message reply area.+pattern AppCommandMetadata_AppCommandType_QUICKCOMMAND :: AppCommandMetadata_AppCommandType+pattern AppCommandMetadata_AppCommandType_QUICKCOMMAND = AppCommandMetadata_AppCommandType "QUICK_COMMAND"++{-# COMPLETE+ AppCommandMetadata_AppCommandType_APPCOMMANDTYPEUNSPECIFIED,+ AppCommandMetadata_AppCommandType_SLASHCOMMAND,+ AppCommandMetadata_AppCommandType_QUICKCOMMAND,+ AppCommandMetadata_AppCommandType+ #-}++-- | Output only. The source of the attachment.+newtype Attachment_Source = Attachment_Source {fromAttachment_Source :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Reserved.+pattern Attachment_Source_SOURCEUNSPECIFIED :: Attachment_Source+pattern Attachment_Source_SOURCEUNSPECIFIED = Attachment_Source "SOURCE_UNSPECIFIED"++-- | The file is a Google Drive file.+pattern Attachment_Source_DRIVEFILE :: Attachment_Source+pattern Attachment_Source_DRIVEFILE = Attachment_Source "DRIVE_FILE"++-- | The file is uploaded to Chat.+pattern Attachment_Source_UPLOADEDCONTENT :: Attachment_Source+pattern Attachment_Source_UPLOADEDCONTENT = Attachment_Source "UPLOADED_CONTENT"++{-# COMPLETE+ Attachment_Source_SOURCEUNSPECIFIED,+ Attachment_Source_DRIVEFILE,+ Attachment_Source_UPLOADEDCONTENT,+ Attachment_Source+ #-}++-- | The image\'s type (for example, square border or circular border).+newtype CardHeader_ImageStyle = CardHeader_ImageStyle {fromCardHeader_ImageStyle :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++pattern CardHeader_ImageStyle_IMAGESTYLEUNSPECIFIED :: CardHeader_ImageStyle+pattern CardHeader_ImageStyle_IMAGESTYLEUNSPECIFIED = CardHeader_ImageStyle "IMAGE_STYLE_UNSPECIFIED"++-- | Square border.+pattern CardHeader_ImageStyle_Image :: CardHeader_ImageStyle+pattern CardHeader_ImageStyle_Image = CardHeader_ImageStyle "IMAGE"++-- | Circular border.+pattern CardHeader_ImageStyle_Avatar :: CardHeader_ImageStyle+pattern CardHeader_ImageStyle_Avatar = CardHeader_ImageStyle "AVATAR"++{-# COMPLETE+ CardHeader_ImageStyle_IMAGESTYLEUNSPECIFIED,+ CardHeader_ImageStyle_Image,+ CardHeader_ImageStyle_Avatar,+ CardHeader_ImageStyle+ #-}++-- | The hostApp enum which indicates the app the add-on is invoked from. Always @CHAT@ for Chat apps.+newtype CommonEventObject_HostApp = CommonEventObject_HostApp {fromCommonEventObject_HostApp :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Google can\'t identify a host app.+pattern CommonEventObject_HostApp_UNSPECIFIEDHOSTAPP :: CommonEventObject_HostApp+pattern CommonEventObject_HostApp_UNSPECIFIEDHOSTAPP = CommonEventObject_HostApp "UNSPECIFIED_HOST_APP"++-- | The add-on launches from Gmail.+pattern CommonEventObject_HostApp_Gmail :: CommonEventObject_HostApp+pattern CommonEventObject_HostApp_Gmail = CommonEventObject_HostApp "GMAIL"++-- | The add-on launches from Google Calendar.+pattern CommonEventObject_HostApp_Calendar :: CommonEventObject_HostApp+pattern CommonEventObject_HostApp_Calendar = CommonEventObject_HostApp "CALENDAR"++-- | The add-on launches from Google Drive.+pattern CommonEventObject_HostApp_Drive :: CommonEventObject_HostApp+pattern CommonEventObject_HostApp_Drive = CommonEventObject_HostApp "DRIVE"++-- | Not used.+pattern CommonEventObject_HostApp_Demo :: CommonEventObject_HostApp+pattern CommonEventObject_HostApp_Demo = CommonEventObject_HostApp "DEMO"++-- | The add-on launches from Google Docs.+pattern CommonEventObject_HostApp_Docs :: CommonEventObject_HostApp+pattern CommonEventObject_HostApp_Docs = CommonEventObject_HostApp "DOCS"++-- | The add-on launches from Google Meet.+pattern CommonEventObject_HostApp_Meet :: CommonEventObject_HostApp+pattern CommonEventObject_HostApp_Meet = CommonEventObject_HostApp "MEET"++-- | The add-on launches from Google Sheets.+pattern CommonEventObject_HostApp_Sheets :: CommonEventObject_HostApp+pattern CommonEventObject_HostApp_Sheets = CommonEventObject_HostApp "SHEETS"++-- | The add-on launches from Google Slides.+pattern CommonEventObject_HostApp_Slides :: CommonEventObject_HostApp+pattern CommonEventObject_HostApp_Slides = CommonEventObject_HostApp "SLIDES"++-- | The add-on launches from Google Drawings.+pattern CommonEventObject_HostApp_Drawings :: CommonEventObject_HostApp+pattern CommonEventObject_HostApp_Drawings = CommonEventObject_HostApp "DRAWINGS"++-- | A Google Chat app. Not used for Google Workspace add-ons.+pattern CommonEventObject_HostApp_Chat :: CommonEventObject_HostApp+pattern CommonEventObject_HostApp_Chat = CommonEventObject_HostApp "CHAT"++{-# COMPLETE+ CommonEventObject_HostApp_UNSPECIFIEDHOSTAPP,+ CommonEventObject_HostApp_Gmail,+ CommonEventObject_HostApp_Calendar,+ CommonEventObject_HostApp_Drive,+ CommonEventObject_HostApp_Demo,+ CommonEventObject_HostApp_Docs,+ CommonEventObject_HostApp_Meet,+ CommonEventObject_HostApp_Sheets,+ CommonEventObject_HostApp_Slides,+ CommonEventObject_HostApp_Drawings,+ CommonEventObject_HostApp_Chat,+ CommonEventObject_HostApp+ #-}++-- | The platform enum which indicates the platform where the event originates (@WEB@, @IOS@, or @ANDROID@). Not supported by Chat apps.+newtype CommonEventObject_Platform = CommonEventObject_Platform {fromCommonEventObject_Platform :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++pattern CommonEventObject_Platform_UNKNOWNPLATFORM :: CommonEventObject_Platform+pattern CommonEventObject_Platform_UNKNOWNPLATFORM = CommonEventObject_Platform "UNKNOWN_PLATFORM"++pattern CommonEventObject_Platform_Web :: CommonEventObject_Platform+pattern CommonEventObject_Platform_Web = CommonEventObject_Platform "WEB"++pattern CommonEventObject_Platform_Ios :: CommonEventObject_Platform+pattern CommonEventObject_Platform_Ios = CommonEventObject_Platform "IOS"++pattern CommonEventObject_Platform_Android :: CommonEventObject_Platform+pattern CommonEventObject_Platform_Android = CommonEventObject_Platform "ANDROID"++{-# COMPLETE+ CommonEventObject_Platform_UNKNOWNPLATFORM,+ CommonEventObject_Platform_Web,+ CommonEventObject_Platform_Ios,+ CommonEventObject_Platform_Android,+ CommonEventObject_Platform+ #-}++-- | Indicates who deleted the message.+newtype DeletionMetadata_DeletionType = DeletionMetadata_DeletionType {fromDeletionMetadata_DeletionType :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | This value is unused.+pattern DeletionMetadata_DeletionType_DELETIONTYPEUNSPECIFIED :: DeletionMetadata_DeletionType+pattern DeletionMetadata_DeletionType_DELETIONTYPEUNSPECIFIED = DeletionMetadata_DeletionType "DELETION_TYPE_UNSPECIFIED"++-- | User deleted their own message.+pattern DeletionMetadata_DeletionType_Creator :: DeletionMetadata_DeletionType+pattern DeletionMetadata_DeletionType_Creator = DeletionMetadata_DeletionType "CREATOR"++-- | A space manager deleted the message.+pattern DeletionMetadata_DeletionType_SPACEOWNER :: DeletionMetadata_DeletionType+pattern DeletionMetadata_DeletionType_SPACEOWNER = DeletionMetadata_DeletionType "SPACE_OWNER"++-- | A Google Workspace administrator deleted the message. Administrators can delete any message in the space, including messages sent by any space member or Chat app.+pattern DeletionMetadata_DeletionType_Admin :: DeletionMetadata_DeletionType+pattern DeletionMetadata_DeletionType_Admin = DeletionMetadata_DeletionType "ADMIN"++-- | A Chat app deleted its own message when it expired.+pattern DeletionMetadata_DeletionType_APPMESSAGEEXPIRY :: DeletionMetadata_DeletionType+pattern DeletionMetadata_DeletionType_APPMESSAGEEXPIRY = DeletionMetadata_DeletionType "APP_MESSAGE_EXPIRY"++-- | A Chat app deleted the message on behalf of the creator (using user authentication).+pattern DeletionMetadata_DeletionType_CREATORVIAAPP :: DeletionMetadata_DeletionType+pattern DeletionMetadata_DeletionType_CREATORVIAAPP = DeletionMetadata_DeletionType "CREATOR_VIA_APP"++-- | A Chat app deleted the message on behalf of a space manager (using user authentication).+pattern DeletionMetadata_DeletionType_SPACEOWNERVIAAPP :: DeletionMetadata_DeletionType+pattern DeletionMetadata_DeletionType_SPACEOWNERVIAAPP = DeletionMetadata_DeletionType "SPACE_OWNER_VIA_APP"++-- | A member of the space deleted the message. Users can delete messages sent by apps.+pattern DeletionMetadata_DeletionType_SPACEMEMBER :: DeletionMetadata_DeletionType+pattern DeletionMetadata_DeletionType_SPACEMEMBER = DeletionMetadata_DeletionType "SPACE_MEMBER"++{-# COMPLETE+ DeletionMetadata_DeletionType_DELETIONTYPEUNSPECIFIED,+ DeletionMetadata_DeletionType_Creator,+ DeletionMetadata_DeletionType_SPACEOWNER,+ DeletionMetadata_DeletionType_Admin,+ DeletionMetadata_DeletionType_APPMESSAGEEXPIRY,+ DeletionMetadata_DeletionType_CREATORVIAAPP,+ DeletionMetadata_DeletionType_SPACEOWNERVIAAPP,+ DeletionMetadata_DeletionType_SPACEMEMBER,+ DeletionMetadata_DeletionType+ #-}++-- | The type of <https://developers.google.com/workspace/chat/dialogs dialog> interaction event received.+newtype DeprecatedEvent_DialogEventType = DeprecatedEvent_DialogEventType {fromDeprecatedEvent_DialogEventType :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Default value. Unspecified.+pattern DeprecatedEvent_DialogEventType_TYPEUNSPECIFIED :: DeprecatedEvent_DialogEventType+pattern DeprecatedEvent_DialogEventType_TYPEUNSPECIFIED = DeprecatedEvent_DialogEventType "TYPE_UNSPECIFIED"++-- | A user opens a dialog.+pattern DeprecatedEvent_DialogEventType_REQUESTDIALOG :: DeprecatedEvent_DialogEventType+pattern DeprecatedEvent_DialogEventType_REQUESTDIALOG = DeprecatedEvent_DialogEventType "REQUEST_DIALOG"++-- | A user clicks an interactive element of a dialog. For example, a user fills out information in a dialog and clicks a button to submit the information.+pattern DeprecatedEvent_DialogEventType_SUBMITDIALOG :: DeprecatedEvent_DialogEventType+pattern DeprecatedEvent_DialogEventType_SUBMITDIALOG = DeprecatedEvent_DialogEventType "SUBMIT_DIALOG"++-- | A user closes a dialog without submitting information. The Chat app only receives this interaction event when users click the close icon in the top right corner of the dialog. When the user closes the dialog by other means (such as refreshing the browser, clicking outside the dialog box, or pressing the escape key), no event is sent. .+pattern DeprecatedEvent_DialogEventType_CANCELDIALOG :: DeprecatedEvent_DialogEventType+pattern DeprecatedEvent_DialogEventType_CANCELDIALOG = DeprecatedEvent_DialogEventType "CANCEL_DIALOG"++{-# COMPLETE+ DeprecatedEvent_DialogEventType_TYPEUNSPECIFIED,+ DeprecatedEvent_DialogEventType_REQUESTDIALOG,+ DeprecatedEvent_DialogEventType_SUBMITDIALOG,+ DeprecatedEvent_DialogEventType_CANCELDIALOG,+ DeprecatedEvent_DialogEventType+ #-}++-- | The </workspace/chat/api/reference/rest/v1/EventType type> of user interaction with the Chat app, such as @MESSAGE@ or @ADDED_TO_SPACE@.+newtype DeprecatedEvent_Type = DeprecatedEvent_Type {fromDeprecatedEvent_Type :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Default value for the enum. DO NOT USE.+pattern DeprecatedEvent_Type_Unspecified :: DeprecatedEvent_Type+pattern DeprecatedEvent_Type_Unspecified = DeprecatedEvent_Type "UNSPECIFIED"++-- | A user sends the Chat app a message, or invokes the Chat app in a space, such as any of the following examples: * Any message in a direct message (DM) space with the Chat app. * A message in a multi-person space where a person \@mentions the Chat app, or uses one of its <https://developers.google.com/workspace/chat/commands#types slash commands>. * If you\'ve configured link previews for your Chat app, a user posts a message that contains a link that matches the configured URL pattern.+pattern DeprecatedEvent_Type_Message :: DeprecatedEvent_Type+pattern DeprecatedEvent_Type_Message = DeprecatedEvent_Type "MESSAGE"++-- | A user adds the Chat app to a space, or a Google Workspace administrator installs the Chat app in direct message spaces for users in their organization. Chat apps typically respond to this interaction event by posting a welcome message in the space. When administrators install Chat apps, the @space.adminInstalled@ field is set to @true@ and users can\'t uninstall them. To learn about Chat apps installed by administrators, see Google Workspace Admin Help\'s documentation, <https://support.google.com/a/answer/172482 Install Marketplace apps in your domain>.+pattern DeprecatedEvent_Type_ADDEDTOSPACE :: DeprecatedEvent_Type+pattern DeprecatedEvent_Type_ADDEDTOSPACE = DeprecatedEvent_Type "ADDED_TO_SPACE"++-- | A user removes the Chat app from a space, or a Google Workspace administrator uninstalls the Chat app for a user in their organization. Chat apps can\'t respond with messages to this event, because they have already been removed. When administrators uninstall Chat apps, the @space.adminInstalled@ field is set to @false@. If a user installed the Chat app before the administrator, the Chat app remains installed for the user and the Chat app doesn\'t receive a @REMOVED_FROM_SPACE@ interaction event.+pattern DeprecatedEvent_Type_REMOVEDFROMSPACE :: DeprecatedEvent_Type+pattern DeprecatedEvent_Type_REMOVEDFROMSPACE = DeprecatedEvent_Type "REMOVED_FROM_SPACE"++-- | A user clicks an interactive element of a card or dialog from a Chat app, such as a button. To receive an interaction event, the button must trigger another interaction with the Chat app. For example, a Chat app doesn\'t receive a @CARD_CLICKED@ interaction event if a user clicks a button that opens a link to a website, but receives interaction events in the following examples: * The user clicks a @Send feedback@ button on a card, which opens a dialog for the user to input information. * The user clicks a @Submit@ button after inputting information into a card or dialog. If a user clicks a button to open, submit, or cancel a dialog, the @CARD_CLICKED@ interaction event\'s @isDialogEvent@ field is set to @true@ and includes a <https://developers.google.com/workspace/chat/api/reference/rest/v1/DialogEventType DialogEventType>.+pattern DeprecatedEvent_Type_CARDCLICKED :: DeprecatedEvent_Type+pattern DeprecatedEvent_Type_CARDCLICKED = DeprecatedEvent_Type "CARD_CLICKED"++-- | A user updates a widget in a card message or dialog.+pattern DeprecatedEvent_Type_WIDGETUPDATED :: DeprecatedEvent_Type+pattern DeprecatedEvent_Type_WIDGETUPDATED = DeprecatedEvent_Type "WIDGET_UPDATED"++-- | A user uses a Chat app <https://developers.google.com/workspace/chat/commands#types quick command>.+pattern DeprecatedEvent_Type_APPCOMMAND :: DeprecatedEvent_Type+pattern DeprecatedEvent_Type_APPCOMMAND = DeprecatedEvent_Type "APP_COMMAND"++{-# COMPLETE+ DeprecatedEvent_Type_Unspecified,+ DeprecatedEvent_Type_Message,+ DeprecatedEvent_Type_ADDEDTOSPACE,+ DeprecatedEvent_Type_REMOVEDFROMSPACE,+ DeprecatedEvent_Type_CARDCLICKED,+ DeprecatedEvent_Type_WIDGETUPDATED,+ DeprecatedEvent_Type_APPCOMMAND,+ DeprecatedEvent_Type+ #-}++-- | Optional. Required when opening a <https://developers.google.com/workspace/chat/dialogs dialog>. What to do in response to an interaction with a user, such as a user clicking a button in a card message. If unspecified, the app responds by executing an @action@—like opening a link or running a function—as normal. By specifying an @interaction@, the app can respond in special interactive ways. For example, by setting @interaction@ to @OPEN_DIALOG@, the app can open a <https://developers.google.com/workspace/chat/dialogs dialog>. When specified, a loading indicator isn\'t shown. If specified for an add-on, the entire card is stripped and nothing is shown in the client. <https://developers.google.com/workspace/chat Google Chat apps>:+newtype GoogleAppsCardV1Action_Interaction = GoogleAppsCardV1Action_Interaction {fromGoogleAppsCardV1Action_Interaction :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Default value. The @action@ executes as normal.+pattern GoogleAppsCardV1Action_Interaction_INTERACTIONUNSPECIFIED :: GoogleAppsCardV1Action_Interaction+pattern GoogleAppsCardV1Action_Interaction_INTERACTIONUNSPECIFIED = GoogleAppsCardV1Action_Interaction "INTERACTION_UNSPECIFIED"++-- | Opens a <https://developers.google.com/workspace/chat/dialogs dialog>, a windowed, card-based interface that Chat apps use to interact with users. Only supported by Chat apps in response to button-clicks on card messages. If specified for an add-on, the entire card is stripped and nothing is shown in the client. <https://developers.google.com/workspace/chat Google Chat apps>:+pattern GoogleAppsCardV1Action_Interaction_OPENDIALOG :: GoogleAppsCardV1Action_Interaction+pattern GoogleAppsCardV1Action_Interaction_OPENDIALOG = GoogleAppsCardV1Action_Interaction "OPEN_DIALOG"++{-# COMPLETE+ GoogleAppsCardV1Action_Interaction_INTERACTIONUNSPECIFIED,+ GoogleAppsCardV1Action_Interaction_OPENDIALOG,+ GoogleAppsCardV1Action_Interaction+ #-}++-- | Specifies the loading indicator that the action displays while making the call to the action.+newtype GoogleAppsCardV1Action_LoadIndicator = GoogleAppsCardV1Action_LoadIndicator {fromGoogleAppsCardV1Action_LoadIndicator :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Displays a spinner to indicate that content is loading.+pattern GoogleAppsCardV1Action_LoadIndicator_Spinner :: GoogleAppsCardV1Action_LoadIndicator+pattern GoogleAppsCardV1Action_LoadIndicator_Spinner = GoogleAppsCardV1Action_LoadIndicator "SPINNER"++-- | Nothing is displayed.+pattern GoogleAppsCardV1Action_LoadIndicator_None :: GoogleAppsCardV1Action_LoadIndicator+pattern GoogleAppsCardV1Action_LoadIndicator_None = GoogleAppsCardV1Action_LoadIndicator "NONE"++{-# COMPLETE+ GoogleAppsCardV1Action_LoadIndicator_Spinner,+ GoogleAppsCardV1Action_LoadIndicator_None,+ GoogleAppsCardV1Action_LoadIndicator+ #-}++-- | The border type.+newtype GoogleAppsCardV1BorderStyle_Type = GoogleAppsCardV1BorderStyle_Type {fromGoogleAppsCardV1BorderStyle_Type :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Don\'t use. Unspecified.+pattern GoogleAppsCardV1BorderStyle_Type_BORDERTYPEUNSPECIFIED :: GoogleAppsCardV1BorderStyle_Type+pattern GoogleAppsCardV1BorderStyle_Type_BORDERTYPEUNSPECIFIED = GoogleAppsCardV1BorderStyle_Type "BORDER_TYPE_UNSPECIFIED"++-- | Default value. No border.+pattern GoogleAppsCardV1BorderStyle_Type_NOBORDER :: GoogleAppsCardV1BorderStyle_Type+pattern GoogleAppsCardV1BorderStyle_Type_NOBORDER = GoogleAppsCardV1BorderStyle_Type "NO_BORDER"++-- | Outline.+pattern GoogleAppsCardV1BorderStyle_Type_Stroke :: GoogleAppsCardV1BorderStyle_Type+pattern GoogleAppsCardV1BorderStyle_Type_Stroke = GoogleAppsCardV1BorderStyle_Type "STROKE"++{-# COMPLETE+ GoogleAppsCardV1BorderStyle_Type_BORDERTYPEUNSPECIFIED,+ GoogleAppsCardV1BorderStyle_Type_NOBORDER,+ GoogleAppsCardV1BorderStyle_Type_Stroke,+ GoogleAppsCardV1BorderStyle_Type+ #-}++-- | Optional. The type of a button. If unset, button type defaults to @OUTLINED@. If the @color@ field is set, the button type is forced to @FILLED@ and any value set for this field is ignored.+newtype GoogleAppsCardV1Button_Type = GoogleAppsCardV1Button_Type {fromGoogleAppsCardV1Button_Type :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Don\'t use. Unspecified.+pattern GoogleAppsCardV1Button_Type_TYPEUNSPECIFIED :: GoogleAppsCardV1Button_Type+pattern GoogleAppsCardV1Button_Type_TYPEUNSPECIFIED = GoogleAppsCardV1Button_Type "TYPE_UNSPECIFIED"++-- | Outlined buttons are medium-emphasis buttons. They usually contain actions that are important, but aren’t the primary action in a Chat app or an add-on.+pattern GoogleAppsCardV1Button_Type_Outlined :: GoogleAppsCardV1Button_Type+pattern GoogleAppsCardV1Button_Type_Outlined = GoogleAppsCardV1Button_Type "OUTLINED"++-- | A filled button has a container with a solid color. It has the most visual impact and is recommended for the important and primary action in a Chat app or an add-on.+pattern GoogleAppsCardV1Button_Type_Filled :: GoogleAppsCardV1Button_Type+pattern GoogleAppsCardV1Button_Type_Filled = GoogleAppsCardV1Button_Type "FILLED"++-- | A filled tonal button is an alternative middle ground between filled and outlined buttons. They’re useful in contexts where a lower-priority button requires slightly more emphasis than an outline button would give.+pattern GoogleAppsCardV1Button_Type_FILLEDTONAL :: GoogleAppsCardV1Button_Type+pattern GoogleAppsCardV1Button_Type_FILLEDTONAL = GoogleAppsCardV1Button_Type "FILLED_TONAL"++-- | A button does not have an invisible container in its default state. It is often used for the lowest priority actions, especially when presenting multiple options.+pattern GoogleAppsCardV1Button_Type_Borderless :: GoogleAppsCardV1Button_Type+pattern GoogleAppsCardV1Button_Type_Borderless = GoogleAppsCardV1Button_Type "BORDERLESS"++{-# COMPLETE+ GoogleAppsCardV1Button_Type_TYPEUNSPECIFIED,+ GoogleAppsCardV1Button_Type_Outlined,+ GoogleAppsCardV1Button_Type_Filled,+ GoogleAppsCardV1Button_Type_FILLEDTONAL,+ GoogleAppsCardV1Button_Type_Borderless,+ GoogleAppsCardV1Button_Type+ #-}++-- | In Google Workspace add-ons, sets the display properties of the @peekCardHeader@. <https://developers.google.com/workspace/add-ons Google Workspace add-ons>:+newtype GoogleAppsCardV1Card_DisplayStyle = GoogleAppsCardV1Card_DisplayStyle {fromGoogleAppsCardV1Card_DisplayStyle :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Don\'t use. Unspecified.+pattern GoogleAppsCardV1Card_DisplayStyle_DISPLAYSTYLEUNSPECIFIED :: GoogleAppsCardV1Card_DisplayStyle+pattern GoogleAppsCardV1Card_DisplayStyle_DISPLAYSTYLEUNSPECIFIED = GoogleAppsCardV1Card_DisplayStyle "DISPLAY_STYLE_UNSPECIFIED"++-- | The header of the card appears at the bottom of the sidebar, partially covering the current top card of the stack. Clicking the header pops the card into the card stack. If the card has no header, a generated header is used instead.+pattern GoogleAppsCardV1Card_DisplayStyle_Peek :: GoogleAppsCardV1Card_DisplayStyle+pattern GoogleAppsCardV1Card_DisplayStyle_Peek = GoogleAppsCardV1Card_DisplayStyle "PEEK"++-- | Default value. The card is shown by replacing the view of the top card in the card stack.+pattern GoogleAppsCardV1Card_DisplayStyle_Replace :: GoogleAppsCardV1Card_DisplayStyle+pattern GoogleAppsCardV1Card_DisplayStyle_Replace = GoogleAppsCardV1Card_DisplayStyle "REPLACE"++{-# COMPLETE+ GoogleAppsCardV1Card_DisplayStyle_DISPLAYSTYLEUNSPECIFIED,+ GoogleAppsCardV1Card_DisplayStyle_Peek,+ GoogleAppsCardV1Card_DisplayStyle_Replace,+ GoogleAppsCardV1Card_DisplayStyle+ #-}++-- | The divider style between the header, sections and footer.+newtype GoogleAppsCardV1Card_SectionDividerStyle = GoogleAppsCardV1Card_SectionDividerStyle {fromGoogleAppsCardV1Card_SectionDividerStyle :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Don\'t use. Unspecified.+pattern GoogleAppsCardV1Card_SectionDividerStyle_DIVIDERSTYLEUNSPECIFIED :: GoogleAppsCardV1Card_SectionDividerStyle+pattern GoogleAppsCardV1Card_SectionDividerStyle_DIVIDERSTYLEUNSPECIFIED = GoogleAppsCardV1Card_SectionDividerStyle "DIVIDER_STYLE_UNSPECIFIED"++-- | Default option. Render a solid divider.+pattern GoogleAppsCardV1Card_SectionDividerStyle_SOLIDDIVIDER :: GoogleAppsCardV1Card_SectionDividerStyle+pattern GoogleAppsCardV1Card_SectionDividerStyle_SOLIDDIVIDER = GoogleAppsCardV1Card_SectionDividerStyle "SOLID_DIVIDER"++-- | If set, no divider is rendered. This style completely removes the divider from the layout. The result is equivalent to not adding a divider at all.+pattern GoogleAppsCardV1Card_SectionDividerStyle_NODIVIDER :: GoogleAppsCardV1Card_SectionDividerStyle+pattern GoogleAppsCardV1Card_SectionDividerStyle_NODIVIDER = GoogleAppsCardV1Card_SectionDividerStyle "NO_DIVIDER"++{-# COMPLETE+ GoogleAppsCardV1Card_SectionDividerStyle_DIVIDERSTYLEUNSPECIFIED,+ GoogleAppsCardV1Card_SectionDividerStyle_SOLIDDIVIDER,+ GoogleAppsCardV1Card_SectionDividerStyle_NODIVIDER,+ GoogleAppsCardV1Card_SectionDividerStyle+ #-}++-- | The shape used to crop the image. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+newtype GoogleAppsCardV1CardHeader_ImageType = GoogleAppsCardV1CardHeader_ImageType {fromGoogleAppsCardV1CardHeader_ImageType :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Default value. Applies a square mask to the image. For example, a 4x3 image becomes 3x3.+pattern GoogleAppsCardV1CardHeader_ImageType_Square :: GoogleAppsCardV1CardHeader_ImageType+pattern GoogleAppsCardV1CardHeader_ImageType_Square = GoogleAppsCardV1CardHeader_ImageType "SQUARE"++-- | Applies a circular mask to the image. For example, a 4x3 image becomes a circle with a diameter of 3.+pattern GoogleAppsCardV1CardHeader_ImageType_Circle :: GoogleAppsCardV1CardHeader_ImageType+pattern GoogleAppsCardV1CardHeader_ImageType_Circle = GoogleAppsCardV1CardHeader_ImageType "CIRCLE"++{-# COMPLETE+ GoogleAppsCardV1CardHeader_ImageType_Square,+ GoogleAppsCardV1CardHeader_ImageType_Circle,+ GoogleAppsCardV1CardHeader_ImageType+ #-}++-- | Specified chip list layout.+newtype GoogleAppsCardV1ChipList_Layout = GoogleAppsCardV1ChipList_Layout {fromGoogleAppsCardV1ChipList_Layout :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Don\'t use. Unspecified.+pattern GoogleAppsCardV1ChipList_Layout_LAYOUTUNSPECIFIED :: GoogleAppsCardV1ChipList_Layout+pattern GoogleAppsCardV1ChipList_Layout_LAYOUTUNSPECIFIED = GoogleAppsCardV1ChipList_Layout "LAYOUT_UNSPECIFIED"++-- | Default value. The chip list wraps to the next line if there isn\'t enough horizontal space.+pattern GoogleAppsCardV1ChipList_Layout_Wrapped :: GoogleAppsCardV1ChipList_Layout+pattern GoogleAppsCardV1ChipList_Layout_Wrapped = GoogleAppsCardV1ChipList_Layout "WRAPPED"++-- | The chips scroll horizontally if they don\'t fit in the available space.+pattern GoogleAppsCardV1ChipList_Layout_HORIZONTALSCROLLABLE :: GoogleAppsCardV1ChipList_Layout+pattern GoogleAppsCardV1ChipList_Layout_HORIZONTALSCROLLABLE = GoogleAppsCardV1ChipList_Layout "HORIZONTAL_SCROLLABLE"++{-# COMPLETE+ GoogleAppsCardV1ChipList_Layout_LAYOUTUNSPECIFIED,+ GoogleAppsCardV1ChipList_Layout_Wrapped,+ GoogleAppsCardV1ChipList_Layout_HORIZONTALSCROLLABLE,+ GoogleAppsCardV1ChipList_Layout+ #-}++-- | The horizontal alignment of the expand and collapse button.+newtype GoogleAppsCardV1CollapseControl_HorizontalAlignment = GoogleAppsCardV1CollapseControl_HorizontalAlignment {fromGoogleAppsCardV1CollapseControl_HorizontalAlignment :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Don\'t use. Unspecified.+pattern GoogleAppsCardV1CollapseControl_HorizontalAlignment_HORIZONTALALIGNMENTUNSPECIFIED :: GoogleAppsCardV1CollapseControl_HorizontalAlignment+pattern GoogleAppsCardV1CollapseControl_HorizontalAlignment_HORIZONTALALIGNMENTUNSPECIFIED = GoogleAppsCardV1CollapseControl_HorizontalAlignment "HORIZONTAL_ALIGNMENT_UNSPECIFIED"++-- | Default value. Aligns widgets to the start position of the column. For left-to-right layouts, aligns to the left. For right-to-left layouts, aligns to the right.+pattern GoogleAppsCardV1CollapseControl_HorizontalAlignment_Start :: GoogleAppsCardV1CollapseControl_HorizontalAlignment+pattern GoogleAppsCardV1CollapseControl_HorizontalAlignment_Start = GoogleAppsCardV1CollapseControl_HorizontalAlignment "START"++-- | Aligns widgets to the center of the column.+pattern GoogleAppsCardV1CollapseControl_HorizontalAlignment_Center :: GoogleAppsCardV1CollapseControl_HorizontalAlignment+pattern GoogleAppsCardV1CollapseControl_HorizontalAlignment_Center = GoogleAppsCardV1CollapseControl_HorizontalAlignment "CENTER"++-- | Aligns widgets to the end position of the column. For left-to-right layouts, aligns widgets to the right. For right-to-left layouts, aligns widgets to the left.+pattern GoogleAppsCardV1CollapseControl_HorizontalAlignment_End :: GoogleAppsCardV1CollapseControl_HorizontalAlignment+pattern GoogleAppsCardV1CollapseControl_HorizontalAlignment_End = GoogleAppsCardV1CollapseControl_HorizontalAlignment "END"++{-# COMPLETE+ GoogleAppsCardV1CollapseControl_HorizontalAlignment_HORIZONTALALIGNMENTUNSPECIFIED,+ GoogleAppsCardV1CollapseControl_HorizontalAlignment_Start,+ GoogleAppsCardV1CollapseControl_HorizontalAlignment_Center,+ GoogleAppsCardV1CollapseControl_HorizontalAlignment_End,+ GoogleAppsCardV1CollapseControl_HorizontalAlignment+ #-}++-- | Specifies whether widgets align to the left, right, or center of a column.+newtype GoogleAppsCardV1Column_HorizontalAlignment = GoogleAppsCardV1Column_HorizontalAlignment {fromGoogleAppsCardV1Column_HorizontalAlignment :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Don\'t use. Unspecified.+pattern GoogleAppsCardV1Column_HorizontalAlignment_HORIZONTALALIGNMENTUNSPECIFIED :: GoogleAppsCardV1Column_HorizontalAlignment+pattern GoogleAppsCardV1Column_HorizontalAlignment_HORIZONTALALIGNMENTUNSPECIFIED = GoogleAppsCardV1Column_HorizontalAlignment "HORIZONTAL_ALIGNMENT_UNSPECIFIED"++-- | Default value. Aligns widgets to the start position of the column. For left-to-right layouts, aligns to the left. For right-to-left layouts, aligns to the right.+pattern GoogleAppsCardV1Column_HorizontalAlignment_Start :: GoogleAppsCardV1Column_HorizontalAlignment+pattern GoogleAppsCardV1Column_HorizontalAlignment_Start = GoogleAppsCardV1Column_HorizontalAlignment "START"++-- | Aligns widgets to the center of the column.+pattern GoogleAppsCardV1Column_HorizontalAlignment_Center :: GoogleAppsCardV1Column_HorizontalAlignment+pattern GoogleAppsCardV1Column_HorizontalAlignment_Center = GoogleAppsCardV1Column_HorizontalAlignment "CENTER"++-- | Aligns widgets to the end position of the column. For left-to-right layouts, aligns widgets to the right. For right-to-left layouts, aligns widgets to the left.+pattern GoogleAppsCardV1Column_HorizontalAlignment_End :: GoogleAppsCardV1Column_HorizontalAlignment+pattern GoogleAppsCardV1Column_HorizontalAlignment_End = GoogleAppsCardV1Column_HorizontalAlignment "END"++{-# COMPLETE+ GoogleAppsCardV1Column_HorizontalAlignment_HORIZONTALALIGNMENTUNSPECIFIED,+ GoogleAppsCardV1Column_HorizontalAlignment_Start,+ GoogleAppsCardV1Column_HorizontalAlignment_Center,+ GoogleAppsCardV1Column_HorizontalAlignment_End,+ GoogleAppsCardV1Column_HorizontalAlignment+ #-}++-- | Specifies how a column fills the width of the card.+newtype GoogleAppsCardV1Column_HorizontalSizeStyle = GoogleAppsCardV1Column_HorizontalSizeStyle {fromGoogleAppsCardV1Column_HorizontalSizeStyle :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Don\'t use. Unspecified.+pattern GoogleAppsCardV1Column_HorizontalSizeStyle_HORIZONTALSIZESTYLEUNSPECIFIED :: GoogleAppsCardV1Column_HorizontalSizeStyle+pattern GoogleAppsCardV1Column_HorizontalSizeStyle_HORIZONTALSIZESTYLEUNSPECIFIED = GoogleAppsCardV1Column_HorizontalSizeStyle "HORIZONTAL_SIZE_STYLE_UNSPECIFIED"++-- | Default value. Column fills the available space, up to 70% of the card\'s width. If both columns are set to @FILL_AVAILABLE_SPACE@, each column fills 50% of the space.+pattern GoogleAppsCardV1Column_HorizontalSizeStyle_FILLAVAILABLESPACE :: GoogleAppsCardV1Column_HorizontalSizeStyle+pattern GoogleAppsCardV1Column_HorizontalSizeStyle_FILLAVAILABLESPACE = GoogleAppsCardV1Column_HorizontalSizeStyle "FILL_AVAILABLE_SPACE"++-- | Column fills the least amount of space possible and no more than 30% of the card\'s width.+pattern GoogleAppsCardV1Column_HorizontalSizeStyle_FILLMINIMUMSPACE :: GoogleAppsCardV1Column_HorizontalSizeStyle+pattern GoogleAppsCardV1Column_HorizontalSizeStyle_FILLMINIMUMSPACE = GoogleAppsCardV1Column_HorizontalSizeStyle "FILL_MINIMUM_SPACE"++{-# COMPLETE+ GoogleAppsCardV1Column_HorizontalSizeStyle_HORIZONTALSIZESTYLEUNSPECIFIED,+ GoogleAppsCardV1Column_HorizontalSizeStyle_FILLAVAILABLESPACE,+ GoogleAppsCardV1Column_HorizontalSizeStyle_FILLMINIMUMSPACE,+ GoogleAppsCardV1Column_HorizontalSizeStyle+ #-}++-- | Specifies whether widgets align to the top, bottom, or center of a column.+newtype GoogleAppsCardV1Column_VerticalAlignment = GoogleAppsCardV1Column_VerticalAlignment {fromGoogleAppsCardV1Column_VerticalAlignment :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Don\'t use. Unspecified.+pattern GoogleAppsCardV1Column_VerticalAlignment_VERTICALALIGNMENTUNSPECIFIED :: GoogleAppsCardV1Column_VerticalAlignment+pattern GoogleAppsCardV1Column_VerticalAlignment_VERTICALALIGNMENTUNSPECIFIED = GoogleAppsCardV1Column_VerticalAlignment "VERTICAL_ALIGNMENT_UNSPECIFIED"++-- | Default value. Aligns widgets to the center of a column.+pattern GoogleAppsCardV1Column_VerticalAlignment_Center :: GoogleAppsCardV1Column_VerticalAlignment+pattern GoogleAppsCardV1Column_VerticalAlignment_Center = GoogleAppsCardV1Column_VerticalAlignment "CENTER"++-- | Aligns widgets to the top of a column.+pattern GoogleAppsCardV1Column_VerticalAlignment_Top :: GoogleAppsCardV1Column_VerticalAlignment+pattern GoogleAppsCardV1Column_VerticalAlignment_Top = GoogleAppsCardV1Column_VerticalAlignment "TOP"++-- | Aligns widgets to the bottom of a column.+pattern GoogleAppsCardV1Column_VerticalAlignment_Bottom :: GoogleAppsCardV1Column_VerticalAlignment+pattern GoogleAppsCardV1Column_VerticalAlignment_Bottom = GoogleAppsCardV1Column_VerticalAlignment "BOTTOM"++{-# COMPLETE+ GoogleAppsCardV1Column_VerticalAlignment_VERTICALALIGNMENTUNSPECIFIED,+ GoogleAppsCardV1Column_VerticalAlignment_Center,+ GoogleAppsCardV1Column_VerticalAlignment_Top,+ GoogleAppsCardV1Column_VerticalAlignment_Bottom,+ GoogleAppsCardV1Column_VerticalAlignment+ #-}++-- | Whether the widget supports inputting a date, a time, or the date and time.+newtype GoogleAppsCardV1DateTimePicker_Type = GoogleAppsCardV1DateTimePicker_Type {fromGoogleAppsCardV1DateTimePicker_Type :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Users input a date and time.+pattern GoogleAppsCardV1DateTimePicker_Type_DATEANDTIME :: GoogleAppsCardV1DateTimePicker_Type+pattern GoogleAppsCardV1DateTimePicker_Type_DATEANDTIME = GoogleAppsCardV1DateTimePicker_Type "DATE_AND_TIME"++-- | Users input a date.+pattern GoogleAppsCardV1DateTimePicker_Type_DATEONLY :: GoogleAppsCardV1DateTimePicker_Type+pattern GoogleAppsCardV1DateTimePicker_Type_DATEONLY = GoogleAppsCardV1DateTimePicker_Type "DATE_ONLY"++-- | Users input a time.+pattern GoogleAppsCardV1DateTimePicker_Type_TIMEONLY :: GoogleAppsCardV1DateTimePicker_Type+pattern GoogleAppsCardV1DateTimePicker_Type_TIMEONLY = GoogleAppsCardV1DateTimePicker_Type "TIME_ONLY"++{-# COMPLETE+ GoogleAppsCardV1DateTimePicker_Type_DATEANDTIME,+ GoogleAppsCardV1DateTimePicker_Type_DATEONLY,+ GoogleAppsCardV1DateTimePicker_Type_TIMEONLY,+ GoogleAppsCardV1DateTimePicker_Type+ #-}++-- | The layout to use for the grid item.+newtype GoogleAppsCardV1GridItem_Layout = GoogleAppsCardV1GridItem_Layout {fromGoogleAppsCardV1GridItem_Layout :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Don\'t use. Unspecified.+pattern GoogleAppsCardV1GridItem_Layout_GRIDITEMLAYOUTUNSPECIFIED :: GoogleAppsCardV1GridItem_Layout+pattern GoogleAppsCardV1GridItem_Layout_GRIDITEMLAYOUTUNSPECIFIED = GoogleAppsCardV1GridItem_Layout "GRID_ITEM_LAYOUT_UNSPECIFIED"++-- | The title and subtitle are shown below the grid item\'s image.+pattern GoogleAppsCardV1GridItem_Layout_TEXTBELOW :: GoogleAppsCardV1GridItem_Layout+pattern GoogleAppsCardV1GridItem_Layout_TEXTBELOW = GoogleAppsCardV1GridItem_Layout "TEXT_BELOW"++-- | The title and subtitle are shown above the grid item\'s image.+pattern GoogleAppsCardV1GridItem_Layout_TEXTABOVE :: GoogleAppsCardV1GridItem_Layout+pattern GoogleAppsCardV1GridItem_Layout_TEXTABOVE = GoogleAppsCardV1GridItem_Layout "TEXT_ABOVE"++{-# COMPLETE+ GoogleAppsCardV1GridItem_Layout_GRIDITEMLAYOUTUNSPECIFIED,+ GoogleAppsCardV1GridItem_Layout_TEXTBELOW,+ GoogleAppsCardV1GridItem_Layout_TEXTABOVE,+ GoogleAppsCardV1GridItem_Layout+ #-}++-- | The crop style applied to the image. In some cases, applying a @CIRCLE@ crop causes the image to be drawn larger than a built-in icon.+newtype GoogleAppsCardV1Icon_ImageType = GoogleAppsCardV1Icon_ImageType {fromGoogleAppsCardV1Icon_ImageType :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Default value. Applies a square mask to the image. For example, a 4x3 image becomes 3x3.+pattern GoogleAppsCardV1Icon_ImageType_Square :: GoogleAppsCardV1Icon_ImageType+pattern GoogleAppsCardV1Icon_ImageType_Square = GoogleAppsCardV1Icon_ImageType "SQUARE"++-- | Applies a circular mask to the image. For example, a 4x3 image becomes a circle with a diameter of 3.+pattern GoogleAppsCardV1Icon_ImageType_Circle :: GoogleAppsCardV1Icon_ImageType+pattern GoogleAppsCardV1Icon_ImageType_Circle = GoogleAppsCardV1Icon_ImageType "CIRCLE"++{-# COMPLETE+ GoogleAppsCardV1Icon_ImageType_Square,+ GoogleAppsCardV1Icon_ImageType_Circle,+ GoogleAppsCardV1Icon_ImageType+ #-}++-- | The crop type.+newtype GoogleAppsCardV1ImageCropStyle_Type = GoogleAppsCardV1ImageCropStyle_Type {fromGoogleAppsCardV1ImageCropStyle_Type :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Don\'t use. Unspecified.+pattern GoogleAppsCardV1ImageCropStyle_Type_IMAGECROPTYPEUNSPECIFIED :: GoogleAppsCardV1ImageCropStyle_Type+pattern GoogleAppsCardV1ImageCropStyle_Type_IMAGECROPTYPEUNSPECIFIED = GoogleAppsCardV1ImageCropStyle_Type "IMAGE_CROP_TYPE_UNSPECIFIED"++-- | Default value. Applies a square crop.+pattern GoogleAppsCardV1ImageCropStyle_Type_Square :: GoogleAppsCardV1ImageCropStyle_Type+pattern GoogleAppsCardV1ImageCropStyle_Type_Square = GoogleAppsCardV1ImageCropStyle_Type "SQUARE"++-- | Applies a circular crop.+pattern GoogleAppsCardV1ImageCropStyle_Type_Circle :: GoogleAppsCardV1ImageCropStyle_Type+pattern GoogleAppsCardV1ImageCropStyle_Type_Circle = GoogleAppsCardV1ImageCropStyle_Type "CIRCLE"++-- | Applies a rectangular crop with a custom aspect ratio. Set the custom aspect ratio with @aspectRatio@.+pattern GoogleAppsCardV1ImageCropStyle_Type_RECTANGLECUSTOM :: GoogleAppsCardV1ImageCropStyle_Type+pattern GoogleAppsCardV1ImageCropStyle_Type_RECTANGLECUSTOM = GoogleAppsCardV1ImageCropStyle_Type "RECTANGLE_CUSTOM"++-- | Applies a rectangular crop with a 4:3 aspect ratio.+pattern GoogleAppsCardV1ImageCropStyle_Type_RECTANGLE_4_3 :: GoogleAppsCardV1ImageCropStyle_Type+pattern GoogleAppsCardV1ImageCropStyle_Type_RECTANGLE_4_3 = GoogleAppsCardV1ImageCropStyle_Type "RECTANGLE_4_3"++{-# COMPLETE+ GoogleAppsCardV1ImageCropStyle_Type_IMAGECROPTYPEUNSPECIFIED,+ GoogleAppsCardV1ImageCropStyle_Type_Square,+ GoogleAppsCardV1ImageCropStyle_Type_Circle,+ GoogleAppsCardV1ImageCropStyle_Type_RECTANGLECUSTOM,+ GoogleAppsCardV1ImageCropStyle_Type_RECTANGLE_4_3,+ GoogleAppsCardV1ImageCropStyle_Type+ #-}++-- | Whether the client forgets about a link after opening it, or observes it until the window closes. <https://developers.google.com/workspace/add-ons Google Workspace add-ons>:+newtype GoogleAppsCardV1OpenLink_OnClose = GoogleAppsCardV1OpenLink_OnClose {fromGoogleAppsCardV1OpenLink_OnClose :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Default value. The card doesn\'t reload; nothing happens.+pattern GoogleAppsCardV1OpenLink_OnClose_Nothing' :: GoogleAppsCardV1OpenLink_OnClose+pattern GoogleAppsCardV1OpenLink_OnClose_Nothing' = GoogleAppsCardV1OpenLink_OnClose "NOTHING"++-- | Reloads the card after the child window closes. If used in conjunction with <https://developers.google.com/workspace/add-ons/reference/rpc/google.apps.card.v1#openas OpenAs.OVERLAY>, the child window acts as a modal dialog and the parent card is blocked until the child window closes.+pattern GoogleAppsCardV1OpenLink_OnClose_Reload :: GoogleAppsCardV1OpenLink_OnClose+pattern GoogleAppsCardV1OpenLink_OnClose_Reload = GoogleAppsCardV1OpenLink_OnClose "RELOAD"++{-# COMPLETE+ GoogleAppsCardV1OpenLink_OnClose_Nothing',+ GoogleAppsCardV1OpenLink_OnClose_Reload,+ GoogleAppsCardV1OpenLink_OnClose+ #-}++-- | How to open a link. <https://developers.google.com/workspace/add-ons Google Workspace add-ons>:+newtype GoogleAppsCardV1OpenLink_OpenAs = GoogleAppsCardV1OpenLink_OpenAs {fromGoogleAppsCardV1OpenLink_OpenAs :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | The link opens as a full-size window (if that\'s the frame used by the client).+pattern GoogleAppsCardV1OpenLink_OpenAs_FULLSIZE :: GoogleAppsCardV1OpenLink_OpenAs+pattern GoogleAppsCardV1OpenLink_OpenAs_FULLSIZE = GoogleAppsCardV1OpenLink_OpenAs "FULL_SIZE"++-- | The link opens as an overlay, such as a pop-up.+pattern GoogleAppsCardV1OpenLink_OpenAs_Overlay :: GoogleAppsCardV1OpenLink_OpenAs+pattern GoogleAppsCardV1OpenLink_OpenAs_Overlay = GoogleAppsCardV1OpenLink_OpenAs "OVERLAY"++{-# COMPLETE+ GoogleAppsCardV1OpenLink_OpenAs_FULLSIZE,+ GoogleAppsCardV1OpenLink_OpenAs_Overlay,+ GoogleAppsCardV1OpenLink_OpenAs+ #-}++-- | A data source shared by all Google Workspace applications, such as users in a Google Workspace organization.+newtype GoogleAppsCardV1PlatformDataSource_CommonDataSource = GoogleAppsCardV1PlatformDataSource_CommonDataSource {fromGoogleAppsCardV1PlatformDataSource_CommonDataSource :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Default value. Don\'t use.+pattern GoogleAppsCardV1PlatformDataSource_CommonDataSource_Unknown :: GoogleAppsCardV1PlatformDataSource_CommonDataSource+pattern GoogleAppsCardV1PlatformDataSource_CommonDataSource_Unknown = GoogleAppsCardV1PlatformDataSource_CommonDataSource "UNKNOWN"++-- | Google Workspace users. The user can only view and select users from their Google Workspace organization.+pattern GoogleAppsCardV1PlatformDataSource_CommonDataSource_User :: GoogleAppsCardV1PlatformDataSource_CommonDataSource+pattern GoogleAppsCardV1PlatformDataSource_CommonDataSource_User = GoogleAppsCardV1PlatformDataSource_CommonDataSource "USER"++{-# COMPLETE+ GoogleAppsCardV1PlatformDataSource_CommonDataSource_Unknown,+ GoogleAppsCardV1PlatformDataSource_CommonDataSource_User,+ GoogleAppsCardV1PlatformDataSource_CommonDataSource+ #-}++-- | The type of items that are displayed to users in a @SelectionInput@ widget. Selection types support different types of interactions. For example, users can select one or more checkboxes, but they can only select one value from a dropdown menu.+newtype GoogleAppsCardV1SelectionInput_Type = GoogleAppsCardV1SelectionInput_Type {fromGoogleAppsCardV1SelectionInput_Type :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | A set of checkboxes. Users can select one or more checkboxes.+pattern GoogleAppsCardV1SelectionInput_Type_CHECKBOX :: GoogleAppsCardV1SelectionInput_Type+pattern GoogleAppsCardV1SelectionInput_Type_CHECKBOX = GoogleAppsCardV1SelectionInput_Type "CHECK_BOX"++-- | A set of radio buttons. Users can select one radio button.+pattern GoogleAppsCardV1SelectionInput_Type_RADIOBUTTON :: GoogleAppsCardV1SelectionInput_Type+pattern GoogleAppsCardV1SelectionInput_Type_RADIOBUTTON = GoogleAppsCardV1SelectionInput_Type "RADIO_BUTTON"++-- | A set of switches. Users can turn on one or more switches.+pattern GoogleAppsCardV1SelectionInput_Type_Switch :: GoogleAppsCardV1SelectionInput_Type+pattern GoogleAppsCardV1SelectionInput_Type_Switch = GoogleAppsCardV1SelectionInput_Type "SWITCH"++-- | A dropdown menu. Users can select one item from the menu.+pattern GoogleAppsCardV1SelectionInput_Type_Dropdown :: GoogleAppsCardV1SelectionInput_Type+pattern GoogleAppsCardV1SelectionInput_Type_Dropdown = GoogleAppsCardV1SelectionInput_Type "DROPDOWN"++-- | A menu with a text box. Users can type and select one or more items. For Google Workspace add-ons, you must populate items using a static array of @SelectionItem@ objects. For Google Chat apps, you can also populate items using a dynamic data source and autosuggest items as users type in the menu. For example, users can start typing the name of a Google Chat space and the widget autosuggests the space. To dynamically populate items for a multiselect menu, use one of the following types of data sources: * Google Workspace data: Items are populated using data from Google Workspace, such as Google Workspace users or Google Chat spaces. * External data: Items are populated from an external data source outside of Google Workspace. For examples of how to implement multiselect menus for Chat apps, see <https://developers.google.com/workspace/chat/design-interactive-card-dialog#multiselect-menu Add a multiselect menu>. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+pattern GoogleAppsCardV1SelectionInput_Type_MULTISELECT :: GoogleAppsCardV1SelectionInput_Type+pattern GoogleAppsCardV1SelectionInput_Type_MULTISELECT = GoogleAppsCardV1SelectionInput_Type "MULTI_SELECT"++{-# COMPLETE+ GoogleAppsCardV1SelectionInput_Type_CHECKBOX,+ GoogleAppsCardV1SelectionInput_Type_RADIOBUTTON,+ GoogleAppsCardV1SelectionInput_Type_Switch,+ GoogleAppsCardV1SelectionInput_Type_Dropdown,+ GoogleAppsCardV1SelectionInput_Type_MULTISELECT,+ GoogleAppsCardV1SelectionInput_Type+ #-}++-- | How the switch appears in the user interface. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+newtype GoogleAppsCardV1SwitchControl_ControlType = GoogleAppsCardV1SwitchControl_ControlType {fromGoogleAppsCardV1SwitchControl_ControlType :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | A toggle-style switch.+pattern GoogleAppsCardV1SwitchControl_ControlType_Switch :: GoogleAppsCardV1SwitchControl_ControlType+pattern GoogleAppsCardV1SwitchControl_ControlType_Switch = GoogleAppsCardV1SwitchControl_ControlType "SWITCH"++-- | Deprecated in favor of @CHECK_BOX@.+pattern GoogleAppsCardV1SwitchControl_ControlType_Checkbox :: GoogleAppsCardV1SwitchControl_ControlType+pattern GoogleAppsCardV1SwitchControl_ControlType_Checkbox = GoogleAppsCardV1SwitchControl_ControlType "CHECKBOX"++-- | A checkbox.+pattern GoogleAppsCardV1SwitchControl_ControlType_CHECKBOX :: GoogleAppsCardV1SwitchControl_ControlType+pattern GoogleAppsCardV1SwitchControl_ControlType_CHECKBOX = GoogleAppsCardV1SwitchControl_ControlType "CHECK_BOX"++{-# COMPLETE+ GoogleAppsCardV1SwitchControl_ControlType_Switch,+ GoogleAppsCardV1SwitchControl_ControlType_Checkbox,+ GoogleAppsCardV1SwitchControl_ControlType_CHECKBOX,+ GoogleAppsCardV1SwitchControl_ControlType+ #-}++-- | How a text input field appears in the user interface. For example, whether the field is single or multi-line.+newtype GoogleAppsCardV1TextInput_Type = GoogleAppsCardV1TextInput_Type {fromGoogleAppsCardV1TextInput_Type :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | The text input field has a fixed height of one line.+pattern GoogleAppsCardV1TextInput_Type_SINGLELINE :: GoogleAppsCardV1TextInput_Type+pattern GoogleAppsCardV1TextInput_Type_SINGLELINE = GoogleAppsCardV1TextInput_Type "SINGLE_LINE"++-- | The text input field has a fixed height of multiple lines.+pattern GoogleAppsCardV1TextInput_Type_MULTIPLELINE :: GoogleAppsCardV1TextInput_Type+pattern GoogleAppsCardV1TextInput_Type_MULTIPLELINE = GoogleAppsCardV1TextInput_Type "MULTIPLE_LINE"++{-# COMPLETE+ GoogleAppsCardV1TextInput_Type_SINGLELINE,+ GoogleAppsCardV1TextInput_Type_MULTIPLELINE,+ GoogleAppsCardV1TextInput_Type+ #-}++-- | Specify the type of the input widgets. <https://developers.google.com/workspace/extend Google Workspace add-ons and Chat apps>:+newtype GoogleAppsCardV1Validation_InputType = GoogleAppsCardV1Validation_InputType {fromGoogleAppsCardV1Validation_InputType :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Unspecified type. Do not use.+pattern GoogleAppsCardV1Validation_InputType_INPUTTYPEUNSPECIFIED :: GoogleAppsCardV1Validation_InputType+pattern GoogleAppsCardV1Validation_InputType_INPUTTYPEUNSPECIFIED = GoogleAppsCardV1Validation_InputType "INPUT_TYPE_UNSPECIFIED"++-- | Regular text that accepts all characters.+pattern GoogleAppsCardV1Validation_InputType_Text :: GoogleAppsCardV1Validation_InputType+pattern GoogleAppsCardV1Validation_InputType_Text = GoogleAppsCardV1Validation_InputType "TEXT"++-- | An integer value.+pattern GoogleAppsCardV1Validation_InputType_Integer :: GoogleAppsCardV1Validation_InputType+pattern GoogleAppsCardV1Validation_InputType_Integer = GoogleAppsCardV1Validation_InputType "INTEGER"++-- | A float value.+pattern GoogleAppsCardV1Validation_InputType_Float :: GoogleAppsCardV1Validation_InputType+pattern GoogleAppsCardV1Validation_InputType_Float = GoogleAppsCardV1Validation_InputType "FLOAT"++-- | An email address.+pattern GoogleAppsCardV1Validation_InputType_Email :: GoogleAppsCardV1Validation_InputType+pattern GoogleAppsCardV1Validation_InputType_Email = GoogleAppsCardV1Validation_InputType "EMAIL"++-- | A emoji selected from system-provided emoji picker.+pattern GoogleAppsCardV1Validation_InputType_EMOJIPICKER :: GoogleAppsCardV1Validation_InputType+pattern GoogleAppsCardV1Validation_InputType_EMOJIPICKER = GoogleAppsCardV1Validation_InputType "EMOJI_PICKER"++{-# COMPLETE+ GoogleAppsCardV1Validation_InputType_INPUTTYPEUNSPECIFIED,+ GoogleAppsCardV1Validation_InputType_Text,+ GoogleAppsCardV1Validation_InputType_Integer,+ GoogleAppsCardV1Validation_InputType_Float,+ GoogleAppsCardV1Validation_InputType_Email,+ GoogleAppsCardV1Validation_InputType_EMOJIPICKER,+ GoogleAppsCardV1Validation_InputType+ #-}++-- | Specifies whether widgets align to the left, right, or center of a column.+newtype GoogleAppsCardV1Widget_HorizontalAlignment = GoogleAppsCardV1Widget_HorizontalAlignment {fromGoogleAppsCardV1Widget_HorizontalAlignment :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Don\'t use. Unspecified.+pattern GoogleAppsCardV1Widget_HorizontalAlignment_HORIZONTALALIGNMENTUNSPECIFIED :: GoogleAppsCardV1Widget_HorizontalAlignment+pattern GoogleAppsCardV1Widget_HorizontalAlignment_HORIZONTALALIGNMENTUNSPECIFIED = GoogleAppsCardV1Widget_HorizontalAlignment "HORIZONTAL_ALIGNMENT_UNSPECIFIED"++-- | Default value. Aligns widgets to the start position of the column. For left-to-right layouts, aligns to the left. For right-to-left layouts, aligns to the right.+pattern GoogleAppsCardV1Widget_HorizontalAlignment_Start :: GoogleAppsCardV1Widget_HorizontalAlignment+pattern GoogleAppsCardV1Widget_HorizontalAlignment_Start = GoogleAppsCardV1Widget_HorizontalAlignment "START"++-- | Aligns widgets to the center of the column.+pattern GoogleAppsCardV1Widget_HorizontalAlignment_Center :: GoogleAppsCardV1Widget_HorizontalAlignment+pattern GoogleAppsCardV1Widget_HorizontalAlignment_Center = GoogleAppsCardV1Widget_HorizontalAlignment "CENTER"++-- | Aligns widgets to the end position of the column. For left-to-right layouts, aligns widgets to the right. For right-to-left layouts, aligns widgets to the left.+pattern GoogleAppsCardV1Widget_HorizontalAlignment_End :: GoogleAppsCardV1Widget_HorizontalAlignment+pattern GoogleAppsCardV1Widget_HorizontalAlignment_End = GoogleAppsCardV1Widget_HorizontalAlignment "END"++{-# COMPLETE+ GoogleAppsCardV1Widget_HorizontalAlignment_HORIZONTALALIGNMENTUNSPECIFIED,+ GoogleAppsCardV1Widget_HorizontalAlignment_Start,+ GoogleAppsCardV1Widget_HorizontalAlignment_Center,+ GoogleAppsCardV1Widget_HorizontalAlignment_End,+ GoogleAppsCardV1Widget_HorizontalAlignment+ #-}++-- | The icon specified by an @enum@ that indices to an icon provided by Chat API.+newtype ImageButton_Icon = ImageButton_Icon {fromImageButton_Icon :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++pattern ImageButton_Icon_ICONUNSPECIFIED :: ImageButton_Icon+pattern ImageButton_Icon_ICONUNSPECIFIED = ImageButton_Icon "ICON_UNSPECIFIED"++pattern ImageButton_Icon_Airplane :: ImageButton_Icon+pattern ImageButton_Icon_Airplane = ImageButton_Icon "AIRPLANE"++pattern ImageButton_Icon_Bookmark :: ImageButton_Icon+pattern ImageButton_Icon_Bookmark = ImageButton_Icon "BOOKMARK"++pattern ImageButton_Icon_Bus :: ImageButton_Icon+pattern ImageButton_Icon_Bus = ImageButton_Icon "BUS"++pattern ImageButton_Icon_Car :: ImageButton_Icon+pattern ImageButton_Icon_Car = ImageButton_Icon "CAR"++pattern ImageButton_Icon_Clock :: ImageButton_Icon+pattern ImageButton_Icon_Clock = ImageButton_Icon "CLOCK"++pattern ImageButton_Icon_CONFIRMATIONNUMBERICON :: ImageButton_Icon+pattern ImageButton_Icon_CONFIRMATIONNUMBERICON = ImageButton_Icon "CONFIRMATION_NUMBER_ICON"++pattern ImageButton_Icon_Dollar :: ImageButton_Icon+pattern ImageButton_Icon_Dollar = ImageButton_Icon "DOLLAR"++pattern ImageButton_Icon_Description :: ImageButton_Icon+pattern ImageButton_Icon_Description = ImageButton_Icon "DESCRIPTION"++pattern ImageButton_Icon_Email :: ImageButton_Icon+pattern ImageButton_Icon_Email = ImageButton_Icon "EMAIL"++pattern ImageButton_Icon_EVENTPERFORMER :: ImageButton_Icon+pattern ImageButton_Icon_EVENTPERFORMER = ImageButton_Icon "EVENT_PERFORMER"++pattern ImageButton_Icon_EVENTSEAT :: ImageButton_Icon+pattern ImageButton_Icon_EVENTSEAT = ImageButton_Icon "EVENT_SEAT"++pattern ImageButton_Icon_FLIGHTARRIVAL :: ImageButton_Icon+pattern ImageButton_Icon_FLIGHTARRIVAL = ImageButton_Icon "FLIGHT_ARRIVAL"++pattern ImageButton_Icon_FLIGHTDEPARTURE :: ImageButton_Icon+pattern ImageButton_Icon_FLIGHTDEPARTURE = ImageButton_Icon "FLIGHT_DEPARTURE"++pattern ImageButton_Icon_Hotel :: ImageButton_Icon+pattern ImageButton_Icon_Hotel = ImageButton_Icon "HOTEL"++pattern ImageButton_Icon_HOTELROOMTYPE :: ImageButton_Icon+pattern ImageButton_Icon_HOTELROOMTYPE = ImageButton_Icon "HOTEL_ROOM_TYPE"++pattern ImageButton_Icon_Invite :: ImageButton_Icon+pattern ImageButton_Icon_Invite = ImageButton_Icon "INVITE"++pattern ImageButton_Icon_MAPPIN :: ImageButton_Icon+pattern ImageButton_Icon_MAPPIN = ImageButton_Icon "MAP_PIN"++pattern ImageButton_Icon_Membership :: ImageButton_Icon+pattern ImageButton_Icon_Membership = ImageButton_Icon "MEMBERSHIP"++pattern ImageButton_Icon_MULTIPLEPEOPLE :: ImageButton_Icon+pattern ImageButton_Icon_MULTIPLEPEOPLE = ImageButton_Icon "MULTIPLE_PEOPLE"++pattern ImageButton_Icon_Offer :: ImageButton_Icon+pattern ImageButton_Icon_Offer = ImageButton_Icon "OFFER"++pattern ImageButton_Icon_Person :: ImageButton_Icon+pattern ImageButton_Icon_Person = ImageButton_Icon "PERSON"++pattern ImageButton_Icon_Phone :: ImageButton_Icon+pattern ImageButton_Icon_Phone = ImageButton_Icon "PHONE"++pattern ImageButton_Icon_RESTAURANTICON :: ImageButton_Icon+pattern ImageButton_Icon_RESTAURANTICON = ImageButton_Icon "RESTAURANT_ICON"++pattern ImageButton_Icon_SHOPPINGCART :: ImageButton_Icon+pattern ImageButton_Icon_SHOPPINGCART = ImageButton_Icon "SHOPPING_CART"++pattern ImageButton_Icon_Star :: ImageButton_Icon+pattern ImageButton_Icon_Star = ImageButton_Icon "STAR"++pattern ImageButton_Icon_Store :: ImageButton_Icon+pattern ImageButton_Icon_Store = ImageButton_Icon "STORE"++pattern ImageButton_Icon_Ticket :: ImageButton_Icon+pattern ImageButton_Icon_Ticket = ImageButton_Icon "TICKET"++pattern ImageButton_Icon_Train :: ImageButton_Icon+pattern ImageButton_Icon_Train = ImageButton_Icon "TRAIN"++pattern ImageButton_Icon_VIDEOCAMERA :: ImageButton_Icon+pattern ImageButton_Icon_VIDEOCAMERA = ImageButton_Icon "VIDEO_CAMERA"++pattern ImageButton_Icon_VIDEOPLAY :: ImageButton_Icon+pattern ImageButton_Icon_VIDEOPLAY = ImageButton_Icon "VIDEO_PLAY"++{-# COMPLETE+ ImageButton_Icon_ICONUNSPECIFIED,+ ImageButton_Icon_Airplane,+ ImageButton_Icon_Bookmark,+ ImageButton_Icon_Bus,+ ImageButton_Icon_Car,+ ImageButton_Icon_Clock,+ ImageButton_Icon_CONFIRMATIONNUMBERICON,+ ImageButton_Icon_Dollar,+ ImageButton_Icon_Description,+ ImageButton_Icon_Email,+ ImageButton_Icon_EVENTPERFORMER,+ ImageButton_Icon_EVENTSEAT,+ ImageButton_Icon_FLIGHTARRIVAL,+ ImageButton_Icon_FLIGHTDEPARTURE,+ ImageButton_Icon_Hotel,+ ImageButton_Icon_HOTELROOMTYPE,+ ImageButton_Icon_Invite,+ ImageButton_Icon_MAPPIN,+ ImageButton_Icon_Membership,+ ImageButton_Icon_MULTIPLEPEOPLE,+ ImageButton_Icon_Offer,+ ImageButton_Icon_Person,+ ImageButton_Icon_Phone,+ ImageButton_Icon_RESTAURANTICON,+ ImageButton_Icon_SHOPPINGCART,+ ImageButton_Icon_Star,+ ImageButton_Icon_Store,+ ImageButton_Icon_Ticket,+ ImageButton_Icon_Train,+ ImageButton_Icon_VIDEOCAMERA,+ ImageButton_Icon_VIDEOPLAY,+ ImageButton_Icon+ #-}++-- | An enum value that\'s replaced by the Chat API with the corresponding icon image.+newtype KeyValue_Icon = KeyValue_Icon {fromKeyValue_Icon :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++pattern KeyValue_Icon_ICONUNSPECIFIED :: KeyValue_Icon+pattern KeyValue_Icon_ICONUNSPECIFIED = KeyValue_Icon "ICON_UNSPECIFIED"++pattern KeyValue_Icon_Airplane :: KeyValue_Icon+pattern KeyValue_Icon_Airplane = KeyValue_Icon "AIRPLANE"++pattern KeyValue_Icon_Bookmark :: KeyValue_Icon+pattern KeyValue_Icon_Bookmark = KeyValue_Icon "BOOKMARK"++pattern KeyValue_Icon_Bus :: KeyValue_Icon+pattern KeyValue_Icon_Bus = KeyValue_Icon "BUS"++pattern KeyValue_Icon_Car :: KeyValue_Icon+pattern KeyValue_Icon_Car = KeyValue_Icon "CAR"++pattern KeyValue_Icon_Clock :: KeyValue_Icon+pattern KeyValue_Icon_Clock = KeyValue_Icon "CLOCK"++pattern KeyValue_Icon_CONFIRMATIONNUMBERICON :: KeyValue_Icon+pattern KeyValue_Icon_CONFIRMATIONNUMBERICON = KeyValue_Icon "CONFIRMATION_NUMBER_ICON"++pattern KeyValue_Icon_Dollar :: KeyValue_Icon+pattern KeyValue_Icon_Dollar = KeyValue_Icon "DOLLAR"++pattern KeyValue_Icon_Description :: KeyValue_Icon+pattern KeyValue_Icon_Description = KeyValue_Icon "DESCRIPTION"++pattern KeyValue_Icon_Email :: KeyValue_Icon+pattern KeyValue_Icon_Email = KeyValue_Icon "EMAIL"++pattern KeyValue_Icon_EVENTPERFORMER :: KeyValue_Icon+pattern KeyValue_Icon_EVENTPERFORMER = KeyValue_Icon "EVENT_PERFORMER"++pattern KeyValue_Icon_EVENTSEAT :: KeyValue_Icon+pattern KeyValue_Icon_EVENTSEAT = KeyValue_Icon "EVENT_SEAT"++pattern KeyValue_Icon_FLIGHTARRIVAL :: KeyValue_Icon+pattern KeyValue_Icon_FLIGHTARRIVAL = KeyValue_Icon "FLIGHT_ARRIVAL"++pattern KeyValue_Icon_FLIGHTDEPARTURE :: KeyValue_Icon+pattern KeyValue_Icon_FLIGHTDEPARTURE = KeyValue_Icon "FLIGHT_DEPARTURE"++pattern KeyValue_Icon_Hotel :: KeyValue_Icon+pattern KeyValue_Icon_Hotel = KeyValue_Icon "HOTEL"++pattern KeyValue_Icon_HOTELROOMTYPE :: KeyValue_Icon+pattern KeyValue_Icon_HOTELROOMTYPE = KeyValue_Icon "HOTEL_ROOM_TYPE"++pattern KeyValue_Icon_Invite :: KeyValue_Icon+pattern KeyValue_Icon_Invite = KeyValue_Icon "INVITE"++pattern KeyValue_Icon_MAPPIN :: KeyValue_Icon+pattern KeyValue_Icon_MAPPIN = KeyValue_Icon "MAP_PIN"++pattern KeyValue_Icon_Membership :: KeyValue_Icon+pattern KeyValue_Icon_Membership = KeyValue_Icon "MEMBERSHIP"++pattern KeyValue_Icon_MULTIPLEPEOPLE :: KeyValue_Icon+pattern KeyValue_Icon_MULTIPLEPEOPLE = KeyValue_Icon "MULTIPLE_PEOPLE"++pattern KeyValue_Icon_Offer :: KeyValue_Icon+pattern KeyValue_Icon_Offer = KeyValue_Icon "OFFER"++pattern KeyValue_Icon_Person :: KeyValue_Icon+pattern KeyValue_Icon_Person = KeyValue_Icon "PERSON"++pattern KeyValue_Icon_Phone :: KeyValue_Icon+pattern KeyValue_Icon_Phone = KeyValue_Icon "PHONE"++pattern KeyValue_Icon_RESTAURANTICON :: KeyValue_Icon+pattern KeyValue_Icon_RESTAURANTICON = KeyValue_Icon "RESTAURANT_ICON"++pattern KeyValue_Icon_SHOPPINGCART :: KeyValue_Icon+pattern KeyValue_Icon_SHOPPINGCART = KeyValue_Icon "SHOPPING_CART"++pattern KeyValue_Icon_Star :: KeyValue_Icon+pattern KeyValue_Icon_Star = KeyValue_Icon "STAR"++pattern KeyValue_Icon_Store :: KeyValue_Icon+pattern KeyValue_Icon_Store = KeyValue_Icon "STORE"++pattern KeyValue_Icon_Ticket :: KeyValue_Icon+pattern KeyValue_Icon_Ticket = KeyValue_Icon "TICKET"++pattern KeyValue_Icon_Train :: KeyValue_Icon+pattern KeyValue_Icon_Train = KeyValue_Icon "TRAIN"++pattern KeyValue_Icon_VIDEOCAMERA :: KeyValue_Icon+pattern KeyValue_Icon_VIDEOCAMERA = KeyValue_Icon "VIDEO_CAMERA"++pattern KeyValue_Icon_VIDEOPLAY :: KeyValue_Icon+pattern KeyValue_Icon_VIDEOPLAY = KeyValue_Icon "VIDEO_PLAY"++{-# COMPLETE+ KeyValue_Icon_ICONUNSPECIFIED,+ KeyValue_Icon_Airplane,+ KeyValue_Icon_Bookmark,+ KeyValue_Icon_Bus,+ KeyValue_Icon_Car,+ KeyValue_Icon_Clock,+ KeyValue_Icon_CONFIRMATIONNUMBERICON,+ KeyValue_Icon_Dollar,+ KeyValue_Icon_Description,+ KeyValue_Icon_Email,+ KeyValue_Icon_EVENTPERFORMER,+ KeyValue_Icon_EVENTSEAT,+ KeyValue_Icon_FLIGHTARRIVAL,+ KeyValue_Icon_FLIGHTDEPARTURE,+ KeyValue_Icon_Hotel,+ KeyValue_Icon_HOTELROOMTYPE,+ KeyValue_Icon_Invite,+ KeyValue_Icon_MAPPIN,+ KeyValue_Icon_Membership,+ KeyValue_Icon_MULTIPLEPEOPLE,+ KeyValue_Icon_Offer,+ KeyValue_Icon_Person,+ KeyValue_Icon_Phone,+ KeyValue_Icon_RESTAURANTICON,+ KeyValue_Icon_SHOPPINGCART,+ KeyValue_Icon_Star,+ KeyValue_Icon_Store,+ KeyValue_Icon_Ticket,+ KeyValue_Icon_Train,+ KeyValue_Icon_VIDEOCAMERA,+ KeyValue_Icon_VIDEOPLAY,+ KeyValue_Icon+ #-}++-- | Optional. User\'s role within a Chat space, which determines their permitted actions in the space. This field can only be used as input in @UpdateMembership@.+newtype Membership_Role = Membership_Role {fromMembership_Role :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Default value. For users: they aren\'t a member of the space, but can be invited. For Google Groups: they\'re always assigned this role (other enum values might be used in the future).+pattern Membership_Role_MEMBERSHIPROLEUNSPECIFIED :: Membership_Role+pattern Membership_Role_MEMBERSHIPROLEUNSPECIFIED = Membership_Role "MEMBERSHIP_ROLE_UNSPECIFIED"++-- | A member of the space. The user has basic permissions, like sending messages to the space. In 1:1 and unnamed group conversations, everyone has this role.+pattern Membership_Role_ROLEMEMBER :: Membership_Role+pattern Membership_Role_ROLEMEMBER = Membership_Role "ROLE_MEMBER"++-- | A space manager. The user has all basic permissions plus administrative permissions that let them manage the space, like adding or removing members. Only supported in SpaceType.SPACE.+pattern Membership_Role_ROLEMANAGER :: Membership_Role+pattern Membership_Role_ROLEMANAGER = Membership_Role "ROLE_MANAGER"++{-# COMPLETE+ Membership_Role_MEMBERSHIPROLEUNSPECIFIED,+ Membership_Role_ROLEMEMBER,+ Membership_Role_ROLEMANAGER,+ Membership_Role+ #-}++-- | Output only. State of the membership.+newtype Membership_State = Membership_State {fromMembership_State :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Default value. Don\'t use.+pattern Membership_State_MEMBERSHIPSTATEUNSPECIFIED :: Membership_State+pattern Membership_State_MEMBERSHIPSTATEUNSPECIFIED = Membership_State "MEMBERSHIP_STATE_UNSPECIFIED"++-- | The user is added to the space, and can participate in the space.+pattern Membership_State_Joined :: Membership_State+pattern Membership_State_Joined = Membership_State "JOINED"++-- | The user is invited to join the space, but hasn\'t joined it.+pattern Membership_State_Invited :: Membership_State+pattern Membership_State_Invited = Membership_State "INVITED"++-- | The user doesn\'t belong to the space and doesn\'t have a pending invitation to join the space.+pattern Membership_State_NOTAMEMBER :: Membership_State+pattern Membership_State_NOTAMEMBER = Membership_State "NOT_A_MEMBER"++{-# COMPLETE+ Membership_State_MEMBERSHIPSTATEUNSPECIFIED,+ Membership_State_Joined,+ Membership_State_Invited,+ Membership_State_NOTAMEMBER,+ Membership_State+ #-}++-- | The rich link type.+newtype RichLinkMetadata_RichLinkType = RichLinkMetadata_RichLinkType {fromRichLinkMetadata_RichLinkType :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Default value for the enum. Don\'t use.+pattern RichLinkMetadata_RichLinkType_RICHLINKTYPEUNSPECIFIED :: RichLinkMetadata_RichLinkType+pattern RichLinkMetadata_RichLinkType_RICHLINKTYPEUNSPECIFIED = RichLinkMetadata_RichLinkType "RICH_LINK_TYPE_UNSPECIFIED"++-- | A Google Drive rich link type.+pattern RichLinkMetadata_RichLinkType_DRIVEFILE :: RichLinkMetadata_RichLinkType+pattern RichLinkMetadata_RichLinkType_DRIVEFILE = RichLinkMetadata_RichLinkType "DRIVE_FILE"++-- | A Chat space rich link type. For example, a space smart chip.+pattern RichLinkMetadata_RichLinkType_CHATSPACE :: RichLinkMetadata_RichLinkType+pattern RichLinkMetadata_RichLinkType_CHATSPACE = RichLinkMetadata_RichLinkType "CHAT_SPACE"++{-# COMPLETE+ RichLinkMetadata_RichLinkType_RICHLINKTYPEUNSPECIFIED,+ RichLinkMetadata_RichLinkType_DRIVEFILE,+ RichLinkMetadata_RichLinkType_CHATSPACE,+ RichLinkMetadata_RichLinkType+ #-}++-- | The type of slash command.+newtype SlashCommandMetadata_Type = SlashCommandMetadata_Type {fromSlashCommandMetadata_Type :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Default value for the enum. Don\'t use.+pattern SlashCommandMetadata_Type_TYPEUNSPECIFIED :: SlashCommandMetadata_Type+pattern SlashCommandMetadata_Type_TYPEUNSPECIFIED = SlashCommandMetadata_Type "TYPE_UNSPECIFIED"++-- | Add Chat app to space.+pattern SlashCommandMetadata_Type_Add :: SlashCommandMetadata_Type+pattern SlashCommandMetadata_Type_Add = SlashCommandMetadata_Type "ADD"++-- | Invoke slash command in space.+pattern SlashCommandMetadata_Type_Invoke :: SlashCommandMetadata_Type+pattern SlashCommandMetadata_Type_Invoke = SlashCommandMetadata_Type "INVOKE"++{-# COMPLETE+ SlashCommandMetadata_Type_TYPEUNSPECIFIED,+ SlashCommandMetadata_Type_Add,+ SlashCommandMetadata_Type_Invoke,+ SlashCommandMetadata_Type+ #-}++-- | Optional. Input only. Predefined space permission settings, input only when creating a space. If the field is not set, a collaboration space is created. After you create the space, settings are populated in the @PermissionSettings@ field. Setting predefined permission settings supports: - In <https://developers.google.com/workspace/preview Developer Preview>, <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> with <https://support.google.com/a?p=chat-app-auth administrator approval> with the @chat.app.spaces@ or @chat.app.spaces.create@ scopes. - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication>+newtype Space_PredefinedPermissionSettings = Space_PredefinedPermissionSettings {fromSpace_PredefinedPermissionSettings :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Unspecified. Don\'t use.+pattern Space_PredefinedPermissionSettings_PREDEFINEDPERMISSIONSETTINGSUNSPECIFIED :: Space_PredefinedPermissionSettings+pattern Space_PredefinedPermissionSettings_PREDEFINEDPERMISSIONSETTINGSUNSPECIFIED = Space_PredefinedPermissionSettings "PREDEFINED_PERMISSION_SETTINGS_UNSPECIFIED"++-- | Setting to make the space a collaboration space where all members can post messages.+pattern Space_PredefinedPermissionSettings_COLLABORATIONSPACE :: Space_PredefinedPermissionSettings+pattern Space_PredefinedPermissionSettings_COLLABORATIONSPACE = Space_PredefinedPermissionSettings "COLLABORATION_SPACE"++-- | Setting to make the space an announcement space where only space managers can post messages.+pattern Space_PredefinedPermissionSettings_ANNOUNCEMENTSPACE :: Space_PredefinedPermissionSettings+pattern Space_PredefinedPermissionSettings_ANNOUNCEMENTSPACE = Space_PredefinedPermissionSettings "ANNOUNCEMENT_SPACE"++{-# COMPLETE+ Space_PredefinedPermissionSettings_PREDEFINEDPERMISSIONSETTINGSUNSPECIFIED,+ Space_PredefinedPermissionSettings_COLLABORATIONSPACE,+ Space_PredefinedPermissionSettings_ANNOUNCEMENTSPACE,+ Space_PredefinedPermissionSettings+ #-}++-- | Optional. The message history state for messages and threads in this space.+newtype Space_SpaceHistoryState = Space_SpaceHistoryState {fromSpace_SpaceHistoryState :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Default value. Do not use.+pattern Space_SpaceHistoryState_HISTORYSTATEUNSPECIFIED :: Space_SpaceHistoryState+pattern Space_SpaceHistoryState_HISTORYSTATEUNSPECIFIED = Space_SpaceHistoryState "HISTORY_STATE_UNSPECIFIED"++-- | History off. <https://support.google.com/chat/answer/7664687 Messages and threads are kept for 24 hours>.+pattern Space_SpaceHistoryState_HISTORYOFF :: Space_SpaceHistoryState+pattern Space_SpaceHistoryState_HISTORYOFF = Space_SpaceHistoryState "HISTORY_OFF"++-- | History on. The organization\'s <https://support.google.com/vault/answer/7657597 Vault retention rules> specify for how long messages and threads are kept.+pattern Space_SpaceHistoryState_HISTORYON :: Space_SpaceHistoryState+pattern Space_SpaceHistoryState_HISTORYON = Space_SpaceHistoryState "HISTORY_ON"++{-# COMPLETE+ Space_SpaceHistoryState_HISTORYSTATEUNSPECIFIED,+ Space_SpaceHistoryState_HISTORYOFF,+ Space_SpaceHistoryState_HISTORYON,+ Space_SpaceHistoryState+ #-}++-- | Output only. The threading state in the Chat space.+newtype Space_SpaceThreadingState = Space_SpaceThreadingState {fromSpace_SpaceThreadingState :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Reserved.+pattern Space_SpaceThreadingState_SPACETHREADINGSTATEUNSPECIFIED :: Space_SpaceThreadingState+pattern Space_SpaceThreadingState_SPACETHREADINGSTATEUNSPECIFIED = Space_SpaceThreadingState "SPACE_THREADING_STATE_UNSPECIFIED"++-- | Named spaces that support message threads. When users respond to a message, they can reply in-thread, which keeps their response in the context of the original message.+pattern Space_SpaceThreadingState_THREADEDMESSAGES :: Space_SpaceThreadingState+pattern Space_SpaceThreadingState_THREADEDMESSAGES = Space_SpaceThreadingState "THREADED_MESSAGES"++-- | Named spaces where the conversation is organized by topic. Topics and their replies are grouped together.+pattern Space_SpaceThreadingState_GROUPEDMESSAGES :: Space_SpaceThreadingState+pattern Space_SpaceThreadingState_GROUPEDMESSAGES = Space_SpaceThreadingState "GROUPED_MESSAGES"++-- | Direct messages (DMs) between two people and group conversations between 3 or more people.+pattern Space_SpaceThreadingState_UNTHREADEDMESSAGES :: Space_SpaceThreadingState+pattern Space_SpaceThreadingState_UNTHREADEDMESSAGES = Space_SpaceThreadingState "UNTHREADED_MESSAGES"++{-# COMPLETE+ Space_SpaceThreadingState_SPACETHREADINGSTATEUNSPECIFIED,+ Space_SpaceThreadingState_THREADEDMESSAGES,+ Space_SpaceThreadingState_GROUPEDMESSAGES,+ Space_SpaceThreadingState_UNTHREADEDMESSAGES,+ Space_SpaceThreadingState+ #-}++-- | Optional. The type of space. Required when creating a space or updating the space type of a space. Output only for other usage.+newtype Space_SpaceType = Space_SpaceType {fromSpace_SpaceType :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Reserved.+pattern Space_SpaceType_SPACETYPEUNSPECIFIED :: Space_SpaceType+pattern Space_SpaceType_SPACETYPEUNSPECIFIED = Space_SpaceType "SPACE_TYPE_UNSPECIFIED"++-- | A place where people send messages, share files, and collaborate. A @SPACE@ can include Chat apps.+pattern Space_SpaceType_Space :: Space_SpaceType+pattern Space_SpaceType_Space = Space_SpaceType "SPACE"++-- | Group conversations between 3 or more people. A @GROUP_CHAT@ can include Chat apps.+pattern Space_SpaceType_GROUPCHAT :: Space_SpaceType+pattern Space_SpaceType_GROUPCHAT = Space_SpaceType "GROUP_CHAT"++-- | 1:1 messages between two humans or a human and a Chat app.+pattern Space_SpaceType_DIRECTMESSAGE :: Space_SpaceType+pattern Space_SpaceType_DIRECTMESSAGE = Space_SpaceType "DIRECT_MESSAGE"++{-# COMPLETE+ Space_SpaceType_SPACETYPEUNSPECIFIED,+ Space_SpaceType_Space,+ Space_SpaceType_GROUPCHAT,+ Space_SpaceType_DIRECTMESSAGE,+ Space_SpaceType+ #-}++-- | Output only. Deprecated: Use @space_type@ instead. The type of a space.+newtype Space_Type = Space_Type {fromSpace_Type :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Reserved.+pattern Space_Type_TYPEUNSPECIFIED :: Space_Type+pattern Space_Type_TYPEUNSPECIFIED = Space_Type "TYPE_UNSPECIFIED"++-- | Conversations between two or more humans.+pattern Space_Type_Room :: Space_Type+pattern Space_Type_Room = Space_Type "ROOM"++-- | 1:1 Direct Message between a human and a Chat app, where all messages are flat. Note that this doesn\'t include direct messages between two humans.+pattern Space_Type_DM :: Space_Type+pattern Space_Type_DM = Space_Type "DM"++{-# COMPLETE+ Space_Type_TYPEUNSPECIFIED,+ Space_Type_Room,+ Space_Type_DM,+ Space_Type+ #-}++-- | The space notification mute setting.+newtype SpaceNotificationSetting_MuteSetting = SpaceNotificationSetting_MuteSetting {fromSpaceNotificationSetting_MuteSetting :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Reserved.+pattern SpaceNotificationSetting_MuteSetting_MUTESETTINGUNSPECIFIED :: SpaceNotificationSetting_MuteSetting+pattern SpaceNotificationSetting_MuteSetting_MUTESETTINGUNSPECIFIED = SpaceNotificationSetting_MuteSetting "MUTE_SETTING_UNSPECIFIED"++-- | The user will receive notifications for the space based on the notification setting.+pattern SpaceNotificationSetting_MuteSetting_Unmuted :: SpaceNotificationSetting_MuteSetting+pattern SpaceNotificationSetting_MuteSetting_Unmuted = SpaceNotificationSetting_MuteSetting "UNMUTED"++-- | The user will not receive any notifications for the space, regardless of the notification setting.+pattern SpaceNotificationSetting_MuteSetting_Muted :: SpaceNotificationSetting_MuteSetting+pattern SpaceNotificationSetting_MuteSetting_Muted = SpaceNotificationSetting_MuteSetting "MUTED"++{-# COMPLETE+ SpaceNotificationSetting_MuteSetting_MUTESETTINGUNSPECIFIED,+ SpaceNotificationSetting_MuteSetting_Unmuted,+ SpaceNotificationSetting_MuteSetting_Muted,+ SpaceNotificationSetting_MuteSetting+ #-}++-- | The notification setting.+newtype SpaceNotificationSetting_NotificationSetting = SpaceNotificationSetting_NotificationSetting {fromSpaceNotificationSetting_NotificationSetting :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Reserved.+pattern SpaceNotificationSetting_NotificationSetting_NOTIFICATIONSETTINGUNSPECIFIED :: SpaceNotificationSetting_NotificationSetting+pattern SpaceNotificationSetting_NotificationSetting_NOTIFICATIONSETTINGUNSPECIFIED = SpaceNotificationSetting_NotificationSetting "NOTIFICATION_SETTING_UNSPECIFIED"++-- | Notifications are triggered by \@mentions, followed threads, first message of new threads. All new threads are automatically followed, unless manually unfollowed by the user.+pattern SpaceNotificationSetting_NotificationSetting_All :: SpaceNotificationSetting_NotificationSetting+pattern SpaceNotificationSetting_NotificationSetting_All = SpaceNotificationSetting_NotificationSetting "ALL"++-- | The notification is triggered by \@mentions, followed threads, first message of new threads. Not available for 1:1 direct messages.+pattern SpaceNotificationSetting_NotificationSetting_MAINCONVERSATIONS :: SpaceNotificationSetting_NotificationSetting+pattern SpaceNotificationSetting_NotificationSetting_MAINCONVERSATIONS = SpaceNotificationSetting_NotificationSetting "MAIN_CONVERSATIONS"++-- | The notification is triggered by \@mentions, followed threads. Not available for 1:1 direct messages.+pattern SpaceNotificationSetting_NotificationSetting_FORYOU :: SpaceNotificationSetting_NotificationSetting+pattern SpaceNotificationSetting_NotificationSetting_FORYOU = SpaceNotificationSetting_NotificationSetting "FOR_YOU"++-- | Notification is off.+pattern SpaceNotificationSetting_NotificationSetting_Off :: SpaceNotificationSetting_NotificationSetting+pattern SpaceNotificationSetting_NotificationSetting_Off = SpaceNotificationSetting_NotificationSetting "OFF"++{-# COMPLETE+ SpaceNotificationSetting_NotificationSetting_NOTIFICATIONSETTINGUNSPECIFIED,+ SpaceNotificationSetting_NotificationSetting_All,+ SpaceNotificationSetting_NotificationSetting_MAINCONVERSATIONS,+ SpaceNotificationSetting_NotificationSetting_FORYOU,+ SpaceNotificationSetting_NotificationSetting_Off,+ SpaceNotificationSetting_NotificationSetting+ #-}++-- | User type.+newtype User_Type = User_Type {fromUser_Type :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Default value for the enum. DO NOT USE.+pattern User_Type_TYPEUNSPECIFIED :: User_Type+pattern User_Type_TYPEUNSPECIFIED = User_Type "TYPE_UNSPECIFIED"++-- | Human user.+pattern User_Type_Human :: User_Type+pattern User_Type_Human = User_Type "HUMAN"++-- | Chat app user.+pattern User_Type_Bot :: User_Type+pattern User_Type_Bot = User_Type "BOT"++{-# COMPLETE+ User_Type_TYPEUNSPECIFIED,+ User_Type_Human,+ User_Type_Bot,+ User_Type+ #-}++-- | The type of user mention.+newtype UserMentionMetadata_Type = UserMentionMetadata_Type {fromUserMentionMetadata_Type :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Default value for the enum. Don\'t use.+pattern UserMentionMetadata_Type_TYPEUNSPECIFIED :: UserMentionMetadata_Type+pattern UserMentionMetadata_Type_TYPEUNSPECIFIED = UserMentionMetadata_Type "TYPE_UNSPECIFIED"++-- | Add user to space.+pattern UserMentionMetadata_Type_Add :: UserMentionMetadata_Type+pattern UserMentionMetadata_Type_Add = UserMentionMetadata_Type "ADD"++-- | Mention user in space.+pattern UserMentionMetadata_Type_Mention :: UserMentionMetadata_Type+pattern UserMentionMetadata_Type_Mention = UserMentionMetadata_Type "MENTION"++{-# COMPLETE+ UserMentionMetadata_Type_TYPEUNSPECIFIED,+ UserMentionMetadata_Type_Add,+ UserMentionMetadata_Type_Mention,+ UserMentionMetadata_Type+ #-}++-- | Optional. Specifies whether a message starts a thread or replies to one. Only supported in named spaces. When <https://developers.google.com/workspace/chat/receive-respond-interactions responding to user interactions>, this field is ignored. For interactions within a thread, the reply is created in the same thread. Otherwise, the reply is created as a new thread.+newtype SpacesMessagesCreateMessageReplyOption = SpacesMessagesCreateMessageReplyOption {fromSpacesMessagesCreateMessageReplyOption :: Core.Text}+ deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)+ deriving newtype+ ( Core.Hashable,+ Core.ToHttpApiData,+ Core.FromHttpApiData,+ Core.ToJSON,+ Core.ToJSONKey,+ Core.FromJSON,+ Core.FromJSONKey+ )++-- | Default. Starts a new thread. Using this option ignores any thread ID or @thread_key@ that\'s included.+pattern SpacesMessagesCreateMessageReplyOption_MESSAGEREPLYOPTIONUNSPECIFIED :: SpacesMessagesCreateMessageReplyOption+pattern SpacesMessagesCreateMessageReplyOption_MESSAGEREPLYOPTIONUNSPECIFIED = SpacesMessagesCreateMessageReplyOption "MESSAGE_REPLY_OPTION_UNSPECIFIED"++-- | Creates the message as a reply to the thread specified by thread ID or @thread_key@. If it fails, the message starts a new thread instead.+pattern SpacesMessagesCreateMessageReplyOption_REPLYMESSAGEFALLBACKTONEWTHREAD :: SpacesMessagesCreateMessageReplyOption+pattern SpacesMessagesCreateMessageReplyOption_REPLYMESSAGEFALLBACKTONEWTHREAD = SpacesMessagesCreateMessageReplyOption "REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD"++-- | Creates the message as a reply to the thread specified by thread ID or @thread_key@. If a new @thread_key@ is used, a new thread is created. If the message creation fails, a @NOT_FOUND@ error is returned instead.+pattern SpacesMessagesCreateMessageReplyOption_REPLYMESSAGEORFAIL :: SpacesMessagesCreateMessageReplyOption+pattern SpacesMessagesCreateMessageReplyOption_REPLYMESSAGEORFAIL = SpacesMessagesCreateMessageReplyOption "REPLY_MESSAGE_OR_FAIL"++{-# COMPLETE+ SpacesMessagesCreateMessageReplyOption_MESSAGEREPLYOPTIONUNSPECIFIED,+ SpacesMessagesCreateMessageReplyOption_REPLYMESSAGEFALLBACKTONEWTHREAD,+ SpacesMessagesCreateMessageReplyOption_REPLYMESSAGEORFAIL,+ SpacesMessagesCreateMessageReplyOption+ #-}
+ gen/Gogol/Chat/Media/Download.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Media.Download+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Downloads media. Download is supported on the URI @\/v1\/media\/{+name}?alt=media@.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.media.download@.+module Gogol.Chat.Media.Download+ ( -- * Resource+ ChatMediaDownloadResource,++ -- ** Constructing a Request+ ChatMediaDownload (..),+ newChatMediaDownload,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.media.download@ method which the+-- 'ChatMediaDownload' request conforms to.+type ChatMediaDownloadResource =+ "v1"+ Core.:> "media"+ Core.:> Core.Capture "resourceName" Core.Text+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.Get '[Core.JSON] Media+ Core.:<|> "v1"+ Core.:> "media"+ Core.:> Core.Capture "resourceName" Core.Text+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltMedia+ Core.:> Core.Get '[Core.OctetStream] Core.Stream++-- | Downloads media. Download is supported on the URI @\/v1\/media\/{+name}?alt=media@.+--+-- /See:/ 'newChatMediaDownload' smart constructor.+data ChatMediaDownload = ChatMediaDownload+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Name of the media that is being downloaded. See ReadRequest.resource_name.+ resourceName :: Core.Text,+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatMediaDownload' with the minimum fields required to make a request.+newChatMediaDownload ::+ -- | Name of the media that is being downloaded. See ReadRequest.resource_name. See 'resourceName'.+ Core.Text ->+ ChatMediaDownload+newChatMediaDownload resourceName =+ ChatMediaDownload+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ resourceName = resourceName,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance Core.GoogleRequest ChatMediaDownload where+ type Rs ChatMediaDownload = Media+ type+ Scopes ChatMediaDownload =+ '[Chat'Bot, Chat'Messages, Chat'Messages'Readonly]+ requestClient ChatMediaDownload {..} =+ go+ resourceName+ xgafv+ accessToken+ callback+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ chatService+ where+ go Core.:<|> _ =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatMediaDownloadResource)+ Core.mempty++instance Core.GoogleRequest (Core.MediaDownload ChatMediaDownload) where+ type Rs (Core.MediaDownload ChatMediaDownload) = Core.Stream+ type+ Scopes (Core.MediaDownload ChatMediaDownload) =+ Core.Scopes ChatMediaDownload+ requestClient (Core.MediaDownload ChatMediaDownload {..}) =+ go+ resourceName+ xgafv+ accessToken+ callback+ uploadType+ uploadProtocol+ (Core.Just Core.AltMedia)+ chatService+ where+ _ Core.:<|> go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatMediaDownloadResource)+ Core.mempty
+ gen/Gogol/Chat/Media/Upload.hs view
@@ -0,0 +1,156 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Media.Upload+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Uploads an attachment. For an example, see <https://developers.google.com/workspace/chat/upload-media-attachments Upload media as a file attachment>. Requires user <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user authentication>. You can upload attachments up to 200 MB. Certain file types aren\'t supported. For details, see <https://support.google.com/chat/answer/7651457?&co=GENIE.Platform%3DDesktop#File%20types%20blocked%20in%20Google%20Chat File types blocked by Google Chat>.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.media.upload@.+module Gogol.Chat.Media.Upload+ ( -- * Resource+ ChatMediaUploadResource,++ -- ** Constructing a Request+ ChatMediaUpload (..),+ newChatMediaUpload,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.media.upload@ method which the+-- 'ChatMediaUpload' request conforms to.+type ChatMediaUploadResource =+ "v1"+ Core.:> Core.Capture "parent" Core.Text+ Core.:> "attachments:upload"+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.ReqBody '[Core.JSON] UploadAttachmentRequest+ Core.:> Core.Post '[Core.JSON] UploadAttachmentResponse+ Core.:<|> "upload"+ Core.:> "v1"+ Core.:> Core.Capture "parent" Core.Text+ Core.:> "attachments:upload"+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.QueryParam "uploadType" Core.Multipart+ Core.:> Core.MultipartRelated '[Core.JSON] UploadAttachmentRequest+ Core.:> Core.Post '[Core.JSON] UploadAttachmentResponse++-- | Uploads an attachment. For an example, see <https://developers.google.com/workspace/chat/upload-media-attachments Upload media as a file attachment>. Requires user <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user authentication>. You can upload attachments up to 200 MB. Certain file types aren\'t supported. For details, see <https://support.google.com/chat/answer/7651457?&co=GENIE.Platform%3DDesktop#File%20types%20blocked%20in%20Google%20Chat File types blocked by Google Chat>.+--+-- /See:/ 'newChatMediaUpload' smart constructor.+data ChatMediaUpload = ChatMediaUpload+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Required. Resource name of the Chat space in which the attachment is uploaded. Format \"spaces\/{space}\".+ parent :: Core.Text,+ -- | Multipart request metadata.+ payload :: UploadAttachmentRequest,+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatMediaUpload' with the minimum fields required to make a request.+newChatMediaUpload ::+ -- | Required. Resource name of the Chat space in which the attachment is uploaded. Format \"spaces\/{space}\". See 'parent'.+ Core.Text ->+ -- | Multipart request metadata. See 'payload'.+ UploadAttachmentRequest ->+ ChatMediaUpload+newChatMediaUpload parent payload =+ ChatMediaUpload+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ parent = parent,+ payload = payload,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance Core.GoogleRequest ChatMediaUpload where+ type Rs ChatMediaUpload = UploadAttachmentResponse+ type+ Scopes ChatMediaUpload =+ '[Chat'Import, Chat'Messages, Chat'Messages'Create]+ requestClient ChatMediaUpload {..} =+ go+ parent+ xgafv+ accessToken+ callback+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ payload+ chatService+ where+ go Core.:<|> _ =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatMediaUploadResource)+ Core.mempty++instance Core.GoogleRequest (Core.MediaUpload ChatMediaUpload) where+ type+ Rs (Core.MediaUpload ChatMediaUpload) =+ UploadAttachmentResponse+ type+ Scopes (Core.MediaUpload ChatMediaUpload) =+ Core.Scopes ChatMediaUpload+ requestClient (Core.MediaUpload ChatMediaUpload {..} body) =+ go+ parent+ xgafv+ accessToken+ callback+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ (Core.Just Core.Multipart)+ payload+ body+ chatService+ where+ _ Core.:<|> go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatMediaUploadResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/CompleteImport.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.CompleteImport+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Completes the <https://developers.google.com/workspace/chat/import-data import process> for the specified space and makes it visible to users. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app app authentication> and domain-wide delegation. For more information, see <https://developers.google.com/workspace/chat/authorize-import Authorize Google Chat apps to import data>.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.completeImport@.+module Gogol.Chat.Spaces.CompleteImport+ ( -- * Resource+ ChatSpacesCompleteImportResource,++ -- ** Constructing a Request+ ChatSpacesCompleteImport (..),+ newChatSpacesCompleteImport,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.completeImport@ method which the+-- 'ChatSpacesCompleteImport' request conforms to.+type ChatSpacesCompleteImportResource =+ "v1"+ Core.:> Core.CaptureMode "name" "completeImport" Core.Text+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.ReqBody '[Core.JSON] CompleteImportSpaceRequest+ Core.:> Core.Post '[Core.JSON] CompleteImportSpaceResponse++-- | Completes the <https://developers.google.com/workspace/chat/import-data import process> for the specified space and makes it visible to users. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app app authentication> and domain-wide delegation. For more information, see <https://developers.google.com/workspace/chat/authorize-import Authorize Google Chat apps to import data>.+--+-- /See:/ 'newChatSpacesCompleteImport' smart constructor.+data ChatSpacesCompleteImport = ChatSpacesCompleteImport+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Required. Resource name of the import mode space. Format: @spaces\/{space}@+ name :: Core.Text,+ -- | Multipart request metadata.+ payload :: CompleteImportSpaceRequest,+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesCompleteImport' with the minimum fields required to make a request.+newChatSpacesCompleteImport ::+ -- | Required. Resource name of the import mode space. Format: @spaces\/{space}@ See 'name'.+ Core.Text ->+ -- | Multipart request metadata. See 'payload'.+ CompleteImportSpaceRequest ->+ ChatSpacesCompleteImport+newChatSpacesCompleteImport name payload =+ ChatSpacesCompleteImport+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ name = name,+ payload = payload,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesCompleteImport where+ type Rs ChatSpacesCompleteImport = CompleteImportSpaceResponse+ type Scopes ChatSpacesCompleteImport = '[Chat'Import]+ requestClient ChatSpacesCompleteImport {..} =+ go+ name+ xgafv+ accessToken+ callback+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ payload+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesCompleteImportResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/Create.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.Create+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a space. Can be used to create a named space, or a group chat in @Import mode@. For an example, see <https://developers.google.com/workspace/chat/create-spaces Create a space>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> with <https://support.google.com/a?p=chat-app-auth administrator approval> in <https://developers.google.com/workspace/preview Developer Preview> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> When authenticating as an app, the @space.customer@ field must be set in the request. Space membership upon creation depends on whether the space is created in @Import mode@: * __Import mode:__ No members are created. * __All other modes:__ The calling user is added as a member. This is: * The app itself when using app authentication. * The human user when using user+-- authentication. If you receive the error message @ALREADY_EXISTS@ when creating a space, try a different @displayName@. An existing space within the Google Workspace organization might already use this display name.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.create@.+module Gogol.Chat.Spaces.Create+ ( -- * Resource+ ChatSpacesCreateResource,++ -- ** Constructing a Request+ ChatSpacesCreate (..),+ newChatSpacesCreate,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.create@ method which the+-- 'ChatSpacesCreate' request conforms to.+type ChatSpacesCreateResource =+ "v1"+ Core.:> "spaces"+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "requestId" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.ReqBody '[Core.JSON] Space+ Core.:> Core.Post '[Core.JSON] Space++-- | Creates a space. Can be used to create a named space, or a group chat in @Import mode@. For an example, see <https://developers.google.com/workspace/chat/create-spaces Create a space>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> with <https://support.google.com/a?p=chat-app-auth administrator approval> in <https://developers.google.com/workspace/preview Developer Preview> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> When authenticating as an app, the @space.customer@ field must be set in the request. Space membership upon creation depends on whether the space is created in @Import mode@: * __Import mode:__ No members are created. * __All other modes:__ The calling user is added as a member. This is: * The app itself when using app authentication. * The human user when using user+-- authentication. If you receive the error message @ALREADY_EXISTS@ when creating a space, try a different @displayName@. An existing space within the Google Workspace organization might already use this display name.+--+-- /See:/ 'newChatSpacesCreate' smart constructor.+data ChatSpacesCreate = ChatSpacesCreate+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Multipart request metadata.+ payload :: Space,+ -- | Optional. A unique identifier for this request. A random UUID is recommended. Specifying an existing request ID returns the space created with that ID instead of creating a new space. Specifying an existing request ID from the same Chat app with a different authenticated user returns an error.+ requestId :: (Core.Maybe Core.Text),+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesCreate' with the minimum fields required to make a request.+newChatSpacesCreate ::+ -- | Multipart request metadata. See 'payload'.+ Space ->+ ChatSpacesCreate+newChatSpacesCreate payload =+ ChatSpacesCreate+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ payload = payload,+ requestId = Core.Nothing,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesCreate where+ type Rs ChatSpacesCreate = Space+ type+ Scopes ChatSpacesCreate =+ '[ Chat'App'Spaces,+ Chat'App'Spaces'Create,+ Chat'Import,+ Chat'Spaces,+ Chat'Spaces'Create+ ]+ requestClient ChatSpacesCreate {..} =+ go+ xgafv+ accessToken+ callback+ requestId+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ payload+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesCreateResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/Delete.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.Delete+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a named space. Always performs a cascading delete, which means that the space\'s child resources—like messages posted in the space and memberships in the space—are also deleted. For an example, see <https://developers.google.com/workspace/chat/delete-spaces Delete a space>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> with <https://support.google.com/a?p=chat-app-auth administrator approval> in <https://developers.google.com/workspace/preview Developer Preview> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> You can authenticate and authorize this method with administrator privileges by setting the @use_admin_access@ field in the request.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.delete@.+module Gogol.Chat.Spaces.Delete+ ( -- * Resource+ ChatSpacesDeleteResource,++ -- ** Constructing a Request+ ChatSpacesDelete (..),+ newChatSpacesDelete,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.delete@ method which the+-- 'ChatSpacesDelete' request conforms to.+type ChatSpacesDeleteResource =+ "v1"+ Core.:> Core.Capture "name" Core.Text+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "useAdminAccess" Core.Bool+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.Delete '[Core.JSON] Empty++-- | Deletes a named space. Always performs a cascading delete, which means that the space\'s child resources—like messages posted in the space and memberships in the space—are also deleted. For an example, see <https://developers.google.com/workspace/chat/delete-spaces Delete a space>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> with <https://support.google.com/a?p=chat-app-auth administrator approval> in <https://developers.google.com/workspace/preview Developer Preview> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> You can authenticate and authorize this method with administrator privileges by setting the @use_admin_access@ field in the request.+--+-- /See:/ 'newChatSpacesDelete' smart constructor.+data ChatSpacesDelete = ChatSpacesDelete+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Required. Resource name of the space to delete. Format: @spaces\/{space}@+ name :: Core.Text,+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text),+ -- | Optional. When @true@, the method runs using the user\'s Google Workspace administrator privileges. The calling user must be a Google Workspace administrator with the <https://support.google.com/a/answer/13369245 manage chat and spaces conversations privilege>. Requires the @chat.admin.delete@ <https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes OAuth 2.0 scope>.+ useAdminAccess :: (Core.Maybe Core.Bool)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesDelete' with the minimum fields required to make a request.+newChatSpacesDelete ::+ -- | Required. Resource name of the space to delete. Format: @spaces\/{space}@ See 'name'.+ Core.Text ->+ ChatSpacesDelete+newChatSpacesDelete name =+ ChatSpacesDelete+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ name = name,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing,+ useAdminAccess = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesDelete where+ type Rs ChatSpacesDelete = Empty+ type+ Scopes ChatSpacesDelete =+ '[Chat'Admin'Delete, Chat'App'Delete, Chat'Delete, Chat'Import]+ requestClient ChatSpacesDelete {..} =+ go+ name+ xgafv+ accessToken+ callback+ uploadType+ uploadProtocol+ useAdminAccess+ (Core.Just Core.AltJSON)+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesDeleteResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/FindDirectMessage.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.FindDirectMessage+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the existing direct message with the specified user. If no direct message space is found, returns a @404 NOT_FOUND@ error. For an example, see </chat/api/guides/v1/spaces/find-direct-message Find a direct message>. With <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app app authentication>, returns the direct message space between the specified user and the calling Chat app. With <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>, returns the direct message space between the specified user and the authenticated user. \/\/ Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication>+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.findDirectMessage@.+module Gogol.Chat.Spaces.FindDirectMessage+ ( -- * Resource+ ChatSpacesFindDirectMessageResource,++ -- ** Constructing a Request+ ChatSpacesFindDirectMessage (..),+ newChatSpacesFindDirectMessage,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.findDirectMessage@ method which the+-- 'ChatSpacesFindDirectMessage' request conforms to.+type ChatSpacesFindDirectMessageResource =+ "v1"+ Core.:> "spaces:findDirectMessage"+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "name" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.Get '[Core.JSON] Space++-- | Returns the existing direct message with the specified user. If no direct message space is found, returns a @404 NOT_FOUND@ error. For an example, see </chat/api/guides/v1/spaces/find-direct-message Find a direct message>. With <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app app authentication>, returns the direct message space between the specified user and the calling Chat app. With <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>, returns the direct message space between the specified user and the authenticated user. \/\/ Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication>+--+-- /See:/ 'newChatSpacesFindDirectMessage' smart constructor.+data ChatSpacesFindDirectMessage = ChatSpacesFindDirectMessage+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Required. Resource name of the user to find direct message with. Format: @users\/{user}@, where @{user}@ is either the @id@ for the <https://developers.google.com/people/api/rest/v1/people person> from the People API, or the @id@ for the <https://developers.google.com/admin-sdk/directory/reference/rest/v1/users user> in the Directory API. For example, if the People API profile ID is @123456789@, you can find a direct message with that person by using @users\/123456789@ as the @name@. When <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user authenticated as a user>, you can use the email as an alias for @{user}@. For example, @users\/example\@gmail.com@ where @example\@gmail.com@ is the email of the Google Chat user.+ name :: (Core.Maybe Core.Text),+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesFindDirectMessage' with the minimum fields required to make a request.+newChatSpacesFindDirectMessage ::+ ChatSpacesFindDirectMessage+newChatSpacesFindDirectMessage =+ ChatSpacesFindDirectMessage+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ name = Core.Nothing,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesFindDirectMessage where+ type Rs ChatSpacesFindDirectMessage = Space+ type+ Scopes ChatSpacesFindDirectMessage =+ '[Chat'Bot, Chat'Spaces, Chat'Spaces'Readonly]+ requestClient ChatSpacesFindDirectMessage {..} =+ go+ xgafv+ accessToken+ callback+ name+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesFindDirectMessageResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/Get.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.Get+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns details about a space. For an example, see <https://developers.google.com/workspace/chat/get-spaces Get details about a space>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> You can authenticate and authorize this method with administrator privileges by setting the @use_admin_access@ field in the request.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.get@.+module Gogol.Chat.Spaces.Get+ ( -- * Resource+ ChatSpacesGetResource,++ -- ** Constructing a Request+ ChatSpacesGet (..),+ newChatSpacesGet,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.get@ method which the+-- 'ChatSpacesGet' request conforms to.+type ChatSpacesGetResource =+ "v1"+ Core.:> Core.Capture "name" Core.Text+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "useAdminAccess" Core.Bool+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.Get '[Core.JSON] Space++-- | Returns details about a space. For an example, see <https://developers.google.com/workspace/chat/get-spaces Get details about a space>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> You can authenticate and authorize this method with administrator privileges by setting the @use_admin_access@ field in the request.+--+-- /See:/ 'newChatSpacesGet' smart constructor.+data ChatSpacesGet = ChatSpacesGet+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Required. Resource name of the space, in the form @spaces\/{space}@. Format: @spaces\/{space}@+ name :: Core.Text,+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text),+ -- | Optional. When @true@, the method runs using the user\'s Google Workspace administrator privileges. The calling user must be a Google Workspace administrator with the <https://support.google.com/a/answer/13369245 manage chat and spaces conversations privilege>. Requires the @chat.admin.spaces@ or @chat.admin.spaces.readonly@ <https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes OAuth 2.0 scopes>.+ useAdminAccess :: (Core.Maybe Core.Bool)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesGet' with the minimum fields required to make a request.+newChatSpacesGet ::+ -- | Required. Resource name of the space, in the form @spaces\/{space}@. Format: @spaces\/{space}@ See 'name'.+ Core.Text ->+ ChatSpacesGet+newChatSpacesGet name =+ ChatSpacesGet+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ name = name,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing,+ useAdminAccess = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesGet where+ type Rs ChatSpacesGet = Space+ type+ Scopes ChatSpacesGet =+ '[ Chat'Admin'Spaces,+ Chat'Admin'Spaces'Readonly,+ Chat'App'Spaces,+ Chat'Bot,+ Chat'Spaces,+ Chat'Spaces'Readonly+ ]+ requestClient ChatSpacesGet {..} =+ go+ name+ xgafv+ accessToken+ callback+ uploadType+ uploadProtocol+ useAdminAccess+ (Core.Just Core.AltJSON)+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesGetResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/List.hs view
@@ -0,0 +1,118 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.List+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists spaces the caller is a member of. Group chats and DMs aren\'t listed until the first message is sent. For an example, see <https://developers.google.com/workspace/chat/list-spaces List spaces>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> To list all named spaces by Google Workspace organization, use the <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search spaces.search()> method using Workspace administrator privileges instead.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.list@.+module Gogol.Chat.Spaces.List+ ( -- * Resource+ ChatSpacesListResource,++ -- ** Constructing a Request+ ChatSpacesList (..),+ newChatSpacesList,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.list@ method which the+-- 'ChatSpacesList' request conforms to.+type ChatSpacesListResource =+ "v1"+ Core.:> "spaces"+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "filter" Core.Text+ Core.:> Core.QueryParam "pageSize" Core.Int32+ Core.:> Core.QueryParam "pageToken" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.Get '[Core.JSON] ListSpacesResponse++-- | Lists spaces the caller is a member of. Group chats and DMs aren\'t listed until the first message is sent. For an example, see <https://developers.google.com/workspace/chat/list-spaces List spaces>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> To list all named spaces by Google Workspace organization, use the <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search spaces.search()> method using Workspace administrator privileges instead.+--+-- /See:/ 'newChatSpacesList' smart constructor.+data ChatSpacesList = ChatSpacesList+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Optional. A query filter. You can filter spaces by the space type (<https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces#spacetype space_type>). To filter by space type, you must specify valid enum value, such as @SPACE@ or @GROUP_CHAT@ (the @space_type@ can\'t be @SPACE_TYPE_UNSPECIFIED@). To query for multiple space types, use the @OR@ operator. For example, the following queries are valid: @space_type = \"SPACE\" spaceType = \"GROUP_CHAT\" OR spaceType = \"DIRECT_MESSAGE\"@ Invalid queries are rejected by the server with an @INVALID_ARGUMENT@ error.+ filter :: (Core.Maybe Core.Text),+ -- | Optional. The maximum number of spaces to return. The service might return fewer than this value. If unspecified, at most 100 spaces are returned. The maximum value is 1000. If you use a value more than 1000, it\'s automatically changed to 1000. Negative values return an @INVALID_ARGUMENT@ error.+ pageSize :: (Core.Maybe Core.Int32),+ -- | Optional. A page token, received from a previous list spaces call. Provide this parameter to retrieve the subsequent page. When paginating, the filter value should match the call that provided the page token. Passing a different value may lead to unexpected results.+ pageToken :: (Core.Maybe Core.Text),+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesList' with the minimum fields required to make a request.+newChatSpacesList ::+ ChatSpacesList+newChatSpacesList =+ ChatSpacesList+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ filter = Core.Nothing,+ pageSize = Core.Nothing,+ pageToken = Core.Nothing,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesList where+ type Rs ChatSpacesList = ListSpacesResponse+ type+ Scopes ChatSpacesList =+ '[Chat'Bot, Chat'Spaces, Chat'Spaces'Readonly]+ requestClient ChatSpacesList {..} =+ go+ xgafv+ accessToken+ callback+ filter+ pageSize+ pageToken+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesListResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/Members/Create.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.Members.Create+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a membership for the calling Chat app, a user, or a Google Group. Creating memberships for other Chat apps isn\'t supported. When creating a membership, if the specified member has their auto-accept policy turned off, then they\'re invited, and must accept the space invitation before joining. Otherwise, creating a membership adds the member directly to the specified space. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> with <https://support.google.com/a?p=chat-app-auth administrator approval> in <https://developers.google.com/workspace/preview Developer Preview> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> You can authenticate and authorize this method with administrator privileges by setting the @use_admin_access@ field in the request. For example usage, see: -+-- <https://developers.google.com/workspace/chat/create-members#create-user-membership Invite or add a user to a space>. - <https://developers.google.com/workspace/chat/create-members#create-group-membership Invite or add a Google Group to a space>. - <https://developers.google.com/workspace/chat/create-members#create-membership-calling-api Add the Chat app to a space>.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.members.create@.+module Gogol.Chat.Spaces.Members.Create+ ( -- * Resource+ ChatSpacesMembersCreateResource,++ -- ** Constructing a Request+ ChatSpacesMembersCreate (..),+ newChatSpacesMembersCreate,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.members.create@ method which the+-- 'ChatSpacesMembersCreate' request conforms to.+type ChatSpacesMembersCreateResource =+ "v1"+ Core.:> Core.Capture "parent" Core.Text+ Core.:> "members"+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "useAdminAccess" Core.Bool+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.ReqBody '[Core.JSON] Membership+ Core.:> Core.Post '[Core.JSON] Membership++-- | Creates a membership for the calling Chat app, a user, or a Google Group. Creating memberships for other Chat apps isn\'t supported. When creating a membership, if the specified member has their auto-accept policy turned off, then they\'re invited, and must accept the space invitation before joining. Otherwise, creating a membership adds the member directly to the specified space. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> with <https://support.google.com/a?p=chat-app-auth administrator approval> in <https://developers.google.com/workspace/preview Developer Preview> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> You can authenticate and authorize this method with administrator privileges by setting the @use_admin_access@ field in the request. For example usage, see: -+-- <https://developers.google.com/workspace/chat/create-members#create-user-membership Invite or add a user to a space>. - <https://developers.google.com/workspace/chat/create-members#create-group-membership Invite or add a Google Group to a space>. - <https://developers.google.com/workspace/chat/create-members#create-membership-calling-api Add the Chat app to a space>.+--+-- /See:/ 'newChatSpacesMembersCreate' smart constructor.+data ChatSpacesMembersCreate = ChatSpacesMembersCreate+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Required. The resource name of the space for which to create the membership. Format: spaces\/{space}+ parent :: Core.Text,+ -- | Multipart request metadata.+ payload :: Membership,+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text),+ -- | Optional. When @true@, the method runs using the user\'s Google Workspace administrator privileges. The calling user must be a Google Workspace administrator with the <https://support.google.com/a/answer/13369245 manage chat and spaces conversations privilege>. Requires the @chat.admin.memberships@ <https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes OAuth 2.0 scope>. Creating app memberships or creating memberships for users outside the administrator\'s Google Workspace organization isn\'t supported using admin access.+ useAdminAccess :: (Core.Maybe Core.Bool)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesMembersCreate' with the minimum fields required to make a request.+newChatSpacesMembersCreate ::+ -- | Required. The resource name of the space for which to create the membership. Format: spaces\/{space} See 'parent'.+ Core.Text ->+ -- | Multipart request metadata. See 'payload'.+ Membership ->+ ChatSpacesMembersCreate+newChatSpacesMembersCreate parent payload =+ ChatSpacesMembersCreate+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ parent = parent,+ payload = payload,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing,+ useAdminAccess = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesMembersCreate where+ type Rs ChatSpacesMembersCreate = Membership+ type+ Scopes ChatSpacesMembersCreate =+ '[ Chat'Admin'Memberships,+ Chat'App'Memberships,+ Chat'Import,+ Chat'Memberships,+ Chat'Memberships'App+ ]+ requestClient ChatSpacesMembersCreate {..} =+ go+ parent+ xgafv+ accessToken+ callback+ uploadType+ uploadProtocol+ useAdminAccess+ (Core.Just Core.AltJSON)+ payload+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesMembersCreateResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/Members/Delete.hs view
@@ -0,0 +1,119 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.Members.Delete+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a membership. For an example, see <https://developers.google.com/workspace/chat/delete-members Remove a user or a Google Chat app from a space>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> with <https://support.google.com/a?p=chat-app-auth administrator approval> in <https://developers.google.com/workspace/preview Developer Preview> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> You can authenticate and authorize this method with administrator privileges by setting the @use_admin_access@ field in the request.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.members.delete@.+module Gogol.Chat.Spaces.Members.Delete+ ( -- * Resource+ ChatSpacesMembersDeleteResource,++ -- ** Constructing a Request+ ChatSpacesMembersDelete (..),+ newChatSpacesMembersDelete,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.members.delete@ method which the+-- 'ChatSpacesMembersDelete' request conforms to.+type ChatSpacesMembersDeleteResource =+ "v1"+ Core.:> Core.Capture "name" Core.Text+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "useAdminAccess" Core.Bool+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.Delete '[Core.JSON] Membership++-- | Deletes a membership. For an example, see <https://developers.google.com/workspace/chat/delete-members Remove a user or a Google Chat app from a space>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> with <https://support.google.com/a?p=chat-app-auth administrator approval> in <https://developers.google.com/workspace/preview Developer Preview> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> You can authenticate and authorize this method with administrator privileges by setting the @use_admin_access@ field in the request.+--+-- /See:/ 'newChatSpacesMembersDelete' smart constructor.+data ChatSpacesMembersDelete = ChatSpacesMembersDelete+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Required. Resource name of the membership to delete. Chat apps can delete human users\' or their own memberships. Chat apps can\'t delete other apps\' memberships. When deleting a human membership, requires the @chat.memberships@ scope and @spaces\/{space}\/members\/{member}@ format. You can use the email as an alias for @{member}@. For example, @spaces\/{space}\/members\/example\@gmail.com@ where @example\@gmail.com@ is the email of the Google Chat user. When deleting an app membership, requires the @chat.memberships.app@ scope and @spaces\/{space}\/members\/app@ format. Format: @spaces\/{space}\/members\/{member}@ or @spaces\/{space}\/members\/app@.+ name :: Core.Text,+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text),+ -- | Optional. When @true@, the method runs using the user\'s Google Workspace administrator privileges. The calling user must be a Google Workspace administrator with the <https://support.google.com/a/answer/13369245 manage chat and spaces conversations privilege>. Requires the @chat.admin.memberships@ <https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes OAuth 2.0 scope>. Deleting app memberships in a space isn\'t supported using admin access.+ useAdminAccess :: (Core.Maybe Core.Bool)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesMembersDelete' with the minimum fields required to make a request.+newChatSpacesMembersDelete ::+ -- | Required. Resource name of the membership to delete. Chat apps can delete human users\' or their own memberships. Chat apps can\'t delete other apps\' memberships. When deleting a human membership, requires the @chat.memberships@ scope and @spaces\/{space}\/members\/{member}@ format. You can use the email as an alias for @{member}@. For example, @spaces\/{space}\/members\/example\@gmail.com@ where @example\@gmail.com@ is the email of the Google Chat user. When deleting an app membership, requires the @chat.memberships.app@ scope and @spaces\/{space}\/members\/app@ format. Format: @spaces\/{space}\/members\/{member}@ or @spaces\/{space}\/members\/app@. See 'name'.+ Core.Text ->+ ChatSpacesMembersDelete+newChatSpacesMembersDelete name =+ ChatSpacesMembersDelete+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ name = name,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing,+ useAdminAccess = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesMembersDelete where+ type Rs ChatSpacesMembersDelete = Membership+ type+ Scopes ChatSpacesMembersDelete =+ '[ Chat'Admin'Memberships,+ Chat'App'Memberships,+ Chat'Import,+ Chat'Memberships,+ Chat'Memberships'App+ ]+ requestClient ChatSpacesMembersDelete {..} =+ go+ name+ xgafv+ accessToken+ callback+ uploadType+ uploadProtocol+ useAdminAccess+ (Core.Just Core.AltJSON)+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesMembersDeleteResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/Members/Get.hs view
@@ -0,0 +1,119 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.Members.Get+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns details about a membership. For an example, see <https://developers.google.com/workspace/chat/get-members Get details about a user\'s or Google Chat app\'s membership>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> You can authenticate and authorize this method with administrator privileges by setting the @use_admin_access@ field in the request.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.members.get@.+module Gogol.Chat.Spaces.Members.Get+ ( -- * Resource+ ChatSpacesMembersGetResource,++ -- ** Constructing a Request+ ChatSpacesMembersGet (..),+ newChatSpacesMembersGet,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.members.get@ method which the+-- 'ChatSpacesMembersGet' request conforms to.+type ChatSpacesMembersGetResource =+ "v1"+ Core.:> Core.Capture "name" Core.Text+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "useAdminAccess" Core.Bool+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.Get '[Core.JSON] Membership++-- | Returns details about a membership. For an example, see <https://developers.google.com/workspace/chat/get-members Get details about a user\'s or Google Chat app\'s membership>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> You can authenticate and authorize this method with administrator privileges by setting the @use_admin_access@ field in the request.+--+-- /See:/ 'newChatSpacesMembersGet' smart constructor.+data ChatSpacesMembersGet = ChatSpacesMembersGet+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Required. Resource name of the membership to retrieve. To get the app\'s own membership <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user by using user authentication>, you can optionally use @spaces\/{space}\/members\/app@. Format: @spaces\/{space}\/members\/{member}@ or @spaces\/{space}\/members\/app@ You can use the user\'s email as an alias for @{member}@. For example, @spaces\/{space}\/members\/example\@gmail.com@ where @example\@gmail.com@ is the email of the Google Chat user.+ name :: Core.Text,+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text),+ -- | Optional. When @true@, the method runs using the user\'s Google Workspace administrator privileges. The calling user must be a Google Workspace administrator with the <https://support.google.com/a/answer/13369245 manage chat and spaces conversations privilege>. Requires the @chat.admin.memberships@ or @chat.admin.memberships.readonly@ <https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes OAuth 2.0 scopes>. Getting app memberships in a space isn\'t supported when using admin access.+ useAdminAccess :: (Core.Maybe Core.Bool)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesMembersGet' with the minimum fields required to make a request.+newChatSpacesMembersGet ::+ -- | Required. Resource name of the membership to retrieve. To get the app\'s own membership <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user by using user authentication>, you can optionally use @spaces\/{space}\/members\/app@. Format: @spaces\/{space}\/members\/{member}@ or @spaces\/{space}\/members\/app@ You can use the user\'s email as an alias for @{member}@. For example, @spaces\/{space}\/members\/example\@gmail.com@ where @example\@gmail.com@ is the email of the Google Chat user. See 'name'.+ Core.Text ->+ ChatSpacesMembersGet+newChatSpacesMembersGet name =+ ChatSpacesMembersGet+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ name = name,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing,+ useAdminAccess = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesMembersGet where+ type Rs ChatSpacesMembersGet = Membership+ type+ Scopes ChatSpacesMembersGet =+ '[ Chat'Admin'Memberships,+ Chat'Admin'Memberships'Readonly,+ Chat'Bot,+ Chat'Memberships,+ Chat'Memberships'Readonly+ ]+ requestClient ChatSpacesMembersGet {..} =+ go+ name+ xgafv+ accessToken+ callback+ uploadType+ uploadProtocol+ useAdminAccess+ (Core.Just Core.AltJSON)+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesMembersGetResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/Members/List.hs view
@@ -0,0 +1,149 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.Members.List+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists memberships in a space. For an example, see <https://developers.google.com/workspace/chat/list-members List users and Google Chat apps in a space>. Listing memberships with <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app app authentication> lists memberships in spaces that the Chat app has access to, but excludes Chat app memberships, including its own. Listing memberships with <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> lists memberships in spaces that the authenticated user has access to. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> You can authenticate and authorize this method with administrator privileges by setting the @use_admin_access@ field+-- in the request.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.members.list@.+module Gogol.Chat.Spaces.Members.List+ ( -- * Resource+ ChatSpacesMembersListResource,++ -- ** Constructing a Request+ ChatSpacesMembersList (..),+ newChatSpacesMembersList,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.members.list@ method which the+-- 'ChatSpacesMembersList' request conforms to.+type ChatSpacesMembersListResource =+ "v1"+ Core.:> Core.Capture "parent" Core.Text+ Core.:> "members"+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "filter" Core.Text+ Core.:> Core.QueryParam "pageSize" Core.Int32+ Core.:> Core.QueryParam "pageToken" Core.Text+ Core.:> Core.QueryParam "showGroups" Core.Bool+ Core.:> Core.QueryParam "showInvited" Core.Bool+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "useAdminAccess" Core.Bool+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.Get '[Core.JSON] ListMembershipsResponse++-- | Lists memberships in a space. For an example, see <https://developers.google.com/workspace/chat/list-members List users and Google Chat apps in a space>. Listing memberships with <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app app authentication> lists memberships in spaces that the Chat app has access to, but excludes Chat app memberships, including its own. Listing memberships with <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> lists memberships in spaces that the authenticated user has access to. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> You can authenticate and authorize this method with administrator privileges by setting the @use_admin_access@ field+-- in the request.+--+-- /See:/ 'newChatSpacesMembersList' smart constructor.+data ChatSpacesMembersList = ChatSpacesMembersList+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Optional. A query filter. You can filter memberships by a member\'s role (<https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.members#membershiprole role>) and type (<https://developers.google.com/workspace/chat/api/reference/rest/v1/User#type member.type>). To filter by role, set @role@ to @ROLE_MEMBER@ or @ROLE_MANAGER@. To filter by type, set @member.type@ to @HUMAN@ or @BOT@. You can also filter for @member.type@ using the @!=@ operator. To filter by both role and type, use the @AND@ operator. To filter by either role or type, use the @OR@ operator. Either @member.type = \"HUMAN\"@ or @member.type != \"BOT\"@ is required when @use_admin_access@ is set to true. Other member type filters will be rejected. For example, the following queries are valid: @role = \"ROLE_MANAGER\" OR role = \"ROLE_MEMBER\" member.type = \"HUMAN\" AND role = \"ROLE_MANAGER\" member.type != \"BOT\"@ The following queries are invalid:+ -- @member.type = \"HUMAN\" AND member.type = \"BOT\" role = \"ROLE_MANAGER\" AND role = \"ROLE_MEMBER\"@ Invalid queries are rejected by the server with an @INVALID_ARGUMENT@ error.+ filter :: (Core.Maybe Core.Text),+ -- | Optional. The maximum number of memberships to return. The service might return fewer than this value. If unspecified, at most 100 memberships are returned. The maximum value is 1000. If you use a value more than 1000, it\'s automatically changed to 1000. Negative values return an @INVALID_ARGUMENT@ error.+ pageSize :: (Core.Maybe Core.Int32),+ -- | Optional. A page token, received from a previous call to list memberships. Provide this parameter to retrieve the subsequent page. When paginating, all other parameters provided should match the call that provided the page token. Passing different values to the other parameters might lead to unexpected results.+ pageToken :: (Core.Maybe Core.Text),+ -- | Required. The resource name of the space for which to fetch a membership list. Format: spaces\/{space}+ parent :: Core.Text,+ -- | Optional. When @true@, also returns memberships associated with a Google Group, in addition to other types of memberships. If a filter is set, Google Group memberships that don\'t match the filter criteria aren\'t returned.+ showGroups :: (Core.Maybe Core.Bool),+ -- | Optional. When @true@, also returns memberships associated with invited members, in addition to other types of memberships. If a filter is set, invited memberships that don\'t match the filter criteria aren\'t returned. Currently requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+ showInvited :: (Core.Maybe Core.Bool),+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text),+ -- | Optional. When @true@, the method runs using the user\'s Google Workspace administrator privileges. The calling user must be a Google Workspace administrator with the <https://support.google.com/a/answer/13369245 manage chat and spaces conversations privilege>. Requires either the @chat.admin.memberships.readonly@ or @chat.admin.memberships@ <https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes OAuth 2.0 scope>. Listing app memberships in a space isn\'t supported when using admin access.+ useAdminAccess :: (Core.Maybe Core.Bool)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesMembersList' with the minimum fields required to make a request.+newChatSpacesMembersList ::+ -- | Required. The resource name of the space for which to fetch a membership list. Format: spaces\/{space} See 'parent'.+ Core.Text ->+ ChatSpacesMembersList+newChatSpacesMembersList parent =+ ChatSpacesMembersList+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ filter = Core.Nothing,+ pageSize = Core.Nothing,+ pageToken = Core.Nothing,+ parent = parent,+ showGroups = Core.Nothing,+ showInvited = Core.Nothing,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing,+ useAdminAccess = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesMembersList where+ type Rs ChatSpacesMembersList = ListMembershipsResponse+ type+ Scopes ChatSpacesMembersList =+ '[ Chat'Admin'Memberships,+ Chat'Admin'Memberships'Readonly,+ Chat'Bot,+ Chat'Import,+ Chat'Memberships,+ Chat'Memberships'Readonly+ ]+ requestClient ChatSpacesMembersList {..} =+ go+ parent+ xgafv+ accessToken+ callback+ filter+ pageSize+ pageToken+ showGroups+ showInvited+ uploadType+ uploadProtocol+ useAdminAccess+ (Core.Just Core.AltJSON)+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesMembersListResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/Members/Patch.hs view
@@ -0,0 +1,130 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.Members.Patch+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a membership. For an example, see <https://developers.google.com/workspace/chat/update-members Update a user\'s membership in a space>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> with <https://support.google.com/a?p=chat-app-auth administrator approval> in <https://developers.google.com/workspace/preview Developer Preview> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> You can authenticate and authorize this method with administrator privileges by setting the @use_admin_access@ field in the request.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.members.patch@.+module Gogol.Chat.Spaces.Members.Patch+ ( -- * Resource+ ChatSpacesMembersPatchResource,++ -- ** Constructing a Request+ ChatSpacesMembersPatch (..),+ newChatSpacesMembersPatch,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.members.patch@ method which the+-- 'ChatSpacesMembersPatch' request conforms to.+type ChatSpacesMembersPatchResource =+ "v1"+ Core.:> Core.Capture "name" Core.Text+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "updateMask" Core.FieldMask+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "useAdminAccess" Core.Bool+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.ReqBody '[Core.JSON] Membership+ Core.:> Core.Patch '[Core.JSON] Membership++-- | Updates a membership. For an example, see <https://developers.google.com/workspace/chat/update-members Update a user\'s membership in a space>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> with <https://support.google.com/a?p=chat-app-auth administrator approval> in <https://developers.google.com/workspace/preview Developer Preview> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> You can authenticate and authorize this method with administrator privileges by setting the @use_admin_access@ field in the request.+--+-- /See:/ 'newChatSpacesMembersPatch' smart constructor.+data ChatSpacesMembersPatch = ChatSpacesMembersPatch+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Identifier. Resource name of the membership, assigned by the server. Format: @spaces\/{space}\/members\/{member}@+ name :: Core.Text,+ -- | Multipart request metadata.+ payload :: Membership,+ -- | Required. The field paths to update. Separate multiple values with commas or use @*@ to update all field paths. Currently supported field paths: - @role@+ updateMask :: (Core.Maybe Core.FieldMask),+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text),+ -- | Optional. When @true@, the method runs using the user\'s Google Workspace administrator privileges. The calling user must be a Google Workspace administrator with the <https://support.google.com/a/answer/13369245 manage chat and spaces conversations privilege>. Requires the @chat.admin.memberships@ <https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes OAuth 2.0 scope>.+ useAdminAccess :: (Core.Maybe Core.Bool)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesMembersPatch' with the minimum fields required to make a request.+newChatSpacesMembersPatch ::+ -- | Identifier. Resource name of the membership, assigned by the server. Format: @spaces\/{space}\/members\/{member}@ See 'name'.+ Core.Text ->+ -- | Multipart request metadata. See 'payload'.+ Membership ->+ ChatSpacesMembersPatch+newChatSpacesMembersPatch name payload =+ ChatSpacesMembersPatch+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ name = name,+ payload = payload,+ updateMask = Core.Nothing,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing,+ useAdminAccess = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesMembersPatch where+ type Rs ChatSpacesMembersPatch = Membership+ type+ Scopes ChatSpacesMembersPatch =+ '[ Chat'Admin'Memberships,+ Chat'App'Memberships,+ Chat'Import,+ Chat'Memberships+ ]+ requestClient ChatSpacesMembersPatch {..} =+ go+ name+ xgafv+ accessToken+ callback+ updateMask+ uploadType+ uploadProtocol+ useAdminAccess+ (Core.Just Core.AltJSON)+ payload+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesMembersPatchResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/Messages/Attachments/Get.hs view
@@ -0,0 +1,107 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.Messages.Attachments.Get+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the metadata of a message attachment. The attachment data is fetched using the <https://developers.google.com/workspace/chat/api/reference/rest/v1/media/download media API>. For an example, see <https://developers.google.com/workspace/chat/get-media-attachments Get metadata about a message attachment>. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app app authentication>.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.messages.attachments.get@.+module Gogol.Chat.Spaces.Messages.Attachments.Get+ ( -- * Resource+ ChatSpacesMessagesAttachmentsGetResource,++ -- ** Constructing a Request+ ChatSpacesMessagesAttachmentsGet (..),+ newChatSpacesMessagesAttachmentsGet,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.messages.attachments.get@ method which the+-- 'ChatSpacesMessagesAttachmentsGet' request conforms to.+type ChatSpacesMessagesAttachmentsGetResource =+ "v1"+ Core.:> Core.Capture "name" Core.Text+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.Get '[Core.JSON] Attachment++-- | Gets the metadata of a message attachment. The attachment data is fetched using the <https://developers.google.com/workspace/chat/api/reference/rest/v1/media/download media API>. For an example, see <https://developers.google.com/workspace/chat/get-media-attachments Get metadata about a message attachment>. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app app authentication>.+--+-- /See:/ 'newChatSpacesMessagesAttachmentsGet' smart constructor.+data ChatSpacesMessagesAttachmentsGet = ChatSpacesMessagesAttachmentsGet+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Required. Resource name of the attachment, in the form @spaces\/{space}\/messages\/{message}\/attachments\/{attachment}@.+ name :: Core.Text,+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesMessagesAttachmentsGet' with the minimum fields required to make a request.+newChatSpacesMessagesAttachmentsGet ::+ -- | Required. Resource name of the attachment, in the form @spaces\/{space}\/messages\/{message}\/attachments\/{attachment}@. See 'name'.+ Core.Text ->+ ChatSpacesMessagesAttachmentsGet+newChatSpacesMessagesAttachmentsGet name =+ ChatSpacesMessagesAttachmentsGet+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ name = name,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesMessagesAttachmentsGet where+ type Rs ChatSpacesMessagesAttachmentsGet = Attachment+ type Scopes ChatSpacesMessagesAttachmentsGet = '[Chat'Bot]+ requestClient ChatSpacesMessagesAttachmentsGet {..} =+ go+ name+ xgafv+ accessToken+ callback+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesMessagesAttachmentsGetResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/Messages/Create.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.Messages.Create+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a message in a Google Chat space. For an example, see <https://developers.google.com/workspace/chat/create-messages Send a message>. The @create()@ method requires either <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication> or <https://developers.google.com/workspace/chat/authorize-import app authentication>. Chat attributes the message sender differently depending on the type of authentication that you use in your request. The following image shows how Chat attributes a message when you use app authentication. Chat displays the Chat app as the message sender. The content of the message can contain text (@text@), cards (@cardsV2@), and accessory widgets (@accessoryWidgets@). <<https://developers.google.com/workspace/chat/images/message-app-auth.svg Message sent with app authentication>> The following image shows how Chat attributes a message when you use user authentication. Chat displays the user as the message sender and attributes the Chat app to the+-- message by displaying its name. The content of message can only contain text (@text@). <<https://developers.google.com/workspace/chat/images/message-user-auth.svg Message sent with user authentication>> The maximum message size, including the message contents, is 32,000 bytes. For <https://developers.google.com/workspace/chat/quickstart/webhooks webhook> requests, the response doesn\'t contain the full message. The response only populates the @name@ and @thread.name@ fields in addition to the information that was in the request.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.messages.create@.+module Gogol.Chat.Spaces.Messages.Create+ ( -- * Resource+ ChatSpacesMessagesCreateResource,++ -- ** Constructing a Request+ ChatSpacesMessagesCreate (..),+ newChatSpacesMessagesCreate,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.messages.create@ method which the+-- 'ChatSpacesMessagesCreate' request conforms to.+type ChatSpacesMessagesCreateResource =+ "v1"+ Core.:> Core.Capture "parent" Core.Text+ Core.:> "messages"+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "messageId" Core.Text+ Core.:> Core.QueryParam+ "messageReplyOption"+ SpacesMessagesCreateMessageReplyOption+ Core.:> Core.QueryParam "requestId" Core.Text+ Core.:> Core.QueryParam "threadKey" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.ReqBody '[Core.JSON] Message+ Core.:> Core.Post '[Core.JSON] Message++-- | Creates a message in a Google Chat space. For an example, see <https://developers.google.com/workspace/chat/create-messages Send a message>. The @create()@ method requires either <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication> or <https://developers.google.com/workspace/chat/authorize-import app authentication>. Chat attributes the message sender differently depending on the type of authentication that you use in your request. The following image shows how Chat attributes a message when you use app authentication. Chat displays the Chat app as the message sender. The content of the message can contain text (@text@), cards (@cardsV2@), and accessory widgets (@accessoryWidgets@). <<https://developers.google.com/workspace/chat/images/message-app-auth.svg Message sent with app authentication>> The following image shows how Chat attributes a message when you use user authentication. Chat displays the user as the message sender and attributes the Chat app to the+-- message by displaying its name. The content of message can only contain text (@text@). <<https://developers.google.com/workspace/chat/images/message-user-auth.svg Message sent with user authentication>> The maximum message size, including the message contents, is 32,000 bytes. For <https://developers.google.com/workspace/chat/quickstart/webhooks webhook> requests, the response doesn\'t contain the full message. The response only populates the @name@ and @thread.name@ fields in addition to the information that was in the request.+--+-- /See:/ 'newChatSpacesMessagesCreate' smart constructor.+data ChatSpacesMessagesCreate = ChatSpacesMessagesCreate+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Optional. A custom ID for a message. Lets Chat apps get, update, or delete a message without needing to store the system-assigned ID in the message\'s resource name (represented in the message @name@ field). The value for this field must meet the following requirements: * Begins with @client-@. For example, @client-custom-name@ is a valid custom ID, but @custom-name@ is not. * Contains up to 63 characters and only lowercase letters, numbers, and hyphens. * Is unique within a space. A Chat app can\'t use the same custom ID for different messages. For details, see <https://developers.google.com/workspace/chat/create-messages#name_a_created_message Name a message>.+ messageId :: (Core.Maybe Core.Text),+ -- | Optional. Specifies whether a message starts a thread or replies to one. Only supported in named spaces. When <https://developers.google.com/workspace/chat/receive-respond-interactions responding to user interactions>, this field is ignored. For interactions within a thread, the reply is created in the same thread. Otherwise, the reply is created as a new thread.+ messageReplyOption :: (Core.Maybe SpacesMessagesCreateMessageReplyOption),+ -- | Required. The resource name of the space in which to create a message. Format: @spaces\/{space}@+ parent :: Core.Text,+ -- | Multipart request metadata.+ payload :: Message,+ -- | Optional. A unique request ID for this message. Specifying an existing request ID returns the message created with that ID instead of creating a new message.+ requestId :: (Core.Maybe Core.Text),+ -- | Optional. Deprecated: Use thread.thread_key instead. ID for the thread. Supports up to 4000 characters. To start or add to a thread, create a message and specify a @threadKey@ or the thread.name. For example usage, see <https://developers.google.com/workspace/chat/create-messages#create-message-thread Start or reply to a message thread>.+ threadKey :: (Core.Maybe Core.Text),+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesMessagesCreate' with the minimum fields required to make a request.+newChatSpacesMessagesCreate ::+ -- | Required. The resource name of the space in which to create a message. Format: @spaces\/{space}@ See 'parent'.+ Core.Text ->+ -- | Multipart request metadata. See 'payload'.+ Message ->+ ChatSpacesMessagesCreate+newChatSpacesMessagesCreate parent payload =+ ChatSpacesMessagesCreate+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ messageId = Core.Nothing,+ messageReplyOption = Core.Nothing,+ parent = parent,+ payload = payload,+ requestId = Core.Nothing,+ threadKey = Core.Nothing,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesMessagesCreate where+ type Rs ChatSpacesMessagesCreate = Message+ type+ Scopes ChatSpacesMessagesCreate =+ '[Chat'Bot, Chat'Import, Chat'Messages, Chat'Messages'Create]+ requestClient ChatSpacesMessagesCreate {..} =+ go+ parent+ xgafv+ accessToken+ callback+ messageId+ messageReplyOption+ requestId+ threadKey+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ payload+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesMessagesCreateResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/Messages/Delete.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.Messages.Delete+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a message. For an example, see <https://developers.google.com/workspace/chat/delete-messages Delete a message>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> When using app authentication, requests can only delete messages created by the calling Chat app.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.messages.delete@.+module Gogol.Chat.Spaces.Messages.Delete+ ( -- * Resource+ ChatSpacesMessagesDeleteResource,++ -- ** Constructing a Request+ ChatSpacesMessagesDelete (..),+ newChatSpacesMessagesDelete,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.messages.delete@ method which the+-- 'ChatSpacesMessagesDelete' request conforms to.+type ChatSpacesMessagesDeleteResource =+ "v1"+ Core.:> Core.Capture "name" Core.Text+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "force" Core.Bool+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.Delete '[Core.JSON] Empty++-- | Deletes a message. For an example, see <https://developers.google.com/workspace/chat/delete-messages Delete a message>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> When using app authentication, requests can only delete messages created by the calling Chat app.+--+-- /See:/ 'newChatSpacesMessagesDelete' smart constructor.+data ChatSpacesMessagesDelete = ChatSpacesMessagesDelete+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Optional. When @true@, deleting a message also deletes its threaded replies. When @false@, if a message has threaded replies, deletion fails. Only applies when <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user authenticating as a user>. Has no effect when [authenticating as a Chat app] (https:\/\/developers.google.com\/workspace\/chat\/authenticate-authorize-chat-app).+ force :: (Core.Maybe Core.Bool),+ -- | Required. Resource name of the message. Format: @spaces\/{space}\/messages\/{message}@ If you\'ve set a custom ID for your message, you can use the value from the @clientAssignedMessageId@ field for @{message}@. For details, see [Name a message] (https:\/\/developers.google.com\/workspace\/chat\/create-messages#name/a/created_message).+ name :: Core.Text,+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesMessagesDelete' with the minimum fields required to make a request.+newChatSpacesMessagesDelete ::+ -- | Required. Resource name of the message. Format: @spaces\/{space}\/messages\/{message}@ If you\'ve set a custom ID for your message, you can use the value from the @clientAssignedMessageId@ field for @{message}@. For details, see [Name a message] (https:\/\/developers.google.com\/workspace\/chat\/create-messages#name/a/created_message). See 'name'.+ Core.Text ->+ ChatSpacesMessagesDelete+newChatSpacesMessagesDelete name =+ ChatSpacesMessagesDelete+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ force = Core.Nothing,+ name = name,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesMessagesDelete where+ type Rs ChatSpacesMessagesDelete = Empty+ type+ Scopes ChatSpacesMessagesDelete =+ '[Chat'Bot, Chat'Import, Chat'Messages]+ requestClient ChatSpacesMessagesDelete {..} =+ go+ name+ xgafv+ accessToken+ callback+ force+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesMessagesDeleteResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/Messages/Get.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.Messages.Get+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns details about a message. For an example, see <https://developers.google.com/workspace/chat/get-messages Get details about a message>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> Note: Might return a message from a blocked member or space.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.messages.get@.+module Gogol.Chat.Spaces.Messages.Get+ ( -- * Resource+ ChatSpacesMessagesGetResource,++ -- ** Constructing a Request+ ChatSpacesMessagesGet (..),+ newChatSpacesMessagesGet,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.messages.get@ method which the+-- 'ChatSpacesMessagesGet' request conforms to.+type ChatSpacesMessagesGetResource =+ "v1"+ Core.:> Core.Capture "name" Core.Text+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.Get '[Core.JSON] Message++-- | Returns details about a message. For an example, see <https://developers.google.com/workspace/chat/get-messages Get details about a message>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> Note: Might return a message from a blocked member or space.+--+-- /See:/ 'newChatSpacesMessagesGet' smart constructor.+data ChatSpacesMessagesGet = ChatSpacesMessagesGet+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Required. Resource name of the message. Format: @spaces\/{space}\/messages\/{message}@ If you\'ve set a custom ID for your message, you can use the value from the @clientAssignedMessageId@ field for @{message}@. For details, see [Name a message] (https:\/\/developers.google.com\/workspace\/chat\/create-messages#name/a/created_message).+ name :: Core.Text,+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesMessagesGet' with the minimum fields required to make a request.+newChatSpacesMessagesGet ::+ -- | Required. Resource name of the message. Format: @spaces\/{space}\/messages\/{message}@ If you\'ve set a custom ID for your message, you can use the value from the @clientAssignedMessageId@ field for @{message}@. For details, see [Name a message] (https:\/\/developers.google.com\/workspace\/chat\/create-messages#name/a/created_message). See 'name'.+ Core.Text ->+ ChatSpacesMessagesGet+newChatSpacesMessagesGet name =+ ChatSpacesMessagesGet+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ name = name,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesMessagesGet where+ type Rs ChatSpacesMessagesGet = Message+ type+ Scopes ChatSpacesMessagesGet =+ '[Chat'Bot, Chat'Messages, Chat'Messages'Readonly]+ requestClient ChatSpacesMessagesGet {..} =+ go+ name+ xgafv+ accessToken+ callback+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesMessagesGetResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/Messages/List.hs view
@@ -0,0 +1,136 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.Messages.List+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists messages in a space that the caller is a member of, including messages from blocked members and spaces. If you list messages from a space with no messages, the response is an empty object. When using a REST\/HTTP interface, the response contains an empty JSON object, @{}@. For an example, see <https://developers.google.com/workspace/chat/api/guides/v1/messages/list List messages>. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.messages.list@.+module Gogol.Chat.Spaces.Messages.List+ ( -- * Resource+ ChatSpacesMessagesListResource,++ -- ** Constructing a Request+ ChatSpacesMessagesList (..),+ newChatSpacesMessagesList,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.messages.list@ method which the+-- 'ChatSpacesMessagesList' request conforms to.+type ChatSpacesMessagesListResource =+ "v1"+ Core.:> Core.Capture "parent" Core.Text+ Core.:> "messages"+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "filter" Core.Text+ Core.:> Core.QueryParam "orderBy" Core.Text+ Core.:> Core.QueryParam "pageSize" Core.Int32+ Core.:> Core.QueryParam "pageToken" Core.Text+ Core.:> Core.QueryParam "showDeleted" Core.Bool+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.Get '[Core.JSON] ListMessagesResponse++-- | Lists messages in a space that the caller is a member of, including messages from blocked members and spaces. If you list messages from a space with no messages, the response is an empty object. When using a REST\/HTTP interface, the response contains an empty JSON object, @{}@. For an example, see <https://developers.google.com/workspace/chat/api/guides/v1/messages/list List messages>. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+--+-- /See:/ 'newChatSpacesMessagesList' smart constructor.+data ChatSpacesMessagesList = ChatSpacesMessagesList+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Optional. A query filter. You can filter messages by date (@create_time@) and thread (@thread.name@). To filter messages by the date they were created, specify the @create_time@ with a timestamp in <https://www.rfc-editor.org/rfc/rfc3339 RFC-3339> format and double quotation marks. For example, @\"2023-04-21T11:30:00-04:00\"@. You can use the greater than operator @>@ to list messages that were created after a timestamp, or the less than operator @\<@ to list messages that were created before a timestamp. To filter messages within a time interval, use the @AND@ operator between two timestamps. To filter by thread, specify the @thread.name@, formatted as @spaces\/{space}\/threads\/{thread}@. You can only specify one @thread.name@ per query. To filter by both thread and date, use the @AND@ operator in your query. For example, the following queries are valid:+ -- @create_time > \"2012-04-21T11:30:00-04:00\" create_time > \"2012-04-21T11:30:00-04:00\" AND thread.name = spaces\/AAAAAAAAAAA\/threads\/123 create_time > \"2012-04-21T11:30:00+00:00\" AND create_time \< \"2013-01-01T00:00:00+00:00\" AND thread.name = spaces\/AAAAAAAAAAA\/threads\/123 thread.name = spaces\/AAAAAAAAAAA\/threads\/123@ Invalid queries are rejected by the server with an @INVALID_ARGUMENT@ error.+ filter :: (Core.Maybe Core.Text),+ -- | Optional. How the list of messages is ordered. Specify a value to order by an ordering operation. Valid ordering operation values are as follows: - @ASC@ for ascending. - @DESC@ for descending. The default ordering is @create_time ASC@.+ orderBy :: (Core.Maybe Core.Text),+ -- | Optional. The maximum number of messages returned. The service might return fewer messages than this value. If unspecified, at most 25 are returned. The maximum value is 1000. If you use a value more than 1000, it\'s automatically changed to 1000. Negative values return an @INVALID_ARGUMENT@ error.+ pageSize :: (Core.Maybe Core.Int32),+ -- | Optional. A page token received from a previous list messages call. Provide this parameter to retrieve the subsequent page. When paginating, all other parameters provided should match the call that provided the page token. Passing different values to the other parameters might lead to unexpected results.+ pageToken :: (Core.Maybe Core.Text),+ -- | Required. The resource name of the space to list messages from. Format: @spaces\/{space}@+ parent :: Core.Text,+ -- | Optional. Whether to include deleted messages. Deleted messages include deleted time and metadata about their deletion, but message content is unavailable.+ showDeleted :: (Core.Maybe Core.Bool),+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesMessagesList' with the minimum fields required to make a request.+newChatSpacesMessagesList ::+ -- | Required. The resource name of the space to list messages from. Format: @spaces\/{space}@ See 'parent'.+ Core.Text ->+ ChatSpacesMessagesList+newChatSpacesMessagesList parent =+ ChatSpacesMessagesList+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ filter = Core.Nothing,+ orderBy = Core.Nothing,+ pageSize = Core.Nothing,+ pageToken = Core.Nothing,+ parent = parent,+ showDeleted = Core.Nothing,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesMessagesList where+ type Rs ChatSpacesMessagesList = ListMessagesResponse+ type+ Scopes ChatSpacesMessagesList =+ '[Chat'Import, Chat'Messages, Chat'Messages'Readonly]+ requestClient ChatSpacesMessagesList {..} =+ go+ parent+ xgafv+ accessToken+ callback+ filter+ orderBy+ pageSize+ pageToken+ showDeleted+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesMessagesListResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/Messages/Patch.hs view
@@ -0,0 +1,126 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.Messages.Patch+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a message. There\'s a difference between the @patch@ and @update@ methods. The @patch@ method uses a @patch@ request while the @update@ method uses a @put@ request. We recommend using the @patch@ method. For an example, see <https://developers.google.com/workspace/chat/update-messages Update a message>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> When using app authentication, requests can only update messages created by the calling Chat app.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.messages.patch@.+module Gogol.Chat.Spaces.Messages.Patch+ ( -- * Resource+ ChatSpacesMessagesPatchResource,++ -- ** Constructing a Request+ ChatSpacesMessagesPatch (..),+ newChatSpacesMessagesPatch,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.messages.patch@ method which the+-- 'ChatSpacesMessagesPatch' request conforms to.+type ChatSpacesMessagesPatchResource =+ "v1"+ Core.:> Core.Capture "name" Core.Text+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "allowMissing" Core.Bool+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "updateMask" Core.FieldMask+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.ReqBody '[Core.JSON] Message+ Core.:> Core.Patch '[Core.JSON] Message++-- | Updates a message. There\'s a difference between the @patch@ and @update@ methods. The @patch@ method uses a @patch@ request while the @update@ method uses a @put@ request. We recommend using the @patch@ method. For an example, see <https://developers.google.com/workspace/chat/update-messages Update a message>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> When using app authentication, requests can only update messages created by the calling Chat app.+--+-- /See:/ 'newChatSpacesMessagesPatch' smart constructor.+data ChatSpacesMessagesPatch = ChatSpacesMessagesPatch+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | Optional. If @true@ and the message isn\'t found, a new message is created and @updateMask@ is ignored. The specified message ID must be <https://developers.google.com/workspace/chat/create-messages#name_a_created_message client-assigned> or the request fails.+ allowMissing :: (Core.Maybe Core.Bool),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Identifier. Resource name of the message. Format: @spaces\/{space}\/messages\/{message}@ Where @{space}@ is the ID of the space where the message is posted and @{message}@ is a system-assigned ID for the message. For example, @spaces\/AAAAAAAAAAA\/messages\/BBBBBBBBBBB.BBBBBBBBBBB@. If you set a custom ID when you create a message, you can use this ID to specify the message in a request by replacing @{message}@ with the value from the @clientAssignedMessageId@ field. For example, @spaces\/AAAAAAAAAAA\/messages\/client-custom-name@. For details, see <https://developers.google.com/workspace/chat/create-messages#name_a_created_message Name a message>.+ name :: Core.Text,+ -- | Multipart request metadata.+ payload :: Message,+ -- | Required. The field paths to update. Separate multiple values with commas or use @*@ to update all field paths. Currently supported field paths: - @text@ - @attachment@ - @cards@ (Requires </chat/api/guides/auth/service-accounts app authentication>.) - @cards_v2@ (Requires </chat/api/guides/auth/service-accounts app authentication>.) - @accessory_widgets@ (Requires </chat/api/guides/auth/service-accounts app authentication>.)+ updateMask :: (Core.Maybe Core.FieldMask),+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesMessagesPatch' with the minimum fields required to make a request.+newChatSpacesMessagesPatch ::+ -- | Identifier. Resource name of the message. Format: @spaces\/{space}\/messages\/{message}@ Where @{space}@ is the ID of the space where the message is posted and @{message}@ is a system-assigned ID for the message. For example, @spaces\/AAAAAAAAAAA\/messages\/BBBBBBBBBBB.BBBBBBBBBBB@. If you set a custom ID when you create a message, you can use this ID to specify the message in a request by replacing @{message}@ with the value from the @clientAssignedMessageId@ field. For example, @spaces\/AAAAAAAAAAA\/messages\/client-custom-name@. For details, see <https://developers.google.com/workspace/chat/create-messages#name_a_created_message Name a message>. See 'name'.+ Core.Text ->+ -- | Multipart request metadata. See 'payload'.+ Message ->+ ChatSpacesMessagesPatch+newChatSpacesMessagesPatch name payload =+ ChatSpacesMessagesPatch+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ allowMissing = Core.Nothing,+ callback = Core.Nothing,+ name = name,+ payload = payload,+ updateMask = Core.Nothing,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesMessagesPatch where+ type Rs ChatSpacesMessagesPatch = Message+ type+ Scopes ChatSpacesMessagesPatch =+ '[Chat'Bot, Chat'Import, Chat'Messages]+ requestClient ChatSpacesMessagesPatch {..} =+ go+ name+ xgafv+ accessToken+ allowMissing+ callback+ updateMask+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ payload+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesMessagesPatchResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/Messages/Reactions/Create.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.Messages.Reactions.Create+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a reaction and adds it to a message. For an example, see <https://developers.google.com/workspace/chat/create-reactions Add a reaction to a message>. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.messages.reactions.create@.+module Gogol.Chat.Spaces.Messages.Reactions.Create+ ( -- * Resource+ ChatSpacesMessagesReactionsCreateResource,++ -- ** Constructing a Request+ ChatSpacesMessagesReactionsCreate (..),+ newChatSpacesMessagesReactionsCreate,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.messages.reactions.create@ method which the+-- 'ChatSpacesMessagesReactionsCreate' request conforms to.+type ChatSpacesMessagesReactionsCreateResource =+ "v1"+ Core.:> Core.Capture "parent" Core.Text+ Core.:> "reactions"+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.ReqBody '[Core.JSON] Reaction+ Core.:> Core.Post '[Core.JSON] Reaction++-- | Creates a reaction and adds it to a message. For an example, see <https://developers.google.com/workspace/chat/create-reactions Add a reaction to a message>. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+--+-- /See:/ 'newChatSpacesMessagesReactionsCreate' smart constructor.+data ChatSpacesMessagesReactionsCreate = ChatSpacesMessagesReactionsCreate+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Required. The message where the reaction is created. Format: @spaces\/{space}\/messages\/{message}@+ parent :: Core.Text,+ -- | Multipart request metadata.+ payload :: Reaction,+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesMessagesReactionsCreate' with the minimum fields required to make a request.+newChatSpacesMessagesReactionsCreate ::+ -- | Required. The message where the reaction is created. Format: @spaces\/{space}\/messages\/{message}@ See 'parent'.+ Core.Text ->+ -- | Multipart request metadata. See 'payload'.+ Reaction ->+ ChatSpacesMessagesReactionsCreate+newChatSpacesMessagesReactionsCreate parent payload =+ ChatSpacesMessagesReactionsCreate+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ parent = parent,+ payload = payload,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesMessagesReactionsCreate where+ type Rs ChatSpacesMessagesReactionsCreate = Reaction+ type+ Scopes ChatSpacesMessagesReactionsCreate =+ '[ Chat'Import,+ Chat'Messages,+ Chat'Messages'Reactions,+ Chat'Messages'Reactions'Create+ ]+ requestClient ChatSpacesMessagesReactionsCreate {..} =+ go+ parent+ xgafv+ accessToken+ callback+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ payload+ chatService+ where+ go =+ Core.buildClient+ ( Core.Proxy ::+ Core.Proxy ChatSpacesMessagesReactionsCreateResource+ )+ Core.mempty
+ gen/Gogol/Chat/Spaces/Messages/Reactions/Delete.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.Messages.Reactions.Delete+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a reaction to a message. For an example, see <https://developers.google.com/workspace/chat/delete-reactions Delete a reaction>. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.messages.reactions.delete@.+module Gogol.Chat.Spaces.Messages.Reactions.Delete+ ( -- * Resource+ ChatSpacesMessagesReactionsDeleteResource,++ -- ** Constructing a Request+ ChatSpacesMessagesReactionsDelete (..),+ newChatSpacesMessagesReactionsDelete,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.messages.reactions.delete@ method which the+-- 'ChatSpacesMessagesReactionsDelete' request conforms to.+type ChatSpacesMessagesReactionsDeleteResource =+ "v1"+ Core.:> Core.Capture "name" Core.Text+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.Delete '[Core.JSON] Empty++-- | Deletes a reaction to a message. For an example, see <https://developers.google.com/workspace/chat/delete-reactions Delete a reaction>. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+--+-- /See:/ 'newChatSpacesMessagesReactionsDelete' smart constructor.+data ChatSpacesMessagesReactionsDelete = ChatSpacesMessagesReactionsDelete+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Required. Name of the reaction to delete. Format: @spaces\/{space}\/messages\/{message}\/reactions\/{reaction}@+ name :: Core.Text,+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesMessagesReactionsDelete' with the minimum fields required to make a request.+newChatSpacesMessagesReactionsDelete ::+ -- | Required. Name of the reaction to delete. Format: @spaces\/{space}\/messages\/{message}\/reactions\/{reaction}@ See 'name'.+ Core.Text ->+ ChatSpacesMessagesReactionsDelete+newChatSpacesMessagesReactionsDelete name =+ ChatSpacesMessagesReactionsDelete+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ name = name,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesMessagesReactionsDelete where+ type Rs ChatSpacesMessagesReactionsDelete = Empty+ type+ Scopes ChatSpacesMessagesReactionsDelete =+ '[Chat'Import, Chat'Messages, Chat'Messages'Reactions]+ requestClient ChatSpacesMessagesReactionsDelete {..} =+ go+ name+ xgafv+ accessToken+ callback+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ chatService+ where+ go =+ Core.buildClient+ ( Core.Proxy ::+ Core.Proxy ChatSpacesMessagesReactionsDeleteResource+ )+ Core.mempty
+ gen/Gogol/Chat/Spaces/Messages/Reactions/List.hs view
@@ -0,0 +1,130 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.Messages.Reactions.List+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists reactions to a message. For an example, see <https://developers.google.com/workspace/chat/list-reactions List reactions for a message>. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.messages.reactions.list@.+module Gogol.Chat.Spaces.Messages.Reactions.List+ ( -- * Resource+ ChatSpacesMessagesReactionsListResource,++ -- ** Constructing a Request+ ChatSpacesMessagesReactionsList (..),+ newChatSpacesMessagesReactionsList,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.messages.reactions.list@ method which the+-- 'ChatSpacesMessagesReactionsList' request conforms to.+type ChatSpacesMessagesReactionsListResource =+ "v1"+ Core.:> Core.Capture "parent" Core.Text+ Core.:> "reactions"+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "filter" Core.Text+ Core.:> Core.QueryParam "pageSize" Core.Int32+ Core.:> Core.QueryParam "pageToken" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.Get '[Core.JSON] ListReactionsResponse++-- | Lists reactions to a message. For an example, see <https://developers.google.com/workspace/chat/list-reactions List reactions for a message>. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+--+-- /See:/ 'newChatSpacesMessagesReactionsList' smart constructor.+data ChatSpacesMessagesReactionsList = ChatSpacesMessagesReactionsList+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Optional. A query filter. You can filter reactions by <https://developers.google.com/workspace/chat/api/reference/rest/v1/Emoji emoji> (either @emoji.unicode@ or @emoji.custom_emoji.uid@) and <https://developers.google.com/workspace/chat/api/reference/rest/v1/User user> (@user.name@). To filter reactions for multiple emojis or users, join similar fields with the @OR@ operator, such as @emoji.unicode = \"🙂\" OR emoji.unicode = \"👍\"@ and @user.name = \"users\/AAAAAA\" OR user.name = \"users\/BBBBBB\"@. To filter reactions by emoji and user, use the @AND@ operator, such as @emoji.unicode = \"🙂\" AND user.name = \"users\/AAAAAA\"@. If your query uses both @AND@ and @OR@, group them with parentheses. For example, the following queries are valid:+ -- @user.name = \"users\/{user}\" emoji.unicode = \"🙂\" emoji.custom_emoji.uid = \"{uid}\" emoji.unicode = \"🙂\" OR emoji.unicode = \"👍\" emoji.unicode = \"🙂\" OR emoji.custom_emoji.uid = \"{uid}\" emoji.unicode = \"🙂\" AND user.name = \"users\/{user}\" (emoji.unicode = \"🙂\" OR emoji.custom_emoji.uid = \"{uid}\") AND user.name = \"users\/{user}\"@ The following queries are invalid: @emoji.unicode = \"🙂\" AND emoji.unicode = \"👍\" emoji.unicode = \"🙂\" AND emoji.custom_emoji.uid = \"{uid}\" emoji.unicode = \"🙂\" OR user.name = \"users\/{user}\" emoji.unicode = \"🙂\" OR emoji.custom_emoji.uid = \"{uid}\" OR user.name = \"users\/{user}\" emoji.unicode = \"🙂\" OR emoji.custom_emoji.uid = \"{uid}\" AND user.name = \"users\/{user}\"@ Invalid queries are rejected by the server with an @INVALID_ARGUMENT@ error.+ filter :: (Core.Maybe Core.Text),+ -- | Optional. The maximum number of reactions returned. The service can return fewer reactions than this value. If unspecified, the default value is 25. The maximum value is 200; values above 200 are changed to 200.+ pageSize :: (Core.Maybe Core.Int32),+ -- | Optional. (If resuming from a previous query.) A page token received from a previous list reactions call. Provide this to retrieve the subsequent page. When paginating, the filter value should match the call that provided the page token. Passing a different value might lead to unexpected results.+ pageToken :: (Core.Maybe Core.Text),+ -- | Required. The message users reacted to. Format: @spaces\/{space}\/messages\/{message}@+ parent :: Core.Text,+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesMessagesReactionsList' with the minimum fields required to make a request.+newChatSpacesMessagesReactionsList ::+ -- | Required. The message users reacted to. Format: @spaces\/{space}\/messages\/{message}@ See 'parent'.+ Core.Text ->+ ChatSpacesMessagesReactionsList+newChatSpacesMessagesReactionsList parent =+ ChatSpacesMessagesReactionsList+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ filter = Core.Nothing,+ pageSize = Core.Nothing,+ pageToken = Core.Nothing,+ parent = parent,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesMessagesReactionsList where+ type Rs ChatSpacesMessagesReactionsList = ListReactionsResponse+ type+ Scopes ChatSpacesMessagesReactionsList =+ '[ Chat'Messages,+ Chat'Messages'Reactions,+ Chat'Messages'Reactions'Readonly,+ Chat'Messages'Readonly+ ]+ requestClient ChatSpacesMessagesReactionsList {..} =+ go+ parent+ xgafv+ accessToken+ callback+ filter+ pageSize+ pageToken+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesMessagesReactionsListResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/Messages/Update.hs view
@@ -0,0 +1,126 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.Messages.Update+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a message. There\'s a difference between the @patch@ and @update@ methods. The @patch@ method uses a @patch@ request while the @update@ method uses a @put@ request. We recommend using the @patch@ method. For an example, see <https://developers.google.com/workspace/chat/update-messages Update a message>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> When using app authentication, requests can only update messages created by the calling Chat app.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.messages.update@.+module Gogol.Chat.Spaces.Messages.Update+ ( -- * Resource+ ChatSpacesMessagesUpdateResource,++ -- ** Constructing a Request+ ChatSpacesMessagesUpdate (..),+ newChatSpacesMessagesUpdate,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.messages.update@ method which the+-- 'ChatSpacesMessagesUpdate' request conforms to.+type ChatSpacesMessagesUpdateResource =+ "v1"+ Core.:> Core.Capture "name" Core.Text+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "allowMissing" Core.Bool+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "updateMask" Core.FieldMask+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.ReqBody '[Core.JSON] Message+ Core.:> Core.Put '[Core.JSON] Message++-- | Updates a message. There\'s a difference between the @patch@ and @update@ methods. The @patch@ method uses a @patch@ request while the @update@ method uses a @put@ request. We recommend using the @patch@ method. For an example, see <https://developers.google.com/workspace/chat/update-messages Update a message>. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> When using app authentication, requests can only update messages created by the calling Chat app.+--+-- /See:/ 'newChatSpacesMessagesUpdate' smart constructor.+data ChatSpacesMessagesUpdate = ChatSpacesMessagesUpdate+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | Optional. If @true@ and the message isn\'t found, a new message is created and @updateMask@ is ignored. The specified message ID must be <https://developers.google.com/workspace/chat/create-messages#name_a_created_message client-assigned> or the request fails.+ allowMissing :: (Core.Maybe Core.Bool),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Identifier. Resource name of the message. Format: @spaces\/{space}\/messages\/{message}@ Where @{space}@ is the ID of the space where the message is posted and @{message}@ is a system-assigned ID for the message. For example, @spaces\/AAAAAAAAAAA\/messages\/BBBBBBBBBBB.BBBBBBBBBBB@. If you set a custom ID when you create a message, you can use this ID to specify the message in a request by replacing @{message}@ with the value from the @clientAssignedMessageId@ field. For example, @spaces\/AAAAAAAAAAA\/messages\/client-custom-name@. For details, see <https://developers.google.com/workspace/chat/create-messages#name_a_created_message Name a message>.+ name :: Core.Text,+ -- | Multipart request metadata.+ payload :: Message,+ -- | Required. The field paths to update. Separate multiple values with commas or use @*@ to update all field paths. Currently supported field paths: - @text@ - @attachment@ - @cards@ (Requires </chat/api/guides/auth/service-accounts app authentication>.) - @cards_v2@ (Requires </chat/api/guides/auth/service-accounts app authentication>.) - @accessory_widgets@ (Requires </chat/api/guides/auth/service-accounts app authentication>.)+ updateMask :: (Core.Maybe Core.FieldMask),+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesMessagesUpdate' with the minimum fields required to make a request.+newChatSpacesMessagesUpdate ::+ -- | Identifier. Resource name of the message. Format: @spaces\/{space}\/messages\/{message}@ Where @{space}@ is the ID of the space where the message is posted and @{message}@ is a system-assigned ID for the message. For example, @spaces\/AAAAAAAAAAA\/messages\/BBBBBBBBBBB.BBBBBBBBBBB@. If you set a custom ID when you create a message, you can use this ID to specify the message in a request by replacing @{message}@ with the value from the @clientAssignedMessageId@ field. For example, @spaces\/AAAAAAAAAAA\/messages\/client-custom-name@. For details, see <https://developers.google.com/workspace/chat/create-messages#name_a_created_message Name a message>. See 'name'.+ Core.Text ->+ -- | Multipart request metadata. See 'payload'.+ Message ->+ ChatSpacesMessagesUpdate+newChatSpacesMessagesUpdate name payload =+ ChatSpacesMessagesUpdate+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ allowMissing = Core.Nothing,+ callback = Core.Nothing,+ name = name,+ payload = payload,+ updateMask = Core.Nothing,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesMessagesUpdate where+ type Rs ChatSpacesMessagesUpdate = Message+ type+ Scopes ChatSpacesMessagesUpdate =+ '[Chat'Bot, Chat'Import, Chat'Messages]+ requestClient ChatSpacesMessagesUpdate {..} =+ go+ name+ xgafv+ accessToken+ allowMissing+ callback+ updateMask+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ payload+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesMessagesUpdateResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/Patch.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.Patch+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a space. For an example, see <https://developers.google.com/workspace/chat/update-spaces Update a space>. If you\'re updating the @displayName@ field and receive the error message @ALREADY_EXISTS@, try a different display name.. An existing space within the Google Workspace organization might already use this display name. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> with <https://support.google.com/a?p=chat-app-auth administrator approval> in <https://developers.google.com/workspace/preview Developer Preview> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> You can authenticate and authorize this method with administrator privileges by setting the @use_admin_access@ field in the request.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.patch@.+module Gogol.Chat.Spaces.Patch+ ( -- * Resource+ ChatSpacesPatchResource,++ -- ** Constructing a Request+ ChatSpacesPatch (..),+ newChatSpacesPatch,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.patch@ method which the+-- 'ChatSpacesPatch' request conforms to.+type ChatSpacesPatchResource =+ "v1"+ Core.:> Core.Capture "name" Core.Text+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "updateMask" Core.FieldMask+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "useAdminAccess" Core.Bool+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.ReqBody '[Core.JSON] Space+ Core.:> Core.Patch '[Core.JSON] Space++-- | Updates a space. For an example, see <https://developers.google.com/workspace/chat/update-spaces Update a space>. If you\'re updating the @displayName@ field and receive the error message @ALREADY_EXISTS@, try a different display name.. An existing space within the Google Workspace organization might already use this display name. Supports the following types of <https://developers.google.com/workspace/chat/authenticate-authorize authentication>: - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-app App authentication> with <https://support.google.com/a?p=chat-app-auth administrator approval> in <https://developers.google.com/workspace/preview Developer Preview> - <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user User authentication> You can authenticate and authorize this method with administrator privileges by setting the @use_admin_access@ field in the request.+--+-- /See:/ 'newChatSpacesPatch' smart constructor.+data ChatSpacesPatch = ChatSpacesPatch+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Identifier. Resource name of the space. Format: @spaces\/{space}@ Where @{space}@ represents the system-assigned ID for the space. You can obtain the space ID by calling the <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/list spaces.list()> method or from the space URL. For example, if the space URL is @https:\/\/mail.google.com\/mail\/u\/0\/#chat\/space\/AAAAAAAAA@, the space ID is @AAAAAAAAA@.+ name :: Core.Text,+ -- | Multipart request metadata.+ payload :: Space,+ -- | Required. The updated field paths, comma separated if there are multiple. You can update the following fields for a space: @space_details@: Updates the space\'s description. Supports up to 150 characters. @display_name@: Only supports updating the display name for spaces where @spaceType@ field is @SPACE@. If you receive the error message @ALREADY_EXISTS@, try a different value. An existing space within the Google Workspace organization might already use this display name. @space_type@: Only supports changing a @GROUP_CHAT@ space type to @SPACE@. Include @display_name@ together with @space_type@ in the update mask and ensure that the specified space has a non-empty display name and the @SPACE@ space type. Including the @space_type@ mask and the @SPACE@ type in the specified space when updating the display name is optional if the existing space already has the @SPACE@ type. Trying to update the space type in other ways results in an invalid argument error. @space_type@ is not supported with @useAdminAccess@.+ -- @space_history_state@: Updates <https://support.google.com/chat/answer/7664687 space history settings> by turning history on or off for the space. Only supported if history settings are enabled for the Google Workspace organization. To update the space history state, you must omit all other field masks in your request. @space_history_state@ is not supported with @useAdminAccess@. @access_settings.audience@: Updates the <https://support.google.com/chat/answer/11971020 access setting> of who can discover the space, join the space, and preview the messages in named space where @spaceType@ field is @SPACE@. If the existing space has a target audience, you can remove the audience and restrict space access by omitting a value for this field mask. To update access settings for a space, the authenticating user must be a space manager and omit all other field masks in your request. You can\'t update this field if the space is in <https://developers.google.com/workspace/chat/import-data-overview import mode>. To learn+ -- more, see <https://developers.google.com/workspace/chat/space-target-audience Make a space discoverable to specific users>. @access_settings.audience@ is not supported with @useAdminAccess@. @permission_settings@: Supports changing the <https://support.google.com/chat/answer/13340792 permission settings> of a space. When updating permission settings, you can only specify @permissionSettings@ field masks; you cannot update other field masks at the same time. @permissionSettings@ is not supported with @useAdminAccess@. The supported field masks include: - @permission_settings.manageMembersAndGroups@ - @permission_settings.modifySpaceDetails@ - @permission_settings.toggleHistory@ - @permission_settings.useAtMentionAll@ - @permission_settings.manageApps@ - @permission_settings.manageWebhooks@ - @permission_settings.replyMessages@+ updateMask :: (Core.Maybe Core.FieldMask),+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text),+ -- | Optional. When @true@, the method runs using the user\'s Google Workspace administrator privileges. The calling user must be a Google Workspace administrator with the <https://support.google.com/a/answer/13369245 manage chat and spaces conversations privilege>. Requires the @chat.admin.spaces@ <https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes OAuth 2.0 scope>. Some @FieldMask@ values are not supported using admin access. For details, see the description of @update_mask@.+ useAdminAccess :: (Core.Maybe Core.Bool)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesPatch' with the minimum fields required to make a request.+newChatSpacesPatch ::+ -- | Identifier. Resource name of the space. Format: @spaces\/{space}@ Where @{space}@ represents the system-assigned ID for the space. You can obtain the space ID by calling the <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/list spaces.list()> method or from the space URL. For example, if the space URL is @https:\/\/mail.google.com\/mail\/u\/0\/#chat\/space\/AAAAAAAAA@, the space ID is @AAAAAAAAA@. See 'name'.+ Core.Text ->+ -- | Multipart request metadata. See 'payload'.+ Space ->+ ChatSpacesPatch+newChatSpacesPatch name payload =+ ChatSpacesPatch+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ name = name,+ payload = payload,+ updateMask = Core.Nothing,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing,+ useAdminAccess = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesPatch where+ type Rs ChatSpacesPatch = Space+ type+ Scopes ChatSpacesPatch =+ '[Chat'Admin'Spaces, Chat'App'Spaces, Chat'Import, Chat'Spaces]+ requestClient ChatSpacesPatch {..} =+ go+ name+ xgafv+ accessToken+ callback+ updateMask+ uploadType+ uploadProtocol+ useAdminAccess+ (Core.Just Core.AltJSON)+ payload+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesPatchResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/Search.hs view
@@ -0,0 +1,130 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.Search+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a list of spaces in a Google Workspace organization based on an administrator\'s search. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user#admin-privileges user authentication with administrator privileges>. In the request, set @use_admin_access@ to @true@.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.search@.+module Gogol.Chat.Spaces.Search+ ( -- * Resource+ ChatSpacesSearchResource,++ -- ** Constructing a Request+ ChatSpacesSearch (..),+ newChatSpacesSearch,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.search@ method which the+-- 'ChatSpacesSearch' request conforms to.+type ChatSpacesSearchResource =+ "v1"+ Core.:> "spaces:search"+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "orderBy" Core.Text+ Core.:> Core.QueryParam "pageSize" Core.Int32+ Core.:> Core.QueryParam "pageToken" Core.Text+ Core.:> Core.QueryParam "query" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "useAdminAccess" Core.Bool+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.Get '[Core.JSON] SearchSpacesResponse++-- | Returns a list of spaces in a Google Workspace organization based on an administrator\'s search. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user#admin-privileges user authentication with administrator privileges>. In the request, set @use_admin_access@ to @true@.+--+-- /See:/ 'newChatSpacesSearch' smart constructor.+data ChatSpacesSearch = ChatSpacesSearch+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Optional. How the list of spaces is ordered. Supported attributes to order by are: - @membership_count.joined_direct_human_user_count@ — Denotes the count of human users that have directly joined a space. - @last_active_time@ — Denotes the time when last eligible item is added to any topic of this space. - @create_time@ — Denotes the time of the space creation. Valid ordering operation values are: - @ASC@ for ascending. Default value. - @DESC@ for descending. The supported syntax are: - @membership_count.joined_direct_human_user_count DESC@ - @membership_count.joined_direct_human_user_count ASC@ - @last_active_time DESC@ - @last_active_time ASC@ - @create_time DESC@ - @create_time ASC@+ orderBy :: (Core.Maybe Core.Text),+ -- | The maximum number of spaces to return. The service may return fewer than this value. If unspecified, at most 100 spaces are returned. The maximum value is 1000. If you use a value more than 1000, it\'s automatically changed to 1000.+ pageSize :: (Core.Maybe Core.Int32),+ -- | A token, received from the previous search spaces call. Provide this parameter to retrieve the subsequent page. When paginating, all other parameters provided should match the call that provided the page token. Passing different values to the other parameters might lead to unexpected results.+ pageToken :: (Core.Maybe Core.Text),+ -- | Required. A search query. You can search by using the following parameters: - @create_time@ - @customer@ - @display_name@ - @external_user_allowed@ - @last_active_time@ - @space_history_state@ - @space_type@ @create_time@ and @last_active_time@ accept a timestamp in <https://www.rfc-editor.org/rfc/rfc3339 RFC-3339> format and the supported comparison operators are: @=@, @\<@, @>@, @\<=@, @>=@. @customer@ is required and is used to indicate which customer to fetch spaces from. @customers\/my_customer@ is the only supported value. @display_name@ only accepts the @HAS@ (@:@) operator. The text to match is first tokenized into tokens and each token is prefix-matched case-insensitively and independently as a substring anywhere in the space\'s @display_name@. For example, @Fun Eve@ matches @Fun event@ or @The evening was fun@, but not @notFun event@ or @even@. @external_user_allowed@ accepts either @true@ or @false@. @space_history_state@ only accepts values from the [@historyState@]+ -- (https:\/\/developers.google.com\/workspace\/chat\/api\/reference\/rest\/v1\/spaces#Space.HistoryState) field of a @space@ resource. @space_type@ is required and the only valid value is @SPACE@. Across different fields, only @AND@ operators are supported. A valid example is @space_type = \"SPACE\" AND display_name:\"Hello\"@ and an invalid example is @space_type = \"SPACE\" OR display_name:\"Hello\"@. Among the same field, @space_type@ doesn\'t support @AND@ or @OR@ operators. @display_name@, \'space/history/state\', and \'external/user/allowed\' only support @OR@ operators. @last_active_time@ and @create_time@ support both @AND@ and @OR@ operators. @AND@ can only be used to represent an interval, such as @last_active_time \< \"2022-01-01T00:00:00+00:00\" AND last_active_time > \"2023-01-01T00:00:00+00:00\"@. The following example queries are valid:+ -- @customer = \"customers\/my_customer\" AND space_type = \"SPACE\" customer = \"customers\/my_customer\" AND space_type = \"SPACE\" AND display_name:\"Hello World\" customer = \"customers\/my_customer\" AND space_type = \"SPACE\" AND (last_active_time \< \"2020-01-01T00:00:00+00:00\" OR last_active_time > \"2022-01-01T00:00:00+00:00\") customer = \"customers\/my_customer\" AND space_type = \"SPACE\" AND (display_name:\"Hello World\" OR display_name:\"Fun event\") AND (last_active_time > \"2020-01-01T00:00:00+00:00\" AND last_active_time \< \"2022-01-01T00:00:00+00:00\") customer = \"customers\/my_customer\" AND space_type = \"SPACE\" AND (create_time > \"2019-01-01T00:00:00+00:00\" AND create_time \< \"2020-01-01T00:00:00+00:00\") AND (external_user_allowed = \"true\") AND (space_history_state = \"HISTORY_ON\" OR space_history_state = \"HISTORY_OFF\")@+ query :: (Core.Maybe Core.Text),+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text),+ -- | When @true@, the method runs using the user\'s Google Workspace administrator privileges. The calling user must be a Google Workspace administrator with the <https://support.google.com/a/answer/13369245 manage chat and spaces conversations privilege>. Requires either the @chat.admin.spaces.readonly@ or @chat.admin.spaces@ <https://developers.google.com/workspace/chat/authenticate-authorize#chat-api-scopes OAuth 2.0 scope>. This method currently only supports admin access, thus only @true@ is accepted for this field.+ useAdminAccess :: (Core.Maybe Core.Bool)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesSearch' with the minimum fields required to make a request.+newChatSpacesSearch ::+ ChatSpacesSearch+newChatSpacesSearch =+ ChatSpacesSearch+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ orderBy = Core.Nothing,+ pageSize = Core.Nothing,+ pageToken = Core.Nothing,+ query = Core.Nothing,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing,+ useAdminAccess = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesSearch where+ type Rs ChatSpacesSearch = SearchSpacesResponse+ type+ Scopes ChatSpacesSearch =+ '[Chat'Admin'Spaces, Chat'Admin'Spaces'Readonly]+ requestClient ChatSpacesSearch {..} =+ go+ xgafv+ accessToken+ callback+ orderBy+ pageSize+ pageToken+ query+ uploadType+ uploadProtocol+ useAdminAccess+ (Core.Just Core.AltJSON)+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesSearchResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/Setup.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.Setup+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a space and adds specified users to it. The calling user is automatically added to the space, and shouldn\'t be specified as a membership in the request. For an example, see <https://developers.google.com/workspace/chat/set-up-spaces Set up a space with initial members>. To specify the human members to add, add memberships with the appropriate @membership.member.name@. To add a human user, use @users\/{user}@, where @{user}@ can be the email address for the user. For users in the same Workspace organization @{user}@ can also be the @id@ for the person from the People API, or the @id@ for the user in the Directory API. For example, if the People API Person profile ID for @user\@example.com@ is @123456789@, you can add the user to the space by setting the @membership.member.name@ to @users\/user\@example.com@ or @users\/123456789@. To specify the Google groups to add, add memberships with the appropriate @membership.group_member.name@. To add or invite a Google group, use @groups\/{group}@, where+-- @{group}@ is the @id@ for the group from the Cloud Identity Groups API. For example, you can use <https://cloud.google.com/identity/docs/reference/rest/v1/groups/lookup Cloud Identity Groups lookup API> to retrieve the ID @123456789@ for group email @group\@example.com@, then you can add the group to the space by setting the @membership.group_member.name@ to @groups\/123456789@. Group email is not supported, and Google groups can only be added as members in named spaces. For a named space or group chat, if the caller blocks, or is blocked by some members, or doesn\'t have permission to add some members, then those members aren\'t added to the created space. To create a direct message (DM) between the calling user and another human user, specify exactly one membership to represent the human user. If one user blocks the other, the request fails and the DM isn\'t created. To create a DM between the calling user and the calling app, set @Space.singleUserBotDm@ to @true@ and don\'t specify any memberships. You can+-- only use this method to set up a DM with the calling app. To add the calling app as a member of a space or an existing DM between two human users, see <https://developers.google.com/workspace/chat/create-members Invite or add a user or app to a space>. If a DM already exists between two users, even when one user blocks the other at the time a request is made, then the existing DM is returned. Spaces with threaded replies aren\'t supported. If you receive the error message @ALREADY_EXISTS@ when setting up a space, try a different @displayName@. An existing space within the Google Workspace organization might already use this display name. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.setup@.+module Gogol.Chat.Spaces.Setup+ ( -- * Resource+ ChatSpacesSetupResource,++ -- ** Constructing a Request+ ChatSpacesSetup (..),+ newChatSpacesSetup,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.setup@ method which the+-- 'ChatSpacesSetup' request conforms to.+type ChatSpacesSetupResource =+ "v1"+ Core.:> "spaces:setup"+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.ReqBody '[Core.JSON] SetUpSpaceRequest+ Core.:> Core.Post '[Core.JSON] Space++-- | Creates a space and adds specified users to it. The calling user is automatically added to the space, and shouldn\'t be specified as a membership in the request. For an example, see <https://developers.google.com/workspace/chat/set-up-spaces Set up a space with initial members>. To specify the human members to add, add memberships with the appropriate @membership.member.name@. To add a human user, use @users\/{user}@, where @{user}@ can be the email address for the user. For users in the same Workspace organization @{user}@ can also be the @id@ for the person from the People API, or the @id@ for the user in the Directory API. For example, if the People API Person profile ID for @user\@example.com@ is @123456789@, you can add the user to the space by setting the @membership.member.name@ to @users\/user\@example.com@ or @users\/123456789@. To specify the Google groups to add, add memberships with the appropriate @membership.group_member.name@. To add or invite a Google group, use @groups\/{group}@, where+-- @{group}@ is the @id@ for the group from the Cloud Identity Groups API. For example, you can use <https://cloud.google.com/identity/docs/reference/rest/v1/groups/lookup Cloud Identity Groups lookup API> to retrieve the ID @123456789@ for group email @group\@example.com@, then you can add the group to the space by setting the @membership.group_member.name@ to @groups\/123456789@. Group email is not supported, and Google groups can only be added as members in named spaces. For a named space or group chat, if the caller blocks, or is blocked by some members, or doesn\'t have permission to add some members, then those members aren\'t added to the created space. To create a direct message (DM) between the calling user and another human user, specify exactly one membership to represent the human user. If one user blocks the other, the request fails and the DM isn\'t created. To create a DM between the calling user and the calling app, set @Space.singleUserBotDm@ to @true@ and don\'t specify any memberships. You can+-- only use this method to set up a DM with the calling app. To add the calling app as a member of a space or an existing DM between two human users, see <https://developers.google.com/workspace/chat/create-members Invite or add a user or app to a space>. If a DM already exists between two users, even when one user blocks the other at the time a request is made, then the existing DM is returned. Spaces with threaded replies aren\'t supported. If you receive the error message @ALREADY_EXISTS@ when setting up a space, try a different @displayName@. An existing space within the Google Workspace organization might already use this display name. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+--+-- /See:/ 'newChatSpacesSetup' smart constructor.+data ChatSpacesSetup = ChatSpacesSetup+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Multipart request metadata.+ payload :: SetUpSpaceRequest,+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesSetup' with the minimum fields required to make a request.+newChatSpacesSetup ::+ -- | Multipart request metadata. See 'payload'.+ SetUpSpaceRequest ->+ ChatSpacesSetup+newChatSpacesSetup payload =+ ChatSpacesSetup+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ payload = payload,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesSetup where+ type Rs ChatSpacesSetup = Space+ type Scopes ChatSpacesSetup = '[Chat'Spaces, Chat'Spaces'Create]+ requestClient ChatSpacesSetup {..} =+ go+ xgafv+ accessToken+ callback+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ payload+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesSetupResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/SpaceEvents/Get.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.SpaceEvents.Get+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns an event from a Google Chat space. The <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.spaceEvents#SpaceEvent.FIELDS.oneof_payload event payload> contains the most recent version of the resource that changed. For example, if you request an event about a new message but the message was later updated, the server returns the updated @Message@ resource in the event payload. Note: The @permissionSettings@ field is not returned in the Space object of the Space event data for this request. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>. To get an event, the authenticated user must be a member of the space. For an example, see <https://developers.google.com/workspace/chat/get-space-event Get details about an event from a Google Chat space>.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.spaceEvents.get@.+module Gogol.Chat.Spaces.SpaceEvents.Get+ ( -- * Resource+ ChatSpacesSpaceEventsGetResource,++ -- ** Constructing a Request+ ChatSpacesSpaceEventsGet (..),+ newChatSpacesSpaceEventsGet,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.spaceEvents.get@ method which the+-- 'ChatSpacesSpaceEventsGet' request conforms to.+type ChatSpacesSpaceEventsGetResource =+ "v1"+ Core.:> Core.Capture "name" Core.Text+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.Get '[Core.JSON] SpaceEvent++-- | Returns an event from a Google Chat space. The <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.spaceEvents#SpaceEvent.FIELDS.oneof_payload event payload> contains the most recent version of the resource that changed. For example, if you request an event about a new message but the message was later updated, the server returns the updated @Message@ resource in the event payload. Note: The @permissionSettings@ field is not returned in the Space object of the Space event data for this request. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>. To get an event, the authenticated user must be a member of the space. For an example, see <https://developers.google.com/workspace/chat/get-space-event Get details about an event from a Google Chat space>.+--+-- /See:/ 'newChatSpacesSpaceEventsGet' smart constructor.+data ChatSpacesSpaceEventsGet = ChatSpacesSpaceEventsGet+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Required. The resource name of the space event. Format: @spaces\/{space}\/spaceEvents\/{spaceEvent}@+ name :: Core.Text,+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesSpaceEventsGet' with the minimum fields required to make a request.+newChatSpacesSpaceEventsGet ::+ -- | Required. The resource name of the space event. Format: @spaces\/{space}\/spaceEvents\/{spaceEvent}@ See 'name'.+ Core.Text ->+ ChatSpacesSpaceEventsGet+newChatSpacesSpaceEventsGet name =+ ChatSpacesSpaceEventsGet+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ name = name,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesSpaceEventsGet where+ type Rs ChatSpacesSpaceEventsGet = SpaceEvent+ type+ Scopes ChatSpacesSpaceEventsGet =+ '[ Chat'Memberships,+ Chat'Memberships'Readonly,+ Chat'Messages,+ Chat'Messages'Reactions,+ Chat'Messages'Reactions'Readonly,+ Chat'Messages'Readonly,+ Chat'Spaces,+ Chat'Spaces'Readonly+ ]+ requestClient ChatSpacesSpaceEventsGet {..} =+ go+ name+ xgafv+ accessToken+ callback+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesSpaceEventsGetResource)+ Core.mempty
+ gen/Gogol/Chat/Spaces/SpaceEvents/List.hs view
@@ -0,0 +1,134 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Spaces.SpaceEvents.List+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists events from a Google Chat space. For each event, the <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.spaceEvents#SpaceEvent.FIELDS.oneof_payload payload> contains the most recent version of the Chat resource. For example, if you list events about new space members, the server returns @Membership@ resources that contain the latest membership details. If new members were removed during the requested period, the event payload contains an empty @Membership@ resource. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>. To list events, the authenticated user must be a member of the space. For an example, see <https://developers.google.com/workspace/chat/list-space-events List events from a Google Chat space>.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.spaces.spaceEvents.list@.+module Gogol.Chat.Spaces.SpaceEvents.List+ ( -- * Resource+ ChatSpacesSpaceEventsListResource,++ -- ** Constructing a Request+ ChatSpacesSpaceEventsList (..),+ newChatSpacesSpaceEventsList,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.spaces.spaceEvents.list@ method which the+-- 'ChatSpacesSpaceEventsList' request conforms to.+type ChatSpacesSpaceEventsListResource =+ "v1"+ Core.:> Core.Capture "parent" Core.Text+ Core.:> "spaceEvents"+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "filter" Core.Text+ Core.:> Core.QueryParam "pageSize" Core.Int32+ Core.:> Core.QueryParam "pageToken" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.Get '[Core.JSON] ListSpaceEventsResponse++-- | Lists events from a Google Chat space. For each event, the <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.spaceEvents#SpaceEvent.FIELDS.oneof_payload payload> contains the most recent version of the Chat resource. For example, if you list events about new space members, the server returns @Membership@ resources that contain the latest membership details. If new members were removed during the requested period, the event payload contains an empty @Membership@ resource. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>. To list events, the authenticated user must be a member of the space. For an example, see <https://developers.google.com/workspace/chat/list-space-events List events from a Google Chat space>.+--+-- /See:/ 'newChatSpacesSpaceEventsList' smart constructor.+data ChatSpacesSpaceEventsList = ChatSpacesSpaceEventsList+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Required. A query filter. You must specify at least one event type (@event_type@) using the has @:@ operator. To filter by multiple event types, use the @OR@ operator. Omit batch event types in your filter. The request automatically returns any related batch events. For example, if you filter by new reactions (@google.workspace.chat.reaction.v1.created@), the server also returns batch new reactions events (@google.workspace.chat.reaction.v1.batchCreated@). For a list of supported event types, see the <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.spaceEvents#SpaceEvent.FIELDS.event_type SpaceEvents reference documentation>. Optionally, you can also filter by start time (@start_time@) and end time (@end_time@): * @start_time@: Exclusive timestamp from which to start listing space events. You can list events that occurred up to 28 days ago. If unspecified, lists space events from the past 28 days. * @end_time@: Inclusive timestamp until which space events are listed. If unspecified,+ -- lists events up to the time of the request. To specify a start or end time, use the equals @=@ operator and format in <https://www.rfc-editor.org/rfc/rfc3339 RFC-3339>. To filter by both @start_time@ and @end_time@, use the @AND@ operator. For example, the following queries are valid: @start_time=\"2023-08-23T19:20:33+00:00\" AND end_time=\"2023-08-23T19:21:54+00:00\"@ @start_time=\"2023-08-23T19:20:33+00:00\" AND (event_types:\"google.workspace.chat.space.v1.updated\" OR event_types:\"google.workspace.chat.message.v1.created\")@ The following queries are invalid: @start_time=\"2023-08-23T19:20:33+00:00\" OR end_time=\"2023-08-23T19:21:54+00:00\"@ @event_types:\"google.workspace.chat.space.v1.updated\" AND event_types:\"google.workspace.chat.message.v1.created\"@ Invalid queries are rejected by the server with an @INVALID_ARGUMENT@ error.+ filter :: (Core.Maybe Core.Text),+ -- | Optional. The maximum number of space events returned. The service might return fewer than this value. Negative values return an @INVALID_ARGUMENT@ error.+ pageSize :: (Core.Maybe Core.Int32),+ -- | Optional. A page token, received from a previous list space events call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to list space events must match the call that provided the page token. Passing different values to the other parameters might lead to unexpected results.+ pageToken :: (Core.Maybe Core.Text),+ -- | Required. Resource name of the <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces Google Chat space> where the events occurred. Format: @spaces\/{space}@.+ parent :: Core.Text,+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatSpacesSpaceEventsList' with the minimum fields required to make a request.+newChatSpacesSpaceEventsList ::+ -- | Required. Resource name of the <https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces Google Chat space> where the events occurred. Format: @spaces\/{space}@. See 'parent'.+ Core.Text ->+ ChatSpacesSpaceEventsList+newChatSpacesSpaceEventsList parent =+ ChatSpacesSpaceEventsList+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ filter = Core.Nothing,+ pageSize = Core.Nothing,+ pageToken = Core.Nothing,+ parent = parent,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance Core.GoogleRequest ChatSpacesSpaceEventsList where+ type Rs ChatSpacesSpaceEventsList = ListSpaceEventsResponse+ type+ Scopes ChatSpacesSpaceEventsList =+ '[ Chat'Memberships,+ Chat'Memberships'Readonly,+ Chat'Messages,+ Chat'Messages'Reactions,+ Chat'Messages'Reactions'Readonly,+ Chat'Messages'Readonly,+ Chat'Spaces,+ Chat'Spaces'Readonly+ ]+ requestClient ChatSpacesSpaceEventsList {..} =+ go+ parent+ xgafv+ accessToken+ callback+ filter+ pageSize+ pageToken+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatSpacesSpaceEventsListResource)+ Core.mempty
+ gen/Gogol/Chat/Types.hs view
@@ -0,0 +1,931 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Types+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+module Gogol.Chat.Types+ ( -- * Configuration+ chatService,++ -- * OAuth Scopes+ Chat'Admin'Delete,+ Chat'Admin'Memberships,+ Chat'Admin'Memberships'Readonly,+ Chat'Admin'Spaces,+ Chat'Admin'Spaces'Readonly,+ Chat'App'Delete,+ Chat'App'Memberships,+ Chat'App'Spaces,+ Chat'App'Spaces'Create,+ Chat'Bot,+ Chat'Delete,+ Chat'Import,+ Chat'Memberships,+ Chat'Memberships'App,+ Chat'Memberships'Readonly,+ Chat'Messages,+ Chat'Messages'Create,+ Chat'Messages'Reactions,+ Chat'Messages'Reactions'Create,+ Chat'Messages'Reactions'Readonly,+ Chat'Messages'Readonly,+ Chat'Spaces,+ Chat'Spaces'Create,+ Chat'Spaces'Readonly,+ Chat'Users'Readstate,+ Chat'Users'Readstate'Readonly,+ Chat'Users'Spacesettings,++ -- * Types++ -- ** Xgafv+ Xgafv (..),++ -- ** AccessSettings+ AccessSettings (..),+ newAccessSettings,++ -- ** AccessSettings_AccessState+ AccessSettings_AccessState (..),++ -- ** AccessoryWidget+ AccessoryWidget (..),+ newAccessoryWidget,++ -- ** ActionParameter+ ActionParameter (..),+ newActionParameter,++ -- ** ActionResponse+ ActionResponse (..),+ newActionResponse,++ -- ** ActionResponse_Type+ ActionResponse_Type (..),++ -- ** ActionStatus+ ActionStatus (..),+ newActionStatus,++ -- ** ActionStatus_StatusCode+ ActionStatus_StatusCode (..),++ -- ** Annotation+ Annotation (..),+ newAnnotation,++ -- ** Annotation_Type+ Annotation_Type (..),++ -- ** AppCommandMetadata+ AppCommandMetadata (..),+ newAppCommandMetadata,++ -- ** AppCommandMetadata_AppCommandType+ AppCommandMetadata_AppCommandType (..),++ -- ** AttachedGif+ AttachedGif (..),+ newAttachedGif,++ -- ** Attachment+ Attachment (..),+ newAttachment,++ -- ** Attachment_Source+ Attachment_Source (..),++ -- ** AttachmentDataRef+ AttachmentDataRef (..),+ newAttachmentDataRef,++ -- ** Button+ Button (..),+ newButton,++ -- ** Card+ Card (..),+ newCard,++ -- ** CardAction+ CardAction (..),+ newCardAction,++ -- ** CardHeader+ CardHeader (..),+ newCardHeader,++ -- ** CardHeader_ImageStyle+ CardHeader_ImageStyle (..),++ -- ** CardWithId+ CardWithId (..),+ newCardWithId,++ -- ** ChatAppLogEntry+ ChatAppLogEntry (..),+ newChatAppLogEntry,++ -- ** ChatClientDataSourceMarkup+ ChatClientDataSourceMarkup (..),+ newChatClientDataSourceMarkup,++ -- ** ChatSpaceLinkData+ ChatSpaceLinkData (..),+ newChatSpaceLinkData,++ -- ** Color+ Color (..),+ newColor,++ -- ** CommonEventObject+ CommonEventObject (..),+ newCommonEventObject,++ -- ** CommonEventObject_FormInputs+ CommonEventObject_FormInputs (..),+ newCommonEventObject_FormInputs,++ -- ** CommonEventObject_HostApp+ CommonEventObject_HostApp (..),++ -- ** CommonEventObject_Parameters+ CommonEventObject_Parameters (..),+ newCommonEventObject_Parameters,++ -- ** CommonEventObject_Platform+ CommonEventObject_Platform (..),++ -- ** CompleteImportSpaceRequest+ CompleteImportSpaceRequest (..),+ newCompleteImportSpaceRequest,++ -- ** CompleteImportSpaceResponse+ CompleteImportSpaceResponse (..),+ newCompleteImportSpaceResponse,++ -- ** CustomEmoji+ CustomEmoji (..),+ newCustomEmoji,++ -- ** CustomEmojiMetadata+ CustomEmojiMetadata (..),+ newCustomEmojiMetadata,++ -- ** DateInput+ DateInput (..),+ newDateInput,++ -- ** DateTimeInput+ DateTimeInput (..),+ newDateTimeInput,++ -- ** DeletionMetadata+ DeletionMetadata (..),+ newDeletionMetadata,++ -- ** DeletionMetadata_DeletionType+ DeletionMetadata_DeletionType (..),++ -- ** DeprecatedEvent+ DeprecatedEvent (..),+ newDeprecatedEvent,++ -- ** DeprecatedEvent_DialogEventType+ DeprecatedEvent_DialogEventType (..),++ -- ** DeprecatedEvent_Type+ DeprecatedEvent_Type (..),++ -- ** Dialog+ Dialog (..),+ newDialog,++ -- ** DialogAction+ DialogAction (..),+ newDialogAction,++ -- ** DriveDataRef+ DriveDataRef (..),+ newDriveDataRef,++ -- ** DriveLinkData+ DriveLinkData (..),+ newDriveLinkData,++ -- ** Emoji+ Emoji (..),+ newEmoji,++ -- ** EmojiReactionSummary+ EmojiReactionSummary (..),+ newEmojiReactionSummary,++ -- ** Empty+ Empty (..),+ newEmpty,++ -- ** FormAction+ FormAction (..),+ newFormAction,++ -- ** GoogleAppsCardV1Action+ GoogleAppsCardV1Action (..),+ newGoogleAppsCardV1Action,++ -- ** GoogleAppsCardV1Action_Interaction+ GoogleAppsCardV1Action_Interaction (..),++ -- ** GoogleAppsCardV1Action_LoadIndicator+ GoogleAppsCardV1Action_LoadIndicator (..),++ -- ** GoogleAppsCardV1ActionParameter+ GoogleAppsCardV1ActionParameter (..),+ newGoogleAppsCardV1ActionParameter,++ -- ** GoogleAppsCardV1BorderStyle+ GoogleAppsCardV1BorderStyle (..),+ newGoogleAppsCardV1BorderStyle,++ -- ** GoogleAppsCardV1BorderStyle_Type+ GoogleAppsCardV1BorderStyle_Type (..),++ -- ** GoogleAppsCardV1Button+ GoogleAppsCardV1Button (..),+ newGoogleAppsCardV1Button,++ -- ** GoogleAppsCardV1Button_Type+ GoogleAppsCardV1Button_Type (..),++ -- ** GoogleAppsCardV1ButtonList+ GoogleAppsCardV1ButtonList (..),+ newGoogleAppsCardV1ButtonList,++ -- ** GoogleAppsCardV1Card+ GoogleAppsCardV1Card (..),+ newGoogleAppsCardV1Card,++ -- ** GoogleAppsCardV1Card_DisplayStyle+ GoogleAppsCardV1Card_DisplayStyle (..),++ -- ** GoogleAppsCardV1Card_SectionDividerStyle+ GoogleAppsCardV1Card_SectionDividerStyle (..),++ -- ** GoogleAppsCardV1CardAction+ GoogleAppsCardV1CardAction (..),+ newGoogleAppsCardV1CardAction,++ -- ** GoogleAppsCardV1CardFixedFooter+ GoogleAppsCardV1CardFixedFooter (..),+ newGoogleAppsCardV1CardFixedFooter,++ -- ** GoogleAppsCardV1CardHeader+ GoogleAppsCardV1CardHeader (..),+ newGoogleAppsCardV1CardHeader,++ -- ** GoogleAppsCardV1CardHeader_ImageType+ GoogleAppsCardV1CardHeader_ImageType (..),++ -- ** GoogleAppsCardV1Carousel+ GoogleAppsCardV1Carousel (..),+ newGoogleAppsCardV1Carousel,++ -- ** GoogleAppsCardV1CarouselCard+ GoogleAppsCardV1CarouselCard (..),+ newGoogleAppsCardV1CarouselCard,++ -- ** GoogleAppsCardV1Chip+ GoogleAppsCardV1Chip (..),+ newGoogleAppsCardV1Chip,++ -- ** GoogleAppsCardV1ChipList+ GoogleAppsCardV1ChipList (..),+ newGoogleAppsCardV1ChipList,++ -- ** GoogleAppsCardV1ChipList_Layout+ GoogleAppsCardV1ChipList_Layout (..),++ -- ** GoogleAppsCardV1CollapseControl+ GoogleAppsCardV1CollapseControl (..),+ newGoogleAppsCardV1CollapseControl,++ -- ** GoogleAppsCardV1CollapseControl_HorizontalAlignment+ GoogleAppsCardV1CollapseControl_HorizontalAlignment (..),++ -- ** GoogleAppsCardV1Column+ GoogleAppsCardV1Column (..),+ newGoogleAppsCardV1Column,++ -- ** GoogleAppsCardV1Column_HorizontalAlignment+ GoogleAppsCardV1Column_HorizontalAlignment (..),++ -- ** GoogleAppsCardV1Column_HorizontalSizeStyle+ GoogleAppsCardV1Column_HorizontalSizeStyle (..),++ -- ** GoogleAppsCardV1Column_VerticalAlignment+ GoogleAppsCardV1Column_VerticalAlignment (..),++ -- ** GoogleAppsCardV1Columns+ GoogleAppsCardV1Columns (..),+ newGoogleAppsCardV1Columns,++ -- ** GoogleAppsCardV1DateTimePicker+ GoogleAppsCardV1DateTimePicker (..),+ newGoogleAppsCardV1DateTimePicker,++ -- ** GoogleAppsCardV1DateTimePicker_Type+ GoogleAppsCardV1DateTimePicker_Type (..),++ -- ** GoogleAppsCardV1DecoratedText+ GoogleAppsCardV1DecoratedText (..),+ newGoogleAppsCardV1DecoratedText,++ -- ** GoogleAppsCardV1Divider+ GoogleAppsCardV1Divider (..),+ newGoogleAppsCardV1Divider,++ -- ** GoogleAppsCardV1Grid+ GoogleAppsCardV1Grid (..),+ newGoogleAppsCardV1Grid,++ -- ** GoogleAppsCardV1GridItem+ GoogleAppsCardV1GridItem (..),+ newGoogleAppsCardV1GridItem,++ -- ** GoogleAppsCardV1GridItem_Layout+ GoogleAppsCardV1GridItem_Layout (..),++ -- ** GoogleAppsCardV1Icon+ GoogleAppsCardV1Icon (..),+ newGoogleAppsCardV1Icon,++ -- ** GoogleAppsCardV1Icon_ImageType+ GoogleAppsCardV1Icon_ImageType (..),++ -- ** GoogleAppsCardV1Image+ GoogleAppsCardV1Image (..),+ newGoogleAppsCardV1Image,++ -- ** GoogleAppsCardV1ImageComponent+ GoogleAppsCardV1ImageComponent (..),+ newGoogleAppsCardV1ImageComponent,++ -- ** GoogleAppsCardV1ImageCropStyle+ GoogleAppsCardV1ImageCropStyle (..),+ newGoogleAppsCardV1ImageCropStyle,++ -- ** GoogleAppsCardV1ImageCropStyle_Type+ GoogleAppsCardV1ImageCropStyle_Type (..),++ -- ** GoogleAppsCardV1MaterialIcon+ GoogleAppsCardV1MaterialIcon (..),+ newGoogleAppsCardV1MaterialIcon,++ -- ** GoogleAppsCardV1NestedWidget+ GoogleAppsCardV1NestedWidget (..),+ newGoogleAppsCardV1NestedWidget,++ -- ** GoogleAppsCardV1OnClick+ GoogleAppsCardV1OnClick (..),+ newGoogleAppsCardV1OnClick,++ -- ** GoogleAppsCardV1OpenLink+ GoogleAppsCardV1OpenLink (..),+ newGoogleAppsCardV1OpenLink,++ -- ** GoogleAppsCardV1OpenLink_OnClose+ GoogleAppsCardV1OpenLink_OnClose (..),++ -- ** GoogleAppsCardV1OpenLink_OpenAs+ GoogleAppsCardV1OpenLink_OpenAs (..),++ -- ** GoogleAppsCardV1OverflowMenu+ GoogleAppsCardV1OverflowMenu (..),+ newGoogleAppsCardV1OverflowMenu,++ -- ** GoogleAppsCardV1OverflowMenuItem+ GoogleAppsCardV1OverflowMenuItem (..),+ newGoogleAppsCardV1OverflowMenuItem,++ -- ** GoogleAppsCardV1PlatformDataSource+ GoogleAppsCardV1PlatformDataSource (..),+ newGoogleAppsCardV1PlatformDataSource,++ -- ** GoogleAppsCardV1PlatformDataSource_CommonDataSource+ GoogleAppsCardV1PlatformDataSource_CommonDataSource (..),++ -- ** GoogleAppsCardV1Section+ GoogleAppsCardV1Section (..),+ newGoogleAppsCardV1Section,++ -- ** GoogleAppsCardV1SelectionInput+ GoogleAppsCardV1SelectionInput (..),+ newGoogleAppsCardV1SelectionInput,++ -- ** GoogleAppsCardV1SelectionInput_Type+ GoogleAppsCardV1SelectionInput_Type (..),++ -- ** GoogleAppsCardV1SelectionItem+ GoogleAppsCardV1SelectionItem (..),+ newGoogleAppsCardV1SelectionItem,++ -- ** GoogleAppsCardV1SuggestionItem+ GoogleAppsCardV1SuggestionItem (..),+ newGoogleAppsCardV1SuggestionItem,++ -- ** GoogleAppsCardV1Suggestions+ GoogleAppsCardV1Suggestions (..),+ newGoogleAppsCardV1Suggestions,++ -- ** GoogleAppsCardV1SwitchControl+ GoogleAppsCardV1SwitchControl (..),+ newGoogleAppsCardV1SwitchControl,++ -- ** GoogleAppsCardV1SwitchControl_ControlType+ GoogleAppsCardV1SwitchControl_ControlType (..),++ -- ** GoogleAppsCardV1TextInput+ GoogleAppsCardV1TextInput (..),+ newGoogleAppsCardV1TextInput,++ -- ** GoogleAppsCardV1TextInput_Type+ GoogleAppsCardV1TextInput_Type (..),++ -- ** GoogleAppsCardV1TextParagraph+ GoogleAppsCardV1TextParagraph (..),+ newGoogleAppsCardV1TextParagraph,++ -- ** GoogleAppsCardV1Validation+ GoogleAppsCardV1Validation (..),+ newGoogleAppsCardV1Validation,++ -- ** GoogleAppsCardV1Validation_InputType+ GoogleAppsCardV1Validation_InputType (..),++ -- ** GoogleAppsCardV1Widget+ GoogleAppsCardV1Widget (..),+ newGoogleAppsCardV1Widget,++ -- ** GoogleAppsCardV1Widget_HorizontalAlignment+ GoogleAppsCardV1Widget_HorizontalAlignment (..),++ -- ** GoogleAppsCardV1Widgets+ GoogleAppsCardV1Widgets (..),+ newGoogleAppsCardV1Widgets,++ -- ** Group+ Group (..),+ newGroup,++ -- ** HostAppDataSourceMarkup+ HostAppDataSourceMarkup (..),+ newHostAppDataSourceMarkup,++ -- ** Image+ Image (..),+ newImage,++ -- ** ImageButton+ ImageButton (..),+ newImageButton,++ -- ** ImageButton_Icon+ ImageButton_Icon (..),++ -- ** Inputs+ Inputs (..),+ newInputs,++ -- ** KeyValue+ KeyValue (..),+ newKeyValue,++ -- ** KeyValue_Icon+ KeyValue_Icon (..),++ -- ** ListMembershipsResponse+ ListMembershipsResponse (..),+ newListMembershipsResponse,++ -- ** ListMessagesResponse+ ListMessagesResponse (..),+ newListMessagesResponse,++ -- ** ListReactionsResponse+ ListReactionsResponse (..),+ newListReactionsResponse,++ -- ** ListSpaceEventsResponse+ ListSpaceEventsResponse (..),+ newListSpaceEventsResponse,++ -- ** ListSpacesResponse+ ListSpacesResponse (..),+ newListSpacesResponse,++ -- ** MatchedUrl+ MatchedUrl (..),+ newMatchedUrl,++ -- ** Media+ Media (..),+ newMedia,++ -- ** Membership+ Membership (..),+ newMembership,++ -- ** Membership_Role+ Membership_Role (..),++ -- ** Membership_State+ Membership_State (..),++ -- ** MembershipBatchCreatedEventData+ MembershipBatchCreatedEventData (..),+ newMembershipBatchCreatedEventData,++ -- ** MembershipBatchDeletedEventData+ MembershipBatchDeletedEventData (..),+ newMembershipBatchDeletedEventData,++ -- ** MembershipBatchUpdatedEventData+ MembershipBatchUpdatedEventData (..),+ newMembershipBatchUpdatedEventData,++ -- ** MembershipCount+ MembershipCount (..),+ newMembershipCount,++ -- ** MembershipCreatedEventData+ MembershipCreatedEventData (..),+ newMembershipCreatedEventData,++ -- ** MembershipDeletedEventData+ MembershipDeletedEventData (..),+ newMembershipDeletedEventData,++ -- ** MembershipUpdatedEventData+ MembershipUpdatedEventData (..),+ newMembershipUpdatedEventData,++ -- ** Message+ Message (..),+ newMessage,++ -- ** MessageBatchCreatedEventData+ MessageBatchCreatedEventData (..),+ newMessageBatchCreatedEventData,++ -- ** MessageBatchDeletedEventData+ MessageBatchDeletedEventData (..),+ newMessageBatchDeletedEventData,++ -- ** MessageBatchUpdatedEventData+ MessageBatchUpdatedEventData (..),+ newMessageBatchUpdatedEventData,++ -- ** MessageCreatedEventData+ MessageCreatedEventData (..),+ newMessageCreatedEventData,++ -- ** MessageDeletedEventData+ MessageDeletedEventData (..),+ newMessageDeletedEventData,++ -- ** MessageUpdatedEventData+ MessageUpdatedEventData (..),+ newMessageUpdatedEventData,++ -- ** OnClick+ OnClick (..),+ newOnClick,++ -- ** OpenLink+ OpenLink (..),+ newOpenLink,++ -- ** PermissionSetting+ PermissionSetting (..),+ newPermissionSetting,++ -- ** PermissionSettings+ PermissionSettings (..),+ newPermissionSettings,++ -- ** QuotedMessageMetadata+ QuotedMessageMetadata (..),+ newQuotedMessageMetadata,++ -- ** Reaction+ Reaction (..),+ newReaction,++ -- ** ReactionBatchCreatedEventData+ ReactionBatchCreatedEventData (..),+ newReactionBatchCreatedEventData,++ -- ** ReactionBatchDeletedEventData+ ReactionBatchDeletedEventData (..),+ newReactionBatchDeletedEventData,++ -- ** ReactionCreatedEventData+ ReactionCreatedEventData (..),+ newReactionCreatedEventData,++ -- ** ReactionDeletedEventData+ ReactionDeletedEventData (..),+ newReactionDeletedEventData,++ -- ** RichLinkMetadata+ RichLinkMetadata (..),+ newRichLinkMetadata,++ -- ** RichLinkMetadata_RichLinkType+ RichLinkMetadata_RichLinkType (..),++ -- ** SearchSpacesResponse+ SearchSpacesResponse (..),+ newSearchSpacesResponse,++ -- ** Section+ Section (..),+ newSection,++ -- ** SelectionItems+ SelectionItems (..),+ newSelectionItems,++ -- ** SetUpSpaceRequest+ SetUpSpaceRequest (..),+ newSetUpSpaceRequest,++ -- ** SlashCommand+ SlashCommand (..),+ newSlashCommand,++ -- ** SlashCommandMetadata+ SlashCommandMetadata (..),+ newSlashCommandMetadata,++ -- ** SlashCommandMetadata_Type+ SlashCommandMetadata_Type (..),++ -- ** Space+ Space (..),+ newSpace,++ -- ** Space_PredefinedPermissionSettings+ Space_PredefinedPermissionSettings (..),++ -- ** Space_SpaceHistoryState+ Space_SpaceHistoryState (..),++ -- ** Space_SpaceThreadingState+ Space_SpaceThreadingState (..),++ -- ** Space_SpaceType+ Space_SpaceType (..),++ -- ** Space_Type+ Space_Type (..),++ -- ** SpaceBatchUpdatedEventData+ SpaceBatchUpdatedEventData (..),+ newSpaceBatchUpdatedEventData,++ -- ** SpaceDataSource+ SpaceDataSource (..),+ newSpaceDataSource,++ -- ** SpaceDetails+ SpaceDetails (..),+ newSpaceDetails,++ -- ** SpaceEvent+ SpaceEvent (..),+ newSpaceEvent,++ -- ** SpaceNotificationSetting+ SpaceNotificationSetting (..),+ newSpaceNotificationSetting,++ -- ** SpaceNotificationSetting_MuteSetting+ SpaceNotificationSetting_MuteSetting (..),++ -- ** SpaceNotificationSetting_NotificationSetting+ SpaceNotificationSetting_NotificationSetting (..),++ -- ** SpaceReadState+ SpaceReadState (..),+ newSpaceReadState,++ -- ** SpaceUpdatedEventData+ SpaceUpdatedEventData (..),+ newSpaceUpdatedEventData,++ -- ** Status+ Status (..),+ newStatus,++ -- ** Status_DetailsItem+ Status_DetailsItem (..),+ newStatus_DetailsItem,++ -- ** StringInputs+ StringInputs (..),+ newStringInputs,++ -- ** TextButton+ TextButton (..),+ newTextButton,++ -- ** TextParagraph+ TextParagraph (..),+ newTextParagraph,++ -- ** Thread+ Thread (..),+ newThread,++ -- ** ThreadReadState+ ThreadReadState (..),+ newThreadReadState,++ -- ** TimeInput+ TimeInput (..),+ newTimeInput,++ -- ** TimeZone+ TimeZone (..),+ newTimeZone,++ -- ** UpdatedWidget+ UpdatedWidget (..),+ newUpdatedWidget,++ -- ** UploadAttachmentRequest+ UploadAttachmentRequest (..),+ newUploadAttachmentRequest,++ -- ** UploadAttachmentResponse+ UploadAttachmentResponse (..),+ newUploadAttachmentResponse,++ -- ** User+ User (..),+ newUser,++ -- ** User_Type+ User_Type (..),++ -- ** UserMentionMetadata+ UserMentionMetadata (..),+ newUserMentionMetadata,++ -- ** UserMentionMetadata_Type+ UserMentionMetadata_Type (..),++ -- ** WidgetMarkup+ WidgetMarkup (..),+ newWidgetMarkup,++ -- ** SpacesMessagesCreateMessageReplyOption+ SpacesMessagesCreateMessageReplyOption (..),+ )+where++import Gogol.Chat.Internal.Product+import Gogol.Chat.Internal.Sum+import Gogol.Prelude qualified as Core++-- | Default request referring to version @v1@ of the Google Chat API. This contains the host and root path used as a starting point for constructing service requests.+chatService :: Core.ServiceConfig+chatService =+ Core.defaultService+ (Core.ServiceId "chat:v1")+ "chat.googleapis.com"++-- | Delete conversations and spaces owned by your organization and remove access to associated files in Google Chat+type Chat'Admin'Delete =+ "https://www.googleapis.com/auth/chat.admin.delete"++-- | View, add, update and remove members and managers in conversations owned by your organization+type Chat'Admin'Memberships =+ "https://www.googleapis.com/auth/chat.admin.memberships"++-- | View members and managers in conversations owned by your organization+type Chat'Admin'Memberships'Readonly =+ "https://www.googleapis.com/auth/chat.admin.memberships.readonly"++-- | View or edit display name, description, and other metadata for all Google Chat conversations owned by your organization+type Chat'Admin'Spaces =+ "https://www.googleapis.com/auth/chat.admin.spaces"++-- | View display name, description, and other metadata for all Google Chat conversations owned by your organization+type Chat'Admin'Spaces'Readonly =+ "https://www.googleapis.com/auth/chat.admin.spaces.readonly"++-- | On their own behalf, apps in Google Chat can delete conversations and spaces and remove access to associated files+type Chat'App'Delete =+ "https://www.googleapis.com/auth/chat.app.delete"++-- | On their own behalf, apps in Google Chat can see, add, update, and remove members from conversations and spaces+type Chat'App'Memberships =+ "https://www.googleapis.com/auth/chat.app.memberships"++-- | On their own behalf, apps in Google Chat can create conversations and spaces and see or update their metadata (including history settings and access settings)+type Chat'App'Spaces =+ "https://www.googleapis.com/auth/chat.app.spaces"++-- | On their own behalf, apps in Google Chat can create conversations and spaces+type Chat'App'Spaces'Create =+ "https://www.googleapis.com/auth/chat.app.spaces.create"++-- | Private Service: https:\/\/www.googleapis.com\/auth\/chat.bot+type Chat'Bot = "https://www.googleapis.com/auth/chat.bot"++-- | Delete conversations and spaces and remove access to associated files in Google Chat+type Chat'Delete = "https://www.googleapis.com/auth/chat.delete"++-- | Import spaces, messages, and memberships into Google Chat.+type Chat'Import = "https://www.googleapis.com/auth/chat.import"++-- | See, add, update, and remove members from conversations and spaces in Google Chat+type Chat'Memberships =+ "https://www.googleapis.com/auth/chat.memberships"++-- | Add and remove itself from conversations and spaces in Google Chat+type Chat'Memberships'App =+ "https://www.googleapis.com/auth/chat.memberships.app"++-- | View members in Google Chat conversations.+type Chat'Memberships'Readonly =+ "https://www.googleapis.com/auth/chat.memberships.readonly"++-- | See, compose, send, update, and delete messages as well as their message content; add, see, and delete reactions to messages.+type Chat'Messages =+ "https://www.googleapis.com/auth/chat.messages"++-- | Compose and send messages in Google Chat+type Chat'Messages'Create =+ "https://www.googleapis.com/auth/chat.messages.create"++-- | See, add, and delete reactions as well as their reaction content to messages in Google Chat+type Chat'Messages'Reactions =+ "https://www.googleapis.com/auth/chat.messages.reactions"++-- | Add reactions to messages in Google Chat+type Chat'Messages'Reactions'Create =+ "https://www.googleapis.com/auth/chat.messages.reactions.create"++-- | View reactions as well as their reaction content to messages in Google Chat+type Chat'Messages'Reactions'Readonly =+ "https://www.googleapis.com/auth/chat.messages.reactions.readonly"++-- | See messages as well as their reactions and message content in Google Chat+type Chat'Messages'Readonly =+ "https://www.googleapis.com/auth/chat.messages.readonly"++-- | Create conversations and spaces and see or update metadata (including history settings and access settings) in Google Chat+type Chat'Spaces = "https://www.googleapis.com/auth/chat.spaces"++-- | Create new conversations and spaces in Google Chat+type Chat'Spaces'Create =+ "https://www.googleapis.com/auth/chat.spaces.create"++-- | View chat and spaces in Google Chat+type Chat'Spaces'Readonly =+ "https://www.googleapis.com/auth/chat.spaces.readonly"++-- | View and modify last read time for Google Chat conversations+type Chat'Users'Readstate =+ "https://www.googleapis.com/auth/chat.users.readstate"++-- | View last read time for Google Chat conversations+type Chat'Users'Readstate'Readonly =+ "https://www.googleapis.com/auth/chat.users.readstate.readonly"++-- | Read and update your space settings+type Chat'Users'Spacesettings =+ "https://www.googleapis.com/auth/chat.users.spacesettings"
+ gen/Gogol/Chat/Users/Spaces/GetSpaceReadState.hs view
@@ -0,0 +1,109 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Users.Spaces.GetSpaceReadState+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns details about a user\'s read state within a space, used to identify read and unread messages. For an example, see <https://developers.google.com/workspace/chat/get-space-read-state Get details about a user\'s space read state>. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.users.spaces.getSpaceReadState@.+module Gogol.Chat.Users.Spaces.GetSpaceReadState+ ( -- * Resource+ ChatUsersSpacesGetSpaceReadStateResource,++ -- ** Constructing a Request+ ChatUsersSpacesGetSpaceReadState (..),+ newChatUsersSpacesGetSpaceReadState,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.users.spaces.getSpaceReadState@ method which the+-- 'ChatUsersSpacesGetSpaceReadState' request conforms to.+type ChatUsersSpacesGetSpaceReadStateResource =+ "v1"+ Core.:> Core.Capture "name" Core.Text+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.Get '[Core.JSON] SpaceReadState++-- | Returns details about a user\'s read state within a space, used to identify read and unread messages. For an example, see <https://developers.google.com/workspace/chat/get-space-read-state Get details about a user\'s space read state>. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+--+-- /See:/ 'newChatUsersSpacesGetSpaceReadState' smart constructor.+data ChatUsersSpacesGetSpaceReadState = ChatUsersSpacesGetSpaceReadState+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Required. Resource name of the space read state to retrieve. Only supports getting read state for the calling user. To refer to the calling user, set one of the following: - The @me@ alias. For example, @users\/me\/spaces\/{space}\/spaceReadState@. - Their Workspace email address. For example, @users\/user\@example.com\/spaces\/{space}\/spaceReadState@. - Their user id. For example, @users\/123456789\/spaces\/{space}\/spaceReadState@. Format: users\/{user}\/spaces\/{space}\/spaceReadState+ name :: Core.Text,+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatUsersSpacesGetSpaceReadState' with the minimum fields required to make a request.+newChatUsersSpacesGetSpaceReadState ::+ -- | Required. Resource name of the space read state to retrieve. Only supports getting read state for the calling user. To refer to the calling user, set one of the following: - The @me@ alias. For example, @users\/me\/spaces\/{space}\/spaceReadState@. - Their Workspace email address. For example, @users\/user\@example.com\/spaces\/{space}\/spaceReadState@. - Their user id. For example, @users\/123456789\/spaces\/{space}\/spaceReadState@. Format: users\/{user}\/spaces\/{space}\/spaceReadState See 'name'.+ Core.Text ->+ ChatUsersSpacesGetSpaceReadState+newChatUsersSpacesGetSpaceReadState name =+ ChatUsersSpacesGetSpaceReadState+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ name = name,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance Core.GoogleRequest ChatUsersSpacesGetSpaceReadState where+ type Rs ChatUsersSpacesGetSpaceReadState = SpaceReadState+ type+ Scopes ChatUsersSpacesGetSpaceReadState =+ '[Chat'Users'Readstate, Chat'Users'Readstate'Readonly]+ requestClient ChatUsersSpacesGetSpaceReadState {..} =+ go+ name+ xgafv+ accessToken+ callback+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ chatService+ where+ go =+ Core.buildClient+ (Core.Proxy :: Core.Proxy ChatUsersSpacesGetSpaceReadStateResource)+ Core.mempty
+ gen/Gogol/Chat/Users/Spaces/SpaceNotificationSetting/Get.hs view
@@ -0,0 +1,116 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Users.Spaces.SpaceNotificationSetting.Get+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the space notification state setting. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.users.spaces.spaceNotificationSetting.get@.+module Gogol.Chat.Users.Spaces.SpaceNotificationSetting.Get+ ( -- * Resource+ ChatUsersSpacesSpaceNotificationSettingGetResource,++ -- ** Constructing a Request+ ChatUsersSpacesSpaceNotificationSettingGet (..),+ newChatUsersSpacesSpaceNotificationSettingGet,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.users.spaces.spaceNotificationSetting.get@ method which the+-- 'ChatUsersSpacesSpaceNotificationSettingGet' request conforms to.+type ChatUsersSpacesSpaceNotificationSettingGetResource =+ "v1"+ Core.:> Core.Capture "name" Core.Text+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.Get '[Core.JSON] SpaceNotificationSetting++-- | Gets the space notification state setting. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+--+-- /See:/ 'newChatUsersSpacesSpaceNotificationSettingGet' smart constructor.+data ChatUsersSpacesSpaceNotificationSettingGet = ChatUsersSpacesSpaceNotificationSettingGet+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Required. Format: users\/{user}\/spaces\/{space}\/spaceNotificationSetting - @users\/me\/spaces\/{space}\/spaceNotificationSetting@, OR - @users\/user\@example.com\/spaces\/{space}\/spaceNotificationSetting@, OR - @users\/123456789\/spaces\/{space}\/spaceNotificationSetting@. Note: Only the caller\'s user id or email is allowed in the path.+ name :: Core.Text,+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatUsersSpacesSpaceNotificationSettingGet' with the minimum fields required to make a request.+newChatUsersSpacesSpaceNotificationSettingGet ::+ -- | Required. Format: users\/{user}\/spaces\/{space}\/spaceNotificationSetting - @users\/me\/spaces\/{space}\/spaceNotificationSetting@, OR - @users\/user\@example.com\/spaces\/{space}\/spaceNotificationSetting@, OR - @users\/123456789\/spaces\/{space}\/spaceNotificationSetting@. Note: Only the caller\'s user id or email is allowed in the path. See 'name'.+ Core.Text ->+ ChatUsersSpacesSpaceNotificationSettingGet+newChatUsersSpacesSpaceNotificationSettingGet name =+ ChatUsersSpacesSpaceNotificationSettingGet+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ name = name,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance+ Core.GoogleRequest+ ChatUsersSpacesSpaceNotificationSettingGet+ where+ type+ Rs ChatUsersSpacesSpaceNotificationSettingGet =+ SpaceNotificationSetting+ type+ Scopes ChatUsersSpacesSpaceNotificationSettingGet =+ '[Chat'Users'Spacesettings]+ requestClient ChatUsersSpacesSpaceNotificationSettingGet {..} =+ go+ name+ xgafv+ accessToken+ callback+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ chatService+ where+ go =+ Core.buildClient+ ( Core.Proxy ::+ Core.Proxy ChatUsersSpacesSpaceNotificationSettingGetResource+ )+ Core.mempty
+ gen/Gogol/Chat/Users/Spaces/SpaceNotificationSetting/Patch.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Users.Spaces.SpaceNotificationSetting.Patch+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates the space notification state setting. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.users.spaces.spaceNotificationSetting.patch@.+module Gogol.Chat.Users.Spaces.SpaceNotificationSetting.Patch+ ( -- * Resource+ ChatUsersSpacesSpaceNotificationSettingPatchResource,++ -- ** Constructing a Request+ ChatUsersSpacesSpaceNotificationSettingPatch (..),+ newChatUsersSpacesSpaceNotificationSettingPatch,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.users.spaces.spaceNotificationSetting.patch@ method which the+-- 'ChatUsersSpacesSpaceNotificationSettingPatch' request conforms to.+type ChatUsersSpacesSpaceNotificationSettingPatchResource =+ "v1"+ Core.:> Core.Capture "name" Core.Text+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "updateMask" Core.FieldMask+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.ReqBody '[Core.JSON] SpaceNotificationSetting+ Core.:> Core.Patch '[Core.JSON] SpaceNotificationSetting++-- | Updates the space notification state setting. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+--+-- /See:/ 'newChatUsersSpacesSpaceNotificationSettingPatch' smart constructor.+data ChatUsersSpacesSpaceNotificationSettingPatch = ChatUsersSpacesSpaceNotificationSettingPatch+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Identifier. The resource name of the space notification setting. Format: @users\/{user}\/spaces\/{space}\/spaceNotificationSetting@.+ name :: Core.Text,+ -- | Multipart request metadata.+ payload :: SpaceNotificationSetting,+ -- | Required. Supported field paths: - @notification_setting@ - @mute_setting@+ updateMask :: (Core.Maybe Core.FieldMask),+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatUsersSpacesSpaceNotificationSettingPatch' with the minimum fields required to make a request.+newChatUsersSpacesSpaceNotificationSettingPatch ::+ -- | Identifier. The resource name of the space notification setting. Format: @users\/{user}\/spaces\/{space}\/spaceNotificationSetting@. See 'name'.+ Core.Text ->+ -- | Multipart request metadata. See 'payload'.+ SpaceNotificationSetting ->+ ChatUsersSpacesSpaceNotificationSettingPatch+newChatUsersSpacesSpaceNotificationSettingPatch name payload =+ ChatUsersSpacesSpaceNotificationSettingPatch+ { xgafv =+ Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ name = name,+ payload = payload,+ updateMask = Core.Nothing,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance+ Core.GoogleRequest+ ChatUsersSpacesSpaceNotificationSettingPatch+ where+ type+ Rs ChatUsersSpacesSpaceNotificationSettingPatch =+ SpaceNotificationSetting+ type+ Scopes ChatUsersSpacesSpaceNotificationSettingPatch =+ '[Chat'Users'Spacesettings]+ requestClient ChatUsersSpacesSpaceNotificationSettingPatch {..} =+ go+ name+ xgafv+ accessToken+ callback+ updateMask+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ payload+ chatService+ where+ go =+ Core.buildClient+ ( Core.Proxy ::+ Core.Proxy ChatUsersSpacesSpaceNotificationSettingPatchResource+ )+ Core.mempty
+ gen/Gogol/Chat/Users/Spaces/Threads/GetThreadReadState.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Users.Spaces.Threads.GetThreadReadState+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns details about a user\'s read state within a thread, used to identify read and unread messages. For an example, see <https://developers.google.com/workspace/chat/get-thread-read-state Get details about a user\'s thread read state>. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.users.spaces.threads.getThreadReadState@.+module Gogol.Chat.Users.Spaces.Threads.GetThreadReadState+ ( -- * Resource+ ChatUsersSpacesThreadsGetThreadReadStateResource,++ -- ** Constructing a Request+ ChatUsersSpacesThreadsGetThreadReadState (..),+ newChatUsersSpacesThreadsGetThreadReadState,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.users.spaces.threads.getThreadReadState@ method which the+-- 'ChatUsersSpacesThreadsGetThreadReadState' request conforms to.+type ChatUsersSpacesThreadsGetThreadReadStateResource =+ "v1"+ Core.:> Core.Capture "name" Core.Text+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.Get '[Core.JSON] ThreadReadState++-- | Returns details about a user\'s read state within a thread, used to identify read and unread messages. For an example, see <https://developers.google.com/workspace/chat/get-thread-read-state Get details about a user\'s thread read state>. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+--+-- /See:/ 'newChatUsersSpacesThreadsGetThreadReadState' smart constructor.+data ChatUsersSpacesThreadsGetThreadReadState = ChatUsersSpacesThreadsGetThreadReadState+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Required. Resource name of the thread read state to retrieve. Only supports getting read state for the calling user. To refer to the calling user, set one of the following: - The @me@ alias. For example, @users\/me\/spaces\/{space}\/threads\/{thread}\/threadReadState@. - Their Workspace email address. For example, @users\/user\@example.com\/spaces\/{space}\/threads\/{thread}\/threadReadState@. - Their user id. For example, @users\/123456789\/spaces\/{space}\/threads\/{thread}\/threadReadState@. Format: users\/{user}\/spaces\/{space}\/threads\/{thread}\/threadReadState+ name :: Core.Text,+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatUsersSpacesThreadsGetThreadReadState' with the minimum fields required to make a request.+newChatUsersSpacesThreadsGetThreadReadState ::+ -- | Required. Resource name of the thread read state to retrieve. Only supports getting read state for the calling user. To refer to the calling user, set one of the following: - The @me@ alias. For example, @users\/me\/spaces\/{space}\/threads\/{thread}\/threadReadState@. - Their Workspace email address. For example, @users\/user\@example.com\/spaces\/{space}\/threads\/{thread}\/threadReadState@. - Their user id. For example, @users\/123456789\/spaces\/{space}\/threads\/{thread}\/threadReadState@. Format: users\/{user}\/spaces\/{space}\/threads\/{thread}\/threadReadState See 'name'.+ Core.Text ->+ ChatUsersSpacesThreadsGetThreadReadState+newChatUsersSpacesThreadsGetThreadReadState name =+ ChatUsersSpacesThreadsGetThreadReadState+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ name = name,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance+ Core.GoogleRequest+ ChatUsersSpacesThreadsGetThreadReadState+ where+ type Rs ChatUsersSpacesThreadsGetThreadReadState = ThreadReadState+ type+ Scopes ChatUsersSpacesThreadsGetThreadReadState =+ '[Chat'Users'Readstate, Chat'Users'Readstate'Readonly]+ requestClient ChatUsersSpacesThreadsGetThreadReadState {..} =+ go+ name+ xgafv+ accessToken+ callback+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ chatService+ where+ go =+ Core.buildClient+ ( Core.Proxy ::+ Core.Proxy ChatUsersSpacesThreadsGetThreadReadStateResource+ )+ Core.mempty
+ gen/Gogol/Chat/Users/Spaces/UpdateSpaceReadState.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DerivingStrategies #-}+{-# LANGUAGE DuplicateRecordFields #-}+{-# LANGUAGE ImportQualifiedPost #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE StrictData #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- |+-- Module : Gogol.Chat.Users.Spaces.UpdateSpaceReadState+-- Copyright : (c) 2015-2025 Brendan Hay+-- License : Mozilla Public License, v. 2.0.+-- Maintainer : Brendan Hay <brendan.g.hay+gogol@gmail.com>+-- Toni Cebrián <toni@tonicebrian.com>+-- Stability : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Updates a user\'s read state within a space, used to identify read and unread messages. For an example, see <https://developers.google.com/workspace/chat/update-space-read-state Update a user\'s space read state>. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+--+-- /See:/ <https://developers.google.com/hangouts/chat Google Chat API Reference> for @chat.users.spaces.updateSpaceReadState@.+module Gogol.Chat.Users.Spaces.UpdateSpaceReadState+ ( -- * Resource+ ChatUsersSpacesUpdateSpaceReadStateResource,++ -- ** Constructing a Request+ ChatUsersSpacesUpdateSpaceReadState (..),+ newChatUsersSpacesUpdateSpaceReadState,+ )+where++import Gogol.Chat.Types+import Gogol.Prelude qualified as Core++-- | A resource alias for @chat.users.spaces.updateSpaceReadState@ method which the+-- 'ChatUsersSpacesUpdateSpaceReadState' request conforms to.+type ChatUsersSpacesUpdateSpaceReadStateResource =+ "v1"+ Core.:> Core.Capture "name" Core.Text+ Core.:> Core.QueryParam "$.xgafv" Xgafv+ Core.:> Core.QueryParam "access_token" Core.Text+ Core.:> Core.QueryParam "callback" Core.Text+ Core.:> Core.QueryParam "updateMask" Core.FieldMask+ Core.:> Core.QueryParam "uploadType" Core.Text+ Core.:> Core.QueryParam "upload_protocol" Core.Text+ Core.:> Core.QueryParam "alt" Core.AltJSON+ Core.:> Core.ReqBody '[Core.JSON] SpaceReadState+ Core.:> Core.Patch '[Core.JSON] SpaceReadState++-- | Updates a user\'s read state within a space, used to identify read and unread messages. For an example, see <https://developers.google.com/workspace/chat/update-space-read-state Update a user\'s space read state>. Requires <https://developers.google.com/workspace/chat/authenticate-authorize-chat-user user authentication>.+--+-- /See:/ 'newChatUsersSpacesUpdateSpaceReadState' smart constructor.+data ChatUsersSpacesUpdateSpaceReadState = ChatUsersSpacesUpdateSpaceReadState+ { -- | V1 error format.+ xgafv :: (Core.Maybe Xgafv),+ -- | OAuth access token.+ accessToken :: (Core.Maybe Core.Text),+ -- | JSONP+ callback :: (Core.Maybe Core.Text),+ -- | Resource name of the space read state. Format: @users\/{user}\/spaces\/{space}\/spaceReadState@+ name :: Core.Text,+ -- | Multipart request metadata.+ payload :: SpaceReadState,+ -- | Required. The field paths to update. Currently supported field paths: - @last_read_time@ When the @last_read_time@ is before the latest message create time, the space appears as unread in the UI. To mark the space as read, set @last_read_time@ to any value later (larger) than the latest message create time. The @last_read_time@ is coerced to match the latest message create time. Note that the space read state only affects the read state of messages that are visible in the space\'s top-level conversation. Replies in threads are unaffected by this timestamp, and instead rely on the thread read state.+ updateMask :: (Core.Maybe Core.FieldMask),+ -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").+ uploadType :: (Core.Maybe Core.Text),+ -- | Upload protocol for media (e.g. \"raw\", \"multipart\").+ uploadProtocol :: (Core.Maybe Core.Text)+ }+ deriving (Core.Eq, Core.Show, Core.Generic)++-- | Creates a value of 'ChatUsersSpacesUpdateSpaceReadState' with the minimum fields required to make a request.+newChatUsersSpacesUpdateSpaceReadState ::+ -- | Resource name of the space read state. Format: @users\/{user}\/spaces\/{space}\/spaceReadState@ See 'name'.+ Core.Text ->+ -- | Multipart request metadata. See 'payload'.+ SpaceReadState ->+ ChatUsersSpacesUpdateSpaceReadState+newChatUsersSpacesUpdateSpaceReadState name payload =+ ChatUsersSpacesUpdateSpaceReadState+ { xgafv = Core.Nothing,+ accessToken = Core.Nothing,+ callback = Core.Nothing,+ name = name,+ payload = payload,+ updateMask = Core.Nothing,+ uploadType = Core.Nothing,+ uploadProtocol = Core.Nothing+ }++instance Core.GoogleRequest ChatUsersSpacesUpdateSpaceReadState where+ type Rs ChatUsersSpacesUpdateSpaceReadState = SpaceReadState+ type+ Scopes ChatUsersSpacesUpdateSpaceReadState =+ '[Chat'Users'Readstate]+ requestClient ChatUsersSpacesUpdateSpaceReadState {..} =+ go+ name+ xgafv+ accessToken+ callback+ updateMask+ uploadType+ uploadProtocol+ (Core.Just Core.AltJSON)+ payload+ chatService+ where+ go =+ Core.buildClient+ ( Core.Proxy ::+ Core.Proxy ChatUsersSpacesUpdateSpaceReadStateResource+ )+ Core.mempty
− gen/Network/Google/Chat.hs
@@ -1,308 +0,0 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE TypeOperators #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}---- |--- Module : Network.Google.Chat--- Copyright : (c) 2015-2016 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)------ Enables bots to fetch information and perform actions in Hangouts Chat.------ /See:/ <https://developers.google.com/hangouts/chat Hangouts Chat API Reference>-module Network.Google.Chat- (- -- * Service Configuration- chatService-- -- * API Declaration- , ChatAPI-- -- * Resources-- -- ** chat.spaces.get- , module Network.Google.Resource.Chat.Spaces.Get-- -- ** chat.spaces.list- , module Network.Google.Resource.Chat.Spaces.List-- -- ** chat.spaces.members.get- , module Network.Google.Resource.Chat.Spaces.Members.Get-- -- ** chat.spaces.members.list- , module Network.Google.Resource.Chat.Spaces.Members.List-- -- ** chat.spaces.messages.create- , module Network.Google.Resource.Chat.Spaces.Messages.Create-- -- ** chat.spaces.messages.delete- , module Network.Google.Resource.Chat.Spaces.Messages.Delete-- -- ** chat.spaces.messages.get- , module Network.Google.Resource.Chat.Spaces.Messages.Get-- -- ** chat.spaces.messages.update- , module Network.Google.Resource.Chat.Spaces.Messages.Update-- -- * Types-- -- ** Card- , Card- , card- , cCardActions- , cName- , cHeader- , cSections-- -- ** Space- , Space- , space- , sName- , sDisplayName- , sType-- -- ** KeyValue- , KeyValue- , keyValue- , kvOnClick- , kvTopLabel- , kvIcon- , kvButton- , kvContent- , kvIconURL- , kvContentMultiline- , kvBottomLabel-- -- ** WidgetMarkup- , WidgetMarkup- , widgetMarkup- , wmKeyValue- , wmImage- , wmButtons- , wmTextParagraph-- -- ** OnClick- , OnClick- , onClick- , ocAction- , ocOpenLink-- -- ** Annotation- , Annotation- , annotation- , aLength- , aType- , aUserMention- , aStartIndex-- -- ** Image- , Image- , image- , iOnClick- , iAspectRatio- , iImageURL-- -- ** KeyValueIcon- , KeyValueIcon (..)-- -- ** ActionParameter- , ActionParameter- , actionParameter- , apValue- , apKey-- -- ** Membership- , Membership- , membership- , mState- , mName- , mMember- , mCreateTime-- -- ** ActionResponseType- , ActionResponseType (..)-- -- ** Empty- , Empty- , empty-- -- ** DeprecatedEvent- , DeprecatedEvent- , deprecatedEvent- , deSpace- , deToken- , deAction- , deEventTime- , deUser- , deConfigCompleteRedirectURL- , deType- , deMessage- , deThreadKey-- -- ** MembershipState- , MembershipState (..)-- -- ** CardHeaderImageStyle- , CardHeaderImageStyle (..)-- -- ** TextParagraph- , TextParagraph- , textParagraph- , tpText-- -- ** Button- , Button- , button- , bTextButton- , bImageButton-- -- ** UserMentionMetadataType- , UserMentionMetadataType (..)-- -- ** ListSpacesResponse- , ListSpacesResponse- , listSpacesResponse- , lsrNextPageToken- , lsrSpaces-- -- ** User- , User- , user- , uName- , uDisplayName- , uType-- -- ** SpaceType- , SpaceType (..)-- -- ** OpenLink- , OpenLink- , openLink- , olURL-- -- ** AnnotationType- , AnnotationType (..)-- -- ** ImageButtonIcon- , ImageButtonIcon (..)-- -- ** CardAction- , CardAction- , cardAction- , caOnClick- , caActionLabel-- -- ** Xgafv- , Xgafv (..)-- -- ** DeprecatedEventType- , DeprecatedEventType (..)-- -- ** ActionResponse- , ActionResponse- , actionResponse- , arURL- , arType-- -- ** FormAction- , FormAction- , formAction- , faActionMethodName- , faParameters-- -- ** ListMembershipsResponse- , ListMembershipsResponse- , listMembershipsResponse- , lmrNextPageToken- , lmrMemberships-- -- ** Message- , Message- , message- , mesAnnotations- , mesSpace- , mesText- , mesSender- , mesName- , mesPreviewText- , mesCards- , mesActionResponse- , mesArgumentText- , mesThread- , mesFallbackText- , mesCreateTime-- -- ** CardHeader- , CardHeader- , cardHeader- , chSubtitle- , chImageURL- , chTitle- , chImageStyle-- -- ** TextButton- , TextButton- , textButton- , tbOnClick- , tbText-- -- ** Thread- , Thread- , thread- , tName-- -- ** UserMentionMetadata- , UserMentionMetadata- , userMentionMetadata- , ummUser- , ummType-- -- ** ImageButton- , ImageButton- , imageButton- , ibOnClick- , ibIcon- , ibName- , ibIconURL-- -- ** Section- , Section- , section- , sWidgets- , sHeader-- -- ** UserType- , UserType (..)- ) where--import Network.Google.Chat.Types-import Network.Google.Prelude-import Network.Google.Resource.Chat.Spaces.Get-import Network.Google.Resource.Chat.Spaces.List-import Network.Google.Resource.Chat.Spaces.Members.Get-import Network.Google.Resource.Chat.Spaces.Members.List-import Network.Google.Resource.Chat.Spaces.Messages.Create-import Network.Google.Resource.Chat.Spaces.Messages.Delete-import Network.Google.Resource.Chat.Spaces.Messages.Get-import Network.Google.Resource.Chat.Spaces.Messages.Update--{- $resources-TODO--}---- | Represents the entirety of the methods and resources available for the Hangouts Chat API service.-type ChatAPI =- SpacesMembersListResource :<|>- SpacesMembersGetResource- :<|> SpacesMessagesGetResource- :<|> SpacesMessagesCreateResource- :<|> SpacesMessagesDeleteResource- :<|> SpacesMessagesUpdateResource- :<|> SpacesListResource- :<|> SpacesGetResource
− gen/Network/Google/Chat/Types.hs
@@ -1,259 +0,0 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- |--- Module : Network.Google.Chat.Types--- Copyright : (c) 2015-2016 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)----module Network.Google.Chat.Types- (- -- * Service Configuration- chatService-- -- * Card- , Card- , card- , cCardActions- , cName- , cHeader- , cSections-- -- * Space- , Space- , space- , sName- , sDisplayName- , sType-- -- * KeyValue- , KeyValue- , keyValue- , kvOnClick- , kvTopLabel- , kvIcon- , kvButton- , kvContent- , kvIconURL- , kvContentMultiline- , kvBottomLabel-- -- * WidgetMarkup- , WidgetMarkup- , widgetMarkup- , wmKeyValue- , wmImage- , wmButtons- , wmTextParagraph-- -- * OnClick- , OnClick- , onClick- , ocAction- , ocOpenLink-- -- * Annotation- , Annotation- , annotation- , aLength- , aType- , aUserMention- , aStartIndex-- -- * Image- , Image- , image- , iOnClick- , iAspectRatio- , iImageURL-- -- * KeyValueIcon- , KeyValueIcon (..)-- -- * ActionParameter- , ActionParameter- , actionParameter- , apValue- , apKey-- -- * Membership- , Membership- , membership- , mState- , mName- , mMember- , mCreateTime-- -- * ActionResponseType- , ActionResponseType (..)-- -- * Empty- , Empty- , empty-- -- * DeprecatedEvent- , DeprecatedEvent- , deprecatedEvent- , deSpace- , deToken- , deAction- , deEventTime- , deUser- , deConfigCompleteRedirectURL- , deType- , deMessage- , deThreadKey-- -- * MembershipState- , MembershipState (..)-- -- * CardHeaderImageStyle- , CardHeaderImageStyle (..)-- -- * TextParagraph- , TextParagraph- , textParagraph- , tpText-- -- * Button- , Button- , button- , bTextButton- , bImageButton-- -- * UserMentionMetadataType- , UserMentionMetadataType (..)-- -- * ListSpacesResponse- , ListSpacesResponse- , listSpacesResponse- , lsrNextPageToken- , lsrSpaces-- -- * User- , User- , user- , uName- , uDisplayName- , uType-- -- * SpaceType- , SpaceType (..)-- -- * OpenLink- , OpenLink- , openLink- , olURL-- -- * AnnotationType- , AnnotationType (..)-- -- * ImageButtonIcon- , ImageButtonIcon (..)-- -- * CardAction- , CardAction- , cardAction- , caOnClick- , caActionLabel-- -- * Xgafv- , Xgafv (..)-- -- * DeprecatedEventType- , DeprecatedEventType (..)-- -- * ActionResponse- , ActionResponse- , actionResponse- , arURL- , arType-- -- * FormAction- , FormAction- , formAction- , faActionMethodName- , faParameters-- -- * ListMembershipsResponse- , ListMembershipsResponse- , listMembershipsResponse- , lmrNextPageToken- , lmrMemberships-- -- * Message- , Message- , message- , mesAnnotations- , mesSpace- , mesText- , mesSender- , mesName- , mesPreviewText- , mesCards- , mesActionResponse- , mesArgumentText- , mesThread- , mesFallbackText- , mesCreateTime-- -- * CardHeader- , CardHeader- , cardHeader- , chSubtitle- , chImageURL- , chTitle- , chImageStyle-- -- * TextButton- , TextButton- , textButton- , tbOnClick- , tbText-- -- * Thread- , Thread- , thread- , tName-- -- * UserMentionMetadata- , UserMentionMetadata- , userMentionMetadata- , ummUser- , ummType-- -- * ImageButton- , ImageButton- , imageButton- , ibOnClick- , ibIcon- , ibName- , ibIconURL-- -- * Section- , Section- , section- , sWidgets- , sHeader-- -- * UserType- , UserType (..)- ) where--import Network.Google.Chat.Types.Product-import Network.Google.Chat.Types.Sum-import Network.Google.Prelude---- | Default request referring to version 'v1' of the Hangouts Chat API. This contains the host and root path used as a starting point for constructing service requests.-chatService :: ServiceConfig-chatService- = defaultService (ServiceId "chat:v1")- "chat.googleapis.com"
− gen/Network/Google/Chat/Types/Product.hs
@@ -1,1732 +0,0 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}--{-# OPTIONS_GHC -fno-warn-unused-binds #-}-{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- |--- Module : Network.Google.Chat.Types.Product--- Copyright : (c) 2015-2016 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)----module Network.Google.Chat.Types.Product where--import Network.Google.Chat.Types.Sum-import Network.Google.Prelude---- | A card is a UI element that can contain UI widgets such as texts,--- images.------ /See:/ 'card' smart constructor.-data Card =- Card'- { _cCardActions :: !(Maybe [CardAction])- , _cName :: !(Maybe Text)- , _cHeader :: !(Maybe CardHeader)- , _cSections :: !(Maybe [Section])- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Card' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'cCardActions'------ * 'cName'------ * 'cHeader'------ * 'cSections'-card- :: Card-card =- Card'- { _cCardActions = Nothing- , _cName = Nothing- , _cHeader = Nothing- , _cSections = Nothing- }----- | The actions of this card.-cCardActions :: Lens' Card [CardAction]-cCardActions- = lens _cCardActions (\ s a -> s{_cCardActions = a})- . _Default- . _Coerce---- | Name of the card.-cName :: Lens' Card (Maybe Text)-cName = lens _cName (\ s a -> s{_cName = a})---- | The header of the card. A header usually contains a title and an image.-cHeader :: Lens' Card (Maybe CardHeader)-cHeader = lens _cHeader (\ s a -> s{_cHeader = a})---- | Sections are separated by a line divider.-cSections :: Lens' Card [Section]-cSections- = lens _cSections (\ s a -> s{_cSections = a}) .- _Default- . _Coerce--instance FromJSON Card where- parseJSON- = withObject "Card"- (\ o ->- Card' <$>- (o .:? "cardActions" .!= mempty) <*> (o .:? "name")- <*> (o .:? "header")- <*> (o .:? "sections" .!= mempty))--instance ToJSON Card where- toJSON Card'{..}- = object- (catMaybes- [("cardActions" .=) <$> _cCardActions,- ("name" .=) <$> _cName, ("header" .=) <$> _cHeader,- ("sections" .=) <$> _cSections])---- | A room or DM in Hangouts Chat.------ /See:/ 'space' smart constructor.-data Space =- Space'- { _sName :: !(Maybe Text)- , _sDisplayName :: !(Maybe Text)- , _sType :: !(Maybe SpaceType)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Space' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sName'------ * 'sDisplayName'------ * 'sType'-space- :: Space-space = Space' {_sName = Nothing, _sDisplayName = Nothing, _sType = Nothing}----- | Resource name of the space, in the form \"spaces\/*\". Example:--- spaces\/AAAAMpdlehYs-sName :: Lens' Space (Maybe Text)-sName = lens _sName (\ s a -> s{_sName = a})---- | Output only. The display name (only if the space is a room).-sDisplayName :: Lens' Space (Maybe Text)-sDisplayName- = lens _sDisplayName (\ s a -> s{_sDisplayName = a})---- | Output only. The type of a space.-sType :: Lens' Space (Maybe SpaceType)-sType = lens _sType (\ s a -> s{_sType = a})--instance FromJSON Space where- parseJSON- = withObject "Space"- (\ o ->- Space' <$>- (o .:? "name") <*> (o .:? "displayName") <*>- (o .:? "type"))--instance ToJSON Space where- toJSON Space'{..}- = object- (catMaybes- [("name" .=) <$> _sName,- ("displayName" .=) <$> _sDisplayName,- ("type" .=) <$> _sType])---- | A UI element contains a key (label) and a value (content). And this--- element may also contain some actions such as onclick button.------ /See:/ 'keyValue' smart constructor.-data KeyValue =- KeyValue'- { _kvOnClick :: !(Maybe OnClick)- , _kvTopLabel :: !(Maybe Text)- , _kvIcon :: !(Maybe KeyValueIcon)- , _kvButton :: !(Maybe Button)- , _kvContent :: !(Maybe Text)- , _kvIconURL :: !(Maybe Text)- , _kvContentMultiline :: !(Maybe Bool)- , _kvBottomLabel :: !(Maybe Text)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'KeyValue' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'kvOnClick'------ * 'kvTopLabel'------ * 'kvIcon'------ * 'kvButton'------ * 'kvContent'------ * 'kvIconURL'------ * 'kvContentMultiline'------ * 'kvBottomLabel'-keyValue- :: KeyValue-keyValue =- KeyValue'- { _kvOnClick = Nothing- , _kvTopLabel = Nothing- , _kvIcon = Nothing- , _kvButton = Nothing- , _kvContent = Nothing- , _kvIconURL = Nothing- , _kvContentMultiline = Nothing- , _kvBottomLabel = Nothing- }----- | The onclick action. Only the top label, bottom label and content region--- are clickable.-kvOnClick :: Lens' KeyValue (Maybe OnClick)-kvOnClick- = lens _kvOnClick (\ s a -> s{_kvOnClick = a})---- | The text of the top label. Formatted text supported.-kvTopLabel :: Lens' KeyValue (Maybe Text)-kvTopLabel- = lens _kvTopLabel (\ s a -> s{_kvTopLabel = a})---- | An enum value that will be replaced by the Chat API with the--- corresponding icon image.-kvIcon :: Lens' KeyValue (Maybe KeyValueIcon)-kvIcon = lens _kvIcon (\ s a -> s{_kvIcon = a})---- | A button that can be clicked to trigger an action.-kvButton :: Lens' KeyValue (Maybe Button)-kvButton = lens _kvButton (\ s a -> s{_kvButton = a})---- | The text of the content. Formatted text supported and always required.-kvContent :: Lens' KeyValue (Maybe Text)-kvContent- = lens _kvContent (\ s a -> s{_kvContent = a})---- | The icon specified by a URL.-kvIconURL :: Lens' KeyValue (Maybe Text)-kvIconURL- = lens _kvIconURL (\ s a -> s{_kvIconURL = a})---- | If the content should be multiline.-kvContentMultiline :: Lens' KeyValue (Maybe Bool)-kvContentMultiline- = lens _kvContentMultiline- (\ s a -> s{_kvContentMultiline = a})---- | The text of the bottom label. Formatted text supported.-kvBottomLabel :: Lens' KeyValue (Maybe Text)-kvBottomLabel- = lens _kvBottomLabel- (\ s a -> s{_kvBottomLabel = a})--instance FromJSON KeyValue where- parseJSON- = withObject "KeyValue"- (\ o ->- KeyValue' <$>- (o .:? "onClick") <*> (o .:? "topLabel") <*>- (o .:? "icon")- <*> (o .:? "button")- <*> (o .:? "content")- <*> (o .:? "iconUrl")- <*> (o .:? "contentMultiline")- <*> (o .:? "bottomLabel"))--instance ToJSON KeyValue where- toJSON KeyValue'{..}- = object- (catMaybes- [("onClick" .=) <$> _kvOnClick,- ("topLabel" .=) <$> _kvTopLabel,- ("icon" .=) <$> _kvIcon, ("button" .=) <$> _kvButton,- ("content" .=) <$> _kvContent,- ("iconUrl" .=) <$> _kvIconURL,- ("contentMultiline" .=) <$> _kvContentMultiline,- ("bottomLabel" .=) <$> _kvBottomLabel])---- | A widget is a UI element that presents texts, images, etc.------ /See:/ 'widgetMarkup' smart constructor.-data WidgetMarkup =- WidgetMarkup'- { _wmKeyValue :: !(Maybe KeyValue)- , _wmImage :: !(Maybe Image)- , _wmButtons :: !(Maybe [Button])- , _wmTextParagraph :: !(Maybe TextParagraph)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'WidgetMarkup' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'wmKeyValue'------ * 'wmImage'------ * 'wmButtons'------ * 'wmTextParagraph'-widgetMarkup- :: WidgetMarkup-widgetMarkup =- WidgetMarkup'- { _wmKeyValue = Nothing- , _wmImage = Nothing- , _wmButtons = Nothing- , _wmTextParagraph = Nothing- }----- | Display a key value item in this widget.-wmKeyValue :: Lens' WidgetMarkup (Maybe KeyValue)-wmKeyValue- = lens _wmKeyValue (\ s a -> s{_wmKeyValue = a})---- | Display an image in this widget.-wmImage :: Lens' WidgetMarkup (Maybe Image)-wmImage = lens _wmImage (\ s a -> s{_wmImage = a})---- | A list of buttons. Buttons is also oneof data and only one of these--- fields should be set.-wmButtons :: Lens' WidgetMarkup [Button]-wmButtons- = lens _wmButtons (\ s a -> s{_wmButtons = a}) .- _Default- . _Coerce---- | Display a text paragraph in this widget.-wmTextParagraph :: Lens' WidgetMarkup (Maybe TextParagraph)-wmTextParagraph- = lens _wmTextParagraph- (\ s a -> s{_wmTextParagraph = a})--instance FromJSON WidgetMarkup where- parseJSON- = withObject "WidgetMarkup"- (\ o ->- WidgetMarkup' <$>- (o .:? "keyValue") <*> (o .:? "image") <*>- (o .:? "buttons" .!= mempty)- <*> (o .:? "textParagraph"))--instance ToJSON WidgetMarkup where- toJSON WidgetMarkup'{..}- = object- (catMaybes- [("keyValue" .=) <$> _wmKeyValue,- ("image" .=) <$> _wmImage,- ("buttons" .=) <$> _wmButtons,- ("textParagraph" .=) <$> _wmTextParagraph])---- | An onclick action (e.g. open a link).------ /See:/ 'onClick' smart constructor.-data OnClick =- OnClick'- { _ocAction :: !(Maybe FormAction)- , _ocOpenLink :: !(Maybe OpenLink)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'OnClick' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ocAction'------ * 'ocOpenLink'-onClick- :: OnClick-onClick = OnClick' {_ocAction = Nothing, _ocOpenLink = Nothing}----- | A form action will be trigger by this onclick if specified.-ocAction :: Lens' OnClick (Maybe FormAction)-ocAction = lens _ocAction (\ s a -> s{_ocAction = a})---- | This onclick triggers an open link action if specified.-ocOpenLink :: Lens' OnClick (Maybe OpenLink)-ocOpenLink- = lens _ocOpenLink (\ s a -> s{_ocOpenLink = a})--instance FromJSON OnClick where- parseJSON- = withObject "OnClick"- (\ o ->- OnClick' <$> (o .:? "action") <*> (o .:? "openLink"))--instance ToJSON OnClick where- toJSON OnClick'{..}- = object- (catMaybes- [("action" .=) <$> _ocAction,- ("openLink" .=) <$> _ocOpenLink])---- | Annotations associated with the plain-text body of the message. Example--- plain-text message body: \`\`\` Hello \'FooBot how are you!\" \`\`\` The--- corresponding annotations metadata: \`\`\` \"annotations\":[{--- \"type\":\"USER_MENTION\", \"startIndex\":6, \"length\":7,--- \"userMention\": { \"user\": {--- \"name\":\"users\/107946847022116401880\", \"displayName\":\"FooBot\",--- \"avatarUrl\":\"https:\/\/goo.gl\/aeDtrS\", \"type\":\"BOT\" },--- \"type\":\"MENTION\" } }] \`\`\`------ /See:/ 'annotation' smart constructor.-data Annotation =- Annotation'- { _aLength :: !(Maybe (Textual Int32))- , _aType :: !(Maybe AnnotationType)- , _aUserMention :: !(Maybe UserMentionMetadata)- , _aStartIndex :: !(Maybe (Textual Int32))- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Annotation' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'aLength'------ * 'aType'------ * 'aUserMention'------ * 'aStartIndex'-annotation- :: Annotation-annotation =- Annotation'- { _aLength = Nothing- , _aType = Nothing- , _aUserMention = Nothing- , _aStartIndex = Nothing- }----- | Length of the substring in the plain-text message body this annotation--- corresponds to.-aLength :: Lens' Annotation (Maybe Int32)-aLength- = lens _aLength (\ s a -> s{_aLength = a}) .- mapping _Coerce---- | The type of this annotation.-aType :: Lens' Annotation (Maybe AnnotationType)-aType = lens _aType (\ s a -> s{_aType = a})---- | The metadata of user mention.-aUserMention :: Lens' Annotation (Maybe UserMentionMetadata)-aUserMention- = lens _aUserMention (\ s a -> s{_aUserMention = a})---- | Start index (0-based, inclusive) in the plain-text message body this--- annotation corresponds to.-aStartIndex :: Lens' Annotation (Maybe Int32)-aStartIndex- = lens _aStartIndex (\ s a -> s{_aStartIndex = a}) .- mapping _Coerce--instance FromJSON Annotation where- parseJSON- = withObject "Annotation"- (\ o ->- Annotation' <$>- (o .:? "length") <*> (o .:? "type") <*>- (o .:? "userMention")- <*> (o .:? "startIndex"))--instance ToJSON Annotation where- toJSON Annotation'{..}- = object- (catMaybes- [("length" .=) <$> _aLength, ("type" .=) <$> _aType,- ("userMention" .=) <$> _aUserMention,- ("startIndex" .=) <$> _aStartIndex])---- | An image that is specified by a URL and can have an onclick action.------ /See:/ 'image' smart constructor.-data Image =- Image'- { _iOnClick :: !(Maybe OnClick)- , _iAspectRatio :: !(Maybe (Textual Double))- , _iImageURL :: !(Maybe Text)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Image' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'iOnClick'------ * 'iAspectRatio'------ * 'iImageURL'-image- :: Image-image =- Image' {_iOnClick = Nothing, _iAspectRatio = Nothing, _iImageURL = Nothing}----- | The onclick action.-iOnClick :: Lens' Image (Maybe OnClick)-iOnClick = lens _iOnClick (\ s a -> s{_iOnClick = a})---- | The aspect ratio of this image (width\/height).-iAspectRatio :: Lens' Image (Maybe Double)-iAspectRatio- = lens _iAspectRatio (\ s a -> s{_iAspectRatio = a})- . mapping _Coerce---- | The URL of the image.-iImageURL :: Lens' Image (Maybe Text)-iImageURL- = lens _iImageURL (\ s a -> s{_iImageURL = a})--instance FromJSON Image where- parseJSON- = withObject "Image"- (\ o ->- Image' <$>- (o .:? "onClick") <*> (o .:? "aspectRatio") <*>- (o .:? "imageUrl"))--instance ToJSON Image where- toJSON Image'{..}- = object- (catMaybes- [("onClick" .=) <$> _iOnClick,- ("aspectRatio" .=) <$> _iAspectRatio,- ("imageUrl" .=) <$> _iImageURL])---- | List of string parameters to supply when the action method is invoked.--- For example, consider three snooze buttons: snooze now, snooze 1 day,--- snooze next week. You might use action method = snooze(), passing the--- snooze type and snooze time in the list of string parameters.------ /See:/ 'actionParameter' smart constructor.-data ActionParameter =- ActionParameter'- { _apValue :: !(Maybe Text)- , _apKey :: !(Maybe Text)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ActionParameter' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'apValue'------ * 'apKey'-actionParameter- :: ActionParameter-actionParameter = ActionParameter' {_apValue = Nothing, _apKey = Nothing}----- | The value of the parameter.-apValue :: Lens' ActionParameter (Maybe Text)-apValue = lens _apValue (\ s a -> s{_apValue = a})---- | The name of the parameter for the action script.-apKey :: Lens' ActionParameter (Maybe Text)-apKey = lens _apKey (\ s a -> s{_apKey = a})--instance FromJSON ActionParameter where- parseJSON- = withObject "ActionParameter"- (\ o ->- ActionParameter' <$>- (o .:? "value") <*> (o .:? "key"))--instance ToJSON ActionParameter where- toJSON ActionParameter'{..}- = object- (catMaybes- [("value" .=) <$> _apValue, ("key" .=) <$> _apKey])---- | Represents a membership relation in Hangouts Chat.------ /See:/ 'membership' smart constructor.-data Membership =- Membership'- { _mState :: !(Maybe MembershipState)- , _mName :: !(Maybe Text)- , _mMember :: !(Maybe User)- , _mCreateTime :: !(Maybe DateTime')- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Membership' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mState'------ * 'mName'------ * 'mMember'------ * 'mCreateTime'-membership- :: Membership-membership =- Membership'- { _mState = Nothing- , _mName = Nothing- , _mMember = Nothing- , _mCreateTime = Nothing- }----- | State of the membership.-mState :: Lens' Membership (Maybe MembershipState)-mState = lens _mState (\ s a -> s{_mState = a})---- | Resource name of the membership, in the form \"spaces\/*\/members\/*\".--- Example: spaces\/AAAAMpdlehY\/members\/105115627578887013105-mName :: Lens' Membership (Maybe Text)-mName = lens _mName (\ s a -> s{_mName = a})---- | Member details.-mMember :: Lens' Membership (Maybe User)-mMember = lens _mMember (\ s a -> s{_mMember = a})---- | The creation time of the membership a.k.a the time at which the member--- joined the space, if applicable.-mCreateTime :: Lens' Membership (Maybe UTCTime)-mCreateTime- = lens _mCreateTime (\ s a -> s{_mCreateTime = a}) .- mapping _DateTime--instance FromJSON Membership where- parseJSON- = withObject "Membership"- (\ o ->- Membership' <$>- (o .:? "state") <*> (o .:? "name") <*>- (o .:? "member")- <*> (o .:? "createTime"))--instance ToJSON Membership where- toJSON Membership'{..}- = object- (catMaybes- [("state" .=) <$> _mState, ("name" .=) <$> _mName,- ("member" .=) <$> _mMember,- ("createTime" .=) <$> _mCreateTime])---- | A generic empty message that you can re-use to avoid defining duplicated--- empty messages in your APIs. A typical example is to use it as the--- request or the response type of an API method. For instance: service Foo--- { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The--- JSON representation for \`Empty\` is empty JSON object \`{}\`.------ /See:/ 'empty' smart constructor.-data Empty =- Empty'- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Empty' with the minimum fields required to make a request.----empty- :: Empty-empty = Empty'---instance FromJSON Empty where- parseJSON = withObject "Empty" (\ o -> pure Empty')--instance ToJSON Empty where- toJSON = const emptyObject---- | Hangouts Chat events.------ /See:/ 'deprecatedEvent' smart constructor.-data DeprecatedEvent =- DeprecatedEvent'- { _deSpace :: !(Maybe Space)- , _deToken :: !(Maybe Text)- , _deAction :: !(Maybe FormAction)- , _deEventTime :: !(Maybe DateTime')- , _deUser :: !(Maybe User)- , _deConfigCompleteRedirectURL :: !(Maybe Text)- , _deType :: !(Maybe DeprecatedEventType)- , _deMessage :: !(Maybe Message)- , _deThreadKey :: !(Maybe Text)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'DeprecatedEvent' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'deSpace'------ * 'deToken'------ * 'deAction'------ * 'deEventTime'------ * 'deUser'------ * 'deConfigCompleteRedirectURL'------ * 'deType'------ * 'deMessage'------ * 'deThreadKey'-deprecatedEvent- :: DeprecatedEvent-deprecatedEvent =- DeprecatedEvent'- { _deSpace = Nothing- , _deToken = Nothing- , _deAction = Nothing- , _deEventTime = Nothing- , _deUser = Nothing- , _deConfigCompleteRedirectURL = Nothing- , _deType = Nothing- , _deMessage = Nothing- , _deThreadKey = Nothing- }----- | The room or DM in which the event occurred.-deSpace :: Lens' DeprecatedEvent (Maybe Space)-deSpace = lens _deSpace (\ s a -> s{_deSpace = a})---- | A secret value that bots can use to verify if a request is from Google.--- The token is randomly generated by Google, remains static, and can be--- obtained from the Hangouts Chat API configuration page in the Cloud--- Console. Developers can revoke\/regenerate it if needed from the same--- page.-deToken :: Lens' DeprecatedEvent (Maybe Text)-deToken = lens _deToken (\ s a -> s{_deToken = a})---- | The form action data associated with an interactive card that was--- clicked. Only populated for CARD_CLICKED events. See the [Interactive--- Cards guide](\/hangouts\/chat\/how-tos\/cards-onclick) for more--- information.-deAction :: Lens' DeprecatedEvent (Maybe FormAction)-deAction = lens _deAction (\ s a -> s{_deAction = a})---- | The timestamp indicating when the event was dispatched.-deEventTime :: Lens' DeprecatedEvent (Maybe UTCTime)-deEventTime- = lens _deEventTime (\ s a -> s{_deEventTime = a}) .- mapping _DateTime---- | The user that triggered the event.-deUser :: Lens' DeprecatedEvent (Maybe User)-deUser = lens _deUser (\ s a -> s{_deUser = a})---- | The URL the bot should redirect the user to after they have completed an--- authorization or configuration flow outside of Hangouts Chat. See the--- [Authorizing access to 3p services--- guide](\/hangouts\/chat\/how-tos\/auth-3p) for more information.-deConfigCompleteRedirectURL :: Lens' DeprecatedEvent (Maybe Text)-deConfigCompleteRedirectURL- = lens _deConfigCompleteRedirectURL- (\ s a -> s{_deConfigCompleteRedirectURL = a})---- | The type of the event.-deType :: Lens' DeprecatedEvent (Maybe DeprecatedEventType)-deType = lens _deType (\ s a -> s{_deType = a})---- | The message that triggered the event, if applicable.-deMessage :: Lens' DeprecatedEvent (Maybe Message)-deMessage- = lens _deMessage (\ s a -> s{_deMessage = a})---- | The bot-defined key for the thread related to the event. See the--- thread_key field of the \`spaces.message.create\` request for more--- information.-deThreadKey :: Lens' DeprecatedEvent (Maybe Text)-deThreadKey- = lens _deThreadKey (\ s a -> s{_deThreadKey = a})--instance FromJSON DeprecatedEvent where- parseJSON- = withObject "DeprecatedEvent"- (\ o ->- DeprecatedEvent' <$>- (o .:? "space") <*> (o .:? "token") <*>- (o .:? "action")- <*> (o .:? "eventTime")- <*> (o .:? "user")- <*> (o .:? "configCompleteRedirectUrl")- <*> (o .:? "type")- <*> (o .:? "message")- <*> (o .:? "threadKey"))--instance ToJSON DeprecatedEvent where- toJSON DeprecatedEvent'{..}- = object- (catMaybes- [("space" .=) <$> _deSpace,- ("token" .=) <$> _deToken,- ("action" .=) <$> _deAction,- ("eventTime" .=) <$> _deEventTime,- ("user" .=) <$> _deUser,- ("configCompleteRedirectUrl" .=) <$>- _deConfigCompleteRedirectURL,- ("type" .=) <$> _deType,- ("message" .=) <$> _deMessage,- ("threadKey" .=) <$> _deThreadKey])---- | A paragraph of text. Formatted text supported.------ /See:/ 'textParagraph' smart constructor.-newtype TextParagraph =- TextParagraph'- { _tpText :: Maybe Text- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'TextParagraph' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tpText'-textParagraph- :: TextParagraph-textParagraph = TextParagraph' {_tpText = Nothing}---tpText :: Lens' TextParagraph (Maybe Text)-tpText = lens _tpText (\ s a -> s{_tpText = a})--instance FromJSON TextParagraph where- parseJSON- = withObject "TextParagraph"- (\ o -> TextParagraph' <$> (o .:? "text"))--instance ToJSON TextParagraph where- toJSON TextParagraph'{..}- = object (catMaybes [("text" .=) <$> _tpText])---- | A button. Can be a text button or an image button.------ /See:/ 'button' smart constructor.-data Button =- Button'- { _bTextButton :: !(Maybe TextButton)- , _bImageButton :: !(Maybe ImageButton)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Button' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'bTextButton'------ * 'bImageButton'-button- :: Button-button = Button' {_bTextButton = Nothing, _bImageButton = Nothing}----- | A button with text and onclick action.-bTextButton :: Lens' Button (Maybe TextButton)-bTextButton- = lens _bTextButton (\ s a -> s{_bTextButton = a})---- | A button with image and onclick action.-bImageButton :: Lens' Button (Maybe ImageButton)-bImageButton- = lens _bImageButton (\ s a -> s{_bImageButton = a})--instance FromJSON Button where- parseJSON- = withObject "Button"- (\ o ->- Button' <$>- (o .:? "textButton") <*> (o .:? "imageButton"))--instance ToJSON Button where- toJSON Button'{..}- = object- (catMaybes- [("textButton" .=) <$> _bTextButton,- ("imageButton" .=) <$> _bImageButton])------- /See:/ 'listSpacesResponse' smart constructor.-data ListSpacesResponse =- ListSpacesResponse'- { _lsrNextPageToken :: !(Maybe Text)- , _lsrSpaces :: !(Maybe [Space])- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ListSpacesResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lsrNextPageToken'------ * 'lsrSpaces'-listSpacesResponse- :: ListSpacesResponse-listSpacesResponse =- ListSpacesResponse' {_lsrNextPageToken = Nothing, _lsrSpaces = Nothing}----- | Continuation token to retrieve the next page of results. It will be--- empty for the last page of results. Tokens expire in an hour. An error--- is thrown if an expired token is passed.-lsrNextPageToken :: Lens' ListSpacesResponse (Maybe Text)-lsrNextPageToken- = lens _lsrNextPageToken- (\ s a -> s{_lsrNextPageToken = a})---- | List of spaces in the requested (or first) page.-lsrSpaces :: Lens' ListSpacesResponse [Space]-lsrSpaces- = lens _lsrSpaces (\ s a -> s{_lsrSpaces = a}) .- _Default- . _Coerce--instance FromJSON ListSpacesResponse where- parseJSON- = withObject "ListSpacesResponse"- (\ o ->- ListSpacesResponse' <$>- (o .:? "nextPageToken") <*>- (o .:? "spaces" .!= mempty))--instance ToJSON ListSpacesResponse where- toJSON ListSpacesResponse'{..}- = object- (catMaybes- [("nextPageToken" .=) <$> _lsrNextPageToken,- ("spaces" .=) <$> _lsrSpaces])---- | A user in Hangouts Chat.------ /See:/ 'user' smart constructor.-data User =- User'- { _uName :: !(Maybe Text)- , _uDisplayName :: !(Maybe Text)- , _uType :: !(Maybe UserType)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'User' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'uName'------ * 'uDisplayName'------ * 'uType'-user- :: User-user = User' {_uName = Nothing, _uDisplayName = Nothing, _uType = Nothing}----- | Resource name, in the format \"users\/*\".-uName :: Lens' User (Maybe Text)-uName = lens _uName (\ s a -> s{_uName = a})---- | The user\'s display name.-uDisplayName :: Lens' User (Maybe Text)-uDisplayName- = lens _uDisplayName (\ s a -> s{_uDisplayName = a})---- | User type.-uType :: Lens' User (Maybe UserType)-uType = lens _uType (\ s a -> s{_uType = a})--instance FromJSON User where- parseJSON- = withObject "User"- (\ o ->- User' <$>- (o .:? "name") <*> (o .:? "displayName") <*>- (o .:? "type"))--instance ToJSON User where- toJSON User'{..}- = object- (catMaybes- [("name" .=) <$> _uName,- ("displayName" .=) <$> _uDisplayName,- ("type" .=) <$> _uType])---- | A link that opens a new window.------ /See:/ 'openLink' smart constructor.-newtype OpenLink =- OpenLink'- { _olURL :: Maybe Text- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'OpenLink' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'olURL'-openLink- :: OpenLink-openLink = OpenLink' {_olURL = Nothing}----- | The URL to open.-olURL :: Lens' OpenLink (Maybe Text)-olURL = lens _olURL (\ s a -> s{_olURL = a})--instance FromJSON OpenLink where- parseJSON- = withObject "OpenLink"- (\ o -> OpenLink' <$> (o .:? "url"))--instance ToJSON OpenLink where- toJSON OpenLink'{..}- = object (catMaybes [("url" .=) <$> _olURL])---- | A card action is the action associated with the card. For an invoice--- card, a typical action would be: delete invoice, email invoice or open--- the invoice in browser.------ /See:/ 'cardAction' smart constructor.-data CardAction =- CardAction'- { _caOnClick :: !(Maybe OnClick)- , _caActionLabel :: !(Maybe Text)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CardAction' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'caOnClick'------ * 'caActionLabel'-cardAction- :: CardAction-cardAction = CardAction' {_caOnClick = Nothing, _caActionLabel = Nothing}----- | The onclick action for this action item.-caOnClick :: Lens' CardAction (Maybe OnClick)-caOnClick- = lens _caOnClick (\ s a -> s{_caOnClick = a})---- | The label used to be displayed in the action menu item.-caActionLabel :: Lens' CardAction (Maybe Text)-caActionLabel- = lens _caActionLabel- (\ s a -> s{_caActionLabel = a})--instance FromJSON CardAction where- parseJSON- = withObject "CardAction"- (\ o ->- CardAction' <$>- (o .:? "onClick") <*> (o .:? "actionLabel"))--instance ToJSON CardAction where- toJSON CardAction'{..}- = object- (catMaybes- [("onClick" .=) <$> _caOnClick,- ("actionLabel" .=) <$> _caActionLabel])---- | Parameters that a bot can use to configure how it\'s response is posted.------ /See:/ 'actionResponse' smart constructor.-data ActionResponse =- ActionResponse'- { _arURL :: !(Maybe Text)- , _arType :: !(Maybe ActionResponseType)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ActionResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'arURL'------ * 'arType'-actionResponse- :: ActionResponse-actionResponse = ActionResponse' {_arURL = Nothing, _arType = Nothing}----- | URL for users to auth or config. (Only for REQUEST_CONFIG response--- types.)-arURL :: Lens' ActionResponse (Maybe Text)-arURL = lens _arURL (\ s a -> s{_arURL = a})---- | The type of bot response.-arType :: Lens' ActionResponse (Maybe ActionResponseType)-arType = lens _arType (\ s a -> s{_arType = a})--instance FromJSON ActionResponse where- parseJSON- = withObject "ActionResponse"- (\ o ->- ActionResponse' <$> (o .:? "url") <*> (o .:? "type"))--instance ToJSON ActionResponse where- toJSON ActionResponse'{..}- = object- (catMaybes- [("url" .=) <$> _arURL, ("type" .=) <$> _arType])---- | A form action describes the behavior when the form is submitted. For--- example, an Apps Script can be invoked to handle the form.------ /See:/ 'formAction' smart constructor.-data FormAction =- FormAction'- { _faActionMethodName :: !(Maybe Text)- , _faParameters :: !(Maybe [ActionParameter])- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'FormAction' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'faActionMethodName'------ * 'faParameters'-formAction- :: FormAction-formAction =- FormAction' {_faActionMethodName = Nothing, _faParameters = Nothing}----- | Apps Script function to invoke when the containing element is--- clicked\/activated.-faActionMethodName :: Lens' FormAction (Maybe Text)-faActionMethodName- = lens _faActionMethodName- (\ s a -> s{_faActionMethodName = a})---- | List of action parameters.-faParameters :: Lens' FormAction [ActionParameter]-faParameters- = lens _faParameters (\ s a -> s{_faParameters = a})- . _Default- . _Coerce--instance FromJSON FormAction where- parseJSON- = withObject "FormAction"- (\ o ->- FormAction' <$>- (o .:? "actionMethodName") <*>- (o .:? "parameters" .!= mempty))--instance ToJSON FormAction where- toJSON FormAction'{..}- = object- (catMaybes- [("actionMethodName" .=) <$> _faActionMethodName,- ("parameters" .=) <$> _faParameters])------- /See:/ 'listMembershipsResponse' smart constructor.-data ListMembershipsResponse =- ListMembershipsResponse'- { _lmrNextPageToken :: !(Maybe Text)- , _lmrMemberships :: !(Maybe [Membership])- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ListMembershipsResponse' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'lmrNextPageToken'------ * 'lmrMemberships'-listMembershipsResponse- :: ListMembershipsResponse-listMembershipsResponse =- ListMembershipsResponse'- {_lmrNextPageToken = Nothing, _lmrMemberships = Nothing}----- | Continuation token to retrieve the next page of results. It will be--- empty for the last page of results.-lmrNextPageToken :: Lens' ListMembershipsResponse (Maybe Text)-lmrNextPageToken- = lens _lmrNextPageToken- (\ s a -> s{_lmrNextPageToken = a})---- | List of memberships in the requested (or first) page.-lmrMemberships :: Lens' ListMembershipsResponse [Membership]-lmrMemberships- = lens _lmrMemberships- (\ s a -> s{_lmrMemberships = a})- . _Default- . _Coerce--instance FromJSON ListMembershipsResponse where- parseJSON- = withObject "ListMembershipsResponse"- (\ o ->- ListMembershipsResponse' <$>- (o .:? "nextPageToken") <*>- (o .:? "memberships" .!= mempty))--instance ToJSON ListMembershipsResponse where- toJSON ListMembershipsResponse'{..}- = object- (catMaybes- [("nextPageToken" .=) <$> _lmrNextPageToken,- ("memberships" .=) <$> _lmrMemberships])---- | A message in Hangouts Chat.------ /See:/ 'message' smart constructor.-data Message =- Message'- { _mesAnnotations :: !(Maybe [Annotation])- , _mesSpace :: !(Maybe Space)- , _mesText :: !(Maybe Text)- , _mesSender :: !(Maybe User)- , _mesName :: !(Maybe Text)- , _mesPreviewText :: !(Maybe Text)- , _mesCards :: !(Maybe [Card])- , _mesActionResponse :: !(Maybe ActionResponse)- , _mesArgumentText :: !(Maybe Text)- , _mesThread :: !(Maybe Thread)- , _mesFallbackText :: !(Maybe Text)- , _mesCreateTime :: !(Maybe DateTime')- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Message' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'mesAnnotations'------ * 'mesSpace'------ * 'mesText'------ * 'mesSender'------ * 'mesName'------ * 'mesPreviewText'------ * 'mesCards'------ * 'mesActionResponse'------ * 'mesArgumentText'------ * 'mesThread'------ * 'mesFallbackText'------ * 'mesCreateTime'-message- :: Message-message =- Message'- { _mesAnnotations = Nothing- , _mesSpace = Nothing- , _mesText = Nothing- , _mesSender = Nothing- , _mesName = Nothing- , _mesPreviewText = Nothing- , _mesCards = Nothing- , _mesActionResponse = Nothing- , _mesArgumentText = Nothing- , _mesThread = Nothing- , _mesFallbackText = Nothing- , _mesCreateTime = Nothing- }----- | Output only. Annotations associated with the text in this message.-mesAnnotations :: Lens' Message [Annotation]-mesAnnotations- = lens _mesAnnotations- (\ s a -> s{_mesAnnotations = a})- . _Default- . _Coerce---- | The space the message belongs to.-mesSpace :: Lens' Message (Maybe Space)-mesSpace = lens _mesSpace (\ s a -> s{_mesSpace = a})---- | Plain-text body of the message.-mesText :: Lens' Message (Maybe Text)-mesText = lens _mesText (\ s a -> s{_mesText = a})---- | The user who created the message.-mesSender :: Lens' Message (Maybe User)-mesSender- = lens _mesSender (\ s a -> s{_mesSender = a})---- | Resource name, in the form \"spaces\/*\/messages\/*\". Example:--- spaces\/AAAAMpdlehY\/messages\/UMxbHmzDlr4.UMxbHmzDlr4-mesName :: Lens' Message (Maybe Text)-mesName = lens _mesName (\ s a -> s{_mesName = a})---- | Text for generating preview chips. This text will not be displayed to--- the user, but any links to images, web pages, videos, etc. included here--- will generate preview chips.-mesPreviewText :: Lens' Message (Maybe Text)-mesPreviewText- = lens _mesPreviewText- (\ s a -> s{_mesPreviewText = a})---- | Rich, formatted and interactive cards that can be used to display UI--- elements such as: formatted texts, buttons, clickable images. Cards are--- normally displayed below the plain-text body of the message.-mesCards :: Lens' Message [Card]-mesCards- = lens _mesCards (\ s a -> s{_mesCards = a}) .- _Default- . _Coerce---- | Input only. Parameters that a bot can use to configure how its response--- is posted.-mesActionResponse :: Lens' Message (Maybe ActionResponse)-mesActionResponse- = lens _mesActionResponse- (\ s a -> s{_mesActionResponse = a})---- | Plain-text body of the message with all bot mentions stripped out.-mesArgumentText :: Lens' Message (Maybe Text)-mesArgumentText- = lens _mesArgumentText- (\ s a -> s{_mesArgumentText = a})---- | The thread the message belongs to.-mesThread :: Lens' Message (Maybe Thread)-mesThread- = lens _mesThread (\ s a -> s{_mesThread = a})---- | A plain-text description of the message\'s cards, used when the actual--- cards cannot be displayed (e.g. mobile notifications).-mesFallbackText :: Lens' Message (Maybe Text)-mesFallbackText- = lens _mesFallbackText- (\ s a -> s{_mesFallbackText = a})---- | Output only. The time at which the message was created in Hangouts Chat--- server.-mesCreateTime :: Lens' Message (Maybe UTCTime)-mesCreateTime- = lens _mesCreateTime- (\ s a -> s{_mesCreateTime = a})- . mapping _DateTime--instance FromJSON Message where- parseJSON- = withObject "Message"- (\ o ->- Message' <$>- (o .:? "annotations" .!= mempty) <*> (o .:? "space")- <*> (o .:? "text")- <*> (o .:? "sender")- <*> (o .:? "name")- <*> (o .:? "previewText")- <*> (o .:? "cards" .!= mempty)- <*> (o .:? "actionResponse")- <*> (o .:? "argumentText")- <*> (o .:? "thread")- <*> (o .:? "fallbackText")- <*> (o .:? "createTime"))--instance ToJSON Message where- toJSON Message'{..}- = object- (catMaybes- [("annotations" .=) <$> _mesAnnotations,- ("space" .=) <$> _mesSpace, ("text" .=) <$> _mesText,- ("sender" .=) <$> _mesSender,- ("name" .=) <$> _mesName,- ("previewText" .=) <$> _mesPreviewText,- ("cards" .=) <$> _mesCards,- ("actionResponse" .=) <$> _mesActionResponse,- ("argumentText" .=) <$> _mesArgumentText,- ("thread" .=) <$> _mesThread,- ("fallbackText" .=) <$> _mesFallbackText,- ("createTime" .=) <$> _mesCreateTime])------- /See:/ 'cardHeader' smart constructor.-data CardHeader =- CardHeader'- { _chSubtitle :: !(Maybe Text)- , _chImageURL :: !(Maybe Text)- , _chTitle :: !(Maybe Text)- , _chImageStyle :: !(Maybe CardHeaderImageStyle)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'CardHeader' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'chSubtitle'------ * 'chImageURL'------ * 'chTitle'------ * 'chImageStyle'-cardHeader- :: CardHeader-cardHeader =- CardHeader'- { _chSubtitle = Nothing- , _chImageURL = Nothing- , _chTitle = Nothing- , _chImageStyle = Nothing- }----- | The subtitle of the card header.-chSubtitle :: Lens' CardHeader (Maybe Text)-chSubtitle- = lens _chSubtitle (\ s a -> s{_chSubtitle = a})---- | The URL of the image in the card header.-chImageURL :: Lens' CardHeader (Maybe Text)-chImageURL- = lens _chImageURL (\ s a -> s{_chImageURL = a})---- | The title must be specified. The header has a fixed height: if both a--- title and subtitle is specified, each will take up 1 line. If only the--- title is specified, it will take up both lines.-chTitle :: Lens' CardHeader (Maybe Text)-chTitle = lens _chTitle (\ s a -> s{_chTitle = a})---- | The image\'s type (e.g. square border or circular border).-chImageStyle :: Lens' CardHeader (Maybe CardHeaderImageStyle)-chImageStyle- = lens _chImageStyle (\ s a -> s{_chImageStyle = a})--instance FromJSON CardHeader where- parseJSON- = withObject "CardHeader"- (\ o ->- CardHeader' <$>- (o .:? "subtitle") <*> (o .:? "imageUrl") <*>- (o .:? "title")- <*> (o .:? "imageStyle"))--instance ToJSON CardHeader where- toJSON CardHeader'{..}- = object- (catMaybes- [("subtitle" .=) <$> _chSubtitle,- ("imageUrl" .=) <$> _chImageURL,- ("title" .=) <$> _chTitle,- ("imageStyle" .=) <$> _chImageStyle])---- | A button with text and onclick action.------ /See:/ 'textButton' smart constructor.-data TextButton =- TextButton'- { _tbOnClick :: !(Maybe OnClick)- , _tbText :: !(Maybe Text)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'TextButton' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tbOnClick'------ * 'tbText'-textButton- :: TextButton-textButton = TextButton' {_tbOnClick = Nothing, _tbText = Nothing}----- | The onclick action of the button.-tbOnClick :: Lens' TextButton (Maybe OnClick)-tbOnClick- = lens _tbOnClick (\ s a -> s{_tbOnClick = a})---- | The text of the button.-tbText :: Lens' TextButton (Maybe Text)-tbText = lens _tbText (\ s a -> s{_tbText = a})--instance FromJSON TextButton where- parseJSON- = withObject "TextButton"- (\ o ->- TextButton' <$> (o .:? "onClick") <*> (o .:? "text"))--instance ToJSON TextButton where- toJSON TextButton'{..}- = object- (catMaybes- [("onClick" .=) <$> _tbOnClick,- ("text" .=) <$> _tbText])---- | A thread in Hangouts Chat.------ /See:/ 'thread' smart constructor.-newtype Thread =- Thread'- { _tName :: Maybe Text- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Thread' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'tName'-thread- :: Thread-thread = Thread' {_tName = Nothing}----- | Resource name, in the form \"spaces\/*\/threads\/*\". Example:--- spaces\/AAAAMpdlehY\/threads\/UMxbHmzDlr4-tName :: Lens' Thread (Maybe Text)-tName = lens _tName (\ s a -> s{_tName = a})--instance FromJSON Thread where- parseJSON- = withObject "Thread"- (\ o -> Thread' <$> (o .:? "name"))--instance ToJSON Thread where- toJSON Thread'{..}- = object (catMaybes [("name" .=) <$> _tName])---- | Annotation metadata for user mentions (\').------ /See:/ 'userMentionMetadata' smart constructor.-data UserMentionMetadata =- UserMentionMetadata'- { _ummUser :: !(Maybe User)- , _ummType :: !(Maybe UserMentionMetadataType)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'UserMentionMetadata' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ummUser'------ * 'ummType'-userMentionMetadata- :: UserMentionMetadata-userMentionMetadata =- UserMentionMetadata' {_ummUser = Nothing, _ummType = Nothing}----- | The user mentioned.-ummUser :: Lens' UserMentionMetadata (Maybe User)-ummUser = lens _ummUser (\ s a -> s{_ummUser = a})---- | The type of user mention.-ummType :: Lens' UserMentionMetadata (Maybe UserMentionMetadataType)-ummType = lens _ummType (\ s a -> s{_ummType = a})--instance FromJSON UserMentionMetadata where- parseJSON- = withObject "UserMentionMetadata"- (\ o ->- UserMentionMetadata' <$>- (o .:? "user") <*> (o .:? "type"))--instance ToJSON UserMentionMetadata where- toJSON UserMentionMetadata'{..}- = object- (catMaybes- [("user" .=) <$> _ummUser, ("type" .=) <$> _ummType])---- | An image button with an onclick action.------ /See:/ 'imageButton' smart constructor.-data ImageButton =- ImageButton'- { _ibOnClick :: !(Maybe OnClick)- , _ibIcon :: !(Maybe ImageButtonIcon)- , _ibName :: !(Maybe Text)- , _ibIconURL :: !(Maybe Text)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'ImageButton' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'ibOnClick'------ * 'ibIcon'------ * 'ibName'------ * 'ibIconURL'-imageButton- :: ImageButton-imageButton =- ImageButton'- { _ibOnClick = Nothing- , _ibIcon = Nothing- , _ibName = Nothing- , _ibIconURL = Nothing- }----- | The onclick action.-ibOnClick :: Lens' ImageButton (Maybe OnClick)-ibOnClick- = lens _ibOnClick (\ s a -> s{_ibOnClick = a})---- | The icon specified by an enum that indices to an icon provided by Chat--- API.-ibIcon :: Lens' ImageButton (Maybe ImageButtonIcon)-ibIcon = lens _ibIcon (\ s a -> s{_ibIcon = a})---- | The name of this image_button which will be used for accessibility.--- Default value will be provided if developers don\'t specify.-ibName :: Lens' ImageButton (Maybe Text)-ibName = lens _ibName (\ s a -> s{_ibName = a})---- | The icon specified by a URL.-ibIconURL :: Lens' ImageButton (Maybe Text)-ibIconURL- = lens _ibIconURL (\ s a -> s{_ibIconURL = a})--instance FromJSON ImageButton where- parseJSON- = withObject "ImageButton"- (\ o ->- ImageButton' <$>- (o .:? "onClick") <*> (o .:? "icon") <*>- (o .:? "name")- <*> (o .:? "iconUrl"))--instance ToJSON ImageButton where- toJSON ImageButton'{..}- = object- (catMaybes- [("onClick" .=) <$> _ibOnClick,- ("icon" .=) <$> _ibIcon, ("name" .=) <$> _ibName,- ("iconUrl" .=) <$> _ibIconURL])---- | A section contains a collection of widgets that are rendered--- (vertically) in the order that they are specified. Across all platforms,--- cards have a narrow fixed width, so there is currently no need for--- layout properties (e.g. float).------ /See:/ 'section' smart constructor.-data Section =- Section'- { _sWidgets :: !(Maybe [WidgetMarkup])- , _sHeader :: !(Maybe Text)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'Section' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sWidgets'------ * 'sHeader'-section- :: Section-section = Section' {_sWidgets = Nothing, _sHeader = Nothing}----- | A section must contain at least 1 widget.-sWidgets :: Lens' Section [WidgetMarkup]-sWidgets- = lens _sWidgets (\ s a -> s{_sWidgets = a}) .- _Default- . _Coerce---- | The header of the section, text formatted supported.-sHeader :: Lens' Section (Maybe Text)-sHeader = lens _sHeader (\ s a -> s{_sHeader = a})--instance FromJSON Section where- parseJSON- = withObject "Section"- (\ o ->- Section' <$>- (o .:? "widgets" .!= mempty) <*> (o .:? "header"))--instance ToJSON Section where- toJSON Section'{..}- = object- (catMaybes- [("widgets" .=) <$> _sWidgets,- ("header" .=) <$> _sHeader])
− gen/Network/Google/Chat/Types/Sum.hs
@@ -1,625 +0,0 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE LambdaCase #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}--{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- |--- Module : Network.Google.Chat.Types.Sum--- Copyright : (c) 2015-2016 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)----module Network.Google.Chat.Types.Sum where--import Network.Google.Prelude hiding (Bytes)---- | An enum value that will be replaced by the Chat API with the--- corresponding icon image.-data KeyValueIcon- = KVIIconUnspecified- -- ^ @ICON_UNSPECIFIED@- | KVIAirplane- -- ^ @AIRPLANE@- | KVIBookmark- -- ^ @BOOKMARK@- | KVIBus- -- ^ @BUS@- | KVICar- -- ^ @CAR@- | KVIClock- -- ^ @CLOCK@- | KVIConfirmationNumberIcon- -- ^ @CONFIRMATION_NUMBER_ICON@- | KVIDollar- -- ^ @DOLLAR@- | KVIDescription- -- ^ @DESCRIPTION@- | KVIEmail- -- ^ @EMAIL@- | KVIEventPerformer- -- ^ @EVENT_PERFORMER@- | KVIEventSeat- -- ^ @EVENT_SEAT@- | KVIFlightArrival- -- ^ @FLIGHT_ARRIVAL@- | KVIFlightDeParture- -- ^ @FLIGHT_DEPARTURE@- | KVIHotel- -- ^ @HOTEL@- | KVIHotelRoomType- -- ^ @HOTEL_ROOM_TYPE@- | KVIInvite- -- ^ @INVITE@- | KVIMapPin- -- ^ @MAP_PIN@- | KVIMembership- -- ^ @MEMBERSHIP@- | KVIMultiplePeople- -- ^ @MULTIPLE_PEOPLE@- | KVIOffer- -- ^ @OFFER@- | KVIPerson- -- ^ @PERSON@- | KVIPhone- -- ^ @PHONE@- | KVIRestaurantIcon- -- ^ @RESTAURANT_ICON@- | KVIShoppingCart- -- ^ @SHOPPING_CART@- | KVIStar- -- ^ @STAR@- | KVIStore- -- ^ @STORE@- | KVITicket- -- ^ @TICKET@- | KVITrain- -- ^ @TRAIN@- | KVIVideoCamera- -- ^ @VIDEO_CAMERA@- | KVIVideoPlay- -- ^ @VIDEO_PLAY@- deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable KeyValueIcon--instance FromHttpApiData KeyValueIcon where- parseQueryParam = \case- "ICON_UNSPECIFIED" -> Right KVIIconUnspecified- "AIRPLANE" -> Right KVIAirplane- "BOOKMARK" -> Right KVIBookmark- "BUS" -> Right KVIBus- "CAR" -> Right KVICar- "CLOCK" -> Right KVIClock- "CONFIRMATION_NUMBER_ICON" -> Right KVIConfirmationNumberIcon- "DOLLAR" -> Right KVIDollar- "DESCRIPTION" -> Right KVIDescription- "EMAIL" -> Right KVIEmail- "EVENT_PERFORMER" -> Right KVIEventPerformer- "EVENT_SEAT" -> Right KVIEventSeat- "FLIGHT_ARRIVAL" -> Right KVIFlightArrival- "FLIGHT_DEPARTURE" -> Right KVIFlightDeParture- "HOTEL" -> Right KVIHotel- "HOTEL_ROOM_TYPE" -> Right KVIHotelRoomType- "INVITE" -> Right KVIInvite- "MAP_PIN" -> Right KVIMapPin- "MEMBERSHIP" -> Right KVIMembership- "MULTIPLE_PEOPLE" -> Right KVIMultiplePeople- "OFFER" -> Right KVIOffer- "PERSON" -> Right KVIPerson- "PHONE" -> Right KVIPhone- "RESTAURANT_ICON" -> Right KVIRestaurantIcon- "SHOPPING_CART" -> Right KVIShoppingCart- "STAR" -> Right KVIStar- "STORE" -> Right KVIStore- "TICKET" -> Right KVITicket- "TRAIN" -> Right KVITrain- "VIDEO_CAMERA" -> Right KVIVideoCamera- "VIDEO_PLAY" -> Right KVIVideoPlay- x -> Left ("Unable to parse KeyValueIcon from: " <> x)--instance ToHttpApiData KeyValueIcon where- toQueryParam = \case- KVIIconUnspecified -> "ICON_UNSPECIFIED"- KVIAirplane -> "AIRPLANE"- KVIBookmark -> "BOOKMARK"- KVIBus -> "BUS"- KVICar -> "CAR"- KVIClock -> "CLOCK"- KVIConfirmationNumberIcon -> "CONFIRMATION_NUMBER_ICON"- KVIDollar -> "DOLLAR"- KVIDescription -> "DESCRIPTION"- KVIEmail -> "EMAIL"- KVIEventPerformer -> "EVENT_PERFORMER"- KVIEventSeat -> "EVENT_SEAT"- KVIFlightArrival -> "FLIGHT_ARRIVAL"- KVIFlightDeParture -> "FLIGHT_DEPARTURE"- KVIHotel -> "HOTEL"- KVIHotelRoomType -> "HOTEL_ROOM_TYPE"- KVIInvite -> "INVITE"- KVIMapPin -> "MAP_PIN"- KVIMembership -> "MEMBERSHIP"- KVIMultiplePeople -> "MULTIPLE_PEOPLE"- KVIOffer -> "OFFER"- KVIPerson -> "PERSON"- KVIPhone -> "PHONE"- KVIRestaurantIcon -> "RESTAURANT_ICON"- KVIShoppingCart -> "SHOPPING_CART"- KVIStar -> "STAR"- KVIStore -> "STORE"- KVITicket -> "TICKET"- KVITrain -> "TRAIN"- KVIVideoCamera -> "VIDEO_CAMERA"- KVIVideoPlay -> "VIDEO_PLAY"--instance FromJSON KeyValueIcon where- parseJSON = parseJSONText "KeyValueIcon"--instance ToJSON KeyValueIcon where- toJSON = toJSONText---- | The type of bot response.-data ActionResponseType- = TypeUnspecified- -- ^ @TYPE_UNSPECIFIED@- -- Default type; will be handled as NEW_MESSAGE.- | NewMessage- -- ^ @NEW_MESSAGE@- -- Post as a new message in the topic.- | UpdateMessage- -- ^ @UPDATE_MESSAGE@- -- Update the bot\'s own message. (Only after CARD_CLICKED events.)- | RequestConfig- -- ^ @REQUEST_CONFIG@- -- Privately ask the user for additional auth or config.- deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable ActionResponseType--instance FromHttpApiData ActionResponseType where- parseQueryParam = \case- "TYPE_UNSPECIFIED" -> Right TypeUnspecified- "NEW_MESSAGE" -> Right NewMessage- "UPDATE_MESSAGE" -> Right UpdateMessage- "REQUEST_CONFIG" -> Right RequestConfig- x -> Left ("Unable to parse ActionResponseType from: " <> x)--instance ToHttpApiData ActionResponseType where- toQueryParam = \case- TypeUnspecified -> "TYPE_UNSPECIFIED"- NewMessage -> "NEW_MESSAGE"- UpdateMessage -> "UPDATE_MESSAGE"- RequestConfig -> "REQUEST_CONFIG"--instance FromJSON ActionResponseType where- parseJSON = parseJSONText "ActionResponseType"--instance ToJSON ActionResponseType where- toJSON = toJSONText---- | State of the membership.-data MembershipState- = MembershipStateUnspecified- -- ^ @MEMBERSHIP_STATE_UNSPECIFIED@- -- Default, do not use.- | Joined- -- ^ @JOINED@- -- The user has joined the space.- | Invited- -- ^ @INVITED@- -- The user has been invited, is able to join the space, but currently has- -- not joined.- | NotAMember- -- ^ @NOT_A_MEMBER@- -- The user is not a member of the space, has not been invited and is not- -- able to join the space.- deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable MembershipState--instance FromHttpApiData MembershipState where- parseQueryParam = \case- "MEMBERSHIP_STATE_UNSPECIFIED" -> Right MembershipStateUnspecified- "JOINED" -> Right Joined- "INVITED" -> Right Invited- "NOT_A_MEMBER" -> Right NotAMember- x -> Left ("Unable to parse MembershipState from: " <> x)--instance ToHttpApiData MembershipState where- toQueryParam = \case- MembershipStateUnspecified -> "MEMBERSHIP_STATE_UNSPECIFIED"- Joined -> "JOINED"- Invited -> "INVITED"- NotAMember -> "NOT_A_MEMBER"--instance FromJSON MembershipState where- parseJSON = parseJSONText "MembershipState"--instance ToJSON MembershipState where- toJSON = toJSONText---- | The image\'s type (e.g. square border or circular border).-data CardHeaderImageStyle- = CHISImageStyleUnspecified- -- ^ @IMAGE_STYLE_UNSPECIFIED@- | CHISImage- -- ^ @IMAGE@- -- Square border.- | CHISAvatar- -- ^ @AVATAR@- -- Circular border.- deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable CardHeaderImageStyle--instance FromHttpApiData CardHeaderImageStyle where- parseQueryParam = \case- "IMAGE_STYLE_UNSPECIFIED" -> Right CHISImageStyleUnspecified- "IMAGE" -> Right CHISImage- "AVATAR" -> Right CHISAvatar- x -> Left ("Unable to parse CardHeaderImageStyle from: " <> x)--instance ToHttpApiData CardHeaderImageStyle where- toQueryParam = \case- CHISImageStyleUnspecified -> "IMAGE_STYLE_UNSPECIFIED"- CHISImage -> "IMAGE"- CHISAvatar -> "AVATAR"--instance FromJSON CardHeaderImageStyle where- parseJSON = parseJSONText "CardHeaderImageStyle"--instance ToJSON CardHeaderImageStyle where- toJSON = toJSONText---- | The type of user mention.-data UserMentionMetadataType- = UMMTTypeUnspecified- -- ^ @TYPE_UNSPECIFIED@- -- Default value for the enum. DO NOT USE.- | UMMTAdd- -- ^ @ADD@- -- Add user to space.- | UMMTMention- -- ^ @MENTION@- -- Mention user in space.- deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable UserMentionMetadataType--instance FromHttpApiData UserMentionMetadataType where- parseQueryParam = \case- "TYPE_UNSPECIFIED" -> Right UMMTTypeUnspecified- "ADD" -> Right UMMTAdd- "MENTION" -> Right UMMTMention- x -> Left ("Unable to parse UserMentionMetadataType from: " <> x)--instance ToHttpApiData UserMentionMetadataType where- toQueryParam = \case- UMMTTypeUnspecified -> "TYPE_UNSPECIFIED"- UMMTAdd -> "ADD"- UMMTMention -> "MENTION"--instance FromJSON UserMentionMetadataType where- parseJSON = parseJSONText "UserMentionMetadataType"--instance ToJSON UserMentionMetadataType where- toJSON = toJSONText---- | Output only. The type of a space.-data SpaceType- = STTypeUnspecified- -- ^ @TYPE_UNSPECIFIED@- | STRoom- -- ^ @ROOM@- -- A chat space where memberships are free to change. Messages in rooms are- -- threaded.- | STDM- -- ^ @DM@- -- 1:1 Direct Message between a human and a bot, where all messages are- -- flat.- deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable SpaceType--instance FromHttpApiData SpaceType where- parseQueryParam = \case- "TYPE_UNSPECIFIED" -> Right STTypeUnspecified- "ROOM" -> Right STRoom- "DM" -> Right STDM- x -> Left ("Unable to parse SpaceType from: " <> x)--instance ToHttpApiData SpaceType where- toQueryParam = \case- STTypeUnspecified -> "TYPE_UNSPECIFIED"- STRoom -> "ROOM"- STDM -> "DM"--instance FromJSON SpaceType where- parseJSON = parseJSONText "SpaceType"--instance ToJSON SpaceType where- toJSON = toJSONText---- | The type of this annotation.-data AnnotationType- = AnnotationTypeUnspecified- -- ^ @ANNOTATION_TYPE_UNSPECIFIED@- -- Default value for the enum. DO NOT USE.- | UserMention- -- ^ @USER_MENTION@- -- A user is mentioned.- deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable AnnotationType--instance FromHttpApiData AnnotationType where- parseQueryParam = \case- "ANNOTATION_TYPE_UNSPECIFIED" -> Right AnnotationTypeUnspecified- "USER_MENTION" -> Right UserMention- x -> Left ("Unable to parse AnnotationType from: " <> x)--instance ToHttpApiData AnnotationType where- toQueryParam = \case- AnnotationTypeUnspecified -> "ANNOTATION_TYPE_UNSPECIFIED"- UserMention -> "USER_MENTION"--instance FromJSON AnnotationType where- parseJSON = parseJSONText "AnnotationType"--instance ToJSON AnnotationType where- toJSON = toJSONText---- | The icon specified by an enum that indices to an icon provided by Chat--- API.-data ImageButtonIcon- = IBIIconUnspecified- -- ^ @ICON_UNSPECIFIED@- | IBIAirplane- -- ^ @AIRPLANE@- | IBIBookmark- -- ^ @BOOKMARK@- | IBIBus- -- ^ @BUS@- | IBICar- -- ^ @CAR@- | IBIClock- -- ^ @CLOCK@- | IBIConfirmationNumberIcon- -- ^ @CONFIRMATION_NUMBER_ICON@- | IBIDollar- -- ^ @DOLLAR@- | IBIDescription- -- ^ @DESCRIPTION@- | IBIEmail- -- ^ @EMAIL@- | IBIEventPerformer- -- ^ @EVENT_PERFORMER@- | IBIEventSeat- -- ^ @EVENT_SEAT@- | IBIFlightArrival- -- ^ @FLIGHT_ARRIVAL@- | IBIFlightDeParture- -- ^ @FLIGHT_DEPARTURE@- | IBIHotel- -- ^ @HOTEL@- | IBIHotelRoomType- -- ^ @HOTEL_ROOM_TYPE@- | IBIInvite- -- ^ @INVITE@- | IBIMapPin- -- ^ @MAP_PIN@- | IBIMembership- -- ^ @MEMBERSHIP@- | IBIMultiplePeople- -- ^ @MULTIPLE_PEOPLE@- | IBIOffer- -- ^ @OFFER@- | IBIPerson- -- ^ @PERSON@- | IBIPhone- -- ^ @PHONE@- | IBIRestaurantIcon- -- ^ @RESTAURANT_ICON@- | IBIShoppingCart- -- ^ @SHOPPING_CART@- | IBIStar- -- ^ @STAR@- | IBIStore- -- ^ @STORE@- | IBITicket- -- ^ @TICKET@- | IBITrain- -- ^ @TRAIN@- | IBIVideoCamera- -- ^ @VIDEO_CAMERA@- | IBIVideoPlay- -- ^ @VIDEO_PLAY@- deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable ImageButtonIcon--instance FromHttpApiData ImageButtonIcon where- parseQueryParam = \case- "ICON_UNSPECIFIED" -> Right IBIIconUnspecified- "AIRPLANE" -> Right IBIAirplane- "BOOKMARK" -> Right IBIBookmark- "BUS" -> Right IBIBus- "CAR" -> Right IBICar- "CLOCK" -> Right IBIClock- "CONFIRMATION_NUMBER_ICON" -> Right IBIConfirmationNumberIcon- "DOLLAR" -> Right IBIDollar- "DESCRIPTION" -> Right IBIDescription- "EMAIL" -> Right IBIEmail- "EVENT_PERFORMER" -> Right IBIEventPerformer- "EVENT_SEAT" -> Right IBIEventSeat- "FLIGHT_ARRIVAL" -> Right IBIFlightArrival- "FLIGHT_DEPARTURE" -> Right IBIFlightDeParture- "HOTEL" -> Right IBIHotel- "HOTEL_ROOM_TYPE" -> Right IBIHotelRoomType- "INVITE" -> Right IBIInvite- "MAP_PIN" -> Right IBIMapPin- "MEMBERSHIP" -> Right IBIMembership- "MULTIPLE_PEOPLE" -> Right IBIMultiplePeople- "OFFER" -> Right IBIOffer- "PERSON" -> Right IBIPerson- "PHONE" -> Right IBIPhone- "RESTAURANT_ICON" -> Right IBIRestaurantIcon- "SHOPPING_CART" -> Right IBIShoppingCart- "STAR" -> Right IBIStar- "STORE" -> Right IBIStore- "TICKET" -> Right IBITicket- "TRAIN" -> Right IBITrain- "VIDEO_CAMERA" -> Right IBIVideoCamera- "VIDEO_PLAY" -> Right IBIVideoPlay- x -> Left ("Unable to parse ImageButtonIcon from: " <> x)--instance ToHttpApiData ImageButtonIcon where- toQueryParam = \case- IBIIconUnspecified -> "ICON_UNSPECIFIED"- IBIAirplane -> "AIRPLANE"- IBIBookmark -> "BOOKMARK"- IBIBus -> "BUS"- IBICar -> "CAR"- IBIClock -> "CLOCK"- IBIConfirmationNumberIcon -> "CONFIRMATION_NUMBER_ICON"- IBIDollar -> "DOLLAR"- IBIDescription -> "DESCRIPTION"- IBIEmail -> "EMAIL"- IBIEventPerformer -> "EVENT_PERFORMER"- IBIEventSeat -> "EVENT_SEAT"- IBIFlightArrival -> "FLIGHT_ARRIVAL"- IBIFlightDeParture -> "FLIGHT_DEPARTURE"- IBIHotel -> "HOTEL"- IBIHotelRoomType -> "HOTEL_ROOM_TYPE"- IBIInvite -> "INVITE"- IBIMapPin -> "MAP_PIN"- IBIMembership -> "MEMBERSHIP"- IBIMultiplePeople -> "MULTIPLE_PEOPLE"- IBIOffer -> "OFFER"- IBIPerson -> "PERSON"- IBIPhone -> "PHONE"- IBIRestaurantIcon -> "RESTAURANT_ICON"- IBIShoppingCart -> "SHOPPING_CART"- IBIStar -> "STAR"- IBIStore -> "STORE"- IBITicket -> "TICKET"- IBITrain -> "TRAIN"- IBIVideoCamera -> "VIDEO_CAMERA"- IBIVideoPlay -> "VIDEO_PLAY"--instance FromJSON ImageButtonIcon where- parseJSON = parseJSONText "ImageButtonIcon"--instance ToJSON ImageButtonIcon where- toJSON = toJSONText---- | V1 error format.-data Xgafv- = X1- -- ^ @1@- -- v1 error format- | X2- -- ^ @2@- -- v2 error format- deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable Xgafv--instance FromHttpApiData Xgafv where- parseQueryParam = \case- "1" -> Right X1- "2" -> Right X2- x -> Left ("Unable to parse Xgafv from: " <> x)--instance ToHttpApiData Xgafv where- toQueryParam = \case- X1 -> "1"- X2 -> "2"--instance FromJSON Xgafv where- parseJSON = parseJSONText "Xgafv"--instance ToJSON Xgafv where- toJSON = toJSONText---- | The type of the event.-data DeprecatedEventType- = DETUnspecified- -- ^ @UNSPECIFIED@- -- Default value for the enum. DO NOT USE.- | DETMessage- -- ^ @MESSAGE@- -- A message was sent in a room or direct message.- | DETAddedToSpace- -- ^ @ADDED_TO_SPACE@- -- The bot was added to a room or DM.- | DETRemovedFromSpace- -- ^ @REMOVED_FROM_SPACE@- -- The bot was removed from a room or DM.- | DETCardClicked- -- ^ @CARD_CLICKED@- -- The bot\'s interactive card was clicked.- deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable DeprecatedEventType--instance FromHttpApiData DeprecatedEventType where- parseQueryParam = \case- "UNSPECIFIED" -> Right DETUnspecified- "MESSAGE" -> Right DETMessage- "ADDED_TO_SPACE" -> Right DETAddedToSpace- "REMOVED_FROM_SPACE" -> Right DETRemovedFromSpace- "CARD_CLICKED" -> Right DETCardClicked- x -> Left ("Unable to parse DeprecatedEventType from: " <> x)--instance ToHttpApiData DeprecatedEventType where- toQueryParam = \case- DETUnspecified -> "UNSPECIFIED"- DETMessage -> "MESSAGE"- DETAddedToSpace -> "ADDED_TO_SPACE"- DETRemovedFromSpace -> "REMOVED_FROM_SPACE"- DETCardClicked -> "CARD_CLICKED"--instance FromJSON DeprecatedEventType where- parseJSON = parseJSONText "DeprecatedEventType"--instance ToJSON DeprecatedEventType where- toJSON = toJSONText---- | User type.-data UserType- = UTTypeUnspecified- -- ^ @TYPE_UNSPECIFIED@- -- Default value for the enum. DO NOT USE.- | UTHuman- -- ^ @HUMAN@- -- Human user.- | UTBot- -- ^ @BOT@- -- Bot user.- deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)--instance Hashable UserType--instance FromHttpApiData UserType where- parseQueryParam = \case- "TYPE_UNSPECIFIED" -> Right UTTypeUnspecified- "HUMAN" -> Right UTHuman- "BOT" -> Right UTBot- x -> Left ("Unable to parse UserType from: " <> x)--instance ToHttpApiData UserType where- toQueryParam = \case- UTTypeUnspecified -> "TYPE_UNSPECIFIED"- UTHuman -> "HUMAN"- UTBot -> "BOT"--instance FromJSON UserType where- parseJSON = parseJSONText "UserType"--instance ToJSON UserType where- toJSON = toJSONText
− gen/Network/Google/Resource/Chat/Spaces/Get.hs
@@ -1,146 +0,0 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE TypeOperators #-}--{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}-{-# OPTIONS_GHC -fno-warn-unused-binds #-}-{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- |--- Module : Network.Google.Resource.Chat.Spaces.Get--- Copyright : (c) 2015-2016 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)------ Returns a space.------ /See:/ <https://developers.google.com/hangouts/chat Hangouts Chat API Reference> for @chat.spaces.get@.-module Network.Google.Resource.Chat.Spaces.Get- (- -- * REST Resource- SpacesGetResource-- -- * Creating a Request- , spacesGet- , SpacesGet-- -- * Request Lenses- , sgXgafv- , sgUploadProtocol- , sgAccessToken- , sgUploadType- , sgName- , sgCallback- ) where--import Network.Google.Chat.Types-import Network.Google.Prelude---- | A resource alias for @chat.spaces.get@ method which the--- 'SpacesGet' request conforms to.-type SpacesGetResource =- "v1" :>- Capture "name" Text :>- QueryParam "$.xgafv" Xgafv :>- QueryParam "upload_protocol" Text :>- QueryParam "access_token" Text :>- QueryParam "uploadType" Text :>- QueryParam "callback" Text :>- QueryParam "alt" AltJSON :> Get '[JSON] Space---- | Returns a space.------ /See:/ 'spacesGet' smart constructor.-data SpacesGet =- SpacesGet'- { _sgXgafv :: !(Maybe Xgafv)- , _sgUploadProtocol :: !(Maybe Text)- , _sgAccessToken :: !(Maybe Text)- , _sgUploadType :: !(Maybe Text)- , _sgName :: !Text- , _sgCallback :: !(Maybe Text)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'SpacesGet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'sgXgafv'------ * 'sgUploadProtocol'------ * 'sgAccessToken'------ * 'sgUploadType'------ * 'sgName'------ * 'sgCallback'-spacesGet- :: Text -- ^ 'sgName'- -> SpacesGet-spacesGet pSgName_ =- SpacesGet'- { _sgXgafv = Nothing- , _sgUploadProtocol = Nothing- , _sgAccessToken = Nothing- , _sgUploadType = Nothing- , _sgName = pSgName_- , _sgCallback = Nothing- }----- | V1 error format.-sgXgafv :: Lens' SpacesGet (Maybe Xgafv)-sgXgafv = lens _sgXgafv (\ s a -> s{_sgXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-sgUploadProtocol :: Lens' SpacesGet (Maybe Text)-sgUploadProtocol- = lens _sgUploadProtocol- (\ s a -> s{_sgUploadProtocol = a})---- | OAuth access token.-sgAccessToken :: Lens' SpacesGet (Maybe Text)-sgAccessToken- = lens _sgAccessToken- (\ s a -> s{_sgAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-sgUploadType :: Lens' SpacesGet (Maybe Text)-sgUploadType- = lens _sgUploadType (\ s a -> s{_sgUploadType = a})---- | Required. Resource name of the space, in the form \"spaces\/*\".--- Example: spaces\/AAAAMpdlehY-sgName :: Lens' SpacesGet Text-sgName = lens _sgName (\ s a -> s{_sgName = a})---- | JSONP-sgCallback :: Lens' SpacesGet (Maybe Text)-sgCallback- = lens _sgCallback (\ s a -> s{_sgCallback = a})--instance GoogleRequest SpacesGet where- type Rs SpacesGet = Space- type Scopes SpacesGet = '[]- requestClient SpacesGet'{..}- = go _sgName _sgXgafv _sgUploadProtocol- _sgAccessToken- _sgUploadType- _sgCallback- (Just AltJSON)- chatService- where go- = buildClient (Proxy :: Proxy SpacesGetResource)- mempty
− gen/Network/Google/Resource/Chat/Spaces/List.hs
@@ -1,162 +0,0 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE TypeOperators #-}--{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}-{-# OPTIONS_GHC -fno-warn-unused-binds #-}-{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- |--- Module : Network.Google.Resource.Chat.Spaces.List--- Copyright : (c) 2015-2016 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)------ Lists spaces the caller is a member of.------ /See:/ <https://developers.google.com/hangouts/chat Hangouts Chat API Reference> for @chat.spaces.list@.-module Network.Google.Resource.Chat.Spaces.List- (- -- * REST Resource- SpacesListResource-- -- * Creating a Request- , spacesList- , SpacesList-- -- * Request Lenses- , slXgafv- , slUploadProtocol- , slAccessToken- , slUploadType- , slPageToken- , slPageSize- , slCallback- ) where--import Network.Google.Chat.Types-import Network.Google.Prelude---- | A resource alias for @chat.spaces.list@ method which the--- 'SpacesList' request conforms to.-type SpacesListResource =- "v1" :>- "spaces" :>- QueryParam "$.xgafv" Xgafv :>- QueryParam "upload_protocol" Text :>- QueryParam "access_token" Text :>- QueryParam "uploadType" Text :>- QueryParam "pageToken" Text :>- QueryParam "pageSize" (Textual Int32) :>- QueryParam "callback" Text :>- QueryParam "alt" AltJSON :>- Get '[JSON] ListSpacesResponse---- | Lists spaces the caller is a member of.------ /See:/ 'spacesList' smart constructor.-data SpacesList =- SpacesList'- { _slXgafv :: !(Maybe Xgafv)- , _slUploadProtocol :: !(Maybe Text)- , _slAccessToken :: !(Maybe Text)- , _slUploadType :: !(Maybe Text)- , _slPageToken :: !(Maybe Text)- , _slPageSize :: !(Maybe (Textual Int32))- , _slCallback :: !(Maybe Text)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'SpacesList' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'slXgafv'------ * 'slUploadProtocol'------ * 'slAccessToken'------ * 'slUploadType'------ * 'slPageToken'------ * 'slPageSize'------ * 'slCallback'-spacesList- :: SpacesList-spacesList =- SpacesList'- { _slXgafv = Nothing- , _slUploadProtocol = Nothing- , _slAccessToken = Nothing- , _slUploadType = Nothing- , _slPageToken = Nothing- , _slPageSize = Nothing- , _slCallback = Nothing- }----- | V1 error format.-slXgafv :: Lens' SpacesList (Maybe Xgafv)-slXgafv = lens _slXgafv (\ s a -> s{_slXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-slUploadProtocol :: Lens' SpacesList (Maybe Text)-slUploadProtocol- = lens _slUploadProtocol- (\ s a -> s{_slUploadProtocol = a})---- | OAuth access token.-slAccessToken :: Lens' SpacesList (Maybe Text)-slAccessToken- = lens _slAccessToken- (\ s a -> s{_slAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-slUploadType :: Lens' SpacesList (Maybe Text)-slUploadType- = lens _slUploadType (\ s a -> s{_slUploadType = a})---- | A token identifying a page of results the server should return.-slPageToken :: Lens' SpacesList (Maybe Text)-slPageToken- = lens _slPageToken (\ s a -> s{_slPageToken = a})---- | Requested page size. The value is capped at 1000. Server may return--- fewer results than requested. If unspecified, server will default to--- 100.-slPageSize :: Lens' SpacesList (Maybe Int32)-slPageSize- = lens _slPageSize (\ s a -> s{_slPageSize = a}) .- mapping _Coerce---- | JSONP-slCallback :: Lens' SpacesList (Maybe Text)-slCallback- = lens _slCallback (\ s a -> s{_slCallback = a})--instance GoogleRequest SpacesList where- type Rs SpacesList = ListSpacesResponse- type Scopes SpacesList = '[]- requestClient SpacesList'{..}- = go _slXgafv _slUploadProtocol _slAccessToken- _slUploadType- _slPageToken- _slPageSize- _slCallback- (Just AltJSON)- chatService- where go- = buildClient (Proxy :: Proxy SpacesListResource)- mempty
− gen/Network/Google/Resource/Chat/Spaces/Members/Get.hs
@@ -1,149 +0,0 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE TypeOperators #-}--{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}-{-# OPTIONS_GHC -fno-warn-unused-binds #-}-{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- |--- Module : Network.Google.Resource.Chat.Spaces.Members.Get--- Copyright : (c) 2015-2016 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)------ Returns a membership.------ /See:/ <https://developers.google.com/hangouts/chat Hangouts Chat API Reference> for @chat.spaces.members.get@.-module Network.Google.Resource.Chat.Spaces.Members.Get- (- -- * REST Resource- SpacesMembersGetResource-- -- * Creating a Request- , spacesMembersGet- , SpacesMembersGet-- -- * Request Lenses- , spaXgafv- , spaUploadProtocol- , spaAccessToken- , spaUploadType- , spaName- , spaCallback- ) where--import Network.Google.Chat.Types-import Network.Google.Prelude---- | A resource alias for @chat.spaces.members.get@ method which the--- 'SpacesMembersGet' request conforms to.-type SpacesMembersGetResource =- "v1" :>- Capture "name" Text :>- QueryParam "$.xgafv" Xgafv :>- QueryParam "upload_protocol" Text :>- QueryParam "access_token" Text :>- QueryParam "uploadType" Text :>- QueryParam "callback" Text :>- QueryParam "alt" AltJSON :> Get '[JSON] Membership---- | Returns a membership.------ /See:/ 'spacesMembersGet' smart constructor.-data SpacesMembersGet =- SpacesMembersGet'- { _spaXgafv :: !(Maybe Xgafv)- , _spaUploadProtocol :: !(Maybe Text)- , _spaAccessToken :: !(Maybe Text)- , _spaUploadType :: !(Maybe Text)- , _spaName :: !Text- , _spaCallback :: !(Maybe Text)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'SpacesMembersGet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'spaXgafv'------ * 'spaUploadProtocol'------ * 'spaAccessToken'------ * 'spaUploadType'------ * 'spaName'------ * 'spaCallback'-spacesMembersGet- :: Text -- ^ 'spaName'- -> SpacesMembersGet-spacesMembersGet pSpaName_ =- SpacesMembersGet'- { _spaXgafv = Nothing- , _spaUploadProtocol = Nothing- , _spaAccessToken = Nothing- , _spaUploadType = Nothing- , _spaName = pSpaName_- , _spaCallback = Nothing- }----- | V1 error format.-spaXgafv :: Lens' SpacesMembersGet (Maybe Xgafv)-spaXgafv = lens _spaXgafv (\ s a -> s{_spaXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-spaUploadProtocol :: Lens' SpacesMembersGet (Maybe Text)-spaUploadProtocol- = lens _spaUploadProtocol- (\ s a -> s{_spaUploadProtocol = a})---- | OAuth access token.-spaAccessToken :: Lens' SpacesMembersGet (Maybe Text)-spaAccessToken- = lens _spaAccessToken- (\ s a -> s{_spaAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-spaUploadType :: Lens' SpacesMembersGet (Maybe Text)-spaUploadType- = lens _spaUploadType- (\ s a -> s{_spaUploadType = a})---- | Required. Resource name of the membership to be retrieved, in the form--- \"spaces\/*\/members\/*\". Example:--- spaces\/AAAAMpdlehY\/members\/105115627578887013105-spaName :: Lens' SpacesMembersGet Text-spaName = lens _spaName (\ s a -> s{_spaName = a})---- | JSONP-spaCallback :: Lens' SpacesMembersGet (Maybe Text)-spaCallback- = lens _spaCallback (\ s a -> s{_spaCallback = a})--instance GoogleRequest SpacesMembersGet where- type Rs SpacesMembersGet = Membership- type Scopes SpacesMembersGet = '[]- requestClient SpacesMembersGet'{..}- = go _spaName _spaXgafv _spaUploadProtocol- _spaAccessToken- _spaUploadType- _spaCallback- (Just AltJSON)- chatService- where go- = buildClient- (Proxy :: Proxy SpacesMembersGetResource)- mempty
− gen/Network/Google/Resource/Chat/Spaces/Members/List.hs
@@ -1,178 +0,0 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE TypeOperators #-}--{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}-{-# OPTIONS_GHC -fno-warn-unused-binds #-}-{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- |--- Module : Network.Google.Resource.Chat.Spaces.Members.List--- Copyright : (c) 2015-2016 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)------ Lists human memberships in a space.------ /See:/ <https://developers.google.com/hangouts/chat Hangouts Chat API Reference> for @chat.spaces.members.list@.-module Network.Google.Resource.Chat.Spaces.Members.List- (- -- * REST Resource- SpacesMembersListResource-- -- * Creating a Request- , spacesMembersList- , SpacesMembersList-- -- * Request Lenses- , smlParent- , smlXgafv- , smlUploadProtocol- , smlAccessToken- , smlUploadType- , smlPageToken- , smlPageSize- , smlCallback- ) where--import Network.Google.Chat.Types-import Network.Google.Prelude---- | A resource alias for @chat.spaces.members.list@ method which the--- 'SpacesMembersList' request conforms to.-type SpacesMembersListResource =- "v1" :>- Capture "parent" Text :>- "members" :>- QueryParam "$.xgafv" Xgafv :>- QueryParam "upload_protocol" Text :>- QueryParam "access_token" Text :>- QueryParam "uploadType" Text :>- QueryParam "pageToken" Text :>- QueryParam "pageSize" (Textual Int32) :>- QueryParam "callback" Text :>- QueryParam "alt" AltJSON :>- Get '[JSON] ListMembershipsResponse---- | Lists human memberships in a space.------ /See:/ 'spacesMembersList' smart constructor.-data SpacesMembersList =- SpacesMembersList'- { _smlParent :: !Text- , _smlXgafv :: !(Maybe Xgafv)- , _smlUploadProtocol :: !(Maybe Text)- , _smlAccessToken :: !(Maybe Text)- , _smlUploadType :: !(Maybe Text)- , _smlPageToken :: !(Maybe Text)- , _smlPageSize :: !(Maybe (Textual Int32))- , _smlCallback :: !(Maybe Text)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'SpacesMembersList' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'smlParent'------ * 'smlXgafv'------ * 'smlUploadProtocol'------ * 'smlAccessToken'------ * 'smlUploadType'------ * 'smlPageToken'------ * 'smlPageSize'------ * 'smlCallback'-spacesMembersList- :: Text -- ^ 'smlParent'- -> SpacesMembersList-spacesMembersList pSmlParent_ =- SpacesMembersList'- { _smlParent = pSmlParent_- , _smlXgafv = Nothing- , _smlUploadProtocol = Nothing- , _smlAccessToken = Nothing- , _smlUploadType = Nothing- , _smlPageToken = Nothing- , _smlPageSize = Nothing- , _smlCallback = Nothing- }----- | Required. The resource name of the space for which membership list is to--- be fetched, in the form \"spaces\/*\". Example: spaces\/AAAAMpdlehY-smlParent :: Lens' SpacesMembersList Text-smlParent- = lens _smlParent (\ s a -> s{_smlParent = a})---- | V1 error format.-smlXgafv :: Lens' SpacesMembersList (Maybe Xgafv)-smlXgafv = lens _smlXgafv (\ s a -> s{_smlXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-smlUploadProtocol :: Lens' SpacesMembersList (Maybe Text)-smlUploadProtocol- = lens _smlUploadProtocol- (\ s a -> s{_smlUploadProtocol = a})---- | OAuth access token.-smlAccessToken :: Lens' SpacesMembersList (Maybe Text)-smlAccessToken- = lens _smlAccessToken- (\ s a -> s{_smlAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-smlUploadType :: Lens' SpacesMembersList (Maybe Text)-smlUploadType- = lens _smlUploadType- (\ s a -> s{_smlUploadType = a})---- | A token identifying a page of results the server should return.-smlPageToken :: Lens' SpacesMembersList (Maybe Text)-smlPageToken- = lens _smlPageToken (\ s a -> s{_smlPageToken = a})---- | Requested page size. The value is capped at 1000. Server may return--- fewer results than requested. If unspecified, server will default to--- 100.-smlPageSize :: Lens' SpacesMembersList (Maybe Int32)-smlPageSize- = lens _smlPageSize (\ s a -> s{_smlPageSize = a}) .- mapping _Coerce---- | JSONP-smlCallback :: Lens' SpacesMembersList (Maybe Text)-smlCallback- = lens _smlCallback (\ s a -> s{_smlCallback = a})--instance GoogleRequest SpacesMembersList where- type Rs SpacesMembersList = ListMembershipsResponse- type Scopes SpacesMembersList = '[]- requestClient SpacesMembersList'{..}- = go _smlParent _smlXgafv _smlUploadProtocol- _smlAccessToken- _smlUploadType- _smlPageToken- _smlPageSize- _smlCallback- (Just AltJSON)- chatService- where go- = buildClient- (Proxy :: Proxy SpacesMembersListResource)- mempty
− gen/Network/Google/Resource/Chat/Spaces/Messages/Create.hs
@@ -1,182 +0,0 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE TypeOperators #-}--{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}-{-# OPTIONS_GHC -fno-warn-unused-binds #-}-{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- |--- Module : Network.Google.Resource.Chat.Spaces.Messages.Create--- Copyright : (c) 2015-2016 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)------ Creates a message.------ /See:/ <https://developers.google.com/hangouts/chat Hangouts Chat API Reference> for @chat.spaces.messages.create@.-module Network.Google.Resource.Chat.Spaces.Messages.Create- (- -- * REST Resource- SpacesMessagesCreateResource-- -- * Creating a Request- , spacesMessagesCreate- , SpacesMessagesCreate-- -- * Request Lenses- , smcParent- , smcXgafv- , smcUploadProtocol- , smcAccessToken- , smcUploadType- , smcPayload- , smcCallback- , smcThreadKey- ) where--import Network.Google.Chat.Types-import Network.Google.Prelude---- | A resource alias for @chat.spaces.messages.create@ method which the--- 'SpacesMessagesCreate' request conforms to.-type SpacesMessagesCreateResource =- "v1" :>- Capture "parent" Text :>- "messages" :>- QueryParam "$.xgafv" Xgafv :>- QueryParam "upload_protocol" Text :>- QueryParam "access_token" Text :>- QueryParam "uploadType" Text :>- QueryParam "callback" Text :>- QueryParam "threadKey" Text :>- QueryParam "alt" AltJSON :>- ReqBody '[JSON] Message :> Post '[JSON] Message---- | Creates a message.------ /See:/ 'spacesMessagesCreate' smart constructor.-data SpacesMessagesCreate =- SpacesMessagesCreate'- { _smcParent :: !Text- , _smcXgafv :: !(Maybe Xgafv)- , _smcUploadProtocol :: !(Maybe Text)- , _smcAccessToken :: !(Maybe Text)- , _smcUploadType :: !(Maybe Text)- , _smcPayload :: !Message- , _smcCallback :: !(Maybe Text)- , _smcThreadKey :: !(Maybe Text)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'SpacesMessagesCreate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'smcParent'------ * 'smcXgafv'------ * 'smcUploadProtocol'------ * 'smcAccessToken'------ * 'smcUploadType'------ * 'smcPayload'------ * 'smcCallback'------ * 'smcThreadKey'-spacesMessagesCreate- :: Text -- ^ 'smcParent'- -> Message -- ^ 'smcPayload'- -> SpacesMessagesCreate-spacesMessagesCreate pSmcParent_ pSmcPayload_ =- SpacesMessagesCreate'- { _smcParent = pSmcParent_- , _smcXgafv = Nothing- , _smcUploadProtocol = Nothing- , _smcAccessToken = Nothing- , _smcUploadType = Nothing- , _smcPayload = pSmcPayload_- , _smcCallback = Nothing- , _smcThreadKey = Nothing- }----- | Required. Space resource name, in the form \"spaces\/*\". Example:--- spaces\/AAAAMpdlehY-smcParent :: Lens' SpacesMessagesCreate Text-smcParent- = lens _smcParent (\ s a -> s{_smcParent = a})---- | V1 error format.-smcXgafv :: Lens' SpacesMessagesCreate (Maybe Xgafv)-smcXgafv = lens _smcXgafv (\ s a -> s{_smcXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-smcUploadProtocol :: Lens' SpacesMessagesCreate (Maybe Text)-smcUploadProtocol- = lens _smcUploadProtocol- (\ s a -> s{_smcUploadProtocol = a})---- | OAuth access token.-smcAccessToken :: Lens' SpacesMessagesCreate (Maybe Text)-smcAccessToken- = lens _smcAccessToken- (\ s a -> s{_smcAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-smcUploadType :: Lens' SpacesMessagesCreate (Maybe Text)-smcUploadType- = lens _smcUploadType- (\ s a -> s{_smcUploadType = a})---- | Multipart request metadata.-smcPayload :: Lens' SpacesMessagesCreate Message-smcPayload- = lens _smcPayload (\ s a -> s{_smcPayload = a})---- | JSONP-smcCallback :: Lens' SpacesMessagesCreate (Maybe Text)-smcCallback- = lens _smcCallback (\ s a -> s{_smcCallback = a})---- | Opaque thread identifier string that can be specified to group messages--- into a single thread. If this is the first message with a given thread--- identifier, a new thread is created. Subsequent messages with the same--- thread identifier will be posted into the same thread. This relieves--- bots and webhooks from having to store the Hangouts Chat thread ID of a--- thread (created earlier by them) to post further updates to it. Has no--- effect if thread field, corresponding to an existing thread, is set in--- message.-smcThreadKey :: Lens' SpacesMessagesCreate (Maybe Text)-smcThreadKey- = lens _smcThreadKey (\ s a -> s{_smcThreadKey = a})--instance GoogleRequest SpacesMessagesCreate where- type Rs SpacesMessagesCreate = Message- type Scopes SpacesMessagesCreate = '[]- requestClient SpacesMessagesCreate'{..}- = go _smcParent _smcXgafv _smcUploadProtocol- _smcAccessToken- _smcUploadType- _smcCallback- _smcThreadKey- (Just AltJSON)- _smcPayload- chatService- where go- = buildClient- (Proxy :: Proxy SpacesMessagesCreateResource)- mempty
− gen/Network/Google/Resource/Chat/Spaces/Messages/Delete.hs
@@ -1,149 +0,0 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE TypeOperators #-}--{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}-{-# OPTIONS_GHC -fno-warn-unused-binds #-}-{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- |--- Module : Network.Google.Resource.Chat.Spaces.Messages.Delete--- Copyright : (c) 2015-2016 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)------ Deletes a message.------ /See:/ <https://developers.google.com/hangouts/chat Hangouts Chat API Reference> for @chat.spaces.messages.delete@.-module Network.Google.Resource.Chat.Spaces.Messages.Delete- (- -- * REST Resource- SpacesMessagesDeleteResource-- -- * Creating a Request- , spacesMessagesDelete- , SpacesMessagesDelete-- -- * Request Lenses- , smdXgafv- , smdUploadProtocol- , smdAccessToken- , smdUploadType- , smdName- , smdCallback- ) where--import Network.Google.Chat.Types-import Network.Google.Prelude---- | A resource alias for @chat.spaces.messages.delete@ method which the--- 'SpacesMessagesDelete' request conforms to.-type SpacesMessagesDeleteResource =- "v1" :>- Capture "name" Text :>- QueryParam "$.xgafv" Xgafv :>- QueryParam "upload_protocol" Text :>- QueryParam "access_token" Text :>- QueryParam "uploadType" Text :>- QueryParam "callback" Text :>- QueryParam "alt" AltJSON :> Delete '[JSON] Empty---- | Deletes a message.------ /See:/ 'spacesMessagesDelete' smart constructor.-data SpacesMessagesDelete =- SpacesMessagesDelete'- { _smdXgafv :: !(Maybe Xgafv)- , _smdUploadProtocol :: !(Maybe Text)- , _smdAccessToken :: !(Maybe Text)- , _smdUploadType :: !(Maybe Text)- , _smdName :: !Text- , _smdCallback :: !(Maybe Text)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'SpacesMessagesDelete' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'smdXgafv'------ * 'smdUploadProtocol'------ * 'smdAccessToken'------ * 'smdUploadType'------ * 'smdName'------ * 'smdCallback'-spacesMessagesDelete- :: Text -- ^ 'smdName'- -> SpacesMessagesDelete-spacesMessagesDelete pSmdName_ =- SpacesMessagesDelete'- { _smdXgafv = Nothing- , _smdUploadProtocol = Nothing- , _smdAccessToken = Nothing- , _smdUploadType = Nothing- , _smdName = pSmdName_- , _smdCallback = Nothing- }----- | V1 error format.-smdXgafv :: Lens' SpacesMessagesDelete (Maybe Xgafv)-smdXgafv = lens _smdXgafv (\ s a -> s{_smdXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-smdUploadProtocol :: Lens' SpacesMessagesDelete (Maybe Text)-smdUploadProtocol- = lens _smdUploadProtocol- (\ s a -> s{_smdUploadProtocol = a})---- | OAuth access token.-smdAccessToken :: Lens' SpacesMessagesDelete (Maybe Text)-smdAccessToken- = lens _smdAccessToken- (\ s a -> s{_smdAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-smdUploadType :: Lens' SpacesMessagesDelete (Maybe Text)-smdUploadType- = lens _smdUploadType- (\ s a -> s{_smdUploadType = a})---- | Required. Resource name of the message to be deleted, in the form--- \"spaces\/*\/messages\/*\" Example:--- spaces\/AAAAMpdlehY\/messages\/UMxbHmzDlr4.UMxbHmzDlr4-smdName :: Lens' SpacesMessagesDelete Text-smdName = lens _smdName (\ s a -> s{_smdName = a})---- | JSONP-smdCallback :: Lens' SpacesMessagesDelete (Maybe Text)-smdCallback- = lens _smdCallback (\ s a -> s{_smdCallback = a})--instance GoogleRequest SpacesMessagesDelete where- type Rs SpacesMessagesDelete = Empty- type Scopes SpacesMessagesDelete = '[]- requestClient SpacesMessagesDelete'{..}- = go _smdName _smdXgafv _smdUploadProtocol- _smdAccessToken- _smdUploadType- _smdCallback- (Just AltJSON)- chatService- where go- = buildClient- (Proxy :: Proxy SpacesMessagesDeleteResource)- mempty
− gen/Network/Google/Resource/Chat/Spaces/Messages/Get.hs
@@ -1,149 +0,0 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE TypeOperators #-}--{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}-{-# OPTIONS_GHC -fno-warn-unused-binds #-}-{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- |--- Module : Network.Google.Resource.Chat.Spaces.Messages.Get--- Copyright : (c) 2015-2016 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)------ Returns a message.------ /See:/ <https://developers.google.com/hangouts/chat Hangouts Chat API Reference> for @chat.spaces.messages.get@.-module Network.Google.Resource.Chat.Spaces.Messages.Get- (- -- * REST Resource- SpacesMessagesGetResource-- -- * Creating a Request- , spacesMessagesGet- , SpacesMessagesGet-- -- * Request Lenses- , smgXgafv- , smgUploadProtocol- , smgAccessToken- , smgUploadType- , smgName- , smgCallback- ) where--import Network.Google.Chat.Types-import Network.Google.Prelude---- | A resource alias for @chat.spaces.messages.get@ method which the--- 'SpacesMessagesGet' request conforms to.-type SpacesMessagesGetResource =- "v1" :>- Capture "name" Text :>- QueryParam "$.xgafv" Xgafv :>- QueryParam "upload_protocol" Text :>- QueryParam "access_token" Text :>- QueryParam "uploadType" Text :>- QueryParam "callback" Text :>- QueryParam "alt" AltJSON :> Get '[JSON] Message---- | Returns a message.------ /See:/ 'spacesMessagesGet' smart constructor.-data SpacesMessagesGet =- SpacesMessagesGet'- { _smgXgafv :: !(Maybe Xgafv)- , _smgUploadProtocol :: !(Maybe Text)- , _smgAccessToken :: !(Maybe Text)- , _smgUploadType :: !(Maybe Text)- , _smgName :: !Text- , _smgCallback :: !(Maybe Text)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'SpacesMessagesGet' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'smgXgafv'------ * 'smgUploadProtocol'------ * 'smgAccessToken'------ * 'smgUploadType'------ * 'smgName'------ * 'smgCallback'-spacesMessagesGet- :: Text -- ^ 'smgName'- -> SpacesMessagesGet-spacesMessagesGet pSmgName_ =- SpacesMessagesGet'- { _smgXgafv = Nothing- , _smgUploadProtocol = Nothing- , _smgAccessToken = Nothing- , _smgUploadType = Nothing- , _smgName = pSmgName_- , _smgCallback = Nothing- }----- | V1 error format.-smgXgafv :: Lens' SpacesMessagesGet (Maybe Xgafv)-smgXgafv = lens _smgXgafv (\ s a -> s{_smgXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-smgUploadProtocol :: Lens' SpacesMessagesGet (Maybe Text)-smgUploadProtocol- = lens _smgUploadProtocol- (\ s a -> s{_smgUploadProtocol = a})---- | OAuth access token.-smgAccessToken :: Lens' SpacesMessagesGet (Maybe Text)-smgAccessToken- = lens _smgAccessToken- (\ s a -> s{_smgAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-smgUploadType :: Lens' SpacesMessagesGet (Maybe Text)-smgUploadType- = lens _smgUploadType- (\ s a -> s{_smgUploadType = a})---- | Required. Resource name of the message to be retrieved, in the form--- \"spaces\/*\/messages\/*\". Example:--- spaces\/AAAAMpdlehY\/messages\/UMxbHmzDlr4.UMxbHmzDlr4-smgName :: Lens' SpacesMessagesGet Text-smgName = lens _smgName (\ s a -> s{_smgName = a})---- | JSONP-smgCallback :: Lens' SpacesMessagesGet (Maybe Text)-smgCallback- = lens _smgCallback (\ s a -> s{_smgCallback = a})--instance GoogleRequest SpacesMessagesGet where- type Rs SpacesMessagesGet = Message- type Scopes SpacesMessagesGet = '[]- requestClient SpacesMessagesGet'{..}- = go _smgName _smgXgafv _smgUploadProtocol- _smgAccessToken- _smgUploadType- _smgCallback- (Just AltJSON)- chatService- where go- = buildClient- (Proxy :: Proxy SpacesMessagesGetResource)- mempty
− gen/Network/Google/Resource/Chat/Spaces/Messages/Update.hs
@@ -1,175 +0,0 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE NoImplicitPrelude #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE TypeOperators #-}--{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}-{-# OPTIONS_GHC -fno-warn-unused-binds #-}-{-# OPTIONS_GHC -fno-warn-unused-imports #-}---- |--- Module : Network.Google.Resource.Chat.Spaces.Messages.Update--- Copyright : (c) 2015-2016 Brendan Hay--- License : Mozilla Public License, v. 2.0.--- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>--- Stability : auto-generated--- Portability : non-portable (GHC extensions)------ Updates a message.------ /See:/ <https://developers.google.com/hangouts/chat Hangouts Chat API Reference> for @chat.spaces.messages.update@.-module Network.Google.Resource.Chat.Spaces.Messages.Update- (- -- * REST Resource- SpacesMessagesUpdateResource-- -- * Creating a Request- , spacesMessagesUpdate- , SpacesMessagesUpdate-- -- * Request Lenses- , smuXgafv- , smuUploadProtocol- , smuUpdateMask- , smuAccessToken- , smuUploadType- , smuPayload- , smuName- , smuCallback- ) where--import Network.Google.Chat.Types-import Network.Google.Prelude---- | A resource alias for @chat.spaces.messages.update@ method which the--- 'SpacesMessagesUpdate' request conforms to.-type SpacesMessagesUpdateResource =- "v1" :>- Capture "name" Text :>- QueryParam "$.xgafv" Xgafv :>- QueryParam "upload_protocol" Text :>- QueryParam "updateMask" GFieldMask :>- QueryParam "access_token" Text :>- QueryParam "uploadType" Text :>- QueryParam "callback" Text :>- QueryParam "alt" AltJSON :>- ReqBody '[JSON] Message :> Put '[JSON] Message---- | Updates a message.------ /See:/ 'spacesMessagesUpdate' smart constructor.-data SpacesMessagesUpdate =- SpacesMessagesUpdate'- { _smuXgafv :: !(Maybe Xgafv)- , _smuUploadProtocol :: !(Maybe Text)- , _smuUpdateMask :: !(Maybe GFieldMask)- , _smuAccessToken :: !(Maybe Text)- , _smuUploadType :: !(Maybe Text)- , _smuPayload :: !Message- , _smuName :: !Text- , _smuCallback :: !(Maybe Text)- }- deriving (Eq, Show, Data, Typeable, Generic)----- | Creates a value of 'SpacesMessagesUpdate' with the minimum fields required to make a request.------ Use one of the following lenses to modify other fields as desired:------ * 'smuXgafv'------ * 'smuUploadProtocol'------ * 'smuUpdateMask'------ * 'smuAccessToken'------ * 'smuUploadType'------ * 'smuPayload'------ * 'smuName'------ * 'smuCallback'-spacesMessagesUpdate- :: Message -- ^ 'smuPayload'- -> Text -- ^ 'smuName'- -> SpacesMessagesUpdate-spacesMessagesUpdate pSmuPayload_ pSmuName_ =- SpacesMessagesUpdate'- { _smuXgafv = Nothing- , _smuUploadProtocol = Nothing- , _smuUpdateMask = Nothing- , _smuAccessToken = Nothing- , _smuUploadType = Nothing- , _smuPayload = pSmuPayload_- , _smuName = pSmuName_- , _smuCallback = Nothing- }----- | V1 error format.-smuXgafv :: Lens' SpacesMessagesUpdate (Maybe Xgafv)-smuXgafv = lens _smuXgafv (\ s a -> s{_smuXgafv = a})---- | Upload protocol for media (e.g. \"raw\", \"multipart\").-smuUploadProtocol :: Lens' SpacesMessagesUpdate (Maybe Text)-smuUploadProtocol- = lens _smuUploadProtocol- (\ s a -> s{_smuUploadProtocol = a})---- | Required. The field paths to be updated. Currently supported field--- paths: \"text\", \"cards\".-smuUpdateMask :: Lens' SpacesMessagesUpdate (Maybe GFieldMask)-smuUpdateMask- = lens _smuUpdateMask- (\ s a -> s{_smuUpdateMask = a})---- | OAuth access token.-smuAccessToken :: Lens' SpacesMessagesUpdate (Maybe Text)-smuAccessToken- = lens _smuAccessToken- (\ s a -> s{_smuAccessToken = a})---- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").-smuUploadType :: Lens' SpacesMessagesUpdate (Maybe Text)-smuUploadType- = lens _smuUploadType- (\ s a -> s{_smuUploadType = a})---- | Multipart request metadata.-smuPayload :: Lens' SpacesMessagesUpdate Message-smuPayload- = lens _smuPayload (\ s a -> s{_smuPayload = a})---- | Resource name, in the form \"spaces\/*\/messages\/*\". Example:--- spaces\/AAAAMpdlehY\/messages\/UMxbHmzDlr4.UMxbHmzDlr4-smuName :: Lens' SpacesMessagesUpdate Text-smuName = lens _smuName (\ s a -> s{_smuName = a})---- | JSONP-smuCallback :: Lens' SpacesMessagesUpdate (Maybe Text)-smuCallback- = lens _smuCallback (\ s a -> s{_smuCallback = a})--instance GoogleRequest SpacesMessagesUpdate where- type Rs SpacesMessagesUpdate = Message- type Scopes SpacesMessagesUpdate = '[]- requestClient SpacesMessagesUpdate'{..}- = go _smuName _smuXgafv _smuUploadProtocol- _smuUpdateMask- _smuAccessToken- _smuUploadType- _smuCallback- (Just AltJSON)- _smuPayload- chatService- where go- = buildClient- (Proxy :: Proxy SpacesMessagesUpdateResource)- mempty
gogol-chat.cabal view
@@ -1,53 +1,93 @@-name: gogol-chat-version: 0.5.0-synopsis: Google Hangouts Chat SDK.-homepage: https://github.com/brendanhay/gogol-bug-reports: https://github.com/brendanhay/gogol/issues-license: OtherLicense-license-file: LICENSE-author: Brendan Hay-maintainer: Brendan Hay <brendan.g.hay@gmail.com>-copyright: Copyright (c) 2015-2016 Brendan Hay-category: Network, Google, Cloud-build-type: Simple-cabal-version: >= 1.10-extra-source-files: README.md src/.gitkeep+cabal-version: 2.2+name: gogol-chat+version: 1.0.0+synopsis: Google Chat SDK.+homepage: https://github.com/brendanhay/gogol+bug-reports: https://github.com/brendanhay/gogol/issues+license: MPL-2.0+license-file: LICENSE+author: Brendan Hay+maintainer:+ Brendan Hay <brendan.g.hay+gogol@gmail.com>, Toni Cebrián <toni@tonicebrian.com> +copyright: Copyright (c) 2015-2025 Brendan Hay+category: Google+build-type: Simple+extra-source-files:+ README.md+ src/.gitkeep+ description:- Enables bots to fetch information and perform actions in Hangouts Chat.- .- /Warning:/ This is an experimental prototype/preview release which is still- under exploratory development and not intended for public use, caveat emptor!- .- This library is compatible with version @v1@- of the API.+ The Google Chat API lets you build Chat apps to integrate your services with Google Chat and manage Chat resources such as spaces, members, and messages.+ .+ /Warning:/ This is an experimental prototype/preview release which is still+ under exploratory development and not intended for public use, caveat emptor!+ .+ This library is compatible with version @v1@+ of the API. source-repository head- type: git- location: git://github.com/brendanhay/gogol.git+ type: git+ location: git://github.com/brendanhay/gogol.git+ subdir: gogol-chat +flag field-selectors+ description:+ If record field selectors should be enabled. Disabling this requires GHC >=9.2 and the NoFieldSelectors extension.++ default: False+ manual: True+ library- default-language: Haskell2010- hs-source-dirs: src gen+ default-language: GHC2021+ hs-source-dirs: src gen+ ghc-options:+ -Wall -fwarn-incomplete-uni-patterns+ -fwarn-incomplete-record-updates -funbox-strict-fields+ -fwarn-unused-packages - ghc-options: -Wall+ if (!flag(field-selectors) && impl(ghc >=9.2))+ default-extensions: NoFieldSelectors - exposed-modules:- Network.Google.Chat- , Network.Google.Chat.Types- , Network.Google.Resource.Chat.Spaces.Get- , Network.Google.Resource.Chat.Spaces.List- , Network.Google.Resource.Chat.Spaces.Members.Get- , Network.Google.Resource.Chat.Spaces.Members.List- , Network.Google.Resource.Chat.Spaces.Messages.Create- , Network.Google.Resource.Chat.Spaces.Messages.Delete- , Network.Google.Resource.Chat.Spaces.Messages.Get- , Network.Google.Resource.Chat.Spaces.Messages.Update+ exposed-modules:+ Gogol.Chat+ Gogol.Chat.Media.Download+ Gogol.Chat.Media.Upload+ Gogol.Chat.Spaces.CompleteImport+ Gogol.Chat.Spaces.Create+ Gogol.Chat.Spaces.Delete+ Gogol.Chat.Spaces.FindDirectMessage+ Gogol.Chat.Spaces.Get+ Gogol.Chat.Spaces.List+ Gogol.Chat.Spaces.Members.Create+ Gogol.Chat.Spaces.Members.Delete+ Gogol.Chat.Spaces.Members.Get+ Gogol.Chat.Spaces.Members.List+ Gogol.Chat.Spaces.Members.Patch+ Gogol.Chat.Spaces.Messages.Attachments.Get+ Gogol.Chat.Spaces.Messages.Create+ Gogol.Chat.Spaces.Messages.Delete+ Gogol.Chat.Spaces.Messages.Get+ Gogol.Chat.Spaces.Messages.List+ Gogol.Chat.Spaces.Messages.Patch+ Gogol.Chat.Spaces.Messages.Reactions.Create+ Gogol.Chat.Spaces.Messages.Reactions.Delete+ Gogol.Chat.Spaces.Messages.Reactions.List+ Gogol.Chat.Spaces.Messages.Update+ Gogol.Chat.Spaces.Patch+ Gogol.Chat.Spaces.Search+ Gogol.Chat.Spaces.Setup+ Gogol.Chat.Spaces.SpaceEvents.Get+ Gogol.Chat.Spaces.SpaceEvents.List+ Gogol.Chat.Types+ Gogol.Chat.Users.Spaces.GetSpaceReadState+ Gogol.Chat.Users.Spaces.SpaceNotificationSetting.Get+ Gogol.Chat.Users.Spaces.SpaceNotificationSetting.Patch+ Gogol.Chat.Users.Spaces.Threads.GetThreadReadState+ Gogol.Chat.Users.Spaces.UpdateSpaceReadState - other-modules:- Network.Google.Chat.Types.Product- , Network.Google.Chat.Types.Sum+ other-modules:+ Gogol.Chat.Internal.Product+ Gogol.Chat.Internal.Sum - build-depends:- gogol-core == 0.5.0.*- , base >= 4.7 && < 5+ build-depends: gogol-core ^>=1.0.0