Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade dependencies #290

Merged
merged 2 commits into from
Oct 6, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions cmd/ocfclient/ocfclient.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import (
"fmt"
"time"

"github.com/plgd-dev/device/client"
local "github.com/plgd-dev/device/client"
"github.com/plgd-dev/device/schema/interfaces"
"github.com/plgd-dev/kit/v2/codec/json"
Expand Down Expand Up @@ -88,7 +87,7 @@ func (c *OCFClient) Discover(discoveryTimeout time.Duration) (string, error) {
func (c *OCFClient) OwnDevice(deviceID string) (string, error) {
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
return c.client.OwnDevice(ctx, deviceID, local.WithOTMs([]client.OTMType{client.OTMType_JustWorks}))
return c.client.OwnDevice(ctx, deviceID, local.WithOTMs([]local.OTMType{local.OTMType_JustWorks}))
}

// Get all resource Info of the device
Expand Down
14 changes: 7 additions & 7 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ require (
github.com/jessevdk/go-flags v1.5.0
github.com/karrick/tparse/v2 v2.8.2
github.com/pion/dtls/v2 v2.1.5
github.com/plgd-dev/go-coap/v2 v2.6.1-0.20220908094614-a31dd2f1812c
github.com/plgd-dev/go-coap/v2 v2.6.1-0.20221005134509-88765211a3e9
github.com/plgd-dev/kit/v2 v2.0.0-20211006190727-057b33161b90
github.com/stretchr/testify v1.8.0
go.uber.org/atomic v1.10.0
golang.org/x/sync v0.0.0-20220907140024-f12130a52804
golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0
google.golang.org/grpc v1.49.0
)

Expand All @@ -30,11 +30,11 @@ require (
github.com/x448/float16 v0.8.4 // indirect
go.uber.org/multierr v1.8.0 // indirect
go.uber.org/zap v1.23.0 // indirect
golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 // indirect
golang.org/x/exp v0.0.0-20220907003533-145caa8ea1d0 // indirect
golang.org/x/net v0.0.0-20220907135653-1e95f45603a7 // indirect
golang.org/x/sys v0.0.0-20220907062415-87db552b00fd // indirect
google.golang.org/genproto v0.0.0-20220902135211-223410557253 // indirect
golang.org/x/crypto v0.0.0-20221005025214-4161e89ecf1b // indirect
golang.org/x/exp v0.0.0-20221004215720-b9f4876ce741 // indirect
golang.org/x/net v0.0.0-20221004154528-8021a29435af // indirect
golang.org/x/sys v0.0.0-20220928140112-f11e5e49a4ec // indirect
google.golang.org/genproto v0.0.0-20220930163606-c98284e70a91 // indirect
google.golang.org/protobuf v1.28.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
28 changes: 14 additions & 14 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,8 @@ github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/plgd-dev/go-coap/v2 v2.0.4-0.20200819112225-8eb712b901bc/go.mod h1:+tCi9Q78H/orWRtpVWyBgrr4vKFo2zYtbbxUllerBp4=
github.com/plgd-dev/go-coap/v2 v2.4.1-0.20210517130748-95c37ac8e1fa/go.mod h1:rA7fc7ar+B/qa+Q0hRqv7yj/EMtIlmo1l7vkQGSrHPU=
github.com/plgd-dev/go-coap/v2 v2.6.1-0.20220908094614-a31dd2f1812c h1:LOXQe3FYGIsBUQP+CwITOdJhKmy4LqvG+O83Iw1sdKQ=
github.com/plgd-dev/go-coap/v2 v2.6.1-0.20220908094614-a31dd2f1812c/go.mod h1:eidYDwelmUSSWt6NaAubX0lk/A6Qw3MpWjcwJ9z7bP8=
github.com/plgd-dev/go-coap/v2 v2.6.1-0.20221005134509-88765211a3e9 h1:67oIF4zLBV2cWwkWn//gU1XJXTo38Vm7JpuWGw+tqZI=
github.com/plgd-dev/go-coap/v2 v2.6.1-0.20221005134509-88765211a3e9/go.mod h1:CZLQF6UJFa/PGaQXjhL4PqSW2JtDK0HiXFYWvzcWu0c=
github.com/plgd-dev/kit v0.0.0-20200819113605-d5fcf3e94f63/go.mod h1:Yl9zisyXfPdtP9hTWlJqjJYXmgU/jtSDKttz9/CeD90=
github.com/plgd-dev/kit/v2 v2.0.0-20211006190727-057b33161b90 h1:TC1HJ/UbyflJFPvaOdGmNZ5TeFGex1/dyr9urNGLy7M=
github.com/plgd-dev/kit/v2 v2.0.0-20211006190727-057b33161b90/go.mod h1:Z7oKFLSGQjdi8eInxwFCs0tSApuEM1o0qNck+sJYp4M=
Expand Down Expand Up @@ -159,11 +159,11 @@ golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPh
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 h1:Y/gsMcFOcR+6S6f3YeMKl5g+dZMEWqcz5Czj/GWYbkM=
golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20221005025214-4161e89ecf1b h1:huxqepDufQpLLIRXiVkTvnxrzJlpwmIWAObmcCcUFr0=
golang.org/x/crypto v0.0.0-20221005025214-4161e89ecf1b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20220907003533-145caa8ea1d0 h1:17k44ji3KFYG94XS5QEFC8pyuOlMh3IoR+vkmTZmJJs=
golang.org/x/exp v0.0.0-20220907003533-145caa8ea1d0/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE=
golang.org/x/exp v0.0.0-20221004215720-b9f4876ce741 h1:fGZugkZk2UgYBxtpKmvub51Yno1LJDeEsRp2xGD+0gY=
golang.org/x/exp v0.0.0-20221004215720-b9f4876ce741/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
Expand Down Expand Up @@ -191,17 +191,17 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qx
golang.org/x/net v0.0.0-20211201190559-0a0e4e1bb54c/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
golang.org/x/net v0.0.0-20220531201128-c960675eff93/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/net v0.0.0-20220907135653-1e95f45603a7 h1:1WGATo9HAhkWMbfyuVU0tEFP88OIkUvwaHFveQPvzCQ=
golang.org/x/net v0.0.0-20220907135653-1e95f45603a7/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
golang.org/x/net v0.0.0-20221004154528-8021a29435af h1:wv66FM3rLZGPdxpYL+ApnDe2HzHcTFta3z5nsc13wI4=
golang.org/x/net v0.0.0-20221004154528-8021a29435af/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220907140024-f12130a52804 h1:0SH2R3f1b1VmIMG7BXbEZCBUu2dKmHschSmjqGUrW8A=
golang.org/x/sync v0.0.0-20220907140024-f12130a52804/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0 h1:cu5kTvlzcw1Q5S9f5ip1/cpiB4nXvw1XYzFPGgzLUOY=
golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
Expand All @@ -217,8 +217,8 @@ golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220608164250-635b8c9b7f68/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220907062415-87db552b00fd h1:AZeIEzg+8RCELJYq8w+ODLVxFgLMMigSwO/ffKPEd9U=
golang.org/x/sys v0.0.0-20220907062415-87db552b00fd/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220928140112-f11e5e49a4ec h1:BkDtF2Ih9xZ7le9ndzTA7KJow28VbQW3odyk/8drmuI=
golang.org/x/sys v0.0.0-20220928140112-f11e5e49a4ec/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
Expand Down Expand Up @@ -248,8 +248,8 @@ google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20220902135211-223410557253 h1:vXJMM8Shg7TGaYxZsQ++A/FOSlbDmDtWhS/o+3w/hj4=
google.golang.org/genproto v0.0.0-20220902135211-223410557253/go.mod h1:dbqgFATTzChvnt+ujMdZwITVAJHFtfyN1qUhDqEiIlk=
google.golang.org/genproto v0.0.0-20220930163606-c98284e70a91 h1:Ezh2cpcnP5Rq60sLensUsFnxh7P6513NLvNtCm9iyJ4=
google.golang.org/genproto v0.0.0-20220930163606-c98284e70a91/go.mod h1:3526vdqwhZAwq4wsRUaVG555sVgsNmIjRtO7t/JH29U=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
Expand Down
10 changes: 5 additions & 5 deletions pkg/net/coap/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,14 +71,14 @@ func GetDeviceIDFromIdentityCertificate(cert *x509.Certificate) (string, error)
if !ekuHasClient {
return "", fmt.Errorf("not contains ExtKeyUsageClientAuth")
}
ekuHasOcfId := false
ekuHasOcfID := false
for _, eku := range cert.UnknownExtKeyUsage {
if eku.Equal(ExtendedKeyUsage_IDENTITY_CERTIFICATE) {
ekuHasOcfId = true
ekuHasOcfID = true
break
}
}
if !ekuHasOcfId {
if !ekuHasOcfID {
return "", fmt.Errorf("not contains ExtKeyUsage with OCF ID(1.3.6.1.4.1.44924.1.6")
}
cn := strings.Split(cert.Subject.CommonName, ":")
Expand All @@ -88,11 +88,11 @@ func GetDeviceIDFromIdentityCertificate(cert *x509.Certificate) (string, error)
if strings.ToLower(cn[0]) != "uuid" {
return "", fmt.Errorf("invalid subject common name %v: 'uuid' - not found", cert.Subject.CommonName)
}
deviceId, err := uuid.Parse(cn[1])
deviceID, err := uuid.Parse(cn[1])
if err != nil {
return "", fmt.Errorf("invalid subject common name %v: %w", cert.Subject.CommonName, err)
}
return deviceId.String(), nil
return deviceID.String(), nil
}

func VerifyIdentityCertificate(cert *x509.Certificate) error {
Expand Down
32 changes: 16 additions & 16 deletions schema/acl/acl.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,37 +46,37 @@ const (
AllPermissions = Permission_CREATE | Permission_READ | Permission_WRITE | Permission_DELETE | Permission_NOTIFY
)

func (s Permission) String() string {
func (p Permission) String() string {
res := make([]string, 0, 5)
if s.Has(Permission_CREATE) {
if p.Has(Permission_CREATE) {
res = append(res, "CREATE")
s &^= Permission_CREATE
p &^= Permission_CREATE
}
if s.Has(Permission_READ) {
if p.Has(Permission_READ) {
res = append(res, "READ")
s &^= Permission_READ
p &^= Permission_READ
}
if s.Has(Permission_WRITE) {
if p.Has(Permission_WRITE) {
res = append(res, "WRITE")
s &^= Permission_WRITE
p &^= Permission_WRITE
}
if s.Has(Permission_DELETE) {
if p.Has(Permission_DELETE) {
res = append(res, "DELETE")
s &^= Permission_DELETE
p &^= Permission_DELETE
}
if s.Has(Permission_NOTIFY) {
if p.Has(Permission_NOTIFY) {
res = append(res, "NOTIFY")
s &^= Permission_NOTIFY
p &^= Permission_NOTIFY
}
if s != 0 {
res = append(res, fmt.Sprintf("unknown(%v)", int(s)))
if p != 0 {
res = append(res, fmt.Sprintf("unknown(%v)", int(p)))
}
return strings.Join(res, "|")
}

// Has returns true if the flag is set.
func (b Permission) Has(flag Permission) bool {
return b&flag != 0
func (p Permission) Has(flag Permission) bool {
return p&flag != 0
}

type Resource struct {
Expand Down Expand Up @@ -123,7 +123,7 @@ const (
ConnectionType_ANON_CLEAR ConnectionType = "anon-clear"
)

// anyof/oneof
// Subject contains anyof/oneof the subtypes
type Subject struct {
*Subject_Device
*Subject_Role
Expand Down
8 changes: 6 additions & 2 deletions schema/cloud/configuration.go
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
// Cloud Configuration Resource
// Package cloud implements Cloud Configuration Resource.
// https://github.com/openconnectivityfoundation/cloud-services/blob/master/swagger2.0/oic.r.coapcloudconf.swagger.json
package cloud

const (
// ConfigurationResourceType is the resource type of the Cloud Configuration Resource.
ConfigurationResourceType = "oic.r.coapcloudconf"
ConfigurationResourceURI = "/CoapCloudConfResURI"
// ConfigurationResourceURI is the URI of the Cloud Configuration Resource.
ConfigurationResourceURI = "/CoapCloudConfResURI"
)

// ProvisioningStatus indicates the Cloud Provisioning status of the Device.
Expand All @@ -18,6 +20,7 @@ const (
ProvisioningStatus_FAILED ProvisioningStatus = "failed"
)

// Configuration contains the supported fields of the Cloud Configuration Resource.
type Configuration struct {
ResourceTypes []string `json:"rt"`
Interfaces []string `json:"if"`
Expand All @@ -29,6 +32,7 @@ type Configuration struct {
ProvisioningStatus ProvisioningStatus `json:"cps"`
}

// ConfigurationUpdateRequest is used to update the Cloud Configuration Resource.
type ConfigurationUpdateRequest struct {
AuthorizationProvider string `json:"apn"`
URL string `json:"cis"`
Expand Down
2 changes: 1 addition & 1 deletion schema/csr/csr.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ type CertificateSigningRequestResponse struct {
Interfaces []string `json:"if"`
ResourceTypes []string `json:"rt"`
Name string `json:"n"`
InstanceId string `json:"id"`
InstanceID string `json:"id"`
Encoding CertificateEncoding `json:"encoding"`
CertificateSigningRequest interface{} `json:"csr"`
}
Expand Down
52 changes: 29 additions & 23 deletions schema/pstat/pstat.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Device Provisioning Status
// Package pstat implements Device Provisioning Status resource.
// https://github.com/openconnectivityfoundation/security/blob/master/swagger2.0/oic.sec.pstat.swagger.json
package pstat

Expand All @@ -8,36 +8,42 @@ import (
)

const (
// ResourceType is the resource type of the Device Provisioning Status resource.
ResourceType = "oic.r.pstat"
ResourceURI = "/oic/sec/pstat"
// ResourceURI is the URI of the Device Provisioning Status resource.
ResourceURI = "/oic/sec/pstat"
)

// DeviceOnboardingState contains the operation state of the device.
type DeviceOnboardingState struct {
Pending bool `json:"p,omitempty"`
CurrentOrPendingOperationalState OperationalState `json:"s"`
}

// ProvisionStatusResponse contains the supported fields of the Device Provisioning Status resource.
type ProvisionStatusResponse struct {
ResourceOwner string `json:"rowneruuid"`
Interfaces []string `json:"if"`
ResourceTypes []string `json:"rt"`
CurrentOperationalMode OperationalMode `json:"om"`
CurrentProvisioningMode ProvisioningMode `json:"cm"`
Name string `json:"n"`
InstanceId string `json:"id"`
InstanceID string `json:"id"`
DeviceIsOperational bool `json:"isop"`
TargetProvisioningMode ProvisioningMode `json:"tm"`
SupportedOperationalModes OperationalMode `json:"sm"`
DeviceOnboardingState DeviceOnboardingState `json:"dos"`
}

// ProvisionStatusUpdateRequest is used to update the Device Provisioning Status resource.
type ProvisionStatusUpdateRequest struct {
ResourceOwner string `json:"rowneruuid,omitempty"`
CurrentOperationalMode OperationalMode `json:"om,omitempty"`
TargetProvisioningMode ProvisioningMode `json:"tm,omitempty"`
DeviceOnboardingState *DeviceOnboardingState `json:"dos,omitempty"`
}

// OperationalState represents possible operation states of the device.
type OperationalState int

const (
Expand Down Expand Up @@ -78,29 +84,29 @@ const (
OperationalMode_CLIENT_DIRECTED
)

func (s OperationalMode) String() string {
func (m OperationalMode) String() string {
res := make([]string, 0, 4)
if s.Has(OperationalMode_SERVER_DIRECTED_UTILIZING_MULTIPLE_SERVICES) {
if m.Has(OperationalMode_SERVER_DIRECTED_UTILIZING_MULTIPLE_SERVICES) {
res = append(res, "SERVER_DIRECTED_UTILIZING_MULTIPLE_SERVICES")
s &^= OperationalMode_SERVER_DIRECTED_UTILIZING_MULTIPLE_SERVICES
m &^= OperationalMode_SERVER_DIRECTED_UTILIZING_MULTIPLE_SERVICES
}
if s.Has(OperationalMode_SERVER_DIRECTED_UTILIZING_SINGLE_SERVICE) {
if m.Has(OperationalMode_SERVER_DIRECTED_UTILIZING_SINGLE_SERVICE) {
res = append(res, "SERVER_DIRECTED_UTILIZING_SINGLE_SERVICE")
s &^= OperationalMode_SERVER_DIRECTED_UTILIZING_SINGLE_SERVICE
m &^= OperationalMode_SERVER_DIRECTED_UTILIZING_SINGLE_SERVICE
}
if s.Has(OperationalMode_CLIENT_DIRECTED) {
if m.Has(OperationalMode_CLIENT_DIRECTED) {
res = append(res, "CLIENT_DIRECTED")
s &^= OperationalMode_CLIENT_DIRECTED
m &^= OperationalMode_CLIENT_DIRECTED
}
if s != 0 {
res = append(res, fmt.Sprintf("unknown(%v)", int(s)))
if m != 0 {
res = append(res, fmt.Sprintf("unknown(%v)", int(m)))
}
return strings.Join(res, "|")
}

// Has returns true if the flag is set.
func (b OperationalMode) Has(flag OperationalMode) bool {
return b&flag != 0
func (m OperationalMode) Has(flag OperationalMode) bool {
return m&flag != 0
}

type ProvisioningMode uint16
Expand All @@ -112,23 +118,23 @@ const (
ProvisioningMode_INIT_SEC_SOFT_UPDATE ProvisioningMode = 1 << 7
)

func (s ProvisioningMode) String() string {
func (m ProvisioningMode) String() string {
res := make([]string, 0, 3)
if s.Has(ProvisioningMode_INIT_SOFT_VER_VALIDATION) {
if m.Has(ProvisioningMode_INIT_SOFT_VER_VALIDATION) {
res = append(res, "INIT_SOFT_VER_VALIDATION")
s &^= ProvisioningMode_INIT_SOFT_VER_VALIDATION
m &^= ProvisioningMode_INIT_SOFT_VER_VALIDATION
}
if s.Has(ProvisioningMode_INIT_SEC_SOFT_UPDATE) {
if m.Has(ProvisioningMode_INIT_SEC_SOFT_UPDATE) {
res = append(res, "INIT_SEC_SOFT_UPDATE")
s &^= ProvisioningMode_INIT_SEC_SOFT_UPDATE
m &^= ProvisioningMode_INIT_SEC_SOFT_UPDATE
}
if s != 0 {
res = append(res, fmt.Sprintf("unknown(%v)", int(s)))
if m != 0 {
res = append(res, fmt.Sprintf("unknown(%v)", int(m)))
}
return strings.Join(res, "|")
}

// Has returns true if the flag is set.
func (b ProvisioningMode) Has(flag ProvisioningMode) bool {
return b&flag != 0
func (m ProvisioningMode) Has(flag ProvisioningMode) bool {
return m&flag != 0
}