Compare commits

...

22 Commits

Author SHA1 Message Date
Wim
d97b077e85 Release v1.17.2 (#1080) 2020-04-09 22:54:51 +02:00
Wim
8950575bfb Update Rhymen/go-whatsapp vendor and whatsapp version (#1078) 2020-04-09 22:30:08 +02:00
Jerry Heiselman
11fc4c286f Clarify terminology used in mapping group chat IDs to channels in config (#1079)
* Clarify embedded docs for channel specification

Should help with #1072
2020-04-08 23:52:38 +02:00
Wim
8d08e348a9 Reset start timestamp on reconnect (whatsapp). Fixes #1059 (#1064) 2020-03-31 23:26:53 +02:00
Wim
a18807f19e Update matterbridge/go-xmpp to add xmpp avatar support (#1070) 2020-03-29 17:35:40 +02:00
Wim
29f658fd3c Use DebugWriter after upstream changes (xmpp) 2020-03-29 15:03:24 +02:00
Wim
a30bb8fed0 Sync matterbridge/go-xmpp with upstream 2020-03-29 15:03:24 +02:00
Wim
092ca1cd67 Update vendor slack-go/slack (#1068) 2020-03-28 23:50:47 +01:00
Wim
0df2539641 Use upstream yaegashi/msgraph.go/msauth (msteams) (#1067) 2020-03-28 23:44:49 +01:00
Wim
0f2d8a599c Update vendor d5/tengo (#1066) 2020-03-28 23:41:35 +01:00
Wim
54b3143a1d Bump version 2020-03-28 00:29:41 +01:00
Wim
148f7d2a91 Release v1.17.1 (#1063) 2020-03-28 00:18:29 +01:00
Wim
1aa662f763 Update client version whatsapp. Fixes #1061 (#1062)
See https://github.com/Rhymen/go-whatsapp/issues/305
2020-03-28 00:18:03 +01:00
Alex Wigen
0b86b88de7 Remove build dependencies from final docker image (multistage build) (#1057)
This multistage build takes the resulting image size down from 346MB to
90MB.
2020-03-22 22:55:29 +01:00
Qais Patankar
98033b1ba7 Don't transmit typing events from ourselves (slack/discord) (#1056) 2020-03-22 18:39:11 +01:00
Qais Patankar
2b7eab629d Add support for build tags (#1054)
By default all bridges are available.

You can turn off certain bridges by providing
e.g. "nodiscord" as a build tag.

    go build -tags nomsteams,noapi
2020-03-22 18:34:14 +01:00
Wim
0e4973e15c Exclude gateway/bridgemap from linting (#1055) 2020-03-22 14:35:48 +01:00
Qais Patankar
af0acf0dae Strip extra info from emotes (discord) (#1052) 2020-03-22 14:16:31 +01:00
Qais Patankar
76e5fe5a87 Update vendor yaegashi/msgraph.go to v0.1.2 (2) 2020-03-22 00:02:48 +01:00
Qais Patankar
802c80f40c Update vendor yaegashi/msgraph.go to v0.1.2 (1) 2020-03-22 00:02:48 +01:00
Wim
a51c5bd905 Add more msteams docs (#1051) 2020-03-21 23:30:22 +01:00
Wim
8c68556f52 Bump version 2020-03-21 22:51:22 +01:00
4329 changed files with 194104 additions and 197813 deletions

View File

@@ -23,7 +23,7 @@ run:
# default value is empty list, but next dirs are always skipped independently # default value is empty list, but next dirs are always skipped independently
# from this option's value: # from this option's value:
# vendor$, third_party$, testdata$, examples$, Godeps$, builtin$ # vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
skip-dirs: skip-dirs: gateway/bridgemap$
# which files to skip: they will be analyzed, but issues from them # which files to skip: they will be analyzed, but issues from them
# won't be reported. Default value is empty list, but there is # won't be reported. Default value is empty list, but there is

View File

@@ -1,11 +1,13 @@
FROM alpine:edge FROM alpine:edge AS builder
ENTRYPOINT ["/bin/matterbridge"]
COPY . /go/src/github.com/42wim/matterbridge COPY . /go/src/github.com/42wim/matterbridge
RUN apk update && apk add go git gcc musl-dev ca-certificates mailcap \ RUN apk update && apk add go git gcc musl-dev \
&& cd /go/src/github.com/42wim/matterbridge \ && cd /go/src/github.com/42wim/matterbridge \
&& export GOPATH=/go \ && export GOPATH=/go \
&& go get \ && go get \
&& go build -x -ldflags "-X main.githash=$(git log --pretty=format:'%h' -n 1)" -o /bin/matterbridge \ && go build -x -ldflags "-X main.githash=$(git log --pretty=format:'%h' -n 1)" -o /bin/matterbridge
&& rm -rf /go \
&& apk del --purge git go gcc musl-dev FROM alpine:edge
RUN apk --no-cache add ca-certificates mailcap
COPY --from=builder /bin/matterbridge /bin/matterbridge
ENTRYPOINT ["/bin/matterbridge"]

View File

@@ -22,6 +22,7 @@ Letting people be where they want to be.<br />
[Zulip][mb-zulip] | [Zulip][mb-zulip] |
[Telegram][mb-telegram] | [Telegram][mb-telegram] |
[Keybase][mb-keybase] | [Keybase][mb-keybase] |
[MSTeams][mb-msteams] |
And more... And more...
</sup> </sup>
@@ -95,6 +96,7 @@ And more...
- [Telegram](https://telegram.org) - [Telegram](https://telegram.org)
- [Rocket.chat](https://rocket.chat) - [Rocket.chat](https://rocket.chat)
- [Matrix](https://matrix.org) - [Matrix](https://matrix.org)
- [Microsoft Teams](https://teams.microsoft.com)
- [Steam](https://store.steampowered.com/) - [Steam](https://store.steampowered.com/)
- [Twitch](https://twitch.tv) - [Twitch](https://twitch.tv)
- [Ssh-chat](https://github.com/shazow/ssh-chat) - [Ssh-chat](https://github.com/shazow/ssh-chat)
@@ -149,7 +151,7 @@ See https://github.com/42wim/matterbridge/wiki
### Binaries ### Binaries
- Latest stable release [v1.17.0](https://github.com/42wim/matterbridge/releases/latest) - Latest stable release [v1.17.2](https://github.com/42wim/matterbridge/releases/latest)
- Development releases (follows master) can be downloaded [here](https://dl.bintray.com/42wim/nightly/) - Development releases (follows master) can be downloaded [here](https://dl.bintray.com/42wim/nightly/)
To install or upgrade just download the latest [binary](https://github.com/42wim/matterbridge/releases/latest) and follow the instructions on the [howto](https://github.com/42wim/matterbridge/wiki/How-to-create-your-config) for a step by step walkthrough for creating your configuration. To install or upgrade just download the latest [binary](https://github.com/42wim/matterbridge/releases/latest) and follow the instructions on the [howto](https://github.com/42wim/matterbridge/wiki/How-to-create-your-config) for a step by step walkthrough for creating your configuration.
@@ -333,6 +335,7 @@ Matterbridge wouldn't exist without these libraries:
- zulip - https://github.com/ifo/gozulipbot - zulip - https://github.com/ifo/gozulipbot
- tengo - https://github.com/d5/tengo - tengo - https://github.com/d5/tengo
- keybase - https://github.com/keybase/go-keybase-chat-bot - keybase - https://github.com/keybase/go-keybase-chat-bot
- msgraph.go - https://github.com/yaegashi/msgraph.go
<!-- Links --> <!-- Links -->
@@ -349,3 +352,4 @@ Matterbridge wouldn't exist without these libraries:
[mb-keybase]: https://keybase.io/team/matterbridge [mb-keybase]: https://keybase.io/team/matterbridge
[mb-zulip]: https://matterbridge.zulipchat.com/register/ [mb-zulip]: https://matterbridge.zulipchat.com/register/
[mb-telegram]: https://t.me/Matterbridge [mb-telegram]: https://t.me/Matterbridge
[mb-msteams]: https://teams.microsoft.com/join/hj92x75gd3y7

View File

@@ -21,6 +21,7 @@ type Bdiscord struct {
c *discordgo.Session c *discordgo.Session
nick string nick string
userID string
guildID string guildID string
webhookID string webhookID string
webhookToken string webhookToken string
@@ -92,6 +93,7 @@ func (b *Bdiscord) Connect() error {
} }
serverName := strings.Replace(b.GetString("Server"), "ID:", "", -1) serverName := strings.Replace(b.GetString("Server"), "ID:", "", -1)
b.nick = userinfo.Username b.nick = userinfo.Username
b.userID = userinfo.ID
b.channelsMutex.Lock() b.channelsMutex.Lock()
for _, guild := range guilds { for _, guild := range guilds {
if guild.Name == serverName || guild.ID == serverName { if guild.Name == serverName || guild.ID == serverName {

View File

@@ -36,6 +36,11 @@ func (b *Bdiscord) messageTyping(s *discordgo.Session, m *discordgo.TypingStart)
return return
} }
// Ignore our own typing messages
if m.UserID == b.userID {
return
}
rmsg := config.Message{Account: b.Account, Event: config.EventUserTyping} rmsg := config.Message{Account: b.Account, Event: config.EventUserTyping}
rmsg.Channel = b.getChannelName(m.ChannelID) rmsg.Channel = b.getChannelName(m.ChannelID)
b.Remote <- rmsg b.Remote <- rmsg
@@ -119,6 +124,9 @@ func (b *Bdiscord) messageCreate(s *discordgo.Session, m *discordgo.MessageCreat
rmsg.Event = config.EventUserAction rmsg.Event = config.EventUserAction
} }
// Replace emotes
rmsg.Text = replaceEmotes(rmsg.Text)
b.Log.Debugf("<= Sending message from %s on %s to gateway", m.Author.Username, b.Account) b.Log.Debugf("<= Sending message from %s on %s to gateway", m.Author.Username, b.Account)
b.Log.Debugf("<= Message is %#v", rmsg) b.Log.Debugf("<= Message is %#v", rmsg)
b.Remote <- rmsg b.Remote <- rmsg

View File

@@ -137,6 +137,7 @@ var (
// See https://discordapp.com/developers/docs/reference#message-formatting. // See https://discordapp.com/developers/docs/reference#message-formatting.
channelMentionRE = regexp.MustCompile("<#[0-9]+>") channelMentionRE = regexp.MustCompile("<#[0-9]+>")
userMentionRE = regexp.MustCompile("@[^@\n]{1,32}") userMentionRE = regexp.MustCompile("@[^@\n]{1,32}")
emoteRE = regexp.MustCompile(`<a?(:\w+:)\d+>`)
) )
func (b *Bdiscord) replaceChannelMentions(text string) string { func (b *Bdiscord) replaceChannelMentions(text string) string {
@@ -182,6 +183,10 @@ func (b *Bdiscord) replaceUserMentions(text string) string {
return userMentionRE.ReplaceAllStringFunc(text, replaceUserMentionFunc) return userMentionRE.ReplaceAllStringFunc(text, replaceUserMentionFunc)
} }
func replaceEmotes(text string) string {
return emoteRE.ReplaceAllString(text, "$1")
}
func (b *Bdiscord) replaceAction(text string) (string, bool) { func (b *Bdiscord) replaceAction(text string) (string, bool) {
if strings.HasPrefix(text, "_") && strings.HasSuffix(text, "_") { if strings.HasPrefix(text, "_") && strings.HasSuffix(text, "_") {
return text[1 : len(text)-1], true return text[1 : len(text)-1], true

View File

@@ -9,7 +9,7 @@ import (
"github.com/42wim/matterbridge/bridge/config" "github.com/42wim/matterbridge/bridge/config"
"github.com/42wim/matterbridge/bridge/helper" "github.com/42wim/matterbridge/bridge/helper"
msgraph "github.com/matterbridge/msgraph.go/beta" msgraph "github.com/yaegashi/msgraph.go/beta"
) )
func (b *Bmsteams) findFile(weburl string) (string, error) { func (b *Bmsteams) findFile(weburl string) (string, error) {

View File

@@ -11,10 +11,9 @@ import (
"github.com/42wim/matterbridge/bridge" "github.com/42wim/matterbridge/bridge"
"github.com/42wim/matterbridge/bridge/config" "github.com/42wim/matterbridge/bridge/config"
// "github.com/davecgh/go-spew/spew"
msgraph "github.com/matterbridge/msgraph.go/beta"
"github.com/matterbridge/msgraph.go/msauth"
"github.com/mattn/godown" "github.com/mattn/godown"
msgraph "github.com/yaegashi/msgraph.go/beta"
"github.com/yaegashi/msgraph.go/msauth"
"golang.org/x/oauth2" "golang.org/x/oauth2"
) )

View File

@@ -1,6 +1,7 @@
package bslack package bslack
import ( import (
"errors"
"fmt" "fmt"
"html" "html"
"time" "time"
@@ -10,6 +11,9 @@ import (
"github.com/slack-go/slack" "github.com/slack-go/slack"
) )
// ErrEventIgnored is for events that should be ignored
var ErrEventIgnored = errors.New("this event message should ignored")
func (b *Bslack) handleSlack() { func (b *Bslack) handleSlack() {
messages := make(chan *config.Message) messages := make(chan *config.Message)
if b.GetString(incomingWebhookConfig) != "" { if b.GetString(incomingWebhookConfig) != "" {
@@ -53,7 +57,9 @@ func (b *Bslack) handleSlackClient(messages chan *config.Message) {
continue continue
} }
rmsg, err := b.handleTypingEvent(ev) rmsg, err := b.handleTypingEvent(ev)
if err != nil { if err == ErrEventIgnored {
continue
} else if err != nil {
b.Log.Errorf("%#v", err) b.Log.Errorf("%#v", err)
continue continue
} }
@@ -276,6 +282,9 @@ func (b *Bslack) handleAttachments(ev *slack.MessageEvent, rmsg *config.Message)
} }
func (b *Bslack) handleTypingEvent(ev *slack.UserTypingEvent) (*config.Message, error) { func (b *Bslack) handleTypingEvent(ev *slack.UserTypingEvent) (*config.Message, error) {
if ev.User == b.si.User.ID {
return nil, ErrEventIgnored
}
channelInfo, err := b.channels.getChannelByID(ev.Channel) channelInfo, err := b.channels.getChannelByID(ev.Channel)
if err != nil { if err != nil {
return nil, err return nil, err

View File

@@ -55,6 +55,7 @@ func (b *Bwhatsapp) reconnect(err error) {
err := b.conn.Restore() err := b.conn.Restore()
if err == nil { if err == nil {
bf.Reset() bf.Reset()
b.startedAt = uint64(time.Now().Unix())
return return
} }
} }

View File

@@ -67,6 +67,7 @@ func (b *Bwhatsapp) Connect() error {
// https://github.com/Rhymen/go-whatsapp#creating-a-connection // https://github.com/Rhymen/go-whatsapp#creating-a-connection
b.Log.Debugln("Connecting to WhatsApp..") b.Log.Debugln("Connecting to WhatsApp..")
conn, err := whatsapp.NewConn(20 * time.Second) conn, err := whatsapp.NewConn(20 * time.Second)
conn.SetClientVersion(0, 4, 2080)
if err != nil { if err != nil {
return errors.New("failed to connect to WhatsApp: " + err.Error()) return errors.New("failed to connect to WhatsApp: " + err.Error())
} }

View File

@@ -114,6 +114,9 @@ func (b *Bxmpp) createXMPP() error {
ServerName: strings.Split(b.GetString("Jid"), "@")[1], ServerName: strings.Split(b.GetString("Jid"), "@")[1],
InsecureSkipVerify: b.GetBool("SkipTLSVerify"), // nolint: gosec InsecureSkipVerify: b.GetBool("SkipTLSVerify"), // nolint: gosec
} }
xmpp.DebugWriter = b.Log.Writer()
options := xmpp.Options{ options := xmpp.Options{
Host: b.GetString("Server"), Host: b.GetString("Server"),
User: b.GetString("Jid"), User: b.GetString("Jid"),
@@ -122,7 +125,6 @@ func (b *Bxmpp) createXMPP() error {
StartTLS: true, StartTLS: true,
TLSConfig: tc, TLSConfig: tc,
Debug: b.GetBool("debug"), Debug: b.GetBool("debug"),
Logger: b.Log.Writer(),
Session: true, Session: true,
Status: "", Status: "",
StatusMessage: "", StatusMessage: "",

View File

@@ -1,3 +1,36 @@
# v1.17.2
## Enhancements
- slack: Update vendor slack-go/slack (#1068)
- general: Update vendor d5/tengo (#1066)
- general: Clarify terminology used in mapping group chat IDs to channels in config (#1079)
## Bugfix
- whatsapp: Update Rhymen/go-whatsapp vendor and whatsapp version (#1078). Fixes Media upload #1074
- whatsapp: Reset start timestamp on reconnect (whatsapp). Fixes #1059 (#1064)
This release couldn't exist without the following contributors:
@42wim, @jheiselman
# v1.17.1
## Enhancements
- docker: Remove build dependencies from final image (multistage build) #1057
## Bugfix
- general: Don't transmit typing events from ourselves #1056
- general: Add support for build tags #1054
- discord: Strip extra info from emotes (discord) #1052
- msteams: fix macos build: Update vendor yaegashi/msgraph.go to v0.1.2 #1036
- whatsapp: Update client version whatsapp. Fixes #1061 #1062
This release couldn't exist without the following contributors:
@awigen, @qaisjp, @42wim
# v1.17.0 # v1.17.0
## New features ## New features

11
gateway/bridgemap/api.go Normal file
View File

@@ -0,0 +1,11 @@
// +build !noapi
package bridgemap
import (
"github.com/42wim/matterbridge/bridge/api"
)
func init() {
FullMap["api"] = api.New
}

View File

@@ -0,0 +1,12 @@
// +build !nodiscord
package bridgemap
import (
bdiscord "github.com/42wim/matterbridge/bridge/discord"
)
func init() {
FullMap["discord"] = bdiscord.New
UserTypingSupport["discord"] = struct{}{}
}

View File

@@ -0,0 +1,11 @@
// +build !nogitter
package bridgemap
import (
bgitter "github.com/42wim/matterbridge/bridge/gitter"
)
func init() {
FullMap["gitter"] = bgitter.New
}

11
gateway/bridgemap/birc.go Normal file
View File

@@ -0,0 +1,11 @@
// +build !noirc
package bridgemap
import (
birc "github.com/42wim/matterbridge/bridge/irc"
)
func init() {
FullMap["irc"] = birc.New
}

View File

@@ -0,0 +1,11 @@
// +build !nokeybase
package bridgemap
import (
bkeybase "github.com/42wim/matterbridge/bridge/keybase"
)
func init() {
FullMap["keybase"] = bkeybase.New
}

View File

@@ -0,0 +1,11 @@
// +build !nomatrix
package bridgemap
import (
bmatrix "github.com/42wim/matterbridge/bridge/matrix"
)
func init() {
FullMap["matrix"] = bmatrix.New
}

View File

@@ -0,0 +1,11 @@
// +build !nomattermost
package bridgemap
import (
bmattermost "github.com/42wim/matterbridge/bridge/mattermost"
)
func init() {
FullMap["mattermost"] = bmattermost.New
}

View File

@@ -0,0 +1,11 @@
// +build !nomsteams
package bridgemap
import (
bmsteams "github.com/42wim/matterbridge/bridge/msteams"
)
func init() {
FullMap["msteams"] = bmsteams.New
}

View File

@@ -2,47 +2,9 @@ package bridgemap
import ( import (
"github.com/42wim/matterbridge/bridge" "github.com/42wim/matterbridge/bridge"
"github.com/42wim/matterbridge/bridge/api"
bdiscord "github.com/42wim/matterbridge/bridge/discord"
bgitter "github.com/42wim/matterbridge/bridge/gitter"
birc "github.com/42wim/matterbridge/bridge/irc"
bkeybase "github.com/42wim/matterbridge/bridge/keybase"
bmatrix "github.com/42wim/matterbridge/bridge/matrix"
bmattermost "github.com/42wim/matterbridge/bridge/mattermost"
bmsteams "github.com/42wim/matterbridge/bridge/msteams"
brocketchat "github.com/42wim/matterbridge/bridge/rocketchat"
bslack "github.com/42wim/matterbridge/bridge/slack"
bsshchat "github.com/42wim/matterbridge/bridge/sshchat"
bsteam "github.com/42wim/matterbridge/bridge/steam"
btelegram "github.com/42wim/matterbridge/bridge/telegram"
bwhatsapp "github.com/42wim/matterbridge/bridge/whatsapp"
bxmpp "github.com/42wim/matterbridge/bridge/xmpp"
bzulip "github.com/42wim/matterbridge/bridge/zulip"
) )
var ( var (
FullMap = map[string]bridge.Factory{ FullMap = map[string]bridge.Factory{}
"api": api.New, UserTypingSupport = map[string]struct{}{}
"discord": bdiscord.New,
"gitter": bgitter.New,
"irc": birc.New,
"mattermost": bmattermost.New,
"matrix": bmatrix.New,
"rocketchat": brocketchat.New,
"slack-legacy": bslack.NewLegacy,
"slack": bslack.New,
"sshchat": bsshchat.New,
"steam": bsteam.New,
"telegram": btelegram.New,
"whatsapp": bwhatsapp.New,
"xmpp": bxmpp.New,
"zulip": bzulip.New,
"keybase": bkeybase.New,
"msteams": bmsteams.New,
}
UserTypingSupport = map[string]struct{}{
"slack": {},
"discord": {},
}
) )

View File

@@ -0,0 +1,11 @@
// +build !norocketchat
package bridgemap
import (
brocketchat "github.com/42wim/matterbridge/bridge/rocketchat"
)
func init() {
FullMap["rocketchat"] = brocketchat.New
}

View File

@@ -0,0 +1,13 @@
// +build !noslack
package bridgemap
import (
bslack "github.com/42wim/matterbridge/bridge/slack"
)
func init() {
FullMap["slack-legacy"] = bslack.NewLegacy
FullMap["slack"] = bslack.New
UserTypingSupport["slack"] = struct{}{}
}

View File

@@ -0,0 +1,11 @@
// +build !nosshchat
package bridgemap
import (
bsshchat "github.com/42wim/matterbridge/bridge/sshchat"
)
func init() {
FullMap["sshchat"] = bsshchat.New
}

View File

@@ -0,0 +1,11 @@
// +build !nosteam
package bridgemap
import (
bsteam "github.com/42wim/matterbridge/bridge/steam"
)
func init() {
FullMap["steam"] = bsteam.New
}

View File

@@ -0,0 +1,11 @@
// +build !notelegram
package bridgemap
import (
btelegram "github.com/42wim/matterbridge/bridge/telegram"
)
func init() {
FullMap["telegram"] = btelegram.New
}

View File

@@ -0,0 +1,11 @@
// +build !nowhatsapp
package bridgemap
import (
bwhatsapp "github.com/42wim/matterbridge/bridge/whatsapp"
)
func init() {
FullMap["whatsapp"] = bwhatsapp.New
}

View File

@@ -0,0 +1,11 @@
// +build !noxmpp
package bridgemap
import (
bxmpp "github.com/42wim/matterbridge/bridge/xmpp"
)
func init() {
FullMap["xmpp"] = bxmpp.New
}

View File

@@ -0,0 +1,11 @@
// +build !nozulip
package bridgemap
import (
bzulip "github.com/42wim/matterbridge/bridge/zulip"
)
func init() {
FullMap["zulip"] = bzulip.New
}

14
go.mod
View File

@@ -5,8 +5,8 @@ require (
github.com/Baozisoftware/qrcode-terminal-go v0.0.0-20170407111555-c0650d8dff0f github.com/Baozisoftware/qrcode-terminal-go v0.0.0-20170407111555-c0650d8dff0f
github.com/Jeffail/gabs v1.1.1 // indirect github.com/Jeffail/gabs v1.1.1 // indirect
github.com/Philipp15b/go-steam v1.0.1-0.20190816133340-b04c5a83c1c0 github.com/Philipp15b/go-steam v1.0.1-0.20190816133340-b04c5a83c1c0
github.com/Rhymen/go-whatsapp v0.1.0 github.com/Rhymen/go-whatsapp v0.1.1-0.20200408093540-2f227c53b44f
github.com/d5/tengo/v2 v2.0.2 github.com/d5/tengo/v2 v2.1.2
github.com/dfordsoft/golib v0.0.0-20180902042739-76ee6ab99bec github.com/dfordsoft/golib v0.0.0-20180902042739-76ee6ab99bec
github.com/fsnotify/fsnotify v1.4.7 github.com/fsnotify/fsnotify v1.4.7
github.com/go-telegram-bot-api/telegram-bot-api v4.6.5-0.20181225215658-ec221ba9ea45+incompatible github.com/go-telegram-bot-api/telegram-bot-api v4.6.5-0.20181225215658-ec221ba9ea45+incompatible
@@ -24,11 +24,10 @@ require (
github.com/matterbridge/Rocket.Chat.Go.SDK v0.0.0-20190210153444-cc9d05784d5d github.com/matterbridge/Rocket.Chat.Go.SDK v0.0.0-20190210153444-cc9d05784d5d
github.com/matterbridge/discordgo v0.18.1-0.20200308151012-aa40f01cbcc3 github.com/matterbridge/discordgo v0.18.1-0.20200308151012-aa40f01cbcc3
github.com/matterbridge/emoji v2.1.1-0.20191117213217-af507f6b02db+incompatible github.com/matterbridge/emoji v2.1.1-0.20191117213217-af507f6b02db+incompatible
github.com/matterbridge/go-xmpp v0.0.0-20180529212104-cd19799fba91 github.com/matterbridge/go-xmpp v0.0.0-20200329150250-5812999b292b
github.com/matterbridge/gomatrix v0.0.0-20200209224845-c2104d7936a6 github.com/matterbridge/gomatrix v0.0.0-20200209224845-c2104d7936a6
github.com/matterbridge/gozulipbot v0.0.0-20190212232658-7aa251978a18 github.com/matterbridge/gozulipbot v0.0.0-20190212232658-7aa251978a18
github.com/matterbridge/logrus-prefixed-formatter v0.0.0-20180806162718-01618749af61 github.com/matterbridge/logrus-prefixed-formatter v0.0.0-20180806162718-01618749af61
github.com/matterbridge/msgraph.go v0.0.0-20200308150230-9e043fe9dbaa
github.com/mattermost/mattermost-server v5.5.0+incompatible github.com/mattermost/mattermost-server v5.5.0+incompatible
github.com/mattn/go-runewidth v0.0.7 // indirect github.com/mattn/go-runewidth v0.0.7 // indirect
github.com/mattn/godown v0.0.0-20180312012330-2e9e17e0ea51 github.com/mattn/godown v0.0.0-20180312012330-2e9e17e0ea51
@@ -46,14 +45,15 @@ require (
github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca
github.com/shazow/ssh-chat v1.8.3-0.20200308224626-80ddf1f43a98 github.com/shazow/ssh-chat v1.8.3-0.20200308224626-80ddf1f43a98
github.com/sirupsen/logrus v1.4.2 github.com/sirupsen/logrus v1.4.2
github.com/slack-go/slack v0.6.3-0.20200228121756-f56d616d5901 github.com/slack-go/slack v0.6.3
github.com/spf13/viper v1.6.1 github.com/spf13/viper v1.6.1
github.com/stretchr/testify v1.4.0 github.com/stretchr/testify v1.4.0
github.com/technoweenie/multipartstreamer v1.0.1 // indirect github.com/technoweenie/multipartstreamer v1.0.1 // indirect
github.com/x-cray/logrus-prefixed-formatter v0.5.2 // indirect github.com/x-cray/logrus-prefixed-formatter v0.5.2 // indirect
github.com/yaegashi/msgraph.go v0.1.2
github.com/zfjagann/golang-ring v0.0.0-20190106091943-a88bb6aef447 github.com/zfjagann/golang-ring v0.0.0-20190106091943-a88bb6aef447
golang.org/x/image v0.0.0-20191214001246-9130b4cfad52 golang.org/x/image v0.0.0-20191214001246-9130b4cfad52
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d
gopkg.in/fsnotify.v1 v1.4.7 // indirect gopkg.in/fsnotify.v1 v1.4.7 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
@@ -61,6 +61,4 @@ require (
//replace github.com/bwmarrin/discordgo v0.20.2 => github.com/matterbridge/discordgo v0.18.1-0.20200109173909-ed873362fa43 //replace github.com/bwmarrin/discordgo v0.20.2 => github.com/matterbridge/discordgo v0.18.1-0.20200109173909-ed873362fa43
//replace github.com/yaegashi/msgraph.go => github.com/matterbridge/msgraph.go v0.0.0-20191226214848-9e5d9c08a4e1
go 1.13 go 1.13

30
go.sum
View File

@@ -12,8 +12,8 @@ github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAE
github.com/Philipp15b/go-steam v1.0.1-0.20190816133340-b04c5a83c1c0 h1:TO7d4rocnNFng6ZQrPe7U6WqHtK5eHEMrgrnnM/72IQ= github.com/Philipp15b/go-steam v1.0.1-0.20190816133340-b04c5a83c1c0 h1:TO7d4rocnNFng6ZQrPe7U6WqHtK5eHEMrgrnnM/72IQ=
github.com/Philipp15b/go-steam v1.0.1-0.20190816133340-b04c5a83c1c0/go.mod h1:HuVM+sZFzumUdKPWiz+IlCMb4RdsKdT3T+nQBKL+sYg= github.com/Philipp15b/go-steam v1.0.1-0.20190816133340-b04c5a83c1c0/go.mod h1:HuVM+sZFzumUdKPWiz+IlCMb4RdsKdT3T+nQBKL+sYg=
github.com/Rhymen/go-whatsapp v0.0.0/go.mod h1:rdQr95g2C1xcOfM7QGOhza58HeI3I+tZ/bbluv7VazA= github.com/Rhymen/go-whatsapp v0.0.0/go.mod h1:rdQr95g2C1xcOfM7QGOhza58HeI3I+tZ/bbluv7VazA=
github.com/Rhymen/go-whatsapp v0.1.0 h1:XTXhFIQ/fx9jKObUnUX2Q+nh58EyeHNhX7DniE8xeuA= github.com/Rhymen/go-whatsapp v0.1.1-0.20200408093540-2f227c53b44f h1:uclEol7RbpElhXXmwu38PDeGcgMXNU2vh5DWwzlg7xI=
github.com/Rhymen/go-whatsapp v0.1.0/go.mod h1:xJSy+okeRjKkQEH/lEYrnekXB3PG33fqL0I6ncAkV50= github.com/Rhymen/go-whatsapp v0.1.1-0.20200408093540-2f227c53b44f/go.mod h1:o7jjkvKnigfu432dMbQ/w4PH0Yp5u4Y6ysCNjUlcYCk=
github.com/Rhymen/go-whatsapp/examples/echo v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:zgCiQtBtZ4P4gFWvwl9aashsdwOcbb/EHOGRmSzM8ME= github.com/Rhymen/go-whatsapp/examples/echo v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:zgCiQtBtZ4P4gFWvwl9aashsdwOcbb/EHOGRmSzM8ME=
github.com/Rhymen/go-whatsapp/examples/restoreSession v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:5sCUSpG616ZoSJhlt9iBNI/KXBqrVLcNUJqg7J9+8pU= github.com/Rhymen/go-whatsapp/examples/restoreSession v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:5sCUSpG616ZoSJhlt9iBNI/KXBqrVLcNUJqg7J9+8pU=
github.com/Rhymen/go-whatsapp/examples/sendImage v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:RdiyhanVEGXTam+mZ3k6Y3VDCCvXYCwReOoxGozqhHw= github.com/Rhymen/go-whatsapp/examples/sendImage v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:RdiyhanVEGXTam+mZ3k6Y3VDCCvXYCwReOoxGozqhHw=
@@ -33,8 +33,8 @@ github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc
github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/d5/tengo/v2 v2.0.2 h1:3APkPZPc1FExaJoWrN5YzvDqc6GNkQH6ehmCRDmN83I= github.com/d5/tengo/v2 v2.1.2 h1:JR5O6qJW2GW9lpv/MfEqK16a/Wpp2y8I0JZZ5fqNOL0=
github.com/d5/tengo/v2 v2.0.2/go.mod h1:XRGjEs5I9jYIKTxly6HCF8oiiilk5E/RYXOZ5b0DZC8= github.com/d5/tengo/v2 v2.1.2/go.mod h1:XRGjEs5I9jYIKTxly6HCF8oiiilk5E/RYXOZ5b0DZC8=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -130,16 +130,14 @@ github.com/matterbridge/discordgo v0.18.1-0.20200308151012-aa40f01cbcc3 h1:VP/DN
github.com/matterbridge/discordgo v0.18.1-0.20200308151012-aa40f01cbcc3/go.mod h1:5a1bHtG/38ofcx9cgwM5eTW/Pl4SpbQksNDnTRcGA2Y= github.com/matterbridge/discordgo v0.18.1-0.20200308151012-aa40f01cbcc3/go.mod h1:5a1bHtG/38ofcx9cgwM5eTW/Pl4SpbQksNDnTRcGA2Y=
github.com/matterbridge/emoji v2.1.1-0.20191117213217-af507f6b02db+incompatible h1:oaOqwbg5HxHRxvAbd84ks0Okwoc1ISyUZ87EiVJFhGI= github.com/matterbridge/emoji v2.1.1-0.20191117213217-af507f6b02db+incompatible h1:oaOqwbg5HxHRxvAbd84ks0Okwoc1ISyUZ87EiVJFhGI=
github.com/matterbridge/emoji v2.1.1-0.20191117213217-af507f6b02db+incompatible/go.mod h1:igE6rUAn3jai2wCdsjFHfhUoekjrFthoEjFObKKwSb4= github.com/matterbridge/emoji v2.1.1-0.20191117213217-af507f6b02db+incompatible/go.mod h1:igE6rUAn3jai2wCdsjFHfhUoekjrFthoEjFObKKwSb4=
github.com/matterbridge/go-xmpp v0.0.0-20180529212104-cd19799fba91 h1:KzDEcy8eDbTx881giW8a6llsAck3e2bJvMyKvh1IK+k= github.com/matterbridge/go-xmpp v0.0.0-20200329150250-5812999b292b h1:ZYI2HCj9zPzI4Si1ouSOi/ImA2xSQLUCJPQsLWr8FE0=
github.com/matterbridge/go-xmpp v0.0.0-20180529212104-cd19799fba91/go.mod h1:ECDRehsR9TYTKCAsRS8/wLeOk6UUqDydw47ln7wG41Q= github.com/matterbridge/go-xmpp v0.0.0-20200329150250-5812999b292b/go.mod h1:ECDRehsR9TYTKCAsRS8/wLeOk6UUqDydw47ln7wG41Q=
github.com/matterbridge/gomatrix v0.0.0-20200209224845-c2104d7936a6 h1:Kl65VJv38HjYFnnwH+MP6Z8hcJT5UHuSpHVU5vW1HH0= github.com/matterbridge/gomatrix v0.0.0-20200209224845-c2104d7936a6 h1:Kl65VJv38HjYFnnwH+MP6Z8hcJT5UHuSpHVU5vW1HH0=
github.com/matterbridge/gomatrix v0.0.0-20200209224845-c2104d7936a6/go.mod h1:+jWeaaUtXQbBRdKYWfjW6JDDYiI2XXE+3NnTjW5kg8g= github.com/matterbridge/gomatrix v0.0.0-20200209224845-c2104d7936a6/go.mod h1:+jWeaaUtXQbBRdKYWfjW6JDDYiI2XXE+3NnTjW5kg8g=
github.com/matterbridge/gozulipbot v0.0.0-20190212232658-7aa251978a18 h1:fLhwXtWGtfTgZVxHG1lcKjv+re7dRwyyuYFNu69xdho= github.com/matterbridge/gozulipbot v0.0.0-20190212232658-7aa251978a18 h1:fLhwXtWGtfTgZVxHG1lcKjv+re7dRwyyuYFNu69xdho=
github.com/matterbridge/gozulipbot v0.0.0-20190212232658-7aa251978a18/go.mod h1:yAjnZ34DuDyPHMPHHjOsTk/FefW4JJjoMMCGt/8uuQA= github.com/matterbridge/gozulipbot v0.0.0-20190212232658-7aa251978a18/go.mod h1:yAjnZ34DuDyPHMPHHjOsTk/FefW4JJjoMMCGt/8uuQA=
github.com/matterbridge/logrus-prefixed-formatter v0.0.0-20180806162718-01618749af61 h1:R/MgM/eUyRBQx2FiH6JVmXck8PaAuKfe2M1tWIzW7nE= github.com/matterbridge/logrus-prefixed-formatter v0.0.0-20180806162718-01618749af61 h1:R/MgM/eUyRBQx2FiH6JVmXck8PaAuKfe2M1tWIzW7nE=
github.com/matterbridge/logrus-prefixed-formatter v0.0.0-20180806162718-01618749af61/go.mod h1:iXGEotOvwI1R1SjLxRc+BF5rUORTMtE0iMZBT2lxqAU= github.com/matterbridge/logrus-prefixed-formatter v0.0.0-20180806162718-01618749af61/go.mod h1:iXGEotOvwI1R1SjLxRc+BF5rUORTMtE0iMZBT2lxqAU=
github.com/matterbridge/msgraph.go v0.0.0-20200308150230-9e043fe9dbaa h1:ZP87nK5Mhgvt6Rpgbztdmq9+6cb3aZ6MgW/JWKbnMrI=
github.com/matterbridge/msgraph.go v0.0.0-20200308150230-9e043fe9dbaa/go.mod h1:l0kx9L8Z+NbBCGrQ/y+ldKZ/fiwBZjPoXwDS55LTumI=
github.com/mattermost/mattermost-server v5.5.0+incompatible h1:0wcLGgYtd+YImtLDPf2AOfpBHxbU4suATx+6XKw1XbU= github.com/mattermost/mattermost-server v5.5.0+incompatible h1:0wcLGgYtd+YImtLDPf2AOfpBHxbU4suATx+6XKw1XbU=
github.com/mattermost/mattermost-server v5.5.0+incompatible/go.mod h1:5L6MjAec+XXQwMIt791Ganu45GKsSiM+I0tLR9wUj8Y= github.com/mattermost/mattermost-server v5.5.0+incompatible/go.mod h1:5L6MjAec+XXQwMIt791Ganu45GKsSiM+I0tLR9wUj8Y=
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
@@ -169,6 +167,8 @@ github.com/nelsonken/gomf v0.0.0-20180504123937-a9dd2f9deae9 h1:mp6tU1r0xLostUGL
github.com/nelsonken/gomf v0.0.0-20180504123937-a9dd2f9deae9/go.mod h1:A5SRAcpTemjGgIuBq6Kic2yHcoeUFWUinOAlMP/i9xo= github.com/nelsonken/gomf v0.0.0-20180504123937-a9dd2f9deae9/go.mod h1:A5SRAcpTemjGgIuBq6Kic2yHcoeUFWUinOAlMP/i9xo=
github.com/nicksnyder/go-i18n v1.4.0 h1:AgLl+Yq7kg5OYlzCgu9cKTZOyI4tD/NgukKqLqC8E+I= github.com/nicksnyder/go-i18n v1.4.0 h1:AgLl+Yq7kg5OYlzCgu9cKTZOyI4tD/NgukKqLqC8E+I=
github.com/nicksnyder/go-i18n v1.4.0/go.mod h1:HrK7VCrbOvQoUAQ7Vpy7i87N7JZZZ7R2xBGjv0j365Q= github.com/nicksnyder/go-i18n v1.4.0/go.mod h1:HrK7VCrbOvQoUAQ7Vpy7i87N7JZZZ7R2xBGjv0j365Q=
github.com/nlopes/slack v0.6.0 h1:jt0jxVQGhssx1Ib7naAOZEZcGdtIhTzkP0nopK0AsRA=
github.com/nlopes/slack v0.6.0/go.mod h1:JzQ9m3PMAqcpeCam7UaHSuBuupz7CmpjehYMayT6YOk=
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
github.com/onsi/ginkgo v1.6.0 h1:Ix8l273rp3QzYgXSR+c8d1fTG7UPgYkOSELPhiY/YGw= github.com/onsi/ginkgo v1.6.0 h1:Ix8l273rp3QzYgXSR+c8d1fTG7UPgYkOSELPhiY/YGw=
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
@@ -194,6 +194,10 @@ github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
github.com/rickb777/date v1.12.4 h1:+6IzcCCS/1t17DrmnEvrznyq7nM8vPwir6/UhlyohKw=
github.com/rickb777/date v1.12.4/go.mod h1:xP0eo/I5qmUt97yRGClHZfyLZ3ikMw6v6SU5MOGZTE0=
github.com/rickb777/plural v1.2.0 h1:5tvEc7UBCZ7l8h/2UeybSkt/uu1DQsZFOFdNevmUhlE=
github.com/rickb777/plural v1.2.0/go.mod h1:UdpyWFCGbo3mvK3f/PfZOAOrkjzJlYN/sD46XNWJ+Es=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rs/xid v1.2.1 h1:mhH9Nq+C1fY2l1XIpgxIiUOfNpRBYH1kKcr+qfKgjRc= github.com/rs/xid v1.2.1 h1:mhH9Nq+C1fY2l1XIpgxIiUOfNpRBYH1kKcr+qfKgjRc=
github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
@@ -212,8 +216,8 @@ github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
github.com/skip2/go-qrcode v0.0.0-20190110000554-dc11ecdae0a9 h1:lpEzuenPuO1XNTeikEmvqYFcU37GVLl8SRNblzyvGBE= github.com/skip2/go-qrcode v0.0.0-20190110000554-dc11ecdae0a9 h1:lpEzuenPuO1XNTeikEmvqYFcU37GVLl8SRNblzyvGBE=
github.com/skip2/go-qrcode v0.0.0-20190110000554-dc11ecdae0a9/go.mod h1:PLPIyL7ikehBD1OAjmKKiOEhbvWyHGaNDjquXMcYABo= github.com/skip2/go-qrcode v0.0.0-20190110000554-dc11ecdae0a9/go.mod h1:PLPIyL7ikehBD1OAjmKKiOEhbvWyHGaNDjquXMcYABo=
github.com/slack-go/slack v0.6.3-0.20200228121756-f56d616d5901 h1:sXIMY2YPYEm5NoGMCrJC50N+8t9W6vbY9qr61zcLEAE= github.com/slack-go/slack v0.6.3 h1:qU037g8gQ71EuH6S9zYKnvYrEUj0fLFH4HFekFqBoRU=
github.com/slack-go/slack v0.6.3-0.20200228121756-f56d616d5901/go.mod h1:ZUNi+O1Pwr2ch2UOp2AfF+s7QYQgwht2Cd1UTeIYw9A= github.com/slack-go/slack v0.6.3/go.mod h1:HE4RwNe7YpOg/F0vqo5PwXH3Hki31TplTvKRW9dGGaw=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s=
@@ -251,6 +255,8 @@ github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7V
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
github.com/yaegashi/msgraph.go v0.1.2 h1:83uVRQaj8YBsVqOUGj0WRwzxdgGF69jRpg5IQYaTvoY=
github.com/yaegashi/msgraph.go v0.1.2/go.mod h1:Lp39e9oo596G5FcmMKI0cXR3mg/QikSdabgZdbMqbAM=
github.com/zfjagann/golang-ring v0.0.0-20190106091943-a88bb6aef447 h1:CHgPZh8bFkZmislPrr/0gd7MciDAX+JJB70A2/5Lvmo= github.com/zfjagann/golang-ring v0.0.0-20190106091943-a88bb6aef447 h1:CHgPZh8bFkZmislPrr/0gd7MciDAX+JJB70A2/5Lvmo=
github.com/zfjagann/golang-ring v0.0.0-20190106091943-a88bb6aef447/go.mod h1:0MsIttMJIF/8Y7x0XjonJP7K99t3sR6bjj4m5S4JmqU= github.com/zfjagann/golang-ring v0.0.0-20190106091943-a88bb6aef447/go.mod h1:0MsIttMJIF/8Y7x0XjonJP7K99t3sR6bjj4m5S4JmqU=
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
@@ -284,8 +290,8 @@ golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 h1:efeOvDhwQ29Dj3SdAV/MJf8oukgn+8D8WgaCaRMchF8= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 h1:efeOvDhwQ29Dj3SdAV/MJf8oukgn+8D8WgaCaRMchF8=
golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=

View File

@@ -15,7 +15,7 @@ import (
) )
var ( var (
version = "1.17.0" version = "1.17.2"
githash string githash string
flagConfig = flag.String("conf", "matterbridge.toml", "config file") flagConfig = flag.String("conf", "matterbridge.toml", "config file")

View File

@@ -545,6 +545,96 @@ Label=""
# REQUIRED # REQUIRED
Team="myteam" Team="myteam"
###################################################################
# Microsoft teams section
# See https://github.com/42wim/matterbridge/wiki/MS-Teams-setup
###################################################################
[msteams.myteam]
# TenantID
# See https://github.com/42wim/matterbridge/wiki/MS-Teams-setup#get-necessary-ids-for-matterbridge
TenantID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# ClientID
# See https://github.com/42wim/matterbridge/wiki/MS-Teams-setup#get-necessary-ids-for-matterbridge
ClientID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# TeamID
# See https://github.com/42wim/matterbridge/wiki/MS-Teams-setup#get-necessary-ids-for-matterbridge
TeamID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
## RELOADABLE SETTINGS
## Settings below can be reloaded by editing the file
#Nicks you want to ignore.
#Regular expressions supported
#Messages from those users will not be sent to other bridges.
#OPTIONAL
IgnoreNicks="ircspammer1 ircspammer2"
#Messages you want to ignore.
#Messages matching these regexp will be ignored and not sent to other bridges
#See https://regex-golang.appspot.com/assets/html/index.html for more regex info
#OPTIONAL (example below ignores messages starting with ~~ or messages containing badword
IgnoreMessages="^~~ badword"
#messages you want to replace.
#it replaces outgoing messages from the bridge.
#so you need to place it by the sending bridge definition.
#regular expressions supported
#some examples:
#this replaces cat => dog and sleep => awake
#replacemessages=[ ["cat","dog"], ["sleep","awake"] ]
#this replaces every number with number. 123 => numbernumbernumber
#replacemessages=[ ["[0-9]","number"] ]
#optional (default empty)
ReplaceMessages=[ ["cat","dog"] ]
#nicks you want to replace.
#see replacemessages for syntaxa
#optional (default empty)
ReplaceNicks=[ ["user--","user"] ]
#Extractnicks is used to for example rewrite messages from other relaybots
#See https://github.com/42wim/matterbridge/issues/713 and https://github.com/42wim/matterbridge/issues/466
#some examples:
#this replaces a message like "Relaybot: <relayeduser> something interesting" to "relayeduser: something interesting"
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ] ]
#you can use multiple entries for multiplebots
#this also replaces a message like "otherbot: (relayeduser) something else" to "relayeduser: something else"
#ExtractNicks=[ [ "Relaybot", "<(.*?)>\\s+" ],[ "otherbot","\\((.*?)\\)\\s+" ]
#OPTIONAL (default empty)
ExtractNicks=[ ["otherbot","<(.*?)>\\s+" ] ]
#extra label that can be used in the RemoteNickFormat
#optional (default empty)
Label=""
#RemoteNickFormat defines how remote users appear on this bridge
#See [general] config section for default options
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
#Enable to show users joins/parts from other bridges
#Currently works for messages from the following bridges: irc, mattermost, slack, discord
#OPTIONAL (default false)
ShowJoinPart=false
#StripNick only allows alphanumerical nicks. See https://github.com/42wim/matterbridge/issues/285
#It will strip other characters from the nick
#OPTIONAL (default false)
StripNick=false
#Enable to show topic changes from other bridges
#Only works hiding/show topic changes from slack bridge for now
#OPTIONAL (default false)
ShowTopicChange=false
#Opportunistically preserve threaded replies between bridges
#that support threading
#OPTIONAL (default false)
PreserveThreading=false
################################################################### ###################################################################
#slack section #slack section
################################################################### ###################################################################
@@ -1589,32 +1679,44 @@ enable=true
# REQUIRED # REQUIRED
account="irc.freenode" account="irc.freenode"
# channel to connect on that account # The channel key in each gateway is mapped to a similar group chat ID on the chat platform
# How to specify them for the different bridges: # To find the group chat ID for different platforms, refer to the table below
# #
# irc - #channel (# is required) (this needs to be lowercase!) # Platform | Identifier name | Example | Description
# mattermost - channel (the channel name as seen in the URL, not the displayname) # -------------------------------------------------------------------------------------------------------------------------------------
# gitter - username/room # | channel | general | Do not include the # symbol
# xmpp - channel # discord | channel id | ID:123456789 | See https://github.com/42wim/matterbridge/issues/57
# slack - channel (without the #) # | category/channel | Media/gaming | Without # symbol. If you're using discord categories to group your channels
# - ID:C123456 (where C123456 is the channel ID) does not work with webhook # -------------------------------------------------------------------------------------------------------------------------------------
# discord - channel (without the #) # gitter | username/room | general | As seen in the gitter.im URL
# - ID:123456789 (where 123456789 is the channel ID) # -------------------------------------------------------------------------------------------------------------------------------------
# (https://github.com/42wim/matterbridge/issues/57) # hipchat | id_channel | example needed | See https://www.hipchat.com/account/xmpp for the correct channel
# - category/channel (without the #) if you're using discord categories to group your channels # -------------------------------------------------------------------------------------------------------------------------------------
# telegram - chatid (a large negative number, eg -123456789) # irc | channel | #general | The # symbol is required and should be lowercase!
# see (https://www.linkedin.com/pulse/telegram-bots-beginners-marco-frau) # -------------------------------------------------------------------------------------------------------------------------------------
# hipchat - id_channel (see https://www.hipchat.com/account/xmpp for the correct channel) # mattermost | channel | general | This is the channel name as seen in the URL, not the display name
# rocketchat - #channel (# is required (also needed for private channels!) # -------------------------------------------------------------------------------------------------------------------------------------
# matrix - #channel:server (eg #yourchannel:matrix.org) # matrix | #channel:server | #yourchannel:matrix.org | Encrypted rooms are not supported in matrix
# - encrypted rooms are not supported in matrix # -------------------------------------------------------------------------------------------------------------------------------------
# steam - chatid (a large number). # msteams | threadId | 19:82abcxx@thread.skype | You'll find the threadId in the URL
# The number in the URL when you click "enter chat room" in the browser # -------------------------------------------------------------------------------------------------------------------------------------
# whatsapp - 48111222333-123455678999@g.us A unique group JID; # rocketchat | channel | #channel | # is required for private channels too
# if you specify an empty string bridge will list all the possibilities # -------------------------------------------------------------------------------------------------------------------------------------
# - "Group Name" if you specify a group name the bridge will hint its JID to specify # slack | channel name | general | Do not include the # symbol
# as group names might change in time and contain weird emoticons # | channel id | ID:C123456 | The underlying ID of a channel. This doesn't work with
# zulip - stream/topic:topicname (without the #) # -------------------------------------------------------------------------------------------------------------------------------------
# steam | chatid | example needed | The number in the URL when you click "enter chat room" in the browser
# -------------------------------------------------------------------------------------------------------------------------------------
# telegram | chatid | -123456789 | A large negative number. see https://www.linkedin.com/pulse/telegram-bots-beginners-marco-frau
# -------------------------------------------------------------------------------------------------------------------------------------
# whatsapp | group JID | 48111222333-123455678999@g.us | A unique group JID. If you specify an empty string, bridge will list all the possibilities
# | "Group Name" | "Family Chat" | if you specify a group name, the bridge will find hint the JID to specify. Names can change over time and are not stable.
# -------------------------------------------------------------------------------------------------------------------------------------
# xmpp | channel | general | The room name
# -------------------------------------------------------------------------------------------------------------------------------------
# zulip | stream/topic:topic | general/off-topic:food | Do not use the # when specifying a topic
# -------------------------------------------------------------------------------------------------------------------------------------
# #
# REQUIRED # REQUIRED
channel="#testing" channel="#testing"

File diff suppressed because it is too large Load Diff

View File

@@ -56,6 +56,8 @@ message Location {
} }
message Point { message Point {
optional int32 xDeprecated = 1;
optional int32 yDeprecated = 2;
optional double x = 3; optional double x = 3;
optional double y = 4; optional double y = 4;
} }
@@ -93,6 +95,7 @@ message ContextInfo {
optional AdReplyInfo quotedAd = 23; optional AdReplyInfo quotedAd = 23;
optional MessageKey placeholderKey = 24; optional MessageKey placeholderKey = 24;
optional uint32 expiration = 25; optional uint32 expiration = 25;
optional int64 ephemeralSettingTimestamp = 26;
} }
message SenderKeyDistributionMessage { message SenderKeyDistributionMessage {
@@ -136,6 +139,11 @@ message LocationMessage {
optional string name = 3; optional string name = 3;
optional string address = 4; optional string address = 4;
optional string url = 5; optional string url = 5;
optional bool isLive = 6;
optional uint32 accuracyInMeters = 7;
optional float speedInMps = 8;
optional uint32 degreesClockwiseFromMagneticNorth = 9;
optional string comment = 11;
optional bytes jpegThumbnail = 16; optional bytes jpegThumbnail = 16;
optional ContextInfo contextInfo = 17; optional ContextInfo contextInfo = 17;
} }
@@ -238,9 +246,29 @@ message ProtocolMessage {
enum PROTOCOL_MESSAGE_TYPE { enum PROTOCOL_MESSAGE_TYPE {
REVOKE = 0; REVOKE = 0;
EPHEMERAL_SETTING = 3; EPHEMERAL_SETTING = 3;
EPHEMERAL_SYNC_RESPONSE = 4;
HISTORY_SYNC_NOTIFICATION = 5;
} }
optional PROTOCOL_MESSAGE_TYPE type = 2; optional PROTOCOL_MESSAGE_TYPE type = 2;
optional uint32 ephemeralExpiration = 4; optional uint32 ephemeralExpiration = 4;
optional int64 ephemeralSettingTimestamp = 5;
optional HistorySyncNotification historySyncNotification = 6;
}
message HistorySyncNotification {
optional bytes fileSha256 = 1;
optional uint64 fileLength = 2;
optional bytes mediaKey = 3;
optional bytes fileEncSha256 = 4;
optional string directPath = 5;
enum HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE {
INITIAL_BOOTSTRAP = 0;
INITIAL_STATUS_V3 = 1;
FULL = 2;
RECENT = 3;
}
optional HISTORY_SYNC_NOTIFICATION_HISTORYSYNCTYPE syncType = 6;
optional uint32 chunkOrder = 7;
} }
message ContactsArrayMessage { message ContactsArrayMessage {
@@ -355,6 +383,8 @@ message StickerMessage {
optional int64 mediaKeyTimestamp = 10; optional int64 mediaKeyTimestamp = 10;
optional uint32 firstFrameLength = 11; optional uint32 firstFrameLength = 11;
optional bytes firstFrameSidecar = 12; optional bytes firstFrameSidecar = 12;
optional bool isAnimated = 13;
optional bytes pngThumbnail = 16;
optional ContextInfo contextInfo = 17; optional ContextInfo contextInfo = 17;
} }
@@ -401,6 +431,12 @@ message TemplateButtonReplyMessage {
optional uint32 selectedIndex = 4; optional uint32 selectedIndex = 4;
} }
message CatalogSnapshot {
optional ImageMessage catalogImage = 1;
optional string title = 2;
optional string description = 3;
}
message ProductSnapshot { message ProductSnapshot {
optional ImageMessage productImage = 1; optional ImageMessage productImage = 1;
optional string productId = 2; optional string productId = 2;
@@ -417,6 +453,7 @@ message ProductSnapshot {
message ProductMessage { message ProductMessage {
optional ProductSnapshot product = 1; optional ProductSnapshot product = 1;
optional string businessOwnerJid = 2; optional string businessOwnerJid = 2;
optional CatalogSnapshot catalog = 4;
optional ContextInfo contextInfo = 17; optional ContextInfo contextInfo = 17;
} }
@@ -513,6 +550,8 @@ message WebFeatures {
optional WEB_FEATURES_FLAG templateMessage = 30; optional WEB_FEATURES_FLAG templateMessage = 30;
optional WEB_FEATURES_FLAG templateMessageInteractivity = 31; optional WEB_FEATURES_FLAG templateMessageInteractivity = 31;
optional WEB_FEATURES_FLAG ephemeralMessages = 32; optional WEB_FEATURES_FLAG ephemeralMessages = 32;
optional WEB_FEATURES_FLAG e2ENotificationSync = 33;
optional WEB_FEATURES_FLAG recentStickersV2 = 34;
} }
message TabletNotificationsInfo { message TabletNotificationsInfo {
@@ -537,6 +576,11 @@ message WebNotificationsInfo {
} }
message PaymentInfo { message PaymentInfo {
enum PAYMENT_INFO_CURRENCY {
UNKNOWN_CURRENCY = 0;
INR = 1;
}
optional PAYMENT_INFO_CURRENCY currencyDeprecated = 1;
optional uint64 amount1000 = 2; optional uint64 amount1000 = 2;
optional string receiverJid = 3; optional string receiverJid = 3;
enum PAYMENT_INFO_STATUS { enum PAYMENT_INFO_STATUS {
@@ -559,6 +603,37 @@ message PaymentInfo {
optional uint64 expiryTimestamp = 7; optional uint64 expiryTimestamp = 7;
optional bool futureproofed = 8; optional bool futureproofed = 8;
optional string currency = 9; optional string currency = 9;
enum PAYMENT_INFO_TXNSTATUS {
UNKNOWN = 0;
PENDING_SETUP = 1;
PENDING_RECEIVER_SETUP = 2;
INIT = 3;
SUCCESS = 4;
COMPLETED = 5;
FAILED = 6;
FAILED_RISK = 7;
FAILED_PROCESSING = 8;
FAILED_RECEIVER_PROCESSING = 9;
FAILED_DA = 10;
FAILED_DA_FINAL = 11;
REFUNDED_TXN = 12;
REFUND_FAILED = 13;
REFUND_FAILED_PROCESSING = 14;
REFUND_FAILED_DA = 15;
EXPIRED_TXN = 16;
AUTH_CANCELED = 17;
AUTH_CANCEL_FAILED_PROCESSING = 18;
AUTH_CANCEL_FAILED = 19;
COLLECT_INIT = 20;
COLLECT_SUCCESS = 21;
COLLECT_FAILED = 22;
COLLECT_FAILED_RISK = 23;
COLLECT_REJECTED = 24;
COLLECT_EXPIRED = 25;
COLLECT_CANCELED = 26;
COLLECT_CANCELLING = 27;
}
optional PAYMENT_INFO_TXNSTATUS txnStatus = 10;
} }
message WebMessageInfo { message WebMessageInfo {
@@ -668,4 +743,5 @@ message WebMessageInfo {
optional PaymentInfo quotedPaymentInfo = 31; optional PaymentInfo quotedPaymentInfo = 31;
optional uint64 ephemeralStartTimestamp = 32; optional uint64 ephemeralStartTimestamp = 32;
optional uint32 ephemeralDuration = 33; optional uint32 ephemeralDuration = 33;
} }

View File

@@ -6,7 +6,7 @@ require (
github.com/Rhymen/go-whatsapp/examples/sendImage v0.0.0-20190325075644-cc2581bbf24d // indirect github.com/Rhymen/go-whatsapp/examples/sendImage v0.0.0-20190325075644-cc2581bbf24d // indirect
github.com/Rhymen/go-whatsapp/examples/sendTextMessages v0.0.0-20190325075644-cc2581bbf24d // indirect github.com/Rhymen/go-whatsapp/examples/sendTextMessages v0.0.0-20190325075644-cc2581bbf24d // indirect
github.com/golang/protobuf v1.3.0 github.com/golang/protobuf v1.3.0
github.com/gorilla/websocket v1.4.0 github.com/gorilla/websocket v1.4.1
github.com/pkg/errors v0.8.1 github.com/pkg/errors v0.8.1
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2
) )

View File

@@ -12,8 +12,9 @@ github.com/Rhymen/go-whatsapp/examples/sendTextMessages v0.0.0-20190325075644-cc
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk= github.com/golang/protobuf v1.3.0 h1:kbxbvI4Un1LUWKxufD+BiE6AEExYYgkQLQmLFqA1LFk=
github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0=
github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q=
github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM=
github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg= github.com/mattn/go-colorable v0.1.1 h1:G1f5SKeVxmagw/IyvzvtZE4Gybcc4Tr1tf7I8z0XgOg=
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw= github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw=

View File

@@ -10,10 +10,8 @@ import (
"fmt" "fmt"
"io" "io"
"io/ioutil" "io/ioutil"
"mime/multipart"
"net/http" "net/http"
"os" "net/url"
"strings"
"time" "time"
"github.com/Rhymen/go-whatsapp/crypto/cbc" "github.com/Rhymen/go-whatsapp/crypto/cbc"
@@ -95,7 +93,50 @@ func downloadMedia(url string) (file []byte, mac []byte, err error) {
return data[:n-10], data[n-10 : n], nil return data[:n-10], data[n-10 : n], nil
} }
func (wac *Conn) Upload(reader io.Reader, appInfo MediaType) (url string, mediaKey []byte, fileEncSha256 []byte, fileSha256 []byte, fileLength uint64, err error) { type MediaConn struct {
Status int `json:"status"`
MediaConn struct {
Auth string `json:"auth"`
TTL int `json:"ttl"`
Hosts []struct {
Hostname string `json:"hostname"`
IPs []string `json:"ips"`
} `json:"hosts"`
} `json:"media_conn"`
}
func (wac *Conn) queryMediaConn() (hostname, auth string, ttl int, err error) {
queryReq := []interface{}{"query", "mediaConn"}
ch, err := wac.writeJson(queryReq)
if err != nil {
return "", "", 0, err
}
var resp MediaConn
select {
case r := <-ch:
if err = json.Unmarshal([]byte(r), &resp); err != nil {
return "", "", 0, fmt.Errorf("error decoding query media conn response: %v", err)
}
case <-time.After(wac.msgTimeout):
return "", "", 0, fmt.Errorf("query media conn timed out")
}
if resp.Status != 200 {
return "", "", 0, fmt.Errorf("query media conn responded with %d", resp.Status)
}
return resp.MediaConn.Hosts[0].Hostname, resp.MediaConn.Auth, resp.MediaConn.TTL, nil
}
var mediaTypeMap = map[MediaType]string{
MediaImage: "/mms/image",
MediaVideo: "/mms/video",
MediaDocument: "/mms/document",
MediaAudio: "/mms/audio",
}
func (wac *Conn) Upload(reader io.Reader, appInfo MediaType) (downloadURL string, mediaKey []byte, fileEncSha256 []byte, fileSha256 []byte, fileLength uint64, err error) {
data, err := ioutil.ReadAll(reader) data, err := ioutil.ReadAll(reader)
if err != nil { if err != nil {
return "", nil, nil, nil, 0, err return "", nil, nil, nil, 0, err
@@ -128,67 +169,30 @@ func (wac *Conn) Upload(reader io.Reader, appInfo MediaType) (url string, mediaK
sha.Write(append(enc, mac...)) sha.Write(append(enc, mac...))
fileEncSha256 = sha.Sum(nil) fileEncSha256 = sha.Sum(nil)
var filetype string hostname, auth, _, err := wac.queryMediaConn()
switch appInfo { token := base64.URLEncoding.EncodeToString(fileEncSha256)
case MediaImage: q := url.Values{
filetype = "image" "auth": []string{auth},
case MediaAudio: "token": []string{token},
filetype = "audio" }
case MediaDocument: path := mediaTypeMap[appInfo]
filetype = "document" uploadURL := url.URL{
case MediaVideo: Scheme: "https",
filetype = "video" Host: hostname,
Path: fmt.Sprintf("%s/%s", path, token),
RawQuery: q.Encode(),
} }
uploadReq := []interface{}{"action", "encr_upload", filetype, base64.StdEncoding.EncodeToString(fileEncSha256)} body := bytes.NewReader(append(enc, mac...))
ch, err := wac.writeJson(uploadReq)
req, err := http.NewRequest("POST", uploadURL.String(), body)
if err != nil { if err != nil {
return "", nil, nil, nil, 0, err return "", nil, nil, nil, 0, err
} }
var resp map[string]interface{}
select {
case r := <-ch:
if err = json.Unmarshal([]byte(r), &resp); err != nil {
return "", nil, nil, nil, 0, fmt.Errorf("error decoding upload response: %v", err)
}
case <-time.After(wac.msgTimeout):
return "", nil, nil, nil, 0, fmt.Errorf("restore session init timed out")
}
if int(resp["status"].(float64)) != 200 {
return "", nil, nil, nil, 0, fmt.Errorf("upload responsed with %d", resp["status"])
}
var b bytes.Buffer
w := multipart.NewWriter(&b)
hashWriter, err := w.CreateFormField("hash")
if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err)
}
io.Copy(hashWriter, strings.NewReader(base64.StdEncoding.EncodeToString(fileEncSha256)))
fileWriter, err := w.CreateFormFile("file", "blob")
if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err)
}
io.Copy(fileWriter, bytes.NewReader(append(enc, mac...)))
err = w.Close()
if err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err)
}
req, err := http.NewRequest("POST", resp["url"].(string), &b)
if err != nil {
return "", nil, nil, nil, 0, err
}
req.Header.Set("Content-Type", w.FormDataContentType())
req.Header.Set("Origin", "https://web.whatsapp.com") req.Header.Set("Origin", "https://web.whatsapp.com")
req.Header.Set("Referer", "https://web.whatsapp.com/") req.Header.Set("Referer", "https://web.whatsapp.com/")
req.URL.Query().Set("f", "j")
client := &http.Client{} client := &http.Client{}
// Submit the request // Submit the request
res, err := client.Do(req) res, err := client.Do(req)

View File

@@ -15,7 +15,10 @@ import (
) )
func (wac *Conn) readPump() { func (wac *Conn) readPump() {
defer wac.wg.Done() defer func() {
wac.wg.Done()
_, _ = wac.Disconnect()
}()
var readErr error var readErr error
var msgType int var msgType int
@@ -31,7 +34,6 @@ func (wac *Conn) readPump() {
case <-readerFound: case <-readerFound:
if readErr != nil { if readErr != nil {
wac.handle(&ErrConnectionFailed{Err: readErr}) wac.handle(&ErrConnectionFailed{Err: readErr})
_, _ = wac.Disconnect()
return return
} }
msg, err := ioutil.ReadAll(reader) msg, err := ioutil.ReadAll(reader)

View File

@@ -18,7 +18,7 @@ import (
) )
//represents the WhatsAppWeb client version //represents the WhatsAppWeb client version
var waVersion = []int{0, 3, 3324} var waVersion = []int{0, 4, 2080}
/* /*
Session contains session individual information. To be able to resume the connection without scanning the qr code Session contains session individual information. To be able to resume the connection without scanning the qr code
@@ -110,7 +110,7 @@ func CheckCurrentServerVersion() ([]int, error) {
login := []interface{}{"admin", "init", waVersion, []string{wac.longClientName, wac.shortClientName}, b64ClientId, true} login := []interface{}{"admin", "init", waVersion, []string{wac.longClientName, wac.shortClientName}, b64ClientId, true}
loginChan, err := wac.writeJson(login) loginChan, err := wac.writeJson(login)
if err != nil { if err != nil {
return nil, fmt.Errorf("error writing login", err) return nil, fmt.Errorf("error writing login: %s", err.Error())
} }
// Retrieve an answer from the websocket // Retrieve an answer from the websocket
@@ -123,7 +123,7 @@ func CheckCurrentServerVersion() ([]int, error) {
var resp map[string]interface{} var resp map[string]interface{}
if err = json.Unmarshal([]byte(r), &resp); err != nil { if err = json.Unmarshal([]byte(r), &resp); err != nil {
return nil, fmt.Errorf("error decoding login", err) return nil, fmt.Errorf("error decoding login: %s", err.Error())
} }
// Take the curr property as X.Y.Z and split it into as int slice // Take the curr property as X.Y.Z and split it into as int slice
@@ -151,7 +151,7 @@ func (wac *Conn) SetClientName(long, short string) error {
/* /*
SetClientVersion sets WhatsApp client version SetClientVersion sets WhatsApp client version
Default value is 0.3.3324 Default value is 0.4.2080
*/ */
func (wac *Conn) SetClientVersion(major int, minor int, patch int) { func (wac *Conn) SetClientVersion(major int, minor int, patch int) {
waVersion = []int{major, minor, patch} waVersion = []int{major, minor, patch}

View File

@@ -11,9 +11,10 @@ builds:
- darwin - darwin
- linux - linux
- windows - windows
archive: archives:
files: -
- none* files:
- none*
checksum: checksum:
name_template: 'checksums.txt' name_template: 'checksums.txt'
changelog: changelog:

View File

@@ -7,7 +7,6 @@
[![GoDoc](https://godoc.org/github.com/d5/tengo?status.svg)](https://godoc.org/github.com/d5/tengo) [![GoDoc](https://godoc.org/github.com/d5/tengo?status.svg)](https://godoc.org/github.com/d5/tengo)
[![Go Report Card](https://goreportcard.com/badge/github.com/d5/tengo)](https://goreportcard.com/report/github.com/d5/tengo) [![Go Report Card](https://goreportcard.com/badge/github.com/d5/tengo)](https://goreportcard.com/report/github.com/d5/tengo)
[![CircleCI](https://circleci.com/gh/d5/tengo.svg?style=svg)](https://circleci.com/gh/d5/tengo) [![CircleCI](https://circleci.com/gh/d5/tengo.svg?style=svg)](https://circleci.com/gh/d5/tengo)
[![Sourcegraph](https://sourcegraph.com/github.com/d5/tengo/-/badge.svg)](https://sourcegraph.com/github.com/d5/tengo?badge)
**Tengo is a small, dynamic, fast, secure script language for Go.** **Tengo is a small, dynamic, fast, secure script language for Go.**
@@ -75,6 +74,10 @@ _* See [here](https://github.com/d5/tengobench) for commands/codes used_
## Quick Start ## Quick Start
```
go get github.com/d5/tengo/v2
```
A simple Go example code that compiles/runs Tengo script code with some input/output values: A simple Go example code that compiles/runs Tengo script code with some input/output values:
```golang ```golang

View File

@@ -13,6 +13,14 @@ var builtinFuncs = []*BuiltinFunction{
Name: "append", Name: "append",
Value: builtinAppend, Value: builtinAppend,
}, },
{
Name: "delete",
Value: builtinDelete,
},
{
Name: "splice",
Value: builtinSplice,
},
{ {
Name: "string", Name: "string",
Value: builtinString, Value: builtinString,
@@ -500,3 +508,104 @@ func builtinAppend(args ...Object) (Object, error) {
} }
} }
} }
// builtinDelete deletes Map keys
// usage: delete(map, "key")
// key must be a string
func builtinDelete(args ...Object) (Object, error) {
argsLen := len(args)
if argsLen != 2 {
return nil, ErrWrongNumArguments
}
switch arg := args[0].(type) {
case *Map:
if key, ok := args[1].(*String); ok {
delete(arg.Value, key.Value)
return UndefinedValue, nil
}
return nil, ErrInvalidArgumentType{
Name: "second",
Expected: "string",
Found: args[1].TypeName(),
}
default:
return nil, ErrInvalidArgumentType{
Name: "first",
Expected: "map",
Found: arg.TypeName(),
}
}
}
// builtinSplice deletes and changes given Array, returns deleted items.
// usage:
// deleted_items := splice(array[,start[,delete_count[,item1[,item2[,...]]]])
func builtinSplice(args ...Object) (Object, error) {
argsLen := len(args)
if argsLen == 0 {
return nil, ErrWrongNumArguments
}
array, ok := args[0].(*Array)
if !ok {
return nil, ErrInvalidArgumentType{
Name: "first",
Expected: "array",
Found: args[0].TypeName(),
}
}
arrayLen := len(array.Value)
var startIdx int
if argsLen > 1 {
arg1, ok := args[1].(*Int)
if !ok {
return nil, ErrInvalidArgumentType{
Name: "second",
Expected: "int",
Found: args[1].TypeName(),
}
}
startIdx = int(arg1.Value)
if startIdx < 0 || startIdx > arrayLen {
return nil, ErrIndexOutOfBounds
}
}
delCount := len(array.Value)
if argsLen > 2 {
arg2, ok := args[2].(*Int)
if !ok {
return nil, ErrInvalidArgumentType{
Name: "third",
Expected: "int",
Found: args[2].TypeName(),
}
}
delCount = int(arg2.Value)
if delCount < 0 {
return nil, ErrIndexOutOfBounds
}
}
// if count of to be deleted items is bigger than expected, truncate it
if startIdx+delCount > arrayLen {
delCount = arrayLen - startIdx
}
// delete items
endIdx := startIdx + delCount
deleted := append([]Object{}, array.Value[startIdx:endIdx]...)
head := array.Value[:startIdx]
var items []Object
if argsLen > 3 {
items = make([]Object, 0, argsLen-3)
for i := 3; i < argsLen; i++ {
items = append(items, args[i])
}
}
items = append(items, array.Value[endIdx:]...)
array.Value = append(head, items...)
// return deleted items
return &Array{Value: deleted}, nil
}

View File

@@ -80,14 +80,14 @@ func (v *VM) Run() (err error) {
if err != nil { if err != nil {
filePos := v.fileSet.Position( filePos := v.fileSet.Position(
v.curFrame.fn.SourcePos(v.ip - 1)) v.curFrame.fn.SourcePos(v.ip - 1))
err = fmt.Errorf("Runtime Error: %s\n\tat %s", err = fmt.Errorf("Runtime Error: %w\n\tat %s",
err.Error(), filePos) err, filePos)
for v.framesIndex > 1 { for v.framesIndex > 1 {
v.framesIndex-- v.framesIndex--
v.curFrame = &v.frames[v.framesIndex-1] v.curFrame = &v.frames[v.framesIndex-1]
filePos = v.fileSet.Position( filePos = v.fileSet.Position(
v.curFrame.fn.SourcePos(v.curFrame.ip - 1)) v.curFrame.fn.SourcePos(v.curFrame.ip - 1))
err = fmt.Errorf("%s\n\tat %s", err.Error(), filePos) err = fmt.Errorf("%w\n\tat %s", err, filePos)
} }
return err return err
} }

View File

@@ -1,4 +1,4 @@
// Copyright 2011 The Go Authors. All rights reserved. // Copyright 2011 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style // Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file. // license that can be found in the LICENSE file.
@@ -45,6 +45,9 @@ const (
// Default TLS configuration options // Default TLS configuration options
var DefaultConfig tls.Config var DefaultConfig tls.Config
// DebugWriter is the writer used to write debugging output to.
var DebugWriter io.Writer = os.Stderr
// Cookie is a unique XMPP session identifier // Cookie is a unique XMPP session identifier
type Cookie uint64 type Cookie uint64
@@ -191,21 +194,40 @@ type Options struct {
// Status message // Status message
StatusMessage string StatusMessage string
// Logger
Logger io.Writer
} }
// NewClient establishes a new Client connection based on a set of Options. // NewClient establishes a new Client connection based on a set of Options.
func (o Options) NewClient() (*Client, error) { func (o Options) NewClient() (*Client, error) {
host := o.Host host := o.Host
if strings.TrimSpace(host) == "" {
a := strings.SplitN(o.User, "@", 2)
if len(a) == 2 {
if _, addrs, err := net.LookupSRV("xmpp-client", "tcp", a[1]); err == nil {
if len(addrs) > 0 {
// default to first record
host = fmt.Sprintf("%s:%d", addrs[0].Target, addrs[0].Port)
defP := addrs[0].Priority
for _, adr := range addrs {
if adr.Priority < defP {
host = fmt.Sprintf("%s:%d", adr.Target, adr.Port)
defP = adr.Priority
}
}
} else {
host = a[1]
}
} else {
host = a[1]
}
}
}
c, err := connect(host, o.User, o.Password) c, err := connect(host, o.User, o.Password)
if err != nil { if err != nil {
return nil, err return nil, err
} }
if strings.LastIndex(o.Host, ":") > 0 { if strings.LastIndex(host, ":") > 0 {
host = host[:strings.LastIndex(o.Host, ":")] host = host[:strings.LastIndex(host, ":")]
} }
client := new(Client) client := new(Client)
@@ -487,6 +509,8 @@ func (c *Client) startTLSIfRequired(f *streamFeatures, o *Options, domain string
case f.StartTLS == nil: case f.StartTLS == nil:
// the server does not support STARTTLS // the server does not support STARTTLS
return f, nil return f, nil
case !o.StartTLS && f.StartTLS.Required == nil:
return f, nil
case f.StartTLS.Required != nil: case f.StartTLS.Required != nil:
// the server requires STARTTLS. // the server requires STARTTLS.
case !o.StartTLS: case !o.StartTLS:
@@ -527,7 +551,7 @@ func (c *Client) startTLSIfRequired(f *streamFeatures, o *Options, domain string
// will be returned. // will be returned.
func (c *Client) startStream(o *Options, domain string) (*streamFeatures, error) { func (c *Client) startStream(o *Options, domain string) (*streamFeatures, error) {
if o.Debug { if o.Debug {
c.p = xml.NewDecoder(tee{c.conn, o.Logger}) c.p = xml.NewDecoder(tee{c.conn, DebugWriter})
} else { } else {
c.p = xml.NewDecoder(c.conn) c.p = xml.NewDecoder(c.conn)
} }
@@ -618,6 +642,24 @@ func (c *Client) Recv() (stanza interface{}, err error) {
} }
switch v := val.(type) { switch v := val.(type) {
case *clientMessage: case *clientMessage:
if v.Event.XMLNS == XMPPNS_PUBSUB_EVENT {
// Handle Pubsub notifications
switch v.Event.Items.Node {
case XMPPNS_AVATAR_PEP_METADATA:
return handleAvatarMetadata(v.Event.Items.Items[0].Body,
v.From)
// I am not sure whether this can even happen.
// XEP-0084 only specifies a subscription to
// the metadata node.
/*case XMPPNS_AVATAR_PEP_DATA:
return handleAvatarData(v.Event.Items.Items[0].Body,
v.From,
v.Event.Items.Items[0].ID)*/
default:
return pubsubClientToReturn(v.Event), nil
}
}
stamp, _ := time.Parse( stamp, _ := time.Parse(
"2006-01-02T15:04:05Z", "2006-01-02T15:04:05Z",
v.Delay.Stamp, v.Delay.Stamp,
@@ -644,25 +686,132 @@ func (c *Client) Recv() (stanza interface{}, err error) {
case *clientPresence: case *clientPresence:
return Presence{v.From, v.To, v.Type, v.Show, v.Status}, nil return Presence{v.From, v.To, v.Type, v.Show, v.Status}, nil
case *clientIQ: case *clientIQ:
// TODO check more strictly switch {
if bytes.Equal(bytes.TrimSpace(v.Query), []byte(`<ping xmlns='urn:xmpp:ping'/>`)) || bytes.Equal(bytes.TrimSpace(v.Query), []byte(`<ping xmlns="urn:xmpp:ping"/>`)) { case v.Query.XMLName.Space == "urn:xmpp:ping":
// TODO check more strictly
err := c.SendResultPing(v.ID, v.From) err := c.SendResultPing(v.ID, v.From)
if err != nil { if err != nil {
return Chat{}, err return Chat{}, err
} }
fallthrough
case v.Type == "error":
switch v.ID {
case "sub1":
// Pubsub subscription failed
var errs []clientPubsubError
err := xml.Unmarshal([]byte(v.Error.InnerXML), &errs)
if err != nil {
return PubsubSubscription{}, err
}
var errsStr []string
for _, e := range errs {
errsStr = append(errsStr, e.XMLName.Local)
}
return PubsubSubscription{
Errors: errsStr,
}, nil
}
case v.Type == "result" && v.ID == "unsub1":
// Unsubscribing MAY contain a pubsub element. But it does
// not have to
return PubsubUnsubscription{
SubID: "",
JID: v.From,
Node: "",
Errors: nil,
}, nil
case v.Query.XMLName.Local == "pubsub":
switch v.ID {
case "sub1":
// Subscription or unsubscription was successful
var sub clientPubsubSubscription
err := xml.Unmarshal([]byte(v.Query.InnerXML), &sub)
if err != nil {
return PubsubSubscription{}, err
}
return PubsubSubscription{
SubID: sub.SubID,
JID: sub.JID,
Node: sub.Node,
Errors: nil,
}, nil
case "unsub1":
var sub clientPubsubSubscription
err := xml.Unmarshal([]byte(v.Query.InnerXML), &sub)
if err != nil {
return PubsubUnsubscription{}, err
}
return PubsubUnsubscription{
SubID: sub.SubID,
JID: v.From,
Node: sub.Node,
Errors: nil,
}, nil
case "items1", "items3":
var p clientPubsubItems
err := xml.Unmarshal([]byte(v.Query.InnerXML), &p)
if err != nil {
return PubsubItems{}, err
}
switch p.Node {
case XMPPNS_AVATAR_PEP_DATA:
return handleAvatarData(p.Items[0].Body,
v.From,
p.Items[0].ID)
case XMPPNS_AVATAR_PEP_METADATA:
return handleAvatarMetadata(p.Items[0].Body,
v.From)
default:
return PubsubItems{
p.Node,
pubsubItemsToReturn(p.Items),
}, nil
}
// Note: XEP-0084 states that metadata and data
// should be fetched with an id of retrieve1.
// Since we already have PubSub implemented, we
// can just use items1 and items3 to do the same
// as an Avatar node is just a PEP (PubSub) node.
/*case "retrieve1":
var p clientPubsubItems
err := xml.Unmarshal([]byte(v.Query.InnerXML), &p)
if err != nil {
return PubsubItems{}, err
}
switch p.Node {
case XMPPNS_AVATAR_PEP_DATA:
return handleAvatarData(p.Items[0].Body,
v.From,
p.Items[0].ID)
case XMPPNS_AVATAR_PEP_METADATA:
return handleAvatarMetadata(p.Items[0].Body,
v
}*/
}
case v.Query.XMLName.Local == "":
return IQ{ID: v.ID, From: v.From, To: v.To, Type: v.Type}, nil
default:
res, err := xml.Marshal(v.Query)
if err != nil {
return Chat{}, err
}
return IQ{ID: v.ID, From: v.From, To: v.To, Type: v.Type,
Query: res}, nil
} }
return IQ{ID: v.ID, From: v.From, To: v.To, Type: v.Type, Query: v.Query}, nil
} }
} }
} }
// Send sends the message wrapped inside an XMPP message stanza body. // Send sends the message wrapped inside an XMPP message stanza body.
func (c *Client) Send(chat Chat) (n int, err error) { func (c *Client) Send(chat Chat) (n int, err error) {
var subtext = `` var subtext, thdtext, oobtext, msgidtext, msgcorrecttext string
var thdtext = ``
var oobtext = ``
var msgidtext = ``
var msgcorrecttext = ``
if chat.Subject != `` { if chat.Subject != `` {
subtext = `<subject>` + xmlEscape(chat.Subject) + `</subject>` subtext = `<subject>` + xmlEscape(chat.Subject) + `</subject>`
} }
@@ -676,20 +825,25 @@ func (c *Client) Send(chat Chat) (n int, err error) {
} }
oobtext += `</x>` oobtext += `</x>`
} }
if chat.ID != `` { if chat.ID != `` {
msgidtext = `id='` + xmlEscape(chat.ID) + `'` msgidtext = `id='` + xmlEscape(chat.ID) + `'`
} else {
msgidtext = `id='` + cnonce() + `'`
} }
if chat.ReplaceID != `` { if chat.ReplaceID != `` {
msgcorrecttext = `<replace id='` + xmlEscape(chat.ReplaceID) + `' xmlns='urn:xmpp:message-correct:0'/>` msgcorrecttext = `<replace id='` + xmlEscape(chat.ReplaceID) + `' xmlns='urn:xmpp:message-correct:0'/>`
} }
return fmt.Fprintf(c.conn, "<message to='%s' type='%s' " + msgidtext + " xml:lang='en'>" + subtext + "<body>%s</body>" + msgcorrecttext + oobtext + thdtext + "</message>",
xmlEscape(chat.Remote), xmlEscape(chat.Type), xmlEscape(chat.Text)) stanza := "<message to='%s' type='%s' " + msgidtext + " xml:lang='en'>" + subtext + "<body>%s</body>" + msgcorrecttext + oobtext + thdtext + "</message>"
return fmt.Fprintf(c.conn, stanza, xmlEscape(chat.Remote), xmlEscape(chat.Type), xmlEscape(chat.Text))
} }
// SendOOB sends OOB data wrapped inside an XMPP message stanza, without actual body. // SendOOB sends OOB data wrapped inside an XMPP message stanza, without actual body.
func (c *Client) SendOOB(chat Chat) (n int, err error) { func (c *Client) SendOOB(chat Chat) (n int, err error) {
var thdtext = `` var thdtext, oobtext string
var oobtext = ``
if chat.Thread != `` { if chat.Thread != `` {
thdtext = `<thread>` + xmlEscape(chat.Thread) + `</thread>` thdtext = `<thread>` + xmlEscape(chat.Thread) + `</thread>`
} }
@@ -700,8 +854,8 @@ func (c *Client) SendOOB(chat Chat) (n int, err error) {
} }
oobtext += `</x>` oobtext += `</x>`
} }
return fmt.Fprintf(c.conn, "<message to='%s' type='%s' xml:lang='en'>" + oobtext + thdtext + "</message>", return fmt.Fprintf(c.conn, "<message to='%s' type='%s' id='%s' xml:lang='en'>"+oobtext+thdtext+"</message>",
xmlEscape(chat.Remote), xmlEscape(chat.Type)) xmlEscape(chat.Remote), xmlEscape(chat.Type), cnonce())
} }
// SendOrg sends the original text without being wrapped in an XMPP message stanza. // SendOrg sends the original text without being wrapped in an XMPP message stanza.
@@ -800,8 +954,8 @@ type bindBind struct {
} }
type clientMessageCorrect struct { type clientMessageCorrect struct {
XMLName xml.Name `xml:"urn:xmpp:message-correct:0 replace"` XMLName xml.Name `xml:"urn:xmpp:message-correct:0 replace"`
ID string `xml:"id,attr"` ID string `xml:"id,attr"`
} }
// RFC 3921 B.1 jabber:client // RFC 3921 B.1 jabber:client
@@ -813,11 +967,14 @@ type clientMessage struct {
Type string `xml:"type,attr"` // chat, error, groupchat, headline, or normal Type string `xml:"type,attr"` // chat, error, groupchat, headline, or normal
// These should technically be []clientText, but string is much more convenient. // These should technically be []clientText, but string is much more convenient.
Subject string `xml:"subject"` Subject string `xml:"subject"`
Body string `xml:"body"` Body string `xml:"body"`
Thread string `xml:"thread"` Thread string `xml:"thread"`
ReplaceID clientMessageCorrect ReplaceID clientMessageCorrect
// Pubsub
Event clientPubsubEvent `xml:"event"`
// Any hasn't matched element // Any hasn't matched element
Other []XMLElement `xml:",any"` Other []XMLElement `xml:",any"`
@@ -882,23 +1039,25 @@ type clientPresence struct {
Error *clientError Error *clientError
} }
type clientIQ struct { // info/query type clientIQ struct {
XMLName xml.Name `xml:"jabber:client iq"` // info/query
From string `xml:"from,attr"` XMLName xml.Name `xml:"jabber:client iq"`
ID string `xml:"id,attr"` From string `xml:"from,attr"`
To string `xml:"to,attr"` ID string `xml:"id,attr"`
Type string `xml:"type,attr"` // error, get, result, set To string `xml:"to,attr"`
Query []byte `xml:",innerxml"` Type string `xml:"type,attr"` // error, get, result, set
Query XMLElement `xml:",any"`
Error clientError Error clientError
Bind bindBind Bind bindBind
} }
type clientError struct { type clientError struct {
XMLName xml.Name `xml:"jabber:client error"` XMLName xml.Name `xml:"jabber:client error"`
Code string `xml:",attr"` Code string `xml:",attr"`
Type string `xml:",attr"` Type string `xml:"type,attr"`
Any xml.Name Any xml.Name
Text string InnerXML []byte `xml:",innerxml"`
Text string
} }
type clientQuery struct { type clientQuery struct {

125
vendor/github.com/matterbridge/go-xmpp/xmpp_avatar.go generated vendored Normal file
View File

@@ -0,0 +1,125 @@
package xmpp
import (
"crypto/sha1"
"encoding/base64"
"encoding/hex"
"encoding/xml"
"errors"
"strconv"
)
const (
XMPPNS_AVATAR_PEP_DATA = "urn:xmpp:avatar:data"
XMPPNS_AVATAR_PEP_METADATA = "urn:xmpp:avatar:metadata"
)
type clientAvatarData struct {
XMLName xml.Name `xml:"data"`
Data []byte `xml:",innerxml"`
}
type clientAvatarInfo struct {
XMLName xml.Name `xml:"info"`
Bytes string `xml:"bytes,attr"`
Width string `xml:"width,attr"`
Height string `xml:"height,attr"`
ID string `xml:"id,attr"`
Type string `xml:"type,attr"`
URL string `xml:"url,attr"`
}
type clientAvatarMetadata struct {
XMLName xml.Name `xml:"metadata"`
XMLNS string `xml:"xmlns,attr"`
Info clientAvatarInfo `xml:"info"`
}
type AvatarData struct {
Data []byte
From string
}
type AvatarMetadata struct {
From string
Bytes int
Width int
Height int
ID string
Type string
URL string
}
func handleAvatarData(itemsBody []byte, from, id string) (AvatarData, error) {
var data clientAvatarData
err := xml.Unmarshal(itemsBody, &data)
if err != nil {
return AvatarData{}, err
}
// Base64-decode the avatar data to check its SHA1 hash
dataRaw, err := base64.StdEncoding.DecodeString(
string(data.Data))
if err != nil {
return AvatarData{}, err
}
hash := sha1.Sum(dataRaw)
hashStr := hex.EncodeToString(hash[:])
if hashStr != id {
return AvatarData{}, errors.New("SHA1 hashes do not match")
}
return AvatarData{
Data: dataRaw,
From: from,
}, nil
}
func handleAvatarMetadata(body []byte, from string) (AvatarMetadata, error) {
var meta clientAvatarMetadata
err := xml.Unmarshal(body, &meta)
if err != nil {
return AvatarMetadata{}, err
}
return AvatarMetadata{
From: from,
Bytes: atoiw(meta.Info.Bytes),
Width: atoiw(meta.Info.Width),
Height: atoiw(meta.Info.Height),
ID: meta.Info.ID,
Type: meta.Info.Type,
URL: meta.Info.URL,
}, nil
}
// A wrapper for atoi which just returns -1 if an error occurs
func atoiw(str string) int {
i, err := strconv.Atoi(str)
if err != nil {
return -1
}
return i
}
func (c *Client) AvatarSubscribeMetadata(jid string) {
c.PubsubSubscribeNode(XMPPNS_AVATAR_PEP_METADATA, jid)
}
func (c *Client) AvatarUnsubscribeMetadata(jid string) {
c.PubsubUnsubscribeNode(XMPPNS_AVATAR_PEP_METADATA, jid)
}
func (c *Client) AvatarRequestData(jid string) {
c.PubsubRequestLastItems(XMPPNS_AVATAR_PEP_DATA, jid)
}
func (c *Client) AvatarRequestDataByID(jid, id string) {
c.PubsubRequestItem(XMPPNS_AVATAR_PEP_DATA, jid, id)
}
func (c *Client) AvatarRequestMetadata(jid string) {
c.PubsubRequestLastItems(XMPPNS_AVATAR_PEP_METADATA, jid)
}

View File

@@ -8,19 +8,19 @@
package xmpp package xmpp
import ( import (
"errors"
"fmt" "fmt"
"time" "time"
"errors"
) )
const ( const (
nsMUC = "http://jabber.org/protocol/muc" nsMUC = "http://jabber.org/protocol/muc"
nsMUCUser = "http://jabber.org/protocol/muc#user" nsMUCUser = "http://jabber.org/protocol/muc#user"
NoHistory = 0 NoHistory = 0
CharHistory = 1 CharHistory = 1
StanzaHistory = 2 StanzaHistory = 2
SecondsHistory = 3 SecondsHistory = 3
SinceHistory = 4 SinceHistory = 4
) )
// Send sends room topic wrapped inside an XMPP message stanza body. // Send sends room topic wrapped inside an XMPP message stanza body.
@@ -47,35 +47,35 @@ func (c *Client) JoinMUC(jid, nick string, history_type, history int, history_da
} }
switch history_type { switch history_type {
case NoHistory: case NoHistory:
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n" + return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n"+
"<x xmlns='%s' />\n" + "<x xmlns='%s' />\n"+
"</presence>", "</presence>",
xmlEscape(jid), xmlEscape(nick), nsMUC) xmlEscape(jid), xmlEscape(nick), nsMUC)
case CharHistory: case CharHistory:
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n" + return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n"+
"<x xmlns='%s'>\n" + "<x xmlns='%s'>\n"+
"<history maxchars='%d'/></x>\n"+ "<history maxchars='%d'/></x>\n"+
"</presence>", "</presence>",
xmlEscape(jid), xmlEscape(nick), nsMUC, history) xmlEscape(jid), xmlEscape(nick), nsMUC, history)
case StanzaHistory: case StanzaHistory:
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n" + return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n"+
"<x xmlns='%s'>\n" + "<x xmlns='%s'>\n"+
"<history maxstanzas='%d'/></x>\n"+ "<history maxstanzas='%d'/></x>\n"+
"</presence>", "</presence>",
xmlEscape(jid), xmlEscape(nick), nsMUC, history) xmlEscape(jid), xmlEscape(nick), nsMUC, history)
case SecondsHistory: case SecondsHistory:
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n" + return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n"+
"<x xmlns='%s'>\n" + "<x xmlns='%s'>\n"+
"<history seconds='%d'/></x>\n"+ "<history seconds='%d'/></x>\n"+
"</presence>", "</presence>",
xmlEscape(jid), xmlEscape(nick), nsMUC, history) xmlEscape(jid), xmlEscape(nick), nsMUC, history)
case SinceHistory: case SinceHistory:
if history_date != nil { if history_date != nil {
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n" + return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n"+
"<x xmlns='%s'>\n" + "<x xmlns='%s'>\n"+
"<history since='%s'/></x>\n" + "<history since='%s'/></x>\n"+
"</presence>", "</presence>",
xmlEscape(jid), xmlEscape(nick), nsMUC, history_date.Format(time.RFC3339)) xmlEscape(jid), xmlEscape(nick), nsMUC, history_date.Format(time.RFC3339))
} }
} }
return 0, errors.New("Unknown history option") return 0, errors.New("Unknown history option")
@@ -88,41 +88,41 @@ func (c *Client) JoinProtectedMUC(jid, nick string, password string, history_typ
} }
switch history_type { switch history_type {
case NoHistory: case NoHistory:
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n" + return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n"+
"<x xmlns='%s'>\n" + "<x xmlns='%s'>\n"+
"<password>%s</password>" + "<password>%s</password>"+
"</x>\n" + "</x>\n"+
"</presence>", "</presence>",
xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password)) xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password))
case CharHistory: case CharHistory:
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n" + return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n"+
"<x xmlns='%s'>\n" + "<x xmlns='%s'>\n"+
"<password>%s</password>\n"+ "<password>%s</password>\n"+
"<history maxchars='%d'/></x>\n"+ "<history maxchars='%d'/></x>\n"+
"</presence>", "</presence>",
xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password), history) xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password), history)
case StanzaHistory: case StanzaHistory:
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n" + return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n"+
"<x xmlns='%s'>\n" + "<x xmlns='%s'>\n"+
"<password>%s</password>\n"+ "<password>%s</password>\n"+
"<history maxstanzas='%d'/></x>\n"+ "<history maxstanzas='%d'/></x>\n"+
"</presence>", "</presence>",
xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password), history) xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password), history)
case SecondsHistory: case SecondsHistory:
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n" + return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n"+
"<x xmlns='%s'>\n" + "<x xmlns='%s'>\n"+
"<password>%s</password>\n"+ "<password>%s</password>\n"+
"<history seconds='%d'/></x>\n"+ "<history seconds='%d'/></x>\n"+
"</presence>", "</presence>",
xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password), history) xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password), history)
case SinceHistory: case SinceHistory:
if history_date != nil { if history_date != nil {
return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n" + return fmt.Fprintf(c.conn, "<presence to='%s/%s'>\n"+
"<x xmlns='%s'>\n" + "<x xmlns='%s'>\n"+
"<password>%s</password>\n"+ "<password>%s</password>\n"+
"<history since='%s'/></x>\n" + "<history since='%s'/></x>\n"+
"</presence>", "</presence>",
xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password), history_date.Format(time.RFC3339)) xmlEscape(jid), xmlEscape(nick), nsMUC, xmlEscape(password), history_date.Format(time.RFC3339))
} }
} }
return 0, errors.New("Unknown history option") return 0, errors.New("Unknown history option")

133
vendor/github.com/matterbridge/go-xmpp/xmpp_pubsub.go generated vendored Normal file
View File

@@ -0,0 +1,133 @@
package xmpp
import (
"encoding/xml"
"fmt"
)
const (
XMPPNS_PUBSUB = "http://jabber.org/protocol/pubsub"
XMPPNS_PUBSUB_EVENT = "http://jabber.org/protocol/pubsub#event"
)
type clientPubsubItem struct {
XMLName xml.Name `xml:"item"`
ID string `xml:"id,attr"`
Body []byte `xml:",innerxml"`
}
type clientPubsubItems struct {
XMLName xml.Name `xml:"items"`
Node string `xml:"node,attr"`
Items []clientPubsubItem `xml:"item"`
}
type clientPubsub struct {
XMLName xml.Name `xml:"pubsub"`
Items clientPubsubItems `xml:"items"`
}
type clientPubsubEvent struct {
XMLName xml.Name `xml:"event"`
XMLNS string `xml:"xmlns,attr"`
Items clientPubsubItems `xml:"items"`
}
type clientPubsubError struct {
XMLName xml.Name
}
type clientPubsubSubscription struct {
XMLName xml.Name `xml:"subscription"`
Node string `xml:"node,attr"`
JID string `xml:"jid,attr"`
SubID string `xml:"subid,attr"`
}
type PubsubEvent struct {
Node string
Items []PubsubItem
}
type PubsubSubscription struct {
SubID string
JID string
Node string
Errors []string
}
type PubsubUnsubscription PubsubSubscription
type PubsubItem struct {
ID string
InnerXML []byte
}
type PubsubItems struct {
Node string
Items []PubsubItem
}
// Converts []clientPubsubItem to []PubsubItem
func pubsubItemsToReturn(items []clientPubsubItem) []PubsubItem {
var tmp []PubsubItem
for _, i := range items {
tmp = append(tmp, PubsubItem{
ID: i.ID,
InnerXML: i.Body,
})
}
return tmp
}
func pubsubClientToReturn(event clientPubsubEvent) PubsubEvent {
return PubsubEvent{
Node: event.Items.Node,
Items: pubsubItemsToReturn(event.Items.Items),
}
}
func pubsubStanza(body string) string {
return fmt.Sprintf("<pubsub xmlns='%s'>%s</pubsub>",
XMPPNS_PUBSUB, body)
}
func pubsubSubscriptionStanza(node, jid string) string {
body := fmt.Sprintf("<subscribe node='%s' jid='%s'/>",
xmlEscape(node),
xmlEscape(jid))
return pubsubStanza(body)
}
func pubsubUnsubscriptionStanza(node, jid string) string {
body := fmt.Sprintf("<unsubscribe node='%s' jid='%s'/>",
xmlEscape(node),
xmlEscape(jid))
return pubsubStanza(body)
}
func (c *Client) PubsubSubscribeNode(node, jid string) {
c.RawInformation(c.jid,
jid,
"sub1",
"set",
pubsubSubscriptionStanza(node, c.jid))
}
func (c *Client) PubsubUnsubscribeNode(node, jid string) {
c.RawInformation(c.jid,
jid,
"unsub1",
"set",
pubsubUnsubscriptionStanza(node, c.jid))
}
func (c *Client) PubsubRequestLastItems(node, jid string) {
body := fmt.Sprintf("<items node='%s'/>", node)
c.RawInformation(c.jid, jid, "items1", "get", pubsubStanza(body))
}
func (c *Client) PubsubRequestItem(node, jid, id string) {
body := fmt.Sprintf("<items node='%s'><item id='%s'/></items>", node, id)
c.RawInformation(c.jid, jid, "items3", "get", pubsubStanza(body))
}

View File

@@ -1,41 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// ACLType undocumented
type ACLType int
const (
// ACLTypeVUser undocumented
ACLTypeVUser ACLType = 1
// ACLTypeVGroup undocumented
ACLTypeVGroup ACLType = 2
// ACLTypeVEveryone undocumented
ACLTypeVEveryone ACLType = 3
// ACLTypeVEveryoneExceptGuests undocumented
ACLTypeVEveryoneExceptGuests ACLType = 4
)
// ACLTypePUser returns a pointer to ACLTypeVUser
func ACLTypePUser() *ACLType {
v := ACLTypeVUser
return &v
}
// ACLTypePGroup returns a pointer to ACLTypeVGroup
func ACLTypePGroup() *ACLType {
v := ACLTypeVGroup
return &v
}
// ACLTypePEveryone returns a pointer to ACLTypeVEveryone
func ACLTypePEveryone() *ACLType {
v := ACLTypeVEveryone
return &v
}
// ACLTypePEveryoneExceptGuests returns a pointer to ACLTypeVEveryoneExceptGuests
func ACLTypePEveryoneExceptGuests() *ACLType {
v := ACLTypeVEveryoneExceptGuests
return &v
}

View File

@@ -1,19 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// APIApplication undocumented
type APIApplication struct {
// Object is the base model of APIApplication
Object
// AcceptMappedClaims undocumented
AcceptMappedClaims *bool `json:"acceptMappedClaims,omitempty"`
// KnownClientApplications undocumented
KnownClientApplications []UUID `json:"knownClientApplications,omitempty"`
// PreAuthorizedApplications undocumented
PreAuthorizedApplications []PreAuthorizedApplication `json:"preAuthorizedApplications,omitempty"`
// RequestedAccessTokenVersion undocumented
RequestedAccessTokenVersion *int `json:"requestedAccessTokenVersion,omitempty"`
// Oauth2PermissionScopes undocumented
Oauth2PermissionScopes []PermissionScope `json:"oauth2PermissionScopes,omitempty"`
}

View File

@@ -1,11 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// APIServicePrincipal undocumented
type APIServicePrincipal struct {
// Object is the base model of APIServicePrincipal
Object
// ResourceSpecificApplicationPermissions undocumented
ResourceSpecificApplicationPermissions []ResourceSpecificPermission `json:"resourceSpecificApplicationPermissions,omitempty"`
}

View File

@@ -1,45 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "context"
// AadUserConversationMemberRequestBuilder is request builder for AadUserConversationMember
type AadUserConversationMemberRequestBuilder struct{ BaseRequestBuilder }
// Request returns AadUserConversationMemberRequest
func (b *AadUserConversationMemberRequestBuilder) Request() *AadUserConversationMemberRequest {
return &AadUserConversationMemberRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AadUserConversationMemberRequest is request for AadUserConversationMember
type AadUserConversationMemberRequest struct{ BaseRequest }
// Get performs GET request for AadUserConversationMember
func (r *AadUserConversationMemberRequest) Get(ctx context.Context) (resObj *AadUserConversationMember, err error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
return
}
// Update performs PATCH request for AadUserConversationMember
func (r *AadUserConversationMemberRequest) Update(ctx context.Context, reqObj *AadUserConversationMember) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for AadUserConversationMember
func (r *AadUserConversationMemberRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}
// User is navigation property
func (b *AadUserConversationMemberRequestBuilder) User() *UserRequestBuilder {
bb := &UserRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/user"
return bb
}

View File

@@ -1,9 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AccessAction undocumented
type AccessAction struct {
// Object is the base model of AccessAction
Object
}

View File

@@ -1,49 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AccessLevel undocumented
type AccessLevel int
const (
// AccessLevelVEveryone undocumented
AccessLevelVEveryone AccessLevel = 0
// AccessLevelVInvited undocumented
AccessLevelVInvited AccessLevel = 1
// AccessLevelVLocked undocumented
AccessLevelVLocked AccessLevel = 2
// AccessLevelVSameEnterprise undocumented
AccessLevelVSameEnterprise AccessLevel = 3
// AccessLevelVSameEnterpriseAndFederated undocumented
AccessLevelVSameEnterpriseAndFederated AccessLevel = 4
)
// AccessLevelPEveryone returns a pointer to AccessLevelVEveryone
func AccessLevelPEveryone() *AccessLevel {
v := AccessLevelVEveryone
return &v
}
// AccessLevelPInvited returns a pointer to AccessLevelVInvited
func AccessLevelPInvited() *AccessLevel {
v := AccessLevelVInvited
return &v
}
// AccessLevelPLocked returns a pointer to AccessLevelVLocked
func AccessLevelPLocked() *AccessLevel {
v := AccessLevelVLocked
return &v
}
// AccessLevelPSameEnterprise returns a pointer to AccessLevelVSameEnterprise
func AccessLevelPSameEnterprise() *AccessLevel {
v := AccessLevelVSameEnterprise
return &v
}
// AccessLevelPSameEnterpriseAndFederated returns a pointer to AccessLevelVSameEnterpriseAndFederated
func AccessLevelPSameEnterpriseAndFederated() *AccessLevel {
v := AccessLevelVSameEnterpriseAndFederated
return &v
}

View File

@@ -1,37 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "time"
// AccessPackageAssignment undocumented
type AccessPackageAssignment struct {
// Entity is the base model of AccessPackageAssignment
Entity
// CatalogID undocumented
CatalogID *string `json:"catalogId,omitempty"`
// AccessPackageID undocumented
AccessPackageID *string `json:"accessPackageId,omitempty"`
// AssignmentPolicyID undocumented
AssignmentPolicyID *string `json:"assignmentPolicyId,omitempty"`
// TargetID undocumented
TargetID *string `json:"targetId,omitempty"`
// AssignmentStatus undocumented
AssignmentStatus *string `json:"assignmentStatus,omitempty"`
// AssignmentState undocumented
AssignmentState *string `json:"assignmentState,omitempty"`
// IsExtended undocumented
IsExtended *bool `json:"isExtended,omitempty"`
// ExpiredDateTime undocumented
ExpiredDateTime *time.Time `json:"expiredDateTime,omitempty"`
// AccessPackage undocumented
AccessPackage *AccessPackage `json:"accessPackage,omitempty"`
// AccessPackageAssignmentPolicy undocumented
AccessPackageAssignmentPolicy *AccessPackageAssignmentPolicy `json:"accessPackageAssignmentPolicy,omitempty"`
// Target undocumented
Target *AccessPackageSubject `json:"target,omitempty"`
// AccessPackageAssignmentRequests undocumented
AccessPackageAssignmentRequests []AccessPackageAssignmentRequestObject `json:"accessPackageAssignmentRequests,omitempty"`
// AccessPackageAssignmentResourceRoles undocumented
AccessPackageAssignmentResourceRoles []AccessPackageAssignmentResourceRole `json:"accessPackageAssignmentResourceRoles,omitempty"`
}

View File

@@ -1,39 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "time"
// AccessPackageAssignmentPolicy undocumented
type AccessPackageAssignmentPolicy struct {
// Entity is the base model of AccessPackageAssignmentPolicy
Entity
// UserType undocumented
UserType *string `json:"userType,omitempty"`
// AccessPackageID undocumented
AccessPackageID *string `json:"accessPackageId,omitempty"`
// DisplayName undocumented
DisplayName *string `json:"displayName,omitempty"`
// Description undocumented
Description *string `json:"description,omitempty"`
// IsEnabled undocumented
IsEnabled *bool `json:"isEnabled,omitempty"`
// CanExtend undocumented
CanExtend *bool `json:"canExtend,omitempty"`
// DurationInDays undocumented
DurationInDays *int `json:"durationInDays,omitempty"`
// ExpirationDateTime undocumented
ExpirationDateTime *time.Time `json:"expirationDateTime,omitempty"`
// CreatedBy undocumented
CreatedBy *string `json:"createdBy,omitempty"`
// CreatedDateTime undocumented
CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
// ModifiedBy undocumented
ModifiedBy *string `json:"modifiedBy,omitempty"`
// ModifiedDateTime undocumented
ModifiedDateTime *time.Time `json:"modifiedDateTime,omitempty"`
// AccessPackage undocumented
AccessPackage *AccessPackage `json:"accessPackage,omitempty"`
// AccessPackageCatalog undocumented
AccessPackageCatalog *AccessPackageCatalog `json:"accessPackageCatalog,omitempty"`
}

View File

@@ -1,52 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "context"
// AccessPackageAssignmentPolicyRequestBuilder is request builder for AccessPackageAssignmentPolicy
type AccessPackageAssignmentPolicyRequestBuilder struct{ BaseRequestBuilder }
// Request returns AccessPackageAssignmentPolicyRequest
func (b *AccessPackageAssignmentPolicyRequestBuilder) Request() *AccessPackageAssignmentPolicyRequest {
return &AccessPackageAssignmentPolicyRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AccessPackageAssignmentPolicyRequest is request for AccessPackageAssignmentPolicy
type AccessPackageAssignmentPolicyRequest struct{ BaseRequest }
// Get performs GET request for AccessPackageAssignmentPolicy
func (r *AccessPackageAssignmentPolicyRequest) Get(ctx context.Context) (resObj *AccessPackageAssignmentPolicy, err error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
return
}
// Update performs PATCH request for AccessPackageAssignmentPolicy
func (r *AccessPackageAssignmentPolicyRequest) Update(ctx context.Context, reqObj *AccessPackageAssignmentPolicy) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for AccessPackageAssignmentPolicy
func (r *AccessPackageAssignmentPolicyRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}
// AccessPackage is navigation property
func (b *AccessPackageAssignmentPolicyRequestBuilder) AccessPackage() *AccessPackageRequestBuilder {
bb := &AccessPackageRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackage"
return bb
}
// AccessPackageCatalog is navigation property
func (b *AccessPackageAssignmentPolicyRequestBuilder) AccessPackageCatalog() *AccessPackageCatalogRequestBuilder {
bb := &AccessPackageCatalogRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageCatalog"
return bb
}

View File

@@ -1,254 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import (
"context"
"fmt"
"io/ioutil"
"net/http"
"github.com/matterbridge/msgraph.go/jsonx"
)
// AccessPackageAssignmentRequestBuilder is request builder for AccessPackageAssignment
type AccessPackageAssignmentRequestBuilder struct{ BaseRequestBuilder }
// Request returns AccessPackageAssignmentRequest
func (b *AccessPackageAssignmentRequestBuilder) Request() *AccessPackageAssignmentRequest {
return &AccessPackageAssignmentRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AccessPackageAssignmentRequest is request for AccessPackageAssignment
type AccessPackageAssignmentRequest struct{ BaseRequest }
// Get performs GET request for AccessPackageAssignment
func (r *AccessPackageAssignmentRequest) Get(ctx context.Context) (resObj *AccessPackageAssignment, err error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
return
}
// Update performs PATCH request for AccessPackageAssignment
func (r *AccessPackageAssignmentRequest) Update(ctx context.Context, reqObj *AccessPackageAssignment) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for AccessPackageAssignment
func (r *AccessPackageAssignmentRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}
// AccessPackage is navigation property
func (b *AccessPackageAssignmentRequestBuilder) AccessPackage() *AccessPackageRequestBuilder {
bb := &AccessPackageRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackage"
return bb
}
// AccessPackageAssignmentPolicy is navigation property
func (b *AccessPackageAssignmentRequestBuilder) AccessPackageAssignmentPolicy() *AccessPackageAssignmentPolicyRequestBuilder {
bb := &AccessPackageAssignmentPolicyRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageAssignmentPolicy"
return bb
}
// AccessPackageAssignmentRequests returns request builder for AccessPackageAssignmentRequestObject collection
func (b *AccessPackageAssignmentRequestBuilder) AccessPackageAssignmentRequests() *AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequestBuilder {
bb := &AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageAssignmentRequests"
return bb
}
// AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequestBuilder is request builder for AccessPackageAssignmentRequestObject collection
type AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequestBuilder struct{ BaseRequestBuilder }
// Request returns request for AccessPackageAssignmentRequestObject collection
func (b *AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequestBuilder) Request() *AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequest {
return &AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ID returns request builder for AccessPackageAssignmentRequestObject item
func (b *AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequestBuilder) ID(id string) *AccessPackageAssignmentRequestObjectRequestBuilder {
bb := &AccessPackageAssignmentRequestObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/" + id
return bb
}
// AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequest is request for AccessPackageAssignmentRequestObject collection
type AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequest struct{ BaseRequest }
// Paging perfoms paging operation for AccessPackageAssignmentRequestObject collection
func (r *AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackageAssignmentRequestObject, error) {
req, err := r.NewJSONRequest(method, path, obj)
if err != nil {
return nil, err
}
if ctx != nil {
req = req.WithContext(ctx)
}
res, err := r.client.Do(req)
if err != nil {
return nil, err
}
var values []AccessPackageAssignmentRequestObject
for {
defer res.Body.Close()
if res.StatusCode != http.StatusOK {
b, _ := ioutil.ReadAll(res.Body)
errRes := &ErrorResponse{Response: res}
err := jsonx.Unmarshal(b, errRes)
if err != nil {
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
}
return nil, errRes
}
var (
paging Paging
value []AccessPackageAssignmentRequestObject
)
err := jsonx.NewDecoder(res.Body).Decode(&paging)
if err != nil {
return nil, err
}
err = jsonx.Unmarshal(paging.Value, &value)
if err != nil {
return nil, err
}
values = append(values, value...)
if len(paging.NextLink) == 0 {
return values, nil
}
req, err = http.NewRequest("GET", paging.NextLink, nil)
if ctx != nil {
req = req.WithContext(ctx)
}
res, err = r.client.Do(req)
if err != nil {
return nil, err
}
}
}
// Get performs GET request for AccessPackageAssignmentRequestObject collection
func (r *AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequest) Get(ctx context.Context) ([]AccessPackageAssignmentRequestObject, error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
return r.Paging(ctx, "GET", query, nil)
}
// Add performs POST request for AccessPackageAssignmentRequestObject collection
func (r *AccessPackageAssignmentAccessPackageAssignmentRequestsCollectionRequest) Add(ctx context.Context, reqObj *AccessPackageAssignmentRequestObject) (resObj *AccessPackageAssignmentRequestObject, err error) {
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
return
}
// AccessPackageAssignmentResourceRoles returns request builder for AccessPackageAssignmentResourceRole collection
func (b *AccessPackageAssignmentRequestBuilder) AccessPackageAssignmentResourceRoles() *AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequestBuilder {
bb := &AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageAssignmentResourceRoles"
return bb
}
// AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequestBuilder is request builder for AccessPackageAssignmentResourceRole collection
type AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequestBuilder struct{ BaseRequestBuilder }
// Request returns request for AccessPackageAssignmentResourceRole collection
func (b *AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequestBuilder) Request() *AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequest {
return &AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ID returns request builder for AccessPackageAssignmentResourceRole item
func (b *AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequestBuilder) ID(id string) *AccessPackageAssignmentResourceRoleRequestBuilder {
bb := &AccessPackageAssignmentResourceRoleRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/" + id
return bb
}
// AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequest is request for AccessPackageAssignmentResourceRole collection
type AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequest struct{ BaseRequest }
// Paging perfoms paging operation for AccessPackageAssignmentResourceRole collection
func (r *AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackageAssignmentResourceRole, error) {
req, err := r.NewJSONRequest(method, path, obj)
if err != nil {
return nil, err
}
if ctx != nil {
req = req.WithContext(ctx)
}
res, err := r.client.Do(req)
if err != nil {
return nil, err
}
var values []AccessPackageAssignmentResourceRole
for {
defer res.Body.Close()
if res.StatusCode != http.StatusOK {
b, _ := ioutil.ReadAll(res.Body)
errRes := &ErrorResponse{Response: res}
err := jsonx.Unmarshal(b, errRes)
if err != nil {
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
}
return nil, errRes
}
var (
paging Paging
value []AccessPackageAssignmentResourceRole
)
err := jsonx.NewDecoder(res.Body).Decode(&paging)
if err != nil {
return nil, err
}
err = jsonx.Unmarshal(paging.Value, &value)
if err != nil {
return nil, err
}
values = append(values, value...)
if len(paging.NextLink) == 0 {
return values, nil
}
req, err = http.NewRequest("GET", paging.NextLink, nil)
if ctx != nil {
req = req.WithContext(ctx)
}
res, err = r.client.Do(req)
if err != nil {
return nil, err
}
}
}
// Get performs GET request for AccessPackageAssignmentResourceRole collection
func (r *AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequest) Get(ctx context.Context) ([]AccessPackageAssignmentResourceRole, error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
return r.Paging(ctx, "GET", query, nil)
}
// Add performs POST request for AccessPackageAssignmentResourceRole collection
func (r *AccessPackageAssignmentAccessPackageAssignmentResourceRolesCollectionRequest) Add(ctx context.Context, reqObj *AccessPackageAssignmentResourceRole) (resObj *AccessPackageAssignmentResourceRole, err error) {
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
return
}
// Target is navigation property
func (b *AccessPackageAssignmentRequestBuilder) Target() *AccessPackageSubjectRequestBuilder {
bb := &AccessPackageSubjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/target"
return bb
}

View File

@@ -1,35 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "context"
// AccessPackageAssignmentRequestObjectCancelRequestParameter undocumented
type AccessPackageAssignmentRequestObjectCancelRequestParameter struct {
}
//
type AccessPackageAssignmentRequestObjectCancelRequestBuilder struct{ BaseRequestBuilder }
// Cancel action undocumented
func (b *AccessPackageAssignmentRequestObjectRequestBuilder) Cancel(reqObj *AccessPackageAssignmentRequestObjectCancelRequestParameter) *AccessPackageAssignmentRequestObjectCancelRequestBuilder {
bb := &AccessPackageAssignmentRequestObjectCancelRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.BaseRequestBuilder.baseURL += "/Cancel"
bb.BaseRequestBuilder.requestObject = reqObj
return bb
}
//
type AccessPackageAssignmentRequestObjectCancelRequest struct{ BaseRequest }
//
func (b *AccessPackageAssignmentRequestObjectCancelRequestBuilder) Request() *AccessPackageAssignmentRequestObjectCancelRequest {
return &AccessPackageAssignmentRequestObjectCancelRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client, requestObject: b.requestObject},
}
}
//
func (r *AccessPackageAssignmentRequestObjectCancelRequest) Post(ctx context.Context) error {
return r.JSONRequest(ctx, "POST", "", r.requestObject, nil)
}

View File

@@ -1,33 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "time"
// AccessPackageAssignmentRequestObject undocumented
type AccessPackageAssignmentRequestObject struct {
// Entity is the base model of AccessPackageAssignmentRequestObject
Entity
// RequestType undocumented
RequestType *string `json:"requestType,omitempty"`
// RequestState undocumented
RequestState *string `json:"requestState,omitempty"`
// RequestStatus undocumented
RequestStatus *string `json:"requestStatus,omitempty"`
// IsValidationOnly undocumented
IsValidationOnly *bool `json:"isValidationOnly,omitempty"`
// CreatedDateTime undocumented
CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
// CompletedDate undocumented
CompletedDate *time.Time `json:"completedDate,omitempty"`
// ExpirationDateTime undocumented
ExpirationDateTime *time.Time `json:"expirationDateTime,omitempty"`
// Justification undocumented
Justification *string `json:"justification,omitempty"`
// AccessPackage undocumented
AccessPackage *AccessPackage `json:"accessPackage,omitempty"`
// AccessPackageAssignment undocumented
AccessPackageAssignment *AccessPackageAssignment `json:"accessPackageAssignment,omitempty"`
// Requestor undocumented
Requestor *AccessPackageSubject `json:"requestor,omitempty"`
}

View File

@@ -1,59 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "context"
// AccessPackageAssignmentRequestObjectRequestBuilder is request builder for AccessPackageAssignmentRequestObject
type AccessPackageAssignmentRequestObjectRequestBuilder struct{ BaseRequestBuilder }
// Request returns AccessPackageAssignmentRequestObjectRequest
func (b *AccessPackageAssignmentRequestObjectRequestBuilder) Request() *AccessPackageAssignmentRequestObjectRequest {
return &AccessPackageAssignmentRequestObjectRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AccessPackageAssignmentRequestObjectRequest is request for AccessPackageAssignmentRequestObject
type AccessPackageAssignmentRequestObjectRequest struct{ BaseRequest }
// Get performs GET request for AccessPackageAssignmentRequestObject
func (r *AccessPackageAssignmentRequestObjectRequest) Get(ctx context.Context) (resObj *AccessPackageAssignmentRequestObject, err error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
return
}
// Update performs PATCH request for AccessPackageAssignmentRequestObject
func (r *AccessPackageAssignmentRequestObjectRequest) Update(ctx context.Context, reqObj *AccessPackageAssignmentRequestObject) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for AccessPackageAssignmentRequestObject
func (r *AccessPackageAssignmentRequestObjectRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}
// AccessPackage is navigation property
func (b *AccessPackageAssignmentRequestObjectRequestBuilder) AccessPackage() *AccessPackageRequestBuilder {
bb := &AccessPackageRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackage"
return bb
}
// AccessPackageAssignment is navigation property
func (b *AccessPackageAssignmentRequestObjectRequestBuilder) AccessPackageAssignment() *AccessPackageAssignmentRequestBuilder {
bb := &AccessPackageAssignmentRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageAssignment"
return bb
}
// Requestor is navigation property
func (b *AccessPackageAssignmentRequestObjectRequestBuilder) Requestor() *AccessPackageSubjectRequestBuilder {
bb := &AccessPackageSubjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/requestor"
return bb
}

View File

@@ -1,23 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AccessPackageAssignmentResourceRole undocumented
type AccessPackageAssignmentResourceRole struct {
// Entity is the base model of AccessPackageAssignmentResourceRole
Entity
// OriginID undocumented
OriginID *string `json:"originId,omitempty"`
// OriginSystem undocumented
OriginSystem *string `json:"originSystem,omitempty"`
// Status undocumented
Status *string `json:"status,omitempty"`
// AccessPackageResourceScope undocumented
AccessPackageResourceScope *AccessPackageResourceScope `json:"accessPackageResourceScope,omitempty"`
// AccessPackageResourceRole undocumented
AccessPackageResourceRole *AccessPackageResourceRole `json:"accessPackageResourceRole,omitempty"`
// AccessPackageSubject undocumented
AccessPackageSubject *AccessPackageSubject `json:"accessPackageSubject,omitempty"`
// AccessPackageAssignments undocumented
AccessPackageAssignments []AccessPackageAssignment `json:"accessPackageAssignments,omitempty"`
}

View File

@@ -1,160 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import (
"context"
"fmt"
"io/ioutil"
"net/http"
"github.com/matterbridge/msgraph.go/jsonx"
)
// AccessPackageAssignmentResourceRoleRequestBuilder is request builder for AccessPackageAssignmentResourceRole
type AccessPackageAssignmentResourceRoleRequestBuilder struct{ BaseRequestBuilder }
// Request returns AccessPackageAssignmentResourceRoleRequest
func (b *AccessPackageAssignmentResourceRoleRequestBuilder) Request() *AccessPackageAssignmentResourceRoleRequest {
return &AccessPackageAssignmentResourceRoleRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AccessPackageAssignmentResourceRoleRequest is request for AccessPackageAssignmentResourceRole
type AccessPackageAssignmentResourceRoleRequest struct{ BaseRequest }
// Get performs GET request for AccessPackageAssignmentResourceRole
func (r *AccessPackageAssignmentResourceRoleRequest) Get(ctx context.Context) (resObj *AccessPackageAssignmentResourceRole, err error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
return
}
// Update performs PATCH request for AccessPackageAssignmentResourceRole
func (r *AccessPackageAssignmentResourceRoleRequest) Update(ctx context.Context, reqObj *AccessPackageAssignmentResourceRole) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for AccessPackageAssignmentResourceRole
func (r *AccessPackageAssignmentResourceRoleRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}
// AccessPackageAssignments returns request builder for AccessPackageAssignment collection
func (b *AccessPackageAssignmentResourceRoleRequestBuilder) AccessPackageAssignments() *AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequestBuilder {
bb := &AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageAssignments"
return bb
}
// AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequestBuilder is request builder for AccessPackageAssignment collection
type AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequestBuilder struct{ BaseRequestBuilder }
// Request returns request for AccessPackageAssignment collection
func (b *AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequestBuilder) Request() *AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequest {
return &AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ID returns request builder for AccessPackageAssignment item
func (b *AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequestBuilder) ID(id string) *AccessPackageAssignmentRequestBuilder {
bb := &AccessPackageAssignmentRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/" + id
return bb
}
// AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequest is request for AccessPackageAssignment collection
type AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequest struct{ BaseRequest }
// Paging perfoms paging operation for AccessPackageAssignment collection
func (r *AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackageAssignment, error) {
req, err := r.NewJSONRequest(method, path, obj)
if err != nil {
return nil, err
}
if ctx != nil {
req = req.WithContext(ctx)
}
res, err := r.client.Do(req)
if err != nil {
return nil, err
}
var values []AccessPackageAssignment
for {
defer res.Body.Close()
if res.StatusCode != http.StatusOK {
b, _ := ioutil.ReadAll(res.Body)
errRes := &ErrorResponse{Response: res}
err := jsonx.Unmarshal(b, errRes)
if err != nil {
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
}
return nil, errRes
}
var (
paging Paging
value []AccessPackageAssignment
)
err := jsonx.NewDecoder(res.Body).Decode(&paging)
if err != nil {
return nil, err
}
err = jsonx.Unmarshal(paging.Value, &value)
if err != nil {
return nil, err
}
values = append(values, value...)
if len(paging.NextLink) == 0 {
return values, nil
}
req, err = http.NewRequest("GET", paging.NextLink, nil)
if ctx != nil {
req = req.WithContext(ctx)
}
res, err = r.client.Do(req)
if err != nil {
return nil, err
}
}
}
// Get performs GET request for AccessPackageAssignment collection
func (r *AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequest) Get(ctx context.Context) ([]AccessPackageAssignment, error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
return r.Paging(ctx, "GET", query, nil)
}
// Add performs POST request for AccessPackageAssignment collection
func (r *AccessPackageAssignmentResourceRoleAccessPackageAssignmentsCollectionRequest) Add(ctx context.Context, reqObj *AccessPackageAssignment) (resObj *AccessPackageAssignment, err error) {
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
return
}
// AccessPackageResourceRole is navigation property
func (b *AccessPackageAssignmentResourceRoleRequestBuilder) AccessPackageResourceRole() *AccessPackageResourceRoleRequestBuilder {
bb := &AccessPackageResourceRoleRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageResourceRole"
return bb
}
// AccessPackageResourceScope is navigation property
func (b *AccessPackageAssignmentResourceRoleRequestBuilder) AccessPackageResourceScope() *AccessPackageResourceScopeRequestBuilder {
bb := &AccessPackageResourceScopeRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageResourceScope"
return bb
}
// AccessPackageSubject is navigation property
func (b *AccessPackageAssignmentResourceRoleRequestBuilder) AccessPackageSubject() *AccessPackageSubjectRequestBuilder {
bb := &AccessPackageSubjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageSubject"
return bb
}

View File

@@ -1,37 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "time"
// AccessPackageCatalog undocumented
type AccessPackageCatalog struct {
// Entity is the base model of AccessPackageCatalog
Entity
// DisplayName undocumented
DisplayName *string `json:"displayName,omitempty"`
// Description undocumented
Description *string `json:"description,omitempty"`
// CatalogType undocumented
CatalogType *string `json:"catalogType,omitempty"`
// CatalogStatus undocumented
CatalogStatus *string `json:"catalogStatus,omitempty"`
// IsExternallyVisible undocumented
IsExternallyVisible *bool `json:"isExternallyVisible,omitempty"`
// CreatedBy undocumented
CreatedBy *string `json:"createdBy,omitempty"`
// CreatedDateTime undocumented
CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
// ModifiedBy undocumented
ModifiedBy *string `json:"modifiedBy,omitempty"`
// ModifiedDateTime undocumented
ModifiedDateTime *time.Time `json:"modifiedDateTime,omitempty"`
// AccessPackageResources undocumented
AccessPackageResources []AccessPackageResource `json:"accessPackageResources,omitempty"`
// AccessPackageResourceRoles undocumented
AccessPackageResourceRoles []AccessPackageResourceRole `json:"accessPackageResourceRoles,omitempty"`
// AccessPackageResourceScopes undocumented
AccessPackageResourceScopes []AccessPackageResourceScope `json:"accessPackageResourceScopes,omitempty"`
// AccessPackages undocumented
AccessPackages []AccessPackage `json:"accessPackages,omitempty"`
}

View File

@@ -1,421 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import (
"context"
"fmt"
"io/ioutil"
"net/http"
"github.com/matterbridge/msgraph.go/jsonx"
)
// AccessPackageCatalogRequestBuilder is request builder for AccessPackageCatalog
type AccessPackageCatalogRequestBuilder struct{ BaseRequestBuilder }
// Request returns AccessPackageCatalogRequest
func (b *AccessPackageCatalogRequestBuilder) Request() *AccessPackageCatalogRequest {
return &AccessPackageCatalogRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AccessPackageCatalogRequest is request for AccessPackageCatalog
type AccessPackageCatalogRequest struct{ BaseRequest }
// Get performs GET request for AccessPackageCatalog
func (r *AccessPackageCatalogRequest) Get(ctx context.Context) (resObj *AccessPackageCatalog, err error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
return
}
// Update performs PATCH request for AccessPackageCatalog
func (r *AccessPackageCatalogRequest) Update(ctx context.Context, reqObj *AccessPackageCatalog) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for AccessPackageCatalog
func (r *AccessPackageCatalogRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}
// AccessPackageResourceRoles returns request builder for AccessPackageResourceRole collection
func (b *AccessPackageCatalogRequestBuilder) AccessPackageResourceRoles() *AccessPackageCatalogAccessPackageResourceRolesCollectionRequestBuilder {
bb := &AccessPackageCatalogAccessPackageResourceRolesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageResourceRoles"
return bb
}
// AccessPackageCatalogAccessPackageResourceRolesCollectionRequestBuilder is request builder for AccessPackageResourceRole collection
type AccessPackageCatalogAccessPackageResourceRolesCollectionRequestBuilder struct{ BaseRequestBuilder }
// Request returns request for AccessPackageResourceRole collection
func (b *AccessPackageCatalogAccessPackageResourceRolesCollectionRequestBuilder) Request() *AccessPackageCatalogAccessPackageResourceRolesCollectionRequest {
return &AccessPackageCatalogAccessPackageResourceRolesCollectionRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ID returns request builder for AccessPackageResourceRole item
func (b *AccessPackageCatalogAccessPackageResourceRolesCollectionRequestBuilder) ID(id string) *AccessPackageResourceRoleRequestBuilder {
bb := &AccessPackageResourceRoleRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/" + id
return bb
}
// AccessPackageCatalogAccessPackageResourceRolesCollectionRequest is request for AccessPackageResourceRole collection
type AccessPackageCatalogAccessPackageResourceRolesCollectionRequest struct{ BaseRequest }
// Paging perfoms paging operation for AccessPackageResourceRole collection
func (r *AccessPackageCatalogAccessPackageResourceRolesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackageResourceRole, error) {
req, err := r.NewJSONRequest(method, path, obj)
if err != nil {
return nil, err
}
if ctx != nil {
req = req.WithContext(ctx)
}
res, err := r.client.Do(req)
if err != nil {
return nil, err
}
var values []AccessPackageResourceRole
for {
defer res.Body.Close()
if res.StatusCode != http.StatusOK {
b, _ := ioutil.ReadAll(res.Body)
errRes := &ErrorResponse{Response: res}
err := jsonx.Unmarshal(b, errRes)
if err != nil {
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
}
return nil, errRes
}
var (
paging Paging
value []AccessPackageResourceRole
)
err := jsonx.NewDecoder(res.Body).Decode(&paging)
if err != nil {
return nil, err
}
err = jsonx.Unmarshal(paging.Value, &value)
if err != nil {
return nil, err
}
values = append(values, value...)
if len(paging.NextLink) == 0 {
return values, nil
}
req, err = http.NewRequest("GET", paging.NextLink, nil)
if ctx != nil {
req = req.WithContext(ctx)
}
res, err = r.client.Do(req)
if err != nil {
return nil, err
}
}
}
// Get performs GET request for AccessPackageResourceRole collection
func (r *AccessPackageCatalogAccessPackageResourceRolesCollectionRequest) Get(ctx context.Context) ([]AccessPackageResourceRole, error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
return r.Paging(ctx, "GET", query, nil)
}
// Add performs POST request for AccessPackageResourceRole collection
func (r *AccessPackageCatalogAccessPackageResourceRolesCollectionRequest) Add(ctx context.Context, reqObj *AccessPackageResourceRole) (resObj *AccessPackageResourceRole, err error) {
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
return
}
// AccessPackageResourceScopes returns request builder for AccessPackageResourceScope collection
func (b *AccessPackageCatalogRequestBuilder) AccessPackageResourceScopes() *AccessPackageCatalogAccessPackageResourceScopesCollectionRequestBuilder {
bb := &AccessPackageCatalogAccessPackageResourceScopesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageResourceScopes"
return bb
}
// AccessPackageCatalogAccessPackageResourceScopesCollectionRequestBuilder is request builder for AccessPackageResourceScope collection
type AccessPackageCatalogAccessPackageResourceScopesCollectionRequestBuilder struct{ BaseRequestBuilder }
// Request returns request for AccessPackageResourceScope collection
func (b *AccessPackageCatalogAccessPackageResourceScopesCollectionRequestBuilder) Request() *AccessPackageCatalogAccessPackageResourceScopesCollectionRequest {
return &AccessPackageCatalogAccessPackageResourceScopesCollectionRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ID returns request builder for AccessPackageResourceScope item
func (b *AccessPackageCatalogAccessPackageResourceScopesCollectionRequestBuilder) ID(id string) *AccessPackageResourceScopeRequestBuilder {
bb := &AccessPackageResourceScopeRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/" + id
return bb
}
// AccessPackageCatalogAccessPackageResourceScopesCollectionRequest is request for AccessPackageResourceScope collection
type AccessPackageCatalogAccessPackageResourceScopesCollectionRequest struct{ BaseRequest }
// Paging perfoms paging operation for AccessPackageResourceScope collection
func (r *AccessPackageCatalogAccessPackageResourceScopesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackageResourceScope, error) {
req, err := r.NewJSONRequest(method, path, obj)
if err != nil {
return nil, err
}
if ctx != nil {
req = req.WithContext(ctx)
}
res, err := r.client.Do(req)
if err != nil {
return nil, err
}
var values []AccessPackageResourceScope
for {
defer res.Body.Close()
if res.StatusCode != http.StatusOK {
b, _ := ioutil.ReadAll(res.Body)
errRes := &ErrorResponse{Response: res}
err := jsonx.Unmarshal(b, errRes)
if err != nil {
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
}
return nil, errRes
}
var (
paging Paging
value []AccessPackageResourceScope
)
err := jsonx.NewDecoder(res.Body).Decode(&paging)
if err != nil {
return nil, err
}
err = jsonx.Unmarshal(paging.Value, &value)
if err != nil {
return nil, err
}
values = append(values, value...)
if len(paging.NextLink) == 0 {
return values, nil
}
req, err = http.NewRequest("GET", paging.NextLink, nil)
if ctx != nil {
req = req.WithContext(ctx)
}
res, err = r.client.Do(req)
if err != nil {
return nil, err
}
}
}
// Get performs GET request for AccessPackageResourceScope collection
func (r *AccessPackageCatalogAccessPackageResourceScopesCollectionRequest) Get(ctx context.Context) ([]AccessPackageResourceScope, error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
return r.Paging(ctx, "GET", query, nil)
}
// Add performs POST request for AccessPackageResourceScope collection
func (r *AccessPackageCatalogAccessPackageResourceScopesCollectionRequest) Add(ctx context.Context, reqObj *AccessPackageResourceScope) (resObj *AccessPackageResourceScope, err error) {
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
return
}
// AccessPackageResources returns request builder for AccessPackageResource collection
func (b *AccessPackageCatalogRequestBuilder) AccessPackageResources() *AccessPackageCatalogAccessPackageResourcesCollectionRequestBuilder {
bb := &AccessPackageCatalogAccessPackageResourcesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageResources"
return bb
}
// AccessPackageCatalogAccessPackageResourcesCollectionRequestBuilder is request builder for AccessPackageResource collection
type AccessPackageCatalogAccessPackageResourcesCollectionRequestBuilder struct{ BaseRequestBuilder }
// Request returns request for AccessPackageResource collection
func (b *AccessPackageCatalogAccessPackageResourcesCollectionRequestBuilder) Request() *AccessPackageCatalogAccessPackageResourcesCollectionRequest {
return &AccessPackageCatalogAccessPackageResourcesCollectionRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ID returns request builder for AccessPackageResource item
func (b *AccessPackageCatalogAccessPackageResourcesCollectionRequestBuilder) ID(id string) *AccessPackageResourceRequestBuilder {
bb := &AccessPackageResourceRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/" + id
return bb
}
// AccessPackageCatalogAccessPackageResourcesCollectionRequest is request for AccessPackageResource collection
type AccessPackageCatalogAccessPackageResourcesCollectionRequest struct{ BaseRequest }
// Paging perfoms paging operation for AccessPackageResource collection
func (r *AccessPackageCatalogAccessPackageResourcesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackageResource, error) {
req, err := r.NewJSONRequest(method, path, obj)
if err != nil {
return nil, err
}
if ctx != nil {
req = req.WithContext(ctx)
}
res, err := r.client.Do(req)
if err != nil {
return nil, err
}
var values []AccessPackageResource
for {
defer res.Body.Close()
if res.StatusCode != http.StatusOK {
b, _ := ioutil.ReadAll(res.Body)
errRes := &ErrorResponse{Response: res}
err := jsonx.Unmarshal(b, errRes)
if err != nil {
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
}
return nil, errRes
}
var (
paging Paging
value []AccessPackageResource
)
err := jsonx.NewDecoder(res.Body).Decode(&paging)
if err != nil {
return nil, err
}
err = jsonx.Unmarshal(paging.Value, &value)
if err != nil {
return nil, err
}
values = append(values, value...)
if len(paging.NextLink) == 0 {
return values, nil
}
req, err = http.NewRequest("GET", paging.NextLink, nil)
if ctx != nil {
req = req.WithContext(ctx)
}
res, err = r.client.Do(req)
if err != nil {
return nil, err
}
}
}
// Get performs GET request for AccessPackageResource collection
func (r *AccessPackageCatalogAccessPackageResourcesCollectionRequest) Get(ctx context.Context) ([]AccessPackageResource, error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
return r.Paging(ctx, "GET", query, nil)
}
// Add performs POST request for AccessPackageResource collection
func (r *AccessPackageCatalogAccessPackageResourcesCollectionRequest) Add(ctx context.Context, reqObj *AccessPackageResource) (resObj *AccessPackageResource, err error) {
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
return
}
// AccessPackages returns request builder for AccessPackage collection
func (b *AccessPackageCatalogRequestBuilder) AccessPackages() *AccessPackageCatalogAccessPackagesCollectionRequestBuilder {
bb := &AccessPackageCatalogAccessPackagesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackages"
return bb
}
// AccessPackageCatalogAccessPackagesCollectionRequestBuilder is request builder for AccessPackage collection
type AccessPackageCatalogAccessPackagesCollectionRequestBuilder struct{ BaseRequestBuilder }
// Request returns request for AccessPackage collection
func (b *AccessPackageCatalogAccessPackagesCollectionRequestBuilder) Request() *AccessPackageCatalogAccessPackagesCollectionRequest {
return &AccessPackageCatalogAccessPackagesCollectionRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ID returns request builder for AccessPackage item
func (b *AccessPackageCatalogAccessPackagesCollectionRequestBuilder) ID(id string) *AccessPackageRequestBuilder {
bb := &AccessPackageRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/" + id
return bb
}
// AccessPackageCatalogAccessPackagesCollectionRequest is request for AccessPackage collection
type AccessPackageCatalogAccessPackagesCollectionRequest struct{ BaseRequest }
// Paging perfoms paging operation for AccessPackage collection
func (r *AccessPackageCatalogAccessPackagesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackage, error) {
req, err := r.NewJSONRequest(method, path, obj)
if err != nil {
return nil, err
}
if ctx != nil {
req = req.WithContext(ctx)
}
res, err := r.client.Do(req)
if err != nil {
return nil, err
}
var values []AccessPackage
for {
defer res.Body.Close()
if res.StatusCode != http.StatusOK {
b, _ := ioutil.ReadAll(res.Body)
errRes := &ErrorResponse{Response: res}
err := jsonx.Unmarshal(b, errRes)
if err != nil {
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
}
return nil, errRes
}
var (
paging Paging
value []AccessPackage
)
err := jsonx.NewDecoder(res.Body).Decode(&paging)
if err != nil {
return nil, err
}
err = jsonx.Unmarshal(paging.Value, &value)
if err != nil {
return nil, err
}
values = append(values, value...)
if len(paging.NextLink) == 0 {
return values, nil
}
req, err = http.NewRequest("GET", paging.NextLink, nil)
if ctx != nil {
req = req.WithContext(ctx)
}
res, err = r.client.Do(req)
if err != nil {
return nil, err
}
}
}
// Get performs GET request for AccessPackage collection
func (r *AccessPackageCatalogAccessPackagesCollectionRequest) Get(ctx context.Context) ([]AccessPackage, error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
return r.Paging(ctx, "GET", query, nil)
}
// Add performs POST request for AccessPackage collection
func (r *AccessPackageCatalogAccessPackagesCollectionRequest) Add(ctx context.Context, reqObj *AccessPackage) (resObj *AccessPackage, err error) {
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
return
}

View File

@@ -1,35 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "time"
// AccessPackage undocumented
type AccessPackage struct {
// Entity is the base model of AccessPackage
Entity
// CatalogID undocumented
CatalogID *string `json:"catalogId,omitempty"`
// DisplayName undocumented
DisplayName *string `json:"displayName,omitempty"`
// Description undocumented
Description *string `json:"description,omitempty"`
// IsHidden undocumented
IsHidden *bool `json:"isHidden,omitempty"`
// IsRoleScopesVisible undocumented
IsRoleScopesVisible *bool `json:"isRoleScopesVisible,omitempty"`
// CreatedBy undocumented
CreatedBy *string `json:"createdBy,omitempty"`
// CreatedDateTime undocumented
CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
// ModifiedBy undocumented
ModifiedBy *string `json:"modifiedBy,omitempty"`
// ModifiedDateTime undocumented
ModifiedDateTime *time.Time `json:"modifiedDateTime,omitempty"`
// AccessPackageCatalog undocumented
AccessPackageCatalog *AccessPackageCatalog `json:"accessPackageCatalog,omitempty"`
// AccessPackageResourceRoleScopes undocumented
AccessPackageResourceRoleScopes []AccessPackageResourceRoleScope `json:"accessPackageResourceRoleScopes,omitempty"`
// AccessPackageAssignmentPolicies undocumented
AccessPackageAssignmentPolicies []AccessPackageAssignmentPolicy `json:"accessPackageAssignmentPolicies,omitempty"`
}

View File

@@ -1,240 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import (
"context"
"fmt"
"io/ioutil"
"net/http"
"github.com/matterbridge/msgraph.go/jsonx"
)
// AccessPackageRequestBuilder is request builder for AccessPackage
type AccessPackageRequestBuilder struct{ BaseRequestBuilder }
// Request returns AccessPackageRequest
func (b *AccessPackageRequestBuilder) Request() *AccessPackageRequest {
return &AccessPackageRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AccessPackageRequest is request for AccessPackage
type AccessPackageRequest struct{ BaseRequest }
// Get performs GET request for AccessPackage
func (r *AccessPackageRequest) Get(ctx context.Context) (resObj *AccessPackage, err error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
return
}
// Update performs PATCH request for AccessPackage
func (r *AccessPackageRequest) Update(ctx context.Context, reqObj *AccessPackage) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for AccessPackage
func (r *AccessPackageRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}
// AccessPackageAssignmentPolicies returns request builder for AccessPackageAssignmentPolicy collection
func (b *AccessPackageRequestBuilder) AccessPackageAssignmentPolicies() *AccessPackageAccessPackageAssignmentPoliciesCollectionRequestBuilder {
bb := &AccessPackageAccessPackageAssignmentPoliciesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageAssignmentPolicies"
return bb
}
// AccessPackageAccessPackageAssignmentPoliciesCollectionRequestBuilder is request builder for AccessPackageAssignmentPolicy collection
type AccessPackageAccessPackageAssignmentPoliciesCollectionRequestBuilder struct{ BaseRequestBuilder }
// Request returns request for AccessPackageAssignmentPolicy collection
func (b *AccessPackageAccessPackageAssignmentPoliciesCollectionRequestBuilder) Request() *AccessPackageAccessPackageAssignmentPoliciesCollectionRequest {
return &AccessPackageAccessPackageAssignmentPoliciesCollectionRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ID returns request builder for AccessPackageAssignmentPolicy item
func (b *AccessPackageAccessPackageAssignmentPoliciesCollectionRequestBuilder) ID(id string) *AccessPackageAssignmentPolicyRequestBuilder {
bb := &AccessPackageAssignmentPolicyRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/" + id
return bb
}
// AccessPackageAccessPackageAssignmentPoliciesCollectionRequest is request for AccessPackageAssignmentPolicy collection
type AccessPackageAccessPackageAssignmentPoliciesCollectionRequest struct{ BaseRequest }
// Paging perfoms paging operation for AccessPackageAssignmentPolicy collection
func (r *AccessPackageAccessPackageAssignmentPoliciesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackageAssignmentPolicy, error) {
req, err := r.NewJSONRequest(method, path, obj)
if err != nil {
return nil, err
}
if ctx != nil {
req = req.WithContext(ctx)
}
res, err := r.client.Do(req)
if err != nil {
return nil, err
}
var values []AccessPackageAssignmentPolicy
for {
defer res.Body.Close()
if res.StatusCode != http.StatusOK {
b, _ := ioutil.ReadAll(res.Body)
errRes := &ErrorResponse{Response: res}
err := jsonx.Unmarshal(b, errRes)
if err != nil {
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
}
return nil, errRes
}
var (
paging Paging
value []AccessPackageAssignmentPolicy
)
err := jsonx.NewDecoder(res.Body).Decode(&paging)
if err != nil {
return nil, err
}
err = jsonx.Unmarshal(paging.Value, &value)
if err != nil {
return nil, err
}
values = append(values, value...)
if len(paging.NextLink) == 0 {
return values, nil
}
req, err = http.NewRequest("GET", paging.NextLink, nil)
if ctx != nil {
req = req.WithContext(ctx)
}
res, err = r.client.Do(req)
if err != nil {
return nil, err
}
}
}
// Get performs GET request for AccessPackageAssignmentPolicy collection
func (r *AccessPackageAccessPackageAssignmentPoliciesCollectionRequest) Get(ctx context.Context) ([]AccessPackageAssignmentPolicy, error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
return r.Paging(ctx, "GET", query, nil)
}
// Add performs POST request for AccessPackageAssignmentPolicy collection
func (r *AccessPackageAccessPackageAssignmentPoliciesCollectionRequest) Add(ctx context.Context, reqObj *AccessPackageAssignmentPolicy) (resObj *AccessPackageAssignmentPolicy, err error) {
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
return
}
// AccessPackageCatalog is navigation property
func (b *AccessPackageRequestBuilder) AccessPackageCatalog() *AccessPackageCatalogRequestBuilder {
bb := &AccessPackageCatalogRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageCatalog"
return bb
}
// AccessPackageResourceRoleScopes returns request builder for AccessPackageResourceRoleScope collection
func (b *AccessPackageRequestBuilder) AccessPackageResourceRoleScopes() *AccessPackageAccessPackageResourceRoleScopesCollectionRequestBuilder {
bb := &AccessPackageAccessPackageResourceRoleScopesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageResourceRoleScopes"
return bb
}
// AccessPackageAccessPackageResourceRoleScopesCollectionRequestBuilder is request builder for AccessPackageResourceRoleScope collection
type AccessPackageAccessPackageResourceRoleScopesCollectionRequestBuilder struct{ BaseRequestBuilder }
// Request returns request for AccessPackageResourceRoleScope collection
func (b *AccessPackageAccessPackageResourceRoleScopesCollectionRequestBuilder) Request() *AccessPackageAccessPackageResourceRoleScopesCollectionRequest {
return &AccessPackageAccessPackageResourceRoleScopesCollectionRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ID returns request builder for AccessPackageResourceRoleScope item
func (b *AccessPackageAccessPackageResourceRoleScopesCollectionRequestBuilder) ID(id string) *AccessPackageResourceRoleScopeRequestBuilder {
bb := &AccessPackageResourceRoleScopeRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/" + id
return bb
}
// AccessPackageAccessPackageResourceRoleScopesCollectionRequest is request for AccessPackageResourceRoleScope collection
type AccessPackageAccessPackageResourceRoleScopesCollectionRequest struct{ BaseRequest }
// Paging perfoms paging operation for AccessPackageResourceRoleScope collection
func (r *AccessPackageAccessPackageResourceRoleScopesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackageResourceRoleScope, error) {
req, err := r.NewJSONRequest(method, path, obj)
if err != nil {
return nil, err
}
if ctx != nil {
req = req.WithContext(ctx)
}
res, err := r.client.Do(req)
if err != nil {
return nil, err
}
var values []AccessPackageResourceRoleScope
for {
defer res.Body.Close()
if res.StatusCode != http.StatusOK {
b, _ := ioutil.ReadAll(res.Body)
errRes := &ErrorResponse{Response: res}
err := jsonx.Unmarshal(b, errRes)
if err != nil {
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
}
return nil, errRes
}
var (
paging Paging
value []AccessPackageResourceRoleScope
)
err := jsonx.NewDecoder(res.Body).Decode(&paging)
if err != nil {
return nil, err
}
err = jsonx.Unmarshal(paging.Value, &value)
if err != nil {
return nil, err
}
values = append(values, value...)
if len(paging.NextLink) == 0 {
return values, nil
}
req, err = http.NewRequest("GET", paging.NextLink, nil)
if ctx != nil {
req = req.WithContext(ctx)
}
res, err = r.client.Do(req)
if err != nil {
return nil, err
}
}
}
// Get performs GET request for AccessPackageResourceRoleScope collection
func (r *AccessPackageAccessPackageResourceRoleScopesCollectionRequest) Get(ctx context.Context) ([]AccessPackageResourceRoleScope, error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
return r.Paging(ctx, "GET", query, nil)
}
// Add performs POST request for AccessPackageResourceRoleScope collection
func (r *AccessPackageAccessPackageResourceRoleScopesCollectionRequest) Add(ctx context.Context, reqObj *AccessPackageResourceRoleScope) (resObj *AccessPackageResourceRoleScope, err error) {
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
return
}

View File

@@ -1,33 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "time"
// AccessPackageResource undocumented
type AccessPackageResource struct {
// Entity is the base model of AccessPackageResource
Entity
// DisplayName undocumented
DisplayName *string `json:"displayName,omitempty"`
// Description undocumented
Description *string `json:"description,omitempty"`
// URL undocumented
URL *string `json:"url,omitempty"`
// ResourceType undocumented
ResourceType *string `json:"resourceType,omitempty"`
// OriginID undocumented
OriginID *string `json:"originId,omitempty"`
// OriginSystem undocumented
OriginSystem *string `json:"originSystem,omitempty"`
// IsPendingOnboarding undocumented
IsPendingOnboarding *bool `json:"isPendingOnboarding,omitempty"`
// AddedBy undocumented
AddedBy *string `json:"addedBy,omitempty"`
// AddedOn undocumented
AddedOn *time.Time `json:"addedOn,omitempty"`
// AccessPackageResourceScopes undocumented
AccessPackageResourceScopes []AccessPackageResourceScope `json:"accessPackageResourceScopes,omitempty"`
// AccessPackageResourceRoles undocumented
AccessPackageResourceRoles []AccessPackageResourceRole `json:"accessPackageResourceRoles,omitempty"`
}

View File

@@ -1,233 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import (
"context"
"fmt"
"io/ioutil"
"net/http"
"github.com/matterbridge/msgraph.go/jsonx"
)
// AccessPackageResourceRequestBuilder is request builder for AccessPackageResource
type AccessPackageResourceRequestBuilder struct{ BaseRequestBuilder }
// Request returns AccessPackageResourceRequest
func (b *AccessPackageResourceRequestBuilder) Request() *AccessPackageResourceRequest {
return &AccessPackageResourceRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AccessPackageResourceRequest is request for AccessPackageResource
type AccessPackageResourceRequest struct{ BaseRequest }
// Get performs GET request for AccessPackageResource
func (r *AccessPackageResourceRequest) Get(ctx context.Context) (resObj *AccessPackageResource, err error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
return
}
// Update performs PATCH request for AccessPackageResource
func (r *AccessPackageResourceRequest) Update(ctx context.Context, reqObj *AccessPackageResource) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for AccessPackageResource
func (r *AccessPackageResourceRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}
// AccessPackageResourceRoles returns request builder for AccessPackageResourceRole collection
func (b *AccessPackageResourceRequestBuilder) AccessPackageResourceRoles() *AccessPackageResourceAccessPackageResourceRolesCollectionRequestBuilder {
bb := &AccessPackageResourceAccessPackageResourceRolesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageResourceRoles"
return bb
}
// AccessPackageResourceAccessPackageResourceRolesCollectionRequestBuilder is request builder for AccessPackageResourceRole collection
type AccessPackageResourceAccessPackageResourceRolesCollectionRequestBuilder struct{ BaseRequestBuilder }
// Request returns request for AccessPackageResourceRole collection
func (b *AccessPackageResourceAccessPackageResourceRolesCollectionRequestBuilder) Request() *AccessPackageResourceAccessPackageResourceRolesCollectionRequest {
return &AccessPackageResourceAccessPackageResourceRolesCollectionRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ID returns request builder for AccessPackageResourceRole item
func (b *AccessPackageResourceAccessPackageResourceRolesCollectionRequestBuilder) ID(id string) *AccessPackageResourceRoleRequestBuilder {
bb := &AccessPackageResourceRoleRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/" + id
return bb
}
// AccessPackageResourceAccessPackageResourceRolesCollectionRequest is request for AccessPackageResourceRole collection
type AccessPackageResourceAccessPackageResourceRolesCollectionRequest struct{ BaseRequest }
// Paging perfoms paging operation for AccessPackageResourceRole collection
func (r *AccessPackageResourceAccessPackageResourceRolesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackageResourceRole, error) {
req, err := r.NewJSONRequest(method, path, obj)
if err != nil {
return nil, err
}
if ctx != nil {
req = req.WithContext(ctx)
}
res, err := r.client.Do(req)
if err != nil {
return nil, err
}
var values []AccessPackageResourceRole
for {
defer res.Body.Close()
if res.StatusCode != http.StatusOK {
b, _ := ioutil.ReadAll(res.Body)
errRes := &ErrorResponse{Response: res}
err := jsonx.Unmarshal(b, errRes)
if err != nil {
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
}
return nil, errRes
}
var (
paging Paging
value []AccessPackageResourceRole
)
err := jsonx.NewDecoder(res.Body).Decode(&paging)
if err != nil {
return nil, err
}
err = jsonx.Unmarshal(paging.Value, &value)
if err != nil {
return nil, err
}
values = append(values, value...)
if len(paging.NextLink) == 0 {
return values, nil
}
req, err = http.NewRequest("GET", paging.NextLink, nil)
if ctx != nil {
req = req.WithContext(ctx)
}
res, err = r.client.Do(req)
if err != nil {
return nil, err
}
}
}
// Get performs GET request for AccessPackageResourceRole collection
func (r *AccessPackageResourceAccessPackageResourceRolesCollectionRequest) Get(ctx context.Context) ([]AccessPackageResourceRole, error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
return r.Paging(ctx, "GET", query, nil)
}
// Add performs POST request for AccessPackageResourceRole collection
func (r *AccessPackageResourceAccessPackageResourceRolesCollectionRequest) Add(ctx context.Context, reqObj *AccessPackageResourceRole) (resObj *AccessPackageResourceRole, err error) {
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
return
}
// AccessPackageResourceScopes returns request builder for AccessPackageResourceScope collection
func (b *AccessPackageResourceRequestBuilder) AccessPackageResourceScopes() *AccessPackageResourceAccessPackageResourceScopesCollectionRequestBuilder {
bb := &AccessPackageResourceAccessPackageResourceScopesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageResourceScopes"
return bb
}
// AccessPackageResourceAccessPackageResourceScopesCollectionRequestBuilder is request builder for AccessPackageResourceScope collection
type AccessPackageResourceAccessPackageResourceScopesCollectionRequestBuilder struct{ BaseRequestBuilder }
// Request returns request for AccessPackageResourceScope collection
func (b *AccessPackageResourceAccessPackageResourceScopesCollectionRequestBuilder) Request() *AccessPackageResourceAccessPackageResourceScopesCollectionRequest {
return &AccessPackageResourceAccessPackageResourceScopesCollectionRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ID returns request builder for AccessPackageResourceScope item
func (b *AccessPackageResourceAccessPackageResourceScopesCollectionRequestBuilder) ID(id string) *AccessPackageResourceScopeRequestBuilder {
bb := &AccessPackageResourceScopeRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/" + id
return bb
}
// AccessPackageResourceAccessPackageResourceScopesCollectionRequest is request for AccessPackageResourceScope collection
type AccessPackageResourceAccessPackageResourceScopesCollectionRequest struct{ BaseRequest }
// Paging perfoms paging operation for AccessPackageResourceScope collection
func (r *AccessPackageResourceAccessPackageResourceScopesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessPackageResourceScope, error) {
req, err := r.NewJSONRequest(method, path, obj)
if err != nil {
return nil, err
}
if ctx != nil {
req = req.WithContext(ctx)
}
res, err := r.client.Do(req)
if err != nil {
return nil, err
}
var values []AccessPackageResourceScope
for {
defer res.Body.Close()
if res.StatusCode != http.StatusOK {
b, _ := ioutil.ReadAll(res.Body)
errRes := &ErrorResponse{Response: res}
err := jsonx.Unmarshal(b, errRes)
if err != nil {
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
}
return nil, errRes
}
var (
paging Paging
value []AccessPackageResourceScope
)
err := jsonx.NewDecoder(res.Body).Decode(&paging)
if err != nil {
return nil, err
}
err = jsonx.Unmarshal(paging.Value, &value)
if err != nil {
return nil, err
}
values = append(values, value...)
if len(paging.NextLink) == 0 {
return values, nil
}
req, err = http.NewRequest("GET", paging.NextLink, nil)
if ctx != nil {
req = req.WithContext(ctx)
}
res, err = r.client.Do(req)
if err != nil {
return nil, err
}
}
}
// Get performs GET request for AccessPackageResourceScope collection
func (r *AccessPackageResourceAccessPackageResourceScopesCollectionRequest) Get(ctx context.Context) ([]AccessPackageResourceScope, error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
return r.Paging(ctx, "GET", query, nil)
}
// Add performs POST request for AccessPackageResourceScope collection
func (r *AccessPackageResourceAccessPackageResourceScopesCollectionRequest) Add(ctx context.Context, reqObj *AccessPackageResourceScope) (resObj *AccessPackageResourceScope, err error) {
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
return
}

View File

@@ -1,31 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "time"
// AccessPackageResourceRequestObject undocumented
type AccessPackageResourceRequestObject struct {
// Entity is the base model of AccessPackageResourceRequestObject
Entity
// CatalogID undocumented
CatalogID *string `json:"catalogId,omitempty"`
// ExecuteImmediately undocumented
ExecuteImmediately *bool `json:"executeImmediately,omitempty"`
// IsValidationOnly undocumented
IsValidationOnly *bool `json:"isValidationOnly,omitempty"`
// RequestType undocumented
RequestType *string `json:"requestType,omitempty"`
// RequestState undocumented
RequestState *string `json:"requestState,omitempty"`
// RequestStatus undocumented
RequestStatus *string `json:"requestStatus,omitempty"`
// Justification undocumented
Justification *string `json:"justification,omitempty"`
// ExpirationDateTime undocumented
ExpirationDateTime *time.Time `json:"expirationDateTime,omitempty"`
// AccessPackageResource undocumented
AccessPackageResource *AccessPackageResource `json:"accessPackageResource,omitempty"`
// Requestor undocumented
Requestor *AccessPackageSubject `json:"requestor,omitempty"`
}

View File

@@ -1,52 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "context"
// AccessPackageResourceRequestObjectRequestBuilder is request builder for AccessPackageResourceRequestObject
type AccessPackageResourceRequestObjectRequestBuilder struct{ BaseRequestBuilder }
// Request returns AccessPackageResourceRequestObjectRequest
func (b *AccessPackageResourceRequestObjectRequestBuilder) Request() *AccessPackageResourceRequestObjectRequest {
return &AccessPackageResourceRequestObjectRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AccessPackageResourceRequestObjectRequest is request for AccessPackageResourceRequestObject
type AccessPackageResourceRequestObjectRequest struct{ BaseRequest }
// Get performs GET request for AccessPackageResourceRequestObject
func (r *AccessPackageResourceRequestObjectRequest) Get(ctx context.Context) (resObj *AccessPackageResourceRequestObject, err error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
return
}
// Update performs PATCH request for AccessPackageResourceRequestObject
func (r *AccessPackageResourceRequestObjectRequest) Update(ctx context.Context, reqObj *AccessPackageResourceRequestObject) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for AccessPackageResourceRequestObject
func (r *AccessPackageResourceRequestObjectRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}
// AccessPackageResource is navigation property
func (b *AccessPackageResourceRequestObjectRequestBuilder) AccessPackageResource() *AccessPackageResourceRequestBuilder {
bb := &AccessPackageResourceRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageResource"
return bb
}
// Requestor is navigation property
func (b *AccessPackageResourceRequestObjectRequestBuilder) Requestor() *AccessPackageSubjectRequestBuilder {
bb := &AccessPackageSubjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/requestor"
return bb
}

View File

@@ -1,19 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AccessPackageResourceRole undocumented
type AccessPackageResourceRole struct {
// Entity is the base model of AccessPackageResourceRole
Entity
// DisplayName undocumented
DisplayName *string `json:"displayName,omitempty"`
// Description undocumented
Description *string `json:"description,omitempty"`
// OriginID undocumented
OriginID *string `json:"originId,omitempty"`
// OriginSystem undocumented
OriginSystem *string `json:"originSystem,omitempty"`
// AccessPackageResource undocumented
AccessPackageResource *AccessPackageResource `json:"accessPackageResource,omitempty"`
}

View File

@@ -1,45 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "context"
// AccessPackageResourceRoleRequestBuilder is request builder for AccessPackageResourceRole
type AccessPackageResourceRoleRequestBuilder struct{ BaseRequestBuilder }
// Request returns AccessPackageResourceRoleRequest
func (b *AccessPackageResourceRoleRequestBuilder) Request() *AccessPackageResourceRoleRequest {
return &AccessPackageResourceRoleRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AccessPackageResourceRoleRequest is request for AccessPackageResourceRole
type AccessPackageResourceRoleRequest struct{ BaseRequest }
// Get performs GET request for AccessPackageResourceRole
func (r *AccessPackageResourceRoleRequest) Get(ctx context.Context) (resObj *AccessPackageResourceRole, err error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
return
}
// Update performs PATCH request for AccessPackageResourceRole
func (r *AccessPackageResourceRoleRequest) Update(ctx context.Context, reqObj *AccessPackageResourceRole) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for AccessPackageResourceRole
func (r *AccessPackageResourceRoleRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}
// AccessPackageResource is navigation property
func (b *AccessPackageResourceRoleRequestBuilder) AccessPackageResource() *AccessPackageResourceRequestBuilder {
bb := &AccessPackageResourceRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageResource"
return bb
}

View File

@@ -1,23 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "time"
// AccessPackageResourceRoleScope undocumented
type AccessPackageResourceRoleScope struct {
// Entity is the base model of AccessPackageResourceRoleScope
Entity
// CreatedBy undocumented
CreatedBy *string `json:"createdBy,omitempty"`
// CreatedDateTime undocumented
CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
// ModifiedBy undocumented
ModifiedBy *string `json:"modifiedBy,omitempty"`
// ModifiedDateTime undocumented
ModifiedDateTime *time.Time `json:"modifiedDateTime,omitempty"`
// AccessPackageResourceRole undocumented
AccessPackageResourceRole *AccessPackageResourceRole `json:"accessPackageResourceRole,omitempty"`
// AccessPackageResourceScope undocumented
AccessPackageResourceScope *AccessPackageResourceScope `json:"accessPackageResourceScope,omitempty"`
}

View File

@@ -1,52 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "context"
// AccessPackageResourceRoleScopeRequestBuilder is request builder for AccessPackageResourceRoleScope
type AccessPackageResourceRoleScopeRequestBuilder struct{ BaseRequestBuilder }
// Request returns AccessPackageResourceRoleScopeRequest
func (b *AccessPackageResourceRoleScopeRequestBuilder) Request() *AccessPackageResourceRoleScopeRequest {
return &AccessPackageResourceRoleScopeRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AccessPackageResourceRoleScopeRequest is request for AccessPackageResourceRoleScope
type AccessPackageResourceRoleScopeRequest struct{ BaseRequest }
// Get performs GET request for AccessPackageResourceRoleScope
func (r *AccessPackageResourceRoleScopeRequest) Get(ctx context.Context) (resObj *AccessPackageResourceRoleScope, err error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
return
}
// Update performs PATCH request for AccessPackageResourceRoleScope
func (r *AccessPackageResourceRoleScopeRequest) Update(ctx context.Context, reqObj *AccessPackageResourceRoleScope) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for AccessPackageResourceRoleScope
func (r *AccessPackageResourceRoleScopeRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}
// AccessPackageResourceRole is navigation property
func (b *AccessPackageResourceRoleScopeRequestBuilder) AccessPackageResourceRole() *AccessPackageResourceRoleRequestBuilder {
bb := &AccessPackageResourceRoleRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageResourceRole"
return bb
}
// AccessPackageResourceScope is navigation property
func (b *AccessPackageResourceRoleScopeRequestBuilder) AccessPackageResourceScope() *AccessPackageResourceScopeRequestBuilder {
bb := &AccessPackageResourceScopeRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageResourceScope"
return bb
}

View File

@@ -1,25 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AccessPackageResourceScope undocumented
type AccessPackageResourceScope struct {
// Entity is the base model of AccessPackageResourceScope
Entity
// DisplayName undocumented
DisplayName *string `json:"displayName,omitempty"`
// Description undocumented
Description *string `json:"description,omitempty"`
// OriginID undocumented
OriginID *string `json:"originId,omitempty"`
// OriginSystem undocumented
OriginSystem *string `json:"originSystem,omitempty"`
// RoleOriginID undocumented
RoleOriginID *string `json:"roleOriginId,omitempty"`
// IsRootScope undocumented
IsRootScope *bool `json:"isRootScope,omitempty"`
// URL undocumented
URL *string `json:"url,omitempty"`
// AccessPackageResource undocumented
AccessPackageResource *AccessPackageResource `json:"accessPackageResource,omitempty"`
}

View File

@@ -1,45 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "context"
// AccessPackageResourceScopeRequestBuilder is request builder for AccessPackageResourceScope
type AccessPackageResourceScopeRequestBuilder struct{ BaseRequestBuilder }
// Request returns AccessPackageResourceScopeRequest
func (b *AccessPackageResourceScopeRequestBuilder) Request() *AccessPackageResourceScopeRequest {
return &AccessPackageResourceScopeRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AccessPackageResourceScopeRequest is request for AccessPackageResourceScope
type AccessPackageResourceScopeRequest struct{ BaseRequest }
// Get performs GET request for AccessPackageResourceScope
func (r *AccessPackageResourceScopeRequest) Get(ctx context.Context) (resObj *AccessPackageResourceScope, err error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
return
}
// Update performs PATCH request for AccessPackageResourceScope
func (r *AccessPackageResourceScopeRequest) Update(ctx context.Context, reqObj *AccessPackageResourceScope) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for AccessPackageResourceScope
func (r *AccessPackageResourceScopeRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}
// AccessPackageResource is navigation property
func (b *AccessPackageResourceScopeRequestBuilder) AccessPackageResource() *AccessPackageResourceRequestBuilder {
bb := &AccessPackageResourceRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/accessPackageResource"
return bb
}

View File

@@ -1,23 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AccessPackageSubject undocumented
type AccessPackageSubject struct {
// Entity is the base model of AccessPackageSubject
Entity
// ObjectID undocumented
ObjectID *string `json:"objectId,omitempty"`
// AltSecID undocumented
AltSecID *string `json:"altSecId,omitempty"`
// DisplayName undocumented
DisplayName *string `json:"displayName,omitempty"`
// PrincipalName undocumented
PrincipalName *string `json:"principalName,omitempty"`
// Email undocumented
Email *string `json:"email,omitempty"`
// OnPremisesSecurityIdentifier undocumented
OnPremisesSecurityIdentifier *string `json:"onPremisesSecurityIdentifier,omitempty"`
// Type undocumented
Type *string `json:"type,omitempty"`
}

View File

@@ -1,38 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "context"
// AccessPackageSubjectRequestBuilder is request builder for AccessPackageSubject
type AccessPackageSubjectRequestBuilder struct{ BaseRequestBuilder }
// Request returns AccessPackageSubjectRequest
func (b *AccessPackageSubjectRequestBuilder) Request() *AccessPackageSubjectRequest {
return &AccessPackageSubjectRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AccessPackageSubjectRequest is request for AccessPackageSubject
type AccessPackageSubjectRequest struct{ BaseRequest }
// Get performs GET request for AccessPackageSubject
func (r *AccessPackageSubjectRequest) Get(ctx context.Context) (resObj *AccessPackageSubject, err error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
return
}
// Update performs PATCH request for AccessPackageSubject
func (r *AccessPackageSubjectRequest) Update(ctx context.Context, reqObj *AccessPackageSubject) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for AccessPackageSubject
func (r *AccessPackageSubjectRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

View File

@@ -1,125 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "context"
// AccessReviewStopRequestParameter undocumented
type AccessReviewStopRequestParameter struct {
}
// AccessReviewSendReminderRequestParameter undocumented
type AccessReviewSendReminderRequestParameter struct {
}
// AccessReviewResetDecisionsRequestParameter undocumented
type AccessReviewResetDecisionsRequestParameter struct {
}
// AccessReviewApplyDecisionsRequestParameter undocumented
type AccessReviewApplyDecisionsRequestParameter struct {
}
//
type AccessReviewStopRequestBuilder struct{ BaseRequestBuilder }
// Stop action undocumented
func (b *AccessReviewRequestBuilder) Stop(reqObj *AccessReviewStopRequestParameter) *AccessReviewStopRequestBuilder {
bb := &AccessReviewStopRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.BaseRequestBuilder.baseURL += "/stop"
bb.BaseRequestBuilder.requestObject = reqObj
return bb
}
//
type AccessReviewStopRequest struct{ BaseRequest }
//
func (b *AccessReviewStopRequestBuilder) Request() *AccessReviewStopRequest {
return &AccessReviewStopRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client, requestObject: b.requestObject},
}
}
//
func (r *AccessReviewStopRequest) Post(ctx context.Context) error {
return r.JSONRequest(ctx, "POST", "", r.requestObject, nil)
}
//
type AccessReviewSendReminderRequestBuilder struct{ BaseRequestBuilder }
// SendReminder action undocumented
func (b *AccessReviewRequestBuilder) SendReminder(reqObj *AccessReviewSendReminderRequestParameter) *AccessReviewSendReminderRequestBuilder {
bb := &AccessReviewSendReminderRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.BaseRequestBuilder.baseURL += "/sendReminder"
bb.BaseRequestBuilder.requestObject = reqObj
return bb
}
//
type AccessReviewSendReminderRequest struct{ BaseRequest }
//
func (b *AccessReviewSendReminderRequestBuilder) Request() *AccessReviewSendReminderRequest {
return &AccessReviewSendReminderRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client, requestObject: b.requestObject},
}
}
//
func (r *AccessReviewSendReminderRequest) Post(ctx context.Context) error {
return r.JSONRequest(ctx, "POST", "", r.requestObject, nil)
}
//
type AccessReviewResetDecisionsRequestBuilder struct{ BaseRequestBuilder }
// ResetDecisions action undocumented
func (b *AccessReviewRequestBuilder) ResetDecisions(reqObj *AccessReviewResetDecisionsRequestParameter) *AccessReviewResetDecisionsRequestBuilder {
bb := &AccessReviewResetDecisionsRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.BaseRequestBuilder.baseURL += "/resetDecisions"
bb.BaseRequestBuilder.requestObject = reqObj
return bb
}
//
type AccessReviewResetDecisionsRequest struct{ BaseRequest }
//
func (b *AccessReviewResetDecisionsRequestBuilder) Request() *AccessReviewResetDecisionsRequest {
return &AccessReviewResetDecisionsRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client, requestObject: b.requestObject},
}
}
//
func (r *AccessReviewResetDecisionsRequest) Post(ctx context.Context) error {
return r.JSONRequest(ctx, "POST", "", r.requestObject, nil)
}
//
type AccessReviewApplyDecisionsRequestBuilder struct{ BaseRequestBuilder }
// ApplyDecisions action undocumented
func (b *AccessReviewRequestBuilder) ApplyDecisions(reqObj *AccessReviewApplyDecisionsRequestParameter) *AccessReviewApplyDecisionsRequestBuilder {
bb := &AccessReviewApplyDecisionsRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.BaseRequestBuilder.baseURL += "/applyDecisions"
bb.BaseRequestBuilder.requestObject = reqObj
return bb
}
//
type AccessReviewApplyDecisionsRequest struct{ BaseRequest }
//
func (b *AccessReviewApplyDecisionsRequestBuilder) Request() *AccessReviewApplyDecisionsRequest {
return &AccessReviewApplyDecisionsRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client, requestObject: b.requestObject},
}
}
//
func (r *AccessReviewApplyDecisionsRequest) Post(ctx context.Context) error {
return r.JSONRequest(ctx, "POST", "", r.requestObject, nil)
}

View File

@@ -1,29 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "time"
// AccessReviewDecision undocumented
type AccessReviewDecision struct {
// Entity is the base model of AccessReviewDecision
Entity
// AccessReviewID undocumented
AccessReviewID *string `json:"accessReviewId,omitempty"`
// ReviewedBy undocumented
ReviewedBy *UserIdentity `json:"reviewedBy,omitempty"`
// ReviewedDateTime undocumented
ReviewedDateTime *time.Time `json:"reviewedDateTime,omitempty"`
// ReviewResult undocumented
ReviewResult *string `json:"reviewResult,omitempty"`
// Justification undocumented
Justification *string `json:"justification,omitempty"`
// AppliedBy undocumented
AppliedBy *UserIdentity `json:"appliedBy,omitempty"`
// AppliedDateTime undocumented
AppliedDateTime *time.Time `json:"appliedDateTime,omitempty"`
// ApplyResult undocumented
ApplyResult *string `json:"applyResult,omitempty"`
// AccessRecommendation undocumented
AccessRecommendation *string `json:"accessRecommendation,omitempty"`
}

View File

@@ -1,38 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "context"
// AccessReviewDecisionRequestBuilder is request builder for AccessReviewDecision
type AccessReviewDecisionRequestBuilder struct{ BaseRequestBuilder }
// Request returns AccessReviewDecisionRequest
func (b *AccessReviewDecisionRequestBuilder) Request() *AccessReviewDecisionRequest {
return &AccessReviewDecisionRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AccessReviewDecisionRequest is request for AccessReviewDecision
type AccessReviewDecisionRequest struct{ BaseRequest }
// Get performs GET request for AccessReviewDecision
func (r *AccessReviewDecisionRequest) Get(ctx context.Context) (resObj *AccessReviewDecision, err error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
return
}
// Update performs PATCH request for AccessReviewDecision
func (r *AccessReviewDecisionRequest) Update(ctx context.Context, reqObj *AccessReviewDecision) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for AccessReviewDecision
func (r *AccessReviewDecisionRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

View File

@@ -1,39 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "time"
// AccessReview undocumented
type AccessReview struct {
// Entity is the base model of AccessReview
Entity
// DisplayName undocumented
DisplayName *string `json:"displayName,omitempty"`
// StartDateTime undocumented
StartDateTime *time.Time `json:"startDateTime,omitempty"`
// EndDateTime undocumented
EndDateTime *time.Time `json:"endDateTime,omitempty"`
// Status undocumented
Status *string `json:"status,omitempty"`
// CreatedBy undocumented
CreatedBy *UserIdentity `json:"createdBy,omitempty"`
// BusinessFlowTemplateID undocumented
BusinessFlowTemplateID *string `json:"businessFlowTemplateId,omitempty"`
// ReviewerType undocumented
ReviewerType *string `json:"reviewerType,omitempty"`
// Description undocumented
Description *string `json:"description,omitempty"`
// Settings undocumented
Settings *AccessReviewSettings `json:"settings,omitempty"`
// ReviewedEntity undocumented
ReviewedEntity *Identity `json:"reviewedEntity,omitempty"`
// Reviewers undocumented
Reviewers []AccessReviewReviewer `json:"reviewers,omitempty"`
// Decisions undocumented
Decisions []AccessReviewDecision `json:"decisions,omitempty"`
// MyDecisions undocumented
MyDecisions []AccessReviewDecision `json:"myDecisions,omitempty"`
// Instances undocumented
Instances []AccessReview `json:"instances,omitempty"`
}

View File

@@ -1,17 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AccessReviewRecurrenceSettings undocumented
type AccessReviewRecurrenceSettings struct {
// Object is the base model of AccessReviewRecurrenceSettings
Object
// RecurrenceType undocumented
RecurrenceType *string `json:"recurrenceType,omitempty"`
// RecurrenceEndType undocumented
RecurrenceEndType *string `json:"recurrenceEndType,omitempty"`
// DurationInDays undocumented
DurationInDays *int `json:"durationInDays,omitempty"`
// RecurrenceCount undocumented
RecurrenceCount *int `json:"recurrenceCount,omitempty"`
}

View File

@@ -1,421 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import (
"context"
"fmt"
"io/ioutil"
"net/http"
"github.com/matterbridge/msgraph.go/jsonx"
)
// AccessReviewRequestBuilder is request builder for AccessReview
type AccessReviewRequestBuilder struct{ BaseRequestBuilder }
// Request returns AccessReviewRequest
func (b *AccessReviewRequestBuilder) Request() *AccessReviewRequest {
return &AccessReviewRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AccessReviewRequest is request for AccessReview
type AccessReviewRequest struct{ BaseRequest }
// Get performs GET request for AccessReview
func (r *AccessReviewRequest) Get(ctx context.Context) (resObj *AccessReview, err error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
return
}
// Update performs PATCH request for AccessReview
func (r *AccessReviewRequest) Update(ctx context.Context, reqObj *AccessReview) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for AccessReview
func (r *AccessReviewRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}
// Decisions returns request builder for AccessReviewDecision collection
func (b *AccessReviewRequestBuilder) Decisions() *AccessReviewDecisionsCollectionRequestBuilder {
bb := &AccessReviewDecisionsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/decisions"
return bb
}
// AccessReviewDecisionsCollectionRequestBuilder is request builder for AccessReviewDecision collection
type AccessReviewDecisionsCollectionRequestBuilder struct{ BaseRequestBuilder }
// Request returns request for AccessReviewDecision collection
func (b *AccessReviewDecisionsCollectionRequestBuilder) Request() *AccessReviewDecisionsCollectionRequest {
return &AccessReviewDecisionsCollectionRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ID returns request builder for AccessReviewDecision item
func (b *AccessReviewDecisionsCollectionRequestBuilder) ID(id string) *AccessReviewDecisionRequestBuilder {
bb := &AccessReviewDecisionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/" + id
return bb
}
// AccessReviewDecisionsCollectionRequest is request for AccessReviewDecision collection
type AccessReviewDecisionsCollectionRequest struct{ BaseRequest }
// Paging perfoms paging operation for AccessReviewDecision collection
func (r *AccessReviewDecisionsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessReviewDecision, error) {
req, err := r.NewJSONRequest(method, path, obj)
if err != nil {
return nil, err
}
if ctx != nil {
req = req.WithContext(ctx)
}
res, err := r.client.Do(req)
if err != nil {
return nil, err
}
var values []AccessReviewDecision
for {
defer res.Body.Close()
if res.StatusCode != http.StatusOK {
b, _ := ioutil.ReadAll(res.Body)
errRes := &ErrorResponse{Response: res}
err := jsonx.Unmarshal(b, errRes)
if err != nil {
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
}
return nil, errRes
}
var (
paging Paging
value []AccessReviewDecision
)
err := jsonx.NewDecoder(res.Body).Decode(&paging)
if err != nil {
return nil, err
}
err = jsonx.Unmarshal(paging.Value, &value)
if err != nil {
return nil, err
}
values = append(values, value...)
if len(paging.NextLink) == 0 {
return values, nil
}
req, err = http.NewRequest("GET", paging.NextLink, nil)
if ctx != nil {
req = req.WithContext(ctx)
}
res, err = r.client.Do(req)
if err != nil {
return nil, err
}
}
}
// Get performs GET request for AccessReviewDecision collection
func (r *AccessReviewDecisionsCollectionRequest) Get(ctx context.Context) ([]AccessReviewDecision, error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
return r.Paging(ctx, "GET", query, nil)
}
// Add performs POST request for AccessReviewDecision collection
func (r *AccessReviewDecisionsCollectionRequest) Add(ctx context.Context, reqObj *AccessReviewDecision) (resObj *AccessReviewDecision, err error) {
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
return
}
// Instances returns request builder for AccessReview collection
func (b *AccessReviewRequestBuilder) Instances() *AccessReviewInstancesCollectionRequestBuilder {
bb := &AccessReviewInstancesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/instances"
return bb
}
// AccessReviewInstancesCollectionRequestBuilder is request builder for AccessReview collection
type AccessReviewInstancesCollectionRequestBuilder struct{ BaseRequestBuilder }
// Request returns request for AccessReview collection
func (b *AccessReviewInstancesCollectionRequestBuilder) Request() *AccessReviewInstancesCollectionRequest {
return &AccessReviewInstancesCollectionRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ID returns request builder for AccessReview item
func (b *AccessReviewInstancesCollectionRequestBuilder) ID(id string) *AccessReviewRequestBuilder {
bb := &AccessReviewRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/" + id
return bb
}
// AccessReviewInstancesCollectionRequest is request for AccessReview collection
type AccessReviewInstancesCollectionRequest struct{ BaseRequest }
// Paging perfoms paging operation for AccessReview collection
func (r *AccessReviewInstancesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessReview, error) {
req, err := r.NewJSONRequest(method, path, obj)
if err != nil {
return nil, err
}
if ctx != nil {
req = req.WithContext(ctx)
}
res, err := r.client.Do(req)
if err != nil {
return nil, err
}
var values []AccessReview
for {
defer res.Body.Close()
if res.StatusCode != http.StatusOK {
b, _ := ioutil.ReadAll(res.Body)
errRes := &ErrorResponse{Response: res}
err := jsonx.Unmarshal(b, errRes)
if err != nil {
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
}
return nil, errRes
}
var (
paging Paging
value []AccessReview
)
err := jsonx.NewDecoder(res.Body).Decode(&paging)
if err != nil {
return nil, err
}
err = jsonx.Unmarshal(paging.Value, &value)
if err != nil {
return nil, err
}
values = append(values, value...)
if len(paging.NextLink) == 0 {
return values, nil
}
req, err = http.NewRequest("GET", paging.NextLink, nil)
if ctx != nil {
req = req.WithContext(ctx)
}
res, err = r.client.Do(req)
if err != nil {
return nil, err
}
}
}
// Get performs GET request for AccessReview collection
func (r *AccessReviewInstancesCollectionRequest) Get(ctx context.Context) ([]AccessReview, error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
return r.Paging(ctx, "GET", query, nil)
}
// Add performs POST request for AccessReview collection
func (r *AccessReviewInstancesCollectionRequest) Add(ctx context.Context, reqObj *AccessReview) (resObj *AccessReview, err error) {
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
return
}
// MyDecisions returns request builder for AccessReviewDecision collection
func (b *AccessReviewRequestBuilder) MyDecisions() *AccessReviewMyDecisionsCollectionRequestBuilder {
bb := &AccessReviewMyDecisionsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/myDecisions"
return bb
}
// AccessReviewMyDecisionsCollectionRequestBuilder is request builder for AccessReviewDecision collection
type AccessReviewMyDecisionsCollectionRequestBuilder struct{ BaseRequestBuilder }
// Request returns request for AccessReviewDecision collection
func (b *AccessReviewMyDecisionsCollectionRequestBuilder) Request() *AccessReviewMyDecisionsCollectionRequest {
return &AccessReviewMyDecisionsCollectionRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ID returns request builder for AccessReviewDecision item
func (b *AccessReviewMyDecisionsCollectionRequestBuilder) ID(id string) *AccessReviewDecisionRequestBuilder {
bb := &AccessReviewDecisionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/" + id
return bb
}
// AccessReviewMyDecisionsCollectionRequest is request for AccessReviewDecision collection
type AccessReviewMyDecisionsCollectionRequest struct{ BaseRequest }
// Paging perfoms paging operation for AccessReviewDecision collection
func (r *AccessReviewMyDecisionsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessReviewDecision, error) {
req, err := r.NewJSONRequest(method, path, obj)
if err != nil {
return nil, err
}
if ctx != nil {
req = req.WithContext(ctx)
}
res, err := r.client.Do(req)
if err != nil {
return nil, err
}
var values []AccessReviewDecision
for {
defer res.Body.Close()
if res.StatusCode != http.StatusOK {
b, _ := ioutil.ReadAll(res.Body)
errRes := &ErrorResponse{Response: res}
err := jsonx.Unmarshal(b, errRes)
if err != nil {
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
}
return nil, errRes
}
var (
paging Paging
value []AccessReviewDecision
)
err := jsonx.NewDecoder(res.Body).Decode(&paging)
if err != nil {
return nil, err
}
err = jsonx.Unmarshal(paging.Value, &value)
if err != nil {
return nil, err
}
values = append(values, value...)
if len(paging.NextLink) == 0 {
return values, nil
}
req, err = http.NewRequest("GET", paging.NextLink, nil)
if ctx != nil {
req = req.WithContext(ctx)
}
res, err = r.client.Do(req)
if err != nil {
return nil, err
}
}
}
// Get performs GET request for AccessReviewDecision collection
func (r *AccessReviewMyDecisionsCollectionRequest) Get(ctx context.Context) ([]AccessReviewDecision, error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
return r.Paging(ctx, "GET", query, nil)
}
// Add performs POST request for AccessReviewDecision collection
func (r *AccessReviewMyDecisionsCollectionRequest) Add(ctx context.Context, reqObj *AccessReviewDecision) (resObj *AccessReviewDecision, err error) {
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
return
}
// Reviewers returns request builder for AccessReviewReviewer collection
func (b *AccessReviewRequestBuilder) Reviewers() *AccessReviewReviewersCollectionRequestBuilder {
bb := &AccessReviewReviewersCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/reviewers"
return bb
}
// AccessReviewReviewersCollectionRequestBuilder is request builder for AccessReviewReviewer collection
type AccessReviewReviewersCollectionRequestBuilder struct{ BaseRequestBuilder }
// Request returns request for AccessReviewReviewer collection
func (b *AccessReviewReviewersCollectionRequestBuilder) Request() *AccessReviewReviewersCollectionRequest {
return &AccessReviewReviewersCollectionRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ID returns request builder for AccessReviewReviewer item
func (b *AccessReviewReviewersCollectionRequestBuilder) ID(id string) *AccessReviewReviewerRequestBuilder {
bb := &AccessReviewReviewerRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/" + id
return bb
}
// AccessReviewReviewersCollectionRequest is request for AccessReviewReviewer collection
type AccessReviewReviewersCollectionRequest struct{ BaseRequest }
// Paging perfoms paging operation for AccessReviewReviewer collection
func (r *AccessReviewReviewersCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AccessReviewReviewer, error) {
req, err := r.NewJSONRequest(method, path, obj)
if err != nil {
return nil, err
}
if ctx != nil {
req = req.WithContext(ctx)
}
res, err := r.client.Do(req)
if err != nil {
return nil, err
}
var values []AccessReviewReviewer
for {
defer res.Body.Close()
if res.StatusCode != http.StatusOK {
b, _ := ioutil.ReadAll(res.Body)
errRes := &ErrorResponse{Response: res}
err := jsonx.Unmarshal(b, errRes)
if err != nil {
return nil, fmt.Errorf("%s: %s", res.Status, string(b))
}
return nil, errRes
}
var (
paging Paging
value []AccessReviewReviewer
)
err := jsonx.NewDecoder(res.Body).Decode(&paging)
if err != nil {
return nil, err
}
err = jsonx.Unmarshal(paging.Value, &value)
if err != nil {
return nil, err
}
values = append(values, value...)
if len(paging.NextLink) == 0 {
return values, nil
}
req, err = http.NewRequest("GET", paging.NextLink, nil)
if ctx != nil {
req = req.WithContext(ctx)
}
res, err = r.client.Do(req)
if err != nil {
return nil, err
}
}
}
// Get performs GET request for AccessReviewReviewer collection
func (r *AccessReviewReviewersCollectionRequest) Get(ctx context.Context) ([]AccessReviewReviewer, error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
return r.Paging(ctx, "GET", query, nil)
}
// Add performs POST request for AccessReviewReviewer collection
func (r *AccessReviewReviewersCollectionRequest) Add(ctx context.Context, reqObj *AccessReviewReviewer) (resObj *AccessReviewReviewer, err error) {
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
return
}

View File

@@ -1,13 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AccessReviewReviewer undocumented
type AccessReviewReviewer struct {
// Entity is the base model of AccessReviewReviewer
Entity
// DisplayName undocumented
DisplayName *string `json:"displayName,omitempty"`
// UserPrincipalName undocumented
UserPrincipalName *string `json:"userPrincipalName,omitempty"`
}

View File

@@ -1,38 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "context"
// AccessReviewReviewerRequestBuilder is request builder for AccessReviewReviewer
type AccessReviewReviewerRequestBuilder struct{ BaseRequestBuilder }
// Request returns AccessReviewReviewerRequest
func (b *AccessReviewReviewerRequestBuilder) Request() *AccessReviewReviewerRequest {
return &AccessReviewReviewerRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AccessReviewReviewerRequest is request for AccessReviewReviewer
type AccessReviewReviewerRequest struct{ BaseRequest }
// Get performs GET request for AccessReviewReviewer
func (r *AccessReviewReviewerRequest) Get(ctx context.Context) (resObj *AccessReviewReviewer, err error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
return
}
// Update performs PATCH request for AccessReviewReviewer
func (r *AccessReviewReviewerRequest) Update(ctx context.Context, reqObj *AccessReviewReviewer) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for AccessReviewReviewer
func (r *AccessReviewReviewerRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

View File

@@ -1,27 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AccessReviewSettings undocumented
type AccessReviewSettings struct {
// Object is the base model of AccessReviewSettings
Object
// MailNotificationsEnabled undocumented
MailNotificationsEnabled *bool `json:"mailNotificationsEnabled,omitempty"`
// RemindersEnabled undocumented
RemindersEnabled *bool `json:"remindersEnabled,omitempty"`
// JustificationRequiredOnApproval undocumented
JustificationRequiredOnApproval *bool `json:"justificationRequiredOnApproval,omitempty"`
// RecurrenceSettings undocumented
RecurrenceSettings *AccessReviewRecurrenceSettings `json:"recurrenceSettings,omitempty"`
// AutoReviewEnabled undocumented
AutoReviewEnabled *bool `json:"autoReviewEnabled,omitempty"`
// ActivityDurationInDays undocumented
ActivityDurationInDays *int `json:"activityDurationInDays,omitempty"`
// AutoReviewSettings undocumented
AutoReviewSettings *AutoReviewSettings `json:"autoReviewSettings,omitempty"`
// AutoApplyReviewResultsEnabled undocumented
AutoApplyReviewResultsEnabled *bool `json:"autoApplyReviewResultsEnabled,omitempty"`
// AccessRecommendationsEnabled undocumented
AccessRecommendationsEnabled *bool `json:"accessRecommendationsEnabled,omitempty"`
}

View File

@@ -1,25 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AccessScope undocumented
type AccessScope int
const (
// AccessScopeVInOrganization undocumented
AccessScopeVInOrganization AccessScope = 0
// AccessScopeVNotInOrganization undocumented
AccessScopeVNotInOrganization AccessScope = 1
)
// AccessScopePInOrganization returns a pointer to AccessScopeVInOrganization
func AccessScopePInOrganization() *AccessScope {
v := AccessScopeVInOrganization
return &v
}
// AccessScopePNotInOrganization returns a pointer to AccessScopeVNotInOrganization
func AccessScopePNotInOrganization() *AccessScope {
v := AccessScopeVNotInOrganization
return &v
}

View File

@@ -1,25 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AccessType undocumented
type AccessType int
const (
// AccessTypeVGrant undocumented
AccessTypeVGrant AccessType = 1
// AccessTypeVDeny undocumented
AccessTypeVDeny AccessType = 2
)
// AccessTypePGrant returns a pointer to AccessTypeVGrant
func AccessTypePGrant() *AccessType {
v := AccessTypeVGrant
return &v
}
// AccessTypePDeny returns a pointer to AccessTypeVDeny
func AccessTypePDeny() *AccessType {
v := AccessTypeVDeny
return &v
}

View File

@@ -1,13 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AccountAlias undocumented
type AccountAlias struct {
// Object is the base model of AccountAlias
Object
// ID undocumented
ID *string `json:"id,omitempty"`
// IDType undocumented
IDType *string `json:"idType,omitempty"`
}

View File

@@ -1,23 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "time"
// Account undocumented
type Account struct {
// Entity is the base model of Account
Entity
// Number undocumented
Number *string `json:"number,omitempty"`
// DisplayName undocumented
DisplayName *string `json:"displayName,omitempty"`
// Category undocumented
Category *string `json:"category,omitempty"`
// SubCategory undocumented
SubCategory *string `json:"subCategory,omitempty"`
// Blocked undocumented
Blocked *bool `json:"blocked,omitempty"`
// LastModifiedDateTime undocumented
LastModifiedDateTime *time.Time `json:"lastModifiedDateTime,omitempty"`
}

View File

@@ -1,57 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AccountStatus undocumented
type AccountStatus int
const (
// AccountStatusVUnknown undocumented
AccountStatusVUnknown AccountStatus = 0
// AccountStatusVStaged undocumented
AccountStatusVStaged AccountStatus = 1
// AccountStatusVActive undocumented
AccountStatusVActive AccountStatus = 2
// AccountStatusVSuspended undocumented
AccountStatusVSuspended AccountStatus = 3
// AccountStatusVDeleted undocumented
AccountStatusVDeleted AccountStatus = 4
// AccountStatusVUnknownFutureValue undocumented
AccountStatusVUnknownFutureValue AccountStatus = 127
)
// AccountStatusPUnknown returns a pointer to AccountStatusVUnknown
func AccountStatusPUnknown() *AccountStatus {
v := AccountStatusVUnknown
return &v
}
// AccountStatusPStaged returns a pointer to AccountStatusVStaged
func AccountStatusPStaged() *AccountStatus {
v := AccountStatusVStaged
return &v
}
// AccountStatusPActive returns a pointer to AccountStatusVActive
func AccountStatusPActive() *AccountStatus {
v := AccountStatusVActive
return &v
}
// AccountStatusPSuspended returns a pointer to AccountStatusVSuspended
func AccountStatusPSuspended() *AccountStatus {
v := AccountStatusVSuspended
return &v
}
// AccountStatusPDeleted returns a pointer to AccountStatusVDeleted
func AccountStatusPDeleted() *AccountStatus {
v := AccountStatusVDeleted
return &v
}
// AccountStatusPUnknownFutureValue returns a pointer to AccountStatusVUnknownFutureValue
func AccountStatusPUnknownFutureValue() *AccountStatus {
v := AccountStatusVUnknownFutureValue
return &v
}

View File

@@ -1,41 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// ActionSource undocumented
type ActionSource int
const (
// ActionSourceVManual undocumented
ActionSourceVManual ActionSource = 0
// ActionSourceVAutomatic undocumented
ActionSourceVAutomatic ActionSource = 1
// ActionSourceVRecommended undocumented
ActionSourceVRecommended ActionSource = 2
// ActionSourceVDefault undocumented
ActionSourceVDefault ActionSource = 3
)
// ActionSourcePManual returns a pointer to ActionSourceVManual
func ActionSourcePManual() *ActionSource {
v := ActionSourceVManual
return &v
}
// ActionSourcePAutomatic returns a pointer to ActionSourceVAutomatic
func ActionSourcePAutomatic() *ActionSource {
v := ActionSourceVAutomatic
return &v
}
// ActionSourcePRecommended returns a pointer to ActionSourceVRecommended
func ActionSourcePRecommended() *ActionSource {
v := ActionSourceVRecommended
return &v
}
// ActionSourcePDefault returns a pointer to ActionSourceVDefault
func ActionSourcePDefault() *ActionSource {
v := ActionSourceVDefault
return &v
}

View File

@@ -1,65 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// ActionState undocumented
type ActionState int
const (
// ActionStateVNone undocumented
ActionStateVNone ActionState = 0
// ActionStateVPending undocumented
ActionStateVPending ActionState = 1
// ActionStateVCanceled undocumented
ActionStateVCanceled ActionState = 2
// ActionStateVActive undocumented
ActionStateVActive ActionState = 3
// ActionStateVDone undocumented
ActionStateVDone ActionState = 4
// ActionStateVFailed undocumented
ActionStateVFailed ActionState = 5
// ActionStateVNotSupported undocumented
ActionStateVNotSupported ActionState = 6
)
// ActionStatePNone returns a pointer to ActionStateVNone
func ActionStatePNone() *ActionState {
v := ActionStateVNone
return &v
}
// ActionStatePPending returns a pointer to ActionStateVPending
func ActionStatePPending() *ActionState {
v := ActionStateVPending
return &v
}
// ActionStatePCanceled returns a pointer to ActionStateVCanceled
func ActionStatePCanceled() *ActionState {
v := ActionStateVCanceled
return &v
}
// ActionStatePActive returns a pointer to ActionStateVActive
func ActionStatePActive() *ActionState {
v := ActionStateVActive
return &v
}
// ActionStatePDone returns a pointer to ActionStateVDone
func ActionStatePDone() *ActionState {
v := ActionStateVDone
return &v
}
// ActionStatePFailed returns a pointer to ActionStateVFailed
func ActionStatePFailed() *ActionState {
v := ActionStateVFailed
return &v
}
// ActionStatePNotSupported returns a pointer to ActionStateVNotSupported
func ActionStatePNotSupported() *ActionState {
v := ActionStateVNotSupported
return &v
}

View File

@@ -1,45 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "context"
// ActiveDirectoryWindowsAutopilotDeploymentProfileRequestBuilder is request builder for ActiveDirectoryWindowsAutopilotDeploymentProfile
type ActiveDirectoryWindowsAutopilotDeploymentProfileRequestBuilder struct{ BaseRequestBuilder }
// Request returns ActiveDirectoryWindowsAutopilotDeploymentProfileRequest
func (b *ActiveDirectoryWindowsAutopilotDeploymentProfileRequestBuilder) Request() *ActiveDirectoryWindowsAutopilotDeploymentProfileRequest {
return &ActiveDirectoryWindowsAutopilotDeploymentProfileRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ActiveDirectoryWindowsAutopilotDeploymentProfileRequest is request for ActiveDirectoryWindowsAutopilotDeploymentProfile
type ActiveDirectoryWindowsAutopilotDeploymentProfileRequest struct{ BaseRequest }
// Get performs GET request for ActiveDirectoryWindowsAutopilotDeploymentProfile
func (r *ActiveDirectoryWindowsAutopilotDeploymentProfileRequest) Get(ctx context.Context) (resObj *ActiveDirectoryWindowsAutopilotDeploymentProfile, err error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
return
}
// Update performs PATCH request for ActiveDirectoryWindowsAutopilotDeploymentProfile
func (r *ActiveDirectoryWindowsAutopilotDeploymentProfileRequest) Update(ctx context.Context, reqObj *ActiveDirectoryWindowsAutopilotDeploymentProfile) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for ActiveDirectoryWindowsAutopilotDeploymentProfile
func (r *ActiveDirectoryWindowsAutopilotDeploymentProfileRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}
// DomainJoinConfiguration is navigation property
func (b *ActiveDirectoryWindowsAutopilotDeploymentProfileRequestBuilder) DomainJoinConfiguration() *WindowsDomainJoinConfigurationRequestBuilder {
bb := &WindowsDomainJoinConfigurationRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/domainJoinConfiguration"
return bb
}

View File

@@ -1,41 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// ActivityDomain undocumented
type ActivityDomain int
const (
// ActivityDomainVUnknown undocumented
ActivityDomainVUnknown ActivityDomain = 0
// ActivityDomainVWork undocumented
ActivityDomainVWork ActivityDomain = 1
// ActivityDomainVPersonal undocumented
ActivityDomainVPersonal ActivityDomain = 2
// ActivityDomainVUnrestricted undocumented
ActivityDomainVUnrestricted ActivityDomain = 3
)
// ActivityDomainPUnknown returns a pointer to ActivityDomainVUnknown
func ActivityDomainPUnknown() *ActivityDomain {
v := ActivityDomainVUnknown
return &v
}
// ActivityDomainPWork returns a pointer to ActivityDomainVWork
func ActivityDomainPWork() *ActivityDomain {
v := ActivityDomainVWork
return &v
}
// ActivityDomainPPersonal returns a pointer to ActivityDomainVPersonal
func ActivityDomainPPersonal() *ActivityDomain {
v := ActivityDomainVPersonal
return &v
}
// ActivityDomainPUnrestricted returns a pointer to ActivityDomainVUnrestricted
func ActivityDomainPUnrestricted() *ActivityDomain {
v := ActivityDomainVUnrestricted
return &v
}

View File

@@ -1,29 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "time"
// ActivityHistoryItem undocumented
type ActivityHistoryItem struct {
// Entity is the base model of ActivityHistoryItem
Entity
// Status undocumented
Status *Status `json:"status,omitempty"`
// ActiveDurationSeconds undocumented
ActiveDurationSeconds *int `json:"activeDurationSeconds,omitempty"`
// CreatedDateTime undocumented
CreatedDateTime *time.Time `json:"createdDateTime,omitempty"`
// LastActiveDateTime undocumented
LastActiveDateTime *time.Time `json:"lastActiveDateTime,omitempty"`
// LastModifiedDateTime undocumented
LastModifiedDateTime *time.Time `json:"lastModifiedDateTime,omitempty"`
// ExpirationDateTime undocumented
ExpirationDateTime *time.Time `json:"expirationDateTime,omitempty"`
// StartedDateTime undocumented
StartedDateTime *time.Time `json:"startedDateTime,omitempty"`
// UserTimezone undocumented
UserTimezone *string `json:"userTimezone,omitempty"`
// Activity undocumented
Activity *UserActivity `json:"activity,omitempty"`
}

View File

@@ -1,45 +0,0 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "context"
// ActivityHistoryItemRequestBuilder is request builder for ActivityHistoryItem
type ActivityHistoryItemRequestBuilder struct{ BaseRequestBuilder }
// Request returns ActivityHistoryItemRequest
func (b *ActivityHistoryItemRequestBuilder) Request() *ActivityHistoryItemRequest {
return &ActivityHistoryItemRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ActivityHistoryItemRequest is request for ActivityHistoryItem
type ActivityHistoryItemRequest struct{ BaseRequest }
// Get performs GET request for ActivityHistoryItem
func (r *ActivityHistoryItemRequest) Get(ctx context.Context) (resObj *ActivityHistoryItem, err error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
err = r.JSONRequest(ctx, "GET", query, nil, &resObj)
return
}
// Update performs PATCH request for ActivityHistoryItem
func (r *ActivityHistoryItemRequest) Update(ctx context.Context, reqObj *ActivityHistoryItem) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for ActivityHistoryItem
func (r *ActivityHistoryItemRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}
// Activity is navigation property
func (b *ActivityHistoryItemRequestBuilder) Activity() *UserActivityRequestBuilder {
bb := &UserActivityRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/activity"
return bb
}

Some files were not shown because too many files have changed in this diff Show More