5
0
mirror of https://github.com/cwinfo/matterbridge.git synced 2024-11-25 00:41:37 +00:00

Add initial Microsoft Teams support

Documentation on https://github.com/42wim/matterbridge/wiki/MS-Teams-setup
This commit is contained in:
Wim 2019-12-26 23:12:28 +01:00
parent 3af0dc3b3a
commit 795a8705c3
3362 changed files with 229502 additions and 22 deletions

View File

@ -76,6 +76,7 @@ type Protocol struct {
BindAddress string // mattermost, slack // DEPRECATED
Buffer int // api
Charset string // irc
ClientID string // msteams
ColorNicks bool // only irc for now
Debug bool // general
DebugLevel int // only for irc now
@ -124,6 +125,7 @@ type Protocol struct {
RemoteNickFormat string // all protocols
RunCommands []string // IRC
Server string // IRC,mattermost,XMPP,discord
SessionFile string // msteams,whatsapp
ShowJoinPart bool // all protocols
ShowTopicChange bool // slack
ShowUserTyping bool // slack
@ -134,6 +136,8 @@ type Protocol struct {
SyncTopic bool // slack
TengoModifyMessage string // general
Team string // mattermost, keybase
TeamID string // msteams
TenantID string // msteams
Token string // gitter, slack, discord, api
Topic string // zulip
URL string // mattermost, slack // DEPRECATED

169
bridge/msteams/msteams.go Normal file
View File

@ -0,0 +1,169 @@
package bgitter
import (
"context"
"os"
"strings"
"time"
"github.com/42wim/matterbridge/bridge"
"github.com/42wim/matterbridge/bridge/config"
"github.com/mattn/godown"
msgraph "github.com/yaegashi/msgraph.go/beta"
"github.com/yaegashi/msgraph.go/msauth"
"golang.org/x/oauth2"
)
//var defaultScopes = []string{"openid", "profile", "offline_access", "User.Read", "Files.Read", "ChannelMessage.Read.All", "Chat.ReadWrite", "User.Read.All", "User.ReadWrite.All", "Group.Read.All", "Group.ReadWrite.All"}
var defaultScopes = []string{"openid", "profile", "offline_access", "Group.Read.All", "Group.ReadWrite.All"}
type Bmsteams struct {
gc *msgraph.GraphServiceRequestBuilder
ctx context.Context
botID string
*bridge.Config
}
func New(cfg *bridge.Config) bridge.Bridger {
return &Bmsteams{Config: cfg}
}
func (b *Bmsteams) Connect() error {
tokenCachePath := b.GetString("sessionFile")
if tokenCachePath == "" {
tokenCachePath = "msteams_session.json"
}
ctx := context.Background()
m := msauth.NewManager()
m.LoadFile(tokenCachePath) //nolint:errcheck
ts, err := m.DeviceAuthorizationGrant(ctx, b.GetString("TenantID"), b.GetString("ClientID"), defaultScopes, nil)
if err != nil {
return err
}
err = m.SaveFile(tokenCachePath)
if err != nil {
b.Log.Errorf("Couldn't save sessionfile in %s: %s", tokenCachePath, err)
}
// make file readable only for matterbridge user
err = os.Chmod(tokenCachePath, 0600)
if err != nil {
b.Log.Errorf("Couldn't change permissions for %s: %s", tokenCachePath, err)
}
httpClient := oauth2.NewClient(ctx, ts)
graphClient := msgraph.NewClient(httpClient)
b.gc = graphClient
b.ctx = ctx
err = b.setBotID()
if err != nil {
return err
}
b.Log.Info("Connection succeeded")
return nil
}
func (b *Bmsteams) Disconnect() error {
return nil
}
func (b *Bmsteams) JoinChannel(channel config.ChannelInfo) error {
go b.poll(channel.Name)
return nil
}
func (b *Bmsteams) Send(msg config.Message) (string, error) {
b.Log.Debugf("=> Receiving %#v", msg)
ct := b.gc.Teams().ID(b.GetString("TeamID")).Channels().ID(msg.Channel).Messages().Request()
text := msg.Username + msg.Text
content := &msgraph.ItemBody{Content: &text}
rmsg := &msgraph.ChatMessage{Body: content}
res, err := ct.Add(b.ctx, rmsg)
if err != nil {
return "", err
}
return *res.ID, nil
}
func (b *Bmsteams) getMessages(channel string) ([]msgraph.ChatMessage, error) {
ct := b.gc.Teams().ID(b.GetString("TeamID")).Channels().ID(channel).Messages().Request()
rct, err := ct.Get(b.ctx)
if err != nil {
return nil, err
}
b.Log.Debugf("got %#v messages", len(rct))
return rct, nil
}
func (b *Bmsteams) poll(channelName string) {
msgmap := make(map[string]time.Time)
b.Log.Debug("getting initial messages")
res, err := b.getMessages(channelName)
if err != nil {
panic(err)
}
for _, msg := range res {
msgmap[*msg.ID] = *msg.CreatedDateTime
if msg.LastModifiedDateTime != nil {
msgmap[*msg.ID] = *msg.LastModifiedDateTime
}
}
time.Sleep(time.Second * 5)
b.Log.Debug("polling for messages")
for {
res, err := b.getMessages(channelName)
if err != nil {
panic(err)
}
for i := len(res) - 1; i >= 0; i-- {
msg := res[i]
if mtime, ok := msgmap[*msg.ID]; ok {
if mtime == *msg.CreatedDateTime && msg.LastModifiedDateTime == nil {
continue
}
if msg.LastModifiedDateTime != nil && mtime == *msg.LastModifiedDateTime {
continue
}
}
if *msg.From.User.ID == b.botID {
b.Log.Debug("skipping own message")
msgmap[*msg.ID] = *msg.CreatedDateTime
continue
}
msgmap[*msg.ID] = *msg.CreatedDateTime
if msg.LastModifiedDateTime != nil {
msgmap[*msg.ID] = *msg.LastModifiedDateTime
}
b.Log.Debugf("<= Sending message from %s on %s to gateway", *msg.From.User.DisplayName, b.Account)
text := b.convertToMD(*msg.Body.Content)
rmsg := config.Message{Username: *msg.From.User.DisplayName, Text: text, Channel: channelName,
Account: b.Account, Avatar: "", UserID: *msg.From.User.ID, ID: *msg.ID}
b.Log.Debugf("<= Message is %#v", rmsg)
b.Remote <- rmsg
}
time.Sleep(time.Second * 5)
}
}
func (b *Bmsteams) setBotID() error {
req := b.gc.Me().Request()
r, err := req.Get(b.ctx)
if err != nil {
return err
}
b.botID = *r.ID
return nil
}
func (b *Bmsteams) convertToMD(text string) string {
if !strings.Contains(text, "<div>") {
return text
}
var sb strings.Builder
err := godown.Convert(&sb, strings.NewReader(text), nil)
if err != nil {
b.Log.Errorf("Couldn't convert message to markdown %s", text)
return text
}
return sb.String()
}

View File

@ -9,6 +9,7 @@ import (
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"
@ -37,6 +38,7 @@ var (
"xmpp": bxmpp.New,
"zulip": bzulip.New,
"keybase": bkeybase.New,
"msteams": bmsteams.New,
}
UserTypingSupport = map[string]struct{}{

4
go.mod
View File

@ -29,6 +29,8 @@ require (
github.com/matterbridge/gozulipbot v0.0.0-20190212232658-7aa251978a18
github.com/matterbridge/logrus-prefixed-formatter v0.0.0-20180806162718-01618749af61
github.com/mattermost/mattermost-server v5.5.0+incompatible
github.com/mattn/go-runewidth v0.0.7 // indirect
github.com/mattn/godown v0.0.0-20180312012330-2e9e17e0ea51
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect
github.com/mreiferson/go-httpclient v0.0.0-20160630210159-31f0106b4474 // indirect
github.com/mrexodia/wray v0.0.0-20160318003008-78a2c1f284ff // indirect
@ -48,8 +50,10 @@ require (
github.com/stretchr/testify v1.4.0
github.com/technoweenie/multipartstreamer v1.0.1 // indirect
github.com/x-cray/logrus-prefixed-formatter v0.5.2 // indirect
github.com/yaegashi/msgraph.go v0.0.0-00010101000000-000000000000
github.com/zfjagann/golang-ring v0.0.0-20190106091943-a88bb6aef447
golang.org/x/image v0.0.0-20191214001246-9130b4cfad52
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
gopkg.in/fsnotify.v1 v1.4.7 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect

36
go.sum
View File

@ -1,4 +1,5 @@
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
github.com/42wim/go-gitter v0.0.0-20170828205020-017310c2d557 h1:IZtuWGfzQnKnCSu+vl8WGLhpVQ5Uvy3rlSwqXSg+sQg=
github.com/42wim/go-gitter v0.0.0-20170828205020-017310c2d557/go.mod h1:jL0YSXMs/txjtGJ4PWrmETOk6KUHMDPMshgQZlTeB3Y=
github.com/Baozisoftware/qrcode-terminal-go v0.0.0-20170407111555-c0650d8dff0f h1:2dk3eOnYllh+wUOuDhOoC2vUVoJF/5z478ryJ+wzEII=
@ -17,11 +18,9 @@ github.com/Rhymen/go-whatsapp/examples/echo v0.0.0-20190325075644-cc2581bbf24d/g
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/sendTextMessages v0.0.0-20190325075644-cc2581bbf24d/go.mod h1:suwzklatySS3Q0+NCxCDh5hYfgXdQUWU1DNcxwAxStM=
github.com/StackExchange/wmi v0.0.0-20170410192909-ea383cf3ba6e h1:IHXQQIpxASe3m0Jtcd3XongL+lxHNd5nUmvHxJARUmg=
github.com/StackExchange/wmi v0.0.0-20170410192909-ea383cf3ba6e/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/alexcesaro/log v0.0.0-20150915221235-61e686294e58 h1:MkpmYfld/S8kXqTYI68DfL8/hHXjHogL120Dy00TIxc=
github.com/alexcesaro/log v0.0.0-20150915221235-61e686294e58/go.mod h1:YNfsMyWSs+h+PaYkxGeMVmVCX75Zj/pqdjbu12ciCYE=
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
@ -49,7 +48,6 @@ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeME
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
github.com/go-ole/go-ole v1.2.1 h1:2lOsA72HgjxAuMlKpFiCbHTvu44PIVkZ5hqm3RSdI/E=
github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/go-telegram-bot-api/telegram-bot-api v4.6.5-0.20181225215658-ec221ba9ea45+incompatible h1:i64CCJcSqkRIkm5OSdZQjZq84/gJsk2zNwHWIRYWlKE=
@ -62,7 +60,6 @@ github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfU
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
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/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0=
github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@ -72,6 +69,7 @@ github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
github.com/google/gops v0.3.6 h1:6akvbMlpZrEYOuoebn2kR+ZJekbZqJ28fJXTs84+8to=
github.com/google/gops v0.3.6/go.mod h1:RZ1rH95wsAGX4vMWKmqBOIWynmWisBf4QFdgT/k/xOI=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gopackage/ddp v0.0.0-20170117053602-652027933df4 h1:4EZlYQIiyecYJlUbVkFXCXHz1QPhVXcHnQKAzBTPfQo=
github.com/gopackage/ddp v0.0.0-20170117053602-652027933df4/go.mod h1:lEO7XoHJ/xNRBCxrn4h/CEB67h0kW1B0t4ooP2yrjUA=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
@ -79,7 +77,6 @@ github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORR
github.com/gorilla/schema v1.1.0 h1:CamqUDOFUBqzrvxuz2vEwo8+SUdwsluFh7IlzJh30LY=
github.com/gorilla/schema v1.1.0/go.mod h1:kgLaKoK1FELgZqMAVxx/5cbj0kT+57qxUrAlIO2eleU=
github.com/gorilla/websocket v1.2.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=
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.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM=
github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
@ -140,22 +137,23 @@ github.com/matterbridge/gozulipbot v0.0.0-20190212232658-7aa251978a18 h1:fLhwXtW
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/go.mod h1:iXGEotOvwI1R1SjLxRc+BF5rUORTMtE0iMZBT2lxqAU=
github.com/matterbridge/msgraph.go v0.0.0-20191226214848-9e5d9c08a4e1 h1:Yzi9wh9al/7R84U+TETBdNW1XkE/Nbvz7RFPN4y2o2o=
github.com/matterbridge/msgraph.go v0.0.0-20191226214848-9e5d9c08a4e1/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/go.mod h1:5L6MjAec+XXQwMIt791Ganu45GKsSiM+I0tLR9wUj8Y=
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.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU=
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
github.com/mattn/go-colorable v0.1.4 h1:snbPLB8fVfU9iwbbo30TPtbLRzwWu6aJS6Xh4eaaviA=
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
github.com/mattn/go-isatty v0.0.5 h1:tHXDdz1cpzGaovsTB+TVB8q90WEokoVmfMqoVcrLUgw=
github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.8 h1:HLtExJ+uU2HOZ+wI0Tt5DtUDrx8yhUqDcp7fYERX4CE=
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.9 h1:d5US/mDsogSGW37IV293h//ZFaeajb69h+EHFsv2xGg=
github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ=
github.com/mattn/go-isatty v0.0.11 h1:FxPOTFNqGkuDUGi3H/qkUbQO4ZiBa2brKq5r0l8TGeM=
github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
github.com/mattn/go-runewidth v0.0.7 h1:Ei8KR0497xHyKJPAv59M1dkC+rOZCMBJ+t3fZ+twI54=
github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/mattn/godown v0.0.0-20180312012330-2e9e17e0ea51 h1:MpI7hy3MiCnrggmZI/s8LaPbLVOOWpzDbjA4F+XaXaM=
github.com/mattn/godown v0.0.0-20180312012330-2e9e17e0ea51/go.mod h1:s3KUdOIXJ+jaGM++XHiXA6gikdleaWVATCcQGD4h734=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4=
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
@ -206,9 +204,7 @@ github.com/shazow/rateio v0.0.0-20150116013248-e8e00881e5c1 h1:Lx3BlDGFElJt4u/zK
github.com/shazow/rateio v0.0.0-20150116013248-e8e00881e5c1/go.mod h1:vt2jWY/3Qw1bIzle5thrJWucsLuuX9iUNnp20CqCciI=
github.com/shazow/ssh-chat v1.8.2 h1:MMso9eWfCnPBelRsusYxKcRBUwHIPEQkR9WrO89II38=
github.com/shazow/ssh-chat v1.8.2/go.mod h1:cXTZK/D1zujEwB0y8DIT1GX8rIKjyLDYeWd+jitPX84=
github.com/shirou/gopsutil v0.0.0-20180427012116-c95755e4bcd7 h1:80VN+vGkqM773Br/uNNTSheo3KatTgV8IpjIKjvVLng=
github.com/shirou/gopsutil v0.0.0-20180427012116-c95755e4bcd7/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4 h1:udFKJ0aHUL60LboW/A+DfgoHVedieIzIXE8uylPue0U=
github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4=
@ -234,7 +230,6 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn
github.com/spf13/viper v1.6.1 h1:VPZzIkznI1YhVMRi6vNFLHSwhnhReBfgTxIPccpfdZk=
github.com/spf13/viper v1.6.1/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
@ -247,14 +242,12 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fasttemplate v1.0.1 h1:tY9CJiPnMXf1ERmG2EyK7gNUd+c6RKGD0IfU8WdUSz8=
github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8=
github.com/valyala/fasttemplate v1.1.0 h1:RZqt0yGBsps8NGvLSGW804QQqCUYYLsaOjTVHy1Ocw4=
github.com/valyala/fasttemplate v1.1.0/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8=
github.com/x-cray/logrus-prefixed-formatter v0.5.2 h1:00txxvfBM9muc0jiLIEAkAcIMJzfthRT6usrui8uGmg=
github.com/x-cray/logrus-prefixed-formatter v0.5.2/go.mod h1:2duySbKsL6M18s5GU7VPsoEPHyzalCE06qoARUCeBBE=
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6 h1:YdYsPAZ2pC6Tow/nPZOPQ96O3hm/ToAkGsPLzedXERk=
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/zfjagann/golang-ring v0.0.0-20190106091943-a88bb6aef447 h1:CHgPZh8bFkZmislPrr/0gd7MciDAX+JJB70A2/5Lvmo=
@ -270,7 +263,6 @@ golang.org/dl v0.0.0-20190829154251-82a15e2f2ead/go.mod h1:IUMfjQLJQd4UTqG1Z90te
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181030102418-4d3f4d9ffa16/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190131182504-b8fe1690c613/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876 h1:sKJQZMuxjOAR/Uo2LBfU90onWEf1dF4C+0hPJCc9Mpc=
@ -279,20 +271,22 @@ golang.org/x/image v0.0.0-20191214001246-9130b4cfad52 h1:2fktqPPvDiVEEVT/vSTeoUP
golang.org/x/image v0.0.0-20191214001246-9130b4cfad52/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190522155817-f3200d17e092 h1:4QSRKanuywn15aTZvI/mIDEgPQpswuFndXpOj3rKEco=
golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
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/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-20190604053449-0f29369cfe45/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-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20171017063910-8dbc5d05d6ed/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@ -304,12 +298,10 @@ golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5h
golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a h1:aYOabOQFp6Vj6W1F80affTUvO9UxmJRx8K0gsfABByQ=
golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8 h1:JA8d3MPx/IToSyXZG/RhwYEtfrKO1Fxrqe8KrkiLXKM=
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
@ -320,6 +312,8 @@ golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGm
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
@ -339,10 +333,8 @@ gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkep
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
rsc.io/goversion v1.0.0 h1:/IhXBiai89TyuerPquiZZ39IQkTfAUbZB2awsyYZ/2c=
rsc.io/goversion v1.0.0/go.mod h1:Eih9y/uIBS3ulggl7KNJ09xGSLcuNaLgmvvqa07sgfo=

8
vendor/github.com/mattn/go-runewidth/.travis.yml generated vendored Normal file
View File

@ -0,0 +1,8 @@
language: go
go:
- tip
before_install:
- go get github.com/mattn/goveralls
- go get golang.org/x/tools/cmd/cover
script:
- $HOME/gopath/bin/goveralls -repotoken lAKAWPzcGsD3A8yBX3BGGtRUdJ6CaGERL

21
vendor/github.com/mattn/go-runewidth/LICENSE generated vendored Normal file
View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2016 Yasuhiro Matsumoto
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

27
vendor/github.com/mattn/go-runewidth/README.mkd generated vendored Normal file
View File

@ -0,0 +1,27 @@
go-runewidth
============
[![Build Status](https://travis-ci.org/mattn/go-runewidth.png?branch=master)](https://travis-ci.org/mattn/go-runewidth)
[![Coverage Status](https://coveralls.io/repos/mattn/go-runewidth/badge.png?branch=HEAD)](https://coveralls.io/r/mattn/go-runewidth?branch=HEAD)
[![GoDoc](https://godoc.org/github.com/mattn/go-runewidth?status.svg)](http://godoc.org/github.com/mattn/go-runewidth)
[![Go Report Card](https://goreportcard.com/badge/github.com/mattn/go-runewidth)](https://goreportcard.com/report/github.com/mattn/go-runewidth)
Provides functions to get fixed width of the character or string.
Usage
-----
```go
runewidth.StringWidth("つのだ☆HIRO") == 12
```
Author
------
Yasuhiro Matsumoto
License
-------
under the MIT License: http://mattn.mit-license.org/2013

3
vendor/github.com/mattn/go-runewidth/go.mod generated vendored Normal file
View File

@ -0,0 +1,3 @@
module github.com/mattn/go-runewidth
go 1.9

258
vendor/github.com/mattn/go-runewidth/runewidth.go generated vendored Normal file
View File

@ -0,0 +1,258 @@
package runewidth
import (
"os"
)
//go:generate go run script/generate.go
var (
// EastAsianWidth will be set true if the current locale is CJK
EastAsianWidth bool
// ZeroWidthJoiner is flag to set to use UTR#51 ZWJ
ZeroWidthJoiner bool
// DefaultCondition is a condition in current locale
DefaultCondition = &Condition{}
)
func init() {
handleEnv()
}
func handleEnv() {
env := os.Getenv("RUNEWIDTH_EASTASIAN")
if env == "" {
EastAsianWidth = IsEastAsian()
} else {
EastAsianWidth = env == "1"
}
// update DefaultCondition
DefaultCondition.EastAsianWidth = EastAsianWidth
DefaultCondition.ZeroWidthJoiner = ZeroWidthJoiner
}
type interval struct {
first rune
last rune
}
type table []interval
func inTables(r rune, ts ...table) bool {
for _, t := range ts {
if inTable(r, t) {
return true
}
}
return false
}
func inTable(r rune, t table) bool {
// func (t table) IncludesRune(r rune) bool {
if r < t[0].first {
return false
}
bot := 0
top := len(t) - 1
for top >= bot {
mid := (bot + top) >> 1
switch {
case t[mid].last < r:
bot = mid + 1
case t[mid].first > r:
top = mid - 1
default:
return true
}
}
return false
}
var private = table{
{0x00E000, 0x00F8FF}, {0x0F0000, 0x0FFFFD}, {0x100000, 0x10FFFD},
}
var nonprint = table{
{0x0000, 0x001F}, {0x007F, 0x009F}, {0x00AD, 0x00AD},
{0x070F, 0x070F}, {0x180B, 0x180E}, {0x200B, 0x200F},
{0x2028, 0x202E}, {0x206A, 0x206F}, {0xD800, 0xDFFF},
{0xFEFF, 0xFEFF}, {0xFFF9, 0xFFFB}, {0xFFFE, 0xFFFF},
}
// Condition have flag EastAsianWidth whether the current locale is CJK or not.
type Condition struct {
EastAsianWidth bool
ZeroWidthJoiner bool
}
// NewCondition return new instance of Condition which is current locale.
func NewCondition() *Condition {
return &Condition{
EastAsianWidth: EastAsianWidth,
ZeroWidthJoiner: ZeroWidthJoiner,
}
}
// RuneWidth returns the number of cells in r.
// See http://www.unicode.org/reports/tr11/
func (c *Condition) RuneWidth(r rune) int {
switch {
case r < 0 || r > 0x10FFFF || inTables(r, nonprint, combining, notassigned):
return 0
case (c.EastAsianWidth && IsAmbiguousWidth(r)) || inTables(r, doublewidth):
return 2
default:
return 1
}
}
func (c *Condition) stringWidth(s string) (width int) {
for _, r := range []rune(s) {
width += c.RuneWidth(r)
}
return width
}
func (c *Condition) stringWidthZeroJoiner(s string) (width int) {
r1, r2 := rune(0), rune(0)
for _, r := range []rune(s) {
if r == 0xFE0E || r == 0xFE0F {
continue
}
w := c.RuneWidth(r)
if r2 == 0x200D && inTables(r, emoji) && inTables(r1, emoji) {
if width < w {
width = w
}
} else {
width += w
}
r1, r2 = r2, r
}
return width
}
// StringWidth return width as you can see
func (c *Condition) StringWidth(s string) (width int) {
if c.ZeroWidthJoiner {
return c.stringWidthZeroJoiner(s)
}
return c.stringWidth(s)
}
// Truncate return string truncated with w cells
func (c *Condition) Truncate(s string, w int, tail string) string {
if c.StringWidth(s) <= w {
return s
}
r := []rune(s)
tw := c.StringWidth(tail)
w -= tw
width := 0
i := 0
for ; i < len(r); i++ {
cw := c.RuneWidth(r[i])
if width+cw > w {
break
}
width += cw
}
return string(r[0:i]) + tail
}
// Wrap return string wrapped with w cells
func (c *Condition) Wrap(s string, w int) string {
width := 0
out := ""
for _, r := range []rune(s) {
cw := RuneWidth(r)
if r == '\n' {
out += string(r)
width = 0
continue
} else if width+cw > w {
out += "\n"
width = 0
out += string(r)
width += cw
continue
}
out += string(r)
width += cw
}
return out
}
// FillLeft return string filled in left by spaces in w cells
func (c *Condition) FillLeft(s string, w int) string {
width := c.StringWidth(s)
count := w - width
if count > 0 {
b := make([]byte, count)
for i := range b {
b[i] = ' '
}
return string(b) + s
}
return s
}
// FillRight return string filled in left by spaces in w cells
func (c *Condition) FillRight(s string, w int) string {
width := c.StringWidth(s)
count := w - width
if count > 0 {
b := make([]byte, count)
for i := range b {
b[i] = ' '
}
return s + string(b)
}
return s
}
// RuneWidth returns the number of cells in r.
// See http://www.unicode.org/reports/tr11/
func RuneWidth(r rune) int {
return DefaultCondition.RuneWidth(r)
}
// IsAmbiguousWidth returns whether is ambiguous width or not.
func IsAmbiguousWidth(r rune) bool {
return inTables(r, private, ambiguous)
}
// IsNeutralWidth returns whether is neutral width or not.
func IsNeutralWidth(r rune) bool {
return inTable(r, neutral)
}
// StringWidth return width as you can see
func StringWidth(s string) (width int) {
return DefaultCondition.StringWidth(s)
}
// Truncate return string truncated with w cells
func Truncate(s string, w int, tail string) string {
return DefaultCondition.Truncate(s, w, tail)
}
// Wrap return string wrapped with w cells
func Wrap(s string, w int) string {
return DefaultCondition.Wrap(s, w)
}
// FillLeft return string filled in left by spaces in w cells
func FillLeft(s string, w int) string {
return DefaultCondition.FillLeft(s, w)
}
// FillRight return string filled in left by spaces in w cells
func FillRight(s string, w int) string {
return DefaultCondition.FillRight(s, w)
}

View File

@ -0,0 +1,8 @@
// +build appengine
package runewidth
// IsEastAsian return true if the current locale is CJK
func IsEastAsian() bool {
return false
}

9
vendor/github.com/mattn/go-runewidth/runewidth_js.go generated vendored Normal file
View File

@ -0,0 +1,9 @@
// +build js
// +build !appengine
package runewidth
func IsEastAsian() bool {
// TODO: Implement this for the web. Detect east asian in a compatible way, and return true.
return false
}

View File

@ -0,0 +1,79 @@
// +build !windows
// +build !js
// +build !appengine
package runewidth
import (
"os"
"regexp"
"strings"
)
var reLoc = regexp.MustCompile(`^[a-z][a-z][a-z]?(?:_[A-Z][A-Z])?\.(.+)`)
var mblenTable = map[string]int{
"utf-8": 6,
"utf8": 6,
"jis": 8,
"eucjp": 3,
"euckr": 2,
"euccn": 2,
"sjis": 2,
"cp932": 2,
"cp51932": 2,
"cp936": 2,
"cp949": 2,
"cp950": 2,
"big5": 2,
"gbk": 2,
"gb2312": 2,
}
func isEastAsian(locale string) bool {
charset := strings.ToLower(locale)
r := reLoc.FindStringSubmatch(locale)
if len(r) == 2 {
charset = strings.ToLower(r[1])
}
if strings.HasSuffix(charset, "@cjk_narrow") {
return false
}
for pos, b := range []byte(charset) {
if b == '@' {
charset = charset[:pos]
break
}
}
max := 1
if m, ok := mblenTable[charset]; ok {
max = m
}
if max > 1 && (charset[0] != 'u' ||
strings.HasPrefix(locale, "ja") ||
strings.HasPrefix(locale, "ko") ||
strings.HasPrefix(locale, "zh")) {
return true
}
return false
}
// IsEastAsian return true if the current locale is CJK
func IsEastAsian() bool {
locale := os.Getenv("LC_CTYPE")
if locale == "" {
locale = os.Getenv("LANG")
}
// ignore C locale
if locale == "POSIX" || locale == "C" {
return false
}
if len(locale) > 1 && locale[0] == 'C' && (locale[1] == '.' || locale[1] == '-') {
return false
}
return isEastAsian(locale)
}

427
vendor/github.com/mattn/go-runewidth/runewidth_table.go generated vendored Normal file
View File

@ -0,0 +1,427 @@
package runewidth
var combining = table{
{0x0300, 0x036F}, {0x0483, 0x0489}, {0x07EB, 0x07F3},
{0x0C00, 0x0C00}, {0x0C04, 0x0C04}, {0x0D00, 0x0D01},
{0x135D, 0x135F}, {0x1A7F, 0x1A7F}, {0x1AB0, 0x1ABE},
{0x1B6B, 0x1B73}, {0x1DC0, 0x1DF9}, {0x1DFB, 0x1DFF},
{0x20D0, 0x20F0}, {0x2CEF, 0x2CF1}, {0x2DE0, 0x2DFF},
{0x3099, 0x309A}, {0xA66F, 0xA672}, {0xA674, 0xA67D},
{0xA69E, 0xA69F}, {0xA6F0, 0xA6F1}, {0xA8E0, 0xA8F1},
{0xFE20, 0xFE2F}, {0x101FD, 0x101FD}, {0x10376, 0x1037A},
{0x10F46, 0x10F50}, {0x11300, 0x11301}, {0x1133B, 0x1133C},
{0x11366, 0x1136C}, {0x11370, 0x11374}, {0x16AF0, 0x16AF4},
{0x1D165, 0x1D169}, {0x1D16D, 0x1D172}, {0x1D17B, 0x1D182},
{0x1D185, 0x1D18B}, {0x1D1AA, 0x1D1AD}, {0x1D242, 0x1D244},
{0x1E000, 0x1E006}, {0x1E008, 0x1E018}, {0x1E01B, 0x1E021},
{0x1E023, 0x1E024}, {0x1E026, 0x1E02A}, {0x1E8D0, 0x1E8D6},
}
var doublewidth = table{
{0x1100, 0x115F}, {0x231A, 0x231B}, {0x2329, 0x232A},
{0x23E9, 0x23EC}, {0x23F0, 0x23F0}, {0x23F3, 0x23F3},
{0x25FD, 0x25FE}, {0x2614, 0x2615}, {0x2648, 0x2653},
{0x267F, 0x267F}, {0x2693, 0x2693}, {0x26A1, 0x26A1},
{0x26AA, 0x26AB}, {0x26BD, 0x26BE}, {0x26C4, 0x26C5},
{0x26CE, 0x26CE}, {0x26D4, 0x26D4}, {0x26EA, 0x26EA},
{0x26F2, 0x26F3}, {0x26F5, 0x26F5}, {0x26FA, 0x26FA},
{0x26FD, 0x26FD}, {0x2705, 0x2705}, {0x270A, 0x270B},
{0x2728, 0x2728}, {0x274C, 0x274C}, {0x274E, 0x274E},
{0x2753, 0x2755}, {0x2757, 0x2757}, {0x2795, 0x2797},
{0x27B0, 0x27B0}, {0x27BF, 0x27BF}, {0x2B1B, 0x2B1C},
{0x2B50, 0x2B50}, {0x2B55, 0x2B55}, {0x2E80, 0x2E99},
{0x2E9B, 0x2EF3}, {0x2F00, 0x2FD5}, {0x2FF0, 0x2FFB},
{0x3000, 0x303E}, {0x3041, 0x3096}, {0x3099, 0x30FF},
{0x3105, 0x312F}, {0x3131, 0x318E}, {0x3190, 0x31BA},
{0x31C0, 0x31E3}, {0x31F0, 0x321E}, {0x3220, 0x3247},
{0x3250, 0x4DBF}, {0x4E00, 0xA48C}, {0xA490, 0xA4C6},
{0xA960, 0xA97C}, {0xAC00, 0xD7A3}, {0xF900, 0xFAFF},
{0xFE10, 0xFE19}, {0xFE30, 0xFE52}, {0xFE54, 0xFE66},
{0xFE68, 0xFE6B}, {0xFF01, 0xFF60}, {0xFFE0, 0xFFE6},
{0x16FE0, 0x16FE3}, {0x17000, 0x187F7}, {0x18800, 0x18AF2},
{0x1B000, 0x1B11E}, {0x1B150, 0x1B152}, {0x1B164, 0x1B167},
{0x1B170, 0x1B2FB}, {0x1F004, 0x1F004}, {0x1F0CF, 0x1F0CF},
{0x1F18E, 0x1F18E}, {0x1F191, 0x1F19A}, {0x1F200, 0x1F202},
{0x1F210, 0x1F23B}, {0x1F240, 0x1F248}, {0x1F250, 0x1F251},
{0x1F260, 0x1F265}, {0x1F300, 0x1F320}, {0x1F32D, 0x1F335},
{0x1F337, 0x1F37C}, {0x1F37E, 0x1F393}, {0x1F3A0, 0x1F3CA},
{0x1F3CF, 0x1F3D3}, {0x1F3E0, 0x1F3F0}, {0x1F3F4, 0x1F3F4},
{0x1F3F8, 0x1F43E}, {0x1F440, 0x1F440}, {0x1F442, 0x1F4FC},
{0x1F4FF, 0x1F53D}, {0x1F54B, 0x1F54E}, {0x1F550, 0x1F567},
{0x1F57A, 0x1F57A}, {0x1F595, 0x1F596}, {0x1F5A4, 0x1F5A4},
{0x1F5FB, 0x1F64F}, {0x1F680, 0x1F6C5}, {0x1F6CC, 0x1F6CC},
{0x1F6D0, 0x1F6D2}, {0x1F6D5, 0x1F6D5}, {0x1F6EB, 0x1F6EC},
{0x1F6F4, 0x1F6FA}, {0x1F7E0, 0x1F7EB}, {0x1F90D, 0x1F971},
{0x1F973, 0x1F976}, {0x1F97A, 0x1F9A2}, {0x1F9A5, 0x1F9AA},
{0x1F9AE, 0x1F9CA}, {0x1F9CD, 0x1F9FF}, {0x1FA70, 0x1FA73},
{0x1FA78, 0x1FA7A}, {0x1FA80, 0x1FA82}, {0x1FA90, 0x1FA95},
{0x20000, 0x2FFFD}, {0x30000, 0x3FFFD},
}
var ambiguous = table{
{0x00A1, 0x00A1}, {0x00A4, 0x00A4}, {0x00A7, 0x00A8},
{0x00AA, 0x00AA}, {0x00AD, 0x00AE}, {0x00B0, 0x00B4},
{0x00B6, 0x00BA}, {0x00BC, 0x00BF}, {0x00C6, 0x00C6},
{0x00D0, 0x00D0}, {0x00D7, 0x00D8}, {0x00DE, 0x00E1},
{0x00E6, 0x00E6}, {0x00E8, 0x00EA}, {0x00EC, 0x00ED},
{0x00F0, 0x00F0}, {0x00F2, 0x00F3}, {0x00F7, 0x00FA},
{0x00FC, 0x00FC}, {0x00FE, 0x00FE}, {0x0101, 0x0101},
{0x0111, 0x0111}, {0x0113, 0x0113}, {0x011B, 0x011B},
{0x0126, 0x0127}, {0x012B, 0x012B}, {0x0131, 0x0133},
{0x0138, 0x0138}, {0x013F, 0x0142}, {0x0144, 0x0144},
{0x0148, 0x014B}, {0x014D, 0x014D}, {0x0152, 0x0153},
{0x0166, 0x0167}, {0x016B, 0x016B}, {0x01CE, 0x01CE},
{0x01D0, 0x01D0}, {0x01D2, 0x01D2}, {0x01D4, 0x01D4},
{0x01D6, 0x01D6}, {0x01D8, 0x01D8}, {0x01DA, 0x01DA},
{0x01DC, 0x01DC}, {0x0251, 0x0251}, {0x0261, 0x0261},
{0x02C4, 0x02C4}, {0x02C7, 0x02C7}, {0x02C9, 0x02CB},
{0x02CD, 0x02CD}, {0x02D0, 0x02D0}, {0x02D8, 0x02DB},
{0x02DD, 0x02DD}, {0x02DF, 0x02DF}, {0x0300, 0x036F},
{0x0391, 0x03A1}, {0x03A3, 0x03A9}, {0x03B1, 0x03C1},
{0x03C3, 0x03C9}, {0x0401, 0x0401}, {0x0410, 0x044F},
{0x0451, 0x0451}, {0x2010, 0x2010}, {0x2013, 0x2016},
{0x2018, 0x2019}, {0x201C, 0x201D}, {0x2020, 0x2022},
{0x2024, 0x2027}, {0x2030, 0x2030}, {0x2032, 0x2033},
{0x2035, 0x2035}, {0x203B, 0x203B}, {0x203E, 0x203E},
{0x2074, 0x2074}, {0x207F, 0x207F}, {0x2081, 0x2084},
{0x20AC, 0x20AC}, {0x2103, 0x2103}, {0x2105, 0x2105},
{0x2109, 0x2109}, {0x2113, 0x2113}, {0x2116, 0x2116},
{0x2121, 0x2122}, {0x2126, 0x2126}, {0x212B, 0x212B},
{0x2153, 0x2154}, {0x215B, 0x215E}, {0x2160, 0x216B},
{0x2170, 0x2179}, {0x2189, 0x2189}, {0x2190, 0x2199},
{0x21B8, 0x21B9}, {0x21D2, 0x21D2}, {0x21D4, 0x21D4},
{0x21E7, 0x21E7}, {0x2200, 0x2200}, {0x2202, 0x2203},
{0x2207, 0x2208}, {0x220B, 0x220B}, {0x220F, 0x220F},
{0x2211, 0x2211}, {0x2215, 0x2215}, {0x221A, 0x221A},
{0x221D, 0x2220}, {0x2223, 0x2223}, {0x2225, 0x2225},
{0x2227, 0x222C}, {0x222E, 0x222E}, {0x2234, 0x2237},
{0x223C, 0x223D}, {0x2248, 0x2248}, {0x224C, 0x224C},
{0x2252, 0x2252}, {0x2260, 0x2261}, {0x2264, 0x2267},
{0x226A, 0x226B}, {0x226E, 0x226F}, {0x2282, 0x2283},
{0x2286, 0x2287}, {0x2295, 0x2295}, {0x2299, 0x2299},
{0x22A5, 0x22A5}, {0x22BF, 0x22BF}, {0x2312, 0x2312},
{0x2460, 0x24E9}, {0x24EB, 0x254B}, {0x2550, 0x2573},
{0x2580, 0x258F}, {0x2592, 0x2595}, {0x25A0, 0x25A1},
{0x25A3, 0x25A9}, {0x25B2, 0x25B3}, {0x25B6, 0x25B7},
{0x25BC, 0x25BD}, {0x25C0, 0x25C1}, {0x25C6, 0x25C8},
{0x25CB, 0x25CB}, {0x25CE, 0x25D1}, {0x25E2, 0x25E5},
{0x25EF, 0x25EF}, {0x2605, 0x2606}, {0x2609, 0x2609},
{0x260E, 0x260F}, {0x261C, 0x261C}, {0x261E, 0x261E},
{0x2640, 0x2640}, {0x2642, 0x2642}, {0x2660, 0x2661},
{0x2663, 0x2665}, {0x2667, 0x266A}, {0x266C, 0x266D},
{0x266F, 0x266F}, {0x269E, 0x269F}, {0x26BF, 0x26BF},
{0x26C6, 0x26CD}, {0x26CF, 0x26D3}, {0x26D5, 0x26E1},
{0x26E3, 0x26E3}, {0x26E8, 0x26E9}, {0x26EB, 0x26F1},
{0x26F4, 0x26F4}, {0x26F6, 0x26F9}, {0x26FB, 0x26FC},
{0x26FE, 0x26FF}, {0x273D, 0x273D}, {0x2776, 0x277F},
{0x2B56, 0x2B59}, {0x3248, 0x324F}, {0xE000, 0xF8FF},
{0xFE00, 0xFE0F}, {0xFFFD, 0xFFFD}, {0x1F100, 0x1F10A},
{0x1F110, 0x1F12D}, {0x1F130, 0x1F169}, {0x1F170, 0x1F18D},
{0x1F18F, 0x1F190}, {0x1F19B, 0x1F1AC}, {0xE0100, 0xE01EF},
{0xF0000, 0xFFFFD}, {0x100000, 0x10FFFD},
}
var notassigned = table{
{0x27E6, 0x27ED}, {0x2985, 0x2986},
}
var neutral = table{
{0x0000, 0x001F}, {0x007F, 0x00A0}, {0x00A9, 0x00A9},
{0x00AB, 0x00AB}, {0x00B5, 0x00B5}, {0x00BB, 0x00BB},
{0x00C0, 0x00C5}, {0x00C7, 0x00CF}, {0x00D1, 0x00D6},
{0x00D9, 0x00DD}, {0x00E2, 0x00E5}, {0x00E7, 0x00E7},
{0x00EB, 0x00EB}, {0x00EE, 0x00EF}, {0x00F1, 0x00F1},
{0x00F4, 0x00F6}, {0x00FB, 0x00FB}, {0x00FD, 0x00FD},
{0x00FF, 0x0100}, {0x0102, 0x0110}, {0x0112, 0x0112},
{0x0114, 0x011A}, {0x011C, 0x0125}, {0x0128, 0x012A},
{0x012C, 0x0130}, {0x0134, 0x0137}, {0x0139, 0x013E},
{0x0143, 0x0143}, {0x0145, 0x0147}, {0x014C, 0x014C},
{0x014E, 0x0151}, {0x0154, 0x0165}, {0x0168, 0x016A},
{0x016C, 0x01CD}, {0x01CF, 0x01CF}, {0x01D1, 0x01D1},
{0x01D3, 0x01D3}, {0x01D5, 0x01D5}, {0x01D7, 0x01D7},
{0x01D9, 0x01D9}, {0x01DB, 0x01DB}, {0x01DD, 0x0250},
{0x0252, 0x0260}, {0x0262, 0x02C3}, {0x02C5, 0x02C6},
{0x02C8, 0x02C8}, {0x02CC, 0x02CC}, {0x02CE, 0x02CF},
{0x02D1, 0x02D7}, {0x02DC, 0x02DC}, {0x02DE, 0x02DE},
{0x02E0, 0x02FF}, {0x0370, 0x0377}, {0x037A, 0x037F},
{0x0384, 0x038A}, {0x038C, 0x038C}, {0x038E, 0x0390},
{0x03AA, 0x03B0}, {0x03C2, 0x03C2}, {0x03CA, 0x0400},
{0x0402, 0x040F}, {0x0450, 0x0450}, {0x0452, 0x052F},
{0x0531, 0x0556}, {0x0559, 0x058A}, {0x058D, 0x058F},
{0x0591, 0x05C7}, {0x05D0, 0x05EA}, {0x05EF, 0x05F4},
{0x0600, 0x061C}, {0x061E, 0x070D}, {0x070F, 0x074A},
{0x074D, 0x07B1}, {0x07C0, 0x07FA}, {0x07FD, 0x082D},
{0x0830, 0x083E}, {0x0840, 0x085B}, {0x085E, 0x085E},
{0x0860, 0x086A}, {0x08A0, 0x08B4}, {0x08B6, 0x08BD},
{0x08D3, 0x0983}, {0x0985, 0x098C}, {0x098F, 0x0990},
{0x0993, 0x09A8}, {0x09AA, 0x09B0}, {0x09B2, 0x09B2},
{0x09B6, 0x09B9}, {0x09BC, 0x09C4}, {0x09C7, 0x09C8},
{0x09CB, 0x09CE}, {0x09D7, 0x09D7}, {0x09DC, 0x09DD},
{0x09DF, 0x09E3}, {0x09E6, 0x09FE}, {0x0A01, 0x0A03},
{0x0A05, 0x0A0A}, {0x0A0F, 0x0A10}, {0x0A13, 0x0A28},
{0x0A2A, 0x0A30}, {0x0A32, 0x0A33}, {0x0A35, 0x0A36},
{0x0A38, 0x0A39}, {0x0A3C, 0x0A3C}, {0x0A3E, 0x0A42},
{0x0A47, 0x0A48}, {0x0A4B, 0x0A4D}, {0x0A51, 0x0A51},
{0x0A59, 0x0A5C}, {0x0A5E, 0x0A5E}, {0x0A66, 0x0A76},
{0x0A81, 0x0A83}, {0x0A85, 0x0A8D}, {0x0A8F, 0x0A91},
{0x0A93, 0x0AA8}, {0x0AAA, 0x0AB0}, {0x0AB2, 0x0AB3},
{0x0AB5, 0x0AB9}, {0x0ABC, 0x0AC5}, {0x0AC7, 0x0AC9},
{0x0ACB, 0x0ACD}, {0x0AD0, 0x0AD0}, {0x0AE0, 0x0AE3},
{0x0AE6, 0x0AF1}, {0x0AF9, 0x0AFF}, {0x0B01, 0x0B03},
{0x0B05, 0x0B0C}, {0x0B0F, 0x0B10}, {0x0B13, 0x0B28},
{0x0B2A, 0x0B30}, {0x0B32, 0x0B33}, {0x0B35, 0x0B39},
{0x0B3C, 0x0B44}, {0x0B47, 0x0B48}, {0x0B4B, 0x0B4D},
{0x0B56, 0x0B57}, {0x0B5C, 0x0B5D}, {0x0B5F, 0x0B63},
{0x0B66, 0x0B77}, {0x0B82, 0x0B83}, {0x0B85, 0x0B8A},
{0x0B8E, 0x0B90}, {0x0B92, 0x0B95}, {0x0B99, 0x0B9A},
{0x0B9C, 0x0B9C}, {0x0B9E, 0x0B9F}, {0x0BA3, 0x0BA4},
{0x0BA8, 0x0BAA}, {0x0BAE, 0x0BB9}, {0x0BBE, 0x0BC2},
{0x0BC6, 0x0BC8}, {0x0BCA, 0x0BCD}, {0x0BD0, 0x0BD0},
{0x0BD7, 0x0BD7}, {0x0BE6, 0x0BFA}, {0x0C00, 0x0C0C},
{0x0C0E, 0x0C10}, {0x0C12, 0x0C28}, {0x0C2A, 0x0C39},
{0x0C3D, 0x0C44}, {0x0C46, 0x0C48}, {0x0C4A, 0x0C4D},
{0x0C55, 0x0C56}, {0x0C58, 0x0C5A}, {0x0C60, 0x0C63},
{0x0C66, 0x0C6F}, {0x0C77, 0x0C8C}, {0x0C8E, 0x0C90},
{0x0C92, 0x0CA8}, {0x0CAA, 0x0CB3}, {0x0CB5, 0x0CB9},
{0x0CBC, 0x0CC4}, {0x0CC6, 0x0CC8}, {0x0CCA, 0x0CCD},
{0x0CD5, 0x0CD6}, {0x0CDE, 0x0CDE}, {0x0CE0, 0x0CE3},
{0x0CE6, 0x0CEF}, {0x0CF1, 0x0CF2}, {0x0D00, 0x0D03},
{0x0D05, 0x0D0C}, {0x0D0E, 0x0D10}, {0x0D12, 0x0D44},
{0x0D46, 0x0D48}, {0x0D4A, 0x0D4F}, {0x0D54, 0x0D63},
{0x0D66, 0x0D7F}, {0x0D82, 0x0D83}, {0x0D85, 0x0D96},
{0x0D9A, 0x0DB1}, {0x0DB3, 0x0DBB}, {0x0DBD, 0x0DBD},
{0x0DC0, 0x0DC6}, {0x0DCA, 0x0DCA}, {0x0DCF, 0x0DD4},
{0x0DD6, 0x0DD6}, {0x0DD8, 0x0DDF}, {0x0DE6, 0x0DEF},
{0x0DF2, 0x0DF4}, {0x0E01, 0x0E3A}, {0x0E3F, 0x0E5B},
{0x0E81, 0x0E82}, {0x0E84, 0x0E84}, {0x0E86, 0x0E8A},
{0x0E8C, 0x0EA3}, {0x0EA5, 0x0EA5}, {0x0EA7, 0x0EBD},
{0x0EC0, 0x0EC4}, {0x0EC6, 0x0EC6}, {0x0EC8, 0x0ECD},
{0x0ED0, 0x0ED9}, {0x0EDC, 0x0EDF}, {0x0F00, 0x0F47},
{0x0F49, 0x0F6C}, {0x0F71, 0x0F97}, {0x0F99, 0x0FBC},
{0x0FBE, 0x0FCC}, {0x0FCE, 0x0FDA}, {0x1000, 0x10C5},
{0x10C7, 0x10C7}, {0x10CD, 0x10CD}, {0x10D0, 0x10FF},
{0x1160, 0x1248}, {0x124A, 0x124D}, {0x1250, 0x1256},
{0x1258, 0x1258}, {0x125A, 0x125D}, {0x1260, 0x1288},
{0x128A, 0x128D}, {0x1290, 0x12B0}, {0x12B2, 0x12B5},
{0x12B8, 0x12BE}, {0x12C0, 0x12C0}, {0x12C2, 0x12C5},
{0x12C8, 0x12D6}, {0x12D8, 0x1310}, {0x1312, 0x1315},
{0x1318, 0x135A}, {0x135D, 0x137C}, {0x1380, 0x1399},
{0x13A0, 0x13F5}, {0x13F8, 0x13FD}, {0x1400, 0x169C},
{0x16A0, 0x16F8}, {0x1700, 0x170C}, {0x170E, 0x1714},
{0x1720, 0x1736}, {0x1740, 0x1753}, {0x1760, 0x176C},
{0x176E, 0x1770}, {0x1772, 0x1773}, {0x1780, 0x17DD},
{0x17E0, 0x17E9}, {0x17F0, 0x17F9}, {0x1800, 0x180E},
{0x1810, 0x1819}, {0x1820, 0x1878}, {0x1880, 0x18AA},
{0x18B0, 0x18F5}, {0x1900, 0x191E}, {0x1920, 0x192B},
{0x1930, 0x193B}, {0x1940, 0x1940}, {0x1944, 0x196D},
{0x1970, 0x1974}, {0x1980, 0x19AB}, {0x19B0, 0x19C9},
{0x19D0, 0x19DA}, {0x19DE, 0x1A1B}, {0x1A1E, 0x1A5E},
{0x1A60, 0x1A7C}, {0x1A7F, 0x1A89}, {0x1A90, 0x1A99},
{0x1AA0, 0x1AAD}, {0x1AB0, 0x1ABE}, {0x1B00, 0x1B4B},
{0x1B50, 0x1B7C}, {0x1B80, 0x1BF3}, {0x1BFC, 0x1C37},
{0x1C3B, 0x1C49}, {0x1C4D, 0x1C88}, {0x1C90, 0x1CBA},
{0x1CBD, 0x1CC7}, {0x1CD0, 0x1CFA}, {0x1D00, 0x1DF9},
{0x1DFB, 0x1F15}, {0x1F18, 0x1F1D}, {0x1F20, 0x1F45},
{0x1F48, 0x1F4D}, {0x1F50, 0x1F57}, {0x1F59, 0x1F59},
{0x1F5B, 0x1F5B}, {0x1F5D, 0x1F5D}, {0x1F5F, 0x1F7D},
{0x1F80, 0x1FB4}, {0x1FB6, 0x1FC4}, {0x1FC6, 0x1FD3},
{0x1FD6, 0x1FDB}, {0x1FDD, 0x1FEF}, {0x1FF2, 0x1FF4},
{0x1FF6, 0x1FFE}, {0x2000, 0x200F}, {0x2011, 0x2012},
{0x2017, 0x2017}, {0x201A, 0x201B}, {0x201E, 0x201F},
{0x2023, 0x2023}, {0x2028, 0x202F}, {0x2031, 0x2031},
{0x2034, 0x2034}, {0x2036, 0x203A}, {0x203C, 0x203D},
{0x203F, 0x2064}, {0x2066, 0x2071}, {0x2075, 0x207E},
{0x2080, 0x2080}, {0x2085, 0x208E}, {0x2090, 0x209C},
{0x20A0, 0x20A8}, {0x20AA, 0x20AB}, {0x20AD, 0x20BF},
{0x20D0, 0x20F0}, {0x2100, 0x2102}, {0x2104, 0x2104},
{0x2106, 0x2108}, {0x210A, 0x2112}, {0x2114, 0x2115},
{0x2117, 0x2120}, {0x2123, 0x2125}, {0x2127, 0x212A},
{0x212C, 0x2152}, {0x2155, 0x215A}, {0x215F, 0x215F},
{0x216C, 0x216F}, {0x217A, 0x2188}, {0x218A, 0x218B},
{0x219A, 0x21B7}, {0x21BA, 0x21D1}, {0x21D3, 0x21D3},
{0x21D5, 0x21E6}, {0x21E8, 0x21FF}, {0x2201, 0x2201},
{0x2204, 0x2206}, {0x2209, 0x220A}, {0x220C, 0x220E},
{0x2210, 0x2210}, {0x2212, 0x2214}, {0x2216, 0x2219},
{0x221B, 0x221C}, {0x2221, 0x2222}, {0x2224, 0x2224},
{0x2226, 0x2226}, {0x222D, 0x222D}, {0x222F, 0x2233},
{0x2238, 0x223B}, {0x223E, 0x2247}, {0x2249, 0x224B},
{0x224D, 0x2251}, {0x2253, 0x225F}, {0x2262, 0x2263},
{0x2268, 0x2269}, {0x226C, 0x226D}, {0x2270, 0x2281},
{0x2284, 0x2285}, {0x2288, 0x2294}, {0x2296, 0x2298},
{0x229A, 0x22A4}, {0x22A6, 0x22BE}, {0x22C0, 0x2311},
{0x2313, 0x2319}, {0x231C, 0x2328}, {0x232B, 0x23E8},
{0x23ED, 0x23EF}, {0x23F1, 0x23F2}, {0x23F4, 0x2426},
{0x2440, 0x244A}, {0x24EA, 0x24EA}, {0x254C, 0x254F},
{0x2574, 0x257F}, {0x2590, 0x2591}, {0x2596, 0x259F},
{0x25A2, 0x25A2}, {0x25AA, 0x25B1}, {0x25B4, 0x25B5},
{0x25B8, 0x25BB}, {0x25BE, 0x25BF}, {0x25C2, 0x25C5},
{0x25C9, 0x25CA}, {0x25CC, 0x25CD}, {0x25D2, 0x25E1},
{0x25E6, 0x25EE}, {0x25F0, 0x25FC}, {0x25FF, 0x2604},
{0x2607, 0x2608}, {0x260A, 0x260D}, {0x2610, 0x2613},
{0x2616, 0x261B}, {0x261D, 0x261D}, {0x261F, 0x263F},
{0x2641, 0x2641}, {0x2643, 0x2647}, {0x2654, 0x265F},
{0x2662, 0x2662}, {0x2666, 0x2666}, {0x266B, 0x266B},
{0x266E, 0x266E}, {0x2670, 0x267E}, {0x2680, 0x2692},
{0x2694, 0x269D}, {0x26A0, 0x26A0}, {0x26A2, 0x26A9},
{0x26AC, 0x26BC}, {0x26C0, 0x26C3}, {0x26E2, 0x26E2},
{0x26E4, 0x26E7}, {0x2700, 0x2704}, {0x2706, 0x2709},
{0x270C, 0x2727}, {0x2729, 0x273C}, {0x273E, 0x274B},
{0x274D, 0x274D}, {0x274F, 0x2752}, {0x2756, 0x2756},
{0x2758, 0x2775}, {0x2780, 0x2794}, {0x2798, 0x27AF},
{0x27B1, 0x27BE}, {0x27C0, 0x27E5}, {0x27EE, 0x2984},
{0x2987, 0x2B1A}, {0x2B1D, 0x2B4F}, {0x2B51, 0x2B54},
{0x2B5A, 0x2B73}, {0x2B76, 0x2B95}, {0x2B98, 0x2C2E},
{0x2C30, 0x2C5E}, {0x2C60, 0x2CF3}, {0x2CF9, 0x2D25},
{0x2D27, 0x2D27}, {0x2D2D, 0x2D2D}, {0x2D30, 0x2D67},
{0x2D6F, 0x2D70}, {0x2D7F, 0x2D96}, {0x2DA0, 0x2DA6},
{0x2DA8, 0x2DAE}, {0x2DB0, 0x2DB6}, {0x2DB8, 0x2DBE},
{0x2DC0, 0x2DC6}, {0x2DC8, 0x2DCE}, {0x2DD0, 0x2DD6},
{0x2DD8, 0x2DDE}, {0x2DE0, 0x2E4F}, {0x303F, 0x303F},
{0x4DC0, 0x4DFF}, {0xA4D0, 0xA62B}, {0xA640, 0xA6F7},
{0xA700, 0xA7BF}, {0xA7C2, 0xA7C6}, {0xA7F7, 0xA82B},
{0xA830, 0xA839}, {0xA840, 0xA877}, {0xA880, 0xA8C5},
{0xA8CE, 0xA8D9}, {0xA8E0, 0xA953}, {0xA95F, 0xA95F},
{0xA980, 0xA9CD}, {0xA9CF, 0xA9D9}, {0xA9DE, 0xA9FE},
{0xAA00, 0xAA36}, {0xAA40, 0xAA4D}, {0xAA50, 0xAA59},
{0xAA5C, 0xAAC2}, {0xAADB, 0xAAF6}, {0xAB01, 0xAB06},
{0xAB09, 0xAB0E}, {0xAB11, 0xAB16}, {0xAB20, 0xAB26},
{0xAB28, 0xAB2E}, {0xAB30, 0xAB67}, {0xAB70, 0xABED},
{0xABF0, 0xABF9}, {0xD7B0, 0xD7C6}, {0xD7CB, 0xD7FB},
{0xD800, 0xDFFF}, {0xFB00, 0xFB06}, {0xFB13, 0xFB17},
{0xFB1D, 0xFB36}, {0xFB38, 0xFB3C}, {0xFB3E, 0xFB3E},
{0xFB40, 0xFB41}, {0xFB43, 0xFB44}, {0xFB46, 0xFBC1},
{0xFBD3, 0xFD3F}, {0xFD50, 0xFD8F}, {0xFD92, 0xFDC7},
{0xFDF0, 0xFDFD}, {0xFE20, 0xFE2F}, {0xFE70, 0xFE74},
{0xFE76, 0xFEFC}, {0xFEFF, 0xFEFF}, {0xFFF9, 0xFFFC},
{0x10000, 0x1000B}, {0x1000D, 0x10026}, {0x10028, 0x1003A},
{0x1003C, 0x1003D}, {0x1003F, 0x1004D}, {0x10050, 0x1005D},
{0x10080, 0x100FA}, {0x10100, 0x10102}, {0x10107, 0x10133},
{0x10137, 0x1018E}, {0x10190, 0x1019B}, {0x101A0, 0x101A0},
{0x101D0, 0x101FD}, {0x10280, 0x1029C}, {0x102A0, 0x102D0},
{0x102E0, 0x102FB}, {0x10300, 0x10323}, {0x1032D, 0x1034A},
{0x10350, 0x1037A}, {0x10380, 0x1039D}, {0x1039F, 0x103C3},
{0x103C8, 0x103D5}, {0x10400, 0x1049D}, {0x104A0, 0x104A9},
{0x104B0, 0x104D3}, {0x104D8, 0x104FB}, {0x10500, 0x10527},
{0x10530, 0x10563}, {0x1056F, 0x1056F}, {0x10600, 0x10736},
{0x10740, 0x10755}, {0x10760, 0x10767}, {0x10800, 0x10805},
{0x10808, 0x10808}, {0x1080A, 0x10835}, {0x10837, 0x10838},
{0x1083C, 0x1083C}, {0x1083F, 0x10855}, {0x10857, 0x1089E},
{0x108A7, 0x108AF}, {0x108E0, 0x108F2}, {0x108F4, 0x108F5},
{0x108FB, 0x1091B}, {0x1091F, 0x10939}, {0x1093F, 0x1093F},
{0x10980, 0x109B7}, {0x109BC, 0x109CF}, {0x109D2, 0x10A03},
{0x10A05, 0x10A06}, {0x10A0C, 0x10A13}, {0x10A15, 0x10A17},
{0x10A19, 0x10A35}, {0x10A38, 0x10A3A}, {0x10A3F, 0x10A48},
{0x10A50, 0x10A58}, {0x10A60, 0x10A9F}, {0x10AC0, 0x10AE6},
{0x10AEB, 0x10AF6}, {0x10B00, 0x10B35}, {0x10B39, 0x10B55},
{0x10B58, 0x10B72}, {0x10B78, 0x10B91}, {0x10B99, 0x10B9C},
{0x10BA9, 0x10BAF}, {0x10C00, 0x10C48}, {0x10C80, 0x10CB2},
{0x10CC0, 0x10CF2}, {0x10CFA, 0x10D27}, {0x10D30, 0x10D39},
{0x10E60, 0x10E7E}, {0x10F00, 0x10F27}, {0x10F30, 0x10F59},
{0x10FE0, 0x10FF6}, {0x11000, 0x1104D}, {0x11052, 0x1106F},
{0x1107F, 0x110C1}, {0x110CD, 0x110CD}, {0x110D0, 0x110E8},
{0x110F0, 0x110F9}, {0x11100, 0x11134}, {0x11136, 0x11146},
{0x11150, 0x11176}, {0x11180, 0x111CD}, {0x111D0, 0x111DF},
{0x111E1, 0x111F4}, {0x11200, 0x11211}, {0x11213, 0x1123E},
{0x11280, 0x11286}, {0x11288, 0x11288}, {0x1128A, 0x1128D},
{0x1128F, 0x1129D}, {0x1129F, 0x112A9}, {0x112B0, 0x112EA},
{0x112F0, 0x112F9}, {0x11300, 0x11303}, {0x11305, 0x1130C},
{0x1130F, 0x11310}, {0x11313, 0x11328}, {0x1132A, 0x11330},
{0x11332, 0x11333}, {0x11335, 0x11339}, {0x1133B, 0x11344},
{0x11347, 0x11348}, {0x1134B, 0x1134D}, {0x11350, 0x11350},
{0x11357, 0x11357}, {0x1135D, 0x11363}, {0x11366, 0x1136C},
{0x11370, 0x11374}, {0x11400, 0x11459}, {0x1145B, 0x1145B},
{0x1145D, 0x1145F}, {0x11480, 0x114C7}, {0x114D0, 0x114D9},
{0x11580, 0x115B5}, {0x115B8, 0x115DD}, {0x11600, 0x11644},
{0x11650, 0x11659}, {0x11660, 0x1166C}, {0x11680, 0x116B8},
{0x116C0, 0x116C9}, {0x11700, 0x1171A}, {0x1171D, 0x1172B},
{0x11730, 0x1173F}, {0x11800, 0x1183B}, {0x118A0, 0x118F2},
{0x118FF, 0x118FF}, {0x119A0, 0x119A7}, {0x119AA, 0x119D7},
{0x119DA, 0x119E4}, {0x11A00, 0x11A47}, {0x11A50, 0x11AA2},
{0x11AC0, 0x11AF8}, {0x11C00, 0x11C08}, {0x11C0A, 0x11C36},
{0x11C38, 0x11C45}, {0x11C50, 0x11C6C}, {0x11C70, 0x11C8F},
{0x11C92, 0x11CA7}, {0x11CA9, 0x11CB6}, {0x11D00, 0x11D06},
{0x11D08, 0x11D09}, {0x11D0B, 0x11D36}, {0x11D3A, 0x11D3A},
{0x11D3C, 0x11D3D}, {0x11D3F, 0x11D47}, {0x11D50, 0x11D59},
{0x11D60, 0x11D65}, {0x11D67, 0x11D68}, {0x11D6A, 0x11D8E},
{0x11D90, 0x11D91}, {0x11D93, 0x11D98}, {0x11DA0, 0x11DA9},
{0x11EE0, 0x11EF8}, {0x11FC0, 0x11FF1}, {0x11FFF, 0x12399},
{0x12400, 0x1246E}, {0x12470, 0x12474}, {0x12480, 0x12543},
{0x13000, 0x1342E}, {0x13430, 0x13438}, {0x14400, 0x14646},
{0x16800, 0x16A38}, {0x16A40, 0x16A5E}, {0x16A60, 0x16A69},
{0x16A6E, 0x16A6F}, {0x16AD0, 0x16AED}, {0x16AF0, 0x16AF5},
{0x16B00, 0x16B45}, {0x16B50, 0x16B59}, {0x16B5B, 0x16B61},
{0x16B63, 0x16B77}, {0x16B7D, 0x16B8F}, {0x16E40, 0x16E9A},
{0x16F00, 0x16F4A}, {0x16F4F, 0x16F87}, {0x16F8F, 0x16F9F},
{0x1BC00, 0x1BC6A}, {0x1BC70, 0x1BC7C}, {0x1BC80, 0x1BC88},
{0x1BC90, 0x1BC99}, {0x1BC9C, 0x1BCA3}, {0x1D000, 0x1D0F5},
{0x1D100, 0x1D126}, {0x1D129, 0x1D1E8}, {0x1D200, 0x1D245},
{0x1D2E0, 0x1D2F3}, {0x1D300, 0x1D356}, {0x1D360, 0x1D378},
{0x1D400, 0x1D454}, {0x1D456, 0x1D49C}, {0x1D49E, 0x1D49F},
{0x1D4A2, 0x1D4A2}, {0x1D4A5, 0x1D4A6}, {0x1D4A9, 0x1D4AC},
{0x1D4AE, 0x1D4B9}, {0x1D4BB, 0x1D4BB}, {0x1D4BD, 0x1D4C3},
{0x1D4C5, 0x1D505}, {0x1D507, 0x1D50A}, {0x1D50D, 0x1D514},
{0x1D516, 0x1D51C}, {0x1D51E, 0x1D539}, {0x1D53B, 0x1D53E},
{0x1D540, 0x1D544}, {0x1D546, 0x1D546}, {0x1D54A, 0x1D550},
{0x1D552, 0x1D6A5}, {0x1D6A8, 0x1D7CB}, {0x1D7CE, 0x1DA8B},
{0x1DA9B, 0x1DA9F}, {0x1DAA1, 0x1DAAF}, {0x1E000, 0x1E006},
{0x1E008, 0x1E018}, {0x1E01B, 0x1E021}, {0x1E023, 0x1E024},
{0x1E026, 0x1E02A}, {0x1E100, 0x1E12C}, {0x1E130, 0x1E13D},
{0x1E140, 0x1E149}, {0x1E14E, 0x1E14F}, {0x1E2C0, 0x1E2F9},
{0x1E2FF, 0x1E2FF}, {0x1E800, 0x1E8C4}, {0x1E8C7, 0x1E8D6},
{0x1E900, 0x1E94B}, {0x1E950, 0x1E959}, {0x1E95E, 0x1E95F},
{0x1EC71, 0x1ECB4}, {0x1ED01, 0x1ED3D}, {0x1EE00, 0x1EE03},
{0x1EE05, 0x1EE1F}, {0x1EE21, 0x1EE22}, {0x1EE24, 0x1EE24},
{0x1EE27, 0x1EE27}, {0x1EE29, 0x1EE32}, {0x1EE34, 0x1EE37},
{0x1EE39, 0x1EE39}, {0x1EE3B, 0x1EE3B}, {0x1EE42, 0x1EE42},
{0x1EE47, 0x1EE47}, {0x1EE49, 0x1EE49}, {0x1EE4B, 0x1EE4B},
{0x1EE4D, 0x1EE4F}, {0x1EE51, 0x1EE52}, {0x1EE54, 0x1EE54},
{0x1EE57, 0x1EE57}, {0x1EE59, 0x1EE59}, {0x1EE5B, 0x1EE5B},
{0x1EE5D, 0x1EE5D}, {0x1EE5F, 0x1EE5F}, {0x1EE61, 0x1EE62},
{0x1EE64, 0x1EE64}, {0x1EE67, 0x1EE6A}, {0x1EE6C, 0x1EE72},
{0x1EE74, 0x1EE77}, {0x1EE79, 0x1EE7C}, {0x1EE7E, 0x1EE7E},
{0x1EE80, 0x1EE89}, {0x1EE8B, 0x1EE9B}, {0x1EEA1, 0x1EEA3},
{0x1EEA5, 0x1EEA9}, {0x1EEAB, 0x1EEBB}, {0x1EEF0, 0x1EEF1},
{0x1F000, 0x1F003}, {0x1F005, 0x1F02B}, {0x1F030, 0x1F093},
{0x1F0A0, 0x1F0AE}, {0x1F0B1, 0x1F0BF}, {0x1F0C1, 0x1F0CE},
{0x1F0D1, 0x1F0F5}, {0x1F10B, 0x1F10C}, {0x1F12E, 0x1F12F},
{0x1F16A, 0x1F16C}, {0x1F1E6, 0x1F1FF}, {0x1F321, 0x1F32C},
{0x1F336, 0x1F336}, {0x1F37D, 0x1F37D}, {0x1F394, 0x1F39F},
{0x1F3CB, 0x1F3CE}, {0x1F3D4, 0x1F3DF}, {0x1F3F1, 0x1F3F3},
{0x1F3F5, 0x1F3F7}, {0x1F43F, 0x1F43F}, {0x1F441, 0x1F441},
{0x1F4FD, 0x1F4FE}, {0x1F53E, 0x1F54A}, {0x1F54F, 0x1F54F},
{0x1F568, 0x1F579}, {0x1F57B, 0x1F594}, {0x1F597, 0x1F5A3},
{0x1F5A5, 0x1F5FA}, {0x1F650, 0x1F67F}, {0x1F6C6, 0x1F6CB},
{0x1F6CD, 0x1F6CF}, {0x1F6D3, 0x1F6D4}, {0x1F6E0, 0x1F6EA},
{0x1F6F0, 0x1F6F3}, {0x1F700, 0x1F773}, {0x1F780, 0x1F7D8},
{0x1F800, 0x1F80B}, {0x1F810, 0x1F847}, {0x1F850, 0x1F859},
{0x1F860, 0x1F887}, {0x1F890, 0x1F8AD}, {0x1F900, 0x1F90B},
{0x1FA00, 0x1FA53}, {0x1FA60, 0x1FA6D}, {0xE0001, 0xE0001},
{0xE0020, 0xE007F},
}
var emoji = table{
{0x203C, 0x203C}, {0x2049, 0x2049}, {0x2122, 0x2122},
{0x2139, 0x2139}, {0x2194, 0x2199}, {0x21A9, 0x21AA},
{0x231A, 0x231B}, {0x2328, 0x2328}, {0x2388, 0x2388},
{0x23CF, 0x23CF}, {0x23E9, 0x23F3}, {0x23F8, 0x23FA},
{0x24C2, 0x24C2}, {0x25AA, 0x25AB}, {0x25B6, 0x25B6},
{0x25C0, 0x25C0}, {0x25FB, 0x25FE}, {0x2600, 0x2605},
{0x2607, 0x2612}, {0x2614, 0x2685}, {0x2690, 0x2705},
{0x2708, 0x2712}, {0x2714, 0x2714}, {0x2716, 0x2716},
{0x271D, 0x271D}, {0x2721, 0x2721}, {0x2728, 0x2728},
{0x2733, 0x2734}, {0x2744, 0x2744}, {0x2747, 0x2747},
{0x274C, 0x274C}, {0x274E, 0x274E}, {0x2753, 0x2755},
{0x2757, 0x2757}, {0x2763, 0x2767}, {0x2795, 0x2797},
{0x27A1, 0x27A1}, {0x27B0, 0x27B0}, {0x27BF, 0x27BF},
{0x2934, 0x2935}, {0x2B05, 0x2B07}, {0x2B1B, 0x2B1C},
{0x2B50, 0x2B50}, {0x2B55, 0x2B55}, {0x3030, 0x3030},
{0x303D, 0x303D}, {0x3297, 0x3297}, {0x3299, 0x3299},
{0x1F000, 0x1F0FF}, {0x1F10D, 0x1F10F}, {0x1F12F, 0x1F12F},
{0x1F16C, 0x1F171}, {0x1F17E, 0x1F17F}, {0x1F18E, 0x1F18E},
{0x1F191, 0x1F19A}, {0x1F1AD, 0x1F1E5}, {0x1F201, 0x1F20F},
{0x1F21A, 0x1F21A}, {0x1F22F, 0x1F22F}, {0x1F232, 0x1F23A},
{0x1F23C, 0x1F23F}, {0x1F249, 0x1F3FA}, {0x1F400, 0x1F53D},
{0x1F546, 0x1F64F}, {0x1F680, 0x1F6FF}, {0x1F774, 0x1F77F},
{0x1F7D5, 0x1F7FF}, {0x1F80C, 0x1F80F}, {0x1F848, 0x1F84F},
{0x1F85A, 0x1F85F}, {0x1F888, 0x1F88F}, {0x1F8AE, 0x1F8FF},
{0x1F90C, 0x1F93A}, {0x1F93C, 0x1F945}, {0x1F947, 0x1FFFD},
}

View File

@ -0,0 +1,28 @@
// +build windows
// +build !appengine
package runewidth
import (
"syscall"
)
var (
kernel32 = syscall.NewLazyDLL("kernel32")
procGetConsoleOutputCP = kernel32.NewProc("GetConsoleOutputCP")
)
// IsEastAsian return true if the current locale is CJK
func IsEastAsian() bool {
r1, _, _ := procGetConsoleOutputCP.Call()
if r1 == 0 {
return false
}
switch int(r1) {
case 932, 51932, 936, 949, 950:
return true
}
return false
}

2
vendor/github.com/mattn/godown/.gitignore generated vendored Normal file
View File

@ -0,0 +1,2 @@
*.swp
godown

14
vendor/github.com/mattn/godown/.travis.yml generated vendored Normal file
View File

@ -0,0 +1,14 @@
language: go
go:
- 1.8
- 1.9.3
env:
secure: "sssm68fvzltcAnFd0Vc+OJV0eOicaTUO4I/CRX9LsnqzSsiNmaFT5o1O0Mx622ApYxCfiG3G53B8wuPzSMQxdPaSiMqzoXNLjD8gURaZBWTXc+kj9WFUoS4KW5L8KF3zrmS1u6Ja9U/elIpNqbpuwqT7sZUUJJM1JR50uEVmtP9oc/iqTKh3JK1HZCkb/PDVKs7xY5AEOhx1x0QOn9SegMUK2b83WeuSbta3Z6Rp4EW3p3WwI1WHZmm8+IYjvbwu18foQSetfro+pXCyDBpw1zLbBTDR8W02VwkH2vECMm4N7GYPmHWNx2lZFqoFp9zY5zCRUQG9KmxqbappalBCsT1ZyesUt7Wp/qYw5W+1Np7/vQhe8eeyyKMzsS7FBq8Imn4JiBPbj/1KAhVoZZKyv0qU4hgxHPZMC/JtVoTkIH3IXvTE88P92z9pFL30afQ692BXPe+XmCBph4zBdH88vksdiky9DWuXJ+O0rDCcLes45ij/wk6psdTPx3IXuMohfkO81F0pveksBYFkff8dXXxCABUzZbPaawEDnLAQKJ1m+oF3UYhPzVwrelNjFDOUq3mxsTU36uyhB9fb8sJ+BmorTD9AvqNvobcwKlQ6TaVJEhHjDJRxho82OG2gof9UbsJF3+6IM8uuUVy3TP7b1o+t8PQ3iNKTB4RUzGjJCOs="
script:
go test -v -race -coverprofile=coverage.txt -covermode=atomic
after_success:
- bash <(curl -s https://codecov.io/bash)

21
vendor/github.com/mattn/godown/LICENSE generated vendored Normal file
View File

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2018 Yasuhiro Matsumoto
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

42
vendor/github.com/mattn/godown/README.md generated vendored Normal file
View File

@ -0,0 +1,42 @@
# godown
[![Build Status](https://travis-ci.org/mattn/godown.png?branch=master)](https://travis-ci.org/mattn/godown)
[![Codecov](https://codecov.io/gh/mattn/godown/branch/master/graph/badge.svg)](https://codecov.io/gh/mattn/godown)
[![GoDoc](https://godoc.org/github.com/mattn/godown?status.svg)](http://godoc.org/github.com/mattn/godown)
[![Go Report Card](https://goreportcard.com/badge/github.com/mattn/godown)](https://goreportcard.com/report/github.com/mattn/godown)
Convert HTML into Markdown
This is work in progress.
## Usage
```
err := godown.Convert(w, r)
checkError(err)
```
## Command Line
```
$ godown < index.html > index.md
```
## Installation
```
$ go get github.com/mattn/godown/cmd/godown
```
## TODO
* escape strings in HTML
## License
MIT
## Author
Yasuhiro Matsumoto (a.k.a. mattn)

372
vendor/github.com/mattn/godown/godown.go generated vendored Normal file
View File

@ -0,0 +1,372 @@
package godown
import (
"bytes"
"fmt"
"io"
"regexp"
"strings"
"github.com/mattn/go-runewidth"
"golang.org/x/net/html"
)
func isChildOf(node *html.Node, name string) bool {
node = node.Parent
return node != nil && node.Type == html.ElementNode && strings.ToLower(node.Data) == name
}
func hasClass(node *html.Node, clazz string) bool {
for _, attr := range node.Attr {
if attr.Key == "class" {
for _, c := range strings.Fields(attr.Val) {
if c == clazz {
return true
}
}
}
}
return false
}
func attr(node *html.Node, key string) string {
for _, attr := range node.Attr {
if attr.Key == key {
return attr.Val
}
}
return ""
}
func br(node *html.Node, w io.Writer, option *Option) {
node = node.PrevSibling
if node == nil {
return
}
switch node.Type {
case html.TextNode:
text := strings.Trim(node.Data, " \t")
if text != "" && !strings.HasSuffix(text, "\n") {
fmt.Fprint(w, "\n")
}
case html.ElementNode:
switch strings.ToLower(node.Data) {
case "br", "p", "ul", "ol", "div", "blockquote", "h1", "h2", "h3", "h4", "h5", "h6":
fmt.Fprint(w, "\n")
}
}
}
func table(node *html.Node, w io.Writer, option *Option) {
for tr := node.FirstChild; tr != nil; tr = tr.NextSibling {
if tr.Type == html.ElementNode && strings.ToLower(tr.Data) == "tbody" {
node = tr
break
}
}
var header bool
var rows [][]string
for tr := node.FirstChild; tr != nil; tr = tr.NextSibling {
if tr.Type != html.ElementNode || strings.ToLower(tr.Data) != "tr" {
continue
}
var cols []string
if !header {
for th := tr.FirstChild; th != nil; th = th.NextSibling {
if th.Type != html.ElementNode || strings.ToLower(th.Data) != "th" {
continue
}
var buf bytes.Buffer
walk(th, &buf, 0, option)
cols = append(cols, buf.String())
}
if len(cols) > 0 {
rows = append(rows, cols)
header = true
continue
}
}
for td := tr.FirstChild; td != nil; td = td.NextSibling {
if td.Type != html.ElementNode || strings.ToLower(td.Data) != "td" {
continue
}
var buf bytes.Buffer
walk(td, &buf, 0, option)
cols = append(cols, buf.String())
}
rows = append(rows, cols)
}
maxcol := 0
for _, cols := range rows {
if len(cols) > maxcol {
maxcol = len(cols)
}
}
widths := make([]int, maxcol)
for _, cols := range rows {
for i := 0; i < maxcol; i++ {
if i < len(cols) {
width := runewidth.StringWidth(cols[i])
if widths[i] < width {
widths[i] = width
}
}
}
}
for i, cols := range rows {
for j := 0; j < maxcol; j++ {
fmt.Fprint(w, "|")
if j < len(cols) {
width := runewidth.StringWidth(cols[j])
fmt.Fprint(w, cols[j])
fmt.Fprint(w, strings.Repeat(" ", widths[j]-width))
} else {
fmt.Fprint(w, strings.Repeat(" ", widths[j]))
}
}
fmt.Fprint(w, "|\n")
if i == 0 && header {
for j := 0; j < maxcol; j++ {
fmt.Fprint(w, "|")
fmt.Fprint(w, strings.Repeat("-", widths[j]))
}
fmt.Fprint(w, "|\n")
}
}
fmt.Fprint(w, "\n")
}
var emptyElements = []string{
"area",
"base",
"br",
"col",
"embed",
"hr",
"img",
"input",
"keygen",
"link",
"meta",
"param",
"source",
"track",
"wbr",
}
func raw(node *html.Node, w io.Writer, option *Option) {
switch node.Type {
case html.ElementNode:
fmt.Fprintf(w, "<%s", node.Data)
for _, attr := range node.Attr {
fmt.Fprintf(w, " %s=%q", attr.Key, attr.Val)
}
found := false
tag := strings.ToLower(node.Data)
for _, e := range emptyElements {
if e == tag {
found = true
break
}
}
if found {
fmt.Fprint(w, "/>")
} else {
fmt.Fprint(w, ">")
for c := node.FirstChild; c != nil; c = c.NextSibling {
raw(c, w, option)
}
fmt.Fprintf(w, "</%s>", node.Data)
}
case html.TextNode:
fmt.Fprint(w, node.Data)
}
}
func bq(node *html.Node, w io.Writer, option *Option) {
if node.Type == html.TextNode {
fmt.Fprint(w, strings.Replace(node.Data, "\u00a0", " ", -1))
} else {
for c := node.FirstChild; c != nil; c = c.NextSibling {
bq(c, w, option)
}
}
}
func pre(node *html.Node, w io.Writer, option *Option) {
if node.Type == html.TextNode {
fmt.Fprint(w, node.Data)
} else {
for c := node.FirstChild; c != nil; c = c.NextSibling {
pre(c, w, option)
}
}
}
func walk(node *html.Node, w io.Writer, nest int, option *Option) {
if node.Type == html.TextNode {
if strings.TrimSpace(node.Data) != "" {
text := regexp.MustCompile(`[[:space:]][[:space:]]*`).ReplaceAllString(strings.Trim(node.Data, "\t\r\n"), " ")
fmt.Fprint(w, text)
}
}
n := 0
for c := node.FirstChild; c != nil; c = c.NextSibling {
switch c.Type {
case html.CommentNode:
fmt.Fprint(w, "<!--")
fmt.Fprint(w, c.Data)
fmt.Fprint(w, "-->\n")
case html.ElementNode:
switch strings.ToLower(c.Data) {
case "a":
fmt.Fprint(w, "[")
walk(c, w, nest, option)
fmt.Fprint(w, "]("+attr(c, "href")+")")
case "b", "strong":
fmt.Fprint(w, "**")
walk(c, w, nest, option)
fmt.Fprint(w, "**")
case "i", "em":
fmt.Fprint(w, "_")
walk(c, w, nest, option)
fmt.Fprint(w, "_")
case "del":
fmt.Fprint(w, "~~")
walk(c, w, nest, option)
fmt.Fprint(w, "~~")
case "br":
br(c, w, option)
fmt.Fprint(w, "\n\n")
case "p":
br(c, w, option)
walk(c, w, nest, option)
br(c, w, option)
fmt.Fprint(w, "\n\n")
case "code":
if !isChildOf(c, "pre") {
fmt.Fprint(w, "`")
pre(c, w, option)
fmt.Fprint(w, "`")
}
case "pre":
br(c, w, option)
var buf bytes.Buffer
pre(c, &buf, option)
var lang string
if option != nil && option.GuessLang != nil {
if guess, err := option.GuessLang(buf.String()); err == nil {
lang = guess
}
}
fmt.Fprint(w, "```"+lang+"\n")
fmt.Fprint(w, buf.String())
if !strings.HasSuffix(buf.String(), "\n") {
fmt.Fprint(w, "\n")
}
fmt.Fprint(w, "```\n\n")
case "div":
br(c, w, option)
walk(c, w, nest, option)
fmt.Fprint(w, "\n")
case "blockquote":
br(c, w, option)
var buf bytes.Buffer
if hasClass(c, "code") {
bq(c, &buf, option)
var lang string
if option != nil && option.GuessLang != nil {
if guess, err := option.GuessLang(buf.String()); err == nil {
lang = guess
}
}
fmt.Fprint(w, "```"+lang+"\n")
fmt.Fprint(w, strings.TrimLeft(buf.String(), "\n"))
if !strings.HasSuffix(buf.String(), "\n") {
fmt.Fprint(w, "\n")
}
fmt.Fprint(w, "```\n\n")
} else {
walk(c, &buf, nest+1, option)
if lines := strings.Split(strings.TrimSpace(buf.String()), "\n"); len(lines) > 0 {
for _, l := range lines {
fmt.Fprint(w, "> "+strings.TrimSpace(l)+"\n")
}
fmt.Fprint(w, "\n")
}
}
case "ul", "ol":
br(c, w, option)
var buf bytes.Buffer
walk(c, &buf, 1, option)
if lines := strings.Split(strings.TrimSpace(buf.String()), "\n"); len(lines) > 0 {
for i, l := range lines {
if i > 0 || nest > 0 {
fmt.Fprint(w, "\n")
}
fmt.Fprint(w, strings.Repeat(" ", nest)+strings.TrimSpace(l))
}
fmt.Fprint(w, "\n")
}
case "li":
br(c, w, option)
if isChildOf(c, "ul") {
fmt.Fprint(w, "* ")
} else if isChildOf(c, "ol") {
n++
fmt.Fprint(w, fmt.Sprintf("%d. ", n))
}
walk(c, w, nest, option)
fmt.Fprint(w, "\n")
case "h1", "h2", "h3", "h4", "h5", "h6":
br(c, w, option)
fmt.Fprint(w, strings.Repeat("#", int(rune(c.Data[1])-rune('0')))+" ")
walk(c, w, nest, option)
fmt.Fprint(w, "\n\n")
case "img":
fmt.Fprint(w, "!["+attr(c, "alt")+"]("+attr(c, "src")+")")
case "hr":
br(c, w, option)
fmt.Fprint(w, "\n---\n\n")
case "table":
br(c, w, option)
table(c, w, option)
case "style":
if option != nil && option.Style {
br(c, w, option)
raw(c, w, option)
fmt.Fprint(w, "\n\n")
}
case "script":
if option != nil && option.Script {
br(c, w, option)
raw(c, w, option)
fmt.Fprint(w, "\n\n")
}
default:
walk(c, w, nest, option)
}
default:
walk(c, w, nest, option)
}
}
}
type Option struct {
GuessLang func(string) (string, error)
Script bool
Style bool
}
// Convert convert HTML to Markdown. Read HTML from r and write to w.
func Convert(w io.Writer, r io.Reader, option *Option) error {
doc, err := html.Parse(r)
if err != nil {
return err
}
walk(doc, w, 0, option)
fmt.Fprint(w, "\n")
return nil
}

201
vendor/github.com/yaegashi/msgraph.go/LICENSE generated vendored Normal file
View File

@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

17
vendor/github.com/yaegashi/msgraph.go/beta/ACLModel.go generated vendored Normal file
View File

@ -0,0 +1,17 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// ACL undocumented
type ACL struct {
// Object is the base model of ACL
Object
// Type undocumented
Type *ACLType `json:"type,omitempty"`
// Value undocumented
Value *string `json:"value,omitempty"`
// AccessType undocumented
AccessType *AccessType `json:"accessType,omitempty"`
// IdentitySource undocumented
IdentitySource *string `json:"identitySource,omitempty"`
}

View File

@ -0,0 +1,41 @@
// 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

@ -0,0 +1,19 @@
// 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

@ -0,0 +1,11 @@
// 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

@ -0,0 +1,15 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AadUserConversationMember undocumented
type AadUserConversationMember struct {
// ConversationMember is the base model of AadUserConversationMember
ConversationMember
// UserID undocumented
UserID *string `json:"userId,omitempty"`
// Email undocumented
Email *string `json:"email,omitempty"`
// User undocumented
User *User `json:"user,omitempty"`
}

View File

@ -0,0 +1,45 @@
// 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

@ -0,0 +1,9 @@
// 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

@ -0,0 +1,49 @@
// 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

@ -0,0 +1,37 @@
// 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

@ -0,0 +1,39 @@
// 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

@ -0,0 +1,52 @@
// 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

@ -0,0 +1,254 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import (
"context"
"fmt"
"io/ioutil"
"net/http"
"github.com/yaegashi/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

@ -0,0 +1,35 @@
// 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

@ -0,0 +1,33 @@
// 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

@ -0,0 +1,59 @@
// 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

@ -0,0 +1,23 @@
// 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

@ -0,0 +1,160 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import (
"context"
"fmt"
"io/ioutil"
"net/http"
"github.com/yaegashi/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

@ -0,0 +1,37 @@
// 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

@ -0,0 +1,421 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import (
"context"
"fmt"
"io/ioutil"
"net/http"
"github.com/yaegashi/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

@ -0,0 +1,35 @@
// 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

@ -0,0 +1,240 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import (
"context"
"fmt"
"io/ioutil"
"net/http"
"github.com/yaegashi/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

@ -0,0 +1,33 @@
// 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

@ -0,0 +1,233 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import (
"context"
"fmt"
"io/ioutil"
"net/http"
"github.com/yaegashi/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

@ -0,0 +1,31 @@
// 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

@ -0,0 +1,52 @@
// 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

@ -0,0 +1,19 @@
// 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

@ -0,0 +1,45 @@
// 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

@ -0,0 +1,23 @@
// 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

@ -0,0 +1,52 @@
// 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

@ -0,0 +1,25 @@
// 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

@ -0,0 +1,45 @@
// 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

@ -0,0 +1,23 @@
// 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

@ -0,0 +1,38 @@
// 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

@ -0,0 +1,125 @@
// 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

@ -0,0 +1,29 @@
// 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

@ -0,0 +1,38 @@
// 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

@ -0,0 +1,39 @@
// 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

@ -0,0 +1,17 @@
// 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

@ -0,0 +1,421 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import (
"context"
"fmt"
"io/ioutil"
"net/http"
"github.com/yaegashi/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

@ -0,0 +1,13 @@
// 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

@ -0,0 +1,38 @@
// 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

@ -0,0 +1,27 @@
// 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

@ -0,0 +1,25 @@
// 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

@ -0,0 +1,25 @@
// 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

@ -0,0 +1,13 @@
// 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

@ -0,0 +1,23 @@
// 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

@ -0,0 +1,38 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "context"
// AccountRequestBuilder is request builder for Account
type AccountRequestBuilder struct{ BaseRequestBuilder }
// Request returns AccountRequest
func (b *AccountRequestBuilder) Request() *AccountRequest {
return &AccountRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AccountRequest is request for Account
type AccountRequest struct{ BaseRequest }
// Get performs GET request for Account
func (r *AccountRequest) Get(ctx context.Context) (resObj *Account, 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 Account
func (r *AccountRequest) Update(ctx context.Context, reqObj *Account) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for Account
func (r *AccountRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

View File

@ -0,0 +1,57 @@
// 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

@ -0,0 +1,41 @@
// 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

@ -0,0 +1,65 @@
// 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

@ -0,0 +1,13 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// ActiveDirectoryWindowsAutopilotDeploymentProfile Windows Autopilot Deployment Profile
type ActiveDirectoryWindowsAutopilotDeploymentProfile struct {
// WindowsAutopilotDeploymentProfile is the base model of ActiveDirectoryWindowsAutopilotDeploymentProfile
WindowsAutopilotDeploymentProfile
// HybridAzureADJoinSkipConnectivityCheck The Autopilot Hybrid Azure AD join flow will continue even if it does not establish domain controller connectivity during OOBE.
HybridAzureADJoinSkipConnectivityCheck *bool `json:"hybridAzureADJoinSkipConnectivityCheck,omitempty"`
// DomainJoinConfiguration undocumented
DomainJoinConfiguration *WindowsDomainJoinConfiguration `json:"domainJoinConfiguration,omitempty"`
}

View File

@ -0,0 +1,45 @@
// 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

@ -0,0 +1,41 @@
// 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

@ -0,0 +1,29 @@
// 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

@ -0,0 +1,45 @@
// 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
}

View File

@ -0,0 +1,21 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "time"
// ActivityStatistics undocumented
type ActivityStatistics struct {
// Entity is the base model of ActivityStatistics
Entity
// Activity undocumented
Activity *AnalyticsActivityType `json:"activity,omitempty"`
// StartDate undocumented
StartDate *time.Time `json:"startDate,omitempty"`
// EndDate undocumented
EndDate *time.Time `json:"endDate,omitempty"`
// TimeZoneUsed undocumented
TimeZoneUsed *string `json:"timeZoneUsed,omitempty"`
// Duration undocumented
Duration *time.Duration `json:"duration,omitempty"`
}

View File

@ -0,0 +1,38 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "context"
// ActivityStatisticsRequestBuilder is request builder for ActivityStatistics
type ActivityStatisticsRequestBuilder struct{ BaseRequestBuilder }
// Request returns ActivityStatisticsRequest
func (b *ActivityStatisticsRequestBuilder) Request() *ActivityStatisticsRequest {
return &ActivityStatisticsRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ActivityStatisticsRequest is request for ActivityStatistics
type ActivityStatisticsRequest struct{ BaseRequest }
// Get performs GET request for ActivityStatistics
func (r *ActivityStatisticsRequest) Get(ctx context.Context) (resObj *ActivityStatistics, 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 ActivityStatistics
func (r *ActivityStatisticsRequest) Update(ctx context.Context, reqObj *ActivityStatistics) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for ActivityStatistics
func (r *ActivityStatisticsRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

View File

@ -0,0 +1,33 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// ActivityType undocumented
type ActivityType int
const (
// ActivityTypeVSignin undocumented
ActivityTypeVSignin ActivityType = 0
// ActivityTypeVUser undocumented
ActivityTypeVUser ActivityType = 1
// ActivityTypeVUnknownFutureValue undocumented
ActivityTypeVUnknownFutureValue ActivityType = 2
)
// ActivityTypePSignin returns a pointer to ActivityTypeVSignin
func ActivityTypePSignin() *ActivityType {
v := ActivityTypeVSignin
return &v
}
// ActivityTypePUser returns a pointer to ActivityTypeVUser
func ActivityTypePUser() *ActivityType {
v := ActivityTypeVUser
return &v
}
// ActivityTypePUnknownFutureValue returns a pointer to ActivityTypeVUnknownFutureValue
func ActivityTypePUnknownFutureValue() *ActivityType {
v := ActivityTypeVUnknownFutureValue
return &v
}

View File

@ -0,0 +1,23 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AddContentFooterAction undocumented
type AddContentFooterAction struct {
// InformationProtectionAction is the base model of AddContentFooterAction
InformationProtectionAction
// UIElementName undocumented
UIElementName *string `json:"uiElementName,omitempty"`
// Text undocumented
Text *string `json:"text,omitempty"`
// FontName undocumented
FontName *string `json:"fontName,omitempty"`
// FontSize undocumented
FontSize *int `json:"fontSize,omitempty"`
// FontColor undocumented
FontColor *string `json:"fontColor,omitempty"`
// Alignment undocumented
Alignment *ContentAlignment `json:"alignment,omitempty"`
// Margin undocumented
Margin *int `json:"margin,omitempty"`
}

View File

@ -0,0 +1,23 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AddContentHeaderAction undocumented
type AddContentHeaderAction struct {
// InformationProtectionAction is the base model of AddContentHeaderAction
InformationProtectionAction
// UIElementName undocumented
UIElementName *string `json:"uiElementName,omitempty"`
// Text undocumented
Text *string `json:"text,omitempty"`
// FontName undocumented
FontName *string `json:"fontName,omitempty"`
// FontSize undocumented
FontSize *int `json:"fontSize,omitempty"`
// FontColor undocumented
FontColor *string `json:"fontColor,omitempty"`
// Alignment undocumented
Alignment *ContentAlignment `json:"alignment,omitempty"`
// Margin undocumented
Margin *int `json:"margin,omitempty"`
}

View File

@ -0,0 +1,13 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AddFooter undocumented
type AddFooter struct {
// MarkContent is the base model of AddFooter
MarkContent
// Margin undocumented
Margin *int `json:"margin,omitempty"`
// Alignment undocumented
Alignment *Alignment `json:"alignment,omitempty"`
}

View File

@ -0,0 +1,13 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AddHeader undocumented
type AddHeader struct {
// MarkContent is the base model of AddHeader
MarkContent
// Margin undocumented
Margin *int `json:"margin,omitempty"`
// Alignment undocumented
Alignment *Alignment `json:"alignment,omitempty"`
}

View File

@ -0,0 +1,15 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AddIn undocumented
type AddIn struct {
// Object is the base model of AddIn
Object
// ID undocumented
ID *UUID `json:"id,omitempty"`
// Type undocumented
Type *string `json:"type,omitempty"`
// Properties undocumented
Properties []KeyValue `json:"properties,omitempty"`
}

View File

@ -0,0 +1,21 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AddWatermarkAction undocumented
type AddWatermarkAction struct {
// InformationProtectionAction is the base model of AddWatermarkAction
InformationProtectionAction
// UIElementName undocumented
UIElementName *string `json:"uiElementName,omitempty"`
// Layout undocumented
Layout *WatermarkLayout `json:"layout,omitempty"`
// Text undocumented
Text *string `json:"text,omitempty"`
// FontName undocumented
FontName *string `json:"fontName,omitempty"`
// FontSize undocumented
FontSize *int `json:"fontSize,omitempty"`
// FontColor undocumented
FontColor *string `json:"fontColor,omitempty"`
}

View File

@ -0,0 +1,11 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AddWatermark undocumented
type AddWatermark struct {
// MarkContent is the base model of AddWatermark
MarkContent
// Orientation undocumented
Orientation *PageOrientation `json:"orientation,omitempty"`
}

View File

@ -0,0 +1,13 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AdminConsent undocumented
type AdminConsent struct {
// Object is the base model of AdminConsent
Object
// ShareAPNSData The admin consent state of sharing user and device data to Apple.
ShareAPNSData *AdminConsentState `json:"shareAPNSData,omitempty"`
// ShareUserExperienceAnalyticsData Gets or sets the admin consent for sharing User experience analytics data.
ShareUserExperienceAnalyticsData *AdminConsentState `json:"shareUserExperienceAnalyticsData,omitempty"`
}

View File

@ -0,0 +1,33 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AdminConsentState undocumented
type AdminConsentState int
const (
// AdminConsentStateVNotConfigured undocumented
AdminConsentStateVNotConfigured AdminConsentState = 0
// AdminConsentStateVGranted undocumented
AdminConsentStateVGranted AdminConsentState = 1
// AdminConsentStateVNotGranted undocumented
AdminConsentStateVNotGranted AdminConsentState = 2
)
// AdminConsentStatePNotConfigured returns a pointer to AdminConsentStateVNotConfigured
func AdminConsentStatePNotConfigured() *AdminConsentState {
v := AdminConsentStateVNotConfigured
return &v
}
// AdminConsentStatePGranted returns a pointer to AdminConsentStateVGranted
func AdminConsentStatePGranted() *AdminConsentState {
v := AdminConsentStateVGranted
return &v
}
// AdminConsentStatePNotGranted returns a pointer to AdminConsentStateVNotGranted
func AdminConsentStatePNotGranted() *AdminConsentState {
v := AdminConsentStateVNotGranted
return &v
}

View File

@ -0,0 +1,21 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AdministrativeUnit undocumented
type AdministrativeUnit struct {
// DirectoryObject is the base model of AdministrativeUnit
DirectoryObject
// DisplayName undocumented
DisplayName *string `json:"displayName,omitempty"`
// Description undocumented
Description *string `json:"description,omitempty"`
// Visibility undocumented
Visibility *string `json:"visibility,omitempty"`
// Members undocumented
Members []DirectoryObject `json:"members,omitempty"`
// ScopedRoleMembers undocumented
ScopedRoleMembers []ScopedRoleMembership `json:"scopedRoleMembers,omitempty"`
// Extensions undocumented
Extensions []Extension `json:"extensions,omitempty"`
}

View File

@ -0,0 +1,327 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import (
"context"
"fmt"
"io/ioutil"
"net/http"
"github.com/yaegashi/msgraph.go/jsonx"
)
// AdministrativeUnitRequestBuilder is request builder for AdministrativeUnit
type AdministrativeUnitRequestBuilder struct{ BaseRequestBuilder }
// Request returns AdministrativeUnitRequest
func (b *AdministrativeUnitRequestBuilder) Request() *AdministrativeUnitRequest {
return &AdministrativeUnitRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AdministrativeUnitRequest is request for AdministrativeUnit
type AdministrativeUnitRequest struct{ BaseRequest }
// Get performs GET request for AdministrativeUnit
func (r *AdministrativeUnitRequest) Get(ctx context.Context) (resObj *AdministrativeUnit, 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 AdministrativeUnit
func (r *AdministrativeUnitRequest) Update(ctx context.Context, reqObj *AdministrativeUnit) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for AdministrativeUnit
func (r *AdministrativeUnitRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}
// Extensions returns request builder for Extension collection
func (b *AdministrativeUnitRequestBuilder) Extensions() *AdministrativeUnitExtensionsCollectionRequestBuilder {
bb := &AdministrativeUnitExtensionsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/extensions"
return bb
}
// AdministrativeUnitExtensionsCollectionRequestBuilder is request builder for Extension collection
type AdministrativeUnitExtensionsCollectionRequestBuilder struct{ BaseRequestBuilder }
// Request returns request for Extension collection
func (b *AdministrativeUnitExtensionsCollectionRequestBuilder) Request() *AdministrativeUnitExtensionsCollectionRequest {
return &AdministrativeUnitExtensionsCollectionRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ID returns request builder for Extension item
func (b *AdministrativeUnitExtensionsCollectionRequestBuilder) ID(id string) *ExtensionRequestBuilder {
bb := &ExtensionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/" + id
return bb
}
// AdministrativeUnitExtensionsCollectionRequest is request for Extension collection
type AdministrativeUnitExtensionsCollectionRequest struct{ BaseRequest }
// Paging perfoms paging operation for Extension collection
func (r *AdministrativeUnitExtensionsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]Extension, 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 []Extension
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 []Extension
)
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 Extension collection
func (r *AdministrativeUnitExtensionsCollectionRequest) Get(ctx context.Context) ([]Extension, error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
return r.Paging(ctx, "GET", query, nil)
}
// Add performs POST request for Extension collection
func (r *AdministrativeUnitExtensionsCollectionRequest) Add(ctx context.Context, reqObj *Extension) (resObj *Extension, err error) {
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
return
}
// Members returns request builder for DirectoryObject collection
func (b *AdministrativeUnitRequestBuilder) Members() *AdministrativeUnitMembersCollectionRequestBuilder {
bb := &AdministrativeUnitMembersCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/members"
return bb
}
// AdministrativeUnitMembersCollectionRequestBuilder is request builder for DirectoryObject collection
type AdministrativeUnitMembersCollectionRequestBuilder struct{ BaseRequestBuilder }
// Request returns request for DirectoryObject collection
func (b *AdministrativeUnitMembersCollectionRequestBuilder) Request() *AdministrativeUnitMembersCollectionRequest {
return &AdministrativeUnitMembersCollectionRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ID returns request builder for DirectoryObject item
func (b *AdministrativeUnitMembersCollectionRequestBuilder) ID(id string) *DirectoryObjectRequestBuilder {
bb := &DirectoryObjectRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/" + id
return bb
}
// AdministrativeUnitMembersCollectionRequest is request for DirectoryObject collection
type AdministrativeUnitMembersCollectionRequest struct{ BaseRequest }
// Paging perfoms paging operation for DirectoryObject collection
func (r *AdministrativeUnitMembersCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]DirectoryObject, 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 []DirectoryObject
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 []DirectoryObject
)
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 DirectoryObject collection
func (r *AdministrativeUnitMembersCollectionRequest) Get(ctx context.Context) ([]DirectoryObject, error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
return r.Paging(ctx, "GET", query, nil)
}
// Add performs POST request for DirectoryObject collection
func (r *AdministrativeUnitMembersCollectionRequest) Add(ctx context.Context, reqObj *DirectoryObject) (resObj *DirectoryObject, err error) {
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
return
}
// ScopedRoleMembers returns request builder for ScopedRoleMembership collection
func (b *AdministrativeUnitRequestBuilder) ScopedRoleMembers() *AdministrativeUnitScopedRoleMembersCollectionRequestBuilder {
bb := &AdministrativeUnitScopedRoleMembersCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/scopedRoleMembers"
return bb
}
// AdministrativeUnitScopedRoleMembersCollectionRequestBuilder is request builder for ScopedRoleMembership collection
type AdministrativeUnitScopedRoleMembersCollectionRequestBuilder struct{ BaseRequestBuilder }
// Request returns request for ScopedRoleMembership collection
func (b *AdministrativeUnitScopedRoleMembersCollectionRequestBuilder) Request() *AdministrativeUnitScopedRoleMembersCollectionRequest {
return &AdministrativeUnitScopedRoleMembersCollectionRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ID returns request builder for ScopedRoleMembership item
func (b *AdministrativeUnitScopedRoleMembersCollectionRequestBuilder) ID(id string) *ScopedRoleMembershipRequestBuilder {
bb := &ScopedRoleMembershipRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/" + id
return bb
}
// AdministrativeUnitScopedRoleMembersCollectionRequest is request for ScopedRoleMembership collection
type AdministrativeUnitScopedRoleMembersCollectionRequest struct{ BaseRequest }
// Paging perfoms paging operation for ScopedRoleMembership collection
func (r *AdministrativeUnitScopedRoleMembersCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]ScopedRoleMembership, 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 []ScopedRoleMembership
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 []ScopedRoleMembership
)
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 ScopedRoleMembership collection
func (r *AdministrativeUnitScopedRoleMembersCollectionRequest) Get(ctx context.Context) ([]ScopedRoleMembership, error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
return r.Paging(ctx, "GET", query, nil)
}
// Add performs POST request for ScopedRoleMembership collection
func (r *AdministrativeUnitScopedRoleMembersCollectionRequest) Add(ctx context.Context, reqObj *ScopedRoleMembership) (resObj *ScopedRoleMembership, err error) {
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
return
}

View File

@ -0,0 +1,25 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AdministratorConfiguredDeviceComplianceState undocumented
type AdministratorConfiguredDeviceComplianceState int
const (
// AdministratorConfiguredDeviceComplianceStateVBasedOnDeviceCompliancePolicy undocumented
AdministratorConfiguredDeviceComplianceStateVBasedOnDeviceCompliancePolicy AdministratorConfiguredDeviceComplianceState = 0
// AdministratorConfiguredDeviceComplianceStateVNonCompliant undocumented
AdministratorConfiguredDeviceComplianceStateVNonCompliant AdministratorConfiguredDeviceComplianceState = 1
)
// AdministratorConfiguredDeviceComplianceStatePBasedOnDeviceCompliancePolicy returns a pointer to AdministratorConfiguredDeviceComplianceStateVBasedOnDeviceCompliancePolicy
func AdministratorConfiguredDeviceComplianceStatePBasedOnDeviceCompliancePolicy() *AdministratorConfiguredDeviceComplianceState {
v := AdministratorConfiguredDeviceComplianceStateVBasedOnDeviceCompliancePolicy
return &v
}
// AdministratorConfiguredDeviceComplianceStatePNonCompliant returns a pointer to AdministratorConfiguredDeviceComplianceStateVNonCompliant
func AdministratorConfiguredDeviceComplianceStatePNonCompliant() *AdministratorConfiguredDeviceComplianceState {
v := AdministratorConfiguredDeviceComplianceStateVNonCompliant
return &v
}

View File

@ -0,0 +1,145 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AdvancedBitLockerState undocumented
type AdvancedBitLockerState int
const (
// AdvancedBitLockerStateVSuccess undocumented
AdvancedBitLockerStateVSuccess AdvancedBitLockerState = 0
// AdvancedBitLockerStateVNoUserConsent undocumented
AdvancedBitLockerStateVNoUserConsent AdvancedBitLockerState = 1
// AdvancedBitLockerStateVOsVolumeEncryptionMethodMismatch undocumented
AdvancedBitLockerStateVOsVolumeEncryptionMethodMismatch AdvancedBitLockerState = 2
// AdvancedBitLockerStateVOsVolumeTpmRequired undocumented
AdvancedBitLockerStateVOsVolumeTpmRequired AdvancedBitLockerState = 4
// AdvancedBitLockerStateVOsVolumeTpmOnlyRequired undocumented
AdvancedBitLockerStateVOsVolumeTpmOnlyRequired AdvancedBitLockerState = 8
// AdvancedBitLockerStateVOsVolumeTpmPinRequired undocumented
AdvancedBitLockerStateVOsVolumeTpmPinRequired AdvancedBitLockerState = 16
// AdvancedBitLockerStateVOsVolumeTpmStartupKeyRequired undocumented
AdvancedBitLockerStateVOsVolumeTpmStartupKeyRequired AdvancedBitLockerState = 32
// AdvancedBitLockerStateVOsVolumeTpmPinStartupKeyRequired undocumented
AdvancedBitLockerStateVOsVolumeTpmPinStartupKeyRequired AdvancedBitLockerState = 64
// AdvancedBitLockerStateVOsVolumeUnprotected undocumented
AdvancedBitLockerStateVOsVolumeUnprotected AdvancedBitLockerState = 128
// AdvancedBitLockerStateVRecoveryKeyBackupFailed undocumented
AdvancedBitLockerStateVRecoveryKeyBackupFailed AdvancedBitLockerState = 256
// AdvancedBitLockerStateVFixedDriveNotEncrypted undocumented
AdvancedBitLockerStateVFixedDriveNotEncrypted AdvancedBitLockerState = 512
// AdvancedBitLockerStateVFixedDriveEncryptionMethodMismatch undocumented
AdvancedBitLockerStateVFixedDriveEncryptionMethodMismatch AdvancedBitLockerState = 1024
// AdvancedBitLockerStateVLoggedOnUserNonAdmin undocumented
AdvancedBitLockerStateVLoggedOnUserNonAdmin AdvancedBitLockerState = 2048
// AdvancedBitLockerStateVWindowsRecoveryEnvironmentNotConfigured undocumented
AdvancedBitLockerStateVWindowsRecoveryEnvironmentNotConfigured AdvancedBitLockerState = 4096
// AdvancedBitLockerStateVTpmNotAvailable undocumented
AdvancedBitLockerStateVTpmNotAvailable AdvancedBitLockerState = 8192
// AdvancedBitLockerStateVTpmNotReady undocumented
AdvancedBitLockerStateVTpmNotReady AdvancedBitLockerState = 16384
// AdvancedBitLockerStateVNetworkError undocumented
AdvancedBitLockerStateVNetworkError AdvancedBitLockerState = 32768
)
// AdvancedBitLockerStatePSuccess returns a pointer to AdvancedBitLockerStateVSuccess
func AdvancedBitLockerStatePSuccess() *AdvancedBitLockerState {
v := AdvancedBitLockerStateVSuccess
return &v
}
// AdvancedBitLockerStatePNoUserConsent returns a pointer to AdvancedBitLockerStateVNoUserConsent
func AdvancedBitLockerStatePNoUserConsent() *AdvancedBitLockerState {
v := AdvancedBitLockerStateVNoUserConsent
return &v
}
// AdvancedBitLockerStatePOsVolumeEncryptionMethodMismatch returns a pointer to AdvancedBitLockerStateVOsVolumeEncryptionMethodMismatch
func AdvancedBitLockerStatePOsVolumeEncryptionMethodMismatch() *AdvancedBitLockerState {
v := AdvancedBitLockerStateVOsVolumeEncryptionMethodMismatch
return &v
}
// AdvancedBitLockerStatePOsVolumeTpmRequired returns a pointer to AdvancedBitLockerStateVOsVolumeTpmRequired
func AdvancedBitLockerStatePOsVolumeTpmRequired() *AdvancedBitLockerState {
v := AdvancedBitLockerStateVOsVolumeTpmRequired
return &v
}
// AdvancedBitLockerStatePOsVolumeTpmOnlyRequired returns a pointer to AdvancedBitLockerStateVOsVolumeTpmOnlyRequired
func AdvancedBitLockerStatePOsVolumeTpmOnlyRequired() *AdvancedBitLockerState {
v := AdvancedBitLockerStateVOsVolumeTpmOnlyRequired
return &v
}
// AdvancedBitLockerStatePOsVolumeTpmPinRequired returns a pointer to AdvancedBitLockerStateVOsVolumeTpmPinRequired
func AdvancedBitLockerStatePOsVolumeTpmPinRequired() *AdvancedBitLockerState {
v := AdvancedBitLockerStateVOsVolumeTpmPinRequired
return &v
}
// AdvancedBitLockerStatePOsVolumeTpmStartupKeyRequired returns a pointer to AdvancedBitLockerStateVOsVolumeTpmStartupKeyRequired
func AdvancedBitLockerStatePOsVolumeTpmStartupKeyRequired() *AdvancedBitLockerState {
v := AdvancedBitLockerStateVOsVolumeTpmStartupKeyRequired
return &v
}
// AdvancedBitLockerStatePOsVolumeTpmPinStartupKeyRequired returns a pointer to AdvancedBitLockerStateVOsVolumeTpmPinStartupKeyRequired
func AdvancedBitLockerStatePOsVolumeTpmPinStartupKeyRequired() *AdvancedBitLockerState {
v := AdvancedBitLockerStateVOsVolumeTpmPinStartupKeyRequired
return &v
}
// AdvancedBitLockerStatePOsVolumeUnprotected returns a pointer to AdvancedBitLockerStateVOsVolumeUnprotected
func AdvancedBitLockerStatePOsVolumeUnprotected() *AdvancedBitLockerState {
v := AdvancedBitLockerStateVOsVolumeUnprotected
return &v
}
// AdvancedBitLockerStatePRecoveryKeyBackupFailed returns a pointer to AdvancedBitLockerStateVRecoveryKeyBackupFailed
func AdvancedBitLockerStatePRecoveryKeyBackupFailed() *AdvancedBitLockerState {
v := AdvancedBitLockerStateVRecoveryKeyBackupFailed
return &v
}
// AdvancedBitLockerStatePFixedDriveNotEncrypted returns a pointer to AdvancedBitLockerStateVFixedDriveNotEncrypted
func AdvancedBitLockerStatePFixedDriveNotEncrypted() *AdvancedBitLockerState {
v := AdvancedBitLockerStateVFixedDriveNotEncrypted
return &v
}
// AdvancedBitLockerStatePFixedDriveEncryptionMethodMismatch returns a pointer to AdvancedBitLockerStateVFixedDriveEncryptionMethodMismatch
func AdvancedBitLockerStatePFixedDriveEncryptionMethodMismatch() *AdvancedBitLockerState {
v := AdvancedBitLockerStateVFixedDriveEncryptionMethodMismatch
return &v
}
// AdvancedBitLockerStatePLoggedOnUserNonAdmin returns a pointer to AdvancedBitLockerStateVLoggedOnUserNonAdmin
func AdvancedBitLockerStatePLoggedOnUserNonAdmin() *AdvancedBitLockerState {
v := AdvancedBitLockerStateVLoggedOnUserNonAdmin
return &v
}
// AdvancedBitLockerStatePWindowsRecoveryEnvironmentNotConfigured returns a pointer to AdvancedBitLockerStateVWindowsRecoveryEnvironmentNotConfigured
func AdvancedBitLockerStatePWindowsRecoveryEnvironmentNotConfigured() *AdvancedBitLockerState {
v := AdvancedBitLockerStateVWindowsRecoveryEnvironmentNotConfigured
return &v
}
// AdvancedBitLockerStatePTpmNotAvailable returns a pointer to AdvancedBitLockerStateVTpmNotAvailable
func AdvancedBitLockerStatePTpmNotAvailable() *AdvancedBitLockerState {
v := AdvancedBitLockerStateVTpmNotAvailable
return &v
}
// AdvancedBitLockerStatePTpmNotReady returns a pointer to AdvancedBitLockerStateVTpmNotReady
func AdvancedBitLockerStatePTpmNotReady() *AdvancedBitLockerState {
v := AdvancedBitLockerStateVTpmNotReady
return &v
}
// AdvancedBitLockerStatePNetworkError returns a pointer to AdvancedBitLockerStateVNetworkError
func AdvancedBitLockerStatePNetworkError() *AdvancedBitLockerState {
v := AdvancedBitLockerStateVNetworkError
return &v
}

View File

@ -0,0 +1,35 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "time"
// AdvancedThreatProtectionOnboardingDeviceSettingState ATP onboarding State for a given device.
type AdvancedThreatProtectionOnboardingDeviceSettingState struct {
// Entity is the base model of AdvancedThreatProtectionOnboardingDeviceSettingState
Entity
// PlatformType Device platform type
PlatformType *DeviceType `json:"platformType,omitempty"`
// Setting The setting class name and property name.
Setting *string `json:"setting,omitempty"`
// SettingName The Setting Name that is being reported
SettingName *string `json:"settingName,omitempty"`
// DeviceID The Device Id that is being reported
DeviceID *string `json:"deviceId,omitempty"`
// DeviceName The Device Name that is being reported
DeviceName *string `json:"deviceName,omitempty"`
// UserID The user Id that is being reported
UserID *string `json:"userId,omitempty"`
// UserEmail The User email address that is being reported
UserEmail *string `json:"userEmail,omitempty"`
// UserName The User Name that is being reported
UserName *string `json:"userName,omitempty"`
// UserPrincipalName The User PrincipalName that is being reported
UserPrincipalName *string `json:"userPrincipalName,omitempty"`
// DeviceModel The device model that is being reported
DeviceModel *string `json:"deviceModel,omitempty"`
// State The compliance state of the setting
State *ComplianceStatus `json:"state,omitempty"`
// ComplianceGracePeriodExpirationDateTime The DateTime when device compliance grace period expires
ComplianceGracePeriodExpirationDateTime *time.Time `json:"complianceGracePeriodExpirationDateTime,omitempty"`
}

View File

@ -0,0 +1,38 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "context"
// AdvancedThreatProtectionOnboardingDeviceSettingStateRequestBuilder is request builder for AdvancedThreatProtectionOnboardingDeviceSettingState
type AdvancedThreatProtectionOnboardingDeviceSettingStateRequestBuilder struct{ BaseRequestBuilder }
// Request returns AdvancedThreatProtectionOnboardingDeviceSettingStateRequest
func (b *AdvancedThreatProtectionOnboardingDeviceSettingStateRequestBuilder) Request() *AdvancedThreatProtectionOnboardingDeviceSettingStateRequest {
return &AdvancedThreatProtectionOnboardingDeviceSettingStateRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AdvancedThreatProtectionOnboardingDeviceSettingStateRequest is request for AdvancedThreatProtectionOnboardingDeviceSettingState
type AdvancedThreatProtectionOnboardingDeviceSettingStateRequest struct{ BaseRequest }
// Get performs GET request for AdvancedThreatProtectionOnboardingDeviceSettingState
func (r *AdvancedThreatProtectionOnboardingDeviceSettingStateRequest) Get(ctx context.Context) (resObj *AdvancedThreatProtectionOnboardingDeviceSettingState, 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 AdvancedThreatProtectionOnboardingDeviceSettingState
func (r *AdvancedThreatProtectionOnboardingDeviceSettingStateRequest) Update(ctx context.Context, reqObj *AdvancedThreatProtectionOnboardingDeviceSettingState) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for AdvancedThreatProtectionOnboardingDeviceSettingState
func (r *AdvancedThreatProtectionOnboardingDeviceSettingStateRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

View File

@ -0,0 +1,27 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
// AdvancedThreatProtectionOnboardingStateSummary Windows defender advanced threat protection onboarding state summary across the account.
type AdvancedThreatProtectionOnboardingStateSummary struct {
// Entity is the base model of AdvancedThreatProtectionOnboardingStateSummary
Entity
// UnknownDeviceCount Number of unknown devices
UnknownDeviceCount *int `json:"unknownDeviceCount,omitempty"`
// NotApplicableDeviceCount Number of not applicable devices
NotApplicableDeviceCount *int `json:"notApplicableDeviceCount,omitempty"`
// CompliantDeviceCount Number of compliant devices
CompliantDeviceCount *int `json:"compliantDeviceCount,omitempty"`
// RemediatedDeviceCount Number of remediated devices
RemediatedDeviceCount *int `json:"remediatedDeviceCount,omitempty"`
// NonCompliantDeviceCount Number of NonCompliant devices
NonCompliantDeviceCount *int `json:"nonCompliantDeviceCount,omitempty"`
// ErrorDeviceCount Number of error devices
ErrorDeviceCount *int `json:"errorDeviceCount,omitempty"`
// ConflictDeviceCount Number of conflict devices
ConflictDeviceCount *int `json:"conflictDeviceCount,omitempty"`
// NotAssignedDeviceCount Number of not assigned devices
NotAssignedDeviceCount *int `json:"notAssignedDeviceCount,omitempty"`
// AdvancedThreatProtectionOnboardingDeviceSettingStates undocumented
AdvancedThreatProtectionOnboardingDeviceSettingStates []AdvancedThreatProtectionOnboardingDeviceSettingState `json:"advancedThreatProtectionOnboardingDeviceSettingStates,omitempty"`
}

View File

@ -0,0 +1,139 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import (
"context"
"fmt"
"io/ioutil"
"net/http"
"github.com/yaegashi/msgraph.go/jsonx"
)
// AdvancedThreatProtectionOnboardingStateSummaryRequestBuilder is request builder for AdvancedThreatProtectionOnboardingStateSummary
type AdvancedThreatProtectionOnboardingStateSummaryRequestBuilder struct{ BaseRequestBuilder }
// Request returns AdvancedThreatProtectionOnboardingStateSummaryRequest
func (b *AdvancedThreatProtectionOnboardingStateSummaryRequestBuilder) Request() *AdvancedThreatProtectionOnboardingStateSummaryRequest {
return &AdvancedThreatProtectionOnboardingStateSummaryRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AdvancedThreatProtectionOnboardingStateSummaryRequest is request for AdvancedThreatProtectionOnboardingStateSummary
type AdvancedThreatProtectionOnboardingStateSummaryRequest struct{ BaseRequest }
// Get performs GET request for AdvancedThreatProtectionOnboardingStateSummary
func (r *AdvancedThreatProtectionOnboardingStateSummaryRequest) Get(ctx context.Context) (resObj *AdvancedThreatProtectionOnboardingStateSummary, 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 AdvancedThreatProtectionOnboardingStateSummary
func (r *AdvancedThreatProtectionOnboardingStateSummaryRequest) Update(ctx context.Context, reqObj *AdvancedThreatProtectionOnboardingStateSummary) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for AdvancedThreatProtectionOnboardingStateSummary
func (r *AdvancedThreatProtectionOnboardingStateSummaryRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}
// AdvancedThreatProtectionOnboardingDeviceSettingStates returns request builder for AdvancedThreatProtectionOnboardingDeviceSettingState collection
func (b *AdvancedThreatProtectionOnboardingStateSummaryRequestBuilder) AdvancedThreatProtectionOnboardingDeviceSettingStates() *AdvancedThreatProtectionOnboardingStateSummaryAdvancedThreatProtectionOnboardingDeviceSettingStatesCollectionRequestBuilder {
bb := &AdvancedThreatProtectionOnboardingStateSummaryAdvancedThreatProtectionOnboardingDeviceSettingStatesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/advancedThreatProtectionOnboardingDeviceSettingStates"
return bb
}
// AdvancedThreatProtectionOnboardingStateSummaryAdvancedThreatProtectionOnboardingDeviceSettingStatesCollectionRequestBuilder is request builder for AdvancedThreatProtectionOnboardingDeviceSettingState collection
type AdvancedThreatProtectionOnboardingStateSummaryAdvancedThreatProtectionOnboardingDeviceSettingStatesCollectionRequestBuilder struct{ BaseRequestBuilder }
// Request returns request for AdvancedThreatProtectionOnboardingDeviceSettingState collection
func (b *AdvancedThreatProtectionOnboardingStateSummaryAdvancedThreatProtectionOnboardingDeviceSettingStatesCollectionRequestBuilder) Request() *AdvancedThreatProtectionOnboardingStateSummaryAdvancedThreatProtectionOnboardingDeviceSettingStatesCollectionRequest {
return &AdvancedThreatProtectionOnboardingStateSummaryAdvancedThreatProtectionOnboardingDeviceSettingStatesCollectionRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// ID returns request builder for AdvancedThreatProtectionOnboardingDeviceSettingState item
func (b *AdvancedThreatProtectionOnboardingStateSummaryAdvancedThreatProtectionOnboardingDeviceSettingStatesCollectionRequestBuilder) ID(id string) *AdvancedThreatProtectionOnboardingDeviceSettingStateRequestBuilder {
bb := &AdvancedThreatProtectionOnboardingDeviceSettingStateRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
bb.baseURL += "/" + id
return bb
}
// AdvancedThreatProtectionOnboardingStateSummaryAdvancedThreatProtectionOnboardingDeviceSettingStatesCollectionRequest is request for AdvancedThreatProtectionOnboardingDeviceSettingState collection
type AdvancedThreatProtectionOnboardingStateSummaryAdvancedThreatProtectionOnboardingDeviceSettingStatesCollectionRequest struct{ BaseRequest }
// Paging perfoms paging operation for AdvancedThreatProtectionOnboardingDeviceSettingState collection
func (r *AdvancedThreatProtectionOnboardingStateSummaryAdvancedThreatProtectionOnboardingDeviceSettingStatesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}) ([]AdvancedThreatProtectionOnboardingDeviceSettingState, 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 []AdvancedThreatProtectionOnboardingDeviceSettingState
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 []AdvancedThreatProtectionOnboardingDeviceSettingState
)
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 AdvancedThreatProtectionOnboardingDeviceSettingState collection
func (r *AdvancedThreatProtectionOnboardingStateSummaryAdvancedThreatProtectionOnboardingDeviceSettingStatesCollectionRequest) Get(ctx context.Context) ([]AdvancedThreatProtectionOnboardingDeviceSettingState, error) {
var query string
if r.query != nil {
query = "?" + r.query.Encode()
}
return r.Paging(ctx, "GET", query, nil)
}
// Add performs POST request for AdvancedThreatProtectionOnboardingDeviceSettingState collection
func (r *AdvancedThreatProtectionOnboardingStateSummaryAdvancedThreatProtectionOnboardingDeviceSettingStatesCollectionRequest) Add(ctx context.Context, reqObj *AdvancedThreatProtectionOnboardingDeviceSettingState) (resObj *AdvancedThreatProtectionOnboardingDeviceSettingState, err error) {
err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
return
}

View File

@ -0,0 +1,31 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "time"
// AgedAccountsPayable undocumented
type AgedAccountsPayable struct {
// Entity is the base model of AgedAccountsPayable
Entity
// VendorNumber undocumented
VendorNumber *string `json:"vendorNumber,omitempty"`
// Name undocumented
Name *string `json:"name,omitempty"`
// CurrencyCode undocumented
CurrencyCode *string `json:"currencyCode,omitempty"`
// BalanceDue undocumented
BalanceDue *int `json:"balanceDue,omitempty"`
// CurrentAmount undocumented
CurrentAmount *int `json:"currentAmount,omitempty"`
// Period1Amount undocumented
Period1Amount *int `json:"period1Amount,omitempty"`
// Period2Amount undocumented
Period2Amount *int `json:"period2Amount,omitempty"`
// Period3Amount undocumented
Period3Amount *int `json:"period3Amount,omitempty"`
// AgedAsOfDate undocumented
AgedAsOfDate *time.Time `json:"agedAsOfDate,omitempty"`
// PeriodLengthFilter undocumented
PeriodLengthFilter *string `json:"periodLengthFilter,omitempty"`
}

View File

@ -0,0 +1,38 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "context"
// AgedAccountsPayableRequestBuilder is request builder for AgedAccountsPayable
type AgedAccountsPayableRequestBuilder struct{ BaseRequestBuilder }
// Request returns AgedAccountsPayableRequest
func (b *AgedAccountsPayableRequestBuilder) Request() *AgedAccountsPayableRequest {
return &AgedAccountsPayableRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AgedAccountsPayableRequest is request for AgedAccountsPayable
type AgedAccountsPayableRequest struct{ BaseRequest }
// Get performs GET request for AgedAccountsPayable
func (r *AgedAccountsPayableRequest) Get(ctx context.Context) (resObj *AgedAccountsPayable, 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 AgedAccountsPayable
func (r *AgedAccountsPayableRequest) Update(ctx context.Context, reqObj *AgedAccountsPayable) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for AgedAccountsPayable
func (r *AgedAccountsPayableRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

View File

@ -0,0 +1,31 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "time"
// AgedAccountsReceivable undocumented
type AgedAccountsReceivable struct {
// Entity is the base model of AgedAccountsReceivable
Entity
// CustomerNumber undocumented
CustomerNumber *string `json:"customerNumber,omitempty"`
// Name undocumented
Name *string `json:"name,omitempty"`
// CurrencyCode undocumented
CurrencyCode *string `json:"currencyCode,omitempty"`
// BalanceDue undocumented
BalanceDue *int `json:"balanceDue,omitempty"`
// CurrentAmount undocumented
CurrentAmount *int `json:"currentAmount,omitempty"`
// Period1Amount undocumented
Period1Amount *int `json:"period1Amount,omitempty"`
// Period2Amount undocumented
Period2Amount *int `json:"period2Amount,omitempty"`
// Period3Amount undocumented
Period3Amount *int `json:"period3Amount,omitempty"`
// AgedAsOfDate undocumented
AgedAsOfDate *time.Time `json:"agedAsOfDate,omitempty"`
// PeriodLengthFilter undocumented
PeriodLengthFilter *string `json:"periodLengthFilter,omitempty"`
}

View File

@ -0,0 +1,38 @@
// Code generated by msgraph-generate.go DO NOT EDIT.
package msgraph
import "context"
// AgedAccountsReceivableRequestBuilder is request builder for AgedAccountsReceivable
type AgedAccountsReceivableRequestBuilder struct{ BaseRequestBuilder }
// Request returns AgedAccountsReceivableRequest
func (b *AgedAccountsReceivableRequestBuilder) Request() *AgedAccountsReceivableRequest {
return &AgedAccountsReceivableRequest{
BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
}
}
// AgedAccountsReceivableRequest is request for AgedAccountsReceivable
type AgedAccountsReceivableRequest struct{ BaseRequest }
// Get performs GET request for AgedAccountsReceivable
func (r *AgedAccountsReceivableRequest) Get(ctx context.Context) (resObj *AgedAccountsReceivable, 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 AgedAccountsReceivable
func (r *AgedAccountsReceivableRequest) Update(ctx context.Context, reqObj *AgedAccountsReceivable) error {
return r.JSONRequest(ctx, "PATCH", "", reqObj, nil)
}
// Delete performs DELETE request for AgedAccountsReceivable
func (r *AgedAccountsReceivableRequest) Delete(ctx context.Context) error {
return r.JSONRequest(ctx, "DELETE", "", nil, nil)
}

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