50 lines
1.8 KiB
Go
50 lines
1.8 KiB
Go
|
/*
|
||
|
Copyright (c) 2014-2018 VMware, Inc. All Rights Reserved.
|
||
|
|
||
|
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.
|
||
|
*/
|
||
|
|
||
|
package soap
|
||
|
|
||
|
import (
|
||
|
"github.com/vmware/govmomi/vim25/types"
|
||
|
"github.com/vmware/govmomi/vim25/xml"
|
||
|
)
|
||
|
|
||
|
// Header includes optional soap Header fields.
|
||
|
type Header struct {
|
||
|
Action string `xml:"-"` // Action is the 'SOAPAction' HTTP header value. Defaults to "Client.Namespace/Client.Version".
|
||
|
Cookie string `xml:"vcSessionCookie,omitempty"` // Cookie is a vCenter session cookie that can be used with other SDK endpoints (e.g. pbm).
|
||
|
ID string `xml:"operationID,omitempty"` // ID is the operationID used by ESX/vCenter logging for correlation.
|
||
|
Security interface{} `xml:",omitempty"` // Security is used for SAML token authentication and request signing.
|
||
|
}
|
||
|
|
||
|
type Envelope struct {
|
||
|
XMLName xml.Name `xml:"http://schemas.xmlsoap.org/soap/envelope/ Envelope"`
|
||
|
Header *Header `xml:"http://schemas.xmlsoap.org/soap/envelope/ Header,omitempty"`
|
||
|
Body interface{}
|
||
|
}
|
||
|
|
||
|
type Fault struct {
|
||
|
XMLName xml.Name `xml:"http://schemas.xmlsoap.org/soap/envelope/ Fault"`
|
||
|
Code string `xml:"faultcode"`
|
||
|
String string `xml:"faultstring"`
|
||
|
Detail struct {
|
||
|
Fault types.AnyType `xml:",any,typeattr"`
|
||
|
} `xml:"detail"`
|
||
|
}
|
||
|
|
||
|
func (f *Fault) VimFault() types.AnyType {
|
||
|
return f.Detail.Fault
|
||
|
}
|