// Copyright 2022 Google LLC. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Code generated file. DO NOT EDIT. // Package chat provides access to the Google Chat API. // // For product documentation, see: https://developers.google.com/hangouts/chat // // Creating a client // // Usage example: // // import "google.golang.org/api/chat/v1" // ... // ctx := context.Background() // chatService, err := chat.NewService(ctx) // // In this example, Google Application Default Credentials are used for authentication. // // For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials. // // Other authentication options // // To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey: // // chatService, err := chat.NewService(ctx, option.WithAPIKey("AIza...")) // // To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource: // // config := &oauth2.Config{...} // // ... // token, err := config.Exchange(ctx, ...) // chatService, err := chat.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token))) // // See https://godoc.org/google.golang.org/api/option/ for details on options. package chat // import "google.golang.org/api/chat/v1" import ( "bytes" "context" "encoding/json" "errors" "fmt" "io" "net/http" "net/url" "strconv" "strings" googleapi "google.golang.org/api/googleapi" internal "google.golang.org/api/internal" gensupport "google.golang.org/api/internal/gensupport" option "google.golang.org/api/option" internaloption "google.golang.org/api/option/internaloption" htransport "google.golang.org/api/transport/http" ) // Always reference these packages, just in case the auto-generated code // below doesn't. var _ = bytes.NewBuffer var _ = strconv.Itoa var _ = fmt.Sprintf var _ = json.NewDecoder var _ = io.Copy var _ = url.Parse var _ = gensupport.MarshalJSON var _ = googleapi.Version var _ = errors.New var _ = strings.Replace var _ = context.Canceled var _ = internaloption.WithDefaultEndpoint const apiId = "chat:v1" const apiName = "chat" const apiVersion = "v1" const basePath = "https://chat.googleapis.com/" const mtlsBasePath = "https://chat.mtls.googleapis.com/" // NewService creates a new Service. func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) { opts = append(opts, internaloption.WithDefaultEndpoint(basePath)) opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath)) client, endpoint, err := htransport.NewClient(ctx, opts...) if err != nil { return nil, err } s, err := New(client) if err != nil { return nil, err } if endpoint != "" { s.BasePath = endpoint } return s, nil } // New creates a new Service. It uses the provided http.Client for requests. // // Deprecated: please use NewService instead. // To provide a custom HTTP client, use option.WithHTTPClient. // If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead. func New(client *http.Client) (*Service, error) { if client == nil { return nil, errors.New("client is nil") } s := &Service{client: client, BasePath: basePath} s.Dms = NewDmsService(s) s.Media = NewMediaService(s) s.Rooms = NewRoomsService(s) s.Spaces = NewSpacesService(s) return s, nil } type Service struct { client *http.Client BasePath string // API endpoint base URL UserAgent string // optional additional User-Agent fragment Dms *DmsService Media *MediaService Rooms *RoomsService Spaces *SpacesService } func (s *Service) userAgent() string { if s.UserAgent == "" { return googleapi.UserAgent } return googleapi.UserAgent + " " + s.UserAgent } func NewDmsService(s *Service) *DmsService { rs := &DmsService{s: s} rs.Conversations = NewDmsConversationsService(s) return rs } type DmsService struct { s *Service Conversations *DmsConversationsService } func NewDmsConversationsService(s *Service) *DmsConversationsService { rs := &DmsConversationsService{s: s} return rs } type DmsConversationsService struct { s *Service } func NewMediaService(s *Service) *MediaService { rs := &MediaService{s: s} return rs } type MediaService struct { s *Service } func NewRoomsService(s *Service) *RoomsService { rs := &RoomsService{s: s} rs.Conversations = NewRoomsConversationsService(s) return rs } type RoomsService struct { s *Service Conversations *RoomsConversationsService } func NewRoomsConversationsService(s *Service) *RoomsConversationsService { rs := &RoomsConversationsService{s: s} return rs } type RoomsConversationsService struct { s *Service } func NewSpacesService(s *Service) *SpacesService { rs := &SpacesService{s: s} rs.Members = NewSpacesMembersService(s) rs.Messages = NewSpacesMessagesService(s) return rs } type SpacesService struct { s *Service Members *SpacesMembersService Messages *SpacesMessagesService } func NewSpacesMembersService(s *Service) *SpacesMembersService { rs := &SpacesMembersService{s: s} return rs } type SpacesMembersService struct { s *Service } func NewSpacesMessagesService(s *Service) *SpacesMessagesService { rs := &SpacesMessagesService{s: s} rs.Attachments = NewSpacesMessagesAttachmentsService(s) return rs } type SpacesMessagesService struct { s *Service Attachments *SpacesMessagesAttachmentsService } func NewSpacesMessagesAttachmentsService(s *Service) *SpacesMessagesAttachmentsService { rs := &SpacesMessagesAttachmentsService{s: s} return rs } type SpacesMessagesAttachmentsService struct { s *Service } // ActionParameter: 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. type ActionParameter struct { // Key: The name of the parameter for the action script. Key string `json:"key,omitempty"` // Value: The value of the parameter. Value string `json:"value,omitempty"` // ForceSendFields is a list of field names (e.g. "Key") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Key") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *ActionParameter) MarshalJSON() ([]byte, error) { type NoMethod ActionParameter raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // ActionResponse: Parameters that a Chat app can use to configure how // it's response is posted. type ActionResponse struct { // DialogAction: Input only. A response to an event related to a dialog // (https://developers.google.com/chat/how-tos/dialogs). Must be // accompanied by `ResponseType.Dialog`. DialogAction *DialogAction `json:"dialogAction,omitempty"` // Type: Input only. The type of Chat app response. // // Possible values: // "TYPE_UNSPECIFIED" - Default type; will be handled as NEW_MESSAGE. // "NEW_MESSAGE" - Post as a new message in the topic. // "UPDATE_MESSAGE" - Update the Chat app's message. This is only // permitted on a CARD_CLICKED event where the message sender type is // BOT. // "UPDATE_USER_MESSAGE_CARDS" - 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 will be ignored. // "REQUEST_CONFIG" - Privately ask the user for additional auth or // config. // "DIALOG" - Presents a // [dialog](https://developers.google.com/chat/how-tos/dialogs). Type string `json:"type,omitempty"` // Url: Input only. URL for users to auth or config. (Only for // REQUEST_CONFIG response types.) Url string `json:"url,omitempty"` // ForceSendFields is a list of field names (e.g. "DialogAction") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "DialogAction") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *ActionResponse) MarshalJSON() ([]byte, error) { type NoMethod ActionResponse raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // ActionStatus: Represents the status for a request to either invoke or // submit a dialog (https://developers.google.com/chat/how-tos/dialogs). type ActionStatus struct { // StatusCode: The status code. // // Possible values: // "OK" - Not an error; returned on success HTTP Mapping: 200 OK // "CANCELLED" - The operation was cancelled, typically by the caller. // HTTP Mapping: 499 Client Closed Request // "UNKNOWN" - 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 // "INVALID_ARGUMENT" - 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 // "DEADLINE_EXCEEDED" - 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 // "NOT_FOUND" - 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 // "ALREADY_EXISTS" - The entity that a client attempted to create // (e.g., file or directory) already exists. HTTP Mapping: 409 Conflict // "PERMISSION_DENIED" - 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 // "UNAUTHENTICATED" - The request does not have valid authentication // credentials for the operation. HTTP Mapping: 401 Unauthorized // "RESOURCE_EXHAUSTED" - 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 // "FAILED_PRECONDITION" - 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 // "ABORTED" - 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 // "OUT_OF_RANGE" - 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 // "UNIMPLEMENTED" - The operation is not implemented or is not // supported/enabled in this service. HTTP Mapping: 501 Not Implemented // "INTERNAL" - 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 // "UNAVAILABLE" - 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 // "DATA_LOSS" - Unrecoverable data loss or corruption. HTTP Mapping: // 500 Internal Server Error StatusCode string `json:"statusCode,omitempty"` // UserFacingMessage: The message to send users about the status of // their request. If unset, a generic message based on the `status_code` // is sent. UserFacingMessage string `json:"userFacingMessage,omitempty"` // ForceSendFields is a list of field names (e.g. "StatusCode") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "StatusCode") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *ActionStatus) MarshalJSON() ([]byte, error) { type NoMethod ActionStatus raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Annotation: 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" } }] ``` type Annotation struct { // Length: Length of the substring in the plain-text message body this // annotation corresponds to. Length int64 `json:"length,omitempty"` // SlashCommand: The metadata for a slash command. SlashCommand *SlashCommandMetadata `json:"slashCommand,omitempty"` // StartIndex: Start index (0-based, inclusive) in the plain-text // message body this annotation corresponds to. StartIndex int64 `json:"startIndex,omitempty"` // Type: The type of this annotation. // // Possible values: // "ANNOTATION_TYPE_UNSPECIFIED" - Default value for the enum. DO NOT // USE. // "USER_MENTION" - A user is mentioned. // "SLASH_COMMAND" - A slash command is invoked. Type string `json:"type,omitempty"` // UserMention: The metadata of user mention. UserMention *UserMentionMetadata `json:"userMention,omitempty"` // ForceSendFields is a list of field names (e.g. "Length") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Length") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Annotation) MarshalJSON() ([]byte, error) { type NoMethod Annotation raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Attachment: An attachment in Google Chat. type Attachment struct { // AttachmentDataRef: A reference to the attachment data. This is used // with the media API to download the attachment data. AttachmentDataRef *AttachmentDataRef `json:"attachmentDataRef,omitempty"` // ContentName: The original file name for the content, not the full // path. ContentName string `json:"contentName,omitempty"` // ContentType: The content type (MIME type) of the file. ContentType string `json:"contentType,omitempty"` // DownloadUri: Output only. The download URL which should be used to // allow a human user to download the attachment. Chat apps should not // use this URL to download attachment content. DownloadUri string `json:"downloadUri,omitempty"` // DriveDataRef: A reference to the drive attachment. This is used with // the Drive API. DriveDataRef *DriveDataRef `json:"driveDataRef,omitempty"` // Name: Resource name of the attachment, in the form // "spaces/*/messages/*/attachments/*". Name string `json:"name,omitempty"` // Source: The source of the attachment. // // Possible values: // "SOURCE_UNSPECIFIED" // "DRIVE_FILE" // "UPLOADED_CONTENT" Source string `json:"source,omitempty"` // ThumbnailUri: Output only. The thumbnail URL which should be used to // preview the attachment to a human user. Chat apps should not use this // URL to download attachment content. ThumbnailUri string `json:"thumbnailUri,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "AttachmentDataRef") // to unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AttachmentDataRef") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } func (s *Attachment) MarshalJSON() ([]byte, error) { type NoMethod Attachment raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // AttachmentDataRef: A reference to the data of an attachment. type AttachmentDataRef struct { // ResourceName: The resource name of the attachment data. This is used // with the media API to download the attachment data. ResourceName string `json:"resourceName,omitempty"` // ForceSendFields is a list of field names (e.g. "ResourceName") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ResourceName") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *AttachmentDataRef) MarshalJSON() ([]byte, error) { type NoMethod AttachmentDataRef raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Button: A button. Can be a text button or an image button. type Button struct { // ImageButton: A button with image and onclick action. ImageButton *ImageButton `json:"imageButton,omitempty"` // TextButton: A button with text and onclick action. TextButton *TextButton `json:"textButton,omitempty"` // ForceSendFields is a list of field names (e.g. "ImageButton") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ImageButton") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Button) MarshalJSON() ([]byte, error) { type NoMethod Button raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Card: A card is a UI element that can contain UI widgets such as // texts, images. type Card struct { // CardActions: The actions of this card. CardActions []*CardAction `json:"cardActions,omitempty"` // Header: The header of the card. A header usually contains a title and // an image. Header *CardHeader `json:"header,omitempty"` // Name: Name of the card. Name string `json:"name,omitempty"` // Sections: Sections are separated by a line divider. Sections []*Section `json:"sections,omitempty"` // ForceSendFields is a list of field names (e.g. "CardActions") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "CardActions") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Card) MarshalJSON() ([]byte, error) { type NoMethod Card raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CardAction: 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. type CardAction struct { // ActionLabel: The label used to be displayed in the action menu item. ActionLabel string `json:"actionLabel,omitempty"` // OnClick: The onclick action for this action item. OnClick *OnClick `json:"onClick,omitempty"` // ForceSendFields is a list of field names (e.g. "ActionLabel") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ActionLabel") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *CardAction) MarshalJSON() ([]byte, error) { type NoMethod CardAction raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } type CardHeader struct { // ImageStyle: The image's type (e.g. square border or circular border). // // Possible values: // "IMAGE_STYLE_UNSPECIFIED" // "IMAGE" - Square border. // "AVATAR" - Circular border. ImageStyle string `json:"imageStyle,omitempty"` // ImageUrl: The URL of the image in the card header. ImageUrl string `json:"imageUrl,omitempty"` // Subtitle: The subtitle of the card header. Subtitle string `json:"subtitle,omitempty"` // Title: 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. Title string `json:"title,omitempty"` // ForceSendFields is a list of field names (e.g. "ImageStyle") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ImageStyle") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *CardHeader) MarshalJSON() ([]byte, error) { type NoMethod CardHeader raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // ChatAppLogEntry: JSON payload of error messages. If the Cloud Logging // API is enabled, these error messages are logged to Google Cloud // Logging (https://cloud.google.com/logging/docs). type ChatAppLogEntry struct { // Deployment: The deployment that caused the error. For Chat apps built // in Apps Script, this is the deployment ID defined by Apps Script. Deployment string `json:"deployment,omitempty"` // DeploymentFunction: The unencrypted `callback_method` name that was // running when the error was encountered. DeploymentFunction string `json:"deploymentFunction,omitempty"` // Error: The error code and message. Error *Status `json:"error,omitempty"` // ForceSendFields is a list of field names (e.g. "Deployment") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Deployment") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *ChatAppLogEntry) MarshalJSON() ([]byte, error) { type NoMethod ChatAppLogEntry raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Color: Represents a color in the RGBA color space. This // representation is designed for simplicity of conversion to/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 carry // information about the absolute color space that should be used to // interpret the RGB value (e.g. sRGB, Adobe RGB, DCI-P3, BT.2020, // etc.). 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(''); }; // // ... type Color struct { // Alpha: 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 float64 `json:"alpha,omitempty"` // Blue: The amount of blue in the color as a value in the interval [0, // 1]. Blue float64 `json:"blue,omitempty"` // Green: The amount of green in the color as a value in the interval // [0, 1]. Green float64 `json:"green,omitempty"` // Red: The amount of red in the color as a value in the interval [0, // 1]. Red float64 `json:"red,omitempty"` // ForceSendFields is a list of field names (e.g. "Alpha") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Alpha") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Color) MarshalJSON() ([]byte, error) { type NoMethod Color raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } func (s *Color) UnmarshalJSON(data []byte) error { type NoMethod Color var s1 struct { Alpha gensupport.JSONFloat64 `json:"alpha"` Blue gensupport.JSONFloat64 `json:"blue"` Green gensupport.JSONFloat64 `json:"green"` Red gensupport.JSONFloat64 `json:"red"` *NoMethod } s1.NoMethod = (*NoMethod)(s) if err := json.Unmarshal(data, &s1); err != nil { return err } s.Alpha = float64(s1.Alpha) s.Blue = float64(s1.Blue) s.Green = float64(s1.Green) s.Red = float64(s1.Red) return nil } // CommonEventObject: 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 dialogs // (https://developers.google.com/chat/how-tos/dialogs). type CommonEventObject struct { // FormInputs: A map containing the current values of the widgets in a // card. The map keys are the string IDs assigned to each widget, and // the values represent inputs to the widget. Depending on the input // data type, a different object represents each input: For single-value // widgets, `StringInput`. For multi-value widgets, an array of // `StringInput` objects. For a date-time picker, a `DateTimeInput`. For // a date-only picker, a `DateInput`. For a time-only picker, a // `TimeInput`. Corresponds with the data entered by a user on a card in // a dialog (https://developers.google.com/chat/how-tos/dialogs). FormInputs map[string]Inputs `json:"formInputs,omitempty"` // HostApp: The hostApp enum which indicates the app the add-on is // invoked from. Always `CHAT` for Chat apps. // // Possible values: // "UNSPECIFIED_HOST_APP" - Google can't identify a host app. // "GMAIL" - The add-on launches from Gmail. // "CALENDAR" - The add-on launches from Google Calendar. // "DRIVE" - The add-on launches from Google Drive. // "DEMO" - Not used. // "DOCS" - The add-on launches from Google Docs. // "SHEETS" - The add-on launches from Google Sheets. // "SLIDES" - The add-on launches from Google Slides. // "DRAWINGS" - The add-on launches from Google Drawings. // "CHAT" - A Google Chat app. Not used for Google Workspace Add-ons. HostApp string `json:"hostApp,omitempty"` // InvokedFunction: Name of the invoked function associated with the // widget. Only set for Chat apps. InvokedFunction string `json:"invokedFunction,omitempty"` // Parameters: Custom parameters // (/chat/api/reference/rest/v1/cards#ActionParameter) passed to the // invoked function. Both keys and values must be strings. Parameters map[string]string `json:"parameters,omitempty"` // Platform: The platform enum which indicates the platform where the // event originates (`WEB`, `IOS`, or `ANDROID`). Not supported by Chat // apps. // // Possible values: // "UNKNOWN_PLATFORM" // "WEB" // "IOS" // "ANDROID" Platform string `json:"platform,omitempty"` // TimeZone: The timezone ID and offset from Coordinated Universal Time // (UTC). TimeZone *TimeZone `json:"timeZone,omitempty"` // UserLocale: The full `locale.displayName` in the format of [ISO 639 // language code]-[ISO 3166 country/region code] such as "en-US". Not // supported by Chat apps. UserLocale string `json:"userLocale,omitempty"` // ForceSendFields is a list of field names (e.g. "FormInputs") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "FormInputs") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *CommonEventObject) MarshalJSON() ([]byte, error) { type NoMethod CommonEventObject raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // DateInput: Date input values. Not supported by Chat apps. type DateInput struct { // MsSinceEpoch: Time since epoch time, in milliseconds. MsSinceEpoch int64 `json:"msSinceEpoch,omitempty,string"` // ForceSendFields is a list of field names (e.g. "MsSinceEpoch") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "MsSinceEpoch") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *DateInput) MarshalJSON() ([]byte, error) { type NoMethod DateInput raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // DateTimeInput: Date and time input values. Not supported by Chat // apps. type DateTimeInput struct { // HasDate: Whether the `datetime` input includes a calendar date. HasDate bool `json:"hasDate,omitempty"` // HasTime: Whether the `datetime` input includes a timestamp. HasTime bool `json:"hasTime,omitempty"` // MsSinceEpoch: Time since epoch time, in milliseconds. MsSinceEpoch int64 `json:"msSinceEpoch,omitempty,string"` // ForceSendFields is a list of field names (e.g. "HasDate") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "HasDate") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *DateTimeInput) MarshalJSON() ([]byte, error) { type NoMethod DateTimeInput raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // DeprecatedEvent: Google Chat events. type DeprecatedEvent struct { // Action: The form action data associated with an interactive card that // was clicked. Only populated for CARD_CLICKED events. See the // Interactive Cards guide (/chat/how-tos/cards-onclick) for more // information. Action *FormAction `json:"action,omitempty"` // Common: 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 dialogs // (https://developers.google.com/chat/how-tos/dialogs), like data // entered on a card. Common *CommonEventObject `json:"common,omitempty"` // ConfigCompleteRedirectUrl: The URL the Chat app should redirect the // user to after they have completed an authorization or configuration // flow outside of Google Chat. See the Authorizing access to 3p // services guide (/chat/how-tos/auth-3p) for more information. ConfigCompleteRedirectUrl string `json:"configCompleteRedirectUrl,omitempty"` // DialogEventType: The type of dialog // (https://developers.google.com/chat/how-tos/dialogs) event received. // // Possible values: // "TYPE_UNSPECIFIED" - This could be used when the corresponding // event is not dialog related. For example an @mention. // "REQUEST_DIALOG" - Any user action that opens a // [dialog](https://developers.google.com/chat/how-tos/dialogs). // "SUBMIT_DIALOG" - A card click event from a // [dialog](https://developers.google.com/chat/how-tos/dialogs). // "CANCEL_DIALOG" - The // [dialog](https://developers.google.com/chat/how-tos/dialogs) was // cancelled. DialogEventType string `json:"dialogEventType,omitempty"` // EventTime: The timestamp indicating when the event occurred. EventTime string `json:"eventTime,omitempty"` // IsDialogEvent: True when the event is related to dialogs // (https://developers.google.com/chat/how-tos/dialogs). IsDialogEvent bool `json:"isDialogEvent,omitempty"` // Message: The message that triggered the event, if applicable. Message *Message `json:"message,omitempty"` // Space: The space in which the event occurred. Space *Space `json:"space,omitempty"` // ThreadKey: The Chat app-defined key for the thread related to the // event. See the thread_key field of the `spaces.message.create` // request for more information. ThreadKey string `json:"threadKey,omitempty"` // Token: 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 Chat API configuration page // (https://console.cloud.google.com/apis/api/chat.googleapis.com/hangouts-chat) // in the Google Cloud Console. Modern Chat apps don't use this field. // It is absent from API responses and the Chat API configuration page // (https://console.cloud.google.com/apis/api/chat.googleapis.com/hangouts-chat). Token string `json:"token,omitempty"` // Type: The type of the event. // // Possible values: // "UNSPECIFIED" - Default value for the enum. DO NOT USE. // "MESSAGE" - A message was sent in a space. // "ADDED_TO_SPACE" - The Chat app was added to a space. // "REMOVED_FROM_SPACE" - The Chat app was removed from a space. // "CARD_CLICKED" - The Chat app's interactive card was clicked. Type string `json:"type,omitempty"` // User: The user that triggered the event. User *User `json:"user,omitempty"` // ForceSendFields is a list of field names (e.g. "Action") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Action") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *DeprecatedEvent) MarshalJSON() ([]byte, error) { type NoMethod DeprecatedEvent raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Dialog: Wrapper around the card body of the dialog. type Dialog struct { // Body: Input only. Body of the dialog, which is rendered in a modal. // Google Chat apps do not support the following card entities: // `DateTimePicker`, `OnChangeAction`. Body *GoogleAppsCardV1Card `json:"body,omitempty"` // ForceSendFields is a list of field names (e.g. "Body") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Body") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Dialog) MarshalJSON() ([]byte, error) { type NoMethod Dialog raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // DialogAction: Contains a dialog // (https://developers.google.com/chat/how-tos/dialogs) and request // status code. type DialogAction struct { // ActionStatus: Input only. Status for a request to either invoke or // submit a dialog (https://developers.google.com/chat/how-tos/dialogs). // Displays a status and message to users, if necessary. For example, in // case of an error or success. ActionStatus *ActionStatus `json:"actionStatus,omitempty"` // Dialog: Input only. Dialog // (https://developers.google.com/chat/how-tos/dialogs) for the request. Dialog *Dialog `json:"dialog,omitempty"` // ForceSendFields is a list of field names (e.g. "ActionStatus") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ActionStatus") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *DialogAction) MarshalJSON() ([]byte, error) { type NoMethod DialogAction raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // DriveDataRef: A reference to the data of a drive attachment. type DriveDataRef struct { // DriveFileId: The id for the drive file, for use with the Drive API. DriveFileId string `json:"driveFileId,omitempty"` // ForceSendFields is a list of field names (e.g. "DriveFileId") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "DriveFileId") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *DriveDataRef) MarshalJSON() ([]byte, error) { type NoMethod DriveDataRef raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Empty: A generic empty message that you can re-use to avoid defining // duplicated empty messages in your APIs. A typical example is to use // it as the request or the response type of an API method. For // instance: service Foo { rpc Bar(google.protobuf.Empty) returns // (google.protobuf.Empty); } type Empty struct { // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` } // FormAction: A form action describes the behavior when the form is // submitted. For example, an Apps Script can be invoked to handle the // form. type FormAction struct { // ActionMethodName: 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. The same method // name can be used for several elements that trigger a common behavior // if desired. ActionMethodName string `json:"actionMethodName,omitempty"` // Parameters: List of action parameters. Parameters []*ActionParameter `json:"parameters,omitempty"` // ForceSendFields is a list of field names (e.g. "ActionMethodName") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ActionMethodName") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } func (s *FormAction) MarshalJSON() ([]byte, error) { type NoMethod FormAction raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1Action: An action that describes the behavior when // the form is submitted. For example, an Apps Script can be invoked to // handle the form. type GoogleAppsCardV1Action struct { // Function: Apps Script function to invoke when the containing element // is clicked/activated. Function string `json:"function,omitempty"` // LoadIndicator: Specifies the loading indicator that the action // displays while making the call to the action. // // Possible values: // "SPINNER" - Displays a spinner to indicate that content is loading. // "NONE" - Nothing is displayed. LoadIndicator string `json:"loadIndicator,omitempty"` // Parameters: List of action parameters. Parameters []*GoogleAppsCardV1ActionParameter `json:"parameters,omitempty"` // PersistValues: Indicates whether form values persist after the // action. The default value is `false`. If `true`, form values remain // after the action is triggered. When using LoadIndicator.NONE // (workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) // for actions, `persist_values` = `true`is recommended, as it ensures // that any changes made by the user after form or on change actions are // sent to the server are not overwritten by the response. If `false`, // the form values are cleared when the action is triggered. When // `persist_values` is set to `false`, it is strongly recommended that // the card use LoadIndicator.SPINNER // (workspace/add-ons/reference/rpc/google.apps.card.v1#loadindicator) // for all actions, as this locks the UI to ensure no changes are made // by the user while the action is being processed. PersistValues bool `json:"persistValues,omitempty"` // ForceSendFields is a list of field names (e.g. "Function") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Function") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1Action) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1Action raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1ActionParameter: 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. type GoogleAppsCardV1ActionParameter struct { // Key: The name of the parameter for the action script. Key string `json:"key,omitempty"` // Value: The value of the parameter. Value string `json:"value,omitempty"` // ForceSendFields is a list of field names (e.g. "Key") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Key") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1ActionParameter) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1ActionParameter raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1BorderStyle: Represents the complete border style // applied to widgets. type GoogleAppsCardV1BorderStyle struct { // CornerRadius: The corner radius for the border. CornerRadius int64 `json:"cornerRadius,omitempty"` // StrokeColor: The colors to use when the type is `BORDER_TYPE_STROKE`. StrokeColor *Color `json:"strokeColor,omitempty"` // Type: The border type. // // Possible values: // "BORDER_TYPE_UNSPECIFIED" - No value specified. // "NO_BORDER" - No border. // "STROKE" - Outline. Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "CornerRadius") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "CornerRadius") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1BorderStyle) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1BorderStyle raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1Button: A button. Can be a text button or an image // button. type GoogleAppsCardV1Button struct { // AltText: The alternative text used for accessibility. Has no effect // when an icon is set; use `icon.alt_text` instead. AltText string `json:"altText,omitempty"` // Color: If set, the button is filled with a solid background. Color *Color `json:"color,omitempty"` // Disabled: If `true`, the button is displayed in a disabled state and // doesn't respond to user actions. Disabled bool `json:"disabled,omitempty"` // Icon: The icon image. Icon *GoogleAppsCardV1Icon `json:"icon,omitempty"` // OnClick: The action to perform when the button is clicked. OnClick *GoogleAppsCardV1OnClick `json:"onClick,omitempty"` // Text: The text of the button. Text string `json:"text,omitempty"` // ForceSendFields is a list of field names (e.g. "AltText") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AltText") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1Button) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1Button raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1ButtonList: A list of buttons layed out horizontally. type GoogleAppsCardV1ButtonList struct { // Buttons: An array of buttons. Buttons []*GoogleAppsCardV1Button `json:"buttons,omitempty"` // ForceSendFields is a list of field names (e.g. "Buttons") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Buttons") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1ButtonList) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1ButtonList raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1Card: A card is a UI element that can contain UI // widgets such as text and images. For more information, see Cards . // For example, the following JSON creates a card that has a header with // the name, position, icons, and link for a contact, followed by a // section with contact information like email and phone number. ``` { // "header": { "title": "Sasha", "subtitle": "Software Engineer", // "imageStyle": "ImageStyle.AVATAR", "imageUrl": // "https://example.com/sasha.png", "imageAltText": "Avatar for Sasha" // }, "sections" : [ { "header": "Contact Info", "widgets": [ { // "decorated_text": { "icon": { "knownIcon": "EMAIL" }, "content": // "sasha@example.com" } }, { "decoratedText": { "icon": { "knownIcon": // "PERSON" }, "content": "Online" } }, { "decoratedText": { "icon": { // "knownIcon": "PHONE" }, "content": "+1 (555) 555-1234" } }, { // "buttons": [ { "textButton": { "text": "Share", }, "onClick": { // "openLink": { "url": "https://example.com/share" } } }, { // "textButton": { "text": "Edit", }, "onClick": { "action": { // "function": "goToView", "parameters": [ { "key": "viewType", "value": // "EDIT" } ], "loadIndicator": "LoadIndicator.SPINNER" } } } ] } ], // "collapsible": true, "uncollapsibleWidgetsCount": 3 } ], // "cardActions": [ { "actionLabel": "Send Feedback", "onClick": { // "openLink": { "url": "https://example.com/feedback" } } } ], "name": // "contact-card-K3wB6arF2H9L" } ``` type GoogleAppsCardV1Card struct { // CardActions: The card's actions. Actions are added to the card's // generated toolbar menu. 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 []*GoogleAppsCardV1CardAction `json:"cardActions,omitempty"` // DisplayStyle: The display style for `peekCardHeader`. // // Possible values: // "DISPLAY_STYLE_UNSPECIFIED" - Default value. Do not use. // "PEEK" - 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. // "REPLACE" - The card is shown by replacing the view of the top card // in the card stack. DisplayStyle string `json:"displayStyle,omitempty"` // FixedFooter: The fixed footer shown at the bottom of this card. FixedFooter *GoogleAppsCardV1CardFixedFooter `json:"fixedFooter,omitempty"` // Header: The header of the card. A header usually contains a title and // an image. Header *GoogleAppsCardV1CardHeader `json:"header,omitempty"` // Name: Name of the card. Used as a card identifier in card navigation. Name string `json:"name,omitempty"` // PeekCardHeader: 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. PeekCardHeader *GoogleAppsCardV1CardHeader `json:"peekCardHeader,omitempty"` // Sections: Sections are separated by a line divider. Sections []*GoogleAppsCardV1Section `json:"sections,omitempty"` // ForceSendFields is a list of field names (e.g. "CardActions") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "CardActions") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1Card) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1Card raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1CardAction: 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. type GoogleAppsCardV1CardAction struct { // ActionLabel: The label that displays as the action menu item. ActionLabel string `json:"actionLabel,omitempty"` // OnClick: The `onClick` action for this action item. OnClick *GoogleAppsCardV1OnClick `json:"onClick,omitempty"` // ForceSendFields is a list of field names (e.g. "ActionLabel") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ActionLabel") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1CardAction) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1CardAction raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1CardFixedFooter: A persistent (sticky) footer that is // added to the bottom of the card. type GoogleAppsCardV1CardFixedFooter struct { // PrimaryButton: The primary button of the fixed footer. The button // must be a text button with text and color set. PrimaryButton *GoogleAppsCardV1Button `json:"primaryButton,omitempty"` // SecondaryButton: The secondary button of the fixed footer. The button // must be a text button with text and color set. `primaryButton` must // be set if `secondaryButton` is set. SecondaryButton *GoogleAppsCardV1Button `json:"secondaryButton,omitempty"` // ForceSendFields is a list of field names (e.g. "PrimaryButton") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "PrimaryButton") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1CardFixedFooter) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1CardFixedFooter raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1CardHeader: Represents a card header. type GoogleAppsCardV1CardHeader struct { // ImageAltText: The alternative text of this image which is used for // accessibility. ImageAltText string `json:"imageAltText,omitempty"` // ImageType: The image's type. // // Possible values: // "SQUARE" - Applies no cropping to the image. // "CIRCLE" - Applies a circular mask to the image. ImageType string `json:"imageType,omitempty"` // ImageUrl: The URL of the image in the card header. ImageUrl string `json:"imageUrl,omitempty"` // Subtitle: The subtitle of the card header. Subtitle string `json:"subtitle,omitempty"` // Title: 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 string `json:"title,omitempty"` // ForceSendFields is a list of field names (e.g. "ImageAltText") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ImageAltText") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1CardHeader) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1CardHeader raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1DateTimePicker: The widget that lets users to specify // a date and time. Not supported by Google Chat apps. type GoogleAppsCardV1DateTimePicker struct { // Label: The label for the field that displays to the user. Label string `json:"label,omitempty"` // Name: The name of the text input that's used in `formInput`, and // uniquely identifies this input. Name string `json:"name,omitempty"` // OnChangeAction: Triggered when the user clicks Save or Clear from the // date/time picker dialog. This is only triggered if the value changed // as a result of the Save/Clear operation. OnChangeAction *GoogleAppsCardV1Action `json:"onChangeAction,omitempty"` // TimezoneOffsetDate: 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 not set, it uses the user's time zone setting // on the client side. TimezoneOffsetDate int64 `json:"timezoneOffsetDate,omitempty"` // Type: The type of the date/time picker. // // Possible values: // "DATE_AND_TIME" - The user can select a date and time. // "DATE_ONLY" - The user can only select a date. // "TIME_ONLY" - The user can only select a time. Type string `json:"type,omitempty"` // ValueMsEpoch: The value to display as the default value before user // input or previous user input. It is represented in milliseconds // (Epoch time). For `DATE_AND_TIME` type, the full epoch value is used. // For `DATE_ONLY` type, only date of the epoch time is used. For // `TIME_ONLY` type, only time of the epoch time is used. For example, // you can set epoch time to `3 * 60 * 60 * 1000` to represent 3am. ValueMsEpoch int64 `json:"valueMsEpoch,omitempty,string"` // ForceSendFields is a list of field names (e.g. "Label") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Label") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1DateTimePicker) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1DateTimePicker raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1DecoratedText: 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. type GoogleAppsCardV1DecoratedText struct { // BottomLabel: The formatted text label that shows below the main text. BottomLabel string `json:"bottomLabel,omitempty"` // Button: A button that can be clicked to trigger an action. Button *GoogleAppsCardV1Button `json:"button,omitempty"` // EndIcon: An icon displayed after the text. EndIcon *GoogleAppsCardV1Icon `json:"endIcon,omitempty"` // Icon: Deprecated in favor of start_icon. Icon *GoogleAppsCardV1Icon `json:"icon,omitempty"` // OnClick: Only the top and bottom label and content region are // clickable. OnClick *GoogleAppsCardV1OnClick `json:"onClick,omitempty"` // StartIcon: The icon displayed in front of the text. StartIcon *GoogleAppsCardV1Icon `json:"startIcon,omitempty"` // SwitchControl: A switch widget can be clicked to change its state or // trigger an action. SwitchControl *GoogleAppsCardV1SwitchControl `json:"switchControl,omitempty"` // Text: Required. The main widget formatted text. See Text formatting // for details. Text string `json:"text,omitempty"` // TopLabel: The formatted text label that shows above the main text. TopLabel string `json:"topLabel,omitempty"` // WrapText: The wrap text setting. If `true`, the text is wrapped and // displayed in multiline. Otherwise, the text is truncated. WrapText bool `json:"wrapText,omitempty"` // ForceSendFields is a list of field names (e.g. "BottomLabel") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "BottomLabel") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1DecoratedText) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1DecoratedText raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1Divider: A divider that appears in between widgets. type GoogleAppsCardV1Divider struct { } // GoogleAppsCardV1Grid: Represents a Grid widget that displays items in // a configurable grid layout. type GoogleAppsCardV1Grid struct { // BorderStyle: The border style to apply to each grid item. BorderStyle *GoogleAppsCardV1BorderStyle `json:"borderStyle,omitempty"` // ColumnCount: 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 int64 `json:"columnCount,omitempty"` // Items: The items to display in the grid. Items []*GoogleAppsCardV1GridItem `json:"items,omitempty"` // OnClick: 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 *GoogleAppsCardV1OnClick `json:"onClick,omitempty"` // Title: The text that displays in the grid header. Title string `json:"title,omitempty"` // ForceSendFields is a list of field names (e.g. "BorderStyle") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "BorderStyle") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1Grid) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1Grid raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1GridItem: Represents a single item in the grid // layout. type GoogleAppsCardV1GridItem struct { // Id: A user-specified identifier for this grid item. This identifier // is returned in the parent Grid's onClick callback parameters. Id string `json:"id,omitempty"` // Image: The image that displays in the grid item. Image *GoogleAppsCardV1ImageComponent `json:"image,omitempty"` // Layout: The layout to use for the grid item. // // Possible values: // "GRID_ITEM_LAYOUT_UNSPECIFIED" - No layout specified. // "TEXT_BELOW" - The title and subtitle are shown below the grid // item's image. // "TEXT_ABOVE" - The title and subtitle are shown above the grid // item's image. Layout string `json:"layout,omitempty"` // Subtitle: The grid item's subtitle. Subtitle string `json:"subtitle,omitempty"` // TextAlignment: The horizontal alignment of the grid item's text. // // Possible values: // "HORIZONTAL_ALIGNMENT_UNSPECIFIED" - Unspecified alignment. // "START" - Alignment to the start position. // "CENTER" - Alignment to the center position. // "END" - Alignment to the end position. TextAlignment string `json:"textAlignment,omitempty"` // Title: The grid item's title. Title string `json:"title,omitempty"` // ForceSendFields is a list of field names (e.g. "Id") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Id") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1GridItem) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1GridItem raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } type GoogleAppsCardV1Icon struct { // AltText: The description of the icon, used for accessibility. The // default value is provided if you don't specify one. AltText string `json:"altText,omitempty"` // IconUrl: The icon specified by a URL. IconUrl string `json:"iconUrl,omitempty"` // ImageType: The crop style applied to the image. In some cases, // applying a `CIRCLE` crop causes the image to be drawn larger than a // standard icon. // // Possible values: // "SQUARE" - Applies no cropping to the image. // "CIRCLE" - Applies a circular mask to the image. ImageType string `json:"imageType,omitempty"` // KnownIcon: The icon specified by the string name of a list of known // icons. KnownIcon string `json:"knownIcon,omitempty"` // ForceSendFields is a list of field names (e.g. "AltText") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AltText") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1Icon) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1Icon raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1Image: An image that is specified by a URL and can // have an `onClick` action. type GoogleAppsCardV1Image struct { // AltText: The alternative text of this image, used for accessibility. AltText string `json:"altText,omitempty"` // ImageUrl: An image URL. ImageUrl string `json:"imageUrl,omitempty"` // OnClick: The action triggered by an `onClick` event. OnClick *GoogleAppsCardV1OnClick `json:"onClick,omitempty"` // ForceSendFields is a list of field names (e.g. "AltText") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AltText") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1Image) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1Image raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1ImageComponent: Represents an image. type GoogleAppsCardV1ImageComponent struct { // AltText: The accessibility label for the image. AltText string `json:"altText,omitempty"` // BorderStyle: The border style to apply to the image. BorderStyle *GoogleAppsCardV1BorderStyle `json:"borderStyle,omitempty"` // CropStyle: The crop style to apply to the image. CropStyle *GoogleAppsCardV1ImageCropStyle `json:"cropStyle,omitempty"` // ImageUri: The image URL. ImageUri string `json:"imageUri,omitempty"` // ForceSendFields is a list of field names (e.g. "AltText") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AltText") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1ImageComponent) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1ImageComponent raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1ImageCropStyle: Represents the crop style applied to // an image. type GoogleAppsCardV1ImageCropStyle struct { // AspectRatio: The aspect ratio to use if the crop type is // `RECTANGLE_CUSTOM`. AspectRatio float64 `json:"aspectRatio,omitempty"` // Type: The crop type. // // Possible values: // "IMAGE_CROP_TYPE_UNSPECIFIED" - No value specified. // "SQUARE" - Applies a square crop. // "CIRCLE" - Applies a circular crop. // "RECTANGLE_CUSTOM" - Applies a rectangular crop with a custom // aspect ratio. // "RECTANGLE_4_3" - Applies a rectangular crop with a 4:3 aspect // ratio. Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "AspectRatio") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AspectRatio") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1ImageCropStyle) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1ImageCropStyle raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } func (s *GoogleAppsCardV1ImageCropStyle) UnmarshalJSON(data []byte) error { type NoMethod GoogleAppsCardV1ImageCropStyle var s1 struct { AspectRatio gensupport.JSONFloat64 `json:"aspectRatio"` *NoMethod } s1.NoMethod = (*NoMethod)(s) if err := json.Unmarshal(data, &s1); err != nil { return err } s.AspectRatio = float64(s1.AspectRatio) return nil } // GoogleAppsCardV1OnClick: Represents the response to an `onClick` // event. type GoogleAppsCardV1OnClick struct { // Action: If specified, an action is triggered by this `onClick`. Action *GoogleAppsCardV1Action `json:"action,omitempty"` // Card: A new card is pushed to the card stack after clicking if // specified. Card *GoogleAppsCardV1Card `json:"card,omitempty"` // OpenDynamicLinkAction: 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. OpenDynamicLinkAction *GoogleAppsCardV1Action `json:"openDynamicLinkAction,omitempty"` // OpenLink: If specified, this `onClick` triggers an open link action. OpenLink *GoogleAppsCardV1OpenLink `json:"openLink,omitempty"` // ForceSendFields is a list of field names (e.g. "Action") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Action") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1OnClick) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1OnClick raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1OpenLink: Represents an `onClick` event that opens a // hyperlink. type GoogleAppsCardV1OpenLink struct { // OnClose: Whether the client forgets about a link after opening it, or // observes it until the window closes. Not supported by Chat apps. // // Possible values: // "NOTHING" - Doesn’t reload the card after the child window // closes. // "RELOAD" - Reloads the card after the child window closes. If used // in conjunction with // [OpenAs.OVERLAY](/workspace/add-ons/reference/rpc/google.apps.card.v1# // openas), the child window acts as a modal dialog and the main card is // blocked until the child window closes. OnClose string `json:"onClose,omitempty"` // OpenAs: How to open a link. Not supported by Chat apps. // // Possible values: // "FULL_SIZE" - The link opens as a full size window (if that's the // frame used by the client. // "OVERLAY" - The link opens as an overlay, such as a pop-up. OpenAs string `json:"openAs,omitempty"` // Url: The URL to open. Url string `json:"url,omitempty"` // ForceSendFields is a list of field names (e.g. "OnClose") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "OnClose") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1OpenLink) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1OpenLink raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1Section: 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, for example, float. type GoogleAppsCardV1Section struct { // Collapsible: Indicates whether this section is collapsible. If a // section is collapsible, the description must be given. Collapsible bool `json:"collapsible,omitempty"` // Header: The header of the section. Formatted text is supported. Header string `json:"header,omitempty"` // UncollapsibleWidgetsCount: The number of uncollapsible widgets. 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 as default. The // `uncollapsibleWidgetsCount` is taken into account only when // `collapsible` is `true`. UncollapsibleWidgetsCount int64 `json:"uncollapsibleWidgetsCount,omitempty"` // Widgets: A section must contain at least 1 widget. Widgets []*GoogleAppsCardV1Widget `json:"widgets,omitempty"` // ForceSendFields is a list of field names (e.g. "Collapsible") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Collapsible") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1Section) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1Section raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1SelectionInput: A widget that creates a UI item with // options for users to select. For example, a dropdown menu. type GoogleAppsCardV1SelectionInput struct { // Items: An array of the selected items. Items []*GoogleAppsCardV1SelectionItem `json:"items,omitempty"` // Label: The label displayed ahead of the switch control. Label string `json:"label,omitempty"` // Name: The name of the text input which is used in `formInput`. Name string `json:"name,omitempty"` // OnChangeAction: If specified, the form is submitted when the // selection changes. If not specified, you must specify a separate // button. OnChangeAction *GoogleAppsCardV1Action `json:"onChangeAction,omitempty"` // Type: The type of the selection. // // Possible values: // "CHECK_BOX" - A checkbox. // "RADIO_BUTTON" - A radio button. // "SWITCH" - A switch. // "DROPDOWN" - A dropdown menu. Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "Items") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Items") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1SelectionInput) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1SelectionInput raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1SelectionItem: A selectable item in the switch // control. type GoogleAppsCardV1SelectionItem struct { // Selected: If more than one item is selected for `RADIO_BUTTON` and // `DROPDOWN`, the first selected item is treated as selected and the // ones after are ignored. Selected bool `json:"selected,omitempty"` // Text: The text to be displayed. Text string `json:"text,omitempty"` // Value: The value associated with this item. The client should use // this as a form input value. Value string `json:"value,omitempty"` // ForceSendFields is a list of field names (e.g. "Selected") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Selected") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1SelectionItem) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1SelectionItem raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1SuggestionItem: A suggestion item. type GoogleAppsCardV1SuggestionItem struct { // Text: The suggested autocomplete result. Text string `json:"text,omitempty"` // ForceSendFields is a list of field names (e.g. "Text") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Text") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1SuggestionItem) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1SuggestionItem raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1Suggestions: A container wrapping elements necessary // for showing suggestion items used in text input autocomplete. type GoogleAppsCardV1Suggestions struct { // Items: A list of suggestions used for autocomplete recommendations. Items []*GoogleAppsCardV1SuggestionItem `json:"items,omitempty"` // ForceSendFields is a list of field names (e.g. "Items") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Items") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1Suggestions) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1Suggestions raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1SwitchControl: Either a toggle-style switch or a // checkbox. type GoogleAppsCardV1SwitchControl struct { // ControlType: The control type, either switch or checkbox. // // Possible values: // "SWITCH" - A toggle-style switch. // "CHECKBOX" - Deprecated in favor of `CHECK_BOX`. // "CHECK_BOX" - A checkbox. ControlType string `json:"controlType,omitempty"` // Name: The name of the switch widget that's used in `formInput`. Name string `json:"name,omitempty"` // OnChangeAction: The action when the switch state is changed. OnChangeAction *GoogleAppsCardV1Action `json:"onChangeAction,omitempty"` // Selected: If the switch is selected. Selected bool `json:"selected,omitempty"` // Value: The value is what is passed back in the callback. Value string `json:"value,omitempty"` // ForceSendFields is a list of field names (e.g. "ControlType") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ControlType") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1SwitchControl) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1SwitchControl raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1TextInput: A text input is a UI item where users can // input text. A text input can also have an onChange action and // suggestions. type GoogleAppsCardV1TextInput struct { // AutoCompleteAction: The refresh function that returns suggestions // based on the user's input text. If the callback is not specified, // autocomplete is done in client side based on the initial suggestion // items. AutoCompleteAction *GoogleAppsCardV1Action `json:"autoCompleteAction,omitempty"` // HintText: The hint text. HintText string `json:"hintText,omitempty"` // InitialSuggestions: The initial suggestions made before any user // input. InitialSuggestions *GoogleAppsCardV1Suggestions `json:"initialSuggestions,omitempty"` // Label: At least one of label and hintText must be specified. Label string `json:"label,omitempty"` // Name: The name of the text input which is used in `formInput`. Name string `json:"name,omitempty"` // OnChangeAction: The onChange action, for example, invoke a function. OnChangeAction *GoogleAppsCardV1Action `json:"onChangeAction,omitempty"` // Type: The style of the text, for example, a single line or multiple // lines. // // Possible values: // "SINGLE_LINE" - The text is put into a single line. // "MULTIPLE_LINE" - The text is put into multiple lines. Type string `json:"type,omitempty"` // Value: The default value when there is no input from the user. Value string `json:"value,omitempty"` // ForceSendFields is a list of field names (e.g. "AutoCompleteAction") // to unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AutoCompleteAction") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1TextInput) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1TextInput raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1TextParagraph: A paragraph of text that supports // formatting. See Text formatting // (workspace/add-ons/concepts/widgets#text_formatting") for details. type GoogleAppsCardV1TextParagraph struct { // Text: The text that's shown in the widget. Text string `json:"text,omitempty"` // ForceSendFields is a list of field names (e.g. "Text") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Text") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1TextParagraph) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1TextParagraph raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // GoogleAppsCardV1Widget: A widget is a UI element that presents texts, // images, etc. type GoogleAppsCardV1Widget struct { // ButtonList: A list of buttons. For example, the following JSON // creates two buttons. The first is a filled text button and the second // is an image button that opens a link: ``` "buttonList": { "buttons": // [ "button": { "text": "Edit", "Color": { "Red": 255 "Green": 255 // "Blue": 255 } "disabled": true }, "button": { "icon": { "knownIcon": // "INVITE" "altText": "check calendar" }, "onClick": { "openLink": { // "url": "https://example.com/calendar" } } }, ] } ``` ButtonList *GoogleAppsCardV1ButtonList `json:"buttonList,omitempty"` // DateTimePicker: Displays a selection/input widget for date/time. For // example, the following JSON creates a date/time picker for an // appointment time: ``` "date_time_picker": { "name": // "appointment_time", "label": "Book your appointment at:", "type": // "DateTimePickerType.DATE_AND_TIME", "valueMsEpoch": "796435200000" } // ``` DateTimePicker *GoogleAppsCardV1DateTimePicker `json:"dateTimePicker,omitempty"` // DecoratedText: Displays a decorated text item in this widget. For // example, the following JSON creates a decorated text widget showing // email address: ``` "decoratedText": { "icon": { "knownIcon": "EMAIL" // }, "topLabel": "Email Address", "content": "sasha@example.com", // "bottomLabel": "This is a new Email address!", "switchWidget": { // "name": "has_send_welcome_email_to_sasha", "selected": false, // "controlType": "ControlType.CHECKBOX" } } ``` DecoratedText *GoogleAppsCardV1DecoratedText `json:"decoratedText,omitempty"` // Divider: Displays a divider. For example, the following JSON creates // a divider: ``` "divider": { } ``` Divider *GoogleAppsCardV1Divider `json:"divider,omitempty"` // Grid: Displays a grid with a collection of items. For example, the // following JSON creates a 2 column grid with a single item: ``` // "grid": { "title": "A fine collection of items", "numColumns": 2, // "borderStyle": { "type": "STROKE", "cornerRadius": 4.0 }, "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 *GoogleAppsCardV1Grid `json:"grid,omitempty"` // HorizontalAlignment: The horizontal alignment of this widget. // // Possible values: // "HORIZONTAL_ALIGNMENT_UNSPECIFIED" - Unspecified alignment. // "START" - Alignment to the start position. // "CENTER" - Alignment to the center position. // "END" - Alignment to the end position. HorizontalAlignment string `json:"horizontalAlignment,omitempty"` // Image: Displays an image in this widget. For example, the following // JSON creates an image with alternative text: ``` "image": { // "imageUrl": "https://example.com/sasha.png" "altText": "Avatar for // Sasha" } ``` Image *GoogleAppsCardV1Image `json:"image,omitempty"` // SelectionInput: Displays a switch control in this widget. For // example, the following JSON creates a dropdown selection for size: // ``` "switchControl": { "name": "size", "label": "Size" "type": // "SelectionType.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 *GoogleAppsCardV1SelectionInput `json:"selectionInput,omitempty"` // TextInput: Displays a text input in this widget. For example, the // following JSON creates a text input for mail address: ``` // "textInput": { "name": "mailing_address", "label": "Mailing Address" // } ``` As another example, the following JSON creates a text input for // programming language with static suggestions: ``` "textInput": { // "name": "preferred_programing_language", "label": "Preferred // Language", "initialSuggestions": { "items": [ { "text": "C++" }, { // "text": "Java" }, { "text": "JavaScript" }, { "text": "Python" } ] } // } ``` TextInput *GoogleAppsCardV1TextInput `json:"textInput,omitempty"` // TextParagraph: Displays a text paragraph in this widget. For example, // the following JSON creates a bolded text: ``` "textParagraph": { // "text": " *bold text*" } ``` TextParagraph *GoogleAppsCardV1TextParagraph `json:"textParagraph,omitempty"` // ForceSendFields is a list of field names (e.g. "ButtonList") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ButtonList") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *GoogleAppsCardV1Widget) MarshalJSON() ([]byte, error) { type NoMethod GoogleAppsCardV1Widget raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Image: An image that is specified by a URL and can have an onclick // action. type Image struct { // AspectRatio: The aspect ratio of this image (width/height). This // field allows clients to reserve the right height for the image while // waiting for it to load. It's not meant to override the native aspect // ratio of the image. If unset, the server fills it by prefetching the // image. AspectRatio float64 `json:"aspectRatio,omitempty"` // ImageUrl: The URL of the image. ImageUrl string `json:"imageUrl,omitempty"` // OnClick: The onclick action. OnClick *OnClick `json:"onClick,omitempty"` // ForceSendFields is a list of field names (e.g. "AspectRatio") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AspectRatio") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Image) MarshalJSON() ([]byte, error) { type NoMethod Image raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } func (s *Image) UnmarshalJSON(data []byte) error { type NoMethod Image var s1 struct { AspectRatio gensupport.JSONFloat64 `json:"aspectRatio"` *NoMethod } s1.NoMethod = (*NoMethod)(s) if err := json.Unmarshal(data, &s1); err != nil { return err } s.AspectRatio = float64(s1.AspectRatio) return nil } // ImageButton: An image button with an onclick action. type ImageButton struct { // Icon: The icon specified by an enum that indices to an icon provided // by Chat API. // // Possible values: // "ICON_UNSPECIFIED" // "AIRPLANE" // "BOOKMARK" // "BUS" // "CAR" // "CLOCK" // "CONFIRMATION_NUMBER_ICON" // "DOLLAR" // "DESCRIPTION" // "EMAIL" // "EVENT_PERFORMER" // "EVENT_SEAT" // "FLIGHT_ARRIVAL" // "FLIGHT_DEPARTURE" // "HOTEL" // "HOTEL_ROOM_TYPE" // "INVITE" // "MAP_PIN" // "MEMBERSHIP" // "MULTIPLE_PEOPLE" // "OFFER" // "PERSON" // "PHONE" // "RESTAURANT_ICON" // "SHOPPING_CART" // "STAR" // "STORE" // "TICKET" // "TRAIN" // "VIDEO_CAMERA" // "VIDEO_PLAY" Icon string `json:"icon,omitempty"` // IconUrl: The icon specified by a URL. IconUrl string `json:"iconUrl,omitempty"` // Name: The name of this image_button which will be used for // accessibility. Default value will be provided if developers don't // specify. Name string `json:"name,omitempty"` // OnClick: The onclick action. OnClick *OnClick `json:"onClick,omitempty"` // ForceSendFields is a list of field names (e.g. "Icon") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Icon") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *ImageButton) MarshalJSON() ([]byte, error) { type NoMethod ImageButton raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Inputs: Types of data inputs for widgets. Users enter data with these // inputs. type Inputs struct { // DateInput: Date input values. Not supported by Chat apps. DateInput *DateInput `json:"dateInput,omitempty"` // DateTimeInput: Date and time input values. Not supported by Chat // apps. DateTimeInput *DateTimeInput `json:"dateTimeInput,omitempty"` // StringInputs: 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. StringInputs *StringInputs `json:"stringInputs,omitempty"` // TimeInput: Time input values. Not supported by Chat apps. TimeInput *TimeInput `json:"timeInput,omitempty"` // ForceSendFields is a list of field names (e.g. "DateInput") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "DateInput") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Inputs) MarshalJSON() ([]byte, error) { type NoMethod Inputs raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // KeyValue: A UI element contains a key (label) and a value (content). // And this element may also contain some actions such as onclick // button. type KeyValue struct { // BottomLabel: The text of the bottom label. Formatted text supported. BottomLabel string `json:"bottomLabel,omitempty"` // Button: A button that can be clicked to trigger an action. Button *Button `json:"button,omitempty"` // Content: The text of the content. Formatted text supported and always // required. Content string `json:"content,omitempty"` // ContentMultiline: If the content should be multiline. ContentMultiline bool `json:"contentMultiline,omitempty"` // Icon: An enum value that will be replaced by the Chat API with the // corresponding icon image. // // Possible values: // "ICON_UNSPECIFIED" // "AIRPLANE" // "BOOKMARK" // "BUS" // "CAR" // "CLOCK" // "CONFIRMATION_NUMBER_ICON" // "DOLLAR" // "DESCRIPTION" // "EMAIL" // "EVENT_PERFORMER" // "EVENT_SEAT" // "FLIGHT_ARRIVAL" // "FLIGHT_DEPARTURE" // "HOTEL" // "HOTEL_ROOM_TYPE" // "INVITE" // "MAP_PIN" // "MEMBERSHIP" // "MULTIPLE_PEOPLE" // "OFFER" // "PERSON" // "PHONE" // "RESTAURANT_ICON" // "SHOPPING_CART" // "STAR" // "STORE" // "TICKET" // "TRAIN" // "VIDEO_CAMERA" // "VIDEO_PLAY" Icon string `json:"icon,omitempty"` // IconUrl: The icon specified by a URL. IconUrl string `json:"iconUrl,omitempty"` // OnClick: The onclick action. Only the top label, bottom label and // content region are clickable. OnClick *OnClick `json:"onClick,omitempty"` // TopLabel: The text of the top label. Formatted text supported. TopLabel string `json:"topLabel,omitempty"` // ForceSendFields is a list of field names (e.g. "BottomLabel") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "BottomLabel") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *KeyValue) MarshalJSON() ([]byte, error) { type NoMethod KeyValue raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } type ListMembershipsResponse struct { // Memberships: List of memberships in the requested (or first) page. Memberships []*Membership `json:"memberships,omitempty"` // NextPageToken: Continuation token to retrieve the next page of // results. It will be empty for the last page of results. NextPageToken string `json:"nextPageToken,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Memberships") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Memberships") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *ListMembershipsResponse) MarshalJSON() ([]byte, error) { type NoMethod ListMembershipsResponse raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } type ListSpacesResponse struct { // NextPageToken: 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. NextPageToken string `json:"nextPageToken,omitempty"` // Spaces: List of spaces in the requested (or first) page. Spaces []*Space `json:"spaces,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "NextPageToken") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "NextPageToken") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *ListSpacesResponse) MarshalJSON() ([]byte, error) { type NoMethod ListSpacesResponse raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // MatchedUrl: A matched url in a Chat message. Chat apps can preview // matched URLs. For more information, refer to Preview links // (https://developers.google.com/chat/how-tos/preview-links). type MatchedUrl struct { // Url: Output only. The url that was matched. Url string `json:"url,omitempty"` // ForceSendFields is a list of field names (e.g. "Url") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Url") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *MatchedUrl) MarshalJSON() ([]byte, error) { type NoMethod MatchedUrl raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Media: Media resource. type Media struct { // ResourceName: Name of the media resource. ResourceName string `json:"resourceName,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "ResourceName") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ResourceName") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Media) MarshalJSON() ([]byte, error) { type NoMethod Media raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Membership: 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. type Membership struct { // CreateTime: Output only. The creation time of the membership, such as // when a member joined or was invited to join a space. CreateTime string `json:"createTime,omitempty"` // Member: A Google Chat user or app. Format: `users/{user}` or // `users/app` When `users/{user}`, represents a person // (https://developers.google.com/people/api/rest/v1/people) in the // People API or a user // (https://developers.google.com/admin-sdk/directory/reference/rest/v1/users) // in the Admin SDK Directory API. When `users/app`, represents a Chat // app creating membership for itself. Member *User `json:"member,omitempty"` // Name: Resource name of the membership. Format: // spaces/{space}/members/{member} Name string `json:"name,omitempty"` // State: Output only. State of the membership. // // Possible values: // "MEMBERSHIP_STATE_UNSPECIFIED" - Default, do not use. // "JOINED" - The user has joined the space. // "INVITED" - The user has been invited, is able to join the space, // but currently has not joined. // "NOT_A_MEMBER" - The user is not a member of the space, has not // been invited and is not able to join the space. State string `json:"state,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "CreateTime") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "CreateTime") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Membership) MarshalJSON() ([]byte, error) { type NoMethod Membership raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Message: A message in Google Chat. type Message struct { // ActionResponse: Input only. Parameters that a Chat app can use to // configure how its response is posted. ActionResponse *ActionResponse `json:"actionResponse,omitempty"` // Annotations: Output only. Annotations associated with the text in // this message. Annotations []*Annotation `json:"annotations,omitempty"` // ArgumentText: Plain-text body of the message with all Chat app // mentions stripped out. ArgumentText string `json:"argumentText,omitempty"` // Attachment: User uploaded attachment. Attachment []*Attachment `json:"attachment,omitempty"` // Cards: 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. Cards []*Card `json:"cards,omitempty"` // CreateTime: Output only. The time at which the message was created in // Google Chat server. CreateTime string `json:"createTime,omitempty"` // FallbackText: A plain-text description of the message's cards, used // when the actual cards cannot be displayed (e.g. mobile // notifications). FallbackText string `json:"fallbackText,omitempty"` // LastUpdateTime: Output only. The time at which the message was last // updated. If the message was never updated, this field matches // `create_time`. LastUpdateTime string `json:"lastUpdateTime,omitempty"` // MatchedUrl: Output only. A URL in `spaces.messages.text` that matches // a link preview pattern. For more information, refer to Preview links // (https://developers.google.com/chat/how-tos/preview-links). MatchedUrl *MatchedUrl `json:"matchedUrl,omitempty"` // Name: Resource name in the form `spaces/*/messages/*`. Example: // `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB` Name string `json:"name,omitempty"` // Sender: Output only. The user who created the message. Sender *User `json:"sender,omitempty"` // SlashCommand: Output only. Slash command information, if applicable. SlashCommand *SlashCommand `json:"slashCommand,omitempty"` // Space: The space the message belongs to. Space *Space `json:"space,omitempty"` // Text: Plain-text body of the message. The first link to an image, // video, web page, or other preview-able item generates a preview chip. Text string `json:"text,omitempty"` // Thread: The thread the message belongs to. Thread *Thread `json:"thread,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "ActionResponse") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ActionResponse") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } func (s *Message) MarshalJSON() ([]byte, error) { type NoMethod Message raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // OnClick: An onclick action (e.g. open a link). type OnClick struct { // Action: A form action will be triggered by this onclick if specified. Action *FormAction `json:"action,omitempty"` // OpenLink: This onclick triggers an open link action if specified. OpenLink *OpenLink `json:"openLink,omitempty"` // ForceSendFields is a list of field names (e.g. "Action") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Action") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *OnClick) MarshalJSON() ([]byte, error) { type NoMethod OnClick raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // OpenLink: A link that opens a new window. type OpenLink struct { // Url: The URL to open. Url string `json:"url,omitempty"` // ForceSendFields is a list of field names (e.g. "Url") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Url") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *OpenLink) MarshalJSON() ([]byte, error) { type NoMethod OpenLink raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Section: 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). type Section struct { // Header: The header of the section, text formatted supported. Header string `json:"header,omitempty"` // Widgets: A section must contain at least 1 widget. Widgets []*WidgetMarkup `json:"widgets,omitempty"` // ForceSendFields is a list of field names (e.g. "Header") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Header") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Section) MarshalJSON() ([]byte, error) { type NoMethod Section raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // SlashCommand: A slash command // (https://developers.google.com/chat/how-tos/slash-commands) in Google // Chat. type SlashCommand struct { // CommandId: The id of the slash command invoked. CommandId int64 `json:"commandId,omitempty,string"` // ForceSendFields is a list of field names (e.g. "CommandId") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "CommandId") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *SlashCommand) MarshalJSON() ([]byte, error) { type NoMethod SlashCommand raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // SlashCommandMetadata: Annotation metadata for slash commands (/). type SlashCommandMetadata struct { // Bot: The Chat app whose command was invoked. Bot *User `json:"bot,omitempty"` // CommandId: The command id of the invoked slash command. CommandId int64 `json:"commandId,omitempty,string"` // CommandName: The name of the invoked slash command. CommandName string `json:"commandName,omitempty"` // TriggersDialog: Indicating whether the slash command is for a dialog. TriggersDialog bool `json:"triggersDialog,omitempty"` // Type: The type of slash command. // // Possible values: // "TYPE_UNSPECIFIED" - Default value for the enum. DO NOT USE. // "ADD" - Add Chat app to space. // "INVOKE" - Invoke slash command in space. Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "Bot") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Bot") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *SlashCommandMetadata) MarshalJSON() ([]byte, error) { type NoMethod SlashCommandMetadata raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Space: A space in Google Chat. Spaces are conversations between two // or more users or 1:1 messages between a user and a Chat app. type Space struct { // DisplayName: The space's display name. For direct messages between // humans, this field might be empty. DisplayName string `json:"displayName,omitempty"` // Name: Resource name of the space. Format: spaces/{space} Name string `json:"name,omitempty"` // SingleUserBotDm: Output only. Whether the space is a DM between a // Chat app and a single human. SingleUserBotDm bool `json:"singleUserBotDm,omitempty"` // Threaded: Output only. Whether messages are threaded in this space. Threaded bool `json:"threaded,omitempty"` // Type: Output only. Deprecated: Use `single_user_bot_dm` or // `space_type` (developer preview) instead. The type of a space. // // Possible values: // "TYPE_UNSPECIFIED" // "ROOM" - Conversations between two or more humans. // "DM" - 1:1 Direct Message between a human and a Chat app, where all // messages are flat. Note that this does not include direct messages // between two humans. Type string `json:"type,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "DisplayName") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "DisplayName") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Space) MarshalJSON() ([]byte, error) { type NoMethod Space raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Status: 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 gRPC (https://github.com/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 API Design Guide // (https://cloud.google.com/apis/design/errors). type Status struct { // Code: The status code, which should be an enum value of // google.rpc.Code. Code int64 `json:"code,omitempty"` // Details: A list of messages that carry the error details. There is a // common set of message types for APIs to use. Details []googleapi.RawMessage `json:"details,omitempty"` // Message: 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 string `json:"message,omitempty"` // ForceSendFields is a list of field names (e.g. "Code") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Code") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Status) MarshalJSON() ([]byte, error) { type NoMethod Status raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // StringInputs: 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. type StringInputs struct { // Value: An array of strings entered by the user. Value []string `json:"value,omitempty"` // ForceSendFields is a list of field names (e.g. "Value") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Value") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *StringInputs) MarshalJSON() ([]byte, error) { type NoMethod StringInputs raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // TextButton: A button with text and onclick action. type TextButton struct { // OnClick: The onclick action of the button. OnClick *OnClick `json:"onClick,omitempty"` // Text: The text of the button. Text string `json:"text,omitempty"` // ForceSendFields is a list of field names (e.g. "OnClick") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "OnClick") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *TextButton) MarshalJSON() ([]byte, error) { type NoMethod TextButton raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // TextParagraph: A paragraph of text. Formatted text supported. type TextParagraph struct { Text string `json:"text,omitempty"` // ForceSendFields is a list of field names (e.g. "Text") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Text") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *TextParagraph) MarshalJSON() ([]byte, error) { type NoMethod TextParagraph raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Thread: A thread in Google Chat. type Thread struct { // Name: Resource name, in the form "spaces/*/threads/*". Example: // spaces/AAAAAAAAAAA/threads/TTTTTTTTTTT Name string `json:"name,omitempty"` // ForceSendFields is a list of field names (e.g. "Name") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Name") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Thread) MarshalJSON() ([]byte, error) { type NoMethod Thread raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // TimeInput: Time input values. Not supported by Chat apps. type TimeInput struct { // Hours: The hour on a 24-hour clock. Hours int64 `json:"hours,omitempty"` // Minutes: The number of minutes past the hour. Valid values are 0 to // 59. Minutes int64 `json:"minutes,omitempty"` // ForceSendFields is a list of field names (e.g. "Hours") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Hours") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *TimeInput) MarshalJSON() ([]byte, error) { type NoMethod TimeInput raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // TimeZone: The timezone ID and offset from Coordinated Universal Time // (UTC). Not supported by Chat apps. type TimeZone struct { // Id: The IANA TZ (https://www.iana.org/time-zones) time zone database // code, such as "America/Toronto". Id string `json:"id,omitempty"` // Offset: The user timezone offset, in milliseconds, from Coordinated // Universal Time (UTC). Offset int64 `json:"offset,omitempty"` // ForceSendFields is a list of field names (e.g. "Id") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Id") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *TimeZone) MarshalJSON() ([]byte, error) { type NoMethod TimeZone raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // User: A user in Google Chat. type User struct { // DisplayName: Output only. The user's display name. DisplayName string `json:"displayName,omitempty"` // DomainId: Unique identifier of the user's Google Workspace domain. DomainId string `json:"domainId,omitempty"` // IsAnonymous: Output only. When `true`, the user is deleted or their // profile is not visible. IsAnonymous bool `json:"isAnonymous,omitempty"` // Name: Resource name for a Google Chat user. Represents a person // (https://developers.google.com/people/api/rest/v1/people#Person) in // the People API or a user // (https://developers.google.com/admin-sdk/directory/reference/rest/v1/users) // in the Admin SDK Directory API. Formatted as: `users/{user}` Name string `json:"name,omitempty"` // Type: User type. // // Possible values: // "TYPE_UNSPECIFIED" - Default value for the enum. DO NOT USE. // "HUMAN" - Human user. // "BOT" - Chat app user. Type string `json:"type,omitempty"` // ForceSendFields is a list of field names (e.g. "DisplayName") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "DisplayName") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *User) MarshalJSON() ([]byte, error) { type NoMethod User raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // UserMentionMetadata: Annotation metadata for user mentions (@). type UserMentionMetadata struct { // Type: The type of user mention. // // Possible values: // "TYPE_UNSPECIFIED" - Default value for the enum. DO NOT USE. // "ADD" - Add user to space. // "MENTION" - Mention user in space. Type string `json:"type,omitempty"` // User: The user mentioned. User *User `json:"user,omitempty"` // ForceSendFields is a list of field names (e.g. "Type") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Type") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *UserMentionMetadata) MarshalJSON() ([]byte, error) { type NoMethod UserMentionMetadata raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // WidgetMarkup: A widget is a UI element that presents texts, images, // etc. type WidgetMarkup struct { // Buttons: A list of buttons. Buttons is also oneof data and only one // of these fields should be set. Buttons []*Button `json:"buttons,omitempty"` // Image: Display an image in this widget. Image *Image `json:"image,omitempty"` // KeyValue: Display a key value item in this widget. KeyValue *KeyValue `json:"keyValue,omitempty"` // TextParagraph: Display a text paragraph in this widget. TextParagraph *TextParagraph `json:"textParagraph,omitempty"` // ForceSendFields is a list of field names (e.g. "Buttons") to // unconditionally include in API requests. By default, fields with // empty or default values are omitted from API requests. However, any // non-pointer, non-interface field appearing in ForceSendFields will be // sent to the server regardless of whether the field is empty or not. // This may be used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Buttons") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *WidgetMarkup) MarshalJSON() ([]byte, error) { type NoMethod WidgetMarkup raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // method id "chat.dms.messages": type DmsMessagesCall struct { s *Service parent string message *Message urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Messages: Legacy path for creating message. Calling these will result // in a BadRequest response. // // - parent: Space resource name, in the form "spaces/*". Example: // spaces/AAAAAAAAAAA. func (r *DmsService) Messages(parent string, message *Message) *DmsMessagesCall { c := &DmsMessagesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent c.message = message return c } // RequestId sets the optional parameter "requestId": 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. func (c *DmsMessagesCall) RequestId(requestId string) *DmsMessagesCall { c.urlParams_.Set("requestId", requestId) return c } // ThreadKey sets the optional parameter "threadKey": Opaque thread // identifier. To start or add to a thread, create a message and specify // a `threadKey` instead of thread.name. (Setting thread.name has no // effect.) The first message with a given `threadKey` starts a new // thread. Subsequent messages with the same `threadKey` post into the // same thread. func (c *DmsMessagesCall) ThreadKey(threadKey string) *DmsMessagesCall { c.urlParams_.Set("threadKey", threadKey) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *DmsMessagesCall) Fields(s ...googleapi.Field) *DmsMessagesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *DmsMessagesCall) Context(ctx context.Context) *DmsMessagesCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *DmsMessagesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *DmsMessagesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.message) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/messages") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "parent": c.parent, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "chat.dms.messages" call. // Exactly one of *Message or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Message.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified // was returned. func (c *DmsMessagesCall) Do(opts ...googleapi.CallOption) (*Message, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Message{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Legacy path for creating message. Calling these will result in a BadRequest response.", // "flatPath": "v1/dms/{dmsId}/messages", // "httpMethod": "POST", // "id": "chat.dms.messages", // "parameterOrder": [ // "parent" // ], // "parameters": { // "parent": { // "description": "Required. Space resource name, in the form \"spaces/*\". Example: spaces/AAAAAAAAAAA", // "location": "path", // "pattern": "^dms/[^/]+$", // "required": true, // "type": "string" // }, // "requestId": { // "description": "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.", // "location": "query", // "type": "string" // }, // "threadKey": { // "description": "Optional. Opaque thread identifier. To start or add to a thread, create a message and specify a `threadKey` instead of thread.name. (Setting thread.name has no effect.) The first message with a given `threadKey` starts a new thread. Subsequent messages with the same `threadKey` post into the same thread.", // "location": "query", // "type": "string" // } // }, // "path": "v1/{+parent}/messages", // "request": { // "$ref": "Message" // }, // "response": { // "$ref": "Message" // } // } } // method id "chat.dms.webhooks": type DmsWebhooksCall struct { s *Service parent string message *Message urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Webhooks: Legacy path for creating message. Calling these will result // in a BadRequest response. // // - parent: Space resource name, in the form "spaces/*". Example: // spaces/AAAAAAAAAAA. func (r *DmsService) Webhooks(parent string, message *Message) *DmsWebhooksCall { c := &DmsWebhooksCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent c.message = message return c } // RequestId sets the optional parameter "requestId": 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. func (c *DmsWebhooksCall) RequestId(requestId string) *DmsWebhooksCall { c.urlParams_.Set("requestId", requestId) return c } // ThreadKey sets the optional parameter "threadKey": Opaque thread // identifier. To start or add to a thread, create a message and specify // a `threadKey` instead of thread.name. (Setting thread.name has no // effect.) The first message with a given `threadKey` starts a new // thread. Subsequent messages with the same `threadKey` post into the // same thread. func (c *DmsWebhooksCall) ThreadKey(threadKey string) *DmsWebhooksCall { c.urlParams_.Set("threadKey", threadKey) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *DmsWebhooksCall) Fields(s ...googleapi.Field) *DmsWebhooksCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *DmsWebhooksCall) Context(ctx context.Context) *DmsWebhooksCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *DmsWebhooksCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *DmsWebhooksCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.message) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/webhooks") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "parent": c.parent, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "chat.dms.webhooks" call. // Exactly one of *Message or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Message.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified // was returned. func (c *DmsWebhooksCall) Do(opts ...googleapi.CallOption) (*Message, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Message{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Legacy path for creating message. Calling these will result in a BadRequest response.", // "flatPath": "v1/dms/{dmsId}/webhooks", // "httpMethod": "POST", // "id": "chat.dms.webhooks", // "parameterOrder": [ // "parent" // ], // "parameters": { // "parent": { // "description": "Required. Space resource name, in the form \"spaces/*\". Example: spaces/AAAAAAAAAAA", // "location": "path", // "pattern": "^dms/[^/]+$", // "required": true, // "type": "string" // }, // "requestId": { // "description": "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.", // "location": "query", // "type": "string" // }, // "threadKey": { // "description": "Optional. Opaque thread identifier. To start or add to a thread, create a message and specify a `threadKey` instead of thread.name. (Setting thread.name has no effect.) The first message with a given `threadKey` starts a new thread. Subsequent messages with the same `threadKey` post into the same thread.", // "location": "query", // "type": "string" // } // }, // "path": "v1/{+parent}/webhooks", // "request": { // "$ref": "Message" // }, // "response": { // "$ref": "Message" // } // } } // method id "chat.dms.conversations.messages": type DmsConversationsMessagesCall struct { s *Service parent string message *Message urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Messages: Legacy path for creating message. Calling these will result // in a BadRequest response. // // - parent: Space resource name, in the form "spaces/*". Example: // spaces/AAAAAAAAAAA. func (r *DmsConversationsService) Messages(parent string, message *Message) *DmsConversationsMessagesCall { c := &DmsConversationsMessagesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent c.message = message return c } // RequestId sets the optional parameter "requestId": 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. func (c *DmsConversationsMessagesCall) RequestId(requestId string) *DmsConversationsMessagesCall { c.urlParams_.Set("requestId", requestId) return c } // ThreadKey sets the optional parameter "threadKey": Opaque thread // identifier. To start or add to a thread, create a message and specify // a `threadKey` instead of thread.name. (Setting thread.name has no // effect.) The first message with a given `threadKey` starts a new // thread. Subsequent messages with the same `threadKey` post into the // same thread. func (c *DmsConversationsMessagesCall) ThreadKey(threadKey string) *DmsConversationsMessagesCall { c.urlParams_.Set("threadKey", threadKey) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *DmsConversationsMessagesCall) Fields(s ...googleapi.Field) *DmsConversationsMessagesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *DmsConversationsMessagesCall) Context(ctx context.Context) *DmsConversationsMessagesCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *DmsConversationsMessagesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *DmsConversationsMessagesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.message) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/messages") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "parent": c.parent, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "chat.dms.conversations.messages" call. // Exactly one of *Message or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Message.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified // was returned. func (c *DmsConversationsMessagesCall) Do(opts ...googleapi.CallOption) (*Message, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Message{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Legacy path for creating message. Calling these will result in a BadRequest response.", // "flatPath": "v1/dms/{dmsId}/conversations/{conversationsId}/messages", // "httpMethod": "POST", // "id": "chat.dms.conversations.messages", // "parameterOrder": [ // "parent" // ], // "parameters": { // "parent": { // "description": "Required. Space resource name, in the form \"spaces/*\". Example: spaces/AAAAAAAAAAA", // "location": "path", // "pattern": "^dms/[^/]+/conversations/[^/]+$", // "required": true, // "type": "string" // }, // "requestId": { // "description": "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.", // "location": "query", // "type": "string" // }, // "threadKey": { // "description": "Optional. Opaque thread identifier. To start or add to a thread, create a message and specify a `threadKey` instead of thread.name. (Setting thread.name has no effect.) The first message with a given `threadKey` starts a new thread. Subsequent messages with the same `threadKey` post into the same thread.", // "location": "query", // "type": "string" // } // }, // "path": "v1/{+parent}/messages", // "request": { // "$ref": "Message" // }, // "response": { // "$ref": "Message" // } // } } // method id "chat.media.download": type MediaDownloadCall struct { s *Service resourceName string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // Download: Downloads media. Download is supported on the URI // `/v1/media/{+name}?alt=media`. // // - resourceName: Name of the media that is being downloaded. See // ReadRequest.resource_name. func (r *MediaService) Download(resourceName string) *MediaDownloadCall { c := &MediaDownloadCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.resourceName = resourceName return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *MediaDownloadCall) Fields(s ...googleapi.Field) *MediaDownloadCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets the optional parameter which makes the operation // fail if the object's ETag matches the given value. This is useful for // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. func (c *MediaDownloadCall) IfNoneMatch(entityTag string) *MediaDownloadCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do and Download // methods. Any pending HTTP request will be aborted if the provided // context is canceled. func (c *MediaDownloadCall) Context(ctx context.Context) *MediaDownloadCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *MediaDownloadCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *MediaDownloadCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/media/{+resourceName}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "resourceName": c.resourceName, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Download fetches the API endpoint's "media" value, instead of the normal // API response value. If the returned error is nil, the Response is guaranteed to // have a 2xx status code. Callers must close the Response.Body as usual. func (c *MediaDownloadCall) Download(opts ...googleapi.CallOption) (*http.Response, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("media") if err != nil { return nil, err } if err := googleapi.CheckResponse(res); err != nil { res.Body.Close() return nil, err } return res, nil } // Do executes the "chat.media.download" call. // Exactly one of *Media or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Media.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified // was returned. func (c *MediaDownloadCall) Do(opts ...googleapi.CallOption) (*Media, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Media{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Downloads media. Download is supported on the URI `/v1/media/{+name}?alt=media`.", // "flatPath": "v1/media/{mediaId}", // "httpMethod": "GET", // "id": "chat.media.download", // "parameterOrder": [ // "resourceName" // ], // "parameters": { // "resourceName": { // "description": "Name of the media that is being downloaded. See ReadRequest.resource_name.", // "location": "path", // "pattern": "^.*$", // "required": true, // "type": "string" // } // }, // "path": "v1/media/{+resourceName}", // "response": { // "$ref": "Media" // }, // "supportsMediaDownload": true // } } // method id "chat.rooms.messages": type RoomsMessagesCall struct { s *Service parent string message *Message urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Messages: Legacy path for creating message. Calling these will result // in a BadRequest response. // // - parent: Space resource name, in the form "spaces/*". Example: // spaces/AAAAAAAAAAA. func (r *RoomsService) Messages(parent string, message *Message) *RoomsMessagesCall { c := &RoomsMessagesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent c.message = message return c } // RequestId sets the optional parameter "requestId": 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. func (c *RoomsMessagesCall) RequestId(requestId string) *RoomsMessagesCall { c.urlParams_.Set("requestId", requestId) return c } // ThreadKey sets the optional parameter "threadKey": Opaque thread // identifier. To start or add to a thread, create a message and specify // a `threadKey` instead of thread.name. (Setting thread.name has no // effect.) The first message with a given `threadKey` starts a new // thread. Subsequent messages with the same `threadKey` post into the // same thread. func (c *RoomsMessagesCall) ThreadKey(threadKey string) *RoomsMessagesCall { c.urlParams_.Set("threadKey", threadKey) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *RoomsMessagesCall) Fields(s ...googleapi.Field) *RoomsMessagesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *RoomsMessagesCall) Context(ctx context.Context) *RoomsMessagesCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *RoomsMessagesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *RoomsMessagesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.message) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/messages") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "parent": c.parent, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "chat.rooms.messages" call. // Exactly one of *Message or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Message.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified // was returned. func (c *RoomsMessagesCall) Do(opts ...googleapi.CallOption) (*Message, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Message{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Legacy path for creating message. Calling these will result in a BadRequest response.", // "flatPath": "v1/rooms/{roomsId}/messages", // "httpMethod": "POST", // "id": "chat.rooms.messages", // "parameterOrder": [ // "parent" // ], // "parameters": { // "parent": { // "description": "Required. Space resource name, in the form \"spaces/*\". Example: spaces/AAAAAAAAAAA", // "location": "path", // "pattern": "^rooms/[^/]+$", // "required": true, // "type": "string" // }, // "requestId": { // "description": "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.", // "location": "query", // "type": "string" // }, // "threadKey": { // "description": "Optional. Opaque thread identifier. To start or add to a thread, create a message and specify a `threadKey` instead of thread.name. (Setting thread.name has no effect.) The first message with a given `threadKey` starts a new thread. Subsequent messages with the same `threadKey` post into the same thread.", // "location": "query", // "type": "string" // } // }, // "path": "v1/{+parent}/messages", // "request": { // "$ref": "Message" // }, // "response": { // "$ref": "Message" // } // } } // method id "chat.rooms.webhooks": type RoomsWebhooksCall struct { s *Service parent string message *Message urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Webhooks: Legacy path for creating message. Calling these will result // in a BadRequest response. // // - parent: Space resource name, in the form "spaces/*". Example: // spaces/AAAAAAAAAAA. func (r *RoomsService) Webhooks(parent string, message *Message) *RoomsWebhooksCall { c := &RoomsWebhooksCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent c.message = message return c } // RequestId sets the optional parameter "requestId": 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. func (c *RoomsWebhooksCall) RequestId(requestId string) *RoomsWebhooksCall { c.urlParams_.Set("requestId", requestId) return c } // ThreadKey sets the optional parameter "threadKey": Opaque thread // identifier. To start or add to a thread, create a message and specify // a `threadKey` instead of thread.name. (Setting thread.name has no // effect.) The first message with a given `threadKey` starts a new // thread. Subsequent messages with the same `threadKey` post into the // same thread. func (c *RoomsWebhooksCall) ThreadKey(threadKey string) *RoomsWebhooksCall { c.urlParams_.Set("threadKey", threadKey) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *RoomsWebhooksCall) Fields(s ...googleapi.Field) *RoomsWebhooksCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *RoomsWebhooksCall) Context(ctx context.Context) *RoomsWebhooksCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *RoomsWebhooksCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *RoomsWebhooksCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.message) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/webhooks") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "parent": c.parent, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "chat.rooms.webhooks" call. // Exactly one of *Message or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Message.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified // was returned. func (c *RoomsWebhooksCall) Do(opts ...googleapi.CallOption) (*Message, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Message{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Legacy path for creating message. Calling these will result in a BadRequest response.", // "flatPath": "v1/rooms/{roomsId}/webhooks", // "httpMethod": "POST", // "id": "chat.rooms.webhooks", // "parameterOrder": [ // "parent" // ], // "parameters": { // "parent": { // "description": "Required. Space resource name, in the form \"spaces/*\". Example: spaces/AAAAAAAAAAA", // "location": "path", // "pattern": "^rooms/[^/]+$", // "required": true, // "type": "string" // }, // "requestId": { // "description": "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.", // "location": "query", // "type": "string" // }, // "threadKey": { // "description": "Optional. Opaque thread identifier. To start or add to a thread, create a message and specify a `threadKey` instead of thread.name. (Setting thread.name has no effect.) The first message with a given `threadKey` starts a new thread. Subsequent messages with the same `threadKey` post into the same thread.", // "location": "query", // "type": "string" // } // }, // "path": "v1/{+parent}/webhooks", // "request": { // "$ref": "Message" // }, // "response": { // "$ref": "Message" // } // } } // method id "chat.rooms.conversations.messages": type RoomsConversationsMessagesCall struct { s *Service parent string message *Message urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Messages: Legacy path for creating message. Calling these will result // in a BadRequest response. // // - parent: Space resource name, in the form "spaces/*". Example: // spaces/AAAAAAAAAAA. func (r *RoomsConversationsService) Messages(parent string, message *Message) *RoomsConversationsMessagesCall { c := &RoomsConversationsMessagesCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent c.message = message return c } // RequestId sets the optional parameter "requestId": 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. func (c *RoomsConversationsMessagesCall) RequestId(requestId string) *RoomsConversationsMessagesCall { c.urlParams_.Set("requestId", requestId) return c } // ThreadKey sets the optional parameter "threadKey": Opaque thread // identifier. To start or add to a thread, create a message and specify // a `threadKey` instead of thread.name. (Setting thread.name has no // effect.) The first message with a given `threadKey` starts a new // thread. Subsequent messages with the same `threadKey` post into the // same thread. func (c *RoomsConversationsMessagesCall) ThreadKey(threadKey string) *RoomsConversationsMessagesCall { c.urlParams_.Set("threadKey", threadKey) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *RoomsConversationsMessagesCall) Fields(s ...googleapi.Field) *RoomsConversationsMessagesCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *RoomsConversationsMessagesCall) Context(ctx context.Context) *RoomsConversationsMessagesCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *RoomsConversationsMessagesCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *RoomsConversationsMessagesCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.message) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/messages") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "parent": c.parent, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "chat.rooms.conversations.messages" call. // Exactly one of *Message or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Message.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified // was returned. func (c *RoomsConversationsMessagesCall) Do(opts ...googleapi.CallOption) (*Message, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Message{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Legacy path for creating message. Calling these will result in a BadRequest response.", // "flatPath": "v1/rooms/{roomsId}/conversations/{conversationsId}/messages", // "httpMethod": "POST", // "id": "chat.rooms.conversations.messages", // "parameterOrder": [ // "parent" // ], // "parameters": { // "parent": { // "description": "Required. Space resource name, in the form \"spaces/*\". Example: spaces/AAAAAAAAAAA", // "location": "path", // "pattern": "^rooms/[^/]+/conversations/[^/]+$", // "required": true, // "type": "string" // }, // "requestId": { // "description": "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.", // "location": "query", // "type": "string" // }, // "threadKey": { // "description": "Optional. Opaque thread identifier. To start or add to a thread, create a message and specify a `threadKey` instead of thread.name. (Setting thread.name has no effect.) The first message with a given `threadKey` starts a new thread. Subsequent messages with the same `threadKey` post into the same thread.", // "location": "query", // "type": "string" // } // }, // "path": "v1/{+parent}/messages", // "request": { // "$ref": "Message" // }, // "response": { // "$ref": "Message" // } // } } // method id "chat.spaces.get": type SpacesGetCall struct { s *Service name string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // Get: Returns a space. Requires service account authentication // (https://developers.google.com/chat/api/guides/auth/service-accounts). // // - name: Resource name of the space, in the form "spaces/*". Format: // spaces/{space}. func (r *SpacesService) Get(name string) *SpacesGetCall { c := &SpacesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *SpacesGetCall) Fields(s ...googleapi.Field) *SpacesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets the optional parameter which makes the operation // fail if the object's ETag matches the given value. This is useful for // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. func (c *SpacesGetCall) IfNoneMatch(entityTag string) *SpacesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *SpacesGetCall) Context(ctx context.Context) *SpacesGetCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *SpacesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *SpacesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "name": c.name, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "chat.spaces.get" call. // Exactly one of *Space or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Space.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified // was returned. func (c *SpacesGetCall) Do(opts ...googleapi.CallOption) (*Space, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Space{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Returns a space. Requires [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts).", // "flatPath": "v1/spaces/{spacesId}", // "httpMethod": "GET", // "id": "chat.spaces.get", // "parameterOrder": [ // "name" // ], // "parameters": { // "name": { // "description": "Required. Resource name of the space, in the form \"spaces/*\". Format: spaces/{space}", // "location": "path", // "pattern": "^spaces/[^/]+$", // "required": true, // "type": "string" // } // }, // "path": "v1/{+name}", // "response": { // "$ref": "Space" // } // } } // method id "chat.spaces.list": type SpacesListCall struct { s *Service urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // List: Lists spaces the caller is a member of. Requires service // account authentication // (https://developers.google.com/chat/api/guides/auth/service-accounts). func (r *SpacesService) List() *SpacesListCall { c := &SpacesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} return c } // PageSize sets the optional parameter "pageSize": Requested page size. // The value is capped at 1000. Server may return fewer results than // requested. If unspecified, server will default to 100. func (c *SpacesListCall) PageSize(pageSize int64) *SpacesListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } // PageToken sets the optional parameter "pageToken": A token // identifying a page of results the server should return. func (c *SpacesListCall) PageToken(pageToken string) *SpacesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *SpacesListCall) Fields(s ...googleapi.Field) *SpacesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets the optional parameter which makes the operation // fail if the object's ETag matches the given value. This is useful for // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. func (c *SpacesListCall) IfNoneMatch(entityTag string) *SpacesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *SpacesListCall) Context(ctx context.Context) *SpacesListCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *SpacesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *SpacesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/spaces") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "chat.spaces.list" call. // Exactly one of *ListSpacesResponse or error will be non-nil. Any // non-2xx status code is an error. Response headers are in either // *ListSpacesResponse.ServerResponse.Header or (if a response was // returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. func (c *SpacesListCall) Do(opts ...googleapi.CallOption) (*ListSpacesResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &ListSpacesResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Lists spaces the caller is a member of. Requires [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts).", // "flatPath": "v1/spaces", // "httpMethod": "GET", // "id": "chat.spaces.list", // "parameterOrder": [], // "parameters": { // "pageSize": { // "description": "Requested page size. The value is capped at 1000. Server may return fewer results than requested. If unspecified, server will default to 100.", // "format": "int32", // "location": "query", // "type": "integer" // }, // "pageToken": { // "description": "A token identifying a page of results the server should return.", // "location": "query", // "type": "string" // } // }, // "path": "v1/spaces", // "response": { // "$ref": "ListSpacesResponse" // } // } } // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. func (c *SpacesListCall) Pages(ctx context.Context, f func(*ListSpacesResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point for { x, err := c.Do() if err != nil { return err } if err := f(x); err != nil { return err } if x.NextPageToken == "" { return nil } c.PageToken(x.NextPageToken) } } // method id "chat.spaces.webhooks": type SpacesWebhooksCall struct { s *Service parent string message *Message urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Webhooks: Legacy path for creating message. Calling these will result // in a BadRequest response. // // - parent: Space resource name, in the form "spaces/*". Example: // spaces/AAAAAAAAAAA. func (r *SpacesService) Webhooks(parent string, message *Message) *SpacesWebhooksCall { c := &SpacesWebhooksCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent c.message = message return c } // RequestId sets the optional parameter "requestId": 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. func (c *SpacesWebhooksCall) RequestId(requestId string) *SpacesWebhooksCall { c.urlParams_.Set("requestId", requestId) return c } // ThreadKey sets the optional parameter "threadKey": Opaque thread // identifier. To start or add to a thread, create a message and specify // a `threadKey` instead of thread.name. (Setting thread.name has no // effect.) The first message with a given `threadKey` starts a new // thread. Subsequent messages with the same `threadKey` post into the // same thread. func (c *SpacesWebhooksCall) ThreadKey(threadKey string) *SpacesWebhooksCall { c.urlParams_.Set("threadKey", threadKey) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *SpacesWebhooksCall) Fields(s ...googleapi.Field) *SpacesWebhooksCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *SpacesWebhooksCall) Context(ctx context.Context) *SpacesWebhooksCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *SpacesWebhooksCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *SpacesWebhooksCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.message) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/webhooks") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "parent": c.parent, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "chat.spaces.webhooks" call. // Exactly one of *Message or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Message.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified // was returned. func (c *SpacesWebhooksCall) Do(opts ...googleapi.CallOption) (*Message, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Message{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Legacy path for creating message. Calling these will result in a BadRequest response.", // "flatPath": "v1/spaces/{spacesId}/webhooks", // "httpMethod": "POST", // "id": "chat.spaces.webhooks", // "parameterOrder": [ // "parent" // ], // "parameters": { // "parent": { // "description": "Required. Space resource name, in the form \"spaces/*\". Example: spaces/AAAAAAAAAAA", // "location": "path", // "pattern": "^spaces/[^/]+$", // "required": true, // "type": "string" // }, // "requestId": { // "description": "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.", // "location": "query", // "type": "string" // }, // "threadKey": { // "description": "Optional. Opaque thread identifier. To start or add to a thread, create a message and specify a `threadKey` instead of thread.name. (Setting thread.name has no effect.) The first message with a given `threadKey` starts a new thread. Subsequent messages with the same `threadKey` post into the same thread.", // "location": "query", // "type": "string" // } // }, // "path": "v1/{+parent}/webhooks", // "request": { // "$ref": "Message" // }, // "response": { // "$ref": "Message" // } // } } // method id "chat.spaces.members.get": type SpacesMembersGetCall struct { s *Service name string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // Get: Returns a membership. Requires service account authentication // (https://developers.google.com/chat/api/guides/auth/service-accounts). // // - name: Resource name of the membership to retrieve. Format: // spaces/{space}/members/{member}. func (r *SpacesMembersService) Get(name string) *SpacesMembersGetCall { c := &SpacesMembersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *SpacesMembersGetCall) Fields(s ...googleapi.Field) *SpacesMembersGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets the optional parameter which makes the operation // fail if the object's ETag matches the given value. This is useful for // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. func (c *SpacesMembersGetCall) IfNoneMatch(entityTag string) *SpacesMembersGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *SpacesMembersGetCall) Context(ctx context.Context) *SpacesMembersGetCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *SpacesMembersGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *SpacesMembersGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "name": c.name, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "chat.spaces.members.get" call. // Exactly one of *Membership or error will be non-nil. Any non-2xx // status code is an error. Response headers are in either // *Membership.ServerResponse.Header or (if a response was returned at // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified // to check whether the returned error was because // http.StatusNotModified was returned. func (c *SpacesMembersGetCall) Do(opts ...googleapi.CallOption) (*Membership, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Membership{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Returns a membership. Requires [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts).", // "flatPath": "v1/spaces/{spacesId}/members/{membersId}", // "httpMethod": "GET", // "id": "chat.spaces.members.get", // "parameterOrder": [ // "name" // ], // "parameters": { // "name": { // "description": "Required. Resource name of the membership to retrieve. Format: spaces/{space}/members/{member}", // "location": "path", // "pattern": "^spaces/[^/]+/members/[^/]+$", // "required": true, // "type": "string" // } // }, // "path": "v1/{+name}", // "response": { // "$ref": "Membership" // } // } } // method id "chat.spaces.members.list": type SpacesMembersListCall struct { s *Service parent string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // List: Lists human memberships in a space. Requires service account // authentication // (https://developers.google.com/chat/api/guides/auth/service-accounts). // // - parent: The resource name of the space for which to fetch a // membership list. Format: spaces/{space}. func (r *SpacesMembersService) List(parent string) *SpacesMembersListCall { c := &SpacesMembersListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent return c } // PageSize sets the optional parameter "pageSize": Requested page size. // The value is capped at 1000. Server may return fewer results than // requested. If unspecified, server will default to 100. func (c *SpacesMembersListCall) PageSize(pageSize int64) *SpacesMembersListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } // PageToken sets the optional parameter "pageToken": A token // identifying a page of results the server should return. func (c *SpacesMembersListCall) PageToken(pageToken string) *SpacesMembersListCall { c.urlParams_.Set("pageToken", pageToken) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *SpacesMembersListCall) Fields(s ...googleapi.Field) *SpacesMembersListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets the optional parameter which makes the operation // fail if the object's ETag matches the given value. This is useful for // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. func (c *SpacesMembersListCall) IfNoneMatch(entityTag string) *SpacesMembersListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *SpacesMembersListCall) Context(ctx context.Context) *SpacesMembersListCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *SpacesMembersListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *SpacesMembersListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/members") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "parent": c.parent, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "chat.spaces.members.list" call. // Exactly one of *ListMembershipsResponse or error will be non-nil. Any // non-2xx status code is an error. Response headers are in either // *ListMembershipsResponse.ServerResponse.Header or (if a response was // returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. func (c *SpacesMembersListCall) Do(opts ...googleapi.CallOption) (*ListMembershipsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &ListMembershipsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Lists human memberships in a space. Requires [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts).", // "flatPath": "v1/spaces/{spacesId}/members", // "httpMethod": "GET", // "id": "chat.spaces.members.list", // "parameterOrder": [ // "parent" // ], // "parameters": { // "pageSize": { // "description": "Requested page size. The value is capped at 1000. Server may return fewer results than requested. If unspecified, server will default to 100.", // "format": "int32", // "location": "query", // "type": "integer" // }, // "pageToken": { // "description": "A token identifying a page of results the server should return.", // "location": "query", // "type": "string" // }, // "parent": { // "description": "Required. The resource name of the space for which to fetch a membership list. Format: spaces/{space}", // "location": "path", // "pattern": "^spaces/[^/]+$", // "required": true, // "type": "string" // } // }, // "path": "v1/{+parent}/members", // "response": { // "$ref": "ListMembershipsResponse" // } // } } // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. func (c *SpacesMembersListCall) Pages(ctx context.Context, f func(*ListMembershipsResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point for { x, err := c.Do() if err != nil { return err } if err := f(x); err != nil { return err } if x.NextPageToken == "" { return nil } c.PageToken(x.NextPageToken) } } // method id "chat.spaces.messages.create": type SpacesMessagesCreateCall struct { s *Service parent string message *Message urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Create: Creates a message. Requires service account authentication // (https://developers.google.com/chat/api/guides/auth/service-accounts). // // - parent: Space resource name, in the form "spaces/*". Example: // spaces/AAAAAAAAAAA. func (r *SpacesMessagesService) Create(parent string, message *Message) *SpacesMessagesCreateCall { c := &SpacesMessagesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent c.message = message return c } // RequestId sets the optional parameter "requestId": 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. func (c *SpacesMessagesCreateCall) RequestId(requestId string) *SpacesMessagesCreateCall { c.urlParams_.Set("requestId", requestId) return c } // ThreadKey sets the optional parameter "threadKey": Opaque thread // identifier. To start or add to a thread, create a message and specify // a `threadKey` instead of thread.name. (Setting thread.name has no // effect.) The first message with a given `threadKey` starts a new // thread. Subsequent messages with the same `threadKey` post into the // same thread. func (c *SpacesMessagesCreateCall) ThreadKey(threadKey string) *SpacesMessagesCreateCall { c.urlParams_.Set("threadKey", threadKey) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *SpacesMessagesCreateCall) Fields(s ...googleapi.Field) *SpacesMessagesCreateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *SpacesMessagesCreateCall) Context(ctx context.Context) *SpacesMessagesCreateCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *SpacesMessagesCreateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *SpacesMessagesCreateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.message) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/messages") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("POST", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "parent": c.parent, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "chat.spaces.messages.create" call. // Exactly one of *Message or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Message.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified // was returned. func (c *SpacesMessagesCreateCall) Do(opts ...googleapi.CallOption) (*Message, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Message{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Creates a message. Requires [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts).", // "flatPath": "v1/spaces/{spacesId}/messages", // "httpMethod": "POST", // "id": "chat.spaces.messages.create", // "parameterOrder": [ // "parent" // ], // "parameters": { // "parent": { // "description": "Required. Space resource name, in the form \"spaces/*\". Example: spaces/AAAAAAAAAAA", // "location": "path", // "pattern": "^spaces/[^/]+$", // "required": true, // "type": "string" // }, // "requestId": { // "description": "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.", // "location": "query", // "type": "string" // }, // "threadKey": { // "description": "Optional. Opaque thread identifier. To start or add to a thread, create a message and specify a `threadKey` instead of thread.name. (Setting thread.name has no effect.) The first message with a given `threadKey` starts a new thread. Subsequent messages with the same `threadKey` post into the same thread.", // "location": "query", // "type": "string" // } // }, // "path": "v1/{+parent}/messages", // "request": { // "$ref": "Message" // }, // "response": { // "$ref": "Message" // } // } } // method id "chat.spaces.messages.delete": type SpacesMessagesDeleteCall struct { s *Service name string urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Delete: Deletes a message. Requires service account authentication // (https://developers.google.com/chat/api/guides/auth/service-accounts). // // - name: Resource name of the message to be deleted, in the form // "spaces/*/messages/*" Example: // spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB. func (r *SpacesMessagesService) Delete(name string) *SpacesMessagesDeleteCall { c := &SpacesMessagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *SpacesMessagesDeleteCall) Fields(s ...googleapi.Field) *SpacesMessagesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *SpacesMessagesDeleteCall) Context(ctx context.Context) *SpacesMessagesDeleteCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *SpacesMessagesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *SpacesMessagesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("DELETE", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "name": c.name, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "chat.spaces.messages.delete" call. // Exactly one of *Empty or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Empty.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified // was returned. func (c *SpacesMessagesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Empty{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Deletes a message. Requires [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts).", // "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}", // "httpMethod": "DELETE", // "id": "chat.spaces.messages.delete", // "parameterOrder": [ // "name" // ], // "parameters": { // "name": { // "description": "Required. Resource name of the message to be deleted, in the form \"spaces/*/messages/*\" Example: spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB", // "location": "path", // "pattern": "^spaces/[^/]+/messages/[^/]+$", // "required": true, // "type": "string" // } // }, // "path": "v1/{+name}", // "response": { // "$ref": "Empty" // } // } } // method id "chat.spaces.messages.get": type SpacesMessagesGetCall struct { s *Service name string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // Get: Returns a message. Requires service account authentication // (https://developers.google.com/chat/api/guides/auth/service-accounts). // // - name: Resource name of the message to be retrieved, in the form // "spaces/*/messages/*". Example: // spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB. func (r *SpacesMessagesService) Get(name string) *SpacesMessagesGetCall { c := &SpacesMessagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *SpacesMessagesGetCall) Fields(s ...googleapi.Field) *SpacesMessagesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets the optional parameter which makes the operation // fail if the object's ETag matches the given value. This is useful for // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. func (c *SpacesMessagesGetCall) IfNoneMatch(entityTag string) *SpacesMessagesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *SpacesMessagesGetCall) Context(ctx context.Context) *SpacesMessagesGetCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *SpacesMessagesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *SpacesMessagesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "name": c.name, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "chat.spaces.messages.get" call. // Exactly one of *Message or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Message.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified // was returned. func (c *SpacesMessagesGetCall) Do(opts ...googleapi.CallOption) (*Message, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Message{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Returns a message. Requires [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts).", // "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}", // "httpMethod": "GET", // "id": "chat.spaces.messages.get", // "parameterOrder": [ // "name" // ], // "parameters": { // "name": { // "description": "Required. Resource name of the message to be retrieved, in the form \"spaces/*/messages/*\". Example: spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB", // "location": "path", // "pattern": "^spaces/[^/]+/messages/[^/]+$", // "required": true, // "type": "string" // } // }, // "path": "v1/{+name}", // "response": { // "$ref": "Message" // } // } } // method id "chat.spaces.messages.update": type SpacesMessagesUpdateCall struct { s *Service name string message *Message urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Update: Updates a message. Requires service account authentication // (https://developers.google.com/chat/api/guides/auth/service-accounts). // // - name: Resource name in the form `spaces/*/messages/*`. Example: // `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB`. func (r *SpacesMessagesService) Update(name string, message *Message) *SpacesMessagesUpdateCall { c := &SpacesMessagesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name c.message = message return c } // UpdateMask sets the optional parameter "updateMask": Required. The // field paths to be updated, comma separated if there are multiple. // Currently supported field paths: * text * cards * attachment func (c *SpacesMessagesUpdateCall) UpdateMask(updateMask string) *SpacesMessagesUpdateCall { c.urlParams_.Set("updateMask", updateMask) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *SpacesMessagesUpdateCall) Fields(s ...googleapi.Field) *SpacesMessagesUpdateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *SpacesMessagesUpdateCall) Context(ctx context.Context) *SpacesMessagesUpdateCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *SpacesMessagesUpdateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *SpacesMessagesUpdateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.message) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("PUT", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "name": c.name, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "chat.spaces.messages.update" call. // Exactly one of *Message or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Message.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified // was returned. func (c *SpacesMessagesUpdateCall) Do(opts ...googleapi.CallOption) (*Message, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Message{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Updates a message. Requires [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts).", // "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}", // "httpMethod": "PUT", // "id": "chat.spaces.messages.update", // "parameterOrder": [ // "name" // ], // "parameters": { // "name": { // "description": "Resource name in the form `spaces/*/messages/*`. Example: `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB`", // "location": "path", // "pattern": "^spaces/[^/]+/messages/[^/]+$", // "required": true, // "type": "string" // }, // "updateMask": { // "description": "Required. The field paths to be updated, comma separated if there are multiple. Currently supported field paths: * text * cards * attachment", // "format": "google-fieldmask", // "location": "query", // "type": "string" // } // }, // "path": "v1/{+name}", // "request": { // "$ref": "Message" // }, // "response": { // "$ref": "Message" // } // } } // method id "chat.spaces.messages.attachments.get": type SpacesMessagesAttachmentsGetCall struct { s *Service name string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // Get: Gets the metadata of a message attachment. The attachment data // is fetched using the media API. Requires service account // authentication // (https://developers.google.com/chat/api/guides/auth/service-accounts). // // - name: Resource name of the attachment, in the form // "spaces/*/messages/*/attachments/*". func (r *SpacesMessagesAttachmentsService) Get(name string) *SpacesMessagesAttachmentsGetCall { c := &SpacesMessagesAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *SpacesMessagesAttachmentsGetCall) Fields(s ...googleapi.Field) *SpacesMessagesAttachmentsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets the optional parameter which makes the operation // fail if the object's ETag matches the given value. This is useful for // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. func (c *SpacesMessagesAttachmentsGetCall) IfNoneMatch(entityTag string) *SpacesMessagesAttachmentsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *SpacesMessagesAttachmentsGetCall) Context(ctx context.Context) *SpacesMessagesAttachmentsGetCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *SpacesMessagesAttachmentsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *SpacesMessagesAttachmentsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/"+internal.Version) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) c.urlParams_.Set("prettyPrint", "false") urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}") urls += "?" + c.urlParams_.Encode() req, err := http.NewRequest("GET", urls, body) if err != nil { return nil, err } req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "name": c.name, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "chat.spaces.messages.attachments.get" call. // Exactly one of *Attachment or error will be non-nil. Any non-2xx // status code is an error. Response headers are in either // *Attachment.ServerResponse.Header or (if a response was returned at // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified // to check whether the returned error was because // http.StatusNotModified was returned. func (c *SpacesMessagesAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*Attachment, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Attachment{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Gets the metadata of a message attachment. The attachment data is fetched using the media API. Requires [service account authentication](https://developers.google.com/chat/api/guides/auth/service-accounts).", // "flatPath": "v1/spaces/{spacesId}/messages/{messagesId}/attachments/{attachmentsId}", // "httpMethod": "GET", // "id": "chat.spaces.messages.attachments.get", // "parameterOrder": [ // "name" // ], // "parameters": { // "name": { // "description": "Required. Resource name of the attachment, in the form \"spaces/*/messages/*/attachments/*\".", // "location": "path", // "pattern": "^spaces/[^/]+/messages/[^/]+/attachments/[^/]+$", // "required": true, // "type": "string" // } // }, // "path": "v1/{+name}", // "response": { // "$ref": "Attachment" // } // } }