package api import ( "time" ) // EmbedType is the type of an Embed type EmbedType string // Constants for EmbedType const ( EmbedTypeRich EmbedType = "rich" EmbedTypeImage EmbedType = "image" EmbedTypeVideo EmbedType = "video" EmbedTypeGifV EmbedType = "rich" EmbedTypeArticle EmbedType = "article" EmbedTypeLink EmbedType = "link" ) // Embed allows you to send embeds to discord type Embed struct { Title *string `json:"title,omitempty"` Type *EmbedType `json:"type,omitempty"` Description *string `json:"description,omitempty"` URL *string `json:"url,omitempty"` Timestamp *time.Time `json:"timestamp,omitempty"` Color *int `json:"color,omitempty"` Footer *EmbedFooter `json:"footer,omitempty"` Image *EmbedResource `json:"image,omitempty"` Thumbnail *EmbedResource `json:"thumbnail,omitempty"` Video *EmbedResource `json:"video,omitempty"` Provider *EmbedProvider `json:"provider,omitempty"` Author *EmbedAuthor `json:"author,omitempty"` Fields []*EmbedField `json:"fields,omitempty"` } // The EmbedResource of an Embed.Image/Embed.Thumbnail/Embed.Video type EmbedResource struct { URL *string `json:"url,omitempty"` ProxyURL *string `json:"proxy_url,omitempty"` Height *int `json:"height,omitempty"` Width *int `json:"width,omitempty"` } // The EmbedProvider of an Embed type EmbedProvider struct { Name *string `json:"name,omitempty"` URL *string `json:"url,omitempty"` } // The EmbedAuthor of an Embed type EmbedAuthor struct { Name *string `json:"name,omitempty"` URL *string `json:"url,omitempty"` IconURL *string `json:"icon_url,omitempty"` ProxyIconURL *string `json:"proxy_icon_url,omitempty"` } // The EmbedFooter of an Embed type EmbedFooter struct { Text string `json:"text"` IconURL *string `json:"icon_url,omitempty"` ProxyIconURL *string `json:"proxy_icon_url,omitempty"` } // EmbedField (s) of an Embed type EmbedField struct { Name string `json:"name"` Value string `json:"value"` Inline *bool `json:"inline,omitempty"` }